//<[CDATA[



// *******************************

// GET CROSS-BROWSER OBJECT

// *******************************

getObject = function(nm) {

	if(document.getElementById)

		return(document.getElementById(nm));

	else if(document.all)

		return(document.all[nm]);



	return(false);

}



// *******************************

// GET CROSS-BROWSER TAG OBJECT

// *******************************

getTag = function(nm, contextNode, returnSingleNode) {

var n;

	if(document.getElementsByTagName) {

		if(contextNode)

			n = contextNode.getElementsByTagName(nm);

		else

			n = document.getElementsByTagName(nm);



		if(returnSingleNode)

			n = n[0];

	}



	return(n);

}



// *******************************

// GET CROSS-BROWSER NODE VALUE

// *******************************

getValue = function(n) {

	var ch = n.childNodes;

	if(ch && ch.length)

		return(ch[0].nodeValue);

	else

		return("");

}



setValue = function(srcNode, targetNode, strNode) {

	var nNode, tNode, curNode, t, v, s, an, av;



	if(document.all && strNode)

		targetNode.innerHTML = getValue(strNode);

	else {

		if(srcNode.hasChildNodes()) {

			if(targetNode.hasChildNodes()) {

				tNode = targetNode.childNodes[0];

			}

			else

				tNode = targetNode.appendChild(document.createElement("div"));



			nNode = document.createElement("div");



			for(n=0;n<srcNode.childNodes.length;n++) {

				curNode = srcNode.childNodes[n];



				t = curNode.tagName;

				v = curNode.childNodes[0].nodeValue;



				s = document.createElement(t);

				s.appendChild(document.createTextNode(v));



				if(curNode.hasAttributes()) {

					for(m=0;m<curNode.attributes.length;m++) {

						an = curNode.attributes[m].name;

						av = curNode.attributes[m].value;

						s.setAttribute(an, av);

					}

				}



				nNode.appendChild(s);

			}



			targetNode.replaceChild(nNode, tNode);

		}

		else

			targetNode.innerHTML = getValue(srcNode);

	}

}



// *******************************

// AJAX EVENT HANDLER

// *******************************

remoteHandler = function(msg, obj) {

	var _message = "";

	var _process = 0;



	switch(msg) {

		case 'success':
//alert(obj.cn.responseText);

			var successNode = getTag("success", obj.cn.responseXML, true);

			var messageNode = getTag("message", obj.cn.responseXML, true);

//			var txtMessageNode = getTag("txtMessage", obj.cn.responseXML, true);

			var dataNode = getTag("data", obj.cn.responseXML, true);



			getObject("processing").style.visibility = "hidden";



			if(getValue(successNode) == 1) {

				getObject("error").style.display = "none";

				getObject("success").style.display = "block";

				getObject("form").style.visibility = "hidden";

				getObject("successMsg").innerHTML = getValue(messageNode);

			}

			else {

//setValue(messageNode, getObject("soapyError"), txtMessageNode);

				getObject("error").style.display = "block";

				getObject("soapyError").innerHTML = getValue(messageNode);

			}



			if(dataNode)

				window.location.href = "./lists/updateMember.html?" + getValue(dataNode);

			break;

		case 'error':

			getObject("processing").style.visibility = "hidden";

			_message = "Sorry, this signup form is temporarily out of order. Instead, please email us.";

			break;

		case 'loading':

			getObject("processing").style.visibility = "visible";

			getObject("error").style.display = "none";

			_process = 2;

			break;

	}

}



_buildUrl = function(op) {

	var els = document.forms['frmSoapy'].elements;

	var arr = [];

	var n;



	for(n=0; n < els.length; n++)

		if(els[n].type != "submit")

			arr[n] = els[n].name + "=" + escape(els[n].value);



	var str = arr.join("&");



	switch(op) {

		case 'signup':

			var url = "./system/lists/joinList.php";

			break;

		case 'unsub':

			var url = "./system/lists/unsubscribe.php";

			break;

		case 'getMemberID':

			var url = "./system/lists/getMemberID.php";

			break;

		case 'upd_demogr':

			var url = "./system/lists/updateDemographics.php";

			break;

		case 'get_demogr':

			var url = "./system/lists/getMemberDemographics.php";

			break;

	}

	return url + "?" + str;

}



processForm = function(frmAction) {

	var altUrl = _buildUrl(frmAction);

	var url = altUrl + "&ajax=1";

	var cn = new httpConnection(url, remoteHandler, altUrl);

	cn.getUrl();

}



swap = function (nm, nm2, v) {

	var el = getObject(nm);

	if(v == 'xx')

		el.style.display = "block";

	else {

		el.style.display = "none";

		getObject(nm2).value = "";

	}

}



var img_success = new Image();

img_success.src = "system/lists/i/confirmicon-ltblue.gif";



var img_error = new Image();

img_error.src = "system/lists/i/alerticon-ltblue.gif";



var img_process = new Image();

img_process.src = "system/lists/i/spinnerIcon-ltblue.gif";



//]]>