﻿/* 系统通用变量和函数 begin*/
var myBody=document.body;
var defer=false;
function w(t){
	var div=document.createElement("div");
	div.innerHTML=t;
	myBody.appendChild(div);
};
function vod() {
};
String.prototype.trim = function() {
	var result=this.replace(/(^\s*)/g, "");
	result=result.replace(/(\s*$)/g, "");
	return result;
};
function _executeScript(scriptFrag, partId) {
	var scriptContainerId = partId + "_SCRIPT_CONTAINER";
	var obj = $(scriptContainerId);
	var ss = document.getElementsByTagName("SCRIPT");
	if (obj != null) {
		myBody.removeChild(obj);
	}
	var scriptContainer = document.createElement('SCRIPT');
	scriptContainer.setAttribute("id", scriptContainerId);
	scriptContainer.text = scriptFrag;
	myBody.appendChild(scriptContainer);
};
/* 系统通用变量和函数 end*/

/* keeper loading 的定义 begin */
keeper={
"keeperLoading":false,	//是否有人正在执行 keeper.load();
"_tasks":[],//任务队列

"_dStr":"",//debug记录
"_dRecord":function(t){keeper._dStr+=t+"<br>\n"},//记录debug进度信息

"_fileImportors":{//文件导入方法
"js":function(file, id, reload){
	var head = document.getElementsByTagName('HEAD').item(0);
	var old = $(id);
	var complete = false;
	var loaded = false;
	keeper._dRecord(file);
	if (old && reload!="-r") {
		keeper._dRecord("e:"+file);
		keeper._load();
		return false;
	} else {
		if(old) head.removeChild(old);
		script = document.createElement('SCRIPT');
		script.src = file;
		script.type = "text/javascript";
		script.language = "javascript";
		script.defer = true;
		//script.charset = "utf-8";
		script.id = id;
		if(typeof script.onreadystatechange!="undefined"){
			script.onreadystatechange=function(){
				keeper._dRecord(file+" = "+this.readyState);
				if(this.readyState=="loaded" || this.readyState=="complete"){
					keeper._load();
				}
			};//ie
		}else{
			script.onload=keeper._load;//其他
		}//使脚本在调入结束后继续执行队列的下一项
		void(head.appendChild(script));
	}
	return true;
},
"php":function(file, id, reload){return keeper._fileImportors["js"](file, id, reload);}
},

"_load":function(){//执行队列中的第一项，并删除
	var i=keeper._tasks.shift();
	if(!i) {
		keeper.keeperLoading = false;
		return false;
	} else {
		keeper.keeperLoading = true;
	}
	switch(typeof i){
		case "string":
		i.match(/(\w+)\.(\w+)(\?.*?)?(-\w)?$/ig);//修改过，使地址格式可以接受url参数
		var n1=RegExp.$1,n2=RegExp.$2,n3=RegExp.$4;
		keeper._fileImportors[n2](i.replace(/-\w$/ig,""),n1+"_"+n2,n3);
		break;
		case "function":
		i.call();//执行自定义函数
		keeper._load();
	}
},

"require":function(){
	var extraTasks=[];
	keeper._dStr="";
	for(var i=0;i<arguments.length;i++) extraTasks.push(arguments[i]);
	this._tasks=extraTasks.concat(this._tasks);
},

"load":function(){//对外接口，参数可以是文件路径或者具体的参数、匿名参数
	for(var i=0;i<arguments.length;i++) {
		keeper._tasks.push(arguments[i]);
	}
	if(!keeper.keeperLoading) {
		keeper._load();//启动执行任务队列
	}
}
};
/* keeper的定义 end */

/* Loading层的位置 begin */
function ajaxLoading(){
	if($("ajaxLoading")) {
		$("ajaxLoading").style.top = (parseInt(document.documentElement.scrollTop) + 25) + 'px';
	}
}
/* Loading层的位置 end */

