﻿// JavaScript Document
<!--// 
var loadingstr="<img src='images/loading.gif'  border='0' align='absmiddle' /> <span style='color:#6666ff;'>正在加载数据...</span> <p style='margin:10px;'><input type='button' style='border:1px #e0e0e0 outset;background-color:#ccc;' value='确 定' onclick='remove_Info_DIV();' /></p>";

//========================================== 
//创建xmlhttp对象函数
//========================================== 
function CreateXMLHttp_Fun(){ 
	if(window.XMLHttpRequest){  //Mozilla浏览器 
		XmlHttpObj = new XMLHttpRequest(); 
		if (XmlHttpObj.overrideMimeType){ //设置MiME类型 
			XmlHttpObj.overrideMimeType("text/xml"); 
		} 
		if (!XmlHttpObj){ // 异常，创建对象实例失败 
			window.alert("Mozilla浏览器不能创建XMLHttpRequest对象实例 ! "); 
			return false; 
		} 
		}else if (window.ActiveXObject){ // IE浏览器 
			try { 
				XmlHttpObj = new ActiveXObject("MSXML2.XMLHTTP"); 
			} catch (e){ 
				try { 
					XmlHttpObj = new ActiveXObject("Microsoft.XMLHTTP"); 
			} catch (e) {} 
		} 
		if (!XmlHttpObj){ // 异常，创建对象实例失败 
			window.alert("不能创建XMLHttpRequest对象实例 !  \n\n请开启IE浏览器的ActiveX控件与插件功能 ! "); 
			return false; 
		}
	} 
} 

