	var gpX_obj;
	var gpX_que = false;
	var gpX_dest;
	var gpX_type;
	var gpX_gpF;
	
	function gpX(inType, inDest, inHttp, inGpF) {
		//inType = func, div
		//inDest = name of function or div
		//inHttp = page to execute
		//inGpF	 = True/False, run gpF after loading
		
		if (inGpF){gpX_gpF=true} else {gpX_gpF=false}
		
		if(inType==1){
			gpX_type 	= 'func';
			gpX_dest	= inDest;
		}
		else {
			gpX_type 	= 'div';
			gpX_dest 	= document.getElementById(inDest);
		}
		
		if (gpX_dest!=null && inHttp!='' && inHttp!=null){
			var url = inHttp
			if (url.indexOf('?')==-1){url=url+"?gpX="+ Math.random()}else{url=url+"&gpX="+ Math.random()};
			document.body.style.cursor='wait';
			gpX_getAjax(url);
		}
		
	}

	function gpX_getAjax(inUrl){
		gpX_obj = gpX_getXMLHttpObject();
		if (gpX_obj==null) {
		  alert ("Your browser does not support AJAX!\n\nPlease upgrade to the most current browser version to take full advantage of this site.");
		  return;
		}
		else {
			gpX_obj.onreadystatechange = gpX_stateChanged;
			gpX_obj.open("GET", inUrl, true);
			gpX_obj.send(null);
		}
	}
	
	function gpX_stateChanged() {
		if (gpX_obj.readyState==4) {
			var xmlText = gpX_obj.responseText;
			if (gpX_dest!=null){
				switch (gpX_type) {
					case 'func':
						window[gpX_dest](xmlText);
					case 'div':
						gpX_dest.innerHTML 			= xmlText;
						gpX_dest.style.display		= 'block';
						gpX_dest.style.visibility	= 'visible';
						if (gpX_gpF==true){
							var f = gpf_setup();
						}
				}
			}
			document.body.style.cursor='default';
		}
	}

	function gpX_getXMLHttpObject() {
		var xmlHttp=null;
		// Firefox, Opera 8.0+, Safari
		try {xmlHttp=new XMLHttpRequest();}
		// Internet Explorer
		catch (e) {
			try {xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");}
			catch (e) {xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");}
		}
		return xmlHttp;
	}
