/*
===============================================================

    © carelessWriting.com

    Dieses Skript ist Eigentum von carelessWriting.com.

    Unerlaubte Vervielfältigung wird strafrechtlich verfolgt.

===============================================================
*/


function CSAjax()
{
    var self = this;
    var ajaxBO;

    var lastAjaxRequest;
    var lastAjaxUrl;
    var lastAjaxQuery;


    if (window.XMLHttpRequest)
        ajaxBO = new XMLHttpRequest();
    else
        if (window.ActiveXObject)
        {
            try
            {
                ajaxBO = new ActiveXObject("Msxml2.XMLHTTP");
            }
            catch (ex)
            {
                try
                {
                    ajaxBO = new ActiveXObject("Microsoft.XMLHTTP");
                }
                catch (ex) {}
            }
        }
        else
        {
            alert("Nutzung mit diesem Medium nicht möglich!");
            return;
        }


    function ajaxCallback(responseHandler)
    {
        if (ajaxBO.readyState < 4) return;
        else responseHandler();
    }

    this.sendAjaxByGet = function(request, responseHandler, sync)
    {
        var async = sync ? false : true;

        setRequestParams(request);

        if (ajaxBO.readyState)
        {
            ajaxBO.abort();
        }

        ajaxBO.open("GET", request, async);
        if (async)
        {
            ajaxBO.onreadystatechange = function() { ajaxCallback(responseHandler); };
        }
        ajaxBO.send(null);

        if (!async) { responseHandler();}
    }

    function setRequestParams(request)
    {
        var urlParams = request.split('?');

        lastAjaxRequest = request;
        lastAjaxUrl = urlParams[0];
        lastAjaxQuery = urlParams[1];
    }

    this.getAjaxBO = function()
    {
        return ajaxBO;
    };


    this.getLastAjaxRequest = function()
    {
        return lastAjaxRequest;
    };

    this.getLastAjaxUrl = function()
    {
        return lastAjaxUrl;
    };

    this.getLastAjaxQuery = function()
    {
        return lastAjaxQuery;
    };
}