//************************************************************** 
//******ajax提交数据并返回数据函数 
//******程序编写： 乱闪(seekyes)
//******E-mail:seekyess@gmail.com
//************************************************************** 
function RunAjaxFun(alertbol,isok,isreset,isinsert,sendtype,returntype,returnmodle,url,objform,elementname,resetelement,objbutton,objname,objinfo,objbgcolor,setbgcolor,divwidth,divheight){ 
	var buttonvalue;//用于保存按扭上的初始value值
	if(divwidth<100)divwidth=100;
	if(divheight<50 && divheight !=0 && divheight !=1)divheight=50;
	if(objbutton!="")Button_SubmitFun(0,objbutton);
	CreateXMLHttp_Fun();
	var XmlHttp__Obj=XmlHttpObj;
	//postvalue：post传值的数据值
	if(objform!=""){
		var postvalue=getFormElementFun(objform,elementname);
	}else{
		var postvalue=elementname;
	}
	var newurl=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime(); 
	if(sendtype=="")sendtype="GET"; 
	XmlHttp__Obj.open(sendtype, url+newurl, true); 
	if(sendtype=="POST" || sendtype=="post"){ 
		XmlHttp__Obj.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); 
		//XmlHttp__Obj.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8") 
		XmlHttp__Obj.send(postvalue); 
	}else{ 
		XmlHttp__Obj.send(null); 
	}
	
	remove_Info_DIV();//删除信息提示div对像，再重新生成达到不重复。
	if(objinfo!=""){//判断是否要显示信息提示层,objinfo为空不显示
		var Info_DIV = document.createElement("DIV");
		Info_DIV.id = "Info_DIV";
		Info_DIV.style.margin = "0px";
		if(divheight !=1){
			Info_DIV.style.position = "absolute";
			//Info_DIV.style.verticalAlign="baseline";
			//Info_DIV.style.verticalAlign="middle";
			Info_DIV.style.zIndex = "100";
			Info_DIV.style.marginTop = "-5px";
			Info_DIV.style.marginLeft = "-5px";
		}
		if(divheight>30){
			Info_DIV.style.paddingTop = (divheight/2-20)+"px";
			Info_DIV.style.height = divheight+"px";
		}else{
			Info_DIV.style.paddingTop = "5px";
			Info_DIV.style.paddingBottom = "10px";
			Info_DIV.style.height = 50+"px";
		}
		Info_DIV.style.width = divwidth+"px";
		//Info_DIV.style.overflow = "auto";
		//Info_DIV.style.margin = "auto";
		Info_DIV.style.clear = "both";
		Info_DIV.style.background = "#ffffff";
		Info_DIV.style.color = "#ff0000";
		Info_DIV.style.fontSize = "13px";
		Info_DIV.style.border = "1px #ccc solid";
		Info_DIV.style.visibility = "visible";
		Info_DIV.style.textAlign = "center";
		Info_DIV.style.filter = "alpha(opacity=90)";//ie上的透明设置代码
		Info_DIV.style.opacity = 0.9;//Mozilla上的透明设置代码
		//document.body.appendChild(Info_DIV);
		document.getElementById(objinfo).appendChild(Info_DIV);
		var returnInfoDiv=Info_DIV;
		//显示loading信息
		returnInfoDiv.innerHTML=loadingstr;
	}
	XmlHttp__Obj.onreadystatechange =function(){ 
		if (XmlHttp__Obj.readyState == 4) { 
			if (XmlHttp__Obj.status == 200) { 
				//返回数据begin
				if(returntype=="xml" || returntype=="table"){
					var objXML = XmlHttp__Obj.responseXML; 
					var nodes = objXML.documentElement.childNodes;
					var TotalItem= nodes.item(0).getElementsByTagName("itemlist").length; //xml返回值总数
					//alert(TotalItem);
					var getText=nodes.item(0).childNodes[0].childNodes[0].nodeValue;//第一个itemlist的内容，主要是读取判断错误提示信息的xml
					var getitemkey="";
					getitemkey=nodes.item(0).getAttribute("key");//获取item卷标中的key属性值
					var getitemid="";
					getitemid=nodes.item(0).getAttribute("id");//获取item卷标中的id属性值  
					var getbgcolor_td="";
					getbgcolor_td=nodes.item(0).getAttribute("bgcolor");//获取item卷标中的bgcolor属性值 ,用来设置td的前景颜色			
					var getitemjs=""; 
					getitemjs=nodes.item(0).getAttribute("js");//获取item卷标中的javascript属性值 
					if(getitemjs!=null && getitemjs!=""){
						getitemjs=eval(getitemjs);
					}
				}else{
					var getText = XmlHttp__Obj.responseText;
				}
				//返回数据end
				
				//先判断是否返回错误信息begin
				if(objinfo!=""){
					var errorTextArr=getText.split("(@_@)");
					if(errorTextArr.length>1){
						if(errorTextArr[0]=="error"){
							//alert(errorTextArr[1]); 
							returnInfoDiv.innerHTML=errorTextArr[1];
							if(errorTextArr.length>2)InfoDIV_Timeout(errorTextArr[2]);//定时关闭信息层
							if(objbutton!="")Button_SubmitFun(1,objbutton);
							//alert(document.body.innerHTML);
							return false;
						}
					}else{
						if(errorTextArr[0]=="error"){
							//alert("error!");
							returnInfoDiv.innerHTML="error!";
							if(objbutton!="")Button_SubmitFun(1,objbutton);
							return false;
						}
					}
				}
				//先判断是否返回错误信息end
				
				//==============返回xml格式============
				if(returntype=="xml"){ 
					var objnamelist=objname.split(/\s*,\s*/); 
					var objnamelistlen=objnamelist.length;
					if(objname==""){objnamelistlen=0;}
					for (var i=0; i<objnamelistlen; i++){ 
						var getitemlistkey="";
						if(returnmodle=="top"){//在前面追加数据
							if(i>=TotalItem){
								document.getElementById(objnamelist[i]).innerHTMLL="&nbsp;";
							}else{
								document.getElementById(objnamelist[i]).innerHTML=nodes.item(0).childNodes[i].childNodes[0].nodeValue+document.getElementById(objnamelist[i]).innerHTML;
								getitemlistkey=nodes.item(0).childNodes[i].getAttribute("key");//获取itemlist卷标中的key属性值
							}
						}else if(returnmodle=="bottom"){//在后面追加数据
							if(i>=TotalItem){
								document.getElementById(objnamelist[i]).innerHTMLL="&nbsp;";
							}else{
								document.getElementById(objnamelist[i]).innerHTML+=nodes.item(0).childNodes[i].childNodes[0].nodeValue;
								getitemlistkey=nodes.item(0).childNodes[i].getAttribute("key");//获取itemlist卷标中的key属性值
							}
						}else{//完全替代所有内容
							if(i>=TotalItem){
								if(isinsert){
									document.getElementById(objnamelist[i]).value="&nbsp;";
								}else{
									document.getElementById(objnamelist[i]).innerHTML="&nbsp;";
								}
							}else{
								if(isinsert){//使用value将数据插入到form的控件里
									document.getElementById(objnamelist[i]).value=nodes.item(0).childNodes[i].childNodes[0].nodeValue;
									getitemlistkey=nodes.item(0).childNodes[i].getAttribute("key");//获取itemlist卷标中的key属性值
								}else{
									document.getElementById(objnamelist[i]).innerHTML=nodes.item(0).childNodes[i].childNodes[0].nodeValue;
									getitemlistkey=nodes.item(0).childNodes[i].getAttribute("key");//获取itemlist卷标中的key属性值
								}
							}
						}
					} 
				//========table格式,专门操作table的行==========
				}else if(returntype=="table"){ 
					var table_trcount=document.getElementById(objname).rows.length//tr行数
					var table_tdcount= document.getElementById(objname).rows[0].cells.length; //td格数
					if(returnmodle==""){
						//插入到表格最后一行
						var newRow=document.getElementById(objname).insertRow(table_trcount);
					}else{
						//插入指定行
						var newRow=document.getElementById(objname).insertRow(returnmodle);
					}
					if(getitemkey!=null && getitemkey!="")newRow.id=getitemid;//设置tr的id
					newRow.style.color="#0000FF";
					if(objbgcolor!="" )newRow.bgColor=setbgcolor;
					
					for (var i=0; i<table_tdcount; i++){ 
						var getitemlistkey="";
						var gettd_id="";
						//插入td
						var Rowtd=newRow.insertCell(i);
						if( i>= TotalItem){
							Rowtd.innerHTML="&nbsp;";
						}else{
							getitemlistkey=nodes.item(0).childNodes[i].getAttribute("key");//获取getitemlistkey卷标中的key属性值
							gettd_id=nodes.item(0).childNodes[i].getAttribute("id");//获取getitemlistkey卷标中的key属性值
							if(gettd_id!=null && gettd_id!="")Rowtd.id=gettd_id;//设置td的id
							Rowtd.innerHTML=nodes.item(0).childNodes[i].childNodes[0].nodeValue;
						}
					}

					//生成一个可隐藏的下级tr行begin
					if(isinsert){
						if(returnmodle==""){
							//插入到表格最后一行
							var newRow=document.getElementById(objname).insertRow(table_trcount+1);
						}else{
							//插入指定行
							var newRow=document.getElementById(objname).insertRow(Number(returnmodle)+1);
						}
						newRow.style.display="none";
						if(getitemid!=null && getitemid!="")newRow.id=getitemid+"_subtr";//设置tr的id
						
						var Rowtd=newRow.insertCell(0);
						if(getitemid!=null && getitemid!="")Rowtd.id=getitemid+"_subtd";//设置td的id
						if(getbgcolor_td!=null && getbgcolor_td!="")Rowtd.bgColor=getbgcolor_td;//设置td的背景色
						Rowtd.colSpan=table_tdcount;
						Rowtd.innerHTML="&nbsp;";
					}
					//生成一个可隐藏的下级tr行end
					
				//========返回html格式==========
				}else if(returntype=="html"){ 
					var objnamelist=objname.split(/\s*,\s*/); 
					var objnamelistlen=objnamelist.length;
					if(objname==""){objnamelistlen=0;}
					for (var i=0; i<objnamelistlen; i++){ 
						if(returnmodle=="top"){
							document.getElementById(objnamelist[i]).innerHTML=getText+document.getElementById(objnamelist[i]).innerHTML;
						}else if(returnmodle=="bottom"){
							document.getElementById(objnamelist[i]).innerHTML+=getText;
						}else{
							document.getElementById(objnamelist[i]).innerHTML=getText; 
						}
					} 
				//===============返回text格式============
				}else if(returntype=="text"){ 
					var objnamelist=objname.split(/\s*,\s*/); 
					for (var i=0; i<objnamelist.length; i++){ 
						if(returnmodle=="top"){
							document.getElementById(objnamelist[i]).innerText=getText+document.getElementById(objnamelist[i]).innerText;
						}else if(returnmodle=="bottom"){
							document.getElementById(objnamelist[i]).innerText+=getText;
						}else{
							document.getElementById(objnamelist[i]).innerText=getText; 
						}
					} 
				}
				//document.getElementById("showdebug").innerText=document.getElementById(objname).innerHTML;
				//document.getElementById("showdebug").innerText=document.body.innerHTML;
				//alert(document.body.innerHTML);
				//先判断是否显示成功信息begin
				if(isok && objinfo!=""){
						returnInfoDiv.innerHTML="<span style='color:#00cc00'>操作成功</span><p style='margin:10px;'><input type='button'  style='border:1px #e0e0e0 outset;background-color:#ccc;' value='确 定' onclick='remove_Info_DIV();' /></p>";
						InfoDIV_Timeout(500);//定时关闭信息层
				}else{
					remove_Info_DIV();
				}
				if(objbutton!="")Button_SubmitFun(1,objbutton);
				//先判断是否显示成功信息end
				
				if(objbgcolor!="" )document.getElementById(objbgcolor).style.background=setbgcolor; 
				if(objform!="" && isreset){
					if(resetelement != ""){
						var resetelementlist=resetelement.split(/\s*,\s*/); 
						for (var i=0; i<resetelementlist.length; i++){ 
								document.getElementById(resetelementlist[i]).value=""; 
						} 
					}else{
						document.getElementById(objform).reset();
					}
				}
			}else if (XmlHttp__Obj.status == 404) { 
				if (alertbol)alert("您所请求的页面未找到!"); 
			} else { 
				if (alertbol)alert("您所请求的页面有异常!");//页面不正常 
			} 
		}               
	} 
} 

