b=true;c=document;d=false;f=Array;function FormValidator(warningMsg){this.list=new f();if(!(this.warningMsg=warningMsg))this.warningMsg=d;this.notValidate=d}FormValidator.prototype.dontValidate=function(){this.notValidate=b};FormValidator.prototype.Validate=function(e,box){if(!this.notValidate){this.evt=e;if(e.srcElement)srcElem=e.srcElement;if(e.target)srcElem=e.target;this.srcElem=srcElem;if(box)warningMsg=this.warningMsg;if(box!=1){alerts=srcElem.getElementsByTagName('div');for(i=0;i<alerts.length;i++)if(alerts[i].className.match('validator'))alerts[i].style.display='none'}warningList=new f();groups=new f();for(i=0;i<this.list.length;i++){this.error=d;listElem=this.list[i];element=c.getElementById(listElem[1]);exist=d;for(j=0;j<warningList.length;j++)if(warningList[j].match('valid'+listElem[1]))exist=b;if(!exist)switch(listElem[0]){case'required':if(element.selectedIndex!=null&&element.type=='select-one'){current=element.selectedIndex;if(element.options[current].value=="")this.error=b}if(!element.checked&&(element.type=='checkbox'||element.type=='radio'))this.error=b;regex=/^\s*$/;if(element.value.match(regex)&&(element.type=='text'||element.type=='file'||element.type=='password'))this.error=b;break;case'grouprequired':regex=/^\s*$/;if(!groups[listElem[3]])groups[listElem[3]]=new f(0,listElem[2]);if(groups[listElem[3]][0]!='valid'){if(element.checked&&(element.type=='checkbox'||element.type=='radio'))groups[listElem[3]][0]++;if(element.selectedIndex!=null){current=element.selectedIndex;if(element.options[current].value!="")groups[listElem[3]][0]++}if(!element.value.match(regex)&&(element.type=='text'||element.type=='textarea'))groups[listElem[3]][0]++}if(groups[listElem[3]][0]==listElem[4])groups[listElem[3]][0]='valid';break;case'numeric':regex=/(^-?\d\d*\.\d*$)|(^-?\d\d*$)|(^-?\.\d\d*$)/;if(!element.value.match(regex))this.error=b;break;case'alphabetic':regex=/^\D*$/;if(!element.value.match(regex))this.error=b;break;case'regex':regex=listElem[3];if(!element.value.match(regex))this.error=b;break;case'compare':regex=/^\s*$/;compElem=c.getElementById(listElem[3]);if(!compElem.value.match(regex)&&element.value!=compElem.value)this.error=b;break;case'range':if(listElem[3]&&element.value<listElem[3])this.error=b;if(listElem[4]&&element.value>listElem[4])this.error=b;break;case'email':regex=/^((\"[^\"\f\n\r\t\v\b]+\")|([\w\!\#\$\%\&\'\*\+\-\~\/\^\`\|\{\}]+(\.[\w\!\#\$\%\&\'\*\+\-\~\/\^\`\|\{\}]+)*))@((\[(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))\])|(((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9]))\.((25[0-5])|(2[0-4][0-9])|([0-1]?[0-9]?[0-9])))|((([A-Za-z0-9\-])+\.)+[A-Za-z\-]+))$/;if(element.value&&!element.value.match(regex))this.error=b;break}if(this.error){if(box){warningMsg+="\n - "+listElem[2];warningList.push('valid'+listElem[1])}if(box!=1&&c.getElementById('valid'+listElem[1])){c.getElementById('valid'+listElem[1]).innerHTML=listElem[2];c.getElementById('valid'+listElem[1]).style.display='block';warningList.push('valid'+listElem[1])}this.failed=b;window.location.replace('#')}}for(var i in groups){if(groups[i][0]!='valid'){if(box){warningMsg+="\n - "+groups[i][1];warningList.push('valid'+i)}if(box!=1&&c.getElementById('valid'+i)){c.getElementById('valid'+i).innerHTML=groups[i][1];c.getElementById('valid'+i).style.display='block';warningList.push('valid'+i)}this.failed=b}}if(this.failed){if(e.preventDefault)e.preventDefault();else e.returnValue=d;if(box)alert(warningMsg);if(box!=1&&c.getElementById('AlertTitle')){c.getElementById('AlertTitle').innerHTML=this.warningMsg;c.getElementById('AlertTitle').style.display='block'}this.failed=d}}};FormValidator.prototype.disableForm=function(disable){elems=this.srcElem.getElementsByTagName('input');selects=this.srcElem.getElementsByTagName('select');tas=this.srcElem.getElementsByTagName('textarea');for(z=0;z<elems.length;z++)elems[z].disabled=disable;for(v=0;v<selects.length;v++)selects[v].disabled=disable;for(w=0;w<tas.length;w++)tas[w].disabled=disable};FormValidator.prototype.AddRule=function(type,elementID,alertMsg,eXp1,eXp2){if(typeof(elementID)=='string')this.list.push(new f(type,elementID,alertMsg,eXp1,eXp2));else if(typeof(elementID)=='object')for(i=0;i<elementID.length;i++){if(typeof(alertMsg)=='string')msg=alertMsg;else if(typeof(alertMsg)=='object')if(msg=alertMsg[i])prevMsg=msg;else msg=prevMsg;if(typeof(eXp1)=='string')exp1=eXp1;else if(typeof(eXp1)=='object')if(exp1=eXp1[i])prevexp1=exp1;else exp1=prevexp1;else exp1=eXp1;if(typeof(eXp2)=='string')exp2=eXp2;else if(typeof(eXp2)=='object')if(exp2=eXp2[i])prevexp2=exp2;else exp2=prevexp2;else exp2=eXp2;this.list.push(new f(type,elementID[i],msg,exp1,exp2))}};FormValidator.prototype.AlertMsgPlaceHolder=function(elementID){c.write('<div id="valid'+elementID+'" class="validator" style="display:none"></div>')};FormValidator.prototype.AlertTitlePlaceHolder=function(){c.write('<h1><div id="AlertTitle" class="validator" style="display:none"></div></h1>')};
