//--Copyright © 1999-2003, A Plus Consultants, LLC, All Rights Reserved. (020217)
//  No part of this script may be used for any purpose without prior//  written permission. Contact richard@aplusconsultants.com.function ListElements(oForm){var ii=0;var sElements="";var sTitle="";if(arguments.length==0)var oForm=document.forms["0"];sTitle=oForm.name+" Elements:";for(ii=0; ii<oForm.elements.length; ii++){sElements+="\n"+(ii+1)+". "+oForm.elements[ii].name+" ("+oForm.elements[ii].type+") "+oForm.elements[ii].value;if((ii+1)% 20==0){alert(sTitle+sElements);sElements="";}}alert(sTitle+sElements);}function Rule(name,label,type,req,func,min,max,msg){this.name=name;this.label=label;this.type=type;this.req=(typeof(req)=="boolean")?req:(req=="true");this.func=func;this.min=min;this.max=max;this.msg=msg;}function ErrType(){alert("Error");sType="undefined";return true;}function InputCtrl(name,type,state,value){this.name=name;this.type=type;this.state=state;this.value=value;}function BuildInputCtrl(oForm,sName,sWhat,bDebug){var aStates=new Array();var aValues=new Array();var ii=0;var iSelected;var jj=0;var sType="";sWhat=sWhat.toLowerCase();if(bDebug){alert("BuildInputCtrl:\n"+"document."+oForm.name+"."+sName);}if(eval("document."+oForm.name+"."+sName)=="undefined"){sType="undefined";}else if(oForm[sName]){if(oForm[sName].type){sType=oForm[sName].type;}else{sType="undefined";}}else{sType="undefined";}if(bDebug){alert("BuildInputCtrl:\n"+"Element: "+sName+"\nType: "+sType);}aValues[jj]="";if(sType=="undefined"){for(ii=0; ii<oForm.elements.length; ii++){if(oForm.elements[ii].name==sName){sType=oForm.elements[ii].type;if(sType=="checkbox"||sType=="radio"){if(oForm.elements[ii].checked){aStates[jj]=ii;aValues[jj]=oForm.elements[ii].value;}}else if(sType=="text"){aStates[jj]=ii;}else if(sType=="select-one"){iSelected=oForm.elements[ii].selectedIndex;aStates[jj]=iSelected;if(iSelected==-1){aValues[jj]="";}else{if(sWhat=="text"){aValues[jj]=oForm.elements[ii].options[iSelected].text;}else{aValues[jj]=oForm.elements[ii].options[iSelected].value;}}aStates[jj]=ii;jj++;}else{}if(aStates[jj]&&sType!="select-one"){aValues[jj]=oForm.elements[ii].value;jj++;}}}}else{if(sType=="checkbox"||sType=="radio"){if(oForm[sName].checked){aValues[jj]=oForm[sName].value;}}else if(sType=="select-one"){iSelected=oForm[sName].selectedIndex;if(bDebug){alert("BuildInputCtrl:"+"\nSelect Element: "+sName+"\nSelected Index: "+iSelected);}aStates[jj]=iSelected;if(iSelected>=0){if(oForm[sName].options.length){if(oForm[sName].selectedIndex==0){if(sName!="Category"){if(sWhat=="text"){aValues[jj]=oForm[sName].options[iSelected].text;}else{aValues[jj]=oForm[sName].options[iSelected].value;}}}else{if(oForm[sName].options[iSelected]==null){alert(sName+" is null: 157x "+oForm[sName].selectedIndex+" "+iSelected+" of "+oForm[sName].options.length);}else{if(sWhat=="text"){aValues[jj]=oForm[sName].options[iSelected].text;}else{aValues[jj]=oForm[sName].options[iSelected].value;}}}}else{alert("BuildInputCtrl:"+"\nSelect Element: "+sName+" has no options.");}}}else if(sType=="select-multiple"){for(ii=0; ii<oForm[sName].length; ii++){if(oForm[sName].options[ii].selected){aStates[jj]=ii;if(sWhat=="text"){aValues[jj]=oForm[sName].options[ii].text;}else{aValues[jj]=oForm[sName].options[ii].value;}jj++;}}}else{aStates[jj]="";aValues[jj]=oForm[sName].value;}if(bDebug){alert("BuildInputCtrl:"+"\nValue Array Length: "+aValues.length+"\nValue Array: "+aValues);}}return new InputCtrl(sName,sType,aStates,aValues);}function sDisallow(sText,sLabel,sChars){var aCharList=aBreakApart(sChars,"~");var ii=0;for(ii=0; ii<aCharList.length; ii++){if(sText.indexOf(aCharList[ii])>=0){return sLabel+" may not contain the following words or characters:\n\t '"+aCharList+"'";}}return "";}function sValidEmail(sMail,sLabel){var reEmail=/^[\w_-]+(\.[\w_-]+)?@[\w_-]+(\.[\w_-]{2,16})+$/gi;if(sMail.search(reEmail)==-1){return sLabel+" is not a valid format for internet e-mail addresses.";}if(sMail.length<7){return sLabel+" must be at least 7 characters.";}if(sMail.indexOf("@")==-1||sMail.lastIndexOf(".")<sMail.indexOf("@")){return sLabel+" is not in a valid format.";}return "";}function sValidFileName(sText,sLabel,sExt){var sFolderChar="\\";var sMsg="";var re=new RegExp("[/]","gi");if(sText.search(re)>=0){sFolderChar="/";}if(sExt.substr(0,1)=="{"){if(sExt=="{doc}"){sExt="doc,pdf,txt,xls";}else if(sExt=="{img}"){sExt="gif,jpeg,jpg,png";}else if(sExt=="{media}"){sExt="ram";}else{sMsg="Developer: Invalid file extension class.";}}var ay=sText.split(sFolderChar);var sFileName=ay[ay.length-1];if(sFileName.search(/[.]/gi)>0){ay=sFileName.split(".");sFileExt=ay[ay.length-1];sFileName="";for(ii=0; ii<ay.length-1; ii++){sFileName=sFileName+ay[ii]+".";}var reExt=new RegExp(sFileExt,"gi");if(sExt.search(reExt)==-1){sMsg=sMsg+sFileExt+" is not a permitted "+sLabel+" extenstion."+"\n";}if(sFileName.search(/[ #]/gi)>=0){sMsg=sMsg+"Spaces and hashes (#) are not permitted in "+sLabel+" names."+"\n";}}else{sMsg=sLabel+"s must have extensions.";}return sMsg;}function sValidHTML(sText,sLabel){var sTagList="B,BIG,BR,DIV,FONT,H1,H2,H3,H4,HR,I,LI,OL,P,PRE";sTagList+="SMALL,SPAN,STRONG,SUB,SUP,TABLE,TD,TH,TR,U,UL";var aTags=sTagList.split(",");var reTag=/\<\/?[A-Z]+[^>]*\>/gi;var sTag="";var sTagX="";var sRet="";var ii=0;var sBadTags=",";sTag=sText.match(reTag);if(sTag==null){return "";}for(ii=0; ii<sTag.length; ii++){sTagx=sTag[ii].substring(1,sTag[ii].length-1);if(sTagx.indexOf("\n")!=-1){sTagx=sTagx.substr(0,sTagx.indexOf("\n"));}if(sTagx.indexOf(" ")!=-1){sTagx=sTagx.substr(0,sTagx.indexOf(" "));}if(sTagx.substr(0,1)=="/"){sTagx=sTagx.substr(1,sTagx.length-1);}var bOk=false;for(var jj=0; jj<aTags.length; jj++){if(sTagx.toLowerCase()==aTags[jj].toLowerCase()){bOk=true;jj=aTags.length;}}if(!bOk){if(sRet.length==0){sRet=sLabel+" may not contain the following HTML tags:\n\t";}var sTest=","+sBadTags+",";if(sTest.indexOf(","+sTagx+",")==-1){sBadTags=sBadTags+sTagx+",";sRet+=" <"+sTagx+"> ";}}}return sRet;}function sValidImageDimensions(arValue,sLabel){var reDimension=/^[1-9][0-9]{1,2}x[1-9][0-9]{1,2}$/gi;if(arValue.length==1){return "";}var sVal=arValue[arValue.length-1];if(sVal==""){return "";}if(sVal.search(reDimension)==-1){return  "'"+sVal+"' is not valid for "+sLabel+" dimensions.";}var arVals=sVal.split("x");if(arVals[0]>480&&arVals[1]>320){return sLabel+" dimensions are too large. Maximum 480 wide by 320 high.";}if(arVals[0]>480){return sLabel+" width is too large. Maximum width is 480.";}if(arVals[1]>320){return sLabel+" height is too large. Maximum height is 320.";}return "";}function sValidPhone(sPhone,sLabel,sCountry){var sMsg="";var reFax=/^\([2-9][0-9]{2}\)[2-9][0-9]{2}-[0-9]{4}$/gi;var rePhone=/^[(]?[2-9][0-9]{2}[ )\/\.-]?[2-9][0-9]{2}[ \.-]{1}[0-9]{4}( x[0-9]{1,5})?$/gi;var reNonNA=/^\([1-9][0-9]{1,3}\)[0-9]{1,4}([ .-][0-9]{2,4}){2,6}( x[0-9]{1,5})?$/gi;var sChar="";var sNum="0123456789()-";if(arguments.length==2){sCountry="US";}if(sPhone==""){return "";}if(sLabel=="Fax"){if(sCountry!="US"&&sCountry!="CA"){if(sPhone.search(reNonNA)==0){return "";}else{sMsg=sLabel+" numbers outside the US and Canada must "+"include a country code in parentheses followed by "+"a pattern of numbers (in pairs or more) separated "+"by either spaces or dashes.";return sMsg;}}else{if(sPhone.search(reFax)==0){return "";}else{sMsg="North American fax numbers must be formatted as (999)999-9999.";return sMsg;}}}else{if(sCountry!="US"&&sCountry!="CA"){if(sPhone.search(reNonNA)==0){return "";}else{sMsg=sLabel+" numbers outside the US and Canada must "+"include a country code in parentheses followed by "+"a pattern of numbers (in pairs or more) separated "+"by either spaces or dashes.";return sMsg;}}else{if(sPhone.search(rePhone)==0){return "";}else{sMsg="North American phone numbers must be formatted "+"as (999)999-9999 x99999 where the extension is optional.";return sMsg;}}}if(sPhone.length<13){return sLabel+" must be at least 13 characters.";}if(sPhone.indexOf("(")!=0||sPhone.indexOf(")")!=4||sPhone.indexOf("-")!=8){return sLabel+" is not in a valid format.";}for(var ii=0; ii<13; ii++){sChar=sPhone.substring(ii,ii+1);if(sNum.indexOf(sChar)==-1){return "Only numbers and ()- are allowed in a "+sLabel+" number.";}}return "";}function sValidState(sState,sLabel,sCountry){var sCA="AB,BC,MB,NB,NF,NS,NT,ON,PE,PQ,SK,YT";var sUS="AL,AK,AR,AZ,CA,CO,CT,DE,DC,GA,FL,HI,ID,IL,IN,IA,KS,KY,LA,MA,ME,MI,MN,MT,MO,MS,MD,NC,ND,NE,NH,NJ,NM,NY,NV,OH,OR,OK,PA,RI,SC,SD,TN,TX,UT,VT,VA,WA,WI,WV,WY";var sCAName="Alberta,British Columbia,Manitoba,New Brunswick,Newfoundland,Northwest Territories,Nova Scotia,Nunavit,Ontario,Prince Edward Island,Quebec,Saskatchewan,Yukon Territory";var sUSName="Alabama,Alaska,Arkansas,Arizona,California,Colorado,Connecticut,Delaware,Florida,Georgia,Hawaii,Idaho,Illinois,Indiana,Iowa,Kansas,Kentucky,Louisiana,Maine,Maryland,Massachusetts,Michigan,Minnesota,Mississippi,Missouri,Montana,Nebraska,Nevada,New Hampshire,New Jersey,New Mexico,New York,North Carolina,North Dakota,Ohio,Oklahoma,Oregon,Pennsylvania,Rhode Island,South Carolina,South Dakota,Tennessee,Texas,Utah,Vermont,Virginia,Washington,West Virginia,Wisconsin,Wyoming,District of Columbia";if(arguments.length!=3){sCountry="US";}if(sCountry=="CA"){if(sCAName.indexOf(sState)==-1||sState==""){return "A province must be entered for Canada.";}}if(sCountry=="US"){if(sUSName.indexOf(sState)==-1||sState==""){return "A state must be entered for the United States.";}}if(sCountry!="US"&&sCountry!="CA"&&sState!=""){return "State must be blank, except for the United States and Canada.";}return "";}function sValidWords(sValue,sLabel,sLogic){var aWords=sValue.split(" ");var ii=0;var iInvalidLength=1;var jj=0;var sCommonWords="an,and,are,be,but,by,for,have,he,her,here,him,his,how,is,it,me,my,of,on,or,our,she,that,the,there,their,they,this,to,we,what,when,where,who,why,with,you,your";var sInvalidWords="fuck.,shit.";var sTest="";var sWord="";if(arguments.length==2){sLogic="OR";}if(sValue==""){return "";}if(sLogic=="Phrase"&&aWords.length>1){return "";}for(ii=0; ii<aWords.length; ii++){if(aWords[ii].length==1){return sLabel+" may not contain single characters, such as '"+aWords[ii]+"', unless you choose 'Exact Phrase' with more than one word.";}}var aCommonWords=sCommonWords.split(",");var aInvalidWords=sInvalidWords.split(",");for(ii=0; ii<aWords.length; ii++){sWord=aWords[ii].toLowerCase();for(jj=0; jj<aCommonWords.length; jj++){sTest=aCommonWords[jj].toLowerCase();if(sWord==sTest){return sLabel+" may not contain common words, such as '"+sTest+"', unless you choose 'Exact Phrase' with more than one word.";}}for(jj=0; jj<aInvalidWords.length; jj++){sTest=aInvalidWords[jj].toLowerCase();if(sTest.indexOf(".")>=0){var re=new RegExp(sTest+"*","gi");if(sWord.search(re)>=0){return sLabel+" may not contain words containing strings, such as '"+sTest+"', unless you choose 'Exact Phrase' with more than one word.";}}else{if(sWord==sTest){return sLabel+" may not contain common words, such as '"+sTest+"', unless you choose 'Exact Phrase' with more than one word.";}}}}return "";}function sValidZip(sZip,sLabel,sCountry,sFlag){var sChar="";var sNum="0123456789-";var reZip=/^([0-9]{5})(-[0-9]{4})?$/gi;var reCanada=/^[A-Z][0-9][A-Z] ?[0-9][A-Z][0-9]$/gi;var reOther=/^[A-Z 0-9,-]{3,10}$/gi;var sEurope="AL,AD,AT,BE,BA,BG,HR,CZ,DK,EE,FI,FR,DE,GR,IS,IE,IT,LV,LI,LT,LU,MK,MT,MC,NL,NO,PL,PT,RO,RU,SM,SK,SI,ES,SE,CH,TR,UA,GB,YU";if(arguments.length<3){sCountry="US";}if(arguments.length<4){sFlag="noblank";}if(sZip==""&&sFlag=="blank"){return "";}if(sCountry=="CA"){if(sZip.search(reCanada)==0){return "";}else{return "Canadian Postal Codes must contain numbers, letters, and spaces in a pattern of Z9Z 9Z9.";}}if(sCountry=="US"){if(sZip.search(reZip)==0){return "";}else{return "US ZIP Codes must be in the pattern 99999-9999. The dash and last four digits are optional.";}}if(sCountry!="US"&&sCountry!="CA"){if(sZip.search(reOther)==0){return "";}else{if(sZip==""){if(sEurope.indexOf(sCountry)==-1){return "";}else{return "You must enter a postal code for a European country.";}}return "Postal codes may contain numbers, letters, spaces, dashes, and commas.";}}if(sZip.length!=5&sZip.length!=10)return "Zip code must be either 5 or 10 characters in length.";if(sZip.length==10&&sZip.indexOf("-")!=5)return "Zip code is not in a valid format.";for(var ii=0; ii<sZip.length; ii++){sChar=sZip.substring(ii,ii+1);if(sNum.indexOf(sChar)==-1)return "Only numbers and - are allowed in a zip code.";}return "";}function sIsDate(sString,sLabel,iLow,iHigh){var reDateTime=/^[0-1][0-9](\/|-)[0-3][0-9](\/|-)([1-2][90])?[0-9]{2}$/gi;var arParts=aBreakApart(sString,"/");var dtCheck;var dtNow=new Date;var iDate;var sDate="";if(Date.parse(sString)!="NaN"){iDate=Date.parse(sString);dtCheck=new Date(sString);if(parseInt(dtCheck.getDate(),10)!=parseInt(arParts[1],10)){return sLabel+" must be a valid date / time.";}if(dtCheck.getYear()<100){if(dtCheck.getYear()<30){sDate=(dtCheck.getMonth()+1)+"/"+dtCheck.getDate()+"/"+(dtCheck.getYear()+2000);}else{sDate=(dtCheck.getMonth()+1)+"/"+dtCheck.getDate()+"/"+(dtCheck.getYear()+1900);}iDate=Date.parse(sDate);}else if(dtCheck.getYear()<1875){return "Dates prior to 1875 are not permitted.";}}else{return sLabel+" must be a date / time value.";}if(iLow!=""&&iHigh!=""){if(iDate<Date.parse(iLow)||iDate>Date.parse(iHigh)){return sLabel+" must be between "+iLow+" and "+iHigh+".";}}if(iLow==""&&iHigh!=""){if(iDate>Date.parse(iHigh))return sLabel+" may not be later than "+iHigh+".";}if(iLow!=""&&iHigh==""){if(iDate<Date.parse(iLow))return sLabel+" may not be earlier than "+iLow+".";}return "";}function sIsLength(sValue,sLabel,sType,iLow,iHigh){var iLen=sValue.length;var sTail="";if(iLow==""&&iHigh=="")return "";if(iLow==iHigh&&iLen!=iLow)return sLabel+" must be exactly "+iLow+" characters long.";if(iLow!=""&&iHigh!="")sTail="must be between "+iLow+" and "+iHigh+" characters.";else if(iLow!="")sTail="may not be less than "+iLow+" characters.";else if(iHigh!="")sTail="may not more than "+iHigh+" characters.";if(iLen>0)sTail="is "+iLen+" characters long, but "+sTail;if((iHigh!=""&&iLen>iHigh)||(iLow!=""&&iLen<iLow))return sLabel+" "+sTail;return "";}function sIsNumber(sNumb,sLabel,sLow,sHigh){var reZero=/^[-]?[0-9]*$/gi;var reNoZero=/^[$-]?[1-9]+[0-9]{0,2}([,]?[0-9]{3})*[.]*[0-9]*$/gi;var iLow=parseInt(sLow,10);var iHigh=parseInt(sHigh,10);if(iLow==0){if(sNumb.search(reZero)==-1)return sLabel+" must be a number.";}else{if(sNumb.search(reNoZero)==-1)return sLabel+" must be a number without leading zeros.";}sNumb=sNumb.replace(/[,$]/gi,"");iNumb=parseFloat(sNumb,10);if(sLow!=""&&sHigh!=""){if(iNumb<iLow||iNumb>iHigh)return sLabel+" must be between "+sLow+" and "+sHigh+".";}if(sLow==""&&sHigh!=""){if(iNumb>iHigh)return sLabel+" may not be greater than "+sHigh+".";}if(sLow!=""&&sHigh==""){if(iNumb<iLow)return sLabel+" may not be lesser than "+sLow+".";}return "";}function sIsPassword(sPW,sLabel,sUser){rePW=/^\S+$/gi;if(arguments.length==1)return "";if(sPW.toLowerCase()=="password"){return "'"+sPW+"' may not be used as a "+sLabel+".";}if(sPW.search(rePW)==-1){return "Spaces are not permitted in a "+sLabel+".";}if(sPW.indexOf(sUser)!=-1){return "Your User Name may not be part of your "+sLabel+".";}if(sUser.indexOf(sPW)!=-1){return "Your "+sLabel+" may not be part of your User Name.";}return "";}function sIsTime(sString,sLabel,sLow,sHigh){var reTime=new RegExp("([0-1]?[0-9]+):?([0-5]?[0-9]?) ?([AaPp]m?)","i");var dtNow=new Date;var dtValue=new Date;var iLow=0;var iHigh=0;var sTime="";if(Date.parse("01/01/2000 "+sString)>0)dtValue=Date.parse("01/01/2000 "+sString);else{if(sString.search(reTime)!=0){return sLabel+" must be a time value.";}}if(sLow!=""&&sHigh!=""){}if(sLow==""&&sHigh!=""){if(sHigh.search(reTime)==0){iHigh=sTimeToFloat(sHigh);iTime=sTimeToFloat(sString);if(iTime>iHigh){return sLabel+" may not be later than "+sHigh+".";}}}if(sLow!=""&&sHigh==""){if(sLow.search(reTime)==0){iLow=sTimeToFloat(sLow);iTime=sTimeToFloat(sString);if(iTime<iLow){return sLabel+" may not be earlier than "+sLow+".";}}}return "";}function nOfGroup(oForm,lstNames,iMin,iMax,bDebug){var aNames=lstNames.split("|");var ii=0;var iCnt=0;var oElement;var sValue="";for(ii=0; ii<aNames.length; ii++){aPart=aNames[ii].split("^");if(aPart.length==1){aPart[1]="value";}oElement=BuildInputCtrl(oForm,aPart[0],aPart[1],false);if(bDebug){alert("nOfGroup:"+"\nElement Name: "+oElement.name+"\nElement Values: "+oElement.value);}sValue=RTrim(LTrim(oElement.value[0]));if(sValue!=""){iCnt++;}}if(bDebug){alert("nOfGroup:"+"\nCount of Values: "+iCnt+"\nCount Range: "+iMin+","+iMax);}if(iCnt>=iMin&&iCnt<=iMax){return true;}else{return false;}}function bCheckFormRules(oForm,aRuleArray,bDebug){var aEN=new Array(0);var aParms=new Array(0);var bCheckElement=false;var bRet=false;var ii=0;var jj=0;var kk=0;var oElement;var oES;var sAlert="";var sClrClearFlag="None White";var sClrSetFlag="None Red";var sParm="";var sValue="";if(arguments.length==1){aRuleArray=aRules;}if(arguments.length<=2){bDebug=false;}if(aRuleArray[ii]!=null){sFunc=aRuleArray[ii].func;if(sFunc=="nOfGroup"){if(!nOfGroup(oForm,aRuleArray[ii].name,aRuleArray[ii].min,aRuleArray[ii].max,bDebug)){jj++; sAlert+="\n"+jj+". "+aRuleArray[ii].msg;}}}for(ii=1; ii<aRuleArray.length; ii++){while(!(aRuleArray[ii])){ii++;}aEN=aRuleArray[ii].name.split("^");if(document.all){oES=document.all[aEN[0]].style;}else if(document.layers){oES=oForm[aEN[0]].style;}else if(document.getElementById){oES=document.getElementById(aEN[0]).style;}if(oES){oES.background=sClrClearFlag;}sFunc=aRuleArray[ii].func;if(sFunc=="nOfGroup"){bCheckElement=true;sValue="***";}else{if(bDebug){alert("bCheckFormRules1:"+"\nRule Name: "+aRuleArray[ii].name);}oElement=BuildInputCtrl(oForm,aRuleArray[ii].name,"value",bDebug);if(bDebug){alert("bCheckFormRules2:"+"\nElement Name: "+oElement.name+"\nElement Type: "+oElement.type+"\nElement State: "+oElement.state+"\nElement Value: "+oElement.value);}if(bDebug){alert("bCheckFormRules3:"+"\nElement Matches Rule Array? "+(oElement==oForm[aRuleArray[ii].name]));}sValue=RTrim(LTrim(oElement.value[0]));if(sValue==""&&oElement.value[oElement.value.length-1]!=""){sValue=oElement.value[oElement.value.length-1];}if(bDebug){alert(oElement.name+": '"+sValue+"'");}if(aRuleArray[ii].req){if(sValue==""){jj++; sAlert+="\n"+jj+". "+aRuleArray[ii].msg;if(oES){oES.background=sClrSetFlag;}}}bCheckElement=(oElement.type=="text"||oElement.type=="password"||oElement.type=="textarea"||oElement.type=="select-one"||oElement.type=="hidden"||oElement.type=="file");}if((aRuleArray[ii].req||sValue!="")&&bCheckElement){if(sFunc.indexOf("nOfGroup")==0){if(!nOfGroup(oForm,aRuleArray[ii].name,aRuleArray[ii].min,aRuleArray[ii].max,bDebug)){jj++; sAlert+="\n"+jj+". "+aRuleArray[ii].msg;if(oES){oES.background=sClrSetFlag;}}}if(sFunc.indexOf("sValidWords")==0){if(sFunc.indexOf(",")>=0){aParms=aBreakApart(sFunc,",");}else{aParms[0]=sFunc;}if(aParms.length==1){sRet=sValidWords(sValue,aRuleArray[ii].label);}else{var oNew=BuildInputCtrl(oForm,aParms[1],"value",bDebug);sRet=sValidWords(sValue,aRuleArray[ii].label,oNew.value[0]);}if(sRet!=""){jj++; sAlert+="\n"+jj+". "+sRet;if(oES){oES.background=sClrSetFlag;}}}if(sFunc.indexOf("sValidEmail")==0){sRet=sValidEmail(sValue,aRuleArray[ii].label);if(sRet!=""){jj++; sAlert+="\n"+jj+". "+sRet;if(oES){oES.background=sClrSetFlag;}}}if(sFunc.indexOf("sValidHTML")==0){sRet=sValidHTML(sValue,aRuleArray[ii].label);if(sRet!=""){jj++; sAlert+="\n"+jj+". "+sRet;if(oES){oES.background=sClrSetFlag;}}}if(sFunc.indexOf("sValidPhone")==0){if(sFunc.indexOf(",")>=0){aParms=aBreakApart(sFunc,",");}else{aParms[0]=sFunc;}if(aParms.length==1){sRet=sValidPhone(sValue,aRuleArray[ii].label);}else{if(oForm[aParms[1]].type=="select-one"){sParm=oForm[aParms[1]].options[oForm[aParms[1]].selectedIndex].value;}else{sParm=oForm[aParms[1]].value;}sRet=sValidPhone(sValue,aRuleArray[ii].label,sParm);}if(sRet!=""){jj++; sAlert+="\n"+jj+". "+sRet;if(oES){oES.background=sClrSetFlag;}}}if(sFunc=="sIsNumber"){sRet=sIsNumber(sValue,aRuleArray[ii].label,aRuleArray[ii].min,aRuleArray[ii].max);if(sRet!=""){jj++; sAlert+="\n"+jj+". "+sRet;if(oES){oES.background=sClrSetFlag;}}}if(sFunc=="sIsDate"){sRet=sIsDate(sValue,aRuleArray[ii].label,aRuleArray[ii].min,aRuleArray[ii].max);if(sRet!=""){jj++; sAlert+="\n"+jj+". "+sRet;if(oES){oES.background=sClrSetFlag;}}}if(sFunc=="sIsTime"){sRet=sIsTime(sValue,aRuleArray[ii].label,aRuleArray[ii].min,aRuleArray[ii].max);if(sRet!=""){jj++; sAlert+="\n"+jj+". "+sRet;if(oES){oES.background=sClrSetFlag;}}}if(sFunc.indexOf("sDisallow")==0){if(sFunc.indexOf(",")>=0){aParms=aBreakApart(sFunc,",");}else{aParms[0]=sFunc;}if(aParms.length==1){sRet=sDisallow(sValue,aRuleArray[ii].label);}else{sRet=sDisallow(sValue,aRuleArray[ii].label,aParms[1]);}if(sRet!=""){jj++; sAlert+="\n"+jj+". "+sRet;if(oES){oES.background=sClrSetFlag;}}}if(sFunc.indexOf("sIsPassword")==0){if(sFunc.indexOf(",")>=0){aParms=aBreakApart(sFunc,",");}else{aParms[0]=sFunc;}if(aParms.length==1){sRet=sIsPassword(sValue,aRuleArray[ii].label);}else{if(oForm[aParms[1]].type=="select-one"){sParm=oForm[aParms[1]].options[oForm[aParms[1]].selectedIndex].value;}else{sParm=oForm[aParms[1]].value;}sRet=sIsPassword(sValue,aRuleArray[ii].label,sParm);}if(sRet!=""){jj++; sAlert+="\n"+jj+". "+sRet;if(oES){oES.background=sClrSetFlag;}}}if(sFunc.indexOf("nOfGroup")!=0){if(aRuleArray[ii].min!=""||aRuleArray[ii].max!=""){if(aRuleArray[ii].type=="s"){sRet=sIsLength(sValue,aRuleArray[ii].label,aRuleArray[ii].type,aRuleArray[ii].min,aRuleArray[ii].max);if(sRet!=""){jj++; sAlert+="\n"+jj+". "+sRet;if(oES){oES.background=sClrSetFlag;}}}}}}if(sFunc.indexOf("sValidFileName")==0&&sValue!=""){if(sFunc.indexOf(",")>=0){aParms=aBreakApart(sFunc,",");}else{aParms[0]=sFunc;}if(aParms.length==1){sRet=sValidFileName(sValue,aRuleArray[ii].label);}else{sParm="";for(ll=1; ll<aParms.length; ll++){sParm+=(ll==aParms.length-1)? "" : ",";sParm+=aParms[ll];}sRet=sValidFileName(sValue,aRuleArray[ii].label,sParm);}if(sRet!=""){jj++; sAlert+="\n"+jj+". "+sRet;if(oES){oES.background=sClrSetFlag;}}}if(sFunc.indexOf("sValidState")==0){if(sFunc.indexOf(",")>=0){aParms=aBreakApart(sFunc,",");}else{aParms[0]=sFunc;}if(aParms.length==1){sRet=sValidState(sValue,aRuleArray[ii].label);}else{if(oForm[aParms[1]].type=="select-one"){sParm=oForm[aParms[1]].options[oForm[aParms[1]].selectedIndex].value;}else{sParm=oForm[aParms[1]].value;}sRet=sValidState(sValue,aRuleArray[ii].label,sParm);}if(sRet!=""){jj++; sAlert+="\n"+jj+". "+sRet;if(oES){oES.background=sClrSetFlag;}}}if(sFunc.indexOf("sValidZip")==0){if(sFunc.indexOf(",")>=0){aParms=aBreakApart(sFunc,",");}else{aParms[0]=sFunc;}if(aParms.length==1){sRet=sValidZip(sValue,aRuleArray[ii].label);}else if(aParms.length==2){if(oForm[aParms[1]].type=="select-one"){sParm=oForm[aParms[1]].options[oForm[aParms[1]].selectedIndex].value;}else{sParm=oForm[aParms[1]].value;}sRet=sValidZip(sValue,aRuleArray[ii].label,sParm);}else{if(oForm[aParms[1]].type=="select-one"){sParm=oForm[aParms[1]].options[oForm[aParms[1]].selectedIndex].value;}else{sParm=oForm[aParms[1]].value;}sRet=sValidZip(sValue,aRuleArray[ii].label,sParm,aParms[2]);}if(sRet!=""){jj++; sAlert+="\n"+jj+". "+sRet;if(oES){oES.background=sClrSetFlag;}}}if(sFunc=="sValidImageDimensions"){sRet=sValidImageDimensions(oElement.value,aRuleArray[ii].label);if(sRet!=""){jj++; sAlert+="\n"+jj+". "+sRet;if(oES){oES.background=sClrSetFlag;}}}}if(sAlert!=""){if(sAlert!="\n1. blank"){alert(sAlert);}return false;}return true;}function AllowHTML(sText){var sTagList="B,BIG,BR,DIV,FONT,H1,H2,H3,H4,HR,I,LI,OL,P,PRE";sTagList+="SMALL,SPAN,STRONG,SUB,SUP,TABLE,TD,TH,TR,U,UL";var aTags=sTagList.split(",");var reTag=/\<\/?[A-Z]+[^>]*\>/gi;var sTag="";var sTagX="";var sMsg="The following tags:\n\n";var sRet="";var ii=0;var sBadTags=",";sTag=sText.match(reTag);if(sTag==null){return "";}for(ii=0; ii<sTag.length; ii++){sTagx=sTag[ii].substring(1,sTag[ii].length-1);if(sTagx.indexOf("\n")!=-1){sTagx=sTagx.substr(0,sTagx.indexOf("\n"));}if(sTagx.indexOf(" ")!=-1){sTagx=sTagx.substr(0,sTagx.indexOf(" "));}if(sTagx.substr(0,1)=="/"){sTagx=sTagx.substr(1,sTagx.length-1);}var bOk=false;for(var jj=0; jj<aTags.length; jj++){if(sTagx.toLowerCase()==aTags[jj].toLowerCase()){bOk=true;jj=aTags.length;}}if(!bOk){if(sRet.length==0){sRet=sMsg;}var sTest=","+sBadTags+",";if(sTest.indexOf(","+sTagx+",")==-1){sBadTags=sBadTags+sTagx+",";sRet+="\t<"+sTagx+">\n";}}}if(sRet.length>0){sRet+="\nare not allowed.";return sRet;}return "";}