﻿
var request;
var queryString;

function initReq(reqType,pageurl,response,isAsynch) {
  request.onreadystatechange = response;
  request.open(reqType,pageurl,isAsynch);
  request.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
  //multipart/form-data
  //
  request.send(queryString);
}

function httpRequest(reqType,pageurl,response,asynch) {
  if(window.XMLHttpRequest) {
    //Mozilla based Browser or IE 7 
    request = new XMLHttpRequest();
  }
  else if (window.ActiveXObject) {
    //multiple versions of IE browsers
    request = new ActiveXObject("Msxml2.XMLHTTP");
    if (!request) {
      request = new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
  if(request) {
    initReq(reqType,pageurl,response,asynch);
  }
  else {
    alert("Your browser does not permit use of all of these features");
  }
}
function ajaxSend(url, callback){
  // we use a javascript feature here called "inner functions"
  // using these means the local variables retain their values after the outer function
  // has returned. this is useful for thread safety, so
  // reassigning the onreadystatechange function doesn't stomp over earlier requests.
  function ajaxBindCallback() {
    updateStatus(ajaxRequest.readyState);
    if (ajaxRequest.readyState == 4) {
      if (ajaxCallback) {
        var response = ajaxRequest.responseText;
        ajaxCallback(response);
      }
      else {
        alert('no callback defined');
      }
    }
  }
  // use a local variable to hold our request and callback until the inner function is called...
  var ajaxRequest = "";
  var ajaxCallback = callback;
  // bind our callback then hit the server...
  if (window.XMLHttpRequest) {
    // moz et al
    ajaxRequest = new XMLHttpRequest();
    ajaxRequest.onreadystatechange = ajaxBindCallback;
    ajaxRequest.open("POST", url, true);
    var nothingness;
    ajaxRequest.send(" ");
  }
  else if (window.ActiveXObject) {
    // ie
    ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
    if (!ajaxRequest) {
      ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if (ajaxRequest) {
      ajaxRequest.onreadystatechange = ajaxBindCallback;
      ajaxRequest.open("POST", url, true);
      ajaxRequest.send(" ");
    }
  }
}
function updateStatus (state) {
  if(request != null)
    state = request.readyState;
  if(document.getElementById("statusImg") != null && state != null)
  {
  	if (state == 0) {
       document.getElementById("statusImg").style.visibility = "visible";
    }   
  	if (state == 1) {
       document.getElementById("statusImg").style.visibility = "visible";
    }   
  	if (state == 2) {
       document.getElementById("statusImg").style.visibility = "visible";
    }   
  	if (state == 3) {
       document.getElementById("statusImg").style.visibility = "visible";
    }   
  	if (state == 4) {
       document.getElementById("statusImg").style.visibility = "hidden";
    }   
  }
  if(document.getElementById("nextButton1holder") != null && state != null)
  {
  	if (state == 0) {
       document.getElementById("nextButton1holder").style.visibility = "visible";
    }   
  	if (state == 1) {
       document.getElementById("nextButton1holder").style.visibility = "visible";
    }   
  	if (state == 2) {
       document.getElementById("nextButton1holder").style.visibility = "visible";
    }   
  	if (state == 3) {
       document.getElementById("nextButton1holder").style.visibility = "visible";
    }   
  	if (state == 4) {
       document.getElementById("nextButton1holder").style.visibility = "hidden";
    }   
  }
  if(document.getElementById("nextButton2holder") != null && state != null)
  {
  	if (state == 0) {
       document.getElementById("nextButton2holder").style.visibility = "visible";
    }   
  	if (state == 1) {
       document.getElementById("nextButton2holder").style.visibility = "visible";
    }   
  	if (state == 2) {
       document.getElementById("nextButton2holder").style.visibility = "visible";
    }   
  	if (state == 3) {
       document.getElementById("nextButton2holder").style.visibility = "visible";
    }   
  	if (state == 4) {
       document.getElementById("nextButton2holder").style.visibility = "hidden";
    }   
  }
}
