var XMLHTTP_PROGIDS = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0']

var HttpRequest   = {};
var requestStatus = "";

HttpRequest.getXmlhttpObject = function() {
    var http = null;
    var last_e = null;
    try{ http = new XMLHttpRequest(); }catch(e){}
    if(!http){
      for(var i=0; i<3; ++i){
        var progid = XMLHTTP_PROGIDS[i];
	try{
	  http = new ActiveXObject(progid);
	}catch(e){
	  last_e = e;
	}
        if(http){
	  XMLHTTP_PROGIDS = [progid];  // so faster next time
	  break;
	}
      }
    }
    if(!http){
        if(typeof(console) == 'object')
 	console.debug("XMLHTTP not available", last_e);
    }
    return http;
}

HttpRequest.getText = function(uri, async_cb, fail_ok){
	var http = this.getXmlhttpObject();
	if(async_cb){
		http.onreadystatechange = function(){
			if(4==http.readyState){
				if((!http["status"])||((200 <= http.status)&&(300 > http.status))){
					async_cb(http.responseText);
				}
			}
		}
	}
	http.open('GET', uri, async_cb ? true : false);
	try{
		http.send(null);
		if(async_cb){
			return null;
		}
		if((http["status"])&&((200 > http.status)||(300 <= http.status))){
			throw Error("Unable to load "+uri+" status:"+ http.status);
		}
	}catch(e){
		if((fail_ok)&&(!async_cb)){
			return null;
		}else{
			throw e;
		}
	}
	return http.responseText;
}

//setInterval(function() { HttpRequest.getText('/ajax.php?Action=UpdateActivity'); }, 30000);
