Validator={
Require:/.+/,
Email:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
Phone:/^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/,
Mobile:/^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$/,
Url:/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/,
IdCard:/^\d{15}(\d{2}[A-Za-z0-9])?$/,
Currency:/^\d+(\.\d+)?$/,
Number:/^\d+$/,
Zip:/^[1-9]\d{5}$/,
QQ:/^[1-9]\d{4,8}$/,
Integer:/^[-\+]?\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",
Range:"getAttribute('min') < (value|0)&&(value|0) < getAttribute('max')",
Compare:"this.compare(value,getAttribute('operator'),getAttribute('to'))",
Custom:"this.Exec(value,getAttribute('regexp'))",
Group:"this.MustChecked(getAttribute('name'),getAttribute('min'),getAttribute('max'))",
ErrorItem:[document.forms[0]],
ErrorMessage:["因为您的操作还存在以下错误从而导致提交失败:"],
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])=="") continue;
this.ClearState(obj.elements[i]);
if(getAttribute("require")=="false"&&value=="") continue;
switch(_dataType){
case "Date":
case "Repeat":
case "Range":
case "Compare":
case "Custom":
case "Group":
case "Limit":
case "LimitB":
case "SafeString":
case "Filter":
if(!eval(this[_dataType])){
this.AddError(i,getAttribute("msg"));
}
break;
default:
if(!this[_dataType].test(value)){
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="";
case 1:
alert(this.ErrorMessage.join("\n"));
this.ErrorItem[1].focus();
break;
case 3:
for(var i=1;i<errCount;i++){
try{
var span=document.createElement("span");
span.id="__ErrorMessagePanel";
span.style.color="";
this.ErrorItem[i].parentNode.appendChild(span);
span.innerHTML=this.ErrorMessage[i].replace(/\d+:/,"<div class=Validator><img src=/Images/Script/11.gif width=11 height=11 align=absMiddle>&nbsp;");
}
catch(e){alert(e.description);}
}
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=="")
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){
switch(operator){
case "NotEqual":
return(op1!=op2);
case "GreaterThan":
return(op1>op2);
case "GreaterThanEqual":
return(op1>=op2);
case "LessThan":
return(op1<op2);
case "LessThanEqual":
return(op1<=op2);
default:
return(op1==op2);
}
},
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);
},
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;}
}
}
var t_id=setInterval(animate,20);
var pos=0;
var dir=2;
var len=0;
function animate()
{
var elem=document.getElementById('Progress');
if(elem != null){
if (pos==0) len+=dir;
if (len>32 || pos>79) pos+=dir;
if (pos>79) len -= dir;
if (pos>79 && len==0) pos=0;
elem.style.left=pos;
elem.style.width=len;
}
}
function Loading(){
this.clearInterval(t_id);
var targelem=document.getElementById('Load_Container');
targelem.style.display='none';
targelem.style.visibility='hidden';
}
