// -----------------------------------------------------------------------------
// A J A X
// functions to perform client/server communications

function createRequestObject()
{
  var req;
  
  // Provide the XMLHttpRequest class for IE 5.x-6.x:
  if( typeof XMLHttpRequest == "undefined" ) XMLHttpRequest = function() {
    try { return new ActiveXObject("Msxml2.XMLHTTP.6.0") } catch(e) {}
    try { return new ActiveXObject("Msxml2.XMLHTTP.3.0") } catch(e) {}
    try { return new ActiveXObject("Msxml2.XMLHTTP") } catch(e) {}
    try { return new ActiveXObject("Microsoft.XMLHTTP") } catch(e) {}
    throw new Error( "This browser does not support XMLHttpRequest." )
  };

  
  if(window.XMLHttpRequest)
  {
    req = new XMLHttpRequest();
  } 
  else if(window.ActiveXObject)
  {
    req = new ActiveXObject("Microsoft.XMLHTTP");
  }
  else
  {
    req = NULL;
    alert('Probleem met het aanmaken van het XMLHttpRequest object');
  }
  return req;
}
    
//var http = createRequestObject();


    
function sendRequest(url,data,box) 
{

  var http = createRequestObject();
  var ajaxProgressBox='';
  var ajaxProgressBoxOrg;
	//url=url.replace('[AMP]','&');
	//data=data.replace('[AMP]','&');

  ajaxProgressBox=document.getElementById(box);
  ajaxProgressBoxOrg=ajaxProgressBox.innerHTML;
  
  wbox=ajaxProgressBox.clientWidth;
  if (wbox>40)
    {x=(wbox-40)/2; w=40;}
  else
    {x=0;w=wbox;}
      
  hbox=ajaxProgressBox.clientHeight; 
  if (hbox>40)
    {y=(hbox-40)/2; h=40;}
  else
    {y=0;h=hbox;}  

//Voordat we de inhoud van de box vervangen snel nog even parsen
  data=ParseDatastring(data);
//alert(data);
  data+='&AJAX='+box;
  
  ajaxProgressBox.innerHTML='<IMG SRC='+_cfgBaseUrl+'/img/sys/ajaxLoading.gif '+
                            '  STYLE="position:absolute;top:'+y+'px;left:'+x+'px;'+
                            '  width:'+w+'px;height:'+h+';px">';
//alert(url+' : ----'+data);


  
  http.open('POST', url);
  http.setRequestHeader("Cache-Control", "no-cache");
  http.setRequestHeader("X_USERAGENT", 'ajax');
  http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  http.setRequestHeader('Connection', 'close');  
  http.onreadystatechange = handleResponse;
 
  http.send(data);

    
  function handleResponse()
  {
 
    if(http.readyState == 4 && http.status == 200)
    {
      if(http.responseText)
      {
        //document.getElementById("zoek_resultaten").innerHTML = http.responseText;
        //ajaxProgressBox.innerHTML='<IMG SRC=img/sys/ajaxProcessing.gif width=100% height=100%>'
        var dataAlsString = http.responseText;
        var dataAlsArray = new Array();
        dataAlsArray = dataAlsString.split('[END]');
//alert(dataAlsString);
        for ( var i in dataAlsArray )
        {
          var Command=dataAlsArray[i].split('||');

          switch(parseInt(Command[0]))
          {
            case -1:
              alert(Command[1]);
              break;
            case 0: //Box vullen
         // oude children nog verwijderen!!!!!!!   
						
              var box=document.getElementById(Command[1]);        
              box.innerHTML=Command[2];
              break;
            case 1: //Execute javascript 
            //_log(Command[1]);        
              eval(Command[1]);
              break; 
            //case 2: //Variab
            //  
            //  break; 
            case 3: //Restore Progressbox
              
              ajaxProgressBox.innerHTML=ajaxProgressBoxOrg;

              //ajaxProgressBoxOrg;
              break;  
            case 4: //Veld vullen met waarde
              setValue(Command[1],Command[2]);
              break;  
                         
          }        
        } 
  
      } 
      else 
      {
        //document.getElementById("zoek_resultaten").innerHTML = " &nbsp; ";
  
      }

    } 
    else 
    {
      
      //document.getElementById("zoek_resultaten").innerHTML = " &nbsp; ";
    }
    
  
  }
}

function ParseDatastring(txt)
{
  var elems=txt.split('%%');
  var odd=0;
  var res='';
  
  for (var i in elems)
  {
    if (odd==0)
    {
      res=res+elems[i];
    }
    else
    {
      val=getValue(elems[i]);
      res=res+val;
    }
    odd=1-odd;
  }
  return res;
}

function getValue(Name)
{

  var value=""+document.getElementById(Name).value;
  value=value.replace(/&/g,'[AMP]');
  value=encodeURI(value);

  return value;
}
function setValue(Name,Value)
{
  document.getElementById(Name).value=Value;
}




