﻿// Request currently being processed
var currentRequest=null;

// AjaxRequest object
function AjaxRequest(url,rh){
	this.url=url;
	this.rh=rh;
}

// Send request
AjaxRequest.prototype.send=function(bAsync){
	if ((currentRequest==null)&&(http)){
	    http.open("GET",this.url,bAsync);
		http.onreadystatechange=handleHttpResponse;
		currentRequest=this;
		http.send(null);
	}
}

// Get response
AjaxRequest.prototype.response=function(){
	return this.responseText;
}

// Handles response
function handleHttpResponse(){
	if((http.readyState==4)&&(http.responseText.indexOf('invalid')==-1)){
		currentRequest.responseText=http.responseText;
		if(currentRequest.rh!=null)currentRequest.rh(http.responseXML);
		currentRequest=null;
	}
}

// Initialize HTTP object
function getHTTPObject() {
	var xmlhttp;
	/*@cc_on
	@if (@_jscript_version >= 5)
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	}catch(e){
		try{
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		}catch(E){
			xmlhttp=false;
		}
	}
	@else
	xmlhttp=false;
	@end @*/
	if (!xmlhttp && typeof XMLHttpRequest!='undefined'){
		try{
			xmlhttp=new XMLHttpRequest();
			xmlhttp.overrideMimeType("text/xml"); 
		} catch(e){
			xmlhttp=false;
		}
	}
	return xmlhttp;
}

// Create http object
var http=getHTTPObject();

