function makeGETRequests( requestsArgsArray ){

	var requestArray = new Array();

	for(var i=0; i < requestsArgsArray.length; i++){
	
		var newRequest = new HttpRequest(requestsArgsArray[0], 'GET', null, requestsArgsArray[1], requestsArgsArray[2]);
	
		if(i > 0)
			requestArray[i - 1].setNextRequest( newRequest );
	
		requestArray.push(newArray);
	
	}
	
	requestArray[0].send();
	
}


function httpreq(url, func, errfunc){

	makeHTTPRequest(url, 'GET', null, func, errfunc);

}

function makeHTTPRequest(url,method,params,func,errfunc){

	new HttpRequest(url,method,params,func,errfunc).send();
	
}

function HttpRequest(url, method, params, func, errfunc){

	this.url = url;
	this.successHandler = func;
	this.errorHandler = errfunc;
	this.requestMethod = method;
	this.requestParams = params;
	
	this.requestObject = null;
	
	this.nextRequest = null;
	
}

HttpRequest.prototype.setNextRequest = function(req){

	this.nextRequest = req;

}

HttpRequest.prototype.send = function(){
	
	var httpReq = this;

	var req = HttpRequest.loadXMLDoc(httpReq.url, httpReq.requestMethod, httpReq.requestParams);
	
	this.requestObject = req;
	
	req.onreadystatechange=function(){
  	if(req.readyState==4){
			if(req.status == 200){
			
				httpReq.successHandler(req);
				
				if(httpReq.nextRequest)
					httpReq.nextRequest.send();
				
			}else{
			
				var errorHeader = req.getResponseHeader("Error");
				
				httpReq.errorHandler(errorHeader);
				
			}
		}
	}
}

HttpRequest.createRequestObject = function() {
	// find the correct xmlHTTP, works with IE, FF and Opera
	var xmlhttp;
	try {
  	xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  }
  catch(e) {
    try {
    	xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch(e) {
    	xmlhttp = null;
    }
  }
  if(!xmlhttp && typeof XMLHttpRequest != "undefined") {
  	xmlhttp = new XMLHttpRequest();
  }
	return  xmlhttp;
}

HttpRequest.getResponseXML = function(req){
	var xmlDocument = null;

	if(req.responseXML){
		xmlDocument = req.responseXML;
	}else{
		var xmlDocument = new ActiveXObject("Microsoft.XMLDOM");
		xmlDocument.loadXML(req.repsonseText);
	}
	
	return xmlDocument;
}

HttpRequest.loadXMLDoc = function(url,method,params){
	var req = HttpRequest.createRequestObject();
  
  var urlToLoad = url+(url.indexOf('?')!=-1?"&d="+new Date().valueOf():"");
  
  req.open(method, urlToLoad, true);
  
  if(method == 'POST'){

	  req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	  
  }
  
	req.send(params);
	
	return req;
}
