if(typeof PURE!="undefined")throw new Error('PURE Namespace has already been taken!',"pure.js@"+window.href,2);PURE={validator:{resultDisplayDiv:"divErrorResultDisplay",warningDisplayDiv:"divWarningResultDisplay",emailErrorDisplayDiv:"divEmailErrorDisplay",globalErrorDiv:"divGlobalValidationError",alreadyInit:false,showGenericError:true,formFieldList:Array(),arrIndexableElements:new Array("input","textarea","select"),init:function(){for(var i=0;i<this.arrIndexableElements.length;i++){var arrElements=document.getElementsByTagName(this.arrIndexableElements[i]);for(var j=0;j<arrElements.length;j++){this.formFieldList.push(arrElements[j])}}this.alreadyInit=true},validate:function(formId){if(!this.alreadyInit)this.init();var abort=0;var innerLoopElementConditionFlag=false;for(var i=0;i<this.formFieldList.length;i++){var elem=this.formFieldList[i];if(elem&&elem.id){var isRequired=elem.getAttribute("required");var equalTo=elem.getAttribute("equalto");var ifEmpty=elem.getAttribute("ifempty");var isEmail=elem.getAttribute("email");var noBorder=elem.getAttribute("noalter");var elemType=elem.getAttribute("type");if(isRequired&&isRequired=="required"){if(ifEmpty){var controlElementsList=ifEmpty.split("|");var evalList=Array();for(var j=0;j<controlElementsList.length;j++){var controlElem=PURE.utils.trim(controlElementsList[j]);var controlElemC=document.getElementById(controlElem);if(controlElemC.getAttribute("type")=="checkbox"){evalList.push(" document.getElementById('"+controlElem+"').checked == false")}else{evalList.push(" document.getElementById('"+controlElem+"').value == ''")}}if(!this.isEmpty(elem)){innerLoopElementConditionFlag=false;if(elem.getAttribute('errorholder')){var eh=elem.getAttribute('errorholder');var c=document.getElementById(eh);if(c){c.style.display="none"}}else{elem.style.border=noBorder=="border"?"":"solid 1px #000000"}}else{var evalString=evalList.join("&&");var evalString="if("+evalString+" && this.isEmpty(elem) && !innerLoopElementConditionFlag)";evalString+="{ abort=1; this.displayError(elem); innerLoopElementConditionFlag=true; }";eval(evalString)}}else{if(elemType=="radio"){var rdempty=this.doRadioGroupCheck(elem);abort=rdempty==true?1:abort;if(rdempty){this.displayError(elem)}else{if(elem.getAttribute('errorholder')){var eh=elem.getAttribute('errorholder');var c=document.getElementById(eh);if(c){c.style.display="none"}}}}else{if(this.isEmpty(elem)){abort=1;this.displayError(elem)}else{if(elem.getAttribute('errorholder')){var eh=elem.getAttribute('errorholder');var c=document.getElementById(eh);if(c){c.style.display="none"}}else{elem.style.border=noBorder=="border"?"":"solid 1px #000000"}}}}}if(equalTo){if(elem.value!=document.getElementById(equalTo.substr(1,equalTo.length-1)).value){abort=1;this.displayWarning(elem)}else{this.hide(this.warningDisplayDiv)}}if(isEmail){if(!this.validateEmail(elem)){abort=1;this.displayWarning(elem,isEmail)}else{this.hide(this.emailErrorDisplayDiv)}}}}if(!abort){document.getElementById(formId).submit();if(this.showGenericError){this.hide(this.globalErrorDiv)}}else{if(this.showGenericError){this.displayGlobalError()}}},doRadioGroupCheck:function(radioItem){var groupid=radioItem.getAttribute("groupid");if(!groupid||groupid=="")groupid=radioItem.name;var groupempty=true;for(var i=0;i<this.formFieldList.length;i++){var elem=this.formFieldList[i];var elemgid=elem.getAttribute("groupid");if(!elemgid||elemgid=="")elemgid=elem.name;if(elem.getAttribute("type")=="radio"&&elemgid==groupid){if(elem.checked==true){groupempty=false;break}}}return groupempty},hide:function(div){var r=document.getElementById(div);if(r)r.style.display="none"},displayWarning:function(element){var divId=this.warningDisplayDiv;if(arguments[1])divId=this.emailErrorDisplayDiv;var r=document.getElementById(divId);if(r)r.style.display="block";if(element)element.style.border="solid 1px #990000"},displayGlobalError:function(){var r=document.getElementById(this.globalErrorDiv);if(r)r.style.display="block"},displayError:function(element){var r=document.getElementById(this.resultDisplayDiv);if(r)r.style.display="block";if(element){if(element.getAttribute('errorholder')){var eh=element.getAttribute('errorholder');var c=document.getElementById(eh);if(c){c.style.display="block"}}else{element.style.border="solid 1px #990000"}}},validateEmail:function(element){var required=true;var eMailAddress=element.value;if(eMailAddress==null){if(required)return false;return true}if(eMailAddress.length==0){if(required)return false;return true}if(!PURE.utils.allValidChars(eMailAddress)){return false}if(eMailAddress.indexOf("@")<1){return false}else if(eMailAddress.lastIndexOf(".")<=eMailAddress.indexOf("@")){return false}else if(eMailAddress.indexOf("@")==eMailAddress.length){return false}else if(eMailAddress.indexOf("..")>=0){return false}else if(eMailAddress.indexOf(".")==eMailAddress.length){return false}return true},isEmpty:function(element){var elemtype=element.getAttribute("type");var emptyStringEqual="";if(arguments[1]!=null)emptyStringEqual=arguments[1];if(elemtype=="checkbox"||elemtype=="radio"){return!element.checked}return(this.trim(element.value)==emptyStringEqual||element.value==null)?true:false},isNumeric:function(expr){return true},trim:function(str,chars){return this.ltrim(this.rtrim(str,chars),chars)},ltrim:function(str,chars){chars=chars||"\\s";return str.replace(new RegExp("^["+chars+"]+","g"),"")},rtrim:function(str,chars){chars=chars||"\\s";return str.replace(new RegExp("["+chars+"]+$","g"),"")}},AJAX:function(){alert("not implemented")},utils:{allValidChars:function(eMailAddress){var parsed=true;var validchars="abcdefghijklmnopqrstuvwxyz0123456789@.-_";for(var i=0;i<eMailAddress.length;i++){var letter=eMailAddress.charAt(i).toLowerCase();if(validchars.indexOf(letter)!=-1)continue;parsed=false;break}return parsed},trim:function(str,chars){return this.ltrim(this.rtrim(str,chars),chars)},ltrim:function(str,chars){chars=chars||"\\s";return str.replace(new RegExp("^["+chars+"]+","g"),"")},rtrim:function(str,chars){chars=chars||"\\s";return str.replace(new RegExp("["+chars+"]+$","g"),"")}}};