//<[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);
				if (obj.execFunc) {
					eval(obj.execFunc);
				}
			}
			else {
//setValue(messageNode, getObject("soapyError"), txtMessageNode);
				getObject("error").style.display = "block";
				getObject("soapyError").innerHTML = getValue(messageNode);
			}

			if(dataNode)
				window.location.href = "editMember.php?" + 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;
        var suf = arguments[1]?arguments[1]:'';

	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/people/lists/joinList.php";
			break;
		case 'unsub':
			var url = "system/people/lists/unsubscribe.php";
			break;
		case 'getMemberID':
			var url = "system/people/lists/getMemberID.php";
			break;
		case 'upd_demogr':
			var url = "system/people/lists/updateDemographics.php";
			break;
		case 'get_demogr':
			var url = "system/people/lists/getMemberDemographics.php";
			break;
	}
	return suf + url + "?" + str;
}

processForm = function(frmAction) {
	var altUrl = _buildUrl(frmAction,arguments[1]);
	var url = altUrl + "&ajax=1";
	if (arguments[2]) { var cn = new httpConnection(url, remoteHandler, altUrl,arguments[2]); }
	else { 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/people/lists/i/confirmicon-ltblue.gif";

var img_error = new Image();
img_error.src = "system/people/lists/i/alerticon-ltblue.gif";

var img_process = new Image();
img_process.src = "system/people/lists/i/spinnerIcon-ltblue.gif";

//]]>