//删除信息提示div对像
function remove_Info_DIV(){
	if(document.getElementById("Info_DIV")){
		try {
			document.getElementById('Info_DIV').parentNode.removeChild(document.getElementById('Info_DIV'));
		}catch (e) {}
	}
}
//删除信息提示div对像
function InfoDIV_Timeout(closetime){
	if(document.getElementById("Info_DIV")){
		try {
			window.setTimeout(remove_Info_DIV,closetime);
			//var Timeout=window.setInterval(remove_Info_DIV,closetime);
			//window.clearInterval(Timeout);
		}catch (e) {}
	}
}
//提交数据时的提交按扭状态
function Button_SubmitFun(isok,buttonid){
	if(buttonid!="" && !isok){
		buttonvalue=document.getElementById(buttonid).value
		document.getElementById(buttonid).disabled=true;
		document.getElementById(buttonid).value="正在处理数据...";
	}else if(buttonid!="" && isok){
		document.getElementById(buttonid).disabled=false;
		document.getElementById(buttonid).value=buttonvalue;
	}
}

//隐藏和显示表格tr
//num为1按扭事件放于td属性里，为2放于td内容里
function hidden_show_TR(id,num){
	if(num==1){
		if(id.parentNode.nextSibling.innerHTML==undefined){
			id.parentNode.nextSibling.nextSibling.style.display=(id.parentNode.nextSibling.nextSibling.style.display=="none"?"":"none");
		}else{
			id.parentNode.nextSibling.style.display=(id.parentNode.nextSibling.style.display=="none"?"":"none");
		}
	}else if(num==2){
		//alert(id.parentNode.parentNode.nextSibling.innerHTML);
		if(id.parentNode.parentNode.nextSibling.innerHTML==undefined){
			id.parentNode.parentNode.nextSibling.nextSibling.style.display=(id.parentNode.parentNode.nextSibling.nextSibling.style.display=="none"?"":"none");
		}else{
			id.parentNode.parentNode.nextSibling.style.display=(id.parentNode.parentNode.nextSibling.style.display=="none"?"":"none");
		}
	}else{
		id.parentNode.parentNode.nextSibling.style.display=(id.parentNode.parentNode.nextSibling.style.display=="none"?"":"none");
	}
}

