//WARNING: THIS IS A COMPRESSED FILE AND SHOULD NOT BE EDITED!!!
var reWhitespace = /^\s+$/
var reLetter = /^[a-zA-Z]$/
var reAlpha = /^[a-zA-Z]+$/
var reAlphanumeric = /^[a-zA-Z0-9]+$/
var reDigit = /^\d/
var reNonZeroDigit = /^[1-9]/
var reLetterOrDigit = /^([a-zA-Z]|\d)$/
var reNonDigits = /\D/g;
var reInteger = /^\d+$/
var reSignedInteger = /^(\+|\-)?\d+$/
var reFloat = /^((\d+(\.\d*)?)|((\d*\.)?\d+))$/
var reSignedFloat = /^(((\+|\-)?\d+(\.\d*)?)|((\+|\-)?(\d*\.)?\d+))$/
var reDollarAmount = /^\-?\$?\d?\,?\d{0,3}\,?\d{1,3}\.\d{1,2}$|^\-?\$?\d?\,?\d{0,3}\,?\d{1,3}$/
var reLeading1 = /^1/;
var lowercaseLetters = "abcdefghijklmnopqrstuvwxyz"
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
var whitespace = " \t\n\r"
var defaultEmptyOK = false
var ProNumberDelimiters = "- _";
var constTabKeyCode = 0;
var constBackSpaceKeyCode = 8;
var reTrimLeadingZeros = /^\s*0+/;
var strDebugFieldName;
var reABFPro = /^\d{9}[a-zA-Z]{0,2}$/;
var reCheckDigitPro = /^(\d{9})(\d)$/
var reOtherCarrierPro = /^[a-zA-Z0-9]{0,11}$/;
function trimLeadingZeros(s)
{  return s.replace(reTrimLeadingZeros,"") }
function isEmpty(s)
{  return ((s == null) || (s.length == 0)) }
function isWhitespace (s)
{  return (isEmpty(s) || reWhitespace.test(s)) }
function stripCharsInRE (s, bag)
{  return s.replace(bag, "") }
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 (c.match(bag) != null) {returnString += c }
}
return returnString
}
function stripWhitespace (s)
{  return stripCharsInBag (s, whitespace) }
function stringContainsChars(s,chars)
{  for (var i=0;i<chars.length;i++) {
if (charInString(chars.substr(i,1),s)) { return true; }
}
return false;
}
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 reLetter.test(c) }
function isDigit (c)
{  return reDigit.test(c) }
function isLetterOrDigit (c)
{  return reLetterOrDigit.test(c) }
function isInteger (s)
{  var i
if (isEmpty(s))
if (isInteger.arguments.length == 1) { return defaultEmptyOK }
else { return (isInteger.arguments[1] == true) }
return reInteger.test(s)
}
function isSignedInteger (s)
{  if (isEmpty(s))
{  if (isSignedInteger.arguments.length == 1) { return defaultEmptyOK }
else { return (isSignedInteger.arguments[1] == true) }
}
else
{	return reSignedInteger.test(s) }
}
function isPositiveInteger (s)
{  var secondArg = defaultEmptyOK
if (isPositiveInteger.arguments.length > 1) {  secondArg = isPositiveInteger.arguments[1] }
return (isSignedInteger(s, secondArg) && ((isEmpty(s) && secondArg)  || (parseInt (s) > 0)))
}
function isNonnegativeInteger (s)
{  var secondArg = defaultEmptyOK
if (isNonnegativeInteger.arguments.length > 1) { secondArg = isNonnegativeInteger.arguments[1] }
return (isSignedInteger(s, secondArg) && ((isEmpty(s) && secondArg)  || (parseInt (s) >= 0)))
}
function isNegativeInteger (s)
{  var secondArg = defaultEmptyOK
if (isNegativeInteger.arguments.length > 1) { secondArg = isNegativeInteger.arguments[1] }
return (isSignedInteger(s, secondArg) && ((isEmpty(s) && secondArg)  || (parseInt (s) < 0)))
}
function isNonpositiveInteger (s)
{  var secondArg = defaultEmptyOK
if (isNonpositiveInteger.arguments.length > 1) { secondArg = isNonpositiveInteger.arguments[1] }
return (isSignedInteger(s, secondArg) && ((isEmpty(s) && secondArg)  || (parseInt (s) <= 0)))
}
function isFloat (s)
{  if (isEmpty(s))
{  if (isFloat.arguments.length == 1) { return defaultEmptyOK }
else { return (isFloat.arguments[1] == true) }
}
else {  return reFloat.test(s) }
}
function isSignedFloat (s)
{  if (isEmpty(s))
{  if (isSignedFloat.arguments.length == 1) { return defaultEmptyOK }
else { return (isSignedFloat.arguments[1] == true) }
}
else {  return reSignedFloat.test(s) }
}
function isAlpha (s)
{  var i
if (isEmpty(s))
{  if (isAlpha.arguments.length == 1) { return defaultEmptyOK }
else { return (isAlpha.arguments[1] == true) }
}
else { return reAlpha.test(s) }
}
function isAlphanumeric (s)
{  var i
if (isEmpty(s))
{  if (isAlphanumeric.arguments.length == 1) { return defaultEmptyOK }
else { return (isAlphanumeric.arguments[1] == true) }
}
else { return reAlphanumeric.test(s) }
}
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 prompt (s)
{  window.status = s }
function promptEntry (s)
{  window.status = pEntryPrompt + s }
function alertReturnFalse (string)
{  alert(string)
return false
}
function warnEmpty (theField, s)
{  theField.focus()
alert(mPrefix + s + mSuffix)
return false
}
function warnInvalid (theField, s)
{  trackEvent(s);
alert(s);
if (!(theField == ""))
{  //This line temporarily added to debug a JavaScript error in TimeKeeper.
strDebugFieldName = theField.name
theField.focus();
if (!((theField.type == "select") || (theField.type == "textarea")  || (theField.type == "hidden") || (theField.type == "select-one") || (theField.type == "checkbox")))
{  theField.select(); }
}
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 ValidLength(item, len)
{  return(item.length >= len) }
function phoneKeyUp(e, strValue, intMax, nextObj)
{  var keyAscii
if (ie4) { keyAscii = window.event.keyCode }
else if (ns4) { keyAscii = e.which }
else { return false }
var blnDigit = (((keyAscii >= 48) && (keyAscii <= 57)) || ((keyAscii >= 96) && (keyAscii <= 105)))
if ((strValue.length == intMax) && blnDigit) { nextObj.focus() }
return false
}
function ValidABFPro(item, isValue)
{  if (isValue) { var normalizedPro = stripCharsInBag(item, ProNumberDelimiters) }
else { var normalizedPro = stripCharsInBag(item.value, ProNumberDelimiters) }
normalizedPro = normalizedPro.toUpperCase()
switch (true) {
case reCheckDigitPro.test(normalizedPro):
if (isValue) { item = normalizedPro.replace(reCheckDigitPro, "$1"); }
else { item.value = normalizedPro.replace(reCheckDigitPro, "$1"); }
return true;
break;
case reABFPro.test(normalizedPro):
if (isValue) { item = normalizedPro; }
else { item.value = normalizedPro; }
return true;
break;
default:
return false;
break;
}
}
function ValidOtherCarrierPro(item) {
var normalizedPro = stripCharsInBag(item.value, ProNumberDelimiters);
normalizedPro = normalizedPro.toUpperCase()
if (reOtherCarrierPro.test(normalizedPro)) {
item.value = normalizedPro;
return true;
}
}
function cleanTextAreaPros(objTextArea) {
var cleanPros = new Array();
var arrPros = objTextArea.value.split(/[\n\r]/);
for (var i=0; i<arrPros.length; i++) {
if (arrPros[i] != '') {
var normalizedPro = stripCharsInBag(arrPros[i], ProNumberDelimiters);
var pro = normalizedPro.toUpperCase()
if (reCheckDigitPro.test(pro)) {
pro = pro.replace(reCheckDigitPro, "$1");
}
cleanPros.push(pro);
}
}
objTextArea.value = cleanPros.join("\n");
}
function ValidABFAccount(item)
{  if ((item.length != 6) || (!isInteger(item))) { return false }
return true
}
function ValidURL(item)
{  if ((isEmpty(item))  || (item.substr(0,7) != "http://") || (item.indexOf(" ") >= 0)) { return false }
return true
}
function FormatNumber(num,intDecimalNum,blnLeadingZero,blnParens,blnCommas)
{  if (isNaN(parseInt(num))) { return "NaN" }
var tmpNum = num
var strAbsoluteVal = num < 0 ? -1 : 1
tmpNum *= Math.pow(10,intDecimalNum)
tmpNum = Math.round(Math.abs(tmpNum))
tmpNum /= Math.pow(10,intDecimalNum)
tmpNum *= strAbsoluteVal
var strTempNum = new String(tmpNum)
if (intDecimalNum == 2) {      //only works for 2 decimal places (currency)
if (strTempNum.indexOf(".") == -1)
strTempNum = strTempNum + ".00";
else if (strTempNum.length - strTempNum.indexOf(".") == 1)
strTempNum = strTempNum + "00";
else if (strTempNum.length - strTempNum.indexOf(".") == 2)
strTempNum = strTempNum + "0";
}
if (!blnLeadingZero && num < 1 && num > -1 && num != 0)
if (num > 0) { strTempNum = strTempNum.substring(1,strTempNum.length) }
else { strTempNum = "-" + strTempNum.substring(2,strTempNum.length) }
if (blnCommas && (num >= 1000 || num <= -1000))
{  var intStart = strTempNum.indexOf(".")
if (intStart < 0) { intStart = strTempNum.length }
intStart -= 3
while (intStart >= 1)
{  strTempNum = strTempNum.substring(0,intStart) + "," + strTempNum.substring(intStart,strTempNum.length)
intStart -= 3
}
}
if (blnParens && num < 0) { strTempNum = "(" + strTempNum.substring(1,strTempNum.length) + ")" }
return strTempNum
}
function FormatCurrency(num,intDecimalNum,blnLeadingZero,blnParens,blnCommas)
{  var strTemp = new String(FormatNumber(num,intDecimalNum,blnLeadingZero,blnParens,blnCommas))
if (strTemp.indexOf("(") != -1 || strTemp.indexOf("-") != -1)
{  if (strTemp.charAt(0) == "(") { strTemp = "($"  + strTemp.substring(1,strTemp.length) }
else if (strTemp.charAt(0) == "-") { strTemp = "-$" + strTemp.substring(1,strTemp.length) }
return strTemp
}
else { return "$" + strTemp }
}
function FormatQuoteID(strQuoteID)
{  return strQuoteID.replace(/O/gi,"0") }
function trimWhiteSpace(strS) {
var strTemp;
strTemp = strS.replace(/^\s+/, "");
strTemp = strTemp.replace(/\s+$/, "");
return strTemp;
}
function IntegerKeyPress(e, mLength, mMaxLength)
{  var keyCode = (window.event)? window.event.keyCode : e.which;
var blnDigit = (reDigit.test(String.fromCharCode(keyCode)));
var blnValidLength = (mMaxLength>0)? ValidLength(mLength, mMaxLength) : true;
if ((blnDigit && blnValidLength) || (keyCode==constTabKeyCode) || (keyCode==constBackSpaceKeyCode)) {  return true; }
else {  return false; }
}
function RemoveNonInteger(mObj)
{  if (!isInteger(mObj.value))
{  mObj.value = '' ; }
}
function ValidLength(mLength, mMaxLength)
{  var strReturn = (mLength<mMaxLength) ;
return strReturn;
}
function validSSN(strSSN)
{  strSSN = strSSN.replace(/[ -]/g,"");
return (strSSN.length == 9 && !isNaN(strSSN));
}
function trackEvent(strMsg)
{  if (strMsg == null || strMsg == '')
return false;
if (document.getElementById)
{  if (document.getElementById("trackingIFrame"))
{  document.getElementById("trackingIFrame").src = "/ClientSideEvent.asp?PAGE=" + strToolCode + "&EVENT=" + escape(strMsg.substr(0,230)) + "&VERSION=" + Math.random();
}
}
}
function isDollarAmount(s)
{  return reDollarAmount.test(s) }
function SetInnerText(mObj, mText)
{  if (typeof(mObj.innerText) != "undefined") {mObj.innerText = mText;}
else {mObj.textContent= mText;}
}
function GetInnerText(mObj)
{  if (typeof(mObj.innerText) != "undefined") {return mObj.innerText;}
else {return mObj.textContent;}
}
function clsClearForm()
{  this.sFormName = '';
this.bClearTextFields = true;
this.bClearSelectFields = true;
this.bClearTextAreaFields = true;
this.bClearReadOnly = false;
this.aSkipTextID = null;
this.aSkipSelectID = null;
this.aSkipTextAreaID = null;
this.TEXT = 'T';
this.SELECT = 'S';
this.TEXT_AREA = 'TA';
this.SkipID = function(mType, mID)
{  if       (mType == this.TEXT)       {var aArray = this.aSkipTextID;}
else if  (mType == this.SELECT)     {var aArray = this.aSkipSelectID;}
else if  (mType == this.TEXT_AREA)  {var aArray = this.aSkipTextAreaID;}
if (aArray != null)
{  for (var i=0; i<aArray.length; i++)
{  if (aArray[i] == mID)
{  return true; }
}
}
return false;
}
this.Execute = function()
{  var oForm = document.getElementById(this.sFormName);
if (this.bClearTextFields)
{  var oInput = oForm.getElementsByTagName('input');
for (var i=0; i<oInput.length; i++)
{  if (oInput[i].type == 'text')
{  if (((oInput[i].readOnly == false) || this.bClearReadOnly) && (!this.SkipID(this.TEXT, oInput[i].id)))
{  oInput[i].value = ''; }
}
}
}
if (this.bClearSelectFields)
{  var oSelect = oForm.getElementsByTagName('select');
for (var i=0; i<oSelect.length; i++)
{  if (!this.SkipID(this.SELECT, oSelect[i].id))
{  oSelect[i].options.selectedIndex=0; }
}
}
if (this.bClearTextAreaFields)
{  var oTextArea = oForm.getElementsByTagName('textarea');
for (var i=0; i<oTextArea.length; i++)
{  if (!this.SkipID(this.TEXT_AREA, oTextArea[i].id))
{  oTextArea[i].value = ''; }
}
}
}
}
function ValidEMail(inEmailAddr)
{  //Start and end the array with "" to simplify the looping
var ValidEMChars = new Array("","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","0","1","2","3","4","5","6","7","8","9",".","^","_","{","}","~","!","#","%","&","/","'","`","*","$","-","+","")
var i
var j
var k
var Atom
var AtomLen
var NumValidEMChars
Atom = inEmailAddr.split("@")
NumValidEMChars = ValidEMChars.length
if (Atom.length > 2)
{  return false }
if (Atom.length < 2)
{  return false }
if (Atom[1].indexOf(".") == -1) {  return false }
if (Atom[1].lastIndexOf('.') > -1) {
if (Atom[1].length - Atom[1].lastIndexOf('.') - 1 < 2) { return false }
}
for (var i = 0; i<2; i++)
{  if (Atom[i].length == 0) {  return false }
if (Atom[i].indexOf("..") != -1) { return false }
if (Atom[i].charAt(0) == ".") { return false }
if (Atom[i].charAt((Atom[i].length - 1)) == ".") { return false }
AtomLen = Atom[i].length - 1
for (var j = 0; j<=AtomLen; j++)
{  k = 0
while(Atom[i].charAt(j) != ValidEMChars[k] && k < NumValidEMChars)
{  k++ }
if (Atom[i].charAt(j) != ValidEMChars[k]) { return false }
}
}
return true;
}
function validMultipleEmails(strEmailAddrs)
{  var addrs = new Array();
alert(strEmailAddrs);
strEmailAddrs.replace(',',';');
alert(strEmailAddrs);
addrs = strEmailAddrs.split(";");
for(i=0; i<addrs.length; i++)
{  if (!ValidEMail) { return false; }
}
return true;
}
var phoneNumberDelimiters = "()- .";
var digitsInUSPhoneNumber = 10;
var mPrefix = "You did not enter a value into the "
var mSuffix = " field. This is a required field. Please enter it now."
var sPhone = "Phone Number"
var sFax = "Fax Number"
var iUSPhone = " must be a valid 10-digit U.S. phone number (like 415 555 1212). Please re-enter it now."
var iWorldPhone = "This field must be a valid international phone number. Please re-enter it now."
var pUSPhone = "10-digit U.S. phone number (like 415 555 1212)."
var pWorldPhone = "international phone number."
var iUSCopyFax = " fax number must be valid to send Copy."
var iUSCopyConfirmFax = " fax number must be valid to send Copy/Confirm."
var reUSPhone = /^(1|1-|1\))?\(?([2-9]\d{2})\)?[ -]?(\d{3})[ -]?(\d{4}$)/
var reValidPhoneChars = /^[\+\.\/\(\)\- \d]+$/  //will allow common characters in phone number
var reFormatUSPhone = /^1?([2-9]\d{2})(\d{3})(\d{4})$/
var rePhoneExt = /^\d{1,5}$/;
function PhoneNumValidateOnKeyPress(e)
{  var keyCode = (window.event)? window.event.keyCode : e.which;
return ((reValidPhoneChars.test(String.fromCharCode(keyCode))) || (keyCode==constTabKeyCode) || (keyCode==constBackSpaceKeyCode));
}
function FormatValidatedUSPhone(strPhone)
{  strPhone = strPhone.replace(reNonDigits, '');
strPhone = strPhone.replace(reLeading1, '');
return strPhone.replace(reFormatUSPhone,"($1) $2-$3")
}
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 && (!isSameDigit(s)))
}
function isInternationalPhoneNumber (s)
{  if (isEmpty(s))
if (isInternationalPhoneNumber.arguments.length == 1) return defaultEmptyOK;
else return (isInternationalPhoneNumber.arguments[1] == true);
return (isPositiveInteger(s))
}
function reformatUSPhone (USPhone)
{  return (reformat (USPhone, "(", 3, ") ", 3, "-", 4)) }
function checkUSPhone (theField, FieldName, emptyOK)
{  if (checkUSPhone.arguments.length == 2) emptyOK = defaultEmptyOK;
if ((emptyOK == true) && (isEmpty(theField.value))) return true;
else
{  var normalizedPhone = stripCharsInBag(theField.value, phoneNumberDelimiters)
if (!isUSPhoneNumber(normalizedPhone, false))
return warnInvalid (theField, FieldName+iUSPhone);
else
{  // if you don't want to reformat as (123) 456-789, comment next line out
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
{  var normalizedPhone = stripCharsInBag(theField.value, phoneNumberDelimiters)
if (!isInternationalPhoneNumber(normalizedPhone, false))
return warnInvalid (theField, iWorldPhone);
else return true;
}
}
function isSameDigit(s)
{  var strFirstDigit = s.substr(0,1)
if ((strFirstDigit == 0) || (strFirstDigit == 1)) return true;
for (var i=1;i<s.length;i++)
{  if (strFirstDigit != s.substr(i,1)) return false;
}
return true;
}
function checkCopyConfirmFaxNum (theField, FieldName, emptyOK, copyconfirm)
{  if (checkCopyConfirmFaxNum.arguments.length == 2) emptyOK = defaultEmptyOK;
if ((emptyOK == true) && (isEmpty(theField.value))) return true;
else
{  var normalizedPhone = stripCharsInBag(theField.value, phoneNumberDelimiters)
if (!isUSPhoneNumber(normalizedPhone, false))
if (copyconfirm)
{  return warnInvalid (theField, FieldName+iUSCopyConfirmFax);  }
else
{  return warnInvalid (theField, FieldName+iUSCopyFax);  }
else
{  theField.value = reformatUSPhone(normalizedPhone)
return true;
}
}
}
function validZipCode(item,strCountry)
{  switch (strCountry)
{  case 'US':
return ValidUSZip(item);
break;
case 'CA':
return ValidCAZip(item);
break;
case 'MX':
return ValidMXZip(item);
break;
case 'OT':
return true;
break;
case null:
return (ValidUSZip(item) || ValidCAZip(item) || ValidMXZip(item));
break;
}
}
function ValidUSZip(item)
{  item.value = item.value.replace(/-/,'');
if ((item.value.length != 5) && (item.value.length != 9)) return false;
if (!isInteger(item.value)) return false;
return true;
}
function ValidCAZip(item)
{  item.value = item.value.replace(/[-\s]/,'');
if (item.value.length != 6) return false;
if ((!isAlpha(item.value.charAt(0))) || (!isInteger(item.value.charAt(1))) || (!isAlpha(item.value.charAt(2)))||
(!isInteger(item.value.charAt(3))) || (!isAlpha(item.value.charAt(4))) || (!isInteger(item.value.charAt(5))))
return false;
return true;
}
function ValidMXZip(item)
{  item.value = item.value.replace(/-/,'');
if (item.value.length != 5) return false;
if (!isInteger(item.value)) return false;
return true;
}