//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {
 if (window.XMLHttpRequest) {
    return new XMLHttpRequest(); //Mozilla, Safari ...
 } else if (window.ActiveXObject) {
    return new ActiveXObject("Microsoft.XMLHTTP"); //IE
 } else {
    //Display our error message
    alert("Il tuo browser non supporta gli oggetti XmlHttpRequest.");
 }
}

//Our XmlHttpRequest object
var receiveReq = getXmlHttpRequestObject();
// need to get global if I want to get into updatePage...
var globalName;


//Initiate the AJAX request
function makeRequest(url, param) {
 //If our readystate is either not started or finished, initiate a new request
 if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
   //Set up the connection to captcha_test.html. True sets the request to asyncronous(default)
   receiveReq.open("POST", url, true);

   receiveReq.onreadystatechange = updatePage;
   receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
   receiveReq.setRequestHeader("Content-length", param.length);
   receiveReq.setRequestHeader("Connection", "close");

   //Make the request
   receiveReq.send(param);
 }
}

//Called every time our XmlHttpRequest objects state changes
function updatePage() {
 //Check if our response is ready
 if (receiveReq.readyState == 4) {
   if (receiveReq.status == 200) {
      //Set the content of the DIV element with the response text
      res=document.getElementById(globalName+"-"+"response");
      res.innerHTML = receiveReq.responseText;
   } else {
      res=document.getElementById(globalName+"-"+"response");
      res.innerHTML = "Request timeout on server " + receiveReq.status;
   }
   // re-enable button
   res=document.getElementById(globalName+"-"+"btnSubmit");
   res.disabled = false;

   //Get a reference to CAPTCHA image
   img=document.getElementById(globalName+"-"+"secimage");
   //Change the image
   // img.src = '/gm/dokuwiki/lib/tpl/gm1/securimage_show.php?sid=' + Math.random();
   img.src = '/dokuwiki/lib/tpl/gm1/securimage_show.php?sid=' + Math.random();
 }
}

//Called every time when form is perfomed
function getParam(obj) {
  // var url = '/gm/dokuwiki/lib/tpl/gm1/processform.php';
  var url = '/dokuwiki/lib/tpl/gm1/processform.php';
  var getstr = "";
  var prefix=obj;

  // references for operations
  // '-response';
  // '-secimage';
  globalName=prefix;

  // fields
  var arrFields=new Array("name", "email", "text", "code", "msgid", "sender", "srcip");
  for (i=0; i<arrFields.length; i++){
    //alert(prefix+arrFields[i]);
    curObj=document.getElementById(prefix+"-"+arrFields[i]);
    val=encodeURIComponent(curObj.value);
    if (val=="") {
      alert("Errore: tutti i campi devono essere inseriti correttamente");
      return;
    }
    getstr += arrFields[i] + "=" + val + "&";
  }
  // get rid of last '&'
  getstr=getstr.substring(0,getstr.length-1);
  //alert(getstr);
  res=document.getElementById(globalName+"-"+"response");
  res.innerHTML = "Stiamo inviando il messaggio...";

//   var loadingImg = document.createElement('img');
//   loadingImg.src = '/dokuwiki/lib/tpl/gm1/img/working.gif';
//   res.appendChild(loadingImg);

  // disable submit button
  res=document.getElementById(globalName+"-"+"btnSubmit");
  res.disabled = true;
  makeRequest(url, getstr);
}