//************************************************************** 
/* 
//取得要提交的form数据传给xmlhttp对像发送
objform－form窗体id
elementname－form窗体的元素id，留空则取form所有元素,指定元素id则用逗号分隔
*/ 
//************************************************************** 
function getFormElementFun(objform,elementname){ 
	var get_formvalue="";
	var getchar=",";//保存窗体的name值，用于判断是否有重复名字
	if(elementname==""){
		for (var i=0;i<document.getElementById(objform).elements.length;i++){
			var elements_name=document.getElementById(objform).elements[i].name;
			if(getchar.indexOf(","+elements_name+",")<0){
				get_formvalue+=elements_name+"="+getFormValueFun(elements_name)+"&";
			}
			getchar+=elements_name+",";
		}
	}else{
		var elementnamelist=elementname.split(/\s*,\s*/); 
		for (var i=0; i<elementnamelist.length; i++){
			var elementtype=document.getElementById(elementnamelist[i]).type;
				get_formvalue+=elementnamelist[i]+"="+getFormValueFun(elementnamelist[i])+"&";
				
		}
	}
	/*
	get_formvalue=escape(get_formvalue);
	//get_formvalue=encodeURIComponent(get_formvalue);
	//alert(get_formvalue);
	var set_reg = new RegExp("%26","gi");//还原&号
    get_formvalue = get_formvalue.replace(set_reg, "&"); 
	var set_reg = new RegExp("%3D","gi");//还原=号
    get_formvalue = get_formvalue.replace(set_reg, "="); 
	*/
	return get_formvalue; 
} 

