﻿/* Basic Ajax Library */

function getXMLHttpRequest(){
	var objRequest
	try {
		objRequest = new XMLHttpRequest();
	} catch(err1) {
		try {
			objRequest = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (err2) {
			try {
				objRequest = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (err3) {
				objRequest = false;
			} 
		} 
	}
	return objRequest;
}

function AjaxProcessHTMLRequest(sURL,sPageElement,sLoadingHTML){
	if(sLoadingHTML != undefined){
		document.getElementById(sPageElement).innerHTML = sLoadingHTML
	}

	setTimeout("AjaxGetHTMLRequest('" + sURL + "','" + sPageElement + "')",1)
	//AjaxGetHTMLRequest(sURL,sPageElement)
}

function AjaxGetHTMLRequest(sURL,sPageElement){

	var http = getXMLHttpRequest()

	http.onreadystatechange = function() {AjaxHTMLResponse(http, sPageElement);};

	//--- Add random to break caching ---//
	sURL += (sURL.indexOf("?")>0)?"&":"?";
	sURL += "rnd=" + Math.random();
	
	http.open("GET", sURL);
	http.setRequestHeader("Content-type", "text/html");
	http.send(null);	
}

function AjaxHTMLResponse(http, sPageElement){
	if (http.readyState == 4) {
		if(http.status == 200) { 
			var sHTML = http.responseText;
			document.getElementById(sPageElement).innerHTML = sHTML;
		} else {
			//for debugging
			var sHTML = http.responseText;
			document.getElementById(sPageElement).innerHTML = sHTML;
		}
	}
}