window.loadpage = function(page_request, handlerFunction, callHandlerOnError)
{    
    if (page_request.readyState == 4)
    {
    	if ((page_request.status == 200 || page_request.status == 0) 
    		|| window.location.href.indexOf("http") == -1)
            handlerFunction(page_request.responseText);
		else if (callHandlerOnError)
			handlerFunction();
    }
}


function ajaxpage(url, handlerFunction, request, callHandlerOnError)
{
	var delimeter;
    if (url.indexOf("?") == -1)
    {
        delimeter = "?";
    }
    else
    {
        delimeter = "&";
    }


    var page_request = false
    if (window.XMLHttpRequest) // if Mozilla, Safari etc
        page_request = new XMLHttpRequest();
    else if (window.ActiveXObject) // if IE
    {
        try
        {
            var unique = Math.floor(Math.random() * 100);
            url = url + delimeter + unique;
            page_request = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            try
            {
                var unique = Math.floor(Math.random() * 100);
                url = url + delimeter + unique;
                page_request = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e)
            {
            }
        }
    }
    else
        return false;

    page_request.onreadystatechange = function()
    {        
        if (window.loadpage)
        {
        	window.loadpage(page_request, handlerFunction, callHandlerOnError);
		}
    }

    var method = "GET";
    //alert(request);
    if (request)
    {
        method = "POST";
    }

    page_request.open(method, url, true);

    if (!request)
    {
        request = null;
    }
    else
    {
        page_request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    }
    page_request.send(request);
    return page_request;
}

function AbortRequest(ajaxRequest)
{
	ajaxRequest.onreadystatechange = function(){};
	ajaxRequest.abort();
}
