﻿function createXMLHttpRequest1()
{   
    //alert('in getXMLHTTP');
    var A=null;
    try
    {
        A=new ActiveXObject('Msxml2.XMLHTTP');
        //alert("hier1");
    }
    catch(e)
    {
        try
        {   
            A=new ActiveXObject('Microsoft.XMLHTTP');
            //alert("hier2");
        }
        catch(oc){A=null;}
    }
    if(!A&&typeof XMLHttpRequest!='undefined')
        {
        A=new XMLHttpRequest();
        
        //alert("hier3");
        }
        //alert("A:"+A);
    return A;
}

function AjaxRequest(requestUrl ,methode, isAsynchrone, responseFunction)
{
        //arguments is een property van elke javascript functie
        //het is een array van alle meegegeven argumenten.
        
        //voor elk extra argument dat is meegegeven wordt beschouwt als een property.
        //een property bestaat uit een NAME en een VALUE,
        //deze worden meegegeven als post argumenten voor de asynchrone aanroep.
        //dus de url wordt er mee uitbreidt. 

        var requestString = "";
        for(i=0;i<arguments.length-4;i++)
        { 
            if(i==0)
            {
                requestString = arguments[i+4].Name+"="+arguments[i+4].Value;
            }
            else
            {
                requestString += "&"+arguments[i+4].Name+"="+arguments[i+4].Value;
            }
        }
        //alert(requestUrl);
        var RequestObject=createXMLHttpRequest1();
        if(RequestObject)
        {
             RequestObject.onreadystatechange=responseRequest;//responseRequest;//(xmlHttpRequestObject,reponseFunction);
            if(methode == "POST")
            {
                
                //alert('requestUrl ='+ requestUrl);
                //alert('requestString ='+ requestString);
                
                //RequestObjects[this.Index].setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')                                             
                RequestObject.open("POST",requestUrl,isAsynchrone);
                RequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
                RequestObject.send(requestString);
            }
            else
            {
                requestUrl += "?"+requestString
            RequestObject.open(methode,requestUrl,isAsynchrone);
            RequestObject.send('');
        }
            //alert(methode+" "+requestUrl+" "+isAsynchrone);
            
        }




    function responseRequest()
    {
    //alert('hier2'+SaveRequestObject.readyState);
    var xmlResponse;
     if(RequestObject.readyState==4)
        {
        //alert("test: "+RequestObject.responseText);

            if(RequestObject.status==200)
            {
                if (window.ActiveXObject)
                {
                    //alert(" is activeXObject");
                    xmlResponse = RequestObject.responseXML;
                }
                else 
                {
                    var parser=new DOMParser();
                    var text = RequestObject.responseText;
                    xmlResponse=parser.parseFromString(text,'text/xml');
                    
                 }
                var state = xmlResponse.getElementsByTagName("State")[0];
                //alert("State :"+state.firstChild.nodeValue);
                if(state.firstChild.nodeValue =="error")
                {
                    var errorMessage = xmlResponse.getElementsByTagName("ErrorMessage")[0];
                    alert(errorMessage.firstChild.nodeValue);
                    //EnableSite();  
                }
                else
                {
                responseFunction[0](xmlResponse);
                }   
            } 
   
            else
            {
               alert('ResponseGetCulture: There was a problem retrieving the data:\nRequest: '+requestUrl);
            }
        }
    }

}


