var jQuery_formValidator_initConfig;(function($){$.formValidator={sustainType:function(id,setting)
{var elem=$("#"+id).get(0);var srcTag=elem.tagName;var stype=elem.type;switch(setting.validateType)
{case"InitValidator":return true;case"InputValidator":if(srcTag=="INPUT"||srcTag=="TEXTAREA"||srcTag=="SELECT"){return true;}else{return false;}
case"CompareValidator":if(srcTag=="INPUT"||srcTag=="TEXTAREA")
{if(stype=="checkbox"||stype=="radio"){return false;}else{return true;}}
return false;case"AjaxValidator":if(stype=="text"||stype=="textarea"||stype=="file"||stype=="select-one"){return true;}else{return false;}
case"RegexValidator":if(srcTag=="INPUT"||srcTag=="TEXTAREA")
{if(stype=="checkbox"||stype=="radio"){return false;}else{return true;}}
return false;case"FunctionValidator":return true;}},initConfig:function(controlOptions)
{var settings={debug:false,validatorGroup:"1",alertMessage:false,validObjectIds:"",onSuccess:function(){return true;},onError:function(){},submitOnce:false};controlOptions=controlOptions||{};$.extend(settings,controlOptions);if(jQuery_formValidator_initConfig==null){jQuery_formValidator_initConfig=new Array();}
jQuery_formValidator_initConfig.push(settings);},appendValid:function(id,setting)
{if(!$.formValidator.sustainType(id,setting))return-1;var srcjo=$("#"+id).get(0);if(setting.validateType=="InitValidator"||!srcjo.settings||srcjo.settings==undefined){srcjo.settings=new Array();}
var len=srcjo.settings.push(setting);srcjo.settings[len-1].index=len-1;return len-1;},getInitConfig:function(validatorGroup)
{if(jQuery_formValidator_initConfig!=null)
{for(i=0;i<jQuery_formValidator_initConfig.length;i++)
{if(validatorGroup==jQuery_formValidator_initConfig[i].validatorGroup)
{return jQuery_formValidator_initConfig[i];}}}
return null;},triggerValidate:function(returnObj)
{switch(returnObj.setting.validateType)
{case"InputValidator":$.formValidator.InputValid(returnObj);break;case"CompareValidator":$.formValidator.CompareValid(returnObj);break;case"AjaxValidator":$.formValidator.AjaxValid(returnObj);break;case"RegexValidator":$.formValidator.RegexValid(returnObj);break;case"FunctionValidator":$.formValidator.FunctionValid(returnObj);break;}},SetTipState:function(tipid,showclass,showmsg)
{var tip=$("#"+tipid);if(showmsg==null||showmsg==""){tip.hide();}else
{tip.show();tip.removeClass();tip.addClass(showclass);tip.html(showmsg);}},SetFailState:function(tipid,showmsg)
{var tip=$("#"+tipid);tip.removeClass();tip.addClass("onError");tip.html(showmsg);},ShowMessage:function(returnObj)
{var id=returnObj.id;var isValid=returnObj.isValid;var setting=returnObj.setting;var showmsg="";var showclass="";var settings=$("#"+id).get(0).settings;var intiConfig=$.formValidator.getInitConfig(settings[0].validatorGroup);if(!isValid)
{if(setting.validateType=="AjaxValidator")
{if(setting.lastValid=="")
{showclass="onLoad";showmsg=setting.onwait;}
else
{showclass="onError";showmsg=setting.onerror;}}
else
{showmsg=(returnObj.errormsg==""?setting.onerror:returnObj.errormsg);showclass="onError";}
if(intiConfig.alertMessage)
{var elem=$("#"+id).get(0);if(elem.validoldvalue!=$(elem).val()){alert(showmsg);}}
else
{$.formValidator.SetTipState(settings[0].tipid,showclass,showmsg);}}
else
{if(!intiConfig.alertMessage)
{var showmsg="";if($.formValidator.IsEmpty(id)){showmsg=setting.onempty;}else{showmsg=setting.oncorrect;}
$.formValidator.SetTipState(setting.tipid,"onSuccess",showmsg);}}},GetLength:function(id)
{var srcjo=$("#"+id);sType=srcjo.get(0).type;var len=0;switch(sType)
{case"text":case"hidden":case"password":case"textarea":case"file":var val=srcjo.val();for(var i=0;i<val.length;i++)
{if(val.charCodeAt(i)>=0x4e00&&val.charCodeAt(i)<=0x9fa5){len+=2;}else{len++;}}
break;case"checkbox":case"radio":len=$("input[@type='"+sType+"'][@name='"+srcjo.attr("name")+"'][@checked]").length;break;case"select-one":len=srcjo.get(0).options?srcjo.get(0).options.selectedIndex:-1;break;case"select-more":break;}
return len;},IsEmpty:function(id)
{if($("#"+id).get(0).settings[0].empty&&$.formValidator.GetLength(id)==0){return true;}else{return false;}},IsOneValid:function(id)
{return $.formValidator.OneIsValid(id,1).isValid;},OneIsValid:function(id,index)
{var returnObj=new Object();returnObj.id=id;returnObj.ajax=-1;returnObj.errormsg="";var elem=$("#"+id).get(0);var settings=elem.settings;var settingslen=settings.length;if(settingslen==1){settings[0].bind=false;}
if(!settings[0].bind){return null;}
for(var i=0;i<settingslen;i++)
{if(i==0){if($.formValidator.IsEmpty(id)){returnObj.isValid=true;returnObj.setting=settings[0];break;}
continue;}
returnObj.setting=settings[i];if(settings[i].validateType!="AjaxValidator"){$.formValidator.triggerValidate(returnObj);}else{returnObj.ajax=i;}
if(!settings[i].isValid){returnObj.isValid=false;returnObj.setting=settings[i];break;}else{returnObj.isValid=true;returnObj.setting=settings[0];if(settings[i].validateType=="AjaxValidator")break;}}
return returnObj;},RetSetTipState:function(validatorGroup)
{var initConfig=$.formValidator.getInitConfig(validatorGroup);var jqObjs=$(initConfig.validObjectIds);jqObjs.each(function(){var setting0=this.settings[0];$.formValidator.SetTipState(setting0.tipid,"onShow",setting0.onshow);});},PageIsValid:function(validatorGroup)
{if(validatorGroup==null||validatorGroup==undefined)validatorGroup="1";var isValid=true;var thefirstid="",thefirsterrmsg;var returnObj,setting;var error_tip="^";var initConfig=$.formValidator.getInitConfig(validatorGroup);var jqObjs=$(initConfig.validObjectIds);jqObjs.each(function(i,elem)
{if(elem.settings[0].bind){returnObj=$.formValidator.OneIsValid(elem.id,1);if(returnObj)
{var tipid=elem.settings[0].tipid;if(!returnObj.isValid){isValid=false;if(thefirstid==""){thefirstid=returnObj.id;thefirsterrmsg=(returnObj.errormsg==""?returnObj.setting.onerror:returnObj.errormsg)}}
if(!initConfig.alertMessage){if(error_tip.indexOf("^"+tipid+"^")==-1){error_tip=error_tip+tipid+"^";if(!returnObj.isValid){error_tip=error_tip+tipid+"^";}
$.formValidator.ShowMessage(returnObj);}}}}});if(isValid)
{isValid=initConfig.onSuccess();if(initConfig.submitOnce){$("input[@type='submit']").attr("disabled",true);}}
else
{var obj=$("#"+thefirstid).get(0);initConfig.onError(thefirsterrmsg,obj);if(thefirstid!=""){$("#"+thefirstid).focus();}}
return!initConfig.debug&&isValid;},AjaxValid:function(returnObj)
{var id=returnObj.id;var srcjo=$("#"+id);var setting=srcjo.get(0).settings[returnObj.ajax];var ls_url=setting.url;if(srcjo.size()==0&&srcjo.get(0).settings[0].empty){returnObj.setting=$("#"+id).get(0).settings[0];returnObj.isValid=true;$.formValidator.ShowMessage(returnObj);setting.isValid=true;return;}
if(setting.addidvalue)
{var parm="clientid="+id+"&"+id+"="+escape(srcjo.val());ls_url=ls_url+((ls_url).indexOf("?")>0?("&"+parm):("?"+parm));}
$.ajax({mode:"abort",type:setting.type,url:ls_url,cache:setting.cache,data:setting.data,async:setting.async,dataType:setting.datatype,success:function(data){setting0=srcjo.get(0).settings[0];if(setting.success(data))
{$.formValidator.SetTipState(setting0.tipid,"onSuccess",setting0.oncorrect);setting.isValid=true;}
else
{$.formValidator.SetTipState(setting0.tipid,"onError",setting.onerror);setting.isValid=false;}},complete:function(){if(setting.buttons&&setting.buttons.length>0)setting.buttons.attr({"disabled":false});setting.complete;},beforeSend:function(){if(setting.buttons&&setting.buttons.length>0)setting.buttons.attr({"disabled":true});var isvalid=setting.beforesend();if(isvalid)setting.isValid=false;setting.lastValid="-1";return setting.beforesend;},error:function(){setting0=srcjo.get(0).settings[0];$.formValidator.SetTipState(setting0.tipid,"onError",setting.onerror);setting.isValid=false;setting.error();},processData:setting.processdata});},RegexValid:function(returnObj)
{var id=returnObj.id;var setting=returnObj.setting;var srcTag=$("#"+id).get(0).tagName;var elem=$("#"+id).get(0);if(elem.settings[0].empty&&elem.value==""){setting.isValid=true;}
else
{var regexpress=setting.regexp;if(setting.datatype=="enum"){regexpress=eval("regexEnum."+regexpress);}
if(regexpress==undefined||regexpress==""){setting.isValid=false;return;}
var exp=new RegExp(regexpress,setting.param);if(exp.test($("#"+id).val())){setting.isValid=true;}else{setting.isValid=false;}}},FunctionValid:function(returnObj)
{var id=returnObj.id;var setting=returnObj.setting;var srcjo=$("#"+id);var lb_ret=setting.fun(srcjo.val(),srcjo.get(0));if(lb_ret!=undefined)
{if(typeof lb_ret=="string"){setting.isValid=false;returnObj.errormsg=lb_ret;}else{setting.isValid=lb_ret;}}},InputValid:function(returnObj)
{var id=returnObj.id;var setting=returnObj.setting;var srcjo=$("#"+id);var elem=srcjo.get(0);var val=srcjo.val();var sType=elem.type;var len=$.formValidator.GetLength(id);switch(sType)
{case"text":case"hidden":case"password":case"textarea":case"file":case"checkbox":case"select-one":case"radio":var li_panduan=false;if(sType=="select-one"){setting.type="size";}
if(setting.type=="size"){val=len;li_panduan=true;}
else
{stype=(typeof setting.min);if(stype=="number")
{if(!isNaN(val)){val=parseFloat(val);li_panduan=true;}}
if(stype=="string"){li_panduan=true;}}
if(li_panduan)
{if(val<setting.min||val>setting.max){if(val<setting.min&&setting.onerrormin){returnObj.errormsg=setting.onerrormin;}
if(val>setting.min&&setting.onerrormax){returnObj.errormsg=setting.onerrormax;}
setting.isValid=false;}
else{setting.isValid=true;}}
else{setting.isValid=false;}
break;case"select-more":break;}},CompareValid:function(returnObj)
{var id=returnObj.id;var setting=returnObj.setting;var srcjo=$("#"+id);var desjo=$("#"+setting.desID);setting.isValid=false;curvalue=srcjo.val();ls_data=desjo.val();if(setting.datatype=="number")
{if(!isNaN(curvalue)&&!isNaN(ls_data))
{curvalue=parseFloat(curvalue);ls_data=parseFloat(ls_data);}
else
{return;}}
switch(setting.operateor)
{case"=":if(curvalue==ls_data){setting.isValid=true;}
break;case"!=":if(curvalue!=ls_data){setting.isValid=true;}
break;case">":if(curvalue>ls_data){setting.isValid=true;}
break;case">=":if(curvalue>=ls_data){setting.isValid=true;}
break;case"<":if(curvalue<ls_data){setting.isValid=true;}
break;case"<=":if(curvalue<=ls_data){setting.isValid=true;}
break;case"oneok":if($.formValidator.IsEmpty(id)||$.formValidator.IsEmpty(IsEmpty.desID)){setting.isValid=false;}else{setting.isValid=true;}}}};$.fn.formValidator=function(msgOptions)
{var setting={validatorGroup:"1",empty:false,submitonce:false,automodify:false,onshow:"请输入内容",onfocus:"请输入内容",oncorrect:"输入正确",onempty:"输入内容为空",defaultvalue:null,bind:true,validateType:"InitValidator"};msgOptions=msgOptions||{};$.extend(setting,msgOptions);return this.each(function()
{var setting_temp={};$.extend(setting_temp,setting);if(!setting.tipid){setting_temp.tipid=this.id+"Tip";}
var tip=setting_temp.tipid;var jqobj=$(this);$.formValidator.appendValid(this.id,setting_temp);var initConfig=$.formValidator.getInitConfig(setting.validatorGroup);var validObjectIds=initConfig.validObjectIds;if(validObjectIds.indexOf("#"+this.id+" ")==-1){if(validObjectIds==""){initConfig.validObjectIds="#"+this.id+""}else{initConfig.validObjectIds=validObjectIds+",#"+this.id}}
if(!initConfig.alertMessage){$.formValidator.SetTipState(tip,"onShow",setting.onshow);}
var srcTag=this.tagName;var defaultValue=setting.defaultvalue;if(srcTag=="INPUT"||srcTag=="TEXTAREA")
{var stype=this.type;var joeach=$(this);if(defaultValue){if(stype=="checkbox"||stype=="radio"){if(this.value==defaultValue){jqobj.attr("checked",true)}}else{jqobj.val(defaultValue);}}
joeach.focus(function()
{if(!initConfig.alertMessage){$.formValidator.SetTipState(tip,"onFocus",setting.onfocus);}
if(stype=="password"||stype=="text"||stype=="textarea"||stype=="file"){this.validoldvalue=jqobj.val();}});jqobj.blur(function()
{var settings=this.settings;var returnObj=$.formValidator.OneIsValid(this.id,1);if(returnObj==null){return;}
if(returnObj.ajax>=0&&this.validoldvalue!=$(this).val())
{$.formValidator.SetTipState(tip,"onLoad",settings[returnObj.ajax].onwait);$.formValidator.AjaxValid(returnObj);}
else
{$.formValidator.ShowMessage(returnObj);if(!returnObj.isValid)
{var auto=setting.automodify&&(this.type=="text"||this.type=="textarea"||this.type=="file");if(auto&&!initConfig.alertMessage)
{alert(returnObj.setting.onerror);$.formValidator.SetTipState(tip,"onShow",setting.onshow);}}}});}
else if(srcTag=="SELECT")
{if(defaultValue){jqobj.attr("value",defaultValue);}
jqobj.focus(function()
{if(!initConfig.alertMessage){$.formValidator.SetTipState(tip,"onFocus",setting.onfocus);}});jqobj.bind("change",function()
{var returnObj=$.formValidator.OneIsValid(this.id,1);if(returnObj==null){return;}
if(returnObj.ajax>=0&&this.validoldvalue!=$(this).val()){$.formValidator.AjaxValid(this.id,returnObj.setting);}else{$.formValidator.ShowMessage(returnObj);}});}});};$.fn.InputValidator=function(controlOptions)
{var settings={isValid:false,min:0,max:99999999999999,forceValid:false,type:"size",defaultValue:null,onerror:"输入错误",validateType:"InputValidator"};controlOptions=controlOptions||{};$.extend(settings,controlOptions);return this.each(function(){$.formValidator.appendValid(this.id,settings);});};$.fn.SelectValidator=function(controlOptions)
{var settings={isValid:false,onerror:"必须选择",defaultValue:null,validateType:"SelectValidator"};controlOptions=controlOptions||{};$.extend(settings,controlOptions);return this.each(function(){$.formValidator.appendValid(this.id,settings);});};$.fn.CompareValidator=function(controlOptions)
{var settings={isValid:false,desID:"",operateor:"=",onerror:"输入错误",validateType:"CompareValidator"};controlOptions=controlOptions||{};$.extend(settings,controlOptions);return this.each(function(){$.formValidator.appendValid(this.id,settings);});};$.fn.RegexValidator=function(controlOptions)
{var settings={isValid:false,regexp:"",param:"i",datatype:"string",onerror:"输入的格式不正确",validateType:"RegexValidator"};controlOptions=controlOptions||{};$.extend(settings,controlOptions);return this.each(function(){$.formValidator.appendValid(this.id,settings);});};$.fn.FunctionValidator=function(controlOptions)
{var settings={isValid:true,fun:function(){this.isValid=true;},validateType:"FunctionValidator",onerror:"输入错误"};controlOptions=controlOptions||{};$.extend(settings,controlOptions);return this.each(function(){$.formValidator.appendValid(this.id,settings);});};$.fn.AjaxValidator=function(controlOptions)
{var settings={isValid:false,lastValid:"",type:"GET",url:"",addidvalue:true,datatype:"html",data:"",async:true,cache:false,beforesend:function(){return true;},success:function(){return true;},complete:function(){},processdata:false,error:function(){},buttons:null,onerror:"服务器校验没有通过",onwait:"正在等待服务器返回数据",validateType:"AjaxValidator"};controlOptions=controlOptions||{};$.extend(settings,controlOptions);return this.each(function()
{$.formValidator.appendValid(this.id,settings);});};$.fn.DefaultPassed=function(onshow)
{return this.each(function()
{var settings=this.settings;for(var i=1;i<settings.length;i++)
{settings[i].isValid=true;if(!$.formValidator.getInitConfig(settings[0].validatorGroup).alertMessage){var ls_style="onSuccess";if(onshow){ls_style="onShow"};$.formValidator.SetTipState(settings[0].tipid,ls_style,settings[0].oncorrect);}}});};$.fn.unformValidator=function(unbind)
{return this.each(function()
{this.settings[0].bind=!unbind;if(unbind){$("#"+this.settings[0].tipid).hide();}else{$("#"+this.settings[0].tipid).show();}});};})(jQuery);var regexEnum={intege:"^-?[1-9]\\d*$",intege1:"^[1-9]\\d*$",intege2:"^-[1-9]\\d*$",num:"^([+-]?)\\d*\\.?\\d+$",num1:"^[1-9]\\d*|0$",num2:"^-[1-9]\\d*|0$",decmal:"^([+-]?)\\d*\\.\\d+$",decmal1:"^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*$",　　
decmal2:"^-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*)$",　
decmal3:"^-?([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0)$",　
decmal4:"^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0$",　　
decmal5:"^(-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*))|0?.0+|0$",email:"^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$",color:"^[a-fA-F0-9]{6}$",url:"^http[s]?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-./?%&=]*)?$",chinese:"^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$",ascii:"^[\\x00-\\xFF]+$",zipcode:"^\\d{6}$",mobile:"^(13|15)[0-9]{9}$",ip4:"^(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5]).(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5]).(d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5]).(\\d{1,2}|1\\d\\d|2[0-4]\\d|25[0-5])$",notempty:"^\\S+$",picture:"(.*)\\.(jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga)$",rar:"(.*)\\.(rar|zip|7zip|tgz)$",date:"^\\d{4}(\\-|\\/|\.)\\d{1,2}\\1\\d{1,2}$",qq:"^[1-9]*[1-9][0-9]*$",tel:"(\\d{3}-|\\d{4}-)?(\\d{8}|\\d{7})",username:"^\\w+$",letter:"^[A-Za-z]+$",letter_u:"^[A-Z]+$",letter_l:"^[a-z]+$",idcard:"^[1-9]([0-9]{14}|[0-9]{17})$"}
function isTime(str)
{var a=str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);if(a==null){return false}
if(a[1]>24||a[3]>60||a[4]>60)
{return false;}
return true;}
function isDate(str)
{var r=str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);if(r==null)return false;var d=new Date(r[1],r[3]-1,r[4]);return(d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);}
function isDateTime(str)
{var reg=/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;var r=str.match(reg);if(r==null)return false;var d=new Date(r[1],r[3]-1,r[4],r[5],r[6],r[7]);return(d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);}
function isCardID(StrNo){StrNo=StrNo.toString()
if(StrNo.length==18){var a,b,c
if(!isInteger(StrNo.substr(0,17))){return false}
a=parseInt(StrNo.substr(0,1))*7+parseInt(StrNo.substr(1,1))*9+parseInt(StrNo.substr(2,1))*10;a=a+parseInt(StrNo.substr(3,1))*5+parseInt(StrNo.substr(4,1))*8+parseInt(StrNo.substr(5,1))*4;a=a+parseInt(StrNo.substr(6,1))*2+parseInt(StrNo.substr(7,1))*1+parseInt(StrNo.substr(8,1))*6;a=a+parseInt(StrNo.substr(9,1))*3+parseInt(StrNo.substr(10,1))*7+parseInt(StrNo.substr(11,1))*9;a=a+parseInt(StrNo.substr(12,1))*10+parseInt(StrNo.substr(13,1))*5+parseInt(StrNo.substr(14,1))*8;a=a+parseInt(StrNo.substr(15,1))*4+parseInt(StrNo.substr(16,1))*2;b=a%11;if(b==2){c=StrNo.substr(17,1).toUpperCase();}else{c=parseInt(StrNo.substr(17,1));}
switch(b){case 0:if(c!=1){return"身份证号码校验位错:最后一位应该为:1";}break;case 1:if(c!=0){return"身份证号码校验位错:最后一位应该为:0";}break;case 2:if(c!="X"){return"身份证号码校验位错:最后一位应该为:X";}break;case 3:if(c!=9){return"身份证号码校验位错:最后一位应该为:9";}break;case 4:if(c!=8){return"身份证号码校验位错:最后一位应该为:8";}break;case 5:if(c!=7){return"身份证号码校验位错:最后一位应该为:7";}break;case 6:if(c!=6){return"身份证号码校验位错:最后一位应该为:6";}break;case 7:if(c!=5){return"身份证号码校验位错:最后一位应该为:5";}break;case 8:if(c!=4){return"身份证号码校验位错:最后一位应该为:4";}break;case 9:if(c!=3){return"身份证号码校验位错:最后一位应该为:3";}break;case 10:if(c!=2){return"身份证号码校验位错:最后一位应该为:2";}break;}}else{if(!isInteger(StrNo)){return"身份证号码错误,前15位不能含有英文字母！";}}
switch(StrNo.length){case 15:if(isValidDate("19"+StrNo.substr(6,2),StrNo.substr(8,2),StrNo.substr(10,2))){return true;}else{return false;}
case 18:if(isValidDate(StrNo.substr(6,4),StrNo.substr(10,2),StrNo.substr(12,2))){return true;}else{return false;}}
return"输入的身份证号码必须为15位或者18位！";}
function isValidDate(iY,iM,iD){iM=parseInt(iM)-1;var a=new Date(iY,iM,iD);var y=a.getFullYear();var m=a.getMonth();var d=a.getDate();if(y!=iY||m!=iM||d!=iD){return('身份证号码内日期错误！');}
return true;}
function isInteger(str){if(/[^\d]+$/.test(str)){return false;}
return true;}
