
/*
  State Description 
  0 The request is not initialized 
  1 The request has been set up 
  2 The request has been sent 
  3 The request is in process 
  4 The request is complete 
  
  
  for POST
  xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
  
  open(mode, url, async)
  
  PHP side XML: header ("Content-Type: text/xml");
  
*/

// Synchronous POST
function majax_post(script, post) {
  //return "test";
  var xmlHttp=GetXmlHttpObject();
  
  var url = 'majax.php?service=' + script;
  
  xmlHttp.open("POST",url,false);
  xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  //xmlHttp.setRequestHeader("Content-length", post.length);
  //xmlHttp.setRequestHeader("Connection", "close");

  xmlHttp.send(post);
  return xmlHttp.responseText;
}


// XML Type Syncronous
function xmajax(script, query) {
  var xmlHttp=GetXmlHttpObject();
  var url = 'majax.php?service=' + script + query;
  
  xmlHttp.open("GET", url, false);
  xmlHttp.send(null);
  return xmlHttp.responseXML;
}


// Asynchronous get
function majax(script, query, element) { 
  
  var xmlHttp=GetXmlHttpObject();
  
  var url = 'majax.php?service=' + script + query;
  
  xmlHttp.onreadystatechange=function() {
    if (xmlHttp.readyState==4) { 
      document.getElementById(element).innerHTML=xmlHttp.responseText;
    }
  }
  
  xmlHttp.open("GET",url,true);
  xmlHttp.send(null);
}


// synchronous, return a value
function majax_return(script, query) {
  
  var xmlHttp=GetXmlHttpObject();
  
  var url = 'majax.php?service=' + script + query;
  
  xmlHttp.open("GET",url,false);
  xmlHttp.send(null);
  return xmlHttp.responseText;
}


// get new ajax object
function GetXmlHttpObject() {
  var xmlHttp=null;
  
  // Firefox, Opera 8.0+, Safari
  try {
    xmlHttp=new XMLHttpRequest();
  }
  catch (e) {
    // Internet Explorer
    try {
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
      xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
  
  if (xmlHttp==null) {
    alert ("Your browser does not support AJAX!");
    return;
  } 
  else return xmlHttp;
}

