//定义一些全局变量
var isFFX  = getOs();
var tagShowBox = document.createElement('div');

function getOs()
{
   if(isExplorer=navigator.userAgent.indexOf("MSIE")>0)return false;
   if(isFirefox=navigator.userAgent.indexOf("Firefox")>0)return true;
   //if(isSafari=navigator.userAgent.indexOf("Safari")>0)return 3;   
   //if(isCamino=navigator.userAgent.indexOf("Camino")>0)return 4;
   //if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0)return 5;
   return false;
}

function startRequest(url,dividcontent,param){
	var xmlHttp = false; //创建一个XmlHttpRequeset对象
	var postdata = false;
	var isXML = false;   //false:html or true:xml
	var isCache = false; //false:no-cache or true:cache
	var method = 'POST'; //GET or POST
	var bAsync = true;   //true:异步 or false:同步
	var isShow = false;  //是否显示 "载入中..."

	if(param && typeof param=="string"){
	   re = / /g; 
	   param=param.replace(re, "");
	   var tmp=param.split(",");
	   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 "bAs":if(ct=="true"){bAsync= true;}else{bAsync= false;}break;
				  case "isS":if(ct=="true"){isShow= true;}else{isShow= false;}break;
				  case "met":method=ct;break;
			  }
	   }	
	}else if(param && typeof param=="object"){	
		if(param.isXml)isXML=param.isXml;
		if(param.isxml)isXML=param.isxml;
		if(param.isCache)isCache=param.isCache;
		if(param.iscache)isCache=param.iscache;
		if(param.bAsync)bAsync=param.bAsync;
		if(param.basync)bAsync=param.basync;
		if(param.isShow)isShow=param.isShow;
		if(param.isShow)isShow=param.isshow;
		if(param.method)method=param.method;
	}
	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];
	}
	return startSend(url,dividcontent,postdata,method,isXML,bAsync,isShow);
}


