//bingo v0.1.6
//by yoyo
//http://www.tangtang8.com/AHAX/
var xml_http_building_link = '请等待，正在建立连接...';
var xml_http_sending = '请等待，正在发送数据...';
var xml_http_loading = '请等待，正在接受数据...';
var xml_http_load_failed = '通信失败，请刷新重新尝试';
var xml_http_data_in_processed = '通信成功，数据正在处理中...';
var xml_http_data_dell = '建立连接失败，系统找不到文件';
function AJAXCALL(url,handleResponse,param){
	var isXML=false;//false:html or true:xml
	var isCache=false;//false:no-cache or true:cache
	var method="GET";//GET or POST
	var attach="";
	var ixdiv="";
	if(param){
	   re = / /g; 
	   param=param.replace(re, "");
	   var tmp=param.split(",");//extends param array
	   for(var i=0;i<tmp.length;i++){
		      var pa=tmp[i].substr(0,3);
			  var ct=tmp[i].split("=")[1];
		      switch (pa){
				  case "isX":if(ct=="true"){isXML= true; }else{isXML= false;}break;
				  case "isC":if(ct=="true"){isCache= true;}else{isCache= false;}break;
				  case "ixD":ixdiv=ct;break;
				  case "met":method=ct;break;
				  case "att":attach=ct;break;
			  }
	   }	
	}
	if(!isCache){
		var t=new Date().getTime();
		if(url.indexOf("?")>0){
	        url+="&t="+t;
		}else{
			url+="?t="+t;
		}
	}	
	var postdata=null;
	if(method=="POST"){
		purl=url.split("?");
		url=purl[0];
		postdata=purl[1];//must urlencoded first
	}
	RequestHTTP(url,handleResponse,method,isXML,postdata,attach,ixdiv);
}

function AJAXFORM(formID,handleResponse,gXML){
var isXML=false;//false:html or true:xml
var attach="";
var ixdiv="";
if(gXML){
	   re = / /g; 
	   gXML=gXML.replace(re, "");
			  var ct=gXML.split("=")[1];
			  var pa=gXML.substr(0,3);
				  switch (pa){
				  case "isX":if(ct=="true"){isXML= true;}else{isXML= false;}break;
				  case "att":attach=ct;break;
			  }
	      }

var url=$(formID).action;
var data=getForm(formID);
RequestHTTP(url,handleResponse,"POST",isXML,data,attach,ixdiv);
}

function getForm(theFormName){
  var form = document.forms[theFormName];
   if(typeof form.name == "undefined" || form.name=="")
	   form = $(theFormName);

   var formData = "";
   var element;
   for (var i = 0; i < form.elements.length; i++) {
      element = form.elements[i];
      var type=element.type.toLowerCase();      
      if (type == "hidden" ||type == "text" || type == "password" || type == "textarea"){      	
       formData += element.name + "=" + $U(element.value) + "&";
	  }else if (element.type.indexOf("select") != -1) {
         for (var j = 0; j < element.options.length; j++) {
            if (element.options[j].selected == true) formData +=  element.name + "=" + $U(element.options[element.selectedIndex].value) + "&";
         }
      }
      else if (element.type == "checkbox") {
		 if (element.checked) formData += element.name + "=" + $U(element.value) + "&";
	  }
      else if (element.type == "radio") {
		  if (element.checked == true) formData += element.name + "=" + $U(element.value) + "&";
	  }
   }
   return formData.substring(0, formData.length - 1);
}

function RequestHTTP(burl,rdRandleResponse,bmethod,bXML,Formdata,attach,bixdiv){
//if (!$(bixdiv)){
//ajaxspan(bixdiv)}
var http_request = false;
function doHttpRequest()
{	
       if (window.XMLHttpRequest) {
            http_request = new XMLHttpRequest();
            if (http_request.overrideMimeType) {
                http_request.overrideMimeType('text/xml');
            }
        } else if (window.ActiveXObject) {
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }
        if (!http_request) {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }

    http_request.onreadystatechange=handleStateChange;	
    http_request.open(bmethod,burl,true);
	if(Formdata){
	http_request.setRequestHeader("Content-Length",Formdata.length);   
    http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	http_request.send(Formdata);
	}else{
		if(bXML){
	        http_request.setRequestHeader("Content-Type","text/xml");
	        //charset "text/xml;charset=utf-8";
	    }else{
	        http_request.setRequestHeader("Content-Type","text/html");
	    }
    http_request.send(null);
	}
	
}
function showInfo(_message){
if($(bixdiv)){
	$(bixdiv).innerHTML=_message
	}
}
function handleStateChange(){
//		$("staId").style.display = '';
		if(http_request.readyState == 1) {
			showInfo(xml_http_building_link);
		} else if(http_request.readyState == 2) {
			showInfo(xml_http_sending);
		} else if(http_request.readyState == 3) {
			showInfo(xml_http_building_link);
		} else if(http_request.readyState == 4) {
		if(http_request.status==200) {
			showInfo(xml_http_data_in_processed);
			var response_content;
			if(bXML){
				response_content=http_request.responseXML;
			}else{
				response_content=http_request.responseText;	
			}		
			eval(rdRandleResponse+"(response_content,attach)");
//			$("staId").style.display = 'none';
		}else{
			showInfo(xml_http_load_failed);
			if(http_request.status==404)
			{showInfo(xml_http_data_dell);}
		}
    }
}
doHttpRequest();
}

//tools
function getTagValue(doc, tag){
     var elems = doc.getElementsByTagName(tag)[0].firstChild.nodeValue;
     return elems; 
}

function $(obj){
  return document.getElementById(obj);	
}

function $F(obj){
  return document.getElementById(obj).value;
}
function $U(str){
  return encodeURIComponent(escape(str));	
}

//from&copyright common.js
function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\s)"+searchClass+"(\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}
var browser={};
browser.IE=browser.FF=browser.MF=browser.firefox=browser.OT=browser.other=false;
if (window.navigator.userAgent.indexOf("MSIE")>=1){
   browser.IE=true;
}else if (window.navigator.userAgent.indexOf("Firefox")>=1){
   browser.FF=true;
   browser.firefox=true;
   browser.MF=true;
}else{
   browser.OT=true;
   browser.other=true;
}
function ajaxspan(statusId){
	var clientHeight = scrollTop = 0;
	if(navigator.userAgent.toLowerCase().indexOf('opera') > -1) {
		clientHeight = document.body.clientHeight;
		scrollTop = document.body.scrollTop;
	} else {
		clientHeight = document.documentElement.clientHeight;
		scrollTop = document.documentElement.scrollTop;
	}
	if($(statusId)) {
		this.statusId = $(statusId);
		$(statusId).style.top = (clientHeight +scrollTop - 240)+"px";
	} else {
		var body = document.getElementsByTagName("body")[0];
		var divElement = document.createElement("DIV");
		divElement.style.position = "absolute";
		divElement.style.top =(clientHeight +scrollTop - 240)+"px";
		divElement.style.left = (document.body.clientWidth-270)/2+"px";
		divElement.style.width = "270px";
		divElement.style.padding = "10px";
		divElement.style.backgroundColor = "#353555";
		divElement.style.border = "1px solid #CFCFFF";
		divElement.style.color = "#CFCFFF";
		divElement.style.fontSize = "14px";
		divElement.style.textAlign = "center";
		divElement.id = statusId;
		body.appendChild(divElement);
		this.statusId = divElement;
//alert(clientHeight)
//alert(scrollTop)
	}

}
