// JavaScript Document
//客户端验证
var xmlHttp;
XMLRequest={
	src:"",
	createXMLHttpRequest:function (){
		if(window.XMLHttpRequest) { //Mozilla 浏览器
			  xmlHttp = new XMLHttpRequest();
		}
		else if (window.ActiveXObject) { // IE浏览器
			  try{
					xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
			  }catch(e){
				  		try {
						  		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
						}catch (e) {}
			}
		}
     },
	send:function(url,isAsynchronous){//发送xmlhttpRequest请求
		this.createXMLHttpRequest();
		xmlHttp.open("GET", url, isAsynchronous);
		xmlHttp.onreadystatechange=callback;
		xmlHttp.send(null);
		if(xmlHttp.status==200)	callback();//此方便只能用于同步状态下的操作
	}
};
function callback(){
	if(xmlHttp.readyState == 4 && xmlHttp.status == 200)
		if(xmlHttp.responseText=="true")
			showOKMsg(XMLRequest.src);
		else
			showErrorMsg(XMLRequest.src);
};

function closeMeAndReloadOpener(){
	if(window.opener)
	{
		opener.reload();
		window.close();
	}
	else
		if(window.parent)
		{
			parent.reload();
			window.close();
		}
};

function LiHover(elID) {
	var el = document.getElementById(elID).getElementsByTagName("LI");
	for (var i=0; i<el.length; i++){
		el[i].onmouseover=function(){
			this.className+=" hover";
		}
		el[i].onmouseout=function(){
			this.className=this.className.replace(new RegExp(" hover\\b"), "");
		}
	}
}
//if (window.attachEvent) window.attachEvent("onload", LiHover("hover")); 

function clientValidator(srcObject)
{
	if(!isObject(srcObject)) srcObject=parseObject(srcObject);
	var Validator=srcObject.getAttribute('validator');
	//alert(Validator);
	var objValue=srcObject.value;
	
	if(validator(objValue,Validator))
	{	
		showOKMsg(srcObject);
		return true;
	}
	else
	{	
		showErrorMsg(srcObject);
		return false;
	}
};

function resetForm(srcObject){
	if(!isObject(srcObject)) srcObject=parseObject(srcObject);
	var img=document.getElementsByTagName("img");
	srcObject.reset();
	//查找并重置虚拟控件
	for(var i=0;i<img.length;i++)
	{
		if(img.item(i).getAttribute("resetfrom")!=null)
		{
			var o=img.item(i);
			var fromid=o.getAttribute("resetfrom");
			var from=document.getElementById(fromid);
			o.src=from.value;
		}
	}
};
function popimage(srcObject)
{
	if(!isObject(srcObject)) srcObject=parseObject(srcObject);
	var srcURL;
	if(typeof(srcObject.value)=="undefined")
		srcURL=srcObject.src;
	else
		srcURL=srcObject.value;
		
	var srcArr=srcURL.split("#");
	if(srcURL!="")
		window.open(srcArr[srcArr.length-1]);
	else
		alert("还没有上传过图片！");
};
function changeBool(check,key){
	if(!isObject(check)) check=parseObject(check);
	if(!isObject(key)) key=parseObject(key);
	if(check.checked!="")
		key.value="true";
	else
		key.value="false";
};
function focusItem(toopen,toclose){
	var o=document.getElementById(toopen),c,a;
	a=toclose.split(',');
	o.className="itemOpen";
	for(var i=0;i<a.length;i++)
	{
		c=document.getElementById(a[i]);
		c.className="itemClose";
	}
};
function showbox(toopen,toclose){
	var o=document.getElementById(toopen),c,a;
	a=toclose.split(',');
	o.className="";
	for(var i=0;i<a.length;i++)
	{
		c=document.getElementById(a[i]);
		c.className="notDisplay";
	}
};
function countProduct(Prices,num,tag){
	var p=document.getElementById(Prices).value;
	var n=document.getElementById(num).value;
	if(isNaN(n)){
		document.getElementById(tag).innerHTML= "您的输入有误,请更正!";
	}
	else{
		document.getElementById(tag).innerHTML= "总价:"+p+"元 X "+n+"件 = "+(p*n)+"元";
	}
};
function styleSelectSetClass(srcObject,viewObject){
	if(!isObject(srcObject)) srcObject=parseObject(srcObject);
	if(!isObject(viewObject)) viewObject=parseObject(viewObject);
	viewObject.className=srcObject.value;
};
function getFocus(srcObject){showFocusMsg(srcObject);};

function showOKMsg(srcObject){
	if(!isObject(srcObject)) srcObject=parseObject(srcObject);
	var msgObject=getMsgObject(srcObject);
	msgObject.innerHTML=srcObject.getAttribute("OKMsg");
	msgObject.className="OKMsg";
};

function showTextMsg(srcObject,text){
	if(!isObject(srcObject)) srcObject=parseObject(srcObject);
	var msgObject=getMsgObject(srcObject);
	msgObject.innerHTML=text;
	msgObject.className="focusMsg";
}
function showErrorMsg(srcObject){
	if(!isObject(srcObject)) srcObject=parseObject(srcObject);
	var msgObject=getMsgObject(srcObject);
	msgObject.innerHTML=srcObject.getAttribute("errorMsg");
	msgObject.className="errorMsg";
};

function showFocusMsg(srcObject){
	if(!isObject(srcObject)) srcObject=parseObject(srcObject);
	var msgObject=getMsgObject(srcObject);
	msgObject.innerHTML=srcObject.getAttribute("focusMsg");
	msgObject.className="focusMsg";
};

