function getAsyncLoader() {
    var oL = null;
    
    if (window.XMLHttpRequest) {
        oL = new XMLHttpRequest();
    } else if (window.ActiveXObject){ 
	    try {
            oL = new ActiveXObject("Msxml2.XMLHTTP")
        } 
        catch (e){
            try{
                oL = new ActiveXObject("Microsoft.XMLHTTP")
            }
            catch (e){}
        }
    }
    else {
        return null;
    }
    return oL;
}

function startAsync(sURL,oL,fCallBack) {
	oL.onreadystatechange=function(){
        fCallBack(oL);
    }
    oL.open('GET',sURL , true)
    oL.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
    oL.send(null);
}

function asyncPost(sURL,sParams,oL,fCallBack) {
	
	oL.onreadystatechange=function(){
        fCallBack(oL);
    }
    oL.open('POST',sURL , true)
    oL.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
	oL.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	oL.setRequestHeader("Content-length", sParams.length);
	oL.setRequestHeader("Connection", "close");
    
    oL.send(sParams);
}

function doAsync(sURL,fCB) {
	oL = getAsyncLoader();
	startAsync(sURL,oL,fCB);
}

function asyncDone(oL) {
    if (oL.readyState == 4 && (oL.status==200 || window.location.href.indexOf("http")==-1)) {
	    return true;
    } 
   	return false;
}