/* cookies的处理函数 begin */
function getCookie(s,autoDecode){
	var g=document.cookie.match(new RegExp("(?:;\\s|^)"+s+"=(.*?)(?:;|$)","ig"));
	if(g===null) return "";
	r=RegExp.$1;

	if(!autoDecode) return r;
	if(r.indexOf("%")!=-1) return decodeURIComponent(r);
	return r;
};
function cookieGet(s,autoDecode){
	var g=document.cookie.match(new RegExp("(?:;\\s|^)"+s+"=(.*?)(?:;|$)","ig"));
	if(g===null) return "";
	r=RegExp.$1;

	if(!autoDecode) return r;
	if(r.indexOf("%")!=-1) return decodeURIComponent(r);
	return r;
};
function setCookie(k,v,timeDelta,domain){
	if (document.domain.indexOf("8wr.cn") == -1) {
		domain = document.domain;
	} else {
		domain = "8wr.cn";
	}
	timeDelta=timeDelta||0;
	var d=new Date();
	d.setTime(d.getTime()+timeDelta);
	document.cookie=k+"="+v+";"+(timeDelta?" ;path=/;expires="+d.toGMTString():"")+(domain?" ;domain="+domain:"");
};
function cookieSet(k,v,timeDelta,domain){
	if (document.domain.indexOf("8wr.cn") == -1) {
		domain = document.domain;
	} else {
		domain = "8wr.cn";
	}
	timeDelta=timeDelta||0;
	var d=new Date();
	d.setTime(d.getTime()+timeDelta);
	document.cookie=k+"="+v+";"+(timeDelta?" ;path=/;expires="+d.toGMTString():"")+(domain?" ;domain="+domain:"");
};
/* cookies的处理函数 end */

/* 参考gmail的页面检验 begin */
function wfs() {
	try {
		if (parent != window && parent.wfs) {
			return false;
		}
	}
	catch (e){}
	if (window.location.href.indexOf('nocheckbrowser') !=  - 1) {
		return true;
	}
	var testcookie = 'jscookietest=valid';
	document.cookie = testcookie;
	if (document.cookie.indexOf(testcookie) ==  - 1 && !document.cookie) {
		top.location = '/html/nocookies.html';
		return false;
	}
	document.cookie = testcookie + ';expires=' + new Date(0).toGMTString();
	var agt = navigator.userAgent.toLowerCase();
	if (agt.indexOf('msie') !=  - 1 && document.all && agt.indexOf('opera') ==
	- 1 && agt.indexOf('mac') ==  - 1) {
		var control = (agt.indexOf('msie 5') != -1) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP';
		try {
			new ActiveXObject(control);
		} catch (e) {
			top.location = '/html/noactivex.html';
		}
	}
	return true;
};
wfs();
/* 参考gmail的页面检验 end */

/* 系统所需的cookies值 begin */

//alert(userAccount);
/* 来自原 ui.js 的东西 */
//贴事件
function addEvent(el, evname, func) {
	if(typeof func=="string"){
		func=new Function('eval("'+func+'");');
	}

	if (el.attachEvent) { // IE
		el.attachEvent("on" + evname, func);
	} else if (el.addEventListener) { // Gecko / W3C
		el.addEventListener(evname, func, true);
	} else {
		el["on" + evname] = func;
	}
};

//执行队列
function exec(a,o){
	for(var i=0;i<a.length;i++){
		switch(typeof a[i]){
			case "string":
			eval(a[i]);break;
			default:
			if (o)	a[i].call(o);
			else	a[i].call();
		}
	}
}





/* 来自原 objAjax.js 的东西 */

