
function bmTrimTextFields(form){for(var j=0;j<form.length;++j){if(form.elements[j].type=="text"||form.elements[j].type=="textarea")
form.elements[j].value=bmTrim(form.elements[j].value);}}
function bmTrim(strInput){try{var reStartSpaces=/^( )*/;var reEndSpaces=/( )*$/;strInput=strInput.replace(reStartSpaces,'');return strInput.replace(reEndSpaces,'');}
catch(e){return'';}}
function trimStr(str,chars){return ltrimStr(rtrimStr(str,chars),chars);}
function ltrimStr(str,chars){chars=chars||"\\s";return str.replace(new RegExp("^["+chars+"]+","g"),"");}
function rtrimStr(str,chars){chars=chars||"\\s";return str.replace(new RegExp("["+chars+"]+$","g"),"");}
function bmSubmitForm(newAction,form,func,formaction,doTrim,openLoadDialog,redirect){bmErrorString="";var dt=true;var od=false;if(bmSubmitForm.arguments.length<2){form=document.forms[0];}
if(bmSubmitForm.arguments.length>4){dt=doTrim;}
if(bmSubmitForm.arguments.length>5){od=openLoadDialog;}
if(bmSubmitForm.arguments.length<7){redirect=true;}
if(dt){bmTrimTextFields(form);}
if(bmSubmitForm.arguments.length>2&&func!=null){func(form);}
if(bmErrorString!=""){alert(bmErrorString.replace(/\s\s*$/,''));bmErrorString="";return;}
if(od){if(typeof(showLoadingDialog)=='function'){showLoadingDialog();}
else{openLoadingDialog();}}
if(bmSubmitForm.arguments.length>3&&form.formaction){form.formaction.value=formaction;}
if(form._scrollTop){form._scrollTop.value=document.body.scrollTop;}
if(form._bmRedirect){form._bmRedirect.value=redirect;}
form.action=newAction;form.submit();}
function bmOpenWindow(url,popupName,params){if(bmOpenWindow.arguments.length<3){params='toolbar=0,menubar=0,location=0,directories=0,status=0,scrollbars=1,resizable=1,width=640,height=500';}
win=window.open(url,popupName.replace(/ /g,"_"),params);if(!win.opener){win.opener=window;}
win.focus();}
function bmCreatePopup(url,popupName,menubar,toolbar,width,height)
{if(bmCreatePopup.arguments.length<3){menubar=false;}
if(bmCreatePopup.arguments.length<6){height=500;}
if(bmCreatePopup.arguments.length<5){width=640;}
agent=navigator.userAgent;params="";if(toolbar){params+="toolbar=1,";}else{params+="toolbar=0,";}
params+="location=0,";params+="directories=0,";params+="status=0,";if(menubar){params+="menubar=1,";}else{params+="menubar=0,";}
params+="scrollbars=1,";params+="resizable=1,";params+="width="+width+",";params+="height="+height;win=window.open(url,popupName,params);if(agent.indexOf("Mozilla/2")!=-1&&agent.indexOf("Win")==-1){win=window.open(url,popupName,params);}
if(!win.opener){win.opener=window;}
win.focus();}
function moveScrollPosition(_scrollTop){document.body.scrollTop=_scrollTop;document.documentElement.scrollTop=_scrollTop;}
function areBothEqual(FirstValue,SecondValue)
{if((null==FirstValue)||(null==SecondValue)||("number"==typeof(FirstValue))||("number"==typeof(SecondValue)))
return FirstValue==SecondValue;else if(("string"==typeof(FirstValue))&&("string"==typeof(SecondValue)))
{FirstValue=bmTrim(FirstValue);SecondValue=bmTrim(SecondValue);if((""!=FirstValue)&&(""!=SecondValue)&&!bmIsNaN(FirstValue)&&!bmIsNaN(SecondValue))
return bmParseFloat(FirstValue)==bmParseFloat(SecondValue);else
return FirstValue.toLowerCase()==SecondValue.toLowerCase();}
else
{if(("string"==typeof(FirstValue))||("number"==typeof(FirstValue)))
FirstValue=new Array(FirstValue);if(("string"==typeof(SecondValue))||("number"==typeof(SecondValue)))
SecondValue=new Array(SecondValue);if(FirstValue.length!=SecondValue.length)
return false;var i,j;for(i=0;(i<FirstValue.length);i++)
{var firstValue=bmTrim(FirstValue[i]);var itemFound=false;for(j=0;!itemFound&&(j<SecondValue.length);j++)
{var secondValue=bmTrim(SecondValue[j]);if((""!=firstValue)&&(""!=secondValue)&&!bmIsNaN(firstValue)&&!bmIsNaN(secondValue))
itemFound=bmParseFloat(firstValue)==bmParseFloat(secondValue);else
itemFound=firstValue.toLowerCase()==secondValue.toLowerCase();}
if(!itemFound)
return false;}
return true;}}
function bmIsNaN(value){value=getStandardNumber(value);return isNaN(value);}
function getStandardNumber(value){if(value==null){return null;}
if(_BM_USER_NUMBER_FORMAT==0){value=new String(value).replace(/,/gi,"");}else{value=new String(value).replace(/\./gi,"");value=value.replace(/,/gi,".");}
return value;}
var i;function checkForm(formObj){for(i=0;i<6;i++){if(isEmpty(formObj.elements[i].value)){alert("All fields must be completed with valid information for submission!")
formObj.elements[i].focus()
return}}
formObj.submit()
alert("Form successfully submitted");}
function formatDate(dateVar){newDate=dateVar.toLocaleString()
newDate=newDate.substring(0,newDate.indexOf(" "))
return newDate}
function chDate(Obj){temp=new Date(Obj.value)
temp=formatDate(temp)
if(temp=="Invalid"){alert("Please re-enter the date in the format mm/dd/yy.")}
return}
var digits="0123456789";var lowercaseLetters="abcdefghijklmnopqrstuvwxyz"
var uppercaseLetters="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
var whitespace=" \t\n\r";var decimalPointDelimiter="."
var phoneNumberDelimiters="()- ";var validUSPhoneChars=digits+phoneNumberDelimiters;var validWorldPhoneChars=digits+phoneNumberDelimiters+"+";var SSNDelimiters="- ";var validSSNChars=digits+SSNDelimiters;var digitsInSocialSecurityNumber=9;var digitsInUSPhoneNumber=10;var ZIPCodeDelimiters="-";var ZIPCodeDelimeter="-"
var validZIPCodeChars=digits+ZIPCodeDelimiters
var digitsInZIPCode1=5
var digitsInZIPCode2=9
var creditCardDelimiters=" "
var mPrefix="You did not enter a value into the "
var mSuffix=" field. This is a required field."
var sUSLastName="Last Name"
var sUSFirstName="First Name"
var sWorldLastName="Family Name"
var sWorldFirstName="Given Name"
var sTitle="Title"
var sCompanyName="Company Name"
var sUSAddress="Street Address"
var sWorldAddress="Address"
var sCity="City"
var sStateCode="State Code"
var sWorldState="State, Province, or Prefecture"
var sCountry="Country"
var sZIPCode="ZIP Code"
var sWorldPostalCode="Postal Code"
var sPhone="Phone Number"
var sFax="Fax Number"
var sDateOfBirth="Date of Birth"
var sExpirationDate="Expiration Date"
var sEmail="Email"
var sSSN="Social Security Number"
var sCreditCardNumber="Credit Card Number"
var sOtherInfo="Other Information"
var iStateCode="This field must be a valid two character U.S. state abbreviation (like CA for California). Please reenter it now."
var iZIPCode="This field must be a 5 or 9 digit U.S. ZIP Code (like 94043). Please reenter it now."
var iUSPhone="This field must be a 10 digit U.S. phone number (like 415 555 1212). Please reenter it now."
var iWorldPhone="This field must be a valid international phone number. Please reenter it now."
var iSSN="This field must be a 9 digit U.S. social security number (like 123 45 6789). Please reenter it now."
var iEmail="This field must be a valid email address (like foo@bar.com). Please reenter it now."
var iCreditCardPrefix="This is not a valid "
var iCreditCardSuffix=" credit card number. (Click the link on this form to see a list of sample numbers.) Please reenter it now."
var iDay="This field must be a day number between 1 and 31.  Please reenter it now."
var iMonth="This field must be a month number between 1 and 12.  Please reenter it now."
var iYear="This field must be a 2 or 4 digit year number.  Please reenter it now."
var iDatePrefix="The Day, Month, and Year for "
var iDateSuffix=" do not form a valid date.  Please reenter them now."
var iEmpty="All fields are mandatory. Please fill all the fields."
var pEntryPrompt="Please enter a "
var pStateCode="2 character code (like CA)."
var pZIPCode="5 or 9 digit U.S. ZIP Code (like 94043)."
var pUSPhone="10 digit U.S. phone number (like 415 555 1212)."
var pWorldPhone="international phone number."
var pSSN="9 digit U.S. social security number (like 123 45 6789)."
var pEmail="valid email address (like foo@bar.com)."
var pCreditCard="valid credit card number."
var pDay="day number between 1 and 31."
var pMonth="month number between 1 and 12."
var pYear="2 or 4 digit year number."
var pDate="valid date format like mm/dd/yy."
var defaultEmptyOK=false
function makeArray(n){for(var i=1;i<=n;i++){this[i]=0}
return this}
var daysInMonth=makeArray(12);daysInMonth[1]=31;daysInMonth[2]=29;daysInMonth[3]=31;daysInMonth[4]=30;daysInMonth[5]=31;daysInMonth[6]=30;daysInMonth[7]=31;daysInMonth[8]=31;daysInMonth[9]=30;daysInMonth[10]=31;daysInMonth[11]=30;daysInMonth[12]=31;var USStateCodeDelimiter="|";var USStateCodes="AL|AK|AS|AZ|AR|CA|CO|CT|DE|DC|FM|FL|GA|GU|HI|ID|IL|IN|IA|KS|KY|LA|ME|MH|MD|MA|MI|MN|MS|MO|MT|NE|NV|NH|NJ|NM|NY|NC|ND|MP|OH|OK|OR|PW|PA|PR|RI|SC|SD|TN|TX|UT|VT|VI|VA|WA|WV|WI|WY|AE|AA|AE|AE|AP"
function isEmpty(s)
{if(navigator.appName=="Netscape"){if(s==undefined)
return true;}
return((s==null)||(s.length==0))}
function isWhitespace(s)
{var i;if(isEmpty(s))return true;for(i=0;i<s.length;i++)
{var c=s.charAt(i);if(whitespace.indexOf(c)==-1)return false;}
return true;}
function stripCharsInBag(s,bag)
{var i;var returnString="";for(i=0;i<s.length;i++)
{var c=s.charAt(i);if(bag.indexOf(c)==-1)returnString+=c;}
return returnString;}
function stripCharsNotInBag(s,bag)
{var i;var returnString="";for(i=0;i<s.length;i++)
{var c=s.charAt(i);if(bag.indexOf(c)!=-1)returnString+=c;}
return returnString;}
function stripWhitespace(s)
{return stripCharsInBag(s,whitespace)}
function charInString(c,s)
{for(i=0;i<s.length;i++)
{if(s.charAt(i)==c)return true;}
return false}
function stripInitialWhitespace(s)
{var i=0;while((i<s.length)&&charInString(s.charAt(i),whitespace))
i++;return s.substring(i,s.length);}
function isLetter(c)
{return(((c>="a")&&(c<="z"))||((c>="A")&&(c<="Z")))}
function isDigit(c)
{return((c>="0")&&(c<="9"))}
function isLetterOrDigit(c)
{return(isLetter(c)||isDigit(c))}
function isInteger(s)
{var i;if(isEmpty(s))
if(isInteger.arguments.length==1)return defaultEmptyOK;else return(isInteger.arguments[1]==true);s=getStandardNumber(s);for(i=0;i<s.length;i++)
{var c=s.charAt(i);if(!isDigit(c))return false;}
return true;}
function isSignedInteger(s)
{if(isEmpty(s))
if(isSignedInteger.arguments.length==1)return defaultEmptyOK;else return(isSignedInteger.arguments[1]==true);else{var startPos=0;var secondArg=defaultEmptyOK;if(isSignedInteger.arguments.length>1)
secondArg=isSignedInteger.arguments[1];if((s.charAt(0)=="-")||(s.charAt(0)=="+"))
startPos=1;return(isInteger(s.substring(startPos,s.length),secondArg))}}
function isPositiveInteger(s)
{var secondArg=defaultEmptyOK;if(isPositiveInteger.arguments.length>1)
secondArg=isPositiveInteger.arguments[1];return(isSignedInteger(s,secondArg)&&((isEmpty(s)&&secondArg)||(bmParseInt(s,10)>0)));}
function isNonnegativeInteger(s)
{var secondArg=defaultEmptyOK;if(isNonnegativeInteger.arguments.length>1)
secondArg=isNonnegativeInteger.arguments[1];return(isSignedInteger(s,secondArg)&&((isEmpty(s)&&secondArg)||(bmParseInt(s,10)>=0)));}
function isNegativeInteger(s)
{var secondArg=defaultEmptyOK;if(isNegativeInteger.arguments.length>1)
secondArg=isNegativeInteger.arguments[1];return(isSignedInteger(s,secondArg)&&((isEmpty(s)&&secondArg)||(bmParseInt(s,10)<0)));}
function isNonpositiveInteger(s)
{var secondArg=defaultEmptyOK;if(isNonpositiveInteger.arguments.length>1)
secondArg=isNonpositiveInteger.arguments[1];return(isSignedInteger(s,secondArg)&&((isEmpty(s)&&secondArg)||(bmParseInt(s,10)<=0)));}
function isFloat(s)
{var i;var seenDecimalPoint=false;if(isEmpty(s))
if(isFloat.arguments.length==1)return defaultEmptyOK;else return(isFloat.arguments[1]==true);if(s==decimalPointDelimiter)return false;s=getStandardNumber(s);for(i=0;i<s.length;i++)
{var c=s.charAt(i);if((c==decimalPointDelimiter)&&!seenDecimalPoint)seenDecimalPoint=true;else if(!isDigit(c))return false;}
return true;}
function isSignedFloat(s)
{if(isEmpty(s))
if(isSignedFloat.arguments.length==1)return defaultEmptyOK;else return(isSignedFloat.arguments[1]==true);else{var startPos=0;var secondArg=defaultEmptyOK;if(isSignedFloat.arguments.length>1)
secondArg=isSignedFloat.arguments[1];if((s.charAt(0)=="-")||(s.charAt(0)=="+"))
startPos=1;return(isFloat(s.substring(startPos,s.length),secondArg))}}
function isAlphabetic(s)
{var i;if(isEmpty(s))
if(isAlphabetic.arguments.length==1)return defaultEmptyOK;else return(isAlphabetic.arguments[1]==true);for(i=0;i<s.length;i++)
{var c=s.charAt(i);if(!isLetter(c))
return false;}
return true;}
function isAlphanumeric(s)
{var i;if(isEmpty(s))
if(isAlphanumeric.arguments.length==1)return defaultEmptyOK;else return(isAlphanumeric.arguments[1]==true);for(i=0;i<s.length;i++)
{var c=s.charAt(i);if(!(isLetter(c)||isDigit(c)))
return false;}
return true;}
function reformat(s)
{var arg;var sPos=0;var resultString="";for(var i=1;i<reformat.arguments.length;i++){arg=reformat.arguments[i];if(i%2==1)resultString+=arg;else{resultString+=s.substring(sPos,sPos+arg);sPos+=arg;}}
return resultString;}
function isSSN(s)
{if(isEmpty(s))
if(isSSN.arguments.length==1)return defaultEmptyOK;else return(isSSN.arguments[1]==true);return(isInteger(s)&&s.length==digitsInSocialSecurityNumber)}
function isUSPhoneNumber(s)
{if(isEmpty(s))
if(isUSPhoneNumber.arguments.length==1)return defaultEmptyOK;else return(isUSPhoneNumber.arguments[1]==true);return(isInteger(s)&&s.length==digitsInUSPhoneNumber)}
function isInternationalPhoneNumber(s)
{if(isEmpty(s))
if(isInternationalPhoneNumber.arguments.length==1)return defaultEmptyOK;else return(isInternationalPhoneNumber.arguments[1]==true);return(isPositiveInteger(s))}
function isZIPCode(s)
{if(isEmpty(s))
if(isZIPCode.arguments.length==1)return defaultEmptyOK;else return(isZIPCode.arguments[1]==true);return(isInteger(s)&&((s.length==digitsInZIPCode1)||(s.length==digitsInZIPCode2)))}
function isStateCode(s)
{if(isEmpty(s))
if(isStateCode.arguments.length==1)return defaultEmptyOK;else return(isStateCode.arguments[1]==true);return((USStateCodes.indexOf(s)!=-1)&&(s.indexOf(USStateCodeDelimiter)==-1))}
function isEmail(s)
{if(isEmpty(s)){if(isEmail.arguments.length==1){return defaultEmptyOK;}
else{return(isEmail.arguments[1]==true);}}
if(isWhitespace(s)){return false;}
if(s.indexOf("@")!=s.lastIndexOf("@")){return false;}
var i=1;var sLength=s.length;while((i<sLength)&&(s.charAt(i)!="@"))
{i++}
if((i>=sLength)||(s.charAt(i)!="@"))return false;else i+=2;while((i<sLength)&&(s.charAt(i)!="."))
{i++}
if((i>=sLength-1)||(s.charAt(i)!="."))return false;else return true;}
function isYear(s)
{if(isEmpty(s))
if(isYear.arguments.length==1)return defaultEmptyOK;else return(isYear.arguments[1]==true);if(!isNonnegativeInteger(s))return false;return((s.length==2)||(s.length==4));}
function isIntegerInRange(s,a,b)
{if(isEmpty(s))
if(isIntegerInRange.arguments.length==1)return defaultEmptyOK;else return(isIntegerInRange.arguments[1]==true);if(!isInteger(s,false))return false;var num=bmParseInt(s,10);return((num>=a)&&(num<=b));}
function isMonth(s)
{if(isEmpty(s))
if(isMonth.arguments.length==1)return defaultEmptyOK;else return(isMonth.arguments[1]==true);return isIntegerInRange(s,1,12);}
function isDay(s)
{if(isEmpty(s))
if(isDay.arguments.length==1)return defaultEmptyOK;else return(isDay.arguments[1]==true);return isIntegerInRange(s,1,31);}
function daysInFebruary(year)
{return(((year%4==0)&&((!(year%100==0))||(year%400==0)))?29:28);}
function isDate(year,month,day)
{if(!(isYear(year,false)&&isMonth(month,false)&&isDay(day,false)))return false;var intYear=bmParseInt(year,10);var intMonth=bmParseInt(month,10);var intDay=bmParseInt(day,10);if(intDay>daysInMonth[intMonth])return false;if((intMonth==2)&&(intDay>daysInFebruary(intYear)))return false;return true;}
function prompt(s)
{window.status=s}
function promptEntry(s)
{window.status=pEntryPrompt+s}
function warnEmpty(theField,s)
{theField.focus()
alert(mPrefix+s+mSuffix)
return false}
function warnInvalid(theField,s)
{theField.focus();theField.select()
alert(s)
return false}
function checkString(theField,s,emptyOK)
{if(checkString.arguments.length==2)emptyOK=defaultEmptyOK;if((emptyOK==true)&&(isEmpty(theField.value)))return true;if(isWhitespace(theField.value))
return warnEmpty(theField,s);else return true;}
function validateString(theField,s,emptyOK)
{if((emptyOK==true)&&(isEmpty(theField.value)))
return"";if(isWhitespace(theField.value))
return mPrefix+s+mSuffix;else
return"";}
function checkStateCode(theField,emptyOK)
{if(checkStateCode.arguments.length==1)emptyOK=defaultEmptyOK;if((emptyOK==true)&&(isEmpty(theField.value)))return true;else
{theField.value=theField.value.toUpperCase();if(!isStateCode(theField.value,false))
return warnInvalid(theField,iStateCode);else return true;}}
function reformatZIPCode(ZIPString)
{if(ZIPString.length==5)return ZIPString;else return(reformat(ZIPString,"",5,"-",4));}
function checkZIPCode(theField,emptyOK)
{if(checkZIPCode.arguments.length==1)emptyOK=defaultEmptyOK;if((emptyOK==true)&&(isEmpty(theField.value)))return true;else
{var normalizedZIP=stripCharsInBag(theField.value,ZIPCodeDelimiters)
if(!isZIPCode(normalizedZIP,false))
return warnInvalid(theField,iZIPCode);else
{theField.value=reformatZIPCode(normalizedZIP)
return true;}}}
function reformatUSPhone(USPhone)
{return(reformat(USPhone,"(",3,") ",3,"-",4))}
function checkUSPhone(theField,emptyOK)
{if(checkUSPhone.arguments.length==1)emptyOK=defaultEmptyOK;if((emptyOK==true)&&(isEmpty(theField.value)))return true;else
{var normalizedPhone=stripCharsInBag(theField.value,phoneNumberDelimiters)
if(!isUSPhoneNumber(normalizedPhone,false))
return warnInvalid(theField,iUSPhone);else
{theField.value=reformatUSPhone(normalizedPhone)
return true;}}}
function checkInternationalPhone(theField,emptyOK)
{if(checkInternationalPhone.arguments.length==1)emptyOK=defaultEmptyOK;if((emptyOK==true)&&(isEmpty(theField.value)))return true;else
{if(!isInternationalPhoneNumber(theField.value,false))
return warnInvalid(theField,iWorldPhone);else return true;}}
function checkEmail(theField,emptyOK)
{if(checkEmail.arguments.length==1)emptyOK=defaultEmptyOK;if((emptyOK==true)&&(isEmpty(theField.value)))return true;else if(!isEmail(theField.value,false))
return warnInvalid(theField,iEmail);else return true;}
function validateEmail(theField,name,emptyOK)
{if((emptyOK==true)&&(isEmpty(theField.value)))
return null;else if(!isEmail(theField.value,false))
return name+iEmail;else
return null;}
function reformatSSN(SSN)
{return(reformat(SSN,"",3,"-",2,"-",4))}
function checkSSN(theField,emptyOK)
{if(checkSSN.arguments.length==1)emptyOK=defaultEmptyOK;if((emptyOK==true)&&(isEmpty(theField.value)))return true;else
{var normalizedSSN=stripCharsInBag(theField.value,SSNDelimiters)
if(!isSSN(normalizedSSN,false))
return warnInvalid(theField,iSSN);else
{theField.value=reformatSSN(normalizedSSN)
return true;}}}
function checkYear(theField,emptyOK)
{if(checkYear.arguments.length==1)emptyOK=defaultEmptyOK;if((emptyOK==true)&&(isEmpty(theField.value)))return true;if(!isYear(theField.value,false))
return warnInvalid(theField,iYear);else return true;}
function checkMonth(theField,emptyOK)
{if(checkMonth.arguments.length==1)emptyOK=defaultEmptyOK;if((emptyOK==true)&&(isEmpty(theField.value)))return true;if(!isMonth(theField.value,false))
return warnInvalid(theField,iMonth);else return true;}
function checkDay(theField,emptyOK)
{if(checkDay.arguments.length==1)emptyOK=defaultEmptyOK;if((emptyOK==true)&&(isEmpty(theField.value)))return true;if(!isDay(theField.value,false))
return warnInvalid(theField,iDay);else return true;}
function checkDate(yearField,monthField,dayField,labelString,OKtoOmitDay)
{if(checkDate.arguments.length==4)OKtoOmitDay=false;if(!isYear(yearField.value))return warnInvalid(yearField,iYear);if(!isMonth(monthField.value))return warnInvalid(monthField,iMonth);if((OKtoOmitDay==true)&&isEmpty(dayField.value))return true;else if(!isDay(dayField.value))
return warnInvalid(dayField,iDay);if(isDate(yearField.value,monthField.value,dayField.value))
return true;alert(iDatePrefix+labelString+iDateSuffix)
return false}
function getRadioButtonValue(radio)
{for(var i=0;i<radio.length;i++)
{if(radio[i].checked){break}}
return radio[i].value}
function checkCreditCard(radio,theField)
{var cardType=getRadioButtonValue(radio)
var normalizedCCN=stripCharsInBag(theField.value,creditCardDelimiters)
if(!isCardMatch(cardType,normalizedCCN))
return warnInvalid(theField,iCreditCardPrefix+cardType+iCreditCardSuffix);else
{theField.value=normalizedCCN
return true}}
function isCreditCard(st){if(st.length>19)
return(false);sum=0;mul=1;l=st.length;for(i=0;i<l;i++){digit=st.substring(l-i-1,l-i);tproduct=bmParseInt(digit,10)*mul;if(tproduct>10||tproduct==10)
sum+=(tproduct%10)+1;else
sum+=tproduct;if(mul==1)
mul++;else
mul--;}
if((sum%10)==0)
return(true);else
return(false);}
function isVisa(cc)
{if(((cc.length==16)||(cc.length==13))&&(cc.substring(0,1)=="4"))
return isCreditCard(cc);return false;}
function isMasterCard(cc)
{firstdig=cc.substring(0,1);seconddig=cc.substring(1,2);if((cc.length==16)&&(firstdig=="5")&&((seconddig>=1)&&(seconddig<=5)))
return isCreditCard(cc);return false;}
function isAmericanExpress(cc)
{firstdig=cc.substring(0,1);seconddig=cc.substring(1,2);if((cc.length==15)&&(firstdig=="3")&&((seconddig=="4")||(seconddig=="7")))
return isCreditCard(cc);return false;}
function isDinersClub(cc)
{firstdig=cc.substring(0,1);seconddig=cc.substring(1,2);if((cc.length==14)&&(firstdig=="3")&&((seconddig=="0")||(seconddig=="6")||(seconddig=="8")))
return isCreditCard(cc);return false;}
function isCarteBlanche(cc)
{return isDinersClub(cc);}
function isDiscover(cc)
{first4digs=cc.substring(0,4);if((cc.length==16)&&(first4digs=="6011"))
return isCreditCard(cc);return false;}
function isEnRoute(cc)
{first4digs=cc.substring(0,4);if((cc.length==15)&&((first4digs=="2014")||(first4digs=="2149")))
return isCreditCard(cc);return false;}
function isJCB(cc)
{first4digs=cc.substring(0,4);if((cc.length==16)&&((first4digs=="3088")||(first4digs=="3096")||(first4digs=="3112")||(first4digs=="3158")||(first4digs=="3337")||(first4digs=="3528")))
return isCreditCard(cc);return false;}
function isAnyCard(cc)
{if(!isCreditCard(cc))
return false;if(!isMasterCard(cc)&&!isVisa(cc)&&!isAmericanExpress(cc)&&!isDinersClub(cc)&&!isDiscover(cc)&&!isEnRoute(cc)&&!isJCB(cc)){return false;}
return true;}
function isCardMatch(cardType,cardNumber)
{cardType=cardType.toUpperCase();var doesMatch=true;if((cardType=="VISA")&&(!isVisa(cardNumber)))
doesMatch=false;if((cardType=="MASTERCARD")&&(!isMasterCard(cardNumber)))
doesMatch=false;if(((cardType=="AMERICANEXPRESS")||(cardType=="AMEX"))&&(!isAmericanExpress(cardNumber)))doesMatch=false;if((cardType=="DISCOVER")&&(!isDiscover(cardNumber)))
doesMatch=false;if((cardType=="JCB")&&(!isJCB(cardNumber)))
doesMatch=false;if((cardType=="DINERS")&&(!isDinersClub(cardNumber)))
doesMatch=false;if((cardType=="CARTEBLANCHE")&&(!isCarteBlanche(cardNumber)))
doesMatch=false;if((cardType=="ENROUTE")&&(!isEnRoute(cardNumber)))
doesMatch=false;return doesMatch;}
function IsCC(st){return isCreditCard(st);}
function IsVisa(cc){return isVisa(cc);}
function IsVISA(cc){return isVisa(cc);}
function IsMasterCard(cc){return isMasterCard(cc);}
function IsMastercard(cc){return isMasterCard(cc);}
function IsMC(cc){return isMasterCard(cc);}
function IsAmericanExpress(cc){return isAmericanExpress(cc);}
function IsAmEx(cc){return isAmericanExpress(cc);}
function IsDinersClub(cc){return isDinersClub(cc);}
function IsDC(cc){return isDinersClub(cc);}
function IsDiners(cc){return isDinersClub(cc);}
function IsCarteBlanche(cc){return isCarteBlanche(cc);}
function IsCB(cc){return isCarteBlanche(cc);}
function IsDiscover(cc){return isDiscover(cc);}
function IsEnRoute(cc){return isEnRoute(cc);}
function IsenRoute(cc){return isEnRoute(cc);}
function IsJCB(cc){return isJCB(cc);}
function IsAnyCard(cc){return isAnyCard(cc);}
function IsCardMatch(cardType,cardNumber){return isCardMatch(cardType,cardNumber);}
function bmButtonClick(elem,urlTarget,openWin){var bmButton=new BmButton(elem,urlTarget,openWin);bmButton.handleClick();}
function bmButtonMouseOver(elem,urlTarget){var bmButton=new BmButton(elem,urlTarget);bmButton.handleMouseOver();}
function bmButtonMouseDown(elem,urlTarget){var bmButton=new BmButton(elem,urlTarget);bmButton.handleMouseDown();}
function bmButtonMouseUp(elem,urlTarget){var bmButton=new BmButton(elem,urlTarget);bmButton.handleMouseUp();}
function bmButtonMouseOut(elem,urlTarget){var bmButton=new BmButton(elem,urlTarget);bmButton.handleMouseOut();}
function bmCancelBubble(e){if(window.event){window.event.cancelBubble=true;window.event.returnValue=false;}
if(e&&e.stopPropagation&&e.preventDefault){e.stopPropagation();e.preventDefault();}}
function BmButton(_tableElem,_urlTarget,_openWin){this.buttonElem=_tableElem;this.isOpenWin=_openWin;this.urlTarget=_urlTarget;this.getAhrefElem=_bmGetAhrefElem;this.handleClick=_bmButtonHandleClick;this.handleMouseOver=_bmButtonHandleMouseOver;this.handleMouseDown=_bmButtonHandleMouseDown;this.handleMouseOut=_bmButtonHandleMouseOut;this.handleMouseUp=_bmButtonHandleMouseUp;}
function _bmButtonHandleClick(){if(this.buttonElem==null||this.urlTarget==null||this.urlTarget.length<=0){return null;}
var btnHref=this.urlTarget;if(!this.isOpenWin){window.location=btnHref;}else{var btnOpenWin=window.open(btnHref);}}
function _bmButtonHandleMouseOver(){if(this.buttonElem==null){return null;}
window.status=this.urlTarget;this.buttonElem.style.cursor="pointer";}
function _bmButtonHandleMouseDown(){if(this.buttonElem==null){return null;}
window.status=this.urlTarget;var ahrefElem=this.getAhrefElem();var divElem=ahrefElem.parentNode;divElem.style.marginLeft="1px";divElem.style.marginRight="-1px";divElem.style.marginTop="2px";}
function _bmButtonHandleMouseUp(){if(this.buttonElem==null){return null;}
var ahrefElem=this.getAhrefElem();var divElem=ahrefElem.parentNode;divElem.style.marginLeft="0px";divElem.style.marginRight="0px";divElem.style.marginTop="0px";window.status="";}
function _bmButtonHandleMouseOut(){if(this.buttonElem==null){return null;}
var ahrefElem=this.getAhrefElem();var divElem=ahrefElem.parentNode;divElem.style.marginLeft="0px";divElem.style.marginRight="0px";divElem.style.marginTop="0px";window.status="";}
function _bmGetAhrefElem(){if(this.buttonElem==null){return null;}
var ahrefElem=this.buttonElem.getElementsByTagName('a')[0];return ahrefElem;}
function viewShoppingCart(processId,processName){setTimeout(function(){hideShoppingCart(processId);if(typeof(showShoppingCart)=='undefined'){var h=Math.max(document.body.scrollHeight,document.body.clientHeight);var w=Math.max(document.body.scrollWidth,document.body.clientWidth);var mask=document.createElement('div');mask.id="shopping-cart-mask";mask.style.top=0;mask.style.left=0;mask.style.backgroundColor='#000';mask.style.position='absolute';mask.style.filter='alpha(opacity=10)';mask.style.opacity=0.1;mask.style.width=w+'px';mask.style.height=h+'px';mask.style.zIndex=999;document.body.appendChild(mask);var baseCartData=document.createElement('script');baseCartData.src='/shoppingcart/include_shopping_cart.jsp';baseCartData.type='text/javascript';document.body.appendChild(baseCartData);function startShoppingCartGwt(){var script=document.createElement('script');script.id='__gwt_marker_ShoppingCart';script.src='/gwt/ShoppingCart/ShoppingCart.nocache.js';script.type='text/javascript';document.body.appendChild(script);window.shoppingCartReady=function(){showShoppingCart(processId,processName);};baseCartData.onreadystatechange=null;baseCartData.onload=null;}
baseCartData.onreadystatechange=function(){if(baseCartData.readyState=='loaded'||baseCartData.readyState=='complete'){startShoppingCartGwt();}}
baseCartData.onload=startShoppingCartGwt;function includeCss(url){var sheets=document.styleSheets;var head=document.getElementsByTagName('head')[0];var found=false;for(var i=0;i<sheets.length;i++){if(sheets[i].href&&sheets[i].href.indexOf(url)!=-1){found=true;break;}}
if(!found){var css=document.createElement('link');css.href=url;css.type='text/css';css.rel='stylesheet';head.appendChild(css);}}
includeCss('/gwt/gxt/css/gxt-all.css');includeCss('/bmfsweb/'+_BM_HOST_COMPANY+'/'+_BM_HOST_COMPANY+'_gxt.css');}else{showShoppingCart(processId,processName);}},0);function hideShoppingCart(processId){return;alert("todo: remove the script?");var iframe=document.getElementById('shopping-cart-iframe-'+processId);if(iframe){document.body.removeChild(iframe);}}}
function bmMouseOverStyle(obj,defaultClassName){var targetClassName=(!defaultClassName)?"form-input":defaultClassName;if(typeof(Prototype)!='undefined'){$(obj).removeClassName(targetClassName);$(obj).addClassName(targetClassName+'-mouseover');}
else{obj.className=targetClassName+"-mouseover";}}
function bmMouseOutStyle(obj,defaultClassName){var targetClassName=(!defaultClassName)?"form-input":defaultClassName;var newValue=obj.getAttribute('newValue');var oldValue=obj.getAttribute('oldValue');if(!(areBothEqual(newValue,oldValue))){targetClassName=targetClassName+"-modified";}else{targetClassName=targetClassName+(oldValue=='true'?"-selected":"");}
if(typeof(Prototype)!='undefined'){$(obj).removeClassName(targetClassName+'-mouseover');$(obj).addClassName(targetClassName);}
else{obj.className=targetClassName;}}
function bmChangeStyle(obj){obj.parentNode.setAttribute('newValue',obj.checked?'true':'false');bmMouseOutStyle(obj.parentNode);}
if(/webkit.*mobile/i.test(navigator.userAgent)&&"getBoundingClientRect"in document.documentElement){(function($){$.fn.offsetOld=$.fn.offset;$.fn.offset=function(){var result=this.offsetOld();result.top-=window.scrollY;result.left-=window.scrollX;return result;};})(jQuery);}
(function($){var I18N=Bm.I18n.Popup;Bm.Popup=$.bmPopup=function(options){var opts=$.extend({},Bm.Popup.defaults,options);var popup=$('#'+opts.id);if(popup.size()==0){popup=createPopup(opts);}
popup.bind('bmPopup.show',opts.showPopup);popup.bind('bmPopup.hide',opts.hidePopup);popup.trigger('bmPopup.show',opts.position);return popup;};Bm.Popup.alert=function(text,onConfirm,shim){var okBtn=$.extend({},Bm.Popup.buttons.ok);if(typeof(onConfirm)=="function"){okBtn.action=function(){onConfirm()&&popup.trigger('bmPopup.hide');};}
text=$("<div />").text(text).html();text=text.replace(/\n/g,"<br>");var popup=Bm.Popup({modal:true,title:I18N.Alert,content:text,addShim:shim?shim:false,buttons:[okBtn],hidePopup:function(){popup.remove();hideOverlay();$(".iframe-shim").remove();}});};Bm.Popup.confirm=function(text,onConfirm){var okBtn=$.extend({},Bm.Popup.buttons.ok);if(typeof(onConfirm)=="function"){okBtn.action=function(){onConfirm()&&popup.trigger('bmPopup.hide');};}
var popup=Bm.Popup({modal:true,title:I18N.Alert,content:text,buttons:[okBtn,Bm.Popup.buttons.cancel],hidePopup:function(){popup.remove();hideOverlay();}});};Bm.Popup.buttons={ok:{styleName:'ok-button',label:I18N.Ok},cancel:{styleName:'cancel-button',label:I18N.Cancel}};Bm.Popup.buttonSets={okCancel:[Bm.Popup.buttons.ok,Bm.Popup.buttons.cancel]};Bm.Popup.defaults={modal:true,id:'bm-popup',width:400,title:"Popup",buttons:Bm.Popup.buttonSets.okCancel,content:"Content goes here",contentSelector:null,showPopup:showPopup,hidePopup:hidePopup,draggable:false,closable:false,maxHeight:null};function hidePopup(event){$(this).hide();hideOverlay();$(".iframe-shim").remove();};var hasFixedSupport=null
function supportsFixed(){if(hasFixedSupport===null){var el=$('<div style="position:fixed;top:10px"></div>');var wrap=$('<div style="position:absolute;top:20px"></div>');el.appendTo(wrap);wrap.appendTo($('body'));hasFixedSupport=(el.offset().top==10);wrap.remove();}
return hasFixedSupport;}
function watchResize(){var h=Math.max(document.body.scrollHeight,document.body.clientHeight);var w=Math.max(document.body.scrollWidth,document.body.clientWidth);$('#overlay').css({'height':h+'px','width':w+'px'});}
function showOverlay(){if($('#overlay').length!=1){$('<div id="overlay"></div>').appendTo($('body'));}else{$('#overlay').show();}
if(!supportsFixed()){$(window).resize(watchResize);watchResize();$('#overlay').css('position','absolute');}}
function hideOverlay(){$(window).unbind('resize',watchResize);$('#overlay').hide();}
function showPopup(event,position){$(this).show();if($(this).is('.modal')){showOverlay();}
if(position){$(this).css({'position':'absolute','margin-left':0,'top':position.top,'left':position.left});}else if($(window).height()-100<$(this).height()){$(this).css({'position':'absolute','top':($(window).scrollTop()+50)+'px'});}else if(!supportsFixed()){}
if($(this).is('.shim')){var iframe=$("<iframe src='javascript:false;' class='iframe-shim'></iframe>").appendTo($("body"));iframe.css({"position":$(this).css("position"),"width":($(this).width()-4)+"px","height":($(this).height()-4)+"px","top":$(this).css("top"),"left":$(this).css("left"),"margin-left":$(this).css("margin-left")});}};function createPopup(opts){var popup=$(["<div id='",opts.id,"' class='popup ",opts.modal?"modal":"",opts.addShim?" shim":"","' style='width: ",opts.width,"px; margin-left: -",opts.width/2,"px'>","<div class='popup-header'>",opts.iconClass?"<img class='"+opts.iconClass+"' src='/img/blank.gif' alt=''>":"","<span class='popup-title'>",opts.title,"</span>",opts.closable?"<div class='popup-close'></div>":"","</div>","<div class='popup-content'",opts.maxHeight?" style='max-height:"+opts.maxHeight+"px'":"","></div>","<div class='popup-footer'></div>","</div>"].join(""));var content=opts.contentSelector?$(opts.contentSelector).show():opts.content;popup.find('.popup-content').append(content);if(opts.buttons==null||opts.buttons.length==0){popup.find('.popup-footer').css('padding','0');}else{$.each(opts.buttons,function(){var button=createButton(this);popup.find('.popup-footer').append(button);});}
if(opts.draggable){popup.find('.popup-header').mousedown(function(e){$(e.target).attr('unselectable','on');e.preventDefault();if($(e.target).is('.popup-close')){return;}
var offset=$(this).parent().offset();var x=e.pageX-offset.left,y=e.pageY-offset.top;var mousemove=function(e){popup.css({'top':e.pageY-y,'left':e.pageX-x});};$(document).one('mouseup',function(){$(document).unbind('mousemove',mousemove);});$(document).bind('mousemove',mousemove);});}
if(opts.closable){popup.find('.popup-close').click(function(e){popup.trigger('bmPopup.hide',e);});}
return popup.appendTo($('body'));};function createButton(buttonOpts){var button;if(buttonOpts.html){button=$(buttonOpts.html);}else if(buttonOpts.selector){button=$(buttonOpts.selector).show();}else{button=$(["<table cellspacing='0' cellpadding='0' class='bm-button ",buttonOpts.styleName,"'><tr><td class='button-left'></td><td class='button-middle'><img class='",buttonOpts.styleName,"-icon' src='/img/blank.gif' alt=''><a href='#' class='button-text'>",buttonOpts.label,"</a></td><td class='button-right'></td></tr></table>"].join(""));}
button.click(buttonOpts.action||function(){$(this).closest('.popup').trigger('bmPopup.hide');return false;});return button;};})(jQuery);
(function($){var $stripParent;var resizeHandler=null,scrollHandler=null;Bm.StickyActions=function(){$stripParent=$('#sticky-actions');resizeHandler&&$(window).unbind('resize',resizeHandler);scrollHandler&&$(window).unbind('scroll',scrollHandler);if($stripParent[0]){var $strip=$stripParent.contents();var stripHeight=$strip[0].offsetHeight;var stickyTop=$stripParent.offset().top;$stripParent.css('height',stripHeight);$(window).resize(resizeHandler=function(){stripHeight=$strip[0].offsetHeight;stickyTop=$stripParent.offset().top;$stripParent.css('height',stripHeight);});var wasFloating=null;scrollHandler=function(){var pageTop=$(window).scrollTop();var floating=(stickyTop-pageTop<0);if(floating!=wasFloating){$strip.toggleClass('floating',floating);$strip.toggleClass('fixed',!floating);wasFloating=floating;}};$(window).scroll(scrollHandler);scrollHandler();}};})(jQuery);
(function($){var queue=[];var lastParent=null;var uploading=false;var formAction;function checkQueue(){if(!uploading&&queue.length>0){startUpload.apply(queue[0]);}}
function startUpload(){uploading=true;lastParent=this.parentNode;lastParent.style.border='';var form=ensureForm.apply(this);form.empty();lastParent=this.parentNode;form.append(this);form.submit();}
function ensureForm(){var form=$('#upload-form');if(form.size()==0){form=$('<form id="upload-form" method="POST" enctype="multipart/form-data"></form>');form.attr('target','upload-iframe');form.attr('action',formAction);form.css('display','none');form.appendTo('body');}
var iframe=$('#upload-iframe');if(iframe.size()==0){iframe=$('<iframe id="upload-iframe" name="upload-iframe" src="javascript:\'\'"></iframe>');iframe.css('display','none');iframe.appendTo('body');form.submit(function(){iframe.attr('__formAction',form.attr('action'));});iframe.load(function(){if(iframe.attr('__formAction')){afterUpload();}});}
return form;}
function afterUpload(){setTimeout(function(){var reply=$('#upload-iframe')[0].contentWindow.document.body.innerHTML;var last=queue.shift();uploading=false;if(reply.indexOf('OK')==0){var id=last.id.substring(6);$('input[name='+id+']').val(reply.substring(2));$('#_name_'+id).text(last.value.replace(/.*[\\\/]/g,""));$('#_delete_'+id).remove();}else{alert(reply.substring(2));}
$('#upload-form')[0].reset();lastParent.appendChild(last);checkQueue();},0);}
$['initAsyncUpload']=function(uploadServletLocation,fieldSelector){formAction=uploadServletLocation;$(function(){$(fieldSelector||'input[type=file].upload-field').change(function(){queue.push(this);checkQueue();});});}})(jQuery);
(function(){var I18N=Bm.I18n.SessionTimeout;var Util={addEvent:function(obj,type,fn){obj.attachEvent?obj.attachEvent('on'+type,fn):obj.addEventListener(type,fn,false);},getCookie:function(name){if(document.cookie&&document.cookie!=''){var cookies=document.cookie.split(';');for(var i=0;i<cookies.length;i++){var cookie=(cookies[i]||"").replace(/^\s+|\s+$/g,"");if(cookie.substring(0,name.length+1)==(name+'=')){return decodeURIComponent(cookie.substring(name.length+1));}}}
return null;}};var POLL_INTERVAL=5000;var WARNING_TIME=120;var pollTimer;var countDownTimer;var popupId='session-timeout-popup';var timeLeftId='session-time-left';var continueButtonId='reset-session';function startPolling(){var pollTimer=setInterval(function(){if(!Util.getCookie('session_timeout')){showContinuePrompt();startCountDown();}},POLL_INTERVAL);}
function stopPrompt(){hideContinuePrompt();stopCountDown();}
function stopCountDown(){clearInterval(countDownTimer);countDownTimer=null;}
function startCountDown(){if(countDownTimer){return;}
var timeLeft=WARNING_TIME;document.getElementById(timeLeftId).innerHTML=timeLeft;countDownTimer=setInterval(function(){timeLeft--;document.getElementById(timeLeftId).innerHTML=timeLeft;if(Util.getCookie('session_timeout')){stopPrompt();}else if(timeLeft==0){logoff();}},1000);}
function showContinuePrompt(){document.getElementById(popupId).style.display='block';}
function hideContinuePrompt(){document.getElementById(popupId).style.display='none';}
function logoff(){clearInterval(pollTimer);stopPrompt();window.location='/logout.jsp?_bm_trail_refresh_=true';}
function sendResetSessionRequest(){var xmlhttp=window.XMLHttpRequest?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP");xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4&&xmlhttp.responseText&&xmlhttp.responseText!=""){window.location="/commerce/display_company_profile.jsp";}};xmlhttp.open("POST","/servlet/AjaxServer",true);xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');xmlhttp.send('ajaxaction=resetSession');}
function resetSession(){sendResetSessionRequest();stopPrompt();}
function loginPage(){return document.loginform&&document.loginform.username&&document.loginform.psword;}
function addPopup(){var continueButton=' <input type="button" value="'+I18N.continueButton+'" id="'+continueButtonId+'"/>';var timeLeftHtml=I18N.timeLeft.replace('%1','&nbsp;<b><span id="'+timeLeftId+'"></span></b>&nbsp;');var popupDiv=document.createElement('div');popupDiv.id=popupId;popupDiv.innerHTML=I18N.expireMessage+timeLeftHtml+continueButton;popupDiv.style.display='none';document.body.appendChild(popupDiv);}
function initialize(){if(loginPage()||!Util.getCookie('session_timeout')){return;}
addPopup();Util.addEvent(document.getElementById(continueButtonId),'click',resetSession);startPolling();}
Util.addEvent(window,'load',initialize);var popupStyle='position:fixed;top:0;left:0;width:100%;z-index:9999;background-color:#FF0;border:1px solid #AA0;';var popupStyleIEHack='_position:absolute;_top:expression(eval(document.body.scrollTop));';document.write('<style>#'+popupId+'{'+popupStyle+popupStyleIEHack+'}</style>');})();
if(navigator.appName=="Netscape"){window.captureEvents(Event.KEYPRESS);}
var isIE=((navigator.appName.indexOf('Microsoft')!=-1)&&!window.opera);var _displayRow=(isIE?"block":"table-row");var _displayTable=(isIE?"block":"table");var bmUnitedStates="United States"
var bmCanada="Canada"
var bmErrorString="";var onloadFunction;var onloadField;var findOnloadField=false;var win;function MM_swapImgRestore(){var i,x,a=document.MM_sr;for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++)x.src=x.oSrc;}
function MM_findObj(n,d){var p,i,x;if(!d)d=document;if((p=n.indexOf("?"))>0&&parent.frames.length){d=parent.frames[n.substring(p+1)].document;n=n.substring(0,p);}
if(!(x=d[n])&&d.all)x=d.all[n];for(i=0;!x&&i<d.forms.length;i++)x=d.forms[i][n];for(i=0;!x&&d.layers&&i<d.layers.length;i++)x=MM_findObj(n,d.layers[i].document);return x;}
function MM_swapImage(){var i,j=0,x,a=MM_swapImage.arguments;document.MM_sr=new Array;for(i=0;i<a.length-2;i+=3)
if((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x;if(!x.oSrc)x.oSrc=x.src;x.src=a[i+2];}}
window.onload=initPage;function initPage(){if(onloadFunction){onloadFunction();}
if(onloadField){onloadField.focus();if(onloadField.value){onloadField.value=onloadField.value;}}else if(findOnloadField){var form=document.forms[0];if(form){for(i=0;i<form.length;i++){if(form.elements[i].type=='text'||form.elements[i].type=='textarea'){form.elements[i].focus();form.elements[i].value=form.elements[i].value;return;}}}}}
function bmGetString(s,vars){if(bmGetString.arguments.length>1&&vars.length>0){for(var i=0;i<vars.length;i++){var regexp="%"+(i+1);s=s.replace(regexp,vars[i]);}}
return s+"\n";}
function bmCheckAll(frm,chkBoxName,bVal){for(var i=0;i<frm.elements.length;i++){var chkBox=frm.elements[i];if(chkBox.name!=chkBoxName){continue;}
chkBox.checked=bVal;}}
function bmCheckAllMultiple(form,checkboxName,clickedBox){bmCheckAll(form,checkboxName,clickedBox.checked);allSelectAllBoxes=form[clickedBox.name];if(allSelectAllBoxes.length){for(var i=0;i<allSelectAllBoxes.length;i++){allSelectAllBoxes[i].checked=clickedBox.checked;}}}
function bmCheckAllForPatternMatch(frm,pattern,bVal){var RegularExpression=new RegExp(pattern);for(var i=0;i<frm.elements.length;i++){var elem=frm.elements[i];if(RegularExpression.test(elem.name)&&!elem.disabled){elem.checked=bVal;}}}
function bmSelectAllCheckboxes(field,isChecked){if(!field){return;}else if(!field.length){field.checked=isChecked;}else{for(i=0;i<field.length;i++){field[i].checked=isChecked;}}}
function bmParseFloat(s,num){s=getStandardNumber(s);return parseFloat(s,num);}
function bmParseInt(s,num){s=getStandardNumber(s);return parseInt(s,num);}
function bmCheckCheckboxes(cbs,label,multipleOK,emptyOK,allOK){if(!cbs){bmErrorString+=bmGetString(bmEmptyStringMsg,new Array(label));return false;}
if(bmCheckCheckboxes.arguments.length<5){allOK=true;}
if(bmCheckCheckboxes.arguments.length<4){emptyOK=defaultEmptyOK;}
if(bmCheckCheckboxes.arguments.length<3){multipleOK=false;}
if(cbs.type=="checkbox"||cbs.type=="radio")
{if(!cbs.length){if(!cbs.checked&&emptyOK!=true)
{bmErrorString+=bmGetString(bmEmptyStringMsg,new Array(label));return false;}
if(cbs.checked&&allOK!=true)
{bmErrorString+=bmGetString(bmBadCheckboxesMsg3,new Array(label));return false;}
else
{return true;}}
if((cbs.length>0)&&(cbs.length<2))
{if(!cbs[0].checked&&emptyOK!=true)
{bmErrorString+=bmGetString(bmEmptyStringMsg,new Array(label));return false;}
if(cbs[0].checked&&allOK!=true)
{bmErrorString+=bmGetString(bmBadCheckboxesMsg3,new Array(label));return false;}
else
{return true;}}}
var len=cbs.length;no_checked=0;for(i=0;i<len;++i){if(cbs[i].checked)
++no_checked;}
if(no_checked==0&&emptyOK!=true){bmErrorString+=bmGetString(bmEmptyStringMsg,new Array(label));return false;}
if(no_checked>1&&multipleOK!=true){bmErrorString+=bmGetString(bmBadCheckboxesMsg2,new Array(label));return false;}
if(no_checked>0&&no_checked==len&&allOK!=true){bmErrorString+=bmGetString(bmBadCheckboxesMsg3,new Array(label));return false;}
return true;}
function bmCheckSelect(select,label,multipleOK,emptyOK,allOK){if(!select){bmErrorString+=bmGetString(bmEmptyStringMsg,new Array(label));return false;}
if(bmCheckSelect.arguments.length<5){allOK=true;}
if(bmCheckSelect.arguments.length<4){emptyOK=defaultEmptyOK;}
if(bmCheckSelect.arguments.length<3){multipleOK=false;}
var len=select.options.length;no_checked=0;for(i=0;i<len;++i){if(select.options[i].selected){++no_checked;}}
if(no_checked==0&&emptyOK!=true){bmErrorString+=bmGetString(bmEmptyStringMsg,new Array(label));return false;}
if(no_checked>1&&multipleOK!=true){bmErrorString+=bmGetString(bmBadSelectMsg2,new Array(label));return false;}
if(no_checked>0&&no_checked==len&&allOK!=true){bmErrorString+=bmGetString(bmBadSelectMsg3,new Array(label));return false;}
return true;}
function bmCheckDateValue(date,label,emptyOK,setErrorMsg)
{if(bmCheckDateValue.arguments.length<3)
emptyOK=defaultEmptyOK;if(bmCheckDateValue.arguments.length<4)
setErrorMsg=true;if(date.length>5){var sa=date.split("/");if(sa.length!=3){if(setErrorMsg){bmErrorString+=bmGetString(bmBadDateFormatMsg1,new Array(label));}
return false;}
if(!isDate(sa[2],sa[0],sa[1])){if(setErrorMsg){bmErrorString+=bmGetString(bmBadDateFormatMsg1,new Array(label));}
return false;}
if(sa[2].length!=4){if(setErrorMsg){bmErrorString+=bmGetString(bmBadDateFormatMsg1,new Array(label));}
return false;}
return true;}
if(setErrorMsg){if(!(emptyOK&&date.length==0))
bmErrorString+=bmGetString(bmBadDateFormatMsg1,new Array(label));}
return false;}
function bmCheckGeneralDate(dateField,label,emptyOK,setErrorMsg)
{if(bmCheckGeneralDate.arguments.length<3)
emptyOK=defaultEmptyOK;if(bmCheckGeneralDate.arguments.length<4)
setErrorMsg=true;if(dateField.value.length>5){var sa=dateField.value.split("/");if(sa.length!=3){if(setErrorMsg){bmErrorString+=bmGetString(bmBadDateFormatMsg1,new Array(label));}
return false;}
if(!isDate(sa[2],sa[0],sa[1])){if(setErrorMsg){bmErrorString+=bmGetString(bmBadDateFormatMsg1,new Array(label));}
return false;}
if(sa[2].length!=4){if(setErrorMsg){bmErrorString+=bmGetString(bmBadDateFormatMsg1,new Array(label));}
return false;}
var mm=bmParseInt(sa[0],10);var dd=bmParseInt(sa[1],10);var yy=bmParseInt(sa[2],10);dateField.value=mm+"/"+dd+"/"+yy;return true;}
if(setErrorMsg){if(!(emptyOK&&dateField.value.length==0))
bmErrorString+=bmGetString(bmBadDateFormatMsg1,new Array(label));}
return false;}
function bmCheckDateInRange(dateField,low_date,high_date,label,emptyOK,setErrorMsg)
{if(bmCheckDateInRange.arguments.length<5)
emptyOK=defaultEmptyOK;if(bmCheckDateInRange.arguments.length<6)
setErrorMsg=true;var lowOK=bmCheckDateValue(low_date,bmEarlyDate,false,false);var highOK=bmCheckDateValue(high_date,bmLateDate,false,false);var dateOK=bmCheckGeneralDate(dateField,label,emptyOK,true);if(lowOK&&highOK&&dateOK){var sa1=low_date.split("/");var sa2=high_date.split("/");var saDate=dateField.value.split("/");var mm=bmParseInt(saDate[0],10);var dd=bmParseInt(saDate[1],10);var yy=bmParseInt(saDate[2],10);var e_mm=bmParseInt(sa1[0],10);var e_dd=bmParseInt(sa1[1],10);var e_yy=bmParseInt(sa1[2],10);var l_mm=bmParseInt(sa2[0],10);var l_dd=bmParseInt(sa2[1],10);var l_yy=bmParseInt(sa2[2],10);if(yy<e_yy||yy>l_yy){if(setErrorMsg){bmErrorString+=bmGetString(bmBadBetweenDate,new Array(label,low_date,high_date));}
return false;}
if((yy==e_yy)&&((mm<e_mm)||(mm==e_mm&&dd<e_dd))){if(setErrorMsg){var vars=new Array(3);vars[0]
bmErrorString+=bmGetString(bmBadBetweenDate,new Array(label,low_date,high_date));}
return false;}
if((yy==l_yy)&&((mm>l_mm)||(mm==l_mm&&dd>l_dd))){if(setErrorMsg){bmErrorString+=bmGetString(bmBadBetweenDate,new Array(label,low_date,high_date));}
return false;}}
return false;}
function bmCheckDate(dateField,label,emptyOK,setErrorMsg)
{if(bmCheckDate.arguments.length<3)
emptyOK=defaultEmptyOK;if(bmCheckDate.arguments.length<4)
setErrorMsg=true;if(dateField.value.length>5){var sa=dateField.value.split("/");if(sa.length!=3){if(setErrorMsg){bmErrorString+=bmGetString(bmBadDateFormatMsg1,new Array(label));}
return false;}
if(!isDate(sa[2],sa[0],sa[1])){if(setErrorMsg){bmErrorString+=bmGetString(bmBadDateFormatMsg1,new Array(label));}
return false;}
if(sa[2].length!=4){if(setErrorMsg){bmErrorString+=bmGetString(bmBadDateFormatMsg1,new Array(label));}
return false;}
var mm=bmParseInt(sa[0],10);var dd=bmParseInt(sa[1],10);var yy=bmParseInt(sa[2],10);var today=new Date();var today_mm=today.getMonth()+1;var today_dd=today.getDate();var today_yy=today.getYear();if(navigator.appName=="Netscape")
today_yy=today_yy+1900;if(yy<today_yy){if(setErrorMsg){bmErrorString+=bmGetString(bmBadDateFormatMsg2,new Array(label));}
return false;}
if((yy==today_yy)&&((mm<today_mm)||(mm==today_mm&&dd<today_dd)))
{if(setErrorMsg){bmErrorString+=bmGetString(bmBadDateFormatMsg2,new Array(label));}
return false;}
if(mm<10)
mm="0"+mm;if(dd<10)
dd="0"+dd;dateField.value=mm+"/"+dd+"/"+yy;return true;}
if(setErrorMsg){if(!(emptyOK&&dateField.value.length==0))
bmErrorString+=bmGetString(bmBadDateFormatMsg1,new Array(label));}
return false;}
function bmCheckCreditCardDate(dateField,label,emptyOK,setErrorMsg)
{if(bmCheckCreditCardDate.arguments.length<3)
emptyOK=defaultEmptyOK;if(bmCheckCreditCardDate.arguments.length<4)
setErrorMsg=true;if(dateField.value.length>5){var sa=dateField.value.split("/");if(sa.length!=2){if(setErrorMsg){bmErrorString+=bmGetString(bmBadCreditCardDateFormatMsg1,new Array(label));}
return false;}
if(!isDate(sa[1],sa[0],1)){if(setErrorMsg){bmErrorString+=bmGetString(bmBadCreditCardDateFormatMsg1,new Array(label));}
return false;}
if(sa[1].length!=4){if(setErrorMsg){bmErrorString+=bmGetString(bmBadCreditCardDateFormatMsg1,new Array(label));}
return false;}
var mm=bmParseInt(sa[0],10);var yy=bmParseInt(sa[1],10);var today=new Date();var today_mm=today.getMonth()+1;var today_yy=today.getYear();if(navigator.appName=="Netscape")
today_yy=today_yy+1900;if(yy<today_yy){if(setErrorMsg){bmErrorString+=bmGetString(bmBadDateFormatMsg2,new Array(label));}
return false;}
if((yy==today_yy)&&(mm<today_mm))
{if(setErrorMsg){bmErrorString+=bmGetString(bmBadDateFormatMsg2,new Array(label));}
return false;}
if(mm<10)
mm="0"+mm;dateField.value=mm+"/"+yy;return true;}
if(setErrorMsg&&!emptyOK){bmErrorString+=bmGetString(bmBadCreditCardDateFormatMsg1,new Array(label));}
return false;}
function bmCheckMAcAddress(theField,label,emptyOK){var macString=""+theField.value;var matched=/([0-9a-fA-F][0-9a-fA-F]-){5}([0-9a-fA-F][0-9a-fA-F])/.test(macString);if((emptyOK==true)&&(isEmpty(theField.value))){return true;}else if(matched){return true;}else{bmErrorString+="\n";bmErrorString+=bmGetString(bmBadMacAddressMsg,new Array(label));return false;}}
function bmCheckEmail(theField,label,emptyOK)
{if(bmCheckEmail.arguments.length<3)
emptyOK=defaultEmptyOK;if((emptyOK==true)&&(isEmpty(theField.value)))
return true;var commaSep=new Array();var scolonSep=new Array();var validEmail=true;if(theField.value.indexOf(",")>-1){commaSep=theField.value.split(",");for(var i=0;validEmail&&i<commaSep.length;i++){validEmail=isEmail(commaSep[i],false);}}
else if(theField.value.indexOf(";")>-1){scolonSep=theField.value.split(";");for(var i=0;validEmail&&i<scolonSep.length;i++){validEmail=isEmail(scolonSep[i],false);}}
else{validEmail=isEmail(theField.value,false);}
if(!validEmail){bmErrorString+=bmGetString(bmBadEmailMsg,new Array(label));return false;}
return true;bmErrorString+=bmGetString(bmBadEmailMsg,new Array(label));return false;}
function bmCheckId(theField,label,emptyOK)
{var value;if(bmCheckId.arguments.length<3)
emptyOK=defaultEmptyOK;if(theField.type=="select-one")
value=theField.options[theField.selectedIndex].value;else
value=theField.value;if((emptyOK==true)&&(isEmpty(value)))
return true;if(isNonnegativeInteger(value))
return true;bmErrorString+=bmGetString(bmBadIdMsg,new Array(label));return false;}
function bmCheckIntInRange(theField,min,max,label,emptyOK)
{var num;if(bmCheckIntInRange.arguments.length<4)
emptyOK=defaultEmptyOK;if((emptyOK==true)&&(isEmpty(theField.value)))
return true;if(!bmCheckInt(theField,label,emptyOK))
return false;num=bmParseInt(theField.value,10);if(!bmIsNaN(num)){if((num>=bmParseInt(min,10))&&(num<=bmParseInt(max,10)))
return true;}
bmErrorString+=bmGetString(bmBadIntInRangeMsg,new Array(label,min,max));return false;}
function bmCompareFloat(min,label1,max,label2)
{var num_min=bmParseFloat(min,10);var num_max=bmParseFloat(max,10);if(num_min>num_max){bmErrorString+=bmGetString(bmBadCompareFloatMsg,new Array(label1,label2));return false;}else{return true;}}
function bmCompareInt(min,label1,max,label2)
{var num_min=bmParseInt(min,10);var num_max=bmParseInt(max,10);if(num_min>num_max){bmErrorString+=bmGetString(bmBadCompareIntMsg,new Array(label1,label2));return false;}else{return true;}}
function bmCheckFloatInRange(theField,min,max,label,emptyOK)
{var num;if(bmCheckFloatInRange.arguments.length<4)
emptyOK=defaultEmptyOK;theField.value=bmTrim(theField.value);if((emptyOK==true)&&(isEmpty(theField.value)))
return true;if(!bmCheckNumber(theField,label,emptyOK))
return false;num=bmParseFloat(theField.value,10);if(!bmIsNaN(num)){if((num>=bmParseFloat(min,10))&&(num<=bmParseFloat(max,10)))
return true;}
bmErrorString+=bmGetString(bmBadIntInRangeMsg,new Array(label,min,max));return false;}
function bmCheckIntInRangeWithNegative(theField,min,max,label,emptyOK)
{var num;if(bmCheckIntInRangeWithNegative.arguments.length<4)
emptyOK=defaultEmptyOK;if((emptyOK==true)&&(isEmpty(theField.value)))
return true;if(!bmCheckIntWithNegative(theField,label,emptyOK))
return false;num=bmParseInt(theField.value,10);if(!bmIsNaN(num)){if((num>=bmParseInt(min,10))&&(num<=bmParseInt(max,10)))
return true;}
bmErrorString+=bmGetString(bmBadIntInRangeMsg,new Array(label,min,max));return false;}
function bmCheckInt(theField,label,emptyOK)
{var value;if(bmCheckInt.arguments.length<3)
emptyOK=defaultEmptyOK;if(theField.type=="select-one")
value=theField.options[theField.selectedIndex].value;else
value=theField.value;if((emptyOK==true)&&(isEmpty(value)))
return true;if(isInteger(value,emptyOK))
return true;bmErrorString+=bmGetString(bmBadIntMsg1,new Array(label));return false;}
function bmCheckIntWithNegatives(theField,label,emptyOK)
{var value;if(bmCheckIntWithNegatives.arguments.length<3)
emptyOK=defaultEmptyOK;if(theField.type=="select-one")
value=theField.options[theField.selectedIndex].value;else
value=theField.value;if((emptyOK==true)&&(isEmpty(value)))
return true;if(isSignedInteger(value,emptyOK))
return true;bmErrorString+=bmGetString(bmBadIntMsg,new Array(label));return false;}
function bmCheckFloat(theField,label,emptyOK)
{var value;if(bmCheckFloat.arguments.length<3)
emptyOK=defaultEmptyOK;if(theField.type=="select-one")
value=theField.options[theField.selectedIndex].value;else
value=theField.value;if((emptyOK==true)&&(isEmpty(value)))
return true;if(isFloat(value,emptyOK))
return true;bmErrorString+=bmGetString(bmBadFloatMsg,new Array(label));return false;}
function bmCheckIntWithNegative(theField,label,emptyOK)
{var value;if(bmCheckIntWithNegative.arguments.length<3)
emptyOK=defaultEmptyOK;if(theField.type=="select-one")
value=theField.options[theField.selectedIndex].value;else
value=theField.value;var val=bmParseInt(value,10)
if((emptyOK==true)&&(isEmpty(value)))
return true;if(isInteger(Math.abs(val),emptyOK))
return true;bmErrorString+=bmGetString(bmBadIntMsg,new Array(label));return false;}
function bmCheckLogin(theField,label,emptyOK)
{return bmCheckPassword(theField,label,emptyOK);}
function bmCheckMoney(theField,label,emptyOK,negativeOK,setErrMsg,stripChars)
{var norm,i,len;var dp=false;var dp_cnt=0;if(bmCheckMoney.arguments.length<3)
emptyOK=defaultEmptyOK;if(bmCheckMoney.arguments.length<4)
negativeOK=false;if(bmCheckMoney.arguments.length<5)
setErrMsg=true;if(bmCheckMoney.arguments.length<6)
stripChars="$,";if((emptyOK==true)&&(isEmpty(theField.value)))
return true;norm=stripCharsInBag(theField.value,stripChars);if(negativeOK){if(norm.charAt(0)=="-"||norm.charAt(0)=="+")
norm=norm.substring(1,norm.length)}
for(i=0;i<norm.length;++i){c=norm.charAt(i);if(c=="\."){if(dp){if(setErrMsg){bmErrorString+=bmGetString(bmBadMoneyMsg1,new Array(label));}
return false;}
dp=true;continue;}
if(c<"0"||c>"9"){if(setErrMsg){bmErrorString+=bmGetString(bmBadMoneyMsg2,new Array(label));}
return false;}
if(dp)
++dp_cnt;}
if(dp_cnt>2){if(setErrMsg){bmErrorString+=bmGetString(bmBadMoneyMsg3,new Array(label));}
return false;}
if(emptyOK==false){if(isNonnegativeInteger(stripCharsInBag(norm,".")))
return true;}else{if(isNonnegativeInteger(stripCharsInBag(norm,".")))
return true;}
if(setErrMsg){bmErrorString+=bmGetString(bmBadMoneyMsg5,new Array(label));}
return false;}
function bmCheckPassword(theField,label,emptyOK)
{var i,val;if(bmCheckPassword.arguments.length<3)
emptyOK=defaultEmptyOK;if((emptyOK==true)&&(isEmpty(theField.value)))
return true;val=theField.value;if(val.length>2){c=val.charAt(0);if((c>="a"&&c<="z")||(c>="A"&&c<="Z")){for(i=1;i<val.length;++i)
{c=val.charAt(i);if(!((c>="a"&&c<="z")||(c>="A"&&c<="Z")||(c=="_")||(c>="0"&&c<="9")))
{break;}}
if(i>=val.length)
return true;}}
bmErrorString+=bmGetString(bmBadPasswordMsg,new Array(label));return false;}
function bmCheckPosInt(theField,label,emptyOK)
{var value;if(bmCheckPosInt.arguments.length<3)
emptyOK=defaultEmptyOK;if(theField.type=="select-one")
value=theField.options[theField.selectedIndex].value;else
value=theField.value;if((emptyOK==true)&&(isEmpty(value)))
return true;if(isPositiveInteger(value))
return true;bmErrorString+=bmGetString(bmBadPosIntMsg,new Array(label));return false;}
function bmCheckPhone(theField,label,emptyOK)
{var normalized;if(bmCheckPhone.arguments.length<3)
emptyOK=defaultEmptyOK;if((emptyOK==true)&&(isEmpty(theField.value)))
return true;normalized=stripCharsInBag(theField.value,phoneNumberDelimiters+"+");if(isPositiveInteger(normalized)){if(normalized.length==11&&normalized.charAt(0)=="1"){theField.value=reformat(normalized,"",1,"-",3,"-",3,"-",4);return true;}
if(normalized.length>5&&normalized.substring(0,3)=="011"){theField.value=reformat(normalized,"",3,"-",normalized.length-3);return true;}}
bmErrorString+=bmGetString(bmBadPhoneMsg,new Array(label));return false;}
function bmCheckStateProvince(stateProvinceField,countryField,state_province_label,country_label,emptyOK)
{var sp_value,c_value;if(bmCheckStateProvince.arguments.length<5)
emptyOK=defaultEmptyOK;if(stateProvinceField.type=="select-one")
sp_value=stateProvinceField.options[stateProvinceField.selectedIndex].value;else
sp_value=stateProvinceField.value;if((emptyOK==true)&&isEmpty(sp_value))
return true;if(countryField.type=="select-one")
c_value=countryField.options[countryField.selectedIndex].value;else
c_value=countryField.value;if(isEmpty(c_value))
return true;var ind=stateProvinceField.selectedIndex;if(c_value==bmUnitedStates&&sp_value!=""&&stateProvinceField.selectedIndex<66){return true;}
if(c_value==bmCanada&&sp_value!=""&&stateProvinceField.selectedIndex>65){return true;}
bmErrorString+=bmGetString(bmBadStateProvinceMsg,new Array(state_province_label,country_label));return false;}
function bmCheckString(theField,label,emptyOK)
{var value;if(bmCheckString.arguments.length<3)
emptyOK=defaultEmptyOK;if(theField.type=="select-one"||theField.type=="select-multiple"){if(theField.selectedIndex>-1)
value=theField.options[theField.selectedIndex].value;}else
value=theField.value;if((emptyOK==true)&&(isEmpty(value)))
return true;if(!isWhitespace(value))
return true;if(label!=null&&label!="")
bmErrorString+=bmGetString(bmEmptyStringMsg,new Array(label));return false;}
function bmCheckZip(zipField,countryField,zip_label,emptyOK)
{var c_value,normalized;if(bmCheckZip.arguments.length<4)
emptyOK=defaultEmptyOK;if((emptyOK==true)&&(isEmpty(zipField.value)))
return true;if(countryField.type=="select-one")
c_value=countryField.options[countryField.selectedIndex].value;else
c_value=countryField.value;if(c_value!=bmUnitedStates&&c_value!=bmCanada)
return true;normalized=stripCharsInBag(zipField.value," -");if(c_value==bmUnitedStates)
{if(isPositiveInteger(normalized)){if(normalized.length==5){zipField.value=normalized;return true;}
if(normalized.length==9){zipField.value=reformat(normalized,"",5,"-",4);return true;}}
bmErrorString+=bmGetString(bmBadZipMsg,new Array(zip_label));}else if(c_value==bmCanada)
{if(normalized.length==6){var valid=true;for(i=0;i<normalized.length;++i)
{c=normalized.charAt(i);if(!((c>="a"&&c<="z")||(c>="A"&&c<="Z")||(c>="0"&&c<="9")))
{valid=false;break;}}
if(valid==true){zipField.value=reformat(normalized,"",3," ",3);return true;}}
bmErrorString+=bmGetString(bmBadZipMsg1,new Array(zip_label));}
return false;}
function bmCheckAtLeastOne(array){var j;for(j=0;j<array.length;++j){if(!isEmpty(bmTrim(array.elements[j].value)))
return true;}
bmErrorString+=bmGetString(bmAllEmptyMsg);return false;}
function bmCompareDate(dateField1,label1,dateField2,label2,op)
{var date1OK=bmCheckGeneralDate(dateField1,label1,true,false);var date2OK=bmCheckGeneralDate(dateField2,label2,true,false);var da1=dateField1.value.split("/");var da2=dateField2.value.split("/");var mm1=bmParseInt(da1[0],10);var dd1=bmParseInt(da1[1],10);var yy1=bmParseInt(da1[2],10);var mm2=bmParseInt(da2[0],10);var dd2=bmParseInt(da2[1],10);var yy2=bmParseInt(da2[2],10);if(op=="lt")
{if(!date1OK||!date2OK||yy1>yy2||(yy1==yy2&&mm1>mm2)||(yy1==yy2&&mm1==mm2&&dd1>=dd2))
{bmErrorString+=bmGetString(bmBadCompareMsg1,new Array(label1,label2));return false;}
else{return true;}}
if(op=="le")
{if(!date1OK||!date2OK||yy1>yy2||(yy1==yy2&&mm1>mm2)||(yy1==yy2&&mm1==mm2&&dd1>dd2))
{bmErrorString+=bmGetString(bmBadCompareMsg2,new Array(label1,label2));return false;}
else{return true;}}
if(op=="gt")
{if(!date1OK||!date2OK||yy1<yy2||(yy1==yy2&&mm1<mm2)||(yy1==yy2&&mm1==mm2&&dd1<=dd2))
{bmErrorString+=bmGetString(bmBadCompareMsg3,new Array(label1,label2));return false;}
else{return true;}}
if(op=="ge")
{if(!date1OK||!date2OK||yy1<yy2||(yy1==yy2&&mm1<mm2)||(yy1==yy2&&mm1==mm2&&dd1<dd2))
{bmErrorString+=bmGetString(bmBadCompareMsg2,new Array(label1,label2));return false;}
else{return true;}}
if(op=="eq")
{if(!date1OK||!date2OK||yy1!=yy2||mm1!=mm2||dd1!=dd2)
{bmErrorString+=bmGetString(bmBadCompareMsg3,new Array(label1,label2));return false;}
else{return true;}}
bmErrorString+=bmGetString(bmInvalidOperatorMsg);return false;}
function bmCompareMoney(mField1,label1,mField2,label2,op)
{var mf1=bmCheckMoney(mField1,label1,true,true,false);var mf2=bmCheckMoney(mField2,label2,true,true,false);var m1Val=parseFloat(stripCharsInBag(mField1.value,"$,"),10)*100;var m2Val=parseFloat(stripCharsInBag(mField2.value,"$,"),10)*100;if(op=="lt")
{if(!mf1||!mf2||(m1Val>=m2Val)){bmErrorString+=bmGetString(bmBadCompareMsg1,new Array(label1,label2));return false;}
else
return true;}
if(op=="le")
{if(!mf1||!mf2||(m1Val>m2Val)){bmErrorString+=bmGetString(bmBadCompareMsg2,new Array(label1,label2));return false;}
else
return true;}
if(op=="gt")
{if(!mf1||!mf2||(m1Val<=m2Val)){bmErrorString+=bmGetString(bmBadCompareMsg3,new Array(label1,label2));return false;}
else
return true;}
if(op=="ge")
{if(!mf1||!mf2||(m1Val<m2Val)){bmErrorString+=bmGetString(bmBadCompareMsg4,new Array(label1,label2));return false;}
else
return true;}
if(op=="eq")
{if(!mf1||!mf2||(m1Val!=m2Val)){bmErrorString+=bmGetString(bmBadCompareMsg5,new Array(label1,label2));return false;}
else
return true;}
bmErrorString+=bmGetString(bmInvalidOperatorMsg);return false;}
function bmSubmitOnUpdate(e,newAction,form,func,formaction,doTrim,openLoadDialog,redirect){var charCode;if(window.event){charCode=window.event.keyCode;}else if(e){charCode=e.which;}else{return true;}
if(charCode==13){bmErrorString='';var dt=true;var od=false;if(bmSubmitOnUpdate.arguments.length<3){form=document.forms[0];}
if(bmSubmitOnUpdate.arguments.length<5){formaction='';}
if(bmSubmitOnUpdate.arguments.length>5){dt=doTrim;}
if(bmSubmitOnUpdate.arguments.length>6){od=openLoadDialog;}
if(bmSubmitOnUpdate.arguments.length<8){redirect=true;}
if(dt){bmTrimTextFields(form);}
if(bmSubmitOnUpdate.arguments.length>3&&func!=null){func(form);}
if(bmErrorString!=''){alert(bmErrorString.replace(/\s\s*$/,''));bmErrorString='';return false;}else{bmSubmitForm(newAction,form,null,formaction,false,od,redirect);return false;}}else{return true;}}
function bmSubmitForm(newAction,form,func,formaction,doTrim,openLoadDialog,redirect){bmErrorString="";var dt=true;var od=false;if(bmSubmitForm.arguments.length<2){form=document.forms[0];}
if(bmSubmitForm.arguments.length>4){dt=doTrim;}
if(bmSubmitForm.arguments.length>5){od=openLoadDialog;}
if(bmSubmitForm.arguments.length<7){redirect=true;}
if(dt){bmTrimTextFields(form);}
if(bmSubmitForm.arguments.length>2&&func!=null){func(form);}
if(bmErrorString!=""){alert(bmErrorString.replace(/\s\s*$/,''));bmErrorString="";return;}
if(od){openLoadingDialog();}
if(bmSubmitForm.arguments.length>3&&form.formaction){form.formaction.value=formaction;}
if(form._scrollTop){if(document.body.scrollTop==0){form._scrollTop.value=document.documentElement.scrollTop;}else{form._scrollTop.value=document.body.scrollTop;}}
if(form._bmRedirect){form._bmRedirect.value=redirect;}
form.action=newAction;form.submit();}
function bmShouldSubmitFormConfirm(confirmString,newAction,form,func,formaction,doTrim)
{if(!confirm(confirmString))
return false;if(bmShouldSubmitFormConfirm.arguments.length<4){bmSubmitForm(newAction,form);}else if(bmShouldSubmitFormConfirm.arguments.length<5){bmSubmitForm(newAction,form,func);}else if(bmShouldSubmitFormConfirm.arguments.length<6){bmSubmitForm(newAction,form,func,formaction);}else{bmSubmitForm(newAction,form,func,formaction,doTrim);}}
function bmSubmitFormConfirm(confirmString,newAction,form,func,formaction,doTrim,openLoadDialog,redirect){if(!confirm(confirmString)){return;}
if(bmSubmitFormConfirm.arguments.length<=3){bmSubmitForm(newAction,form);}else if(bmSubmitFormConfirm.arguments.length==4){bmSubmitForm(newAction,form,func);}else if(bmSubmitFormConfirm.arguments.length==5){bmSubmitForm(newAction,form,func,formaction);}else if(bmSubmitFormConfirm.arguments.length==6){bmSubmitForm(newAction,form,func,formaction,doTrim);}else if(bmSubmitFormConfirm.arguments.length==7){bmSubmitForm(newAction,form,func,formaction,doTrim,openLoadDialog);}else{bmSubmitForm(newAction,form,func,formaction,doTrim,openLoadDialog,redirect);}}
function bmCheckCompanyName(theField,label,emptyOK)
{var i,val;if(bmCheckCompanyName.arguments.length<3)
emptyOK=defaultEmptyOK;if((emptyOK==true)&&(isEmpty(theField.value)))
return true;val=theField.value;if((val.length>0))
{var retval=false;c=val.charAt(0);if((c>="a"&&c<="z")||(c>="A"&&c<="Z")||(c>="0"&&c<="9"))
{for(i=1;i<val.length;++i)
{c=val.charAt(i);if(!((c>="a"&&c<="z")||(c>="A"&&c<="Z")||(c=='.')||(c=="_")||(c>="0"&&c<="9")))
{break;}}
if(i>=val.length)
{var suff="";if(val.lastIndexOf("_")!=-1)
suff=val.substr(val.lastIndexOf("_"));if(suff=="_buy")
{bmErrorString+=bmGetString(bmBadCompanyNameMsg1,new Array(label));return false;}
else
{return true;}}}}
bmErrorString+=bmGetString(bmBadCompanyNameMsg,new Array(label));return false;}
function bmCheckNumber(theField,label,emptyOK)
{if(bmCheckNumber.arguments.length<3)
emptyOK=defaultEmptyOK;if((emptyOK==true)&&(isEmpty(theField.value)))
return true;if(bmIsNaN(theField.value)||(isEmpty(theField.value)))
{bmErrorString+=bmGetString(bmBadNumMsg,new Array(label));return false;}
if(theField.value>=1E18)
{bmErrorString+=bmGetString(bmBadNumLimitMsg,new Array(label));return false;}
return true;}
function bmCreateFullSizePopup(url,popupName,menubar)
{if(bmCreateFullSizePopup.arguments.length<3)
menubar=false;agent=navigator.userAgent;params="";params+="toolbar=0,";params+="location=0,";params+="directories=0,";params+="status=0,";if(menubar){params+="menubar=1,";}else{params+="menubar=0,";}
params+="scrollbars=1,";params+="resizable=1,";params+="fullscreen=1,";win=window.open(url,popupName,params);if(agent.indexOf("Mozilla/2")!=-1&&agent.indexOf("Win")==-1){win=window.open(url,popupName,params);}
if(!win.opener){win.opener=window;}
win.focus();}
function closePopup(){try{if(win&&!win.closed){win.focus();alert(bmClosePopupMsg+'\n'+bmSaveChangesMsg);win.close();}}catch(err){return false;}}
function bmConcatMultiSelect(theField,hiddenField,index){var field;if(index==0&&!hiddenField.length){field=hiddenField;}else
field=hiddenField[index];var result="";for(var i=0;i<theField.length;i++){if(theField.options[i].selected){if(theField.options[i].text!=""){result+=theField.options[i].text+", ";}}}
if(result.length>1){result=result.substring(0,result.length-2);}
field.value=result;}
function bmHandleCheckBox(theField,hiddenField,index){var field;if(index==0&&!hiddenField.length){field=hiddenField;}else
field=hiddenField[index];if(theField.checked)
field.value="1";else
field.value="0";}
function bmHandleRadioButton(theField,hiddenField,index){var field;if(index==0&&!hiddenField.length){field=hiddenField;}else
field=hiddenField[index];if(theField.value=="1")
field.value="1";else
field.value="0";}
function bmCheckCreditCard(theField,theCard,label,emptyOK){var value;if(bmCheckCreditCard.arguments.length<4)
emptyOK=defaultEmptyOK;if(theField.type=="select-one")
value=theField.options[theField.selectedIndex].value;else
value=theField.value;var sa=theField.value.split("-");if(sa.length>4||sa.length==4)
value=sa[0]+sa[1]+sa[2]+sa[3];if((emptyOK==true)&&(isEmpty(value)))
return true;if(theCard==""){bmErrorString+=bmGetString(bmBadSelectCardMsg)
return false;}else if(theCard=="Amex"){if(IsAmericanExpress(value)){return;}else{bmErrorString+=bmGetString(bmBadAmexMsg);return false;}}else if(theCard=="Diners"){if(IsDinersClub(value)){return;}else{bmErrorString+=bmGetString(bmBadDinersMsg);return false;}}else if(theCard=="Discover"){if(IsDiscover(value)){return;}else{bmErrorString+=bmGetString(bmBadDiscoverMsg);return false;}}else if(theCard=="JCB"){if(IsJCB(value)){return;}else{bmErrorString+=bmGetString(bmBadJCBMsg);return false;}}else if(theCard=="Master Card"){if(IsMastercard(value)){return true;}else{bmErrorString+=bmGetString(bmBadMasterCardMsg);return false;}}else if(theCard=="Visa"){if(isVisa(value)){return true;}else{bmErrorString+=bmGetString(bmBadVisaMsg);return false;}}
bmErrorString+=bmGetString(bmBadCreditCardMsg,new Array(label));return false;}
function bmCheckAlphaNumericPlusDashDotFileName(theField,label)
{var filePath=theField.value;var ni=filePath.lastIndexOf("\\");var fileName=filePath.substring(ni+1);re=/^[a-zA-Z0-9]+[\w|\-\.]*$/i;var isAlphNumDashDot=fileName.match(re);if(isAlphNumDashDot==null){bmErrorString+=bmGetString(bmBadAlphaNumericDashMsg,new Array(label));return false;}
return true;}
function bmCheckAlphaNumericPlusDash(theField,label,emptyOK)
{var i,val;if(bmCheckAlphaNumericPlusDash.arguments.length<3)
emptyOK=defaultEmptyOK;if((emptyOK==true)&&(isEmpty(theField.value)))
return true;val=theField.value;if((val.length>0))
{c=val.charAt(0);if((c>="a"&&c<="z")||(c>="A"&&c<="Z")||(c>="0"&&c<="9"))
{for(i=1;i<val.length;++i)
{c=val.charAt(i);if(!((c>="a"&&c<="z")||(c>="A"&&c<="Z")||(c=='.')||(c=="_")||(c=="-")||(c>="0"&&c<="9")))
{break;}}
if(i>=val.length)
return true;}}
bmErrorString+=bmGetString(bmBadAlphaNumericDashMsg,new Array(label));return false;}
function bmCheckAlphaNumeric(theField,label,emptyOK)
{var i,val;if(bmCheckAlphaNumeric.arguments.length<3)
emptyOK=defaultEmptyOK;if((emptyOK==true)&&(isEmpty(theField.value)))
return true;val=theField.value;if((val.length>0))
{c=val.charAt(0);if((c>="a"&&c<="z")||(c>="A"&&c<="Z")||(c>="0"&&c<="9"))
{for(i=1;i<val.length;++i)
{c=val.charAt(i);if(!((c>="a"&&c<="z")||(c>="A"&&c<="Z")||(c=='.')||(c=="_")||(c>="0"&&c<="9")))
{break;}}
if(i>=val.length)
return true;}}
bmErrorString+=bmGetString(bmBadAlphaNumericMsg,new Array(label));return false;}
function BigMachinesChangeImageBack(){var i,x,a=document.MM_sr;for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++)x.src=x.oSrc;}
function BigMachinesChangeImage(){var i,j=0,x,a=BigMachinesChangeImage.arguments;document.MM_sr=new Array;for(i=0;i<a.length-2;i+=3)
if((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x;if(!x.oSrc)x.oSrc=x.src;x.src=a[i+2];}}
function bmSetDiscountAmount(){if(!document.bmDocForm)
return;var frm=document.bmDocForm;if(!(frm._price_quantity&&frm._price_list_price_each&&frm._price_discount_percent&&frm._price_total_discount))
return;var disc_pct=frm._price_discount_percent.value;var qty=frm._price_quantity.value;var list_price=frm._price_list_price_each.value;var fListPrice=parseFloat(stripCharsInBag(list_price,"$,"),10);var fSubtotal=qty*fListPrice;var disc_amount=bmRound((disc_pct*fSubtotal)/100,2);frm._price_total_discount.value=disc_amount;}
function bmSetDiscountPercent(){if(!document.bmDocForm)
return;var frm=document.bmDocForm;if(!(frm._price_quantity&&frm._price_list_price_each&&frm._price_discount_percent&&frm._price_total_discount))
return;var disc_amount=frm._price_total_discount.value;var fDiscAmount=parseFloat(stripCharsInBag(disc_amount,"$,"),10);var qty=frm._price_quantity.value;var list_price=frm._price_list_price_each.value;var fListPrice=parseFloat(stripCharsInBag(list_price,"$,"),10);var fSubtotal=qty*fListPrice;var disc_pct="0";if(fSubtotal!=0)
disc_pct=(fDiscAmount/fSubtotal)*100;frm._price_discount_percent.value=bmRound(disc_pct,2);}
function bmGetSubtotal(unitprice,qty){var f=parseFloat(stripCharsInBag(unitprice,"$,"),10)*100;var i=bmParseInt(qty,10);return bmMoneyFormat(bmRound(parseFloat(((f*i)/100),10),2));}
function bmGetNetPrice(subtotal,discount){var vsubtotal=parseFloat(stripCharsInBag(subtotal,"$,"),10)*100;var vdiscount=parseFloat(stripCharsInBag(discount,"$,"),10)*100;return bmMoneyFormat(bmRound(parseFloat(((vsubtotal-vdiscount)/100),10),2));}
function bmGetDiscountPct(discount,subtotal){var disc_pct=0;if(subtotal!=0)
disc_pct=(discount/subtotal)*100;return bmRound(disc_pct,2);}
function bmGetDiscountPercent(subtotal,netprice){var fSubtotal=parseFloat(stripCharsInBag(subtotal,"$,"),10);var fNetPrice=parseFloat(stripCharsInBag(netprice,"$,"),10);var disc_pct=0;if(fSubtotal!=0)
disc_pct=((fSubtotal-fNetPrice)/fSubtotal)*100;return bmRound(disc_pct,2);}
function bmGetDiscountAmount(subtotal,pct){var fSubtotal=parseFloat(stripCharsInBag(subtotal,"$,"),10);return bmMoneyFormat(bmRound(((fSubtotal*(pct))/100),2));}
function bmMoneyFormat(val){return"$"+val;}
function bmRound(n,d){var is_neg=false;if(n<0){is_neg=true;n*=-1;}
n=n-0;if(!d)d=2;var f=Math.pow(10,d);n+=Math.pow(10,-(d+1));n=Math.round(n*f)/f;n+=Math.pow(10,-(d+1));if(is_neg){n*=-1;}
n+='';return d==0?n.substring(0,n.indexOf('.')):n.substring(0,n.indexOf('.')+d+1);}
function bmMoveNext(frm,elementName,pos){var element;var curPos=0;var j=0;if(pos)j=pos;if(j>0){curPos=j+1;}else{for(var i=0;i<frm.elements.length;i++){element=frm.elements[i];if(element.name==elementName){curPos=i+1;}}}
if(curPos>=frm.elements.length){return;}
element=frm.elements[curPos];if((!(element.disabled))&&(element.type!='hidden')){element.focus();}else{bmMoveNext(frm,element.name,curPos);}}
function bmGetSelectedRadio(radioGroup){for(var i=0;i<radioGroup.length;i++)
{if(radioGroup[i].checked){return i;}}}
function isValidAmount(sAmount,sCurrencySymbol,sDecimalSeparator,sDigitGroupSymbol,sNegativeFormat)
{var parsedAmount=parseAmount(sAmount,sCurrencySymbol,sDecimalSeparator,sDigitGroupSymbol,sNegativeFormat);return(null!=parsedAmount)&&((-1==parsedAmount.toString().indexOf("."))||((parsedAmount.toString().length-parsedAmount.toString().indexOf(".")-1)<=2));}
function parseAmount(sAmount,sCurrencySymbol,sDecimalSeparator,sDigitGroupSymbol,sNegativeFormat)
{var parsedAmount=null;sAmount=bmTrim(sAmount);if((0==sAmount.indexOf(sCurrencySymbol))&&(-1==sAmount.indexOf("-")))
sAmount=bmTrim(sAmount.substr(sCurrencySymbol.length));else if(((sAmount.length-sCurrencySymbol.length)==sAmount.indexOf(sCurrencySymbol))&&(-1==sAmount.indexOf("-")))
sAmount=bmTrim(sAmount.substr(0,sAmount.length-sCurrencySymbol.length));else if(sNegativeFormat.indexOf(sCurrencySymbol)==sAmount.indexOf(sCurrencySymbol))
{sAmount=sAmount.replace(sCurrencySymbol,"");sNegativeFormat=sNegativeFormat.replace(sCurrencySymbol,"");}
else if((sNegativeFormat.length-sNegativeFormat.indexOf(sCurrencySymbol))==(sAmount.length-sAmount.indexOf(sCurrencySymbol)))
{sAmount=sAmount.replace(sCurrencySymbol,"");sNegativeFormat=sNegativeFormat.replace(sCurrencySymbol,"");}
else if(-1<sAmount.indexOf(sCurrencySymbol))
return null;else
sNegativeFormat=sNegativeFormat.replace(sCurrencySymbol,"");sAmount=bmTrim(sAmount);sNegativeFormat=bmTrim(sNegativeFormat);if(""!=sDigitGroupSymbol)
{sAmount=sAmount.replace(sDigitGroupSymbol,"");sNegativeFormat=sNegativeFormat.replace(sDigitGroupSymbol,"");}
if("."!=sDecimalSeparator)
{sAmount=sAmount.replace(sDecimalSeparator,".");sNegativeFormat=sNegativeFormat.replace(sDecimalSeparator,".");}
if(!bmIsNaN(sAmount))
parsedAmount=sAmount;else
{sAmount=bmTrim(sAmount);sNegativeFormat=bmTrim(sNegativeFormat);if(('-'==sNegativeFormat.charAt(sNegativeFormat.length-1))&&('-'==sAmount.charAt(sAmount.length-1)))
parsedAmount="-"+sAmount.substr(0,sAmount.length-1);else if(('('==sNegativeFormat.charAt(0))&&(')'==sNegativeFormat.charAt(sNegativeFormat.length-1))&&('('==sAmount.charAt(0))&&(')'==sAmount.charAt(sAmount.length-1)))
parsedAmount="-"+sAmount.substr(1,sAmount.length-1);}
return(null==parsedAmount)?null:parseFloat(parsedAmount);}
function formatNumber(dAmount,sDecimalSeparator,nFractionDigits,sDigitGroupSymbol,nGroupingPattern)
{var nIndex=0,sTemp,sInteger,sFraction,sFormattedAmount,sAmount=dAmount.toString();if((-1<sAmount.indexOf("."))&&(nFractionDigits<(sAmount.length-sAmount.indexOf(".")-1-nFractionDigits)))
sAmount=sAmount.substr(0,sAmount.indexOf(".")+((0<nFractionDigits)?nFractionDigits:0));else if(-1==sAmount.indexOf("."))
{sAmount+=".";for(nIndex=0;nIndex<nFractionDigits;nIndex++)
sAmount+="0";}
sAmount=sAmount.replace(".",sDecimalSeparator);if(0==nGroupingPattern)
return sAmount;else if(1==nGroupingPattern)
{sInteger=sAmount.substr(0,sAmount.indexOf(sDecimalSeparator));sFraction=sAmount.substr(sAmount.indexOf(sDecimalSeparator));sFormattedAmount="";while(0<sInteger.length)
{sTemp=sInteger.substr(sInteger.length-Math.min(sInteger.length,3));sInteger=sInteger.substr(0,sInteger.length-Math.min(sInteger.length,3));sFormattedAmount=sTemp+((0<sFormattedAmount.length)?sDigitGroupSymbol:"")+sFormattedAmount;}
return sFormattedAmount+sFraction;}
else if(2==nGroupingPattern)
{sInteger=sAmount.substr(0,sAmount.indexOf(sDecimalSeparator));sFraction=sAmount.substr(sAmount.indexOf(sDecimalSeparator));sFormattedAmount=sInteger.substr(sInteger.length-Math.min(sInteger.length,3));sInteger=sInteger.substr(0,sInteger.length-Math.min(sInteger.length,3));while(0<sInteger.length)
{sTemp=sInteger.substr(sInteger.length-Math.min(sInteger.length,2));sInteger=sInteger.substr(0,sInteger.length-Math.min(sInteger.length,2));sFormattedAmount=sTemp+((0<sFormattedAmount.length)?sDigitGroupSymbol:"")+sFormattedAmount;}
return sFormattedAmount+sFraction;}
else
return null;}
function formatAmount(dAmount,sDecimalSeparator,sDigitGroupSymbol,nGroupingPattern,sPositiveFormat,sNegativeFormat)
{var fNegative=(dAmount<0);if(fNegative)
dAmount=-1*dAmount;var formattedAmount=formatNumber(dAmount,sDecimalSeparator,2,sDigitGroupSymbol,nGroupingPattern);return fNegative?sPositiveFormat.replace("#",formattedAmount):sNegativeFormat.replace("#",formattedAmount);}
var loading_dialog;function openLoadingDialog(bCloseButton){var height=document.body.clientHeight;var width=document.body.clientWidth;if(isIE){height=((height-100)/2);width=((width-300)/2);loading_dialog=openPopupDialog('/misc/loading_dialog.jsp','_loading_dialog','toolbar=no,scrollbars=no,resizable=no,width=300,height=100,screenX='+width+',screenY='+height+',left='+width+',top='+height,loading_dialog);window.opener=loading_dialog;}else{var field=document.getElementById('_bmProcessingDialog');if(field){height=((height-parseInt(field.style.height,10))/3)+getScrollY();width=((width-parseInt(field.style.width,10))/2)+getScrollX();field.style.left=width+'px';field.style.top=height+'px';field.style.visibility='visible';var imageElement=document.getElementById('_processingBarImage');if(imageElement){imageElement.src=_loadingImage;imageElement.alt='Progressbar Image';}
var elmDialogCloseButton=document.getElementById('processDialogClose');if(typeof(bCloseButton)!='undefined'&&bCloseButton){elmDialogCloseButton.style.display='block';}
else{elmDialogCloseButton.style.display='none';}}}}
function openAjaxLoadingDialog(delayTime){var delay_ms=((delayTime)?(delayTime*100):200);var height=document.body.clientHeight;var width=document.body.clientWidth;height=((height-100)/2);width=((width-300)/2);loading_dialog=openPopupDialog('/misc/loading_dialog.html','_loading_dialog','toolbar=no,scrollbars=no,resizable=no,width=300,height=100,screenX='+width+',screenY='+height+',left='+width+',top='+height,loading_dialog);var msgElement=loading_dialog.document.getElementById("_loadingText");if(msgElement){msgElement.innerHTML='<font color="#000066" face="Arial" size="2"><b>'+bmLoadingMsg+'</b></font>';}}
function getScrollX(){if(window.pageXOffset){return window.pageXOffset;}
if(document.body.scrollHeight){return document.body.scrollLeft;}}
function getScrollY(){if(window.pageYOffset){return window.pageYOffset;}
if(document.body.scrollWidth){return document.body.scrollTop;}}
function closeLoadingDialog(){if(loading_dialog&&!loading_dialog.closed){loading_dialog.close();}
closePopupDialog('_loading_dialog');}
function openPopupDialog(url,dialogue,params,name){name=window.open(url,dialogue,params);if(name.opener==null)
name.opener=self;name.focus();return name;}
function closePopupDialog(name){try{if(window.opener&&!window.opener.closed&&window.opener.name==name){window.opener.close();}}catch(error){}}
var itn_dialog;function openItnDialog(url,dialogue,params)
{itn_dialog=openPopupDialog(url,dialogue,params,itn_dialog);}
var _oldOrderNumber;function setOrderNumberValue(fields,index){_oldOrderNumber=bmParseInt(fields[index].value);}
function getOrderNumberArray(form,prefix){var orderNumberFields=new Array();var curPos=0;for(var i=0;i<form.elements.length;i++){if(form.elements[i].name.indexOf(prefix)==0){orderNumberFields[curPos++]=form.elements[i];}}
return orderNumberFields;}
function bmUpdateOrderNumbers(fields,index,min,max){if(bmUpdateOrderNumbers.arguments.length<3){min=1;}
if(bmUpdateOrderNumbers.arguments.length<4){max=(fields.length+min-1);}
if(bmTrim(fields[index].value).length==0||isNaN(fields[index].value)){alert(bmGetString(bmBadOrderNumber,new Array(min,max)));fields[index].value=_oldOrderNumber;fields[index].focus();return;}
var value=bmParseInt(fields[index].value);if(value==_oldOrderNumber){return;}else if(value<min||value>max){alert(bmGetString(bmBadOrderNumber,new Array(min,max)));fields[index].value=_oldOrderNumber;fields[index].focus();}else if(value<_oldOrderNumber){for(var i=0;i<fields.length;i++){orderNum=bmParseInt(fields[i].value);if(i!=index&&orderNum>=value&&orderNum<_oldOrderNumber){fields[i].value=(orderNum+1);}}}else{for(var i=0;i<fields.length;i++){orderNum=bmParseInt(fields[i].value);if(i!=index&&orderNum<=value&&orderNum>_oldOrderNumber){fields[i].value=(orderNum-1);}}}}
function setVariableName(nameField,varNameField){var variableName=bmTrim(varNameField.value);var nameValue=bmTrim(nameField.value);if(variableName!=""||nameValue==""){return;}
var reg=/[\W]/gi;var aParts=nameValue.split(' ');var variableName;for(var i=0;i<aParts.length;i++){var strResult=aParts[i].replace(reg,'');if(strResult!=''&&i!=0){strResult=strResult.substring(0,1).toUpperCase()+strResult.substring(1,strResult.length);}
else if(i==0){strResult=strResult.substring(0,1).toLowerCase()+strResult.substring(1,strResult.length);}
variableName+=strResult;}
if(variableName.length==0){variableName='a';}
if(!isNaN(variableName.substring(0,1))){variableName='a'+variableName;}
variableName=variableName.replace(/^_*/,'');varNameField.value=variableName;}
var stopTabChange=false;function changeTabs(tab,currentTabFieldId){if(stopTabChange){return;}
var currentTabField=document.getElementById(currentTabFieldId);var currentTab=currentTabField.value;if(tab==currentTab){return;}
var tabEl=document.getElementById('tab'+tab);tabEl.className='tab-active';var currentTabEl=document.getElementById('tab'+currentTab);currentTabEl.className='';var oldTab=document.getElementById(currentTab);if(oldTab){oldTab.style.display='none';}
var newTab=document.getElementById(tab);if(newTab){newTab.style.display='block';}
currentTabField.value=tab;}
var stopNavTabChange=false;function changeNavTabs(tab,currentTabFieldId,tabIdPrefix){if(stopNavTabChange){return;}
var currentTabField=document.getElementById(currentTabFieldId);var currentTab=currentTabField.value;if(tab==currentTab){return;}
var tabEl=document.getElementById(tabIdPrefix+tab);if(tabEl!=null){tabEl.className='tab-active';}
var currentTabEl=document.getElementById(tabIdPrefix+currentTab);if(currentTabEl!=null){currentTabEl.className='';}
currentTabField.value=tab;}
function getSelectedValue(field,defaultValue){if(field&&field.type=="select-one"&&field.options&&field.selectedIndex!=-1){return field.options[field.selectedIndex].value;}else if(field&&field.type=="hidden"){return field.value;}else if(field&&field.length>1){for(var i=0;i<field.length;i++){if(field[i].type=="radio"&&field[i].checked){return field[i].value;}}}
return(defaultValue)?defaultValue:"-1";}
function escapeSpecialChars(str){var _jscriptChars="\r\n\t\"'\\";var _jscriptReplacementChars=new Array("\\r","\\n","\\t");if(str==null){return"";}
var strlen=str.length;if(strlen==0){return"";}
var index;var buf="";for(var i=0;i<strlen;i++){var c=str.charAt(i);index=_jscriptChars.indexOf(c);if(index>2){buf+='\\'+c;}else if(index!=-1){buf+=_jscriptReplacementChars[index];}else{buf+=c;}}
return buf.toString();}
