var pageHelper=new PageHelper();
function PageHelper(){
this.validationFields=new Array();
this.findField=function(_1){
var _2=this.validationFields[_1];
return _2;
};
this.getField=function(_3){
var _4=this.findField(_3);
if(!_4){
_4=new ValidationField();
_4.name=_3;
this.validationFields[_4.name]=_4;
this.validationFields[this.validationFields.length]=_4;
}
return _4;
};
this.addToErrors=function(_5){
for(i=0;i<_5.length;i++){
var _6=this.getField(_5[i].name);
_6.addError(_5[i].error);
}
};
this.validateForm=function(_7,_8){
var _9=false;
for(i=0;i<_7.elements.length;i++){
var _a=this.getField(_7.elements[i].id);
_a.setValue(_7.elements[i].value);
}
var _b=window[_8];
if(_b){
_9=_b(_7);
}
for(i=0;i<this.validationFields.length;i++){
this.validationFields[i].reportStatus();
}
return _9;
};
this.validateField=function(_c){
var _d=this.getField(_c.id);
if(_d.value!=_c.value){
_d.setValue(_c.value);
validateField(_c.form,_d.name);
if(_d.isValid&&doServerValidate(_d.name)){
this.serverValidateField(_c.form,_d);
}else{
_d.reportStatus();
}
}
};
this.serverValidateField=function(_e,_f){
var _10={success:function(o){
var _12=o.responseXML.getElementsByTagName("string");
for(i=0;_12&&i<_12.length;i++){
_f.addError(_12[i].childNodes[0].nodeValue);
}
_f.reportStatus();
},failure:function(o){
_f.clearStatus();
}};
prepareCallServerValidate(_e,_f.name,_10);
_f.waitStatus();
};
this.clearCheckMark=function(_14){
var _15=this.findField(_14.id);
if(_15){
_15.clearStatus();
}
};
}
function ValidationField(){
this.setValue=function(_16){
this.value=_16;
this.isValid=true;
this.errors=null;
};
this.addError=function(msg){
if(!this.errors){
this.errors=new Array();
}
this.errors[this.errors.length]=msg;
this.isValid=false;
};
this.reportStatus=function(){
var _18=this.getErrorHolder();
var _19=this.getImage();
if(_18&&_19){
displayErrors(_18,_19,this.errors);
}
};
this.waitStatus=function(){
var img=this.getImage();
img.src="/images/a/icn_field_busy.gif";
img.alt="busy";
};
this.clearStatus=function(){
if(this.isValid){
var img=this.getImage();
img.src="/images/a/spacer.gif";
img.alt="";
}
};
this.getImage=function(){
var img=document.getElementById(this.name+".status.image");
return img;
};
this.getErrorHolder=function(){
var _1d=document.getElementById(this.name+".status.message");
return _1d;
};
}
function focusFirstElement(_1e){
var f=document.getElementById(_1e);
for(var i=0;i<f.elements.length;i++){
if(f.elements[i].type!="hidden"&&f.elements[i].type!="submit"&&f.elements[i].type!="button"&&f.elements[i].type!="reset"&&!f.elements[i].disabled&&(f.elements[i].tagName.toLowerCase()=="input"||f.elements[i].tagName.toLowerCase()=="select"||f.elements[i].tagName.toLowerCase()=="textarea")){
f.elements[i].focus();
if(f.elements[i].select){
f.elements[i].select();
}
break;
}
}
}
function displayErrors(_21,_22,_23){
if(!_23||_23.length==0){
if(_21.getAttribute("originalText")){
_21.innerHTML=_21.getAttribute("originalText");
}else{
}
_22.src="/images/a/icn_field_check.gif";
_22.alt="valid";
}else{
if(!_21.getAttribute("originalText")){
_21.setAttribute("originalText",_21.innerHTML);
}
_21.innerHTML=_23.join("</br>");
_22.src="/images/a/icn_field_error.gif";
_22.alt="valid";
}
}
function validateField(_24,_25){
validateFieldWithValidation(_24,_25,"floatrange","validateFloatRange");
validateFieldWithValidation(_24,_25,"byte","validateByte");
validateFieldWithValidation(_24,_25,"minlength","validateMinLength");
validateFieldWithValidation(_24,_25,"maxlength","validateMaxLength");
validateFieldWithValidation(_24,_25,"required","validateRequired");
validateFieldWithValidation(_24,_25,"integer","validateInteger");
validateFieldWithValidation(_24,_25,"range","validateRange");
validateFieldWithValidation(_24,_25,"creditcard","validateCreditCard");
validateFieldWithValidation(_24,_25,"date","validateDate");
validateFieldWithValidation(_24,_25,"intrange","validateIntRange");
validateFieldWithValidation(_24,_25,"short","validateShort");
validateFieldWithValidation(_24,_25,"float","validateFloat");
validateFieldWithValidation(_24,_25,"email","validateEmail");
validateFieldWithValidation(_24,_25,"mask","validateMask");
validateFieldWithValidation(_24,_25,"twofields","validateTwoFields");
}
function validateFieldWithValidation(_26,_27,_28,_29){
var i=0;
var _2b=window[_28];
if(_2b){
var _2c=window[_29];
if(_2c){
var _2d=new _2b();
for(x in _2d){
if(_27==_2d[x][0]){
var _2e=new Object();
_2e[_27]=_26[_27];
if("twofields"==_28){
var _2f=_2d[x][2]("secondProperty");
_2e[_2f]=_26[_2f];
}
_2c(_2e);
}
}
}
}
}
function doServerValidate(_30){
return hasValidator(_30,"unique");
}
function hasValidator(_31,_32){
var _33=window[_32];
if(_33){
var _34=new _33();
for(x in _34){
if(_31==_34[x][0]){
return true;
}
}
}
return false;
}
function prepareCallServerValidate(_35,_36,_37){
var _38=document.createElement("form");
var fld=document.createElement("input");
fld.type="hidden";
fld.name=_36;
fld.value=_35[_36].value;
_38.appendChild(fld);
var _3a=document.createElement("input");
_3a.type="hidden";
_3a.name="validate";
_3a.value=_36;
_38.appendChild(_3a);
callServerValidate(_38,_36,_37);
}
function callServerValidate(_3b,_3c,_3d){
YAHOO.util.Connect.setForm(_3b);
var url=_3b.action;
if(!url){
url=document.location;
}
YAHOO.util.Connect.asyncRequest("POST",url,_3d);
}