function ajaxObject() {
	/*
	gReturnMessage：返回内容类型，XML|TEXT
	targetArea：目标区域ID或对象
	URL：提交的地址
	dateVal：POST提交的提交参数
	actionMessage：提示框中的提示内容
	returnMessage：处理成功返回的内容
	doResponseMethod：处理方法
	*/
	this.objType = "POST";
	this.gReturnMessage = "TEXT";
	this.targetArea = "";
	this.URL = "";
	this.dateVal = "";
	this.actionMessage = "";
	this.returnMessage = "";
	this.doResponseMethod = "";
	this.xmlreq = false;
	this.returnMessageText ="";
	this.returnMessageXML = "";



	/*右边内容的类型 control.js */
	this.pageType = "";

	this.newXMLHttpRequest = function(){

		if (window.XMLHttpRequest) {
			try {
				xmlreq = new XMLHttpRequest();
			} catch (e1) {
				alert("HTTP error ");
			}
		} else {
			if (window.ActiveXObject) {
				try {
					xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
				}
				catch (e1) {
					try {
						xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
					}
					catch (e2) {
						xmlreq = false;
					}
				}
			}
		}
		return xmlreq;
	}

	/*
	actionMessage 提示内容框的内容
	*/
	this.getReadyStateHandler = function (xmlreq, obj) {
		/*(xmlreq, responseXmlHandler, gReturnMessage, targetArea, URL, actionMessage) {*/
		return function () {
			if (xmlreq.readyState == 4) {
				try {
					if (xmlreq.status == 200) {

						if(xmlreq.responseText == "-100") {
							top.location.reload();
						}
						if (obj.gReturnMessage == "TEXT") {
							obj.returnMessage = xmlreq.responseText.toString();
							obj.returnMessageText = xmlreq.responseText;
							obj.returnMessageXML = xmlreq.responseXML;
							obj.doResponseMethod(obj);
						} else {

							if(document.all){
								var xmlDomObject = xmlreq.responseXML;
							} else {
								var xmlDomObject = new DOMParser().parseFromString(xmlreq.responseText, "text/xml");
							}

							obj.returnMessage = xmlDomObject;
							obj.returnMessageText = xmlreq.responseText;
							obj.returnMessageXML = xmlDomObject;
							obj.doResponseMethod(obj);
						}
						if(document.getElementById("ajaxLoading")) {
							document.getElementById("ajaxLoading").style.display="NONE";
						}
					} else {
						/*if(obj.objType == "GET") {
						alert(obj.objType);
						this.ajaxGetDate(obj);
						} else if(obj.objType == "POST") {
						alert(obj.objType);
						this.ajaxPostDate(obj);
						} else{
						alert(xmlreq.status);
						}*/
						//return false;
						alert("HTTP error " + xmlreq.status + ": " + xmlreq.statusText+"："+obj.URL);
					}
				} catch(e) { }
			} else {
				if(document.getElementById("ajaxLoading")) {
					document.getElementById("ajaxLoading").style.display="";
				}
			}
		};
	}

	/*get方式取得数据*/
	this.ajaxGetDate = function(obj) {
		/*URL, processRequest, targetArea , gReturnMessage, actionMessage*/
		//alert("try get");
		if(document.getElementById("ajaxLoading")) {
			document.getElementById("ajaxLoading").style.display="";
		}
		obj.objType = "GET";
		obj.xmlreq = obj.newXMLHttpRequest();
		obj.xmlreq.onreadystatechange = obj.getReadyStateHandler(obj.xmlreq, obj);
		obj.xmlreq.open("GET", obj.URL, true);
		obj.xmlreq.send(null);
		delete (obj.xmlreq);
	}

	/*post方式取得数据*/
	this.ajaxPostDate = function(obj) {
		if(document.getElementById("ajaxLoading")) {
			document.getElementById("ajaxLoading").style.display="";
		}
		obj.objType = "POST";
		obj.xmlreq = obj.newXMLHttpRequest();
		obj.xmlreq.onreadystatechange = obj.getReadyStateHandler(obj.xmlreq, obj);
		obj.xmlreq.open("POST", obj.URL, true);
		obj.xmlreq.setRequestHeader("Method", "POST " + obj.URL + " HTTP/1.1");
		obj.xmlreq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		obj.xmlreq.setRequestHeader("Cache-Control", "no-cache");
		obj.xmlreq.setRequestHeader("Pragma", "no-cache");
		//alert(obj.doResponseMethod);
		obj.xmlreq.send(obj.dateVal);
		delete (obj.xmlreq);
	}


	/*内容插入页面中*/
	this.dataInsertPage = function (obj) {
		if(obj.targetArea) {
			if(document.getElementById("ajaxLoading")) {
				document.getElementById("ajaxLoading").style.display="NONE";
			}//调换了位置，即使<script>有问题也会隐掉ajax

			var regexp1 = /<script(.|\n)*?>(.|\n|\r\n)*?<\/script>/ig;
			var regexp2 = /<script(.|\n)*?>((.|\n|\r\n)*)?<\/script>/im;

			var message = obj.returnMessage;
			//alert(message);
			/* draw the html first */
			var returnMessage = message.replace(regexp1, "");

			document.getElementById(obj.targetArea).innerHTML = returnMessage;
			var result = message.match(regexp1);
			if (result) {
				for (var i = 0; i < result.length; i++) {
					var realScript = result[i].match(regexp2);
					//alert(obj.targetArea);
					_executeScript(realScript[2], obj.targetArea);
					/* Note: do not try to write more than one <script> in your view.*/
					/* break;  process only one script element */
				}
			}
			document.getElementById(obj.targetArea).style.display="";
		} else {
			if(document.getElementById("ajaxLoading")) {
				document.getElementById("ajaxLoading").style.display="NONE";
			}
			return true;
		}
		if(document.getElementById("ajaxLoading")) {
			document.getElementById("ajaxLoading").style.display="NONE";
		}

	}

	/*get方式取得数据并插入页面*/
	this.ajaxGetDateToPage = function (obj) {
		obj.doResponseMethod = obj.dataInsertPage;
		obj.gReturnMessage = "TEXT";
		obj.ajaxGetDate(obj);
	}
	/*Post方式取得数据并插入页面*/
	this.ajaxPostDateToPage = function (obj) {
		obj.doResponseMethod = obj.dataInsertPage;
		obj.gReturnMessage = "TEXT";
		obj.ajaxPostDate(obj);
	}

	/*处理element*/
	this.replaceElement = function (mtObj) {
		var xmldoc = mtObj.returnMessage;
		//alert(mtObj.returnMessageText);
		if(xmldoc.getElementsByTagName("elements").length > 0) {
			var rowNames = xmldoc.getElementsByTagName("elements");
			for(var ri=rowNames[0].childNodes.length-1; ri>=0; ri--) {
				if(rowNames[0].childNodes[ri].nodeType == 1) {
					elementValue = rowNames[0].childNodes[ri].firstChild.nodeValue;
					elementID = rowNames[0].childNodes[ri].getAttribute("elementID");
					elementType = rowNames[0].childNodes[ri].getAttribute("elementType");
					if(document.getElementById(elementID)) {
						if(elementType == "innerText") {
							if(navigator.appName.indexOf("Explorer") > -1){
								document.getElementById(elementID).innerText = elementValue;
							} else{
								document.getElementById(elementID).textContent = elementValue;
							}
						} else {

							if(document.getElementById(elementID)) {
								if(document.getElementById(elementID).type == "hidden" || document.getElementById(elementID).type == "text"  || document.getElementById(elementID).type == "textArea") {
									document.getElementById(elementID).value = elementValue;
								} else {
									document.getElementById(elementID).innerHTML = elementValue;
								}
							}
						}
					}
				}
			}
		}
		if(document.getElementById("ajaxLoading")) {
			document.getElementById("ajaxLoading").style.display="NONE";
		}
	}
}