//function $(s) {return document.getElementById(s);}
//function $a(s) {return document.getElementsByName(s);}
//删除左右空格
function trim(s) {return s.replace(/(^[ |　]*)|([ |　]*$)/g, "");}
function getRadioValue(name){
	var arrObj = document.getElementsByName(name);
	var arrLen = arrObj.length;
	var value = false;
	for (var i=0; i<arrLen; i++)
	{
		if (arrObj[i].checked){ 
			value = arrObj[i].value;
			break;
		}
	}
	return value;
}

function getCheckBoxValue(name){
	var arrObj = document.getElementsByName(name);
	var arrLen = arrObj.length;
	var value = "";
	for (var i=0; i<arrLen; i++){
		if (arrObj[i].checked){ 
			if(value==""){
				value += arrObj[i].value;
			}else{
				value += ", "+arrObj[i].value;
			}
		}
	}
	return value;
}

function getSelectValue(id){
	var oSel = document.getElementById(id);
	return oSel.options[oSel.selectedIndex].value;
}

function getFormValueFun(id){
	var obj = document.getElementById(id);
	var tagName = obj.tagName;
	switch(tagName)
	{
		case 'INPUT':
			var oType = obj.type;
			switch (oType){
				case 'radio':                        
					value = getRadioValue(id);
					break;
				case 'checkbox':
					value = getCheckBoxValue(id);
					break;
				default :
					value = obj.value;
					break;
			}                
			break;
		case 'SELECT':
			value = getSelectValue(id);
			break;
		case 'TEXTAREA':
			value = obj.value;
			break;
		default :
			value = false;
			break;
	}
	//return value;
	//return escape(value);
	return encodeURIComponent(value);
}

//-->

