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


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

currLang = "nl";
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(!url){url=currPage;}else{currPage=url;}
    if(!returnFunc){returnFunc=processContent;}
    if(!target){alert("Unable to perform request: Error target not set");}
    else{
        if(method == "get"){
            link = "rpc.php?func=" + url + "&lang=" + lang + data;
            if(type == "txt"){
                getText(link, returnFunc, target);
            }
            else{
                getXml(link, returnFunc, target);
            }
        }
        if(method=="post"){
            link = "rpc.php";
            data = "&func=" + url + "&lang=" + lang + data;
            //alert (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 + "data=" + dataToSend);
    if(!method){method="post";}
    if(!lang){lang=currLang;}
    if(!type){type="txt";}
    if(!url){url=currPage;}else{currPage=url;}
    if(!returnFunc){returnFunc=processContent;}
    if(!target){alert("Unable to perform request: Error target not set");}
    else{
        if(method == "get"){
            link = "rpc.php?main=" + url + "&lang=" + lang;
            
            if(type == "txt"){
                getText(link, returnFunc, target);
            }
            else{
                getXml(link, returnFunc, target);
            }
        }
        if(method=="post"){
            link = "rpc.php";
            //alert(link + "&func = " + returnFunc);
            data = "main=" + 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");
    //alert(urlToCall);
    if(XMLHttpRequestObject){
        XMLHttpRequestObject.open("GET", urlToCall, true);

        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, true);

        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(urlToCall  + "?" + dataToSend);
    if(XMLHttpRequestObject){
        XMLHttpRequestObject.open("POST", urlToCall, true);
        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, true);
        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);
    }
}


