var requester = null;
var EventCallMethodText = null;
var EventCallMethodXML = null;

function createXMLHttpRequest() {
   try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {}
   try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {}
   try { return new XMLHttpRequest(); } catch(e) {}
   alert("XMLHttpRequest not supported");
   return null;
 }


function callEventMethod()
{
	//confirm(requester.responseText);
	var receipt = document.getElementById("receipt");

	if (EventCallMethodText != null)
		if (requester.responseText.length != 0 )
			EventCallMethodText(requester.responseText);
	if (EventCallMethodXML != null)
		EventCallMethodXML(requester.responseXML);
		

	return true;
}

function onreadystatechangeReceipt()
{
    if (requester != null)
    {
        //confirm('onreadystatechangeReceipt state=' + requester.readyState);
    	 /* If XMLHR object has finished retrieving the data */
    	if (requester.readyState == 4) 
    	{
    	    /* If the data was retrieved successfully */
    		if (requester.status == 200)
    		{
    			callEventMethod();
    		}
    		/* IE returns a status code of 0 on some occasions, so ignore this case */
    		else if (requester.status == 404)
    		{
    			alert("There was an error while retrieving the URL: " + requester.statusText);
    		}
    		else
    		{
    			alert("Error in ajax request = " + requester.status + "!"); 
    		}
    	}
    	else
    	{
    		 //alert("There was an error while retrieving the URL: " + requester.statusText);	    
    	}
    }
	return true;
}

function DoAjaxRequest(param_url, pEventCallMethodText, pEventCallMethodXML )
{
	EventCallMethodText = pEventCallMethodText;
	EventCallMethodXML = pEventCallMethodXML;
	
	//confirm("DoAjaxRequest"); 
	
	/* Check for running connections */
	if (requester != null && requester.readyState != 0 && requester.readyState != 4)
	{
		requester.abort();  
	}

	requester = createXMLHttpRequest();

	requester.onreadystatechange = onreadystatechangeReceipt;

	requester.open("GET", param_url);
	requester.send(null); 
	
	return true;
}

function DoAjaxRequestSynch(param_url, pEventCallMethodText, pEventCallMethodXML )
{
	EventCallMethodText = pEventCallMethodText;
	EventCallMethodXML = pEventCallMethodXML;
	
	//confirm("DoAjaxRequest"); 
	
	/* Check for running connections */
	if (requester != null && requester.readyState != 0 && requester.readyState != 4)
	{
		requester.abort();  
	}

	requester = createXMLHttpRequest();

	requester.onreadystatechange = onreadystatechangeReceipt;

	requester.open("GET", param_url, false);
	requester.send(null); 
	
	onreadystatechangeReceipt();
	
	return true;
}
