﻿function newXmlHttp(){
 var xmlhttp = false;
 try{
  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 }catch(e){
   try{
   //In older Microsoft browsers (IE 5 and 6):
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
   }catch(e){
     xmlhttp= false;
   }
   //In all modern browsers:
   if(!xmlhttp && document.createElement){
   xmlhttp = new XMLHttpRequest();
   }
 
   
}return xmlhttp;
}
/*############################################
   #    Orginal 
function buildQuery(frm)
{
	var query = "";
	
*/	
/*
var theForm = frm;

//----------------------------
   for(i=0; i<theForm.elements.length; i++){
   var alertText = ""
   //alertText += "Element Type: " + theForm.elements[i].type + "\n"

      if(theForm.elements[i].type == "text" || theForm.elements[i].type == "textarea" || theForm.elements[i].type == "button"){
       key2 = theForm.elements[i].name;
	   value2=theForm.elements[i].value; 
	  //alertText += "Element Value: " + theForm.elements[i].value + "\n"
	  alertText += key2 +"="+ value2 +"&";
	  alert(alertText)
      }
      else if(theForm.elements[i].type == "checkbox"){
      //alertText += "Element Checked? " + theForm.elements[i].checked + "\n"
      }
      else if(theForm.elements[i].type == "select-one"){
	  key2 = theForm.elements[i].name;
	  value2=theForm.elements[i].options[theForm.elements[i].selectedIndex].value; 
      //alertText += "Selected Option's Text: " + theForm.elements[i].options[theForm.elements[i].selectedIndex].text + "\n"
      alertText += key2 +"="+ value2 +"&";
	  alert(alertText)
	  }
	   else if(theForm.elements[i].type == "radio"){
	   key2 = theForm.elements[i].name;
      if (theForm.elements[i].checked){
	  value2= theForm.elements[i].value;
	  //alertText += "Radio Value: " + theForm.elements[i].value + "\n"
	  alertText += key2 +"="+ value2 +"&";
	  alert(alertText)
	  }
      }
	  else; alertText +=theForm.elements[i].name;
   //alert(alertText)
   }
*/
/*
//-------------------------------
	
	for(var i=0; i<frm.elements.length; i++)
	{    
		var key = frm.elements[i].name;
		var value = getElementValue(frm.elements[i]);
		//alert(frm.elements[i].name);
		if(key && value!='')
		{
			query += key +"="+ value +"&";
		}
	}
	return query;
}*/



/*############################################
   #    Orginal 
function getElementValue(formElement)
{
	if(formElement.length != null) var type = formElement[0].type;
	if((typeof(type) == 'undefined') || (type == 0)) var type = formElement.type;

	switch(type)
	{
		case 'undefined': return;

		case 'radio':
			//for(var x=0; x < formElement.length; x++)  ผิดๆ   
			if(formElement.checked)
			return formElement.value;
		

		case 'select-multiple':
			var myArray = new Array();
			for(var x=0; x < formElement.length; x++) 
				if(formElement[x].selected == true)
					myArray[myArray.length] = formElement[x].value;
			return myArray;

		case 'checkbox': return formElement.checked;
	    case 'hidden': return formElement.value;
		default: return formElement.value;
	}
}
*/
/* ############################################
   #    Orginal 
function AjaxSend(frm,theelement,targetUrl){

   xmlhttp= newXmlHttp();
   query = buildQuery(frm);
   url =targetUrl; 
   url = url+"?"+query;
   xmlhttp.open("POST",url,false);
   xmlhttp.send(null);
   document.getElementById(theelement).innerHTML = xmlhttp.responseText;
   
}
*/



  function buildQuery(form)
{
	var query = "";
	for(var i=0; i<form.elements.length; i++)
	{

		var key = form.elements[i].name;
		var value = escape(encodeURI(
getElementValue(form.elements[i])));
		if(key && value)
		{
			query += key +"="+ value +"&";
		}
	}
	return query;
} 
 
 function getElementValue (formElement)
{
	if(formElement.length != null) var type = formElement[0].type;
	if((typeof(type) == 'undefined') || (type == 0)) var type = formElement.type;

	switch(type)
	{
		case 'undefined': return;

		case 'radio': if(formElement.checked)return formElement.value;
                         else return "";
			/*for(var x=0; x < formElement.length; x++) 
				if(formElement[x].checked == true)
			return formElement[x].value;*/

		case 'select-multiple':
			var myArray = new Array();
			for(var x=0; x < formElement.length; x++) 
				if(formElement[x].selected == true)
					myArray[myArray.length] = formElement[x].value;
			return myArray;

		case 'checkbox':if(formElement.checked)return formElement.value;
		 else return "";
		// if(formElement.checked)alert(formElement.value);//return formElement.checked;
		 
	
		default: return formElement.value;
	}
}
 function AjaxSend(theelement,targetUrl,sid,form){
    
  var frm = typeof form != 'object' ? document.getElementById(form): form;

   xmlhttp= newXmlHttp();
   var method='GET';
   if(frm) {  query = buildQuery(frm); method='POST';}
   else query =  null;
  
    
   url = targetUrl; 
   url = url+"?AjaxMode=1&"+sid;
  
   xmlhttp.onreadystatechange = function()
          { 
 
				if(xmlhttp.readyState == 1){
				  document.getElementById("loading").style.display="";
	
				  }
                 if(xmlhttp.readyState == 3){ // Loading Request (Server -> Client)
                    document.getElementById("loading").style.display="none";
					
				  }
                if(xmlhttp.readyState == 4) {  
			
				   document.getElementById(theelement).innerHTML =  xmlhttp.responseText;// Return Request

                 }
   
            }
	
	xmlhttp.open(method,url,true);
	
	xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlhttp.send(query);
	
 }