function Validator(_1){
this.formobj=document.forms[_1];
if(!this.formobj){
alert("BUG: couldnot get Form object "+_1);
return;
}
if(this.formobj.onsubmit){
this.formobj.old_onsubmit=this.formobj.onsubmit;
this.formobj.onsubmit=null;
}else{
this.formobj.old_onsubmit=null;
}
this.formobj.onsubmit=form_submit_handler;
this.addValidation=add_validation;
this.setAddnlValidationFunction=set_addnl_vfunction;
this.clearAllValidations=clear_all_validations;
};
function set_addnl_vfunction(_2){
this.formobj.addnlvalidation=_2;
};
function clear_all_validations(){
for(var _3=0;_3<this.formobj.elements.length;_3++){
this.formobj.elements[_3].validationset=null;
}
};
function form_submit_handler(){
for(var _4=0;_4<this.elements.length;_4++){
if(this.elements[_4].validationset&&!this.elements[_4].validationset.validate()){
return false;
}
}
if(this.addnlvalidation){
str=" var ret = "+this.addnlvalidation+"()";
eval(str);
if(!ret){
return ret;
}
}
return true;
};
function add_validation(_5,_6,_7){
if(!this.formobj){
alert("BUG: the form object is not set properly");
return;
}
var _8=this.formobj[_5];
if(!_8){
alert("BUG: Couldnot get the input object named: "+_5);
return;
}
if(!_8.validationset){
_8.validationset=new ValidationSet(_8);
}
_8.validationset.add(_6,_7);
};
function ValidationDesc(_9,_a,_b){
this.desc=_a;
this.error=_b;
this.itemobj=_9;
this.validate=vdesc_validate;
};
function vdesc_validate(){
if(!V2validateData(this.desc,this.itemobj,this.error)){
this.itemobj.focus();
return false;
}
return true;
};
function ValidationSet(_c){
this.vSet=new Array();
this.add=add_validationdesc;
this.validate=vset_validate;
this.itemobj=_c;
};
function add_validationdesc(_d,_e){
this.vSet[this.vSet.length]=new ValidationDesc(this.itemobj,_d,_e);
};
function vset_validate(){
for(var _f=0;_f<this.vSet.length;_f++){
if(!this.vSet[_f].validate()){
return false;
}
}
return true;
};
function validateEmailv2(_10){
if(_10.length<=0){
return true;
}
var _11=_10.match("^(.+)@(.+)$");
if(_11==null){
return false;
}
if(_11[1]!=null){
var _12=/^\"?[\w-_\.]*\"?$/;
if(_11[1].match(_12)==null){
return false;
}
}
if(_11[2]!=null){
var _13=/^[\w-\.]*\.[A-Za-z]{2,4}$/;
if(_11[2].match(_13)==null){
var _14=/^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
if(_11[2].match(_14)==null){
return false;
}
}
return true;
}
return false;
};
function V2validateData(_15,_16,_17){
var _18=_15.search("=");
var _19="";
var _1a="";
if(_18>=0){
_19=_15.substring(0,_18);
_1a=_15.substr(_18+1);
}else{
_19=_15;
}
switch(_19){
case "req":
case "required":
if(eval(_16.value.length)==0){
if(!_17||_17.length==0){
_17=_16.name+" : Required Field";
}
alert(_17);
return false;
}
break;
case "maxlength":
case "maxlen":
if(eval(_16.value.length)>eval(_1a)){
if(!_17||_17.length==0){
_17=_16.name+" : "+_1a+" characters maximum ";
}
alert(_17+"\n[Current length = "+_16.value.length+" ]");
return false;
}
break;
case "minlength":
case "minlen":
if(eval(_16.value.length)<eval(_1a)){
if(!_17||_17.length==0){
_17=_16.name+" : "+_1a+" characters minimum  ";
}
alert(_17+"\n[Current length = "+_16.value.length+" ]");
return false;
}
break;
case "alnum":
case "alphanumeric":
var _1b=_16.value.search("[^A-Za-z0-9]");
if(_16.value.length>0&&_1b>=0){
if(!_17||_17.length==0){
_17=_16.name+": Only alpha-numeric characters allowed ";
}
alert(_17+"\n [Error character position "+eval(_1b+1)+"]");
return false;
}
break;
case "num":
case "numeric":
var _1b=_16.value.search("[^0-9]");
if(_16.value.length>0&&_1b>=0){
if(!_17||_17.length==0){
_17=_16.name+": Only digits allowed ";
}
alert(_17+"\n [Error character position "+eval(_1b+1)+"]");
return false;
}
break;
case "alphabetic":
case "alpha":
var _1b=_16.value.search("[^A-Za-z]");
if(_16.value.length>0&&_1b>=0){
if(!_17||_17.length==0){
_17=_16.name+": Only alphabetic characters allowed ";
}
alert(_17+"\n [Error character position "+eval(_1b+1)+"]");
return false;
}
break;
case "alnumhyphen":
var _1b=_16.value.search("[^A-Za-z0-9-_]");
if(_16.value.length>0&&_1b>=0){
if(!_17||_17.length==0){
_17=_16.name+": characters allowed are A-Z,a-z,0-9,- and _";
}
alert(_17+"\n [Error character position "+eval(_1b+1)+"]");
return false;
}
break;
case "email":
if(!validateEmailv2(_16.value)){
if(!_17||_17.length==0){
_17=_16.name+": Enter a valid Email address ";
}
alert(_17);
return false;
}
break;
case "lt":
case "lessthan":
if(isNaN(_16.value)){
alert(_16.name+": Should be a number ");
return false;
}
if(eval(_16.value)>=eval(_1a)){
if(!_17||_17.length==0){
_17=_16.name+" : value should be less than "+_1a;
}
alert(_17);
return false;
}
break;
case "gt":
case "greaterthan":
if(isNaN(_16.value)){
alert(_16.name+": Should be a number ");
return false;
}
if(eval(_16.value)<=eval(_1a)){
if(!_17||_17.length==0){
_17=_16.name+" : value should be greater than "+_1a;
}
alert(_17);
return false;
}
break;
case "regexp":
if(_16.value.length>0){
if(!_16.value.match(_1a)){
if(!_17||_17.length==0){
_17=_16.name+": Invalid characters found ";
}
alert(_17);
return false;
}
}
break;
case "dontselect":
if(_16.selectedIndex==null){
alert("BUG: dontselect command for non-select Item");
return false;
}
if(_16.selectedIndex==eval(_1a)){
if(!_17||_17.length==0){
_17=_16.name+": Please Select one option ";
}
alert(_17);
return false;
}
break;
}
return true;
};

