function createXMLHttpObject()	{
	if (window.XMLHttpRequest) {
		// code for IE7+, Firefox, Chrome, Opera, Safari
		return new XMLHttpRequest();
	}
	if (window.ActiveXObject) {
		// code for IE6, IE5
		return new ActiveXObject("Microsoft.XMLHTTP");
	}
	return null;
}

function requestGET(url,query,req) {
	myRand = parseInt(Math.random()*99999999);
	req.open("GET",url+'?'+query+'&rand='+myRand,true);
	req.send(null);
}

function requestPOST(url,query,req) {
	req.open("POST",url,true);
	req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	req.send(query);
}

function doCallback(callback,item) {
	eval(callback+'(item)');
}

function doWait() {
	document.getElementById('wait').style.display = 'block';
}

function doAjax(url,query,callback,reqtype,getxml,setwait) {
	var myreq = createXMLHttpObject();
	
	myreq.onreadystatechange = function() {
		if(myreq.readyState == 4) {
			if(myreq.status == 200) {
				document.getElementById('wait').style.display = 'none';
				var item = myreq.responseText;
				if(getxml == 1) {
					item = myreq.responseXML;
				}
				if (callback.substr(0,11) == 'fillInField') {
					fillInField(callback.substr(11),item);
				} else {
					doCallback(callback,item);
				}
			}
		} else {
			if (setwait == 1) {
				doWait();
			}
		}
	}
	if(reqtype == 'post') {
		requestPOST(url,query,myreq);
	} else {
		requestGET(url,query,myreq);
	}
}

function sendForm(url,obj,callback,reqtype,getxml) {
	if (!getxml) { getxml = '1'; }
	var getstr = "";
	var fields = obj.getElementsByTagName("*");
	for (i=0; i<fields.length; i++) {
		switch (fields[i].tagName) {
			case "INPUT":
				var elementType = fields[i].type;
				switch (elementType) {
					case "button":
						getstr += "button=" + fields[i].value + "&";
						break;
					case "text":
					case "password":
						getstr += fields[i].name + "=" + fields[i].value.replace(/&/gi,"%26") + "&";
						break;
					case "checkbox":
						if (fields[i].checked) { getstr += fields[i].name + "=" + fields[i].value.replace(/&/gi,"%26") + "&"; }
						else { getstr += fields[i].name + "=&"; }
						break;
					case "radio":
						if (fields[i].checked) { getstr += fields[i].name + "=" + fields[i].value.replace(/&/gi,"%26") + "&"; }
						break;
				}
				break;				
			case "SELECT":
				getstr += fields[i].name + "=" + fields[i].options[fields[i].selectedIndex].value.replace(/&/gi,"%26") + "&";
				break;
			case "TEXTAREA":
				getstr += fields[i].name + "=" + fields[i].value.replace(/&/gi,"%26") + "&";
				break;
		}
	}
	doAjax(url,getstr,callback,reqtype,getxml,'1');
}

function returnResult(text) {
	return (text);
}