/*get方式取得数据并插入页面*/
function ajaxGetDateToPage(URL, targetArea, actionMessage) {
	aoNew = new ajaxObject();
	aoNew.URL = URL;
	aoNew.targetArea = targetArea;
	aoNew.doResponseMethod = aoNew.dataInsertPage;
	aoNew.actionMessage = aoNew.actionMessage;
	aoNew.ajaxGetDate(aoNew);
}

//Post方式取得数据并插入页面
function ajaxPostDateToPage(URL, dateVal, targetArea, actionMessage) {
	aoNew = new ajaxObject();
	aoNew.URL = URL;
	aoNew.dateVal = dateVal;
	aoNew.targetArea = targetArea;
	aoNew.doResponseMethod = aoNew.dataInsertPage;
	aoNew.actionMessage = aoNew.actionMessage;
	aoNew.ajaxPostDate(aoNew);
}

/*get方式取得数据*/
function ajaxGetDate(URL, responseMethod, returnMessage) {
	aoNew = new ajaxObject();
	aoNew.URL = URL;
	aoNew.targetArea = null;
	aoNew.doResponseMethod = responseMethod;
	aoNew.gReturnMessage = returnMessage;
	aoNew.actionMessage = null;
	aoNew.ajaxGetDate(aoNew);

}
//Post方式取得数据
function ajaxPostDate(URL, dateVal, responseMethod, returnMessage) {
	aoNew = new ajaxObject();
	aoNew.URL = URL;
	aoNew.dateVal = dateVal;
	aoNew.targetArea = null;
	aoNew.doResponseMethod = responseMethod;
	aoNew.gReturnMessage = returnMessage;
	//alert(aoNew.doResponseMethod);
	aoNew.ajaxPostDate(aoNew);

}

/*处理element*/
function ajaxReplaceElement(URL, dateVal) {
	aoNew = new ajaxObject();
	aoNew.URL = URL;
	aoNew.gReturnMessage = "XML";
	aoNew.dateVal = dateVal;
	aoNew.doResponseMethod = aoNew.replaceElement;
	aoNew.ajaxPostDate(aoNew);
}