function startSend(url,dividcontent,postdata,method,isXML,bAsync,isShow){
var xmlHttp = false; //创建一个XmlHttpRequeset对象
var response;
	function doHttpRequest() {	
       if (window.XMLHttpRequest) {
            xmlHttp = new XMLHttpRequest();
            if (xmlHttp.overrideMimeType) {
                xmlHttp.overrideMimeType('text/xml');
            }
        } else if (window.ActiveXObject) {
            try {
                xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }
        if (!xmlHttp) {
            alert('不能创建XMLHttpRequest对象实例.');
            return false;
	}

	if (!isFFX || bAsync) {
		xmlHttp.onreadystatechange = handleStateChange;
	}	
    xmlHttp.open(method, url, bAsync);
	if(postdata){
	xmlHttp.setRequestHeader('Content-Length',postdata.length);   
    xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xmlHttp.send(postdata);
	}else {
		if(isXML){
	        xmlHttp.setRequestHeader('Content-Type','text/xml');
	        //charset 'text/xml;charset=utf-8';
	    }else{
	        xmlHttp.setRequestHeader('Content-Type','text/html');
	    }
    xmlHttp.send(null);
	}

	if (isFFX && !bAsync) {
		if (isXML) {
			response = xmlHttp.responseXML;
		}else {
			response = xmlHttp.responseText;
		}
			eval(dividcontent+'.innerHTML = response');
			return response;
	 }
	
}


function handleStateChange() {
	if (xmlHttp.readyState < 4) { // 判断对象状态
		if (isShow) eval(dividcontent+'.innerHTML="正在加载数据，请稍候..."');
	}
	if (xmlHttp.readyState == 4) { // 判断对象状态
		if (xmlHttp.status == 200) { // 信息已经成功返回
			if (isXML) {
				response = xmlHttp.responseXML;
			}else {
				response = xmlHttp.responseText;
			}	
				eval(dividcontent+'.innerHTML = response');
		}else {
            eval(dividcontent+'.innerHTML="抱歉！加载数据失败，原因：" + xmlHttp.statusText');
		}
	}
}
doHttpRequest();
return response;
}



//悬浮窗口
var wittingHiddenTimer;
function moveTagBox(e){
var tagBoxLeft=getMousePos(e).x;
//if(parseInt(document.documentElement.clientWidth)-tagBoxLeft<parseInt($('tagShowBox').style.width)){
//tagBoxLeft=(tagBoxLeft-parseInt($('tagShowBox').style.width))+"px";
//}else{
tagBoxLeft=tagBoxLeft+"px";
//}
$('tagShowBox').style.left=tagBoxLeft;
var tagBoxTop=getMousePos(e).y
//if(parseInt(document.documentElement.clientHeight)-tagBoxTop<parseInt($('tagShowBox').style.height)){
//tagBoxTop=(tagBoxTop-parseInt($('tagShowBox').style.height)-15)+"px";
//}else{
tagBoxTop=tagBoxTop+"px";
//}
$('tagShowBox').style.top=tagBoxTop;
}

function getMousePos(ev){
 if(ev.pageX || ev.pageY){
  return {x:ev.pageX, y:ev.pageY};
 }
 return {
  x:ev.clientX + document.documentElement.scrollLeft - document.documentElement.clientLeft,
  y:ev.clientY + document.documentElement.scrollTop  - document.documentElement.clientTop
 };
}

function hiddenTagShowBox(){
 try{clearTimeout(wittingHiddenTimer);} catch(e){}
 $('tagShowBox').style.display="none";
}

function createTagShowBox(tagBoxWidth,tagBoxHeight){
  tagShowBox.style.display='none';
  tagShowBox.id='tagShowBox';
  tagShowBox.setAttribute('id','tagShowBox');
  tagShowBox.style.width=tagBoxWidth;
  tagShowBox.style.height=tagBoxHeight;
  tagShowBox.style.position='absolute';
  //tagShowBox.onmouseout=hiddenTagShowBox;
  tagShowBox.innerHTML='<div id="tagShowBoxContent"></div>';
  //tagShowBox.innerHTML='<div id="tagShowBoxBar"><div id="tagShowBoxBartitle"></div><div id="tagShowBoxBarClose"><img src="images/close.jpg" onclick="hiddenTagShowBox()"></div></div><div id="tagShowBoxContent"></div>';
  document.getElementsByTagName('body')[0].appendChild(tagShowBox);
}




//写cookies函数
function setCookie(name,value,daylong)//三个参数，一个是cookie的名子，一个是值，一个是时长
{
    var Days;
	if (!daylong) {
		Days = 0;
	}else {
		if (!/^\d+\.?\d*$/.test(daylong)) { //判断是否为正数
			Days = 0;
		}else {
			if (daylong > 999) Days = 999;
			if (daylong > 0 && daylong < 0.00001) Days = 0.00001;
		}
	}
	if (Days != 0) {
		var exp  = new Date();    //new Date('December 31, 9998');
        exp.setTime(exp.getTime() + Days*24*60*60*1000);
        document.cookie = name + '='+ escape (value) + ';expires=' + exp.toGMTString();
	}else {
		document.cookie = name + '='+ escape (value);
	}
}

function getCookie(name)//取cookies函数
{
     var cookieArray=document.cookie.split("; "); //得到分割的cookie名值对
     var cookie=new Object();
     for(var i=0;i<cookieArray.length;i++){
           var arr=cookieArray[i].split("=");    //将名和值分开
           if(arr[0]==name)return unescape(arr[1]); //如果是指定的cookie，则返回它的值
     }
	 return null;
}

function delCookie(name)//删除cookie
{
    var exp = new Date();
    exp.setTime(exp.getTime() - 1);
    var cval=getCookie(name);
    if(cval!=null) document.cookie= name + '='+cval+';expires='+exp.toGMTString();
}


//取Radio值
function getRadio(RadioID){
	var obj = $N(RadioID);
	for(i = 0;i < obj.length;i++) {
	if (obj[i].checked) return obj[i].value;
	}
}

//取Check值
function getCheck(CheckID){
	var obj = $(CheckID);
	if (obj.checked) {
		return obj.value;
	}else{
		return 0;
	}
}

//取Select值
function getSelect(SelectID){
	var obj   = $(SelectID);
	var index = obj.selectedIndex; //序号，取当前选中选项的序号
	var val   = obj.options[index].value;
	return val;
}


function ConfirmDel()
{
   if(confirm("确定要删除吗？删除后，数据不可恢复！"))
     return true;
   else
     return false;
}


function CheckAll()
{
var a = document.getElementsByTagName("input"); 
   for (var i=0; i<a.length; i++) 
      if (a[i].type == "checkbox") a[i].checked = !a[i].checked;
} 
function $(a){return document.getElementById(a)}


//tools
function getTagValue(doc, tag){
     var elems = doc.getElementsByTagName(tag)[0].firstChild.nodeValue;
     return elems;
}

function $(obj){
  return document.getElementById(obj);
}

function $N(obj){
  return document.getElementsByName(obj);
}

function $F(obj){
  return document.getElementById(obj).value;
}

function $U(str){
  return encodeURIComponent(escape(str));
}

function $E(str){
  return encodeURIComponent(str);	
}

function AJAXFORM(formID,handleResponse,param){
	var url=$(formID).action;
	var data=getForm(formID);
	startRequest(url,dividcontent,param);
}

function getForm(theFormName){
   var form = document.forms[theFormName];
   if(typeof form.name == "undefined" || form.name=="")
	   form = $(theFormName);
   //form can not include "fieldset"
   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 + "=" + $E(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 + "=" + $E(element.options[element.selectedIndex].value) + "&";
         }
      }
      else if (element.type == "checkbox") {
		 if (element.checked) formData += element.name + "=" + $E(element.value) + "&";
	  }
      else if (element.type == "radio") {
		  if (element.checked == true) formData += element.name + "=" + $E(element.value) + "&";
	  }
   }
   return formData.substring(0, formData.length - 1);
}

function $css(id,rule){
  for(var i=0;i<document.styleSheets.length;i++){
		var tmp=browser.IE?document.styleSheets[i].rules:document.styleSheets[i].cssRules;
		for(var k=0;k<tmp.length;k++){
			if(tmp[k].selectorText==id){
				if(rule){
					return tmp[k].style[rule];
				}else{
					return tmp[k].style;
				}			
			}
		}
  }
}

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 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;
}