var usernameXmlHttp; var emailXmlHttp;
function validateDob(prefix) {if(validateValueNotEq(document.getElementById(prefix+"month"),"Required",prefix+"dobError","0") && validateValueNotEq(document.getElementById(prefix+"day"),"Required",prefix+"dobError","0") && validateValueNotEq(document.getElementById(prefix+"year"),"Required",prefix+"dobError","0")) {hideDobError(prefix); return true; } return false;}
function hideDobError(prefix) {document.getElementById(prefix+"dobError").innerHTML="&nbsp;";}
function validateUsername(elem) {if(emptyValue(elem)) return showErrors(elem,"Required"); if(elem.value.length<2) return showErrors(elem,"Too Short"); if(!validateAlphaNumeric(elem,"Alphanumeric Only")) return false; return hideErrors(elem);}
function validateUsernameNotExists(elem) {if(!validateUsername(elem)) return false; usernameXmlHttp=GetXmlHttpObject(); if(usernameXmlHttp==null) return true; var url="/ajax/user_validation.aspx"; url=url+"?username="+elem.value+"&rand="+Math.random(); usernameXmlHttp.onreadystatechange=validateUsernameNotExistsCb; usernameXmlHttp.open("GET",url,true); usernameXmlHttp.send(null); return true;}
function validateUsernameNotExistsCb() {if(usernameXmlHttp.readyState==4) {var res=usernameXmlHttp.responseText; if(res=="False") hideErrors(document.getElementById("username")); else showErrors(document.getElementById("username"),"Username Exists");}}
function validateUsernameExists(elem) {if(!validateUsername(elem)) return false; usernameXmlHttp=GetXmlHttpObject(); if(usernameXmlHttp==null) return true; var url="/ajax/user_validation.aspx"; url=url+"?username="+elem.value+"&rand="+Math.random(); usernameXmlHttp.onreadystatechange=validateUsernameExistsCb; usernameXmlHttp.open("GET",url,true); usernameXmlHttp.send(null); return true;}
function validateUsernameExistsCb() {if(usernameXmlHttp.readyState==4) {var res=usernameXmlHttp.responseText; if(res=="True") hideErrors(document.getElementById("username")); else showErrors(document.getElementById("username"),"Username Not Found");}}
function numbersonly(field,e,dec) {var key; var keychar; if(window.event) key=window.event.keyCode; else if(e) key=e.which; else return true; keychar=String.fromCharCode(key); if((key==null)||(key==0)||(key==8)||(key==9)||(key==13)||(key==27)) return true; else if((("0123456789").indexOf(keychar)>-1)) return true; else if(dec&&(keychar==".")) {field.form.elements[dec].focus(); return false;} else return false;}
function validateRequiredAlphaNumeric(elem) {if(emptyValue(elem)) return showErrors(elem,"Required"); if(elem.value.length<2) return showErrors(elem,"Too Short"); return validateAlphaNumeric(elem,"Alphanumeric Only");}
function validateNonRequiredAlphaNumeric(elem) {if(emptyValue(elem)) return hideErrors(elem); if(elem.value.length<2) return showErrors(elem,"Too Short"); return validateAlphaNumeric(elem,"Alphanumeric Only");}
function validateRequiredAlpha(elem) {if(emptyValue(elem)) return showErrors(elem,"Required"); if(elem.value.length<2) return showErrors(elem,"Too Short"); return validateAlpha(elem,"Letters Only");}
function validateRequired(elem) {if(emptyValue(elem)) return showErrors(elem,"Required"); hideErrors(elem); return true;}
function validateEmail(elem) {if(emptyValue(elem)) return showErrors(elem,"Required"); var regex=new RegExp("^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$"); if(!regex.test(trim(elem.value))) return showErrors(elem,"Invalid Email"); return hideErrors(elem);}
function validateEmailExists(elem) {if(!validateEmail(elem)) return false; emailXmlHttp=GetXmlHttpObject(); if(emailXmlHttp==null) return true; var url="/ajax/user_validation.aspx"; url=url+"?email="+elem.value; emailXmlHttp.onreadystatechange=validateEmailExistsCb; emailXmlHttp.open("GET",url,true); emailXmlHttp.send(null); return true;}
function validateEmailExistsCb() {if(emailXmlHttp.readyState==4) {var res=emailXmlHttp.responseText; if(res=="True") hideErrors(document.getElementById("email")); else showErrors(document.getElementById("email"),"Email Not Found");}}
function validateEmailNotExists(elem) {if(!validateEmail(elem)) return false; emailXmlHttp=GetXmlHttpObject(); if(emailXmlHttp==null) return true; var url="/ajax/user_validation.aspx"; url=url+"?email="+elem.value; emailXmlHttp.onreadystatechange=validateEmailNotExistsCb; emailXmlHttp.open("GET",url,true); emailXmlHttp.send(null); return true;}
function validateEmailNotExistsCb() {if(emailXmlHttp.readyState==4) {
var res=emailXmlHttp.responseText; if(res=="False") hideErrors(document.getElementById("email")); else showErrors(document.getElementById("email"), "Email Exists");}}
function validateValueNotEq(elem,errorMessage,errorElementId,value) {if(elem.value==value) {document.getElementById(errorElementId).innerHTML=errorMessage; return false;} return true;}
/*not exactly alpha numeric*/
function validateAlphaNumeric(elem,errorMessage) {var regex=new RegExp("^[a-zA-Z0-9][\\w-_]*[a-zA-Z0-9]$"); if(!regex.test(trim(elem.value))) return showErrors(elem,errorMessage); hideErrors(elem); return true;}
function validateAlpha(elem,errorMessage) {var regex=new RegExp("^[a-zA-Z][a-zA-Z ]*[a-zA-Z]$"); if(!regex.test(trim(elem.value))) return showErrors(elem,errorMessage); hideErrors(elem); return true;}
function validateNumeric(elem,errorMessage) {var regex=new RegExp("^[0-9][0-9]*[0-9]$"); if(!regex.test(trim(elem.value))) return showErrors(elem,errorMessage); hideErrors(elem); return true;}
function showErrors(elem,errorMessage) {var errorElem=document.getElementById(elem.id+"Error"); if(errorElem != null) errorElem.innerHTML=errorMessage; if(elem.className) elem.className+=" formFieldError"; return false;}
function hideErrors(elem) {var errorElem=document.getElementById(elem.id+"Error"); if(errorElem!=null) errorElem.innerHTML="&nbsp;"; if(elem.className) {var clsName=elem.className; var index=clsName.indexOf("formFieldError"); if(index>0) elem.className=clsName.substring(0,index);} return true;}
function trim(str) {return str.replace(/^\s+|\s+$/g, '');} function emptyValue(elem) {return elem.value==null || trim(elem.value)=="";}