//http_request is global handle to XMLHTTP instance
//TODO: rewrite to use an array of handles

function getResponse(type) {
   
    if (http_request.readyState == 4) {
        if (http_request.status == 200 ||http_request.status == 304 ) {
           if (type=='xml') {
              return http_request.responseXML;
           } else {
              return http_request.responseText;
           }
        } else {
            alert('getResponse:: There was a problem with the request. Status:'+ http_request.status);
            return false;
        }
    } else {
        return false;
    }
}

function getHTTPObject() {

	// var xmlhttp;
	// if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
	//   try {
	//     xmlhttp = new XMLHttpRequest();
	//   } catch (e) {
	//     xmlhttp = false;
	//   }
	// }
	// return xmlhttp;
	
	var xmlhttp;



			if (window.XMLHttpRequest) { // Mozilla, Safari,...

	       xmlhttp = new XMLHttpRequest();

	       if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {

	            xmlhttp = new XMLHttpRequest();

	       }

	   } else if (window.ActiveXObject) { // IE

	        try {

	            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");

	       }   catch (e) {

	                try {

	                    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

	                } catch (e) {}

	           }

	   } 

			return xmlhttp;

	

}
var http = getHTTPObject();

function sendRequest(async) {
  /* NOT! Print the message to use while checking the database: */
  /* We're assuming your accountEmail input ID is "theID" */
  //var name = document.getElementById(theID).value;
  //alert(requestPath+ escape(name));
  if(async== undefined || async ==null) async = true;
  if(!async) requestPath +='&RND='+Math.random();
  http.open("GET", requestPath, async);
  http.onreadystatechange = handleHttpResponse;
  http.send(null);
  //if(!async) handleHttpResponse(http.responseText);
}


function updateFormSync(content) {
  /* NOT! Print the message to use while checking the database: */
  /* We're assuming your accountEmail input ID is "theID" */
  //var name = document.getElementById(theID).value;
  //alert(requestPath+ escape(name));

  //"GET" or "POST"
  http.open("POST", requestPath+'&RND='+Math.random(), false);

	//Send the proper header information along with the request
	http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	http.setRequestHeader("Content-length", content.length);
	http.setRequestHeader("Connection", "close");

  http.onreadystatechange = handleHttpResponse;

  http.send(content);
}


//read all values in the form
function createQuery(form)
{
    var elements = form.elements;
    var pairs = new Array();

    for (var i = 0; i < elements.length; i++) {

        if ((name = elements[i].name) && (value = elements[i].value))
        if(elements[i].type == "radio")
        {
          if(elements[i].checked) pairs.push(name + "=" + encodeURIComponent(value));
        }
        else  pairs.push(name + "=" + encodeURIComponent(value));
      }
    //alert(pairs.join("\n"))  ;
    return pairs.join("&");
}

function handleHttpResponse() {
  if (http.readyState == 4) {
    results = http.responseText;
    /* Again, we're assuming your accountEmail input ID is "accountEmail" */
    /*  Print this message: */
	//alert(results);
    switch (task)
	{
		case "delete":
		   document.getElementById(theID).style.display="none";
		   break;
		case "validate":

			manager(results == 'true', theID);
		   //document.getElementById(theID).style.color=(results == 'true')?'black':'red';
		   
		   break;
		case "emptyField":
		   document.getElementById(theID).innerHTML="";
		   break;
		case "goUpdateResponse":
		   updateResponse(results);
		   break;
		case "saveQuestions":
 			break;
        case "changeValueIfCase":
             if(results.length>0) {
					document.getElementById(theID).innerHTML=results;
					document.getElementById("accountEmail").value = "";
				}
             break;

	}
   
  }
}
