// ajax.js  by Jason.Kang

function createXmlHttpObject(){
  var xmlHTTP = false;
  
  try{
    xmlHTTP = new XMLHttpRequest();
  }
  catch(e){
    var aryXmlHttp = new Array('MSXML2.XMLHTTP','Microsoft.XMLHTTP','MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0');
    for (var i = 0; i < aryXmlHttp.length && !xmlHTTP; i ++){
      try{
        xmlHTTP = new ActiveXObject(aryXmlHttp[i]);
      } 
      catch(e){}
    }
  }
  
  if (!xmlHTTP){
    alert('Failed to create the XMLHttpRequest object.');
  }
  else{
    return xmlHTTP;
  }
}

var xmlHTTP = createXmlHttpObject();

// Public
function getData(dataSource, divID){
  if(xmlHTTP){
    dataSource += '&parm=' + new Date().getTime();
    var objDiv = document.getElementById(divID);
    xmlHTTP.open('GET', dataSource);
    xmlHTTP.onreadystatechange = function(){
      try{
        switch(xmlHTTP.readyState){
          case 4:
            if(xmlHTTP.status == 200){
              objDiv.innerHTML = xmlHTTP.responseText;
            }
            else{
              objDiv.innerHTML = '<center><br><br><br>Failed to load datas.</center>';
            }
            break;
        }
      }
      catch(e){}
    }
    try{
      xmlHTTP.send(null);
    }
    catch(e){}
  }
}

// Public
function postData(dataSource, divID){
  if(xmlHTTP){
    xmlHTTP.open('POST', dataSource);
    xmlHTTP.setRequestHeader('Method', 'POST ' + dataSource + ' HTTP/1.1');
	  xmlHTTP.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    
    xmlHTTP.onreadystatechange = function(){
      try{
        if (xmlHTTP.readyState == 4 && xmlHTTP.status == 200){
          var objDiv = document.getElementById(divID);
          objDiv.innerHTML = xmlHTTP.responseText;
        }
      }
      catch(e){}
    }
    
    dataSource += '&parm=' + new Date().getTime();
    try{
      xmlHTTP.send(dataSource);
    }
    catch(e){}
  }
}