﻿﻿
var bCancel=false;function validateLoginForm(form){if(bCancel)
return true;else
var formValidationResult;formValidationResult=validateRequired(form);return(formValidationResult);}
function loginForm_required(){this.a0=new Array("userName","Please enter your Username",new Function("varName","this.mask=/^[0-9a-zA-Z@.-_]*$/;  return this[varName];"));this.a1=new Array("password","Please enter your Password",new Function("varName","this.mask=/^[0-9a-zA-Z]*$/;  return this[varName];"));}
function loginForm_mask(){this.a0=new Array("userName","null is invalid.",new Function("varName","this.mask=/^[0-9a-zA-Z@.-_]*$/;  return this[varName];"));this.a1=new Array("password","Password is invalid.",new Function("varName","this.mask=/^[0-9a-zA-Z]*$/;  return this[varName];"));}
function checkEmailvalid(strReceived){var emailRegex=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[(2([0-4]\d|5[0-5])|1?\d{1,2})(\.(2([0-4]\d|5[0-5])|1?\d{1,2})){3} \])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;if(!emailRegex.test(strReceived)){return false;}
return true;}
function validateFloatRange(form){var isValid=true;var focusField=null;var i=0;var fields=new Array();var formName=form.getAttributeNode("name");oRange=eval('new '+formName.value+'_floatRange()');for(x in oRange){var field=form[oRange[x][0]];if((field.type=='hidden'||field.type=='text'||field.type=='textarea')&&(field.value.length>0)&&field.disabled==false){var fMin=parseFloat(oRange[x][2]("min"));var fMax=parseFloat(oRange[x][2]("max"));var fValue=parseFloat(field.value);if(!(fValue>=fMin&&fValue<=fMax)){if(i==0){focusField=field;}
fields[i++]=oRange[x][1];isValid=false;}}}
if(fields.length>0){focusField.focus();alert(fields.join('\n'));}
return isValid;}
function validateByte(form){var bValid=true;var focusField=null;var i=0;var fields=new Array();var formName=form.getAttributeNode("name");oByte=eval('new '+formName.value+'_ByteValidations()');for(x in oByte){var field=form[oByte[x][0]];if((field.type=='hidden'||field.type=='text'||field.type=='textarea'||field.type=='select-one'||field.type=='radio')&&field.disabled==false){var value='';if(field.type=="select-one"){var si=field.selectedIndex;if(si>=0){value=field.options[si].value;}}else{value=field.value;}
if(value.length>0){if(!isAllDigits(value)){bValid=false;if(i==0){focusField=field;}
fields[i++]=oByte[x][1];}else{var iValue=parseInt(value);if(isNaN(iValue)||!(iValue>=-128&&iValue<=127)){if(i==0){focusField=field;}
fields[i++]=oByte[x][1];bValid=false;}}}}}
if(fields.length>0){focusField.focus();alert(fields.join('\n'));}
return bValid;}
function validateMaxLength(form){var isValid=true;var focusField=null;var i=0;var fields=new Array();var formName=form.getAttributeNode("name");oMaxLength=eval('new '+formName.value+'_maxlength()');for(x in oMaxLength){var field=form[oMaxLength[x][0]];if((field.type=='hidden'||field.type=='text'||field.type=='password'||field.type=='textarea')&&field.disabled==false){var iMax=parseInt(oMaxLength[x][2]("maxlength"));if(field.value.length>iMax){if(i==0){focusField=field;}
fields[i++]=oMaxLength[x][1];isValid=false;}}}
if(fields.length>0){focusField.focus();alert(fields.join('\n'));}
return isValid;}
function validateRequired(form){var isValid=true;var focusField=null;var i=0;var fields=new Array();var formName=form.getAttributeNode("name");oRequired=eval('new '+formName.value+'_required()');for(x in oRequired){var field=form[oRequired[x][0]];if((field.type=='hidden'||field.type=='text'||field.type=='textarea'||field.type=='file'||field.type=='checkbox'||field.type=='select-one'||field.type=='password')&&field.disabled==false){var value='';if(field.type=="select-one"){var si=field.selectedIndex;if(si>=0){value=field.options[si].value;}}else if(field.type=='checkbox'){if(field.checked){value=field.value;}}else{value=field.value;}
if(trim(value).length==0){if(i==0){focusField=field;}
fields[i++]=oRequired[x][1];isValid=false;}}else if(field.type=="select-multiple"){var numOptions=field.options.length;lastSelected=-1;for(loop=numOptions-1;loop>=0;loop--){if(field.options[loop].selected){lastSelected=loop;value=field.options[loop].value;break;}}
if(lastSelected<0||trim(value).length==0){if(i==0){focusField=field;}
fields[i++]=oRequired[x][1];isValid=false;}}else if((field.length>0)&&(field[0].type=='radio'||field[0].type=='checkbox')){isChecked=-1;for(loop=0;loop<field.length;loop++){if(field[loop].checked){isChecked=loop;break;}}
if(isChecked<0){if(i==0){focusField=field[0];}
fields[i++]=oRequired[x][1];isValid=false;}}}
if(fields.length>0){focusField.focus();alert(fields.join('\n'));}
return isValid;}
function trim(s){return s.replace(/^\s*/,"").replace(/\s*$/,"");}
function validateInteger(form){var bValid=true;var focusField=null;var i=0;var fields=new Array();var formName=form.getAttributeNode("name");oInteger=eval('new '+formName.value+'_IntegerValidations()');for(x in oInteger){var field=form[oInteger[x][0]];if((field.type=='hidden'||field.type=='text'||field.type=='textarea'||field.type=='select-one'||field.type=='radio')&&field.disabled==false){var value='';if(field.type=="select-one"){var si=field.selectedIndex;if(si>=0){value=field.options[si].value;}}else{value=field.value;}
if(value.length>0){if(!isAllDigits(value)){bValid=false;if(i==0){focusField=field;}
fields[i++]=oInteger[x][1];}else{var iValue=parseInt(value);if(isNaN(iValue)||!(iValue>=-2147483648&&iValue<=2147483647)){if(i==0){focusField=field;}
fields[i++]=oInteger[x][1];bValid=false;}}}}}
if(fields.length>0){focusField.focus();alert(fields.join('\n'));}
return bValid;}
function isAllDigits(argvalue){argvalue=argvalue.toString();var validChars="0123456789";var startFrom=0;if(argvalue.substring(0,2)=="0x"){validChars="0123456789abcdefABCDEF";startFrom=2;}else if(argvalue.charAt(0)=="0"){validChars="01234567";startFrom=1;}else if(argvalue.charAt(0)=="-"){startFrom=1;}
for(var n=startFrom;n<argvalue.length;n++){if(validChars.indexOf(argvalue.substring(n,n+1))==-1)return false;}
return true;}
function validateCreditCard(form){var bValid=true;var focusField=null;var i=0;var fields=new Array();var formName=form.getAttributeNode("name");oCreditCard=eval('new '+formName.value+'_creditCard()');for(x in oCreditCard){if((form[oCreditCard[x][0]].type=='text'||form[oCreditCard[x][0]].type=='textarea')&&(form[oCreditCard[x][0]].value.length>0)&&form[oCreditCard[x][0]].disabled==false){if(!luhnCheck(form[oCreditCard[x][0]].value)){if(i==0){focusField=form[oCreditCard[x][0]];}
fields[i++]=oCreditCard[x][1];bValid=false;}}}
if(fields.length>0){focusField.focus();alert(fields.join('\n'));}
return bValid;}
function luhnCheck(cardNumber){if(isLuhnNum(cardNumber)){var no_digit=cardNumber.length;var oddoeven=no_digit&1;var sum=0;for(var count=0;count<no_digit;count++){var digit=parseInt(cardNumber.charAt(count));if(!((count&1)^oddoeven)){digit*=2;if(digit>9)digit-=9;};sum+=digit;};if(sum==0)return false;if(sum%10==0)return true;};return false;}
function isLuhnNum(argvalue){argvalue=argvalue.toString();if(argvalue.length==0){return false;}
for(var n=0;n<argvalue.length;n++){if((argvalue.substring(n,n+1)<"0")||(argvalue.substring(n,n+1)>"9")){return false;}}
return true;}
function validateDate(form){var bValid=true;var focusField=null;var i=0;var fields=new Array();var formName=form.getAttributeNode("name");oDate=eval('new '+formName.value+'_DateValidations()');for(x in oDate){var field=form[oDate[x][0]];var value=field.value;var datePattern=oDate[x][2]("datePatternStrict");if(datePattern==null)
datePattern=oDate[x][2]("datePattern");if((field.type=='hidden'||field.type=='text'||field.type=='textarea')&&(value.length>0)&&(datePattern.length>0)&&field.disabled==false){var MONTH="MM";var DAY="dd";var YEAR="yyyy";var orderMonth=datePattern.indexOf(MONTH);var orderDay=datePattern.indexOf(DAY);var orderYear=datePattern.indexOf(YEAR);if((orderDay<orderYear&&orderDay>orderMonth)){var iDelim1=orderMonth+MONTH.length;var iDelim2=orderDay+DAY.length;var delim1=datePattern.substring(iDelim1,iDelim1+1);var delim2=datePattern.substring(iDelim2,iDelim2+1);if(iDelim1==orderDay&&iDelim2==orderYear){dateRegexp=new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");}else if(iDelim1==orderDay){dateRegexp=new RegExp("^(\\d{2})(\\d{2})["+delim2+"](\\d{4})$");}else if(iDelim2==orderYear){dateRegexp=new RegExp("^(\\d{2})["+delim1+"](\\d{2})(\\d{4})$");}else{dateRegexp=new RegExp("^(\\d{2})["+delim1+"](\\d{2})["+delim2+"](\\d{4})$");}
var matched=dateRegexp.exec(value);if(matched!=null){if(!isValidDate(matched[2],matched[1],matched[3])){if(i==0){focusField=field;}
fields[i++]=oDate[x][1];bValid=false;}}else{if(i==0){focusField=field;}
fields[i++]=oDate[x][1];bValid=false;}}else if((orderMonth<orderYear&&orderMonth>orderDay)){var iDelim1=orderDay+DAY.length;var iDelim2=orderMonth+MONTH.length;var delim1=datePattern.substring(iDelim1,iDelim1+1);var delim2=datePattern.substring(iDelim2,iDelim2+1);if(iDelim1==orderMonth&&iDelim2==orderYear){dateRegexp=new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");}else if(iDelim1==orderMonth){dateRegexp=new RegExp("^(\\d{2})(\\d{2})["+delim2+"](\\d{4})$");}else if(iDelim2==orderYear){dateRegexp=new RegExp("^(\\d{2})["+delim1+"](\\d{2})(\\d{4})$");}else{dateRegexp=new RegExp("^(\\d{2})["+delim1+"](\\d{2})["+delim2+"](\\d{4})$");}
var matched=dateRegexp.exec(value);if(matched!=null){if(!isValidDate(matched[1],matched[2],matched[3])){if(i==0){focusField=field;}
fields[i++]=oDate[x][1];bValid=false;}}else{if(i==0){focusField=field;}
fields[i++]=oDate[x][1];bValid=false;}}else if((orderMonth>orderYear&&orderMonth<orderDay)){var iDelim1=orderYear+YEAR.length;var iDelim2=orderMonth+MONTH.length;var delim1=datePattern.substring(iDelim1,iDelim1+1);var delim2=datePattern.substring(iDelim2,iDelim2+1);if(iDelim1==orderMonth&&iDelim2==orderDay){dateRegexp=new RegExp("^(\\d{4})(\\d{2})(\\d{2})$");}else if(iDelim1==orderMonth){dateRegexp=new RegExp("^(\\d{4})(\\d{2})["+delim2+"](\\d{2})$");}else if(iDelim2==orderDay){dateRegexp=new RegExp("^(\\d{4})["+delim1+"](\\d{2})(\\d{2})$");}else{dateRegexp=new RegExp("^(\\d{4})["+delim1+"](\\d{2})["+delim2+"](\\d{2})$");}
var matched=dateRegexp.exec(value);if(matched!=null){if(!isValidDate(matched[3],matched[2],matched[1])){if(i==0){focusField=field;}
fields[i++]=oDate[x][1];bValid=false;}}else{if(i==0){focusField=field;}
fields[i++]=oDate[x][1];bValid=false;}}else{if(i==0){focusField=field;}
fields[i++]=oDate[x][1];bValid=false;}}}
if(fields.length>0){focusField.focus();alert(fields.join('\n'));}
return bValid;}
function isValidDate(day,month,year){if(month<1||month>12){return false;}
if(day<1||day>31){return false;}
if((month==4||month==6||month==9||month==11)&&(day==31)){return false;}
if(month==2){var leap=(year%4==0&&(year%100!=0||year%400==0));if(day>29||(day==29&&!leap)){return false;}}
return true;}
function validateIntRange(form){var isValid=true;var focusField=null;var i=0;var fields=new Array();var formName=form.getAttributeNode("name");oRange=eval('new '+formName.value+'_intRange()');for(x in oRange){var field=form[oRange[x][0]];if(field.disabled==false){var value='';if(field.type=='hidden'||field.type=='text'||field.type=='textarea'||field.type=='radio'){value=field.value;}
if(field.type=='select-one'){var si=field.selectedIndex;if(si>=0){value=field.options[si].value;}}
if(value.length>0){var iMin=parseInt(oRange[x][2]("min"));var iMax=parseInt(oRange[x][2]("max"));var iValue=parseInt(value);if(!(iValue>=iMin&&iValue<=iMax)){if(i==0){focusField=field;}
fields[i++]=oRange[x][1];isValid=false;}}}}
if(fields.length>0){focusField.focus();alert(fields.join('\n'));}
return isValid;}
function validateShort(form){var bValid=true;var focusField=null;var i=0;var fields=new Array();var formName=form.getAttributeNode("name");oShort=eval('new '+formName.value+'_ShortValidations()');for(x in oShort){var field=form[oShort[x][0]];if((field.type=='hidden'||field.type=='text'||field.type=='textarea'||field.type=='select-one'||field.type=='radio')&&field.disabled==false){var value='';if(field.type=="select-one"){var si=field.selectedIndex;if(si>=0){value=field.options[si].value;}}else{value=field.value;}
if(value.length>0){if(!isAllDigits(value)){bValid=false;if(i==0){focusField=field;}
fields[i++]=oShort[x][1];}else{var iValue=parseInt(value);if(isNaN(iValue)||!(iValue>=-32768&&iValue<=32767)){if(i==0){focusField=field;}
fields[i++]=oShort[x][1];bValid=false;}}}}}
if(fields.length>0){focusField.focus();alert(fields.join('\n'));}
return bValid;}
function validateFloat(form){var bValid=true;var focusField=null;var i=0;var fields=new Array();var formName=form.getAttributeNode("name");oFloat=eval('new '+formName.value+'_FloatValidations()');for(x in oFloat){var field=form[oFloat[x][0]];if((field.type=='hidden'||field.type=='text'||field.type=='textarea'||field.type=='select-one'||field.type=='radio')&&field.disabled==false){var value='';if(field.type=="select-one"){var si=field.selectedIndex;if(si>=0){value=field.options[si].value;}}else{value=field.value;}
if(value.length>0){var tempArray=value.split('.');var zeroIndex=0;var joinedString=tempArray.join('');while(joinedString.charAt(zeroIndex)=='0'){zeroIndex++;}
var noZeroString=joinedString.substring(zeroIndex,joinedString.length);if(!isAllDigits(noZeroString)){bValid=false;if(i==0){focusField=field;}
fields[i++]=oFloat[x][1];}else{var iValue=parseFloat(value);if(isNaN(iValue)){if(i==0){focusField=field;}
fields[i++]=oFloat[x][1];bValid=false;}}}}}
if(fields.length>0){focusField.focus();alert(fields.join('\n'));}
return bValid;}
function validateEmail(form){var bValid=true;var focusField=null;var i=0;var fields=new Array();var formName=form.getAttributeNode("name");oEmail=eval('new '+formName.value+'_email()');for(x in oEmail){var field=form[oEmail[x][0]];if((field.type=='hidden'||field.type=='text'||field.type=='textarea')&&(field.value.length>0)&&field.disabled==false){if(!checkEmail(field.value)){if(i==0){focusField=field;}
fields[i++]=oEmail[x][1];bValid=false;}}}
if(fields.length>0){focusField.focus();alert(fields.join('\n'));}
return bValid;}
function checkEmail(emailStr){if(emailStr.length==0){return true;}
var emailPat=/^(.+)@(.+)$/;var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";var validChars="\[^\\s"+specialChars+"\]";var quotedUser="(\"[^\"]*\")";var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;var atom=validChars+'+';var word="("+atom+"|"+quotedUser+")";var userPat=new RegExp("^"+word+"(\\."+word+")*$");var domainPat=new RegExp("^"+atom+"(\\."+atom+")*$");var matchArray=emailStr.match(emailPat);if(matchArray==null){return false;}
var user=matchArray[1];var domain=matchArray[2];if(user.match(userPat)==null){return false;}
var IPArray=domain.match(ipDomainPat);if(IPArray!=null){for(var i=1;i<=4;i++){if(IPArray[i]>255){return false;}}
return true;}
var domainArray=domain.match(domainPat);if(domainArray==null){return false;}
var atomPat=new RegExp(atom,"g");var domArr=domain.match(atomPat);var len=domArr.length;if((domArr[domArr.length-1].length<2)||(domArr[domArr.length-1].length>3)){return false;}
if(len<2){return false;}
return true;}
function validateMask(form){var isValid=true;var focusField=null;var i=0;var fields=new Array();var formName=form.getAttributeNode("name");oMasked=eval('new '+formName.value+'_mask()');for(x in oMasked){var field=form[oMasked[x][0]];if((field.type=='hidden'||field.type=='text'||field.type=='textarea'||field.type=='file')&&(field.value.length>0)&&field.disabled==false){alert(oMasked[x][2]("mask"));if(!matchPattern(field.value,oMasked[x][2]("mask"))){if(i==0){focusField=field;}
fields[i++]=oMasked[x][1];isValid=false;}}}
if(fields.length>0){focusField.focus();alert(fields.join('\n'));}
return isValid;}
function matchPattern(value,mask){return mask.exec(value);}
function validateMinLength(form){var isValid=true;var focusField=null;var i=0;var fields=new Array();var formName=form.getAttributeNode("name");oMinLength=eval('new '+formName.value+'_minlength()');for(x in oMinLength){var field=form[oMinLength[x][0]];if((field.type=='hidden'||field.type=='text'||field.type=='password'||field.type=='textarea')&&field.disabled==false){var iMin=parseInt(oMinLength[x][2]("minlength"));if((trim(field.value).length>0)&&(field.value.length<iMin)){if(i==0){focusField=field;}
fields[i++]=oMinLength[x][1];isValid=false;}}}
if(fields.length>0){focusField.focus();alert(fields.join('\n'));}
return isValid;}


function SHA1(msg){function rotate_left(n,s){var t4=(n<<s)|(n>>>(32-s));return t4;};function lsb_hex(val){var str="";var i;var vh;var vl;for(i=0;i<=6;i+=2){vh=(val>>>(i*4+4))&0x0f;vl=(val>>>(i*4))&0x0f;str+=vh.toString(16)+vl.toString(16);}
return str;};function cvt_hex(val){var str="";var i;var v;for(i=7;i>=0;i--){v=(val>>>(i*4))&0x0f;str+=v.toString(16);}
return str;};function Utf8Encode(string){string=string.replace(/\r\n/g,"\n");var utftext="";for(var n=0;n<string.length;n++){var c=string.charCodeAt(n);if(c<128){utftext+=String.fromCharCode(c);}
else if((c>127)&&(c<2048)){utftext+=String.fromCharCode((c>>6)|192);utftext+=String.fromCharCode((c&63)|128);}
else{utftext+=String.fromCharCode((c>>12)|224);utftext+=String.fromCharCode(((c>>6)&63)|128);utftext+=String.fromCharCode((c&63)|128);}}
return utftext;};var blockstart;var i,j;var W=new Array(80);var H0=0x67452301;var H1=0xEFCDAB89;var H2=0x98BADCFE;var H3=0x10325476;var H4=0xC3D2E1F0;var A,B,C,D,E;var temp;msg=Utf8Encode(msg);var msg_len=msg.length;var word_array=new Array();for(i=0;i<msg_len-3;i+=4){j=msg.charCodeAt(i)<<24|msg.charCodeAt(i+1)<<16|msg.charCodeAt(i+2)<<8|msg.charCodeAt(i+3);word_array.push(j);}
switch(msg_len%4){case 0:i=0x080000000;break;case 1:i=msg.charCodeAt(msg_len-1)<<24|0x0800000;break;case 2:i=msg.charCodeAt(msg_len-2)<<24|msg.charCodeAt(msg_len-1)<<16|0x08000;break;case 3:i=msg.charCodeAt(msg_len-3)<<24|msg.charCodeAt(msg_len-2)<<16|msg.charCodeAt(msg_len-1)<<8|0x80;break;}
word_array.push(i);while((word_array.length%16)!=14)word_array.push(0);word_array.push(msg_len>>>29);word_array.push((msg_len<<3)&0x0ffffffff);for(blockstart=0;blockstart<word_array.length;blockstart+=16){for(i=0;i<16;i++)W[i]=word_array[blockstart+i];for(i=16;i<=79;i++)W[i]=rotate_left(W[i-3]^W[i-8]^W[i-14]^W[i-16],1);A=H0;B=H1;C=H2;D=H3;E=H4;for(i=0;i<=19;i++){temp=(rotate_left(A,5)+((B&C)|(~B&D))+E+W[i]+0x5A827999)&0x0ffffffff;E=D;D=C;C=rotate_left(B,30);B=A;A=temp;}
for(i=20;i<=39;i++){temp=(rotate_left(A,5)+(B^C^D)+E+W[i]+0x6ED9EBA1)&0x0ffffffff;E=D;D=C;C=rotate_left(B,30);B=A;A=temp;}
for(i=40;i<=59;i++){temp=(rotate_left(A,5)+((B&C)|(B&D)|(C&D))+E+W[i]+0x8F1BBCDC)&0x0ffffffff;E=D;D=C;C=rotate_left(B,30);B=A;A=temp;}
for(i=60;i<=79;i++){temp=(rotate_left(A,5)+(B^C^D)+E+W[i]+0xCA62C1D6)&0x0ffffffff;E=D;D=C;C=rotate_left(B,30);B=A;A=temp;}
H0=(H0+A)&0x0ffffffff;H1=(H1+B)&0x0ffffffff;H2=(H2+C)&0x0ffffffff;H3=(H3+D)&0x0ffffffff;H4=(H4+E)&0x0ffffffff;}
var temp=cvt_hex(H0)+cvt_hex(H1)+cvt_hex(H2)+cvt_hex(H3)+cvt_hex(H4);return temp.toLowerCase();}

function customValidateFunction(){var userName=document.loginForm.userName.value;var password=document.loginForm.password.value;if(userName==""){alert("Please enter the username");document.loginForm.userName.value="";document.loginForm.userName.focus();return false;}
if(password==""){alert("Please enter the password");document.loginForm.password.value="";document.loginForm.password.focus();return false;}
if(userName!=""&&password!=""){document.loginForm.password.value=SHA1(password);return true;}}
