// page = page to call
// box = id to replace with returned text
// parameters = eg. var1=10&var2=20 - this format for GET and POST calls
// method = GET or POST
// loadmessage = html to display while loading, if unset nothing happens
// call = function to call on completion
var ajax_responsetext="";
function ajax( page, box, parameters, method, loadmessage, call, callparas) {  
	ajax_responsetext="";
	// set defauls
	var silent=false; // default
	if ((box==undefined) || (box=="")) silent=true; 	// if box isn't set nothing will be displayed
	if ((method==undefined) || (method=="")) method="GET";	// set default
	if (callparas==undefined) callparas="";			// set default
	if (loadmessage==undefined) loadmessage="";		// set default

	function new_request() {
		if (window.XMLHttpRequest) {
			return new XMLHttpRequest();
		} else if (window.ActiveXObject) {
			try {
				return new ActiveXObject("Msxml2.XMLHTTP");
			} catch(e) {
				try {
					return new ActiveXObject("Microsoft.XMLHTTP");
				} catch(e) {
				}
			}
		}
	}

	var xmlhttp = new_request();
	//xmlhttp.overrideMimeType('text/html'); // kills IE, how rude
	var page = escape(page);
	if(page !== "") {
		if (method=="POST"){
			var url = page + '?lfghnv=' + Math.random();
			xmlhttp.open('POST', url, true);
			xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
			xmlhttp.send(parameters);
		} else {
			if (parameters==""){
				var url = page + '?jhdfbhg=' + Math.random();
			} else {
				var url = page + '?' + parameters + '&jhdfbhg=' + Math.random();
			}
			xmlhttp.open('GET', url, true);
			xmlhttp.setRequestHeader("Content-Type", "text/html; Charset=ISO_8859-1" );
			xmlhttp.send(null);
		}

		if(loadmessage != "") document.getElementById(box).innerHTML = loadmessage;
		xmlhttp.onreadystatechange = function(){
			//xmlhttp.overrideMimeType('text/html; charset=ISO_8859-1'); // set char set so we dont hav probs with £ etc - breaks IE
			if(xmlhttp.readyState == 4 || xmlhttp.readyState=="complete"){
				if(xmlhttp.status == 200){
					if(silent==false) document.getElementById(box).innerHTML = xmlhttp.responseText;
						ajax_responsetext = xmlhttp.responseText;
                    
					if ((call!="") && (call!=undefined)){ // call external function now completed
						call( callparas );
					}
				} else {
					if(silent==false) document.getElementById(box).innerHTML = 'Error Fetching Page';
					//alert(url);
				}
			}
		};

	} else if(page == "") {
		if(silent==false) document.getElementById(box).innerHTML = 'Error: No Page Specified';
	}
	
}