var req;
var req2;
var req3;
var req4 = false;

function makePOSTRequest( url , params )
{
    if( window.XMLHttpRequest )
    {
        req4 = new XMLHttpRequest();
        req4.onreadystatechange = processAjaxData;
        req4.open( "POST", url , true );
        if (req4.overrideMimeType) 
        {
            // set type accordingly to anticipated content type
            req4.overrideMimeType('text/xml');
            //http_request.overrideMimeType('text/html');
        }
        
        //req4.overrideMimeType('text/html');
        req4.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
        req4.send( params );
    } 
    else if( window.ActiveXObject )
    {
        req4 = new ActiveXObject("Microsoft.XMLHTTP");
        
        if( req4 ) 
        {
            req4.onreadystatechange = processAjaxData;
            req4.open( "POST" , url , true );
            //req4.overrideMimeType('text/html');
            req4.setRequestHeader( 'Content-Type' , 'application/x-www-form-urlencoded' );
            req4.send( params );
        }
    }   
}

function processAjaxData()
{
    if( req4.readyState == 4 ) 
      if( req4.status == 200 )
      {
        response  = req4.responseXML.documentElement;
        method    = response.getElementsByTagName('method')[0].firstChild.data;
        result    = response.getElementsByTagName('result')[0].firstChild.data;
        eval( method + '(\'\', result)' );
      } 
}

function loadXMLDoc( url )
{
    if( window.XMLHttpRequest ) // branch for native XMLHttpRequest object
    {
        req = new XMLHttpRequest();
        req.onreadystatechange = processReqChange;
        req.open( "GET", url, true );
        req.send( null );
    } 
    else if( window.ActiveXObject ) // branch for IE/Windows ActiveX version
    {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if( req ) 
        {
            req.onreadystatechange = processReqChange;
            req.open("GET", url, true);
            req.send();
        }
    }
}

function processReqChange()
{
    if( req != undefined && req.readyState == 4 ) // only if req shows "complete"
    {
        if (req.status == 200 ) // only if "OK"
        {   // ...processing statements go here...
            response  = req.responseXML.documentElement;
            if( response == null ) return false;
            method    = response.getElementsByTagName('method')[0].firstChild.data;
            result    = response.getElementsByTagName('result')[0].firstChild.data;
            eval( method + '(\'\', result)' );
        } 
        else 
            alert("There was a problem retrieving the XML data:\n" + req.statusText);
    }
}



function loadXMLDoc2( url )
{
    if( window.XMLHttpRequest ) // branch for native XMLHttpRequest object
    {
        req2 = new XMLHttpRequest();
        req2.onreadystatechange = processReqChange2;
        req2.open( "GET", url, true );
        req2.send( null );
    } 
    else if( window.ActiveXObject ) // branch for IE/Windows ActiveX version
    {
        req2 = new ActiveXObject("Microsoft.XMLHTTP");
        if( req2 ) 
        {
            req2.onreadystatechange = processReqChange2;
            req2.open("GET", url, true);
            req2.send();
        }
    }
}

function processReqChange2()
{
    if( req2 != undefined && req2.readyState == 4 ) // only if req shows "complete"
    {
        if (req2.status == 200 ) // only if "OK"
        {   // ...processing statements go here...
            response  = req2.responseXML.documentElement;
            if( response == null ) return false;
            method    = response.getElementsByTagName('method')[0].firstChild.data;
            result    = response.getElementsByTagName('result')[0].firstChild.data;
            eval( method + '(\'\', result)' );
        } 
        else 
            alert("There was a problem retrieving the XML data:\n" + req2.statusText);
    }
}

function loadXMLDoc3( url )
{
    if( window.XMLHttpRequest ) // branch for native XMLHttpRequest object
    {
        req3 = new XMLHttpRequest();
        req3.onreadystatechange = processReqChange3;
        req3.open( "GET", url, true );
        req3.send( null );
    } 
    else if( window.ActiveXObject ) // branch for IE/Windows ActiveX version
    {
        req3 = new ActiveXObject("Microsoft.XMLHTTP");
        if( req3 ) 
        {
            req3.onreadystatechange = processReqChange3;
            req3.open("GET", url, true);
            req3.send();
        }
    }
}

function processReqChange3()
{
    if( req3 != undefined && req3.readyState == 4 ) // only if req shows "complete"
    {
        if (req3.status == 200 ) // only if "OK"
        {   // ...processing statements go here...
            response  = req3.responseXML.documentElement;
            if( response == null ) return false;
            method    = response.getElementsByTagName('method')[0].firstChild.data;
            result    = response.getElementsByTagName('result')[0].firstChild.data;
            eval( method + '(\'\', result)' );
        } 
        else 
            alert("There was a problem retrieving the XML data:\n" + req3.statusText);
    }
}

function loadXMLDoc4( url )
{
    if( window.XMLHttpRequest ) // branch for native XMLHttpRequest object
    {
        req4 = new XMLHttpRequest();
        req4.onreadystatechange = processReqChange4;
        req4.open( "GET", url, true );
        req4.send( null );
    } 
    else if( window.ActiveXObject ) // branch for IE/Windows ActiveX version
    {
        req4 = new ActiveXObject("Microsoft.XMLHTTP");
        if( req4 ) 
        {
            req4.onreadystatechange = processReqChange3;
            req4.open("GET", url, true);
            req4.send();
        }
    }
}

function processReqChange4()
{
    if( req4 != undefined && req4.readyState == 4 ) // only if req shows "complete"
    {
        if (req4.status == 200 ) // only if "OK"
        {   // ...processing statements go here...
            response  = req4.responseXML.documentElement;
            if( response == null ) return false;
            method    = response.getElementsByTagName('method')[0].firstChild.data;
            result    = response.getElementsByTagName('result')[0].firstChild.data;
            eval( method + '(\'\', result)' );
        } 
        else 
            alert("There was a problem retrieving the XML data:\n" + req3.statusText);
    }
}