function AjaxRequest()
{
	var httpRequest;
	if (window.ActiveXObject) { // IE
	    httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
	} else if (window.XMLHttpRequest) { // Mozilla, Safari, ...
	    httpRequest = new XMLHttpRequest();
	    httpRequest.overrideMimeType('text/xml');
	} 

  	return httpRequest;
}

function HttpGetRequest(url, trackURL, func, funcParams) {
	var req = new AjaxRequest();
	if (req) {
		req.onreadystatechange = function() {
	    	if (req.readyState == 4){
		    //statusDiv.innerHTML = "COMPLETE";
		    //statusDiv.innerHTML = req.responseText;
		    if(trackingEnabled == true)
			    pageTracker._trackPageview(trackURL);
		    func(req.responseText, funcParams);
		  }
	    };
	    req.open("GET", url, true);
	    req.send(null);
	    return true;
    } else {
    	alert("Could not create AJAX request object");
    	return false;
    }
}

function HttpGetRequestSync(url, trackURL, func, funcParams) {
	var req = new AjaxRequest();
	if (req) {
		req.onreadystatechange = function() {
	    	if (req.readyState == 4){
		    //statusDiv.innerHTML = "COMPLETE";
		    //statusDiv.innerHTML = req.responseText;
		    if(trackingEnabled == true)
			    pageTracker._trackPageview(trackURL);
		    func(req.responseText, funcParams);
		  }
	    };
	    req.open("GET", url, false);
	    req.send(null);
	    return true;
    } else {
    	alert("Could not create AJAX request object");
    	return false;
    }
}

function HttpPostRequest(url, trackURL, parameters, func, funcParams) {
	var req = new AjaxRequest();
	if (req) {
	    req.onreadystatechange = function() {
	    	if (req.readyState == 4){
		    //statusDiv.innerHTML = "COMPLETE";
		    //statusDiv.innerHTML = req.responseText;
		    //pageTracker._trackPageview("/" + func ); } 
		    if(trackingEnabled == true)
			    pageTracker._trackPageview(trackURL);
		    func(req.responseText, funcParams);
		  }
	    };
	    req.open('POST', url, true);
      	req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      	req.setRequestHeader("Content-length", parameters.length);
      	req.setRequestHeader("Connection", "close");
      	req.send(parameters);
	    return true;
    } else {
    	alert("Could not create AJAX request object");
    	return false;
    }
}

function HttpPostRequestSync(url, trackURL, parameters, func, funcParams) {
	var req = new AjaxRequest();
	if (req) {
	    req.onreadystatechange = function() {
	    	if (req.readyState == 4){
		    //statusDiv.innerHTML = "COMPLETE";
		    //statusDiv.innerHTML = req.responseText;
		    //pageTracker._trackPageview("/" + func ); } 
		    if(trackingEnabled == true)
			    pageTracker._trackPageview(trackURL);
		    func(req.responseText, funcParams);
		  }
	    };
	    req.open('POST', url, false);
      	req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
      	req.setRequestHeader("Content-length", parameters.length);
      	req.setRequestHeader("Connection", "close");
      	req.send(parameters);
	    return true;
    } else {
    	alert("Could not create AJAX request object");
    	return false;
    }
}
