//READY STATE
var HTTP_RESPONSE_STATE_INITIALIZE = 0
var HTTP_RESPONSE_STATE_LOADING = 1
var HTTP_RESPONSE_STATE_LOADED = 2
var HTTP_RESPONSE_STATE_INTERACTIVE = 3
var HTTP_RESPONSE_STATE_COMPLETE = 4

var HTTP_RESPONSE_STATUS = 200

var m_sFunc = '';
function prepareAJAX(sFunc, xslpath, sdiv, itype) {
	var bErr = false;
	var sErr = '';
	var output = '';
	var objAjax = null;
	m_sFunc = sFunc + "(output, xslpath, sdiv,  itype)";
	
	if (document.implementation && document.implementation.createDocument) { // Mozilla
		try {
			objAjax = new XMLHttpRequest(); 
			if (objAjax.overrideMimeType) {
				objAjax.overrideMimeType('text/html');
			}				
		} catch (e) {
			bErr = true;
			sErr = e;
		}
		if (!bErr) 
			objAjax.onload = function () {
				if (objAjax.readyState == HTTP_RESPONSE_STATE_COMPLETE) {  // completely received
					if (objAjax.status == HTTP_RESPONSE_STATUS) {
						output = objAjax.responseText;
					} else {
						output="<ERROR><MSG>Error encountered while retrieving response.</MSG></ERROR>"
					}
					try {
						eval(m_sFunc);
					} catch(e) {
					}
				} else { // error encountered
					output="<ERROR><MSG>Error encountered while retrieving response.</MSG></ERROR>"
					eval(m_sFunc);
				}				
			};

	} else { // IE
		try {
			objAjax = new ActiveXObject("Microsoft.XMLHTTP"); 
		} catch (e) {
			bErr = true;
			sErr = e;		
		}
		if (!bErr)
			objAjax.onreadystatechange = function () {
				if (objAjax.readyState == HTTP_RESPONSE_STATE_COMPLETE) {  // completely received
					if (objAjax.status == HTTP_RESPONSE_STATUS) {
						output = objAjax.responseText;
						eval(m_sFunc);
					} else { 
						output="<ERROR><MSG>Error encountered while retrieving response.</MSG></ERROR>"
						eval(m_sFunc);
					}
				} 
			};
	}
	if (bErr) {
		alert("Unable to create a HTTP Request. " + sErr);
	}
	return (objAjax);	
}

function prepareAJAX_XMLDOM(sFunc, sdiv, mID) {
	var bErr = false;
	var sErr = '';
	var output = '';
	var objAjax = null;
	m_sFunc = sFunc + "(output, sdiv, mID)";
	if (document.implementation && document.implementation.createDocument) { // Mozilla
		try {
			objAjax = new XMLHttpRequest(); 			
			if (objAjax.overrideMimeType) {
				objAjax.overrideMimeType('text/xml');
			}				
		} catch (e) {
			bErr = true;
			sErr = e;
		}
		if (!bErr) 
			objAjax.onload = function () {
				if (objAjax.readyState == HTTP_RESPONSE_STATE_COMPLETE) {  // completely received
					if (objAjax.status == HTTP_RESPONSE_STATUS) {
						output = objAjax.responseText;
					} else {
						output="<ERROR><MSG>Error encountered while retrieving response.</MSG></ERROR>"
					}
					eval(m_sFunc);
				} else { // error encountered
					output="<ERROR><MSG>Error encountered while retrieving response.</MSG></ERROR>"
					eval(m_sFunc);
				}				
			};

	} else { // IE
		try {
			objAjax = new ActiveXObject("Microsoft.XMLHTTP"); 
		} catch (e) {
			bErr = true;
			sErr = e;		
		}
		if (!bErr)
			objAjax.onreadystatechange = function () {
				if (objAjax.readyState == HTTP_RESPONSE_STATE_COMPLETE) {  // completely received
					if (objAjax.status == HTTP_RESPONSE_STATUS) {
						output = objAjax.responseText;
						eval(m_sFunc);
					} else { 
						output="<ERROR><MSG>Error encountered while retrieving response.</MSG></ERROR>"
						eval(m_sFunc);
					}
				} 
			};
	}
	if (bErr) {
		alert("Unable to create a HTTP Request. " + sErr);
	}
	return (objAjax);	
}


function postForm(objAjax, sURL, sFormData) {	
	if (objAjax != null) {
		objAjax.open("POST", sURL, true);
		objAjax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); 		
		objAjax.send(sFormData);
	}
}

function postFormSync(objAjax, sURL, sFormData) {	
	if (objAjax != null) {
		objAjax.open("POST", sURL, false);				
		objAjax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); 		
		objAjax.send(sFormData);
	}
}

function getURLData(objAjax, sURL, sParam) {
	if (objAjax != null) {
		objAjax.open("GET", sURL, true);
		objAjax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); 		
		objAjax.send(sParam);
	}
}

function getURLDataSync(objAjax, sURL, sParam) {
	if (objAjax != null) {
		objAjax.open("GET", sURL, false);
		objAjax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); 		
		objAjax.send(sParam);
	}
}