var Ajax = 
{
	PostUrl:null, ///AJAX提交的文件地址
	Treat:null,///参数返回后的处理过程
	Method:"GET",///参数提交方式
	Async:true,///是否启用异步处理
	UpdateObj:null,//载入外部页面显示外部页面字符的elementid
	Param:Array(),
	IsXML:false,
	//获取浏览器xmlhttprequest对象，兼容ff,ie
	GetXmlHttpRequest:function()
	{
		var req;
		if (window.XMLHttpRequest) 
		{ // Mozilla, Safari,...
            req = new XMLHttpRequest();
            if (req.overrideMimeType) {
                req.overrideMimeType('text/xml');
            }
        } else if (window.ActiveXObject) { // IE

			var msxmls = ["MSXML3", "MSXML2", "Microsoft"];
			var returnObj
	
			for (var i=0; i < msxmls.length; i++) 
			{
				try 
				{
					req = new ActiveXObject(msxmls[i] + ".XMLHTTP");
					break;
				}
				catch (ex)
				{
					if (i==2)
					{						
						alert("JS_CLASS:ERROR:创建" + msxmls[i] + ".XMLHTTP" + "控件失败!");
					}
				}
			}
        }

		if (!req) 
		{
			alert("JS_CLASS:ERROR:组件创建失败\r\n由于您的浏览器版本太低，网站的某些功能无法使用.\r\n您可以升级您的浏览器到IE6.0以上版本");
			return false;
		}
		return req;
	},
	
	///推送数据
	SendRequest:function(url, params, HttpMethod)
	{
		
		if (!HttpMethod)
		{
   			 HttpMethod = "POST";
  		 }
		 var Obj=this.GetXmlHttpRequest();
		 var s=this.processChech(Obj,this.Treat,this.UpdateObj,this.IsXML)
		 Obj.onreadystatechange = s

		 if (url.indexOf('?')>-1)
		 {
		 	url = url +"&" + Math.floor(Math.random()*1000+1)
		 }
		 else
		 {
			url = url +"?" + Math.floor(Math.random()*1000+1)	 
		 }

		 if(HttpMethod=="POST")
		 {
				Obj.open(HttpMethod,url,this.Async);
				Obj.setRequestHeader("Method", "POST " + url + " HTTP/1.1");
				Obj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
				Obj.send(params);
		}
		else
		{
				Obj.open(HttpMethod,url,this.Async);
				Obj.send(params);
		}
		delete Obj;
		delete s;
	},
	
	///  添加参数
	AddParam:function(fileds,value)
	{
		this.Param.push(new Array(fileds,value));
	},
	
	///AJax执行方法
	Creat:function()
	{
		this.SendRequest(this.PostUrl,null,this.Method);		
	},
	/// get方式提交
	getCreat:function(posturl,treat,isXml)
	{
		this.PostUrl = posturl;
		this.Treat = treat;
		this.Method = "GET"
		this.IsXML = (isXml) ? isXml : false;
		
		this.SendRequest(this.PostUrl,null,this.Method);	
	},
	/// post方式提交
	postCreat:function(posturl,params,treat)
	{
		this.PostUrl = posturl;
		this.Treat = treat;
		this.Method = "POST";
		this.SendRequest(this.PostUrl,params,this.Method);
	},
	/// 直接更新页面中的某个标记的innerHTML
	Updater:function(rediv,url,showLoading)
	{
		if (showLoading!=null)
		{
			rediv.innerHTML = 'LOADING......';
		}
		this.PostUrl = url;
		this.UpdateObj = rediv;
		this.Creat();		
		this.UpdateObj = null;
	},
	Post:function(posturl,treat)
	{
		var _param = '';
		for (var i = 0 ;i < this.Param.length;i++)
		{
			_param += '&' + this.Param[i][0] + '=' + this.Param[i][1];	
		}
		this.postCreat(posturl,_param,treat)
		this.Param = new Array();
	},
	///回调方法
	processChech:function(mobject,f,updateobj,isXml)
	{
		return function()
		{	
		  if (mobject.readyState == 4) 
			{				
			
				var state=mobject.status;
				if (state==404)
				{
					alert("JS_CLASS:ERROR:请求页面不存在");
					return false;					
				}
				else if(state<200)
				{
					alert("JS_CLASS:ERROR:客户端错误:"+state.statusText);
					return false;
				}
				else if(state==200)
				{
				
					//var text = mobject.responseText;
				
					var text = (isXml &&  mobject.responseXML ) ? mobject.responseXML : mobject.responseText;
					if (updateobj!= null)
					{
						Ajax.setInnerHTML(updateobj,text);
					}
					else
					{
						f(text);
					}

				}
			}
			
		}		
	},

	setInnerHTML:function (el, htmlCode) {
		var ua = navigator.userAgent.toLowerCase();
		if (ua.indexOf('msie') >= 0 && ua.indexOf('opera') < 0) {
			htmlCode = '<div style="display:none">for IE</div>' + htmlCode;
			htmlCode = htmlCode.replace(/<script([^>]*)>/gi,
										'<script$1 defer>');
			el.innerHTML = htmlCode;
			el.removeChild(el.firstChild);
		} else {
			var el_next = el.nextSibling;
			var el_parent = el.parentNode;
			el_parent.removeChild(el);
			el.innerHTML = htmlCode;
			if (el_next) {
				el_parent.insertBefore(el, el_next)
			} else {
				el_parent.appendChild(el);
			}
		}
	}

	
}

