var xmlHttp;

function ajaxIsAvailable() {
	available = 0;
	if (window.XMLHttpRequest || window.ActiveXObject) available = 1;
	return available;
}

function GetXmlHttpObject(handler) { 
	var objXMLHttp=null;
	if (window.XMLHttpRequest) {
		objXMLHttp=new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	return objXMLHttp;
}

function extractAllFormVariablesForPost (formName) {
	var i, s; // index, string
	var f, e; // form, element
	var d = false; // done
	
	var x = 0;
	var dd;

	f = document.getElementById(formName);
	//if (!f || !f.elements) f = document.forms[formName];
	
	s = "";
	if (f) {
		if (f.elements) {
			for (i = 0; i < f.elements.length; i++) {
				e = f.elements[i];
				
				if (d) s += "&";
						
				if (e.type == 'checkbox' || e.type == 'radio') {
					/*
					s += e.name + "=";
					if (e.checked) s += '1';
					else s += '0';
					*/
					if (e.checked) s += e.name + "=" + e.value;
				}
				else if (e.type == 'select-multiple') {
					dd = false;
					for (var j = 0; j < e.options.length; j++) {
						if (dd) s += "&";
						if (e.options[j].selected) s += e.name + "=" + e.options[j].value;
						dd = true;
					}
				}
				else {
					s += e.name + "=" + e.value;
				}
				d = true;

			}
			
		}
	}

	return s;
}

function xaja (variables, doPost, formName, postToUrl, postDiv) {
	var xmlHttpReq = false;
	var queryString = "";
	
	//alert ("variables: " + variables + ", doPost: " + doPost + ", formName: " + formName + ", postToUrl: " + postToUrl + ", postDiv: " + postDiv);

	xmlHttpReq = GetXmlHttpObject('');
	if (xmlHttpReq) {
		xmlHttpReq.open("POST", postToUrl, true);
		xmlHttpReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xmlHttpReq.onreadystatechange = function() {
			if (xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200) {
				if (xmlHttpReq.responseText) {
					document.getElementById(postDiv).innerHTML = xmlHttpReq.responseText;
				}
				else {
					//document.getElementById(postDiv).innerHTML = 'An error occurred processing your request.';	
				}
			}
			else if (xmlHttpReq.status == 302) {
 				document.getElementById(postDiv).innerHTML = "HAI";
 			}
		}
	}

	if (variables) queryString += variables;
	if (variables && doPost) queryString += "&";
	if (doPost) {
		x = extractAllFormVariablesForPost(formName);
		if (x) queryString += x;
	}
	xmlHttpReq.send(queryString);
}

function spinner (divId) {
	var spin = '';
	
	spin = '<div style="display: inline; width: 100%; height: 100%; vertical-align: middle; margin-top: auto; margin-bottom: auto; text-align: center;"><img src="/img/pix/spinner.gif" alt="" border="0" /></div>';
	if (document.getElementById) document.getElementById(divId).innerHTML = spin;
	else if (document.all) document.all[divId].innerHTML = spin;
	else if (document.layers) document.layers[divId].innerHTML = spin;
}

/* not really ajax... */
function showDiv (b) {
    var Display = arguments[1];
	if (!Display) Display = "";
	if (document.getElementById) document.getElementById(b).style.display = Display;
	else if (document.all) document.all[b].style.visibility = 'visible';
	else if (document.layers) document.layers[b].visibility = 'show';
}

function hideDiv (b) {
	if (document.getElementById) document.getElementById(b).style.display = 'none';
	else if (document.all) document.all[b].style.visibility = 'hidden';
	else if (document.layers) document.layers[b].visibility = 'hide';
}

function toggleDiv (b) {
    var Display = arguments[1];
	var status;

	if (document.getElementById) status = (document.getElementById(b).style.display == 'none') ? "h" : "v";
	else if (document.all)  status = (document.all[b].style.visibility == 'hidden') ? 'h' : 'v';
	else if (document.layers) status = (document.layers[b].visibility == 'hide') ? 'h' : 'v';

	if (Display) {
		if (status == 'v') hideDiv(b);
		else if (status == 'h') showDiv(b, Display);
	}
	else {
		if (status == 'v') hideDiv(b);
		else if (status == 'h') showDiv(b);
	}
}

function divIsVisible (b) {
	var v = 0;
	
	if (document.getElementById) v = (document.getElementById(b).style.display == 'none') ? 0 : 1;
	else if (document.all)  v = (document.all[b].style.visibility == 'hidden') ? 0 : 1;
	else if (document.layers) v = (document.layers[b].visibility == 'hide') ? 0 : 1;

	return v;
}