﻿/**
 *@fileoverview AJAX工具包，所有功能经我测试已经通过，叫 beta3 是因为怕还有哪里没有测试到
 *json示例：{'sel':[{'text':'abc','value':'5'},{'text':'cba','value':'4'}]}
 *
 *@author 肖杰
 *@version 1.0 beta3
 */

AjaxUtil=function(){
	createXMLHttp=function(){
		if(window.XMLHttpRequest){
			return new XMLHttpRequest();
		}else if(window.ActiveXObject){
			var request = new ActiveXObject("Msxml2.XMLHTTP");
			if(!request){
				request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			return request;
		}
	}
	var xmlHttp=createXMLHttp();

	this.XMLHTTP=xmlHttp;

	this.doGET=function(url,pram,obj){
		xmlHttp.open("GET",url+"?"+pram,(typeof(arguments[4])=="undefined")?true:arguments[4]);
		if(arguments[3])
			xmlHttp.setRequestHeader("If-Modified-Since","0");
		xmlHttp.onreadystatechange=new Callback(obj);
		xmlHttp.send(null);
	}
	
	this.doPOST=function(url,pram,obj){
		xmlHttp.open("POST",url,(typeof(arguments[4])=="undefined")?true:arguments[4]);
		if(arguments[3])
			xmlHttp.setRequestHeader("If-Modified-Since","0");
		xmlHttp.onreadystatechange=new Callback(obj);
		xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
		xmlHttp.send(pram);
	}
	
	function Callback(obj){
		if(typeof obj=="function"){
			return obj;
		}

		switch(obj.tagName.toUpperCase()){
			case "DIV":
			case "SPAN":
				return innHtm;
			case "TEXTAREA":
			case "INPUT":
				return value;
			case "SELECT":
				return opt;
		}
		
		function innHtm(){
			if(xmlHttp.readyState==4){
				if(xmlHttp.status==200){
					obj.innerHTML=xmlHttp.responseText;
				}
			}
		}
		
		function value(){
			if(xmlHttp.readyState==4){
				if(xmlHttp.status==200){
					obj.value=xmlHttp.responseText;
				}
			}
		}
		
		function opt(){
			if(xmlHttp.readyState==4){
				if(xmlHttp.status==200){
					var json=eval("("+xmlHttp.responseText+")");
					obj.innerHTML="";
					var newOption=document.createElement("OPTION");
　　				newOption.text = "请选择...";
　　				newOption.value = "0";
　　				obj.options.add(newOption);
　　				for(i=0;i<json.sel.length;i++)
					{
						newOption=document.createElement("OPTION");
						newOption.text = json.sel[i].text
　　					newOption.value = json.sel[i].value;
　　					obj.options.add(newOption);
					}
				}
			}
		}
	}
}