
var request;
var isShowTip=1;//是否显示加载提示
var x=0,y=0;//数据加载提示容器的显示位置
var loadMsg="<img src='/images/share/loading.gif' border=0/>";
document.write("<div id=\"loadPlace\" style=\"display:none;position:absolute;  z-index:1; top: 180px;\">"+loadMsg+"</div>");
var errorMsg="出错了！错误代码";
var mainPlace="";//显示内容的标签的id
var objLoadPlace=document.getElementById("loadPlace");//显示加载提示内容的容器
function getLoadPlace(){
  if(objLoadPlace==null) objLoadPlace=document.getElementById("loadPlace");//显示加载提示内容的容器	
}

function setXY(){
	y=window.screen.availHeight/2-290;
	x=document.body.clientWidth/2-100; 
} 

//设置加载提示容器的位置
function changePosition(){
   setXY();
   getLoadPlace();
   objLoadPlace.style.top=y;
   objLoadPlace.style.left=x;
}

function createRequest() {
  //if (request) return;

  if (window.XMLHttpRequest) { // Mozilla, Safari,...
     request = new XMLHttpRequest();
     if (request.overrideMimeType) {
        request.overrideMimeType('text/xml');
     }
   } else if (window.ActiveXObject) { // IE
      var IEXMLHttpVersion = ["MSXML2.XMLHttp","Microsoft.XMLHttp","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp.4.0",];
      //for Microsoft Internet Explorer
      for(var i= 0 ;i < IEXMLHttpVersion.length; i++){
        try{
          request = new ActiveXObject(IEXMLHttpVersion[i]);
		      if(request) {
			      break;
		       }
         }catch(e){
         }
       }
    }

	if (!request)
		alert("浏览器不支持XMLHttpRequest！");
}

//提交
//path:提交的地址，必须带一个参数
//param：参数 格式&a=?&b=?
function sendData(path,param,method) {	
   
   request.open(method, path, true);
   
   if(param==null && method=="POST") param="";

   request.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=GBK"); 
   
   request.send(param);
}

//提交后的回调函数,用于显示数据
function showDataBack() {
	getLoadPlace();
   var objMainPlace=document.getElementById(mainPlace);
   if (request.readyState == 4) {
     if (request.status == 200) {
     	 objLoadPlace.style.display="none";
        objMainPlace.innerHTML=request.responseText;
     } else {
        if(isShowTip==1) alert(errorMsg+request.status);
      	objLoadPlace.style.display="none";
     }
   }else{	
      if(isShowTip==1) objLoadPlace.style.display="";	
   }
}

//提交后的回调函数，用于运行script
function runScriptBack() {
	getLoadPlace();
   var objMainPlace=document.getElementById(mainPlace);
   if (request.readyState == 4) {
     if (request.status == 200) {
     	   objLoadPlace.style.display="none";
		   var scriptCode=request.responseText;
	       if(scriptCode!="") {
			   scriptCode=scriptCode.replace("<script language='javascript'>","");
			   scriptCode=scriptCode.replace("</script>","");
			   scriptCode=scriptCode.replace("history.go(-1);","");
			   eval(scriptCode);
		   }
     } else {
        if(isShowTip==1) alert(errorMsg+request.status);
      	objLoadPlace.style.display="none";
     }
   }else{
      	if(isShowTip==1) objLoadPlace.style.display="";
   }
}

//显示返回的数据
//mainId：装载返回数据的容器id
//path:提交的地址，必须带一个参数
//param：参数 格式&a=?&b=?
function showData(path,param,mainId,sendType){
  changePosition();	
	mainPlace=mainId;
	createRequest();
	request.onreadystatechange = showDataBack;
  sendData(path,param,sendType);	
}

//使用get方式提交后显示返回的数据
//mainId：装载返回数据的容器id
//path:提交的地址，必须带一个参数
//param：参数 格式&a=?&b=?
function showDataByGET(path,param,mainId){
	showData(path,param,mainId,"GET");
}

//使用post方式提交后显示返回的数据
//mainId：装载返回数据的容器id
//path:提交的地址，必须带一个参数
//param：参数 格式&a=?&b=?
function showDataByPOST(path,param,mainId){
	showData(path,param,mainId,"POST");
}

//运行返回的javascript
//path:提交的地址，必须带一个参数
//param：参数 格式&a=?&b=?
function runScript(path,param,sendType){
    changePosition();	
	createRequest();
	request.onreadystatechange = runScriptBack;
    sendData(path,param,sendType);	
}

//使用get方式提交后运行返回的javascript
//path:提交的地址，必须带一个参数
//param：参数 格式&a=?&b=?
function runScriptByGET(path,param){
  runScript(path,param,"GET");
}

//使用post方式提交后运行返回的javascript
//path:提交的地址，必须带一个参数
//param：参数 格式&a=?&b=?
function runScriptByPOST(path,param){
  runScript(path,param,"POST");
 }

//使用post方式提交后运行返回的javascript,没有加载中的提示
//path:提交的地址，必须带一个参数
//param：参数 格式&a=?&b=?
function runScriptByPOSTNoTip(path,param){
  isShowTip=0;
  runScript(path,param,"POST");
}
/*
用AJAX提交文本框中的文本的时候，调用此函数对参数进行编码，
以便程序可以得到文本框中的@&回车等字符。
*/
function escapeParam(str){
  //str=encodeURIComponent(str);
  str=escape(str);
  //str=encodeURIComponent(escape(str));
  //return str;  
  
//  var re;
//  re=/%/g;
//  str=str.replace(re,"％");
//  re=/\n/g;
//  str=str.replace(re,"%0D%0A");
//  re=/&/g;
//  str=str.replace(re,"%26");
  return str;
}