// _cms/js/AJAXCore.js ©2006 lesshype / joseph wilson

/*		create XMLHttpRequest Object		*/

var request = false;

try {
	/*	for standard compliant browsers */
	request = new XMLHttpRequest();
} catch (trymsie) {
	try {
		/*	newer style IE */
		request = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (trymsie2) {
		try {
			/*	older style IE */
			request = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (failed) {
			request = false;
		}
	}
}


/*		he's dead Jim	*/
if (!request) {
	alert("Error initializing XMLHttpRequest. You may want to upgrade to a modern browser, but most site features will still work.");
}


/*		set up base_url for ajax
		returns difrectory of requesting file	*/
if (!base_url) {
	url = document.location.href;
	xend = url.lastIndexOf("/") + 1;
	var base_url = url.substring(0, xend);
}



/* initialize form for ajax processing */
window.onload = function () {
	if (!document.getElementById) return false;
	if (!document.getElementById('poll_take')) return false;
	var oForm = document.getElementById('poll_form');
	oForm.onsubmit = function () {
		oForm['submit'].disabled = true;
		new Effect.Appear(document.getElementById('poll_process'));
		new net.ContentLoader('/ajax.php',updatePage,updatePage,'POST',ajaxSendData('poll_form',true));
		document.getElementById('poll_results').style.display='block';
		document.getElementById('poll_form').style.display='none';
		new Effect.Fade(document.getElementById('poll_process'));
		oForm['submit'].disabled = false;
		return false;
	}
}



function ajaxSendData(f,a) {
	var theForm = document.forms[f];
	var ajax = false;
	if (a == true) {
		ajax = true;
	}

	if (theForm.length > 0) {

		if (theForm.elements["section"] && ajax == false) {
			var s = theForm.elements["section"].value;
			var m = theForm.elements["module"].value;
			var a = theForm.elements["do_action"].value;
			var url = 'lib/' + s + '/' + m + '/lib/ajax.inc.php?do_action=' + a;
		}

		var fields = new Array();
		var data = new Array();

		for (var i = 0; i < theForm.elements.length; i++) {
			if (theForm.elements[i].type == "checkbox" && theForm.elements[i].checked == true) {
				fields.push(escape(theForm.elements[i].name));
				data.push(escape(theForm.elements[i].value));
			} else if (theForm.elements[i].type == "file") {

			} else if (theForm.elements[i].type == "password") {
				fields.push(escape(theForm.elements[i].name));
				data.push(sha1Hash(theForm.elements[i].value));
			} else if (theForm.elements[i].type == "radio" && theForm.elements[i].checked == true) {
				fields.push(escape(theForm.elements[i].name));
				data.push(escape(theForm.elements[i].value));
			} else if (theForm.elements[i].type == "select-multiple") {
				var values = new Array();
				fields.push(escape(theForm.elements[i].name));
				for (x = 0; x < theForm.elements[i].length; x++) {
					if (theForm.elements[i][x].selected == true && theForm.elements[i][x].value != '') {
						values.push(escape(theForm.elements[i][x].value));
					}
				}
				data.push(escape(values));
			} else if (theForm.elements[i].type == "select-one") {
				fields.push(escape(theForm.elements[i].name));
				data.push(escape(theForm.elements[i].value));
			} else if (theForm.elements[i].type == "submit") {
				
			} else if (theForm.elements[i].type == "text" ||
						theForm.elements[i].type == "textarea" ||
						theForm.elements[i].type == "hidden") {
				fields.push(escape(theForm.elements[i].name));
				data.push(escape(theForm.elements[i].value));
			}
		}

		var temp = new Array();
		for (i = 0; i < fields.length; i++) {
			temp[i] = fields[i] + '=' + data[i];
		}

		if (ajax == true) {	// ajax style (true = standard, false = previously coded)
			var data = temp.join('&');	// join fields to send
			return data;
	} else {
			var data = temp.join('&');	// join fields to send
			ajax_do(url + data);
		}
	}
}

function updatePage() {
	if (this.req.readyState > 0 && this.req.readyState < 4) {
		// set active indicator
	} else {
		var response = this.req.responseText.split('||');
		var oTarget = document.getElementById('result_0');
		oTarget.innerHTML = response[0];
		for (i = 1; i < response.length; i++) {
			var x = i;
			var oTarget = document.getElementById('result_' + x);
			oTarget.style.width = response[i] + '%';
			oTarget.innerHTML = response[i] + '%';
		}
	}
}