/**********************************************************************


************************************************************************/


function getFunction(url,lang,type,target, method, returnFunc, data){
    //alert("URL=" + url + "\nLANGUAGE=" + lang + "\nTYPE=" + type + "\nTARGET=" + target + "\nMETHOD=" + method + "\nDATA=" + data);
    if(!method){method="get";}
    if(!lang){lang=currLang;}
    if(!type){type="txt";}
    if(!target){alert("Unable to perform request: Error target not set");}
    if(!url){url=currPage;}
    if(!returnFunc){returnFunc=processContent;}

    if(data == undefined || data == "undefined"){
        data = "";
    }

    if(method == "get"){
        link = "rpc.php?func=" + url + "&lang=" + lang + data;
        //alert(link);
        if(type == "txt"){
            getText(link, returnFunc, target);
        }
        else{
            getXml(link, returnFunc, target);
        }
    }
    if(method=="post"){
        link = "rpc.php";
        data = "func=" + url + "&lang=" + lang + data;

        if(type == "txt"){
            postDataGetText(link, data, returnFunc, target);
        }
        else{
            postDataGetXmlt(link, data, returnFunc, target);
        }
    }
}

function getContent(url,lang,type,target, method, returnFunc, dataToSend){
    //alert("URL=" + url + "\nLANGUAGE=" + lang + "\nTYPE=" + type + "\nTARGET=" + target + "\nMETHOD=" + method);
    if(!method){method="get";}
    if(!lang){lang=currLang;}
    if(!type){type="txt";}
    if(!target){alert("Unable to perform request: Error target not set");}
    if(!url){url=currPage;}else{currPage=url;}
    if(!returnFunc){returnFunc=processContent;}



    if(method == "get"){
        link = "rpc.php?page=" + url + "&lang=" + lang;
        if(type == "txt"){
            getText(link, returnFunc, target);
        }
        else{
            getXml(link, returnFunc, target);
        }
    }
    if(method=="post"){
        link = "rpc.php";
        data = "page=" + url + "&lang=" + lang + dataToSend;
        if(type == "txt"){
            postDataGetText(link, data, returnFunc, target);
        }
        else{
            postDataGetXmlt(link, data, returnFunc, target);
        }
    }
}

function createRequest(type) {
    try {
        request = new XMLHttpRequest();
        if(type == "xml"){
            request.overrideMimeType("text/xml");
        }
    } catch (tryMS) {
        try {
            request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (otherMS) {
            try {
                request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (failed) {
                request = null;
            }
        }
    }
    return request;
}

function getText(urlToCall, functionToCallBack, tField){
    var XMLHttpRequestObject = false;
    XMLHttpRequestObject = createRequest("txt");

    if(XMLHttpRequestObject){
        XMLHttpRequestObject.open("GET", urlToCall, tField);

        XMLHttpRequestObject.onreadystatechange = function(){
            if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200){
                //alert("Content = " + XMLHttpRequestObject.responseText + "\n target = " + tField);
                functionToCallBack(XMLHttpRequestObject.responseText, tField);
                delete XMLHttpRequestObject;
                XMLHttpRequestObject = null;
            }
        }
        XMLHttpRequestObject.send(null);
    }
}

function getXml(urlToCall, functionToCallBack, tField){
    var XMLHttpRequestObject = false;
    XMLHttpRequestObject = createRequest("xml");

    if(XMLHttpRequestObject){
        XMLHttpRequestObject.open("GET", urlToCall);

        XMLHttpRequestObject.onreadystatechange = function(){
            if (XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200){
                functionToCallBack(XMLHttpRequestObject.responseXML, tField);
                delete XMLHttpRequestObject;
                XMLHttpRequestObject = null;
            }
        }
        XMLHttpRequestObject.send(null);
    }
}

function postDataGetText(urlToCall, dataToSend, functionToCallBack, tField){
    var XMLHttpRequestObject = false;
    XMLHttpRequestObject = createRequest("txt");
    //alert(dataToSend);
    if(XMLHttpRequestObject){
        XMLHttpRequestObject.open("POST", urlToCall);
        XMLHttpRequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

        XMLHttpRequestObject.onreadystatechange = function(){
            if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200) {
                //alert("Content = " + XMLHttpRequestObject.responseText + "\n target = " + tField);
                functionToCallBack(XMLHttpRequestObject.responseText, tField);
                delete XMLHttpRequestObject;
                XMLHttpRequestObject = null;
            }
        }
        XMLHttpRequestObject.send(dataToSend);
    }
}

function postDataGetXml(urlToCall, dataToSend, functionToCallBack, tField){
    var XMLHttpRequestObject = false;
    XMLHttpRequestObject = createRequest("xml");

    if(XMLHttpRequestObject){
        XMLHttpRequestObject.open("POST", urlToCall);
        XMLHttpRequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        XMLHttpRequestObject.onreadystatechange = function(){
            if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200){
                functionToCallBack(XMLHttpRequestObject.responseXML, tField);
                delete XMLHttpRequestObject;
                XMLHttpRequestObject = null;
            }
        }
        XMLHttpRequestObject.send(dataToSend);
    }
}


