/* create a AJAX Request , by jim huang, thanks: SAJAX library*/

function ajax_new(){
  var A;
 			
	var msxmlhttp = new Array(
		'Msxml2.XMLHTTP.5.0',
		'Msxml2.XMLHTTP.4.0',
		'Msxml2.XMLHTTP.3.0',
		'Msxml2.XMLHTTP',
		'Microsoft.XMLHTTP');
	for (var i = 0; i < msxmlhttp.length; i++) {
		try {
			A = new ActiveXObject(msxmlhttp[i]);
		} catch (e) {
			A = null;
		}
	}
	
	if(!A && typeof XMLHttpRequest != "undefined")
		A = new XMLHttpRequest();
	if (!A)
		alert("Could not create connection object.");
		
	return A;
}


function link_to_remote(url,params,targetDIV){
  var reqXML;

  reqXML = ajax_new(); 
  reqXML.onreadystatechange = function(){
    if (reqXML.readyState==4 || reqXML.readyState=="complete"){
      if(reqXML.responseText.length > 0){
        document.getElementById(targetDIV).innerHTML = reqXML.responseText;
      }
    }
    else{
      on_ajax_loading(targetDIV);
    }
  }
  
  /* send post data */
  reqXML.open("POST", url , true);
  reqXML.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
   
  
  reqXML.send(params);
}


/* refresh a page in AJAX way */
function refresh_remote(url,params){
  
  var reqXML;

  reqXML = ajax_new(); 
  reqXML.onreadystatechange = function(){
    if (reqXML.readyState==4 || reqXML.readyState=="complete"){
      if(reqXML.responseText.length > 0){ 
        document.body.innerHTML = reqXML.responseText;
      }
    }
  }
  
  /* send post data */
  reqXML.open("POST", url , true);
  reqXML.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
   
  reqXML.send(params);
}

function on_ajax_loading(targetDIV){
  /* to be overrided */
}

