
String.prototype.trim=function(){var result=this.replace(/(^\s*)/g,"");result=result.replace(/(\s*$)/g,"");return result;}
window.onload=function(){var form_s=document.forms;for(var i=0;i<form_s.length;i++){if(form_s[i].getAttribute("filter")=="true")continue;var elem_s=form_s[i].elements;for(var j=0;j<elem_s.length;j++){var _dataType=elem_s[j].getAttribute("dataType");if(typeof(_dataType)=="object"||typeof(Validator[_dataType])=="undefined"||elem_s[j].type!="text"||elem_s[j].getAttribute("filter")=="true"){continue;}else{elem_s[j].onblur=function(){Validator.onblurValidate(this);};}}}}
Validator={Require:/.+/,fullTel:/^(\d{3,4}\-)([1-9]\d{6,8})(\-\d{3,4}){0,1}$/,fullBirthday:/^((19)|(20))(\d{2})\-((0[1-9])|1[0-2])\-((0[1-9])|([1-2][0-9])|(3[0-1]))$/,fullBirthday8d:/^((19)|(20))(\d{2})((0[1-9])|1[0-2])((0[1-9])|([1-2][0-9])|(3[0-1]))$/,Password:/^[\u0021-u0023\u0025\u0028-\u005F\u0061-\u007E]{6,32}$/,Password6to16:/^[\u0021\u0023\u0025\u0028-\u005F\u0061-\u007E]{6,32}$/,Domain:/^([a-zA-Z0-9])([a-zA-Z0-9-]{3,16})$/,EmailStr:/^[a-zA-Z0-9]+[_a-zA-Z0-9-]*(\.[_a-z0-9-]+)*@[a-z0-9]+(-[a-z0-9]+)*(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/i,Email:/^[a-zA-Z0-9]+[_a-zA-Z0-9-]*(\.[_a-z0-9-]+)*@[a-z0-9]+(-[a-z0-9]+)*(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/i,Emails:"this.ChkEmail(value)",CompanyAccount:/^\w[\w-.@]{4,30}\w$/,mixedTel:/^[0-9\-]+$/,Url:/^(((http)|(https)|(ftp)):\/\/)?[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/,shortUrl:/^[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/,Phone:/^(86[\-—－]|0)(10|2\d|[3-9]\d{2})[\-—－](\d{7,8})([\-—－]\d{1,5})?$/,PhoneOrMobile:/(^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$)|(^((\(\d{3}\))|(\d{3}\-))?\d{11}$)/,Mobile:/^0?1(3|5|8)\d{9}$/,IdCard:"this.IsIdCard(value)",Currency:/^\d+(\.\d+)?$/,Number:/^\d+$/,NumberAboveZero:/^[1-9]\d*$/,Zip:/^\d{6}$/,QQ:/^[1-9]\d{4,8}$/,Integer:/^[-\+]?\d+$/,UNSignedInteger:/^\d+$/,Double:/^[-\+]?\d+(\.\d+)?$/,English:/^[A-Za-z]+$/,Chinese:/^[\u0391-\uFFE5]+$/,Username:/^[a-z]\w{3,}$/i,UnSafe:/^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/,IsSafe:function(str){return!this.UnSafe.test(str);},SafeString:"this.IsSafe(value)",Filter:"this.DoFilter(value, getAttribute('accept'))",Limit:"this.limit(value.length,getAttribute('min'),  getAttribute('max'))",LimitB:"this.limit(this.LenB(value), getAttribute('min'), getAttribute('max'))",Date:"this.IsDate(value, getAttribute('min'), getAttribute('format'))",Repeat:"value == document.getElementsByName(getAttribute('to'))[0].value.trim()",Range:"getAttribute('min') <= (value|0) && (value|0) <= getAttribute('max')",Compare:"this.compare(value,getAttribute('operator'),getAttribute('to'))",CompareWith:"this.compare(value,getAttribute('operator'),document.getElementsByName(getAttribute('to'))[0].value.trim())",Custom:"this.Exec(value, getAttribute('regexp'))",Group:"this.MustChecked(getAttribute('name'), getAttribute('min'), getAttribute('max'))",ErrorItem:[document.forms[0]],ErrorMessage:["以下原因导致提交失败：\t\t\t\t"],ChkEmail:function(str){var isErr=true;var temp=str.split(",");if(temp.length==1){var temp=str.split(" ");}
for(var i=0;i<temp.length;i++){if(this.Email.test(temp[i])==false){isErr=false;}}
return isErr;},singleValidate:function(elem){with(elem){var _dataType=getAttribute("dataType");if(typeof(_dataType)=="object"||typeof(this[_dataType])=="undefined"){return false;}
this.ClearState(elem);if(tagName.toLowerCase()=='select'){if(getAttribute("require")=="false"){return false;}}else{if(getAttribute("require")=="false"&&value==""){return false;}}
switch(_dataType){case"IdCard":case"Date":case"Repeat":case"Range":case"Compare":case"CompareWith":case"Custom":case"Group":case"Limit":case"LimitB":case"SafeString":case"Filter":case"Emails":if(!eval(this[_dataType])){this.addSingleErrorMsg(elem);return false;}
break;default:if(!this[_dataType].test(value.trim())){this.addSingleErrorMsgNoFocus(elem);return false;}
break;}}},onblurValidate:function(elem){with(elem){var _dataType=getAttribute("dataType");if(typeof(_dataType)=="object"||typeof(this[_dataType])=="undefined"){return false;}
this.ClearState(elem);if(tagName.toLowerCase()=='select'){if(getAttribute("require")=="false"){return false;}}else{if(getAttribute("require")=="false"&&value==""){return false;}}
switch(_dataType){case"IdCard":case"Date":case"Repeat":case"Range":case"Compare":case"CompareWith":case"Custom":case"Group":case"Limit":case"LimitB":case"SafeString":case"Filter":case"Emails":if(!eval(this[_dataType])){this.addSingleErrorMsg(elem);}
break;default:if(!this[_dataType].test(value.trim())){this.addSingleErrorMsgNoFocus(elem);}
break;}}},addSingleErrorMsg:function(elem){var msg=elem.getAttribute("msg");if(elem.parentNode.lastChild.id=="__ErrorMessagePanel"){return;}
try{var div=document.createElement("div");div.id="__ErrorMessagePanel";div.className="option";elem.parentNode.appendChild(div);div.innerHTML="<span class='warning'>"+msg+"</span>";}catch(e){alert(e.description);}
if(elem.type!="hidden"&&typeof(elem)=="object"){elem.focus();}},addUserSingleErrorMsg:function(elem,msg){if(elem.parentNode.lastChild.id=="__ErrorMessagePanel"){elem.parentNode.removeChild(elem.parentNode.lastChild);}
try{var div=document.createElement("div");div.id="__ErrorMessagePanel";div.className="option";elem.parentNode.appendChild(div);div.innerHTML="<span class='warning'>"+msg+"</span>";}catch(e){alert(e.description);}
if(elem.type!="hidden"&&typeof(elem)=="object"){elem.focus();}},addSingleErrorMsgNoFocus:function(elem){var msg=elem.getAttribute("msg");if(elem.parentNode.lastChild.id=="__ErrorMessagePanel"){return;}
try{var div=document.createElement("div");div.id="__ErrorMessagePanel";div.className="option";elem.parentNode.appendChild(div);div.innerHTML="<span class='warning'>"+msg+"</span>";}catch(e){alert(e.description);}},removeSingleErrorMsg:function(elem){if(elem.parentNode.lastChild.id=="__ErrorMessagePanel"){elem.parentNode.removeChild(elem.parentNode.lastChild);return;}
return;},Validate:function(theForm,mode){var obj=theForm||event.srcElement;var count=obj.elements.length;this.ErrorMessage.length=1;this.ErrorItem.length=1;this.ErrorItem[0]=obj;for(var i=0;i<count;i++){with(obj.elements[i]){var _dataType=getAttribute("dataType");if(typeof(_dataType)=="object"||typeof(this[_dataType])=="undefined"){continue;}
this.ClearState(obj.elements[i]);if((typeof(getAttribute("require"))=='undefined'||getAttribute("require")=="false")&&getAttribute("datatype")!="Require"){continue;}
if(tagName.toLowerCase()=='select'){if(getAttribute("require")=="false"){continue;}}else{if(getAttribute("require")=="false"&&value==""){continue;}}
switch(_dataType){case"IdCard":case"Date":case"Repeat":case"Range":case"Compare":case"CompareWith":case"Custom":case"Group":case"Limit":case"LimitB":case"SafeString":case"Filter":case"Emails":if(!eval(this[_dataType])){this.AddError(i,getAttribute("msg"));}
break;default:if(!this[_dataType].test(value.trim())){this.AddError(i,getAttribute("msg"));}
break;}}}
if(this.ErrorMessage.length>1){mode=mode||1;var errCount=this.ErrorItem.length;switch(mode){case 2:for(var i=1;i<errCount;i++)
this.ErrorItem[i].style.color="red";case 1:alert(this.ErrorMessage.join("\n"));this.ErrorItem[1].focus();break;case 3:for(var i=1;i<errCount;i++){try{var div=document.createElement("div");div.id="__ErrorMessagePanel";div.className="option";this.ErrorItem[i].parentNode.appendChild(div);div.innerHTML="<span class='warning'>"+this.ErrorMessage[i].replace(/\d+:/,"")+"</span>";}
catch(e){alert(e.description);}}
if(this.ErrorItem[1].type!="hidden"&&typeof(this.ErrorItem[1])=="object"){this.ErrorItem[1].focus();}
break;case 4:for(var i=1;i<errCount;i++){try{var div=document.createElement("div");div.id="__ErrorMessagePanel";div.className="option";this.ErrorItem[i].parentNode.appendChild(div);div.innerHTML="<span class='warning'>"+this.ErrorMessage[i].replace(/\d+:/,"")+"</span>";if(this.ErrorItem[i].type!="hidden"&&typeof(this.ErrorItem[i])=="object"){this.ErrorItem[i].focus();}
break;}
catch(e){alert(e.description);}}
if(this.ErrorItem[1].type!="hidden"&&typeof(this.ErrorItem[1])=="object"){this.ErrorItem[1].focus();}
break;default:alert(this.ErrorMessage.join("\n"));break;}
return false;}
return true;},limit:function(len,min,max){min=min||0;max=max||Number.MAX_VALUE;return min<=len&&len<=max;},LenB:function(str){return str.replace(/[^\x00-\xff]/g,"**").length;},ClearState:function(elem){with(elem){if(style.color=="red")
style.color="";var lastNode=parentNode.childNodes[parentNode.childNodes.length-1];if(lastNode.id=="__ErrorMessagePanel")
parentNode.removeChild(lastNode);}},AddError:function(index,str){this.ErrorItem[this.ErrorItem.length]=this.ErrorItem[0].elements[index];this.ErrorMessage[this.ErrorMessage.length]=this.ErrorMessage.length+":"+str;},Exec:function(op,reg){return new RegExp(reg,"g").test(op);},compare:function(op1,operator,op2){var opt1=parseInt(op1);var opt2=parseInt(op2);switch(operator){case"NotEqual":return(opt1!=opt2);case"GreaterThan":return(opt1>opt2);case"GreaterThanEqual":return(opt1>=opt2);case"LessThan":return(opt1<opt2);case"LessThanEqual":return(opt1<=opt2);default:return(opt1==opt2);}},MustChecked:function(name,min,max){var groups=document.getElementsByName(name);var hasChecked=0;min=min||1;max=max||groups.length;for(var i=groups.length-1;i>=0;i--)
if(groups[i].checked)hasChecked++;return min<=hasChecked&&hasChecked<=max;},DoFilter:function(input,filter){return new RegExp("^.+\.(?=EXT)(EXT)$".replace(/EXT/g,filter.split(/\s*,\s*/).join("|")),"gi").test(input);},IsIdCard:function(number){var date,Ai;var verify="10x98765432";var Wi=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2];var area=['','','','','','','','','','','','北京','天津','河北','山西','内蒙古','','','','','','辽宁','吉林','黑龙江','','','','','','','','上海','江苏','浙江','安微','福建','江西','山东','','','','河南','湖北','湖南','广东','广西','海南','','','','重庆','四川','贵州','云南','西藏','','','','','','','陕西','甘肃','青海','宁夏','新疆','','','','','','台湾','','','','','','','','','','香港','澳门','','','','','','','','','国外'];var re=number.match(/^(\d{2})\d{4}(((\d{2})(\d{2})(\d{2})(\d{3}))|((\d{4})(\d{2})(\d{2})(\d{3}[x\d])))$/i);if(re==null)return false;if(re[1]>=area.length||area[re[1]]=="")return false;if(re[2].length==12){Ai=number.substr(0,17);date=[re[9],re[10],re[11]].join("-");}
else{Ai=number.substr(0,6)+"19"+number.substr(6);date=["19"+re[4],re[5],re[6]].join("-");}
if(!this.IsDate(date,"ymd"))return false;var sum=0;for(var i=0;i<=16;i++){sum+=Ai.charAt(i)*Wi[i];}
Ai+=verify.charAt(sum%11);return(number.length==15||number.length==18&&number==Ai);},IsDate:function(op,formatString){formatString=formatString||"ymd";var m,year,month,day;switch(formatString){case"ymd":m=op.match(new RegExp("^((\\d{4})|(\\d{2}))([-./])(\\d{1,2})\\4(\\d{1,2})$"));if(m==null)return false;day=m[6];month=m[5]*1;year=(m[2].length==4)?m[2]:GetFullYear(parseInt(m[3],10));break;case"dmy":m=op.match(new RegExp("^(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))$"));if(m==null)return false;day=m[1];month=m[3]*1;year=(m[5].length==4)?m[5]:GetFullYear(parseInt(m[6],10));break;default:break;}
if(!parseInt(month))return false;month=month==0?12:month;var date=new Date(year,month-1,day);return(typeof(date)=="object"&&year==date.getFullYear()&&month==(date.getMonth()+1)&&day==date.getDate());function GetFullYear(y){return((y<30?"20":"19")+y)|0;}}}