// GLOBAL VARIABLES FOR AJAX
var ajax_qs
var ajax_response
var ajax_sent_int
var receiver_ID
var form_ID
var control_ID
var display_int

// XML_HTTP_REQUEST OBJECT FOR BOTH IE AND MOZILLA //
var xmlHttp = false;
try{xmlHttp = new ActiveXObject("")}   
catch (err){
	try{xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")}
	catch (err2){}
}
	
if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
  xmlHttp = new XMLHttpRequest();
}

function ajax_request(src, des, cntl, func){
	
	// SHOW LOADING/WORKING PANEL
		des_obj = document.getElementById(des)
		if(des_obj){
			//**** SHOW DESTINATION OBJECT (IF HIDDEN) ****//
			des_obj.className = des_obj.className.replace("_off", "_on")
			
			// DISPLAY LOADING VALUE/MESSAGE
			if(des_obj.nodeName=="INPUT"){
			//	des_obj.value = "loading... ("+ cntl +")"
			}else{
			//	des_obj.innerHTML = "<div id=loader class=loading align=center>loading... ["+ cntl +"]</div>"
			}
		}
		
		ajax_qs = ""
		src_obj = document.getElementById(src)
		
		// TYPE IF INFORMATION TO SEND
		if(src_obj){
			if(src_obj.nodeName=="INPUT"){
				// PASS FIELD VALUE
				ajax_qs = src_obj.name+"="+escape(src_obj.value) + "&"
			}else if(src_obj.nodeName=="FORM"){
				// PASS ALL FORM VALUES
				for(e=0;e<src_obj.elements.length;e++){
					if(src_obj.elements[e].name.length>0){
						ajax_qs = ajax_qs + src_obj.elements[e].name+"="+escape(src_obj.elements[e].value) + "&"
					}
				}
			}else if(src_obj.nodeName=="DIV"||src_obj.nodeName=="TD"||src_obj.nodeName=="P"){
				// PASS INNER HTML CONTENT
				ajax_qs = src_obj.name+"="+escape(src_obj.innerHTML) + "&"
			}
		}else{
			// PASS THE SRC_ID DIRECTLY (str)
			ajax_qs = src
		}
	// BUILD THE URL TO CONNECT TO
		url = cntl // +"?"+ ajax_qs;
	//	alert("AJAX REQUEST...\r\nSOURCE: ["+ src +"] \r\nDISPLAY: ["+ des +"] \r\nCONTROL: ["+ cntl +"] \r\nFUNCTION: ["+ func +"] \r\nURL: "+ url)
		
	// OPEN A CONNECTION TO THE SERVER
		xmlHttp.open("POST", url, false);
		xmlHttp.setRequestHeader("Content-type:", "application/x-www-form-urlencoded")
		
	// FUNCTION TO RUN AFTER A RESPONSE IS RECEIVED
		xmlHttp.onreadystatechange = function(){if(xmlHttp.readyState==4){parse_response(url, des, xmlHttp.responseText, func)}}
	
	// SEND REQUEST
		xmlHttp.send(ajax_qs)
}
function parse_response(url, des, txt, func){
	//alert("PARSE AJAX RESPONSE...\r\n URL: ["+ url +"]")
	
	if((txt.search("HTTP 404 - File not found"))>0){
		txt = "<div align=center style=color:#cc0000;font-variant:small-caps;font-size:11px;>connection problem<br><i>"+unescape(url)+"</i></div>"
	}
	
	obj = document.getElementById(des)
	if(obj){		
		if(obj.nodeName=="INPUT"){
			obj.value = txt
		}else{
			obj.innerHTML = txt
		}
	}else{
		alert("Sorry there was a problem with your request")
	//	alert(unescape(txt.replace("<br>", "\r\n")))
	}
	if(func.length>0&&func!="none"){
		execute_function = (func + "('" + escape(txt) + "')")
		eval(execute_function)
	}
}