
//var xmlHttp;

function GetXmlHttpObject()
{
    var xmlHttp = null;

    try
    {
        // Firefox, Opera 8.0+, Safari
        xmlHttp = new XMLHttpRequest();
    }
    catch (e)
    {
        // Internet Explorer
        try
        {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    
    if (!xmlHttp)
    {
        alert ("Your browser does not support AJAX!");
    }
    
    return xmlHttp;
}

function AJAXConnect (callback)
{
    if ((xmlHttp = GetXmlHttpObject()) == null)
    {
        return false;
    }
    
    xmlHttp.onreadystatechange = function()
    {
        if (xmlHttp.readyState == 4)
        {
            callback (xmlHttp.responseText);
        }
    }
}

function AJAXGet (url, parameters, callback)
{
    AJAXConnect (callback);

    xmlHttp.open ('GET', url + '?' + parameters, true);
    xmlHttp.send (null);
}

function AJAXPost (url, parameters, callback)
{
    AJAXConnect (callback);

    xmlHttp.open ('POST', url, true);

    xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xmlHttp.setRequestHeader("Content-length", parameters.length);
    xmlHttp.setRequestHeader("Connection", "close");

    xmlHttp.send (parameters);
}

function GetHelloEvent (Response)
{
    var debugbox = document.getElementById("debugbox");

    debugbox.innerHTML = Response;
        
    alert ('GetHelloEvent: ' + Response);
}

function GetHello()
{
    var url="myshop.php";
      
    AJAXGet (url, '', GetHelloEvent);
}

var PassControl;
function PassFunction(){} // This doesn't work as expected

function GetServerResponse (url, control)
{
    PassControl = control;

    var urlparts = url.split ('?');

    AJAXGet (urlparts[0], urlparts[1], GetServerResponseEvent);
}

function GetServerResponseEvent (response)
{
    PassControl.innerHTML = response;
    PassControl = undefined;
} 

function GetServerResponseWithPost (url, control, post)
{
    alert ("GetServerResponseWithPost is obsolete. Use AJAXGet"); 

    PassControl = control;
    PassFunction = post;

    var urlparts = url.split ('?');

    AJAXGet (urlparts[0], urlparts[1], GetServerResponseWithPostEvent);
}

function GetServerResponseWithPostEvent (response)
{
    PassControl.innerHTML = response;
    PassControl = undefined;

    PassFunction();
    PassFunction = undefined;
}

function GetServerResponseValue (url, control)
{
    PassControl = control;

    var urlparts = url.split ('?');

    AJAXGet (urlparts[0], urlparts[1], GetServerResponseValueEvent);
}

function GetServerResponseValueEvent (response)
{
    PassControl.value = response;
    PassControl = undefined;
} 

function GetServerResponseValueWithPost (url, control, post)
{
    alert ("GetServerResponseValueWithPost is obsolete. Use AJAXGet");
    PassControl = control;
    PassFunction = post;

    var urlparts = url.split ('?');

    AJAXGet (urlparts[0], urlparts[1], GetServerResponseValueWithPostEvent);
}

function GetServerResponseValueWithPostEvent (response)
{
    PassControl.value = response;
    PassControl = undefined;

    PassFunction();
    PassFunction = undefined;
}

function PostServerResponse (url, parameters, control)
{
    PassControl = control;

    AJAXPost (url, parameters, PostServerResponseEvent);
}

function PostServerResponseEvent (response)
{
    PassControl.innerHTML = response;
    PassControl = undefined;
}

function PostServerResponseWithPost (url, parameters, control, post)
{
    alert ("PostServerResponseWithPost is obsolete. Use AJAXPost");
    PassControl = control;
    PassFunction = post;

    AJAXPost (url, parameters, PostServerResponseWithPostEvent);
}

function PostServerResponseWithPostEvent (response)
{
    PassControl.innerHTML = response;
    PassControl = undefined;

    PassFunction();
    PassFunction = undefined;
}

function PostServerResponseValue (url, parameters, control)
{
    PassControl = control;

    AJAXPost (url, parameters, PostServerResponseWithPostEvent);
}

function PostServerResponseValueEvent (response)
{
    PassControl.value = response;
    PassControl = undefined;
}

function PostServerResponseValueWithPost (url, parameters, control, post)
{
    alert ("PostServerResponseValueWithPost is obsolete. Use AJAXPost");
    PassControl = control;
    PassFunction = post;

    AJAXPost (url, parameters, PostServerResponseValueWithPostEvent);
}

function PostServerResponseValueWithPostEvent (response)
{
    PassControl.value = response;
    PassControl = undefined;

    PassFunction();
    PassFunction = undefined;
}