function parseObject(srcObject){
	if(typeof(srcObject)!="object")
		return document.getElementById(srcObject);
};
function isObject(srcObject){
	if(typeof(srcObject)=="object")
		return true;
	else
		return false;
}
function getMsgObject(srcObject)
{
	if(!isObject(srcObject)) srcObject=parseObject(srcObject);
	//alert(srcObject);
	var srcId=srcObject.id;
	
	var msg=document.getElementById(srcId + "_Msg");
	
	if(msg==null){//创建
			msg=document.createElement("div");
			msg.id=srcId + "_Msg";
			insertAfter(msg,srcObject);
	}
	return msg;
};

function comboSetValue(oInput,oSelect){
	if(!isObject(oInput)) oInput=parseObject(oInput);
	if(!isObject(oSelect)) oSelect=parseObject(oSelect)
	oInput.value=oSelect.value;
};

function replaceURLsharp(url,sharp){//替换URL字符串#号后面的字符
	var URL=url.split("#")[0];
	return URL + "#" + sharp;
};
function reloadVerifyCode(srcObject){
	if(!isObject(srcObject)) srcObject=parseObject(srcObject);
	if(!lockInSecond(srcObject,5,"您操作的太频繁了，请在5秒钟后重试。")){
		if(srcObject.src.indexOf("#")<0)
			srcObject.src=srcObject.src+"#"+Now();
		else
			srcObject.src=replaceURLsharp(srcObject.src,Now());
	}
};
function insertAfter(el,targetElement){
	if(!isObject(targetElement)) targetElement=parseObject(targetElement);
	var parent = targetElement.parentNode;
	if(parent.lastChild == targetElement){//如果targetElement是parent最后一个子元素，插入newElement
		parent.appendChild(el);
	}
	else{//如果不是，插入到targetElement下一个兄弟节点的前面
		parent.insertBefore(el,targetElement.nextSibling);
	}
};
function singleChenked(obj0,obj1)
{
	if(document.getElementById(obj0).checked==true)
		document.getElementById(obj1).checked=false; 
};

function valueLookerLookup(srcObject,lookObject){
	if(!isObject(srcObject)) srcObject=parseObject(srcObject);
	if(!isObject(lookObject)) lookObject=parseObject(lookObject);

	if(!lockInSecond(srcObject,5,"您操作的太频繁了，请在5秒钟后重试。")){
		var url="command.asp?command=form.looker&lookerName=" + srcObject.getAttribute("lookerName") + "&lookerValue=" + lookObject.value;
		showTextMsg(srcObject,"正在查询,请稍候...");
		XMLRequest.src=srcObject;
		XMLRequest.send(url,false);
	}
};

function lockInSecond(srcObject,second,msg){
	if(Now()-getTimeMark(srcObject)<second*1000){
		if(msg!="") alert(msg);
		return true;
	}
	else
	{
		setTimeMark(srcObject);
		return false;
	}
};
function getTimeMark(srcObject){
	return Number(srcObject.getAttribute("timemark"));
};
function setTimeMark(srcObject){
	var now=Now();
	srcObject.setAttribute('timemark',now);
	return now;
};
function Now(){
	var d=new Date();
	return d.getTime();
};

function validator(dataValue,dataType)
{
	//分解dataType
	var TypeName,TypeValue,TvalueArr,reg;
	TypeName=dataType.substr(0,dataType.indexOf("("));
	TypeValue=dataType.substring(dataType.indexOf("(")+1,dataType.indexOf(")"));
	TvalueArr=TypeValue.split(",");
	//alert(dataValue);
	switch(TypeName)
	{
		case "lenIn"://长度范围,特例：lenIn(0,-1)中的-1代表不限长度
			return ((dataValue.length>=Number(TvalueArr[0]))&&((dataValue.length<=Number(TvalueArr[1])||(TvalueArr[1]=="-1"))));
		case "is"://是什么
			return dataValue==TypeValue;
		case "isInList":
			return ("," + TypeValue + ",").indexOf("," + dataValue + ",")!=-1;
		case "isNumberIn"://数值界于
			return Number(dataValue)>=Number(TvalueArr[0])&&Number(dataValue)<=Number(TvalueArr[1]);
		case "isEmail":
			return (/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/).test(dataValue);
		case "isPhone":
			return (/^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/).test(dataValue);
		case "isMobile":
			return (/^1[3,5,8]\d{9}$/).test(dataValue);
		case "isUrl":
		case "isURL":
			return (/^(http|https):\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/).test(dataValue);
		case "isIdCard":
		case "isIDCard":
		case "isSFZ":
			return (/^\d{15}(\d{2}[A-Za-z0-9])?$/).test(dataValue);
		case "isNumber":
		case "isNum":
			return (/^[-+]?\d+(\.\d+)?$/).test(dataValue);
		case "isQQ":
			return (/^[1-9]\d{4,8}$/).test(dataValue);
		case "isZip":
		case "isZipCode":
			return (/^[1-9]\d{5}$/).test(dataValue);
		case "isChinese":
		case "isCH":
		case "isCh":
		case "isCn":
			return (/^[\u0391-\uFFE5]+$/).test(dataValue);
		case "isEnglish":
		case "isEn":
		case "isEN":
			return (/^[A-Za-z]+$/).test(dataValue);
		case "isSafePassword":
		case "isSafe":
			return (/^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\""]*)|.{0,5})$|\s/).test(dataValue);
		case "isDate":
			return (/^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$/).test(dataValue);
		case "isTime":
			return (/([0-1]?[0-9]|2[0-3]):([0-5][0-9])/).test(dataValue);
		case "isDateTime":
			return (/^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$/).test(dataValue);
		case "isNotEmpty":
			return (dataValue.length!=0);
		case "=":
			return(dataValue==document.getElementById(TypeValue).value);
		case "lookup":
			return true;
		default:
			return false;
			
	}
};