function whatbrowser() { if(document.layers){ thisbrowser="NN4"; } else if(document.all){ thisbrowser="IE5" } else if(!document.all && document.getElementById){ thisbrowser="NN6"; } else { thisbrowser="NN6"; } return thisbrowser; } function changeLabelColor( elem, colorval ) { full_name = new String( elem.name ) regex = /\[/gi; start_num = full_name.search(regex) stripped_name = elem.name.substring( start_num+1,elem.name.length-1 ); browser = whatbrowser(); if( browser == "NN4" ) { labelstyle = eval( "document.label_"+stripped_name ); labelstyle.color = colorval; } else if( browser == "IE5" ) { labelstyle = eval( "label_"+stripped_name+".style" ); labelstyle.color = colorval; } else { labelstyle = eval( 'document.getElementById("label_'+stripped_name+'").style' ); labelstyle.color = colorval; } } function checkValueExists( elem ) { var valid = 1; newval = elem.value; if( newval.length < 1 ) { valid = 0; } return valid; } function removeNonNumeric( strg ) { var Numbers = "0123456789"; for( i=0; i < strg.length; i++ ) { if( Numbers.indexOf( strg.charAt(i) ) == -1 ) { temp1 = strg.substr( 0, i ); temp2 = strg.substr( i+1, strg.length ); newstr = temp1 + temp2; newstr = removeNonNumeric( newstr ); } else { newstr = strg; } } return newstr; } function formatUSPhone( phone ) { var modval = ""; var Numbers = "0123456789"; remphone = removeNonNumeric( phone ); if( remphone.length == 10 || ( remphone.length == 11 && remphone.charAt( 0 ) == "1" ) ) { if( remphone.length == 11 && remphone.charAt( 0 ) == "1" ) { modval = remphone.substr( 1, remphone.length ); } else { modval = remphone; } modac = modval.substr( 0,3 ); modpre = modval.substr( 3,3 ); modnum = modval.substr( 6,4 ); modphone = "("+modac+")"+modpre+"-"+modnum; } else { modphone = phone; } return modphone; } function checkFormPhone( elem ) { var valid = 1; var GoodChars = "0123456789()-+. xXeEtT"; var i = 0; phone = elem.value; if (phone=="") { valid = 0; } for (i =0; i <= phone.length -1; i++) { if (GoodChars.indexOf(phone.charAt(i)) == -1) { valid = 0; } } if( valid > 0 ) { elem.value = formatUSPhone( phone ); } return valid; } function checkFormEmailUsername( elem ) { var valid = 1; var GoodChars = "0123456789abcdefghijklmnopqrstuvwxyz-_."; var i = 0; username = elem.value; username = username.toLowerCase(); if ( username == "" || username.length < 1 ) { valid = 0 return valid; } var supported = 0; if ( window.RegExp ) { var tempStr = "a"; var tempReg = new RegExp(tempStr); if ( tempReg.test( tempStr ) ) { supported = 1; } } if ( !supported ) { for (i =0; i <= username.length -1; i++) { if( GoodChars.indexOf( username.charAt(i) ) == -1 ) { valid = 0; } } } var r1 = new RegExp("^[a-z0-9][a-z0-9_.-]*[a-z0-9]$\|^[a-z0-9]+$"); valid = r1.test( username ); if( valid > 0 ) { elem.value = username.toLowerCase(); } return valid; } function checkFormSystemUsername( elem ) { var valid = 1; var GoodChars = "0123456789abcdefghijklmnopqrstuvwxyz-"; var i = 0; username = elem.value; username = username.toLowerCase(); if ( username == "" || username.length < 3 || username.length > 16) { valid = 0 return valid; } var supported = 0; if ( window.RegExp ) { var tempStr = "a"; var tempReg = new RegExp(tempStr); if ( tempReg.test( tempStr ) ) { supported = 1; } } if ( !supported ) { for (i =0; i <= username.length -1; i++) { if( GoodChars.indexOf( username.charAt(i) ) == -1 ) { valid = 0; } } } var r1 = new RegExp("^[a-z][a-z0-9-]*$"); valid = r1.test( username ); if( valid > 0 ) { elem.value = username.toLowerCase(); } return valid; } function checkFormUsername( elem ) { var valid = 1; var GoodChars = "0123456789abcdefghijklmnopqrstuvwxyz_-"; var i = 0; username = elem.value; username = username.toLowerCase(); if ( username == "" || username.length < 3 ) { valid = 0 return valid; } for (i =0; i <= username.length -1; i++) { if( GoodChars.indexOf( username.charAt(i) ) == -1 ) { valid = 0; } } if( valid > 0 ) { elem.value = username.toLowerCase(); } return valid; } function checkFormEmail( elem ) { var valid = 1; var i = 0; newval = elem.value; var supported = 0; if ( window.RegExp ) { var tempStr = "a"; var tempReg = new RegExp(tempStr); if ( tempReg.test( tempStr ) ) { supported = 1; } } if ( !supported ) { valid = ( newval.indexOf(".") > 2 ) && ( newval.indexOf("@") > 0 ); } var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)"); var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$"); valid = ( !r1.test( newval ) && r2.test( newval ) ); if( valid > 0 ) { elem.value = newval.toLowerCase(); } return valid; } function checkFormDomain( elem ) { var valid = 1; var i = 0; newval = elem.value; var supported = 0; if ( window.RegExp ) { var tempStr = "a"; var tempReg = new RegExp(tempStr); if ( tempReg.test( tempStr ) ) { supported = 1; } } if ( !supported ) { valid = true; } var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)"); // var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$"); var r2 = new RegExp("^([a-zA-Z0-9]{1})([a-zA-Z0-9-]*)([a-zA-Z0-9]{1})\.[a-zA-Z]{2,4}((\.([.a-zA-Z]{2,4}))*)$"); valid = ( !r1.test( newval ) && r2.test( newval ) ); // valid = r2.test( newval ); if( valid > 0 ) { elem.value = newval.toLowerCase(); } return valid; } function checkFormCreditCard( elem ) { var valid = 1; var i = 0; newval = elem.value; var supported = 0; if ( window.RegExp ) { var tempStr = "a"; var tempReg = new RegExp(tempStr); if ( tempReg.test( tempStr ) ) { supported = 1; } } if ( !supported ) { valid = true; } var r2 = new RegExp("^(([0-9]{3,6})([\ -]*)){3,5}$"); // valid = ( !r1.test( newval ) && r2.test( newval ) ); valid = r2.test( newval ); if( valid > 0 ) { elem.value = newval.toLowerCase(); } return valid; } function checkFormCreditCVV( elem ) { var valid = 1; var i = 0; newval = elem.value; var supported = 0; if ( window.RegExp ) { var tempStr = "a"; var tempReg = new RegExp(tempStr); if ( tempReg.test( tempStr ) ) { supported = 1; } } if ( !supported ) { valid = true; } var r2 = new RegExp("^([0-9\ ]{3,4})$"); // valid = ( !r1.test( newval ) && r2.test( newval ) ); valid = r2.test( newval ); if( valid > 0 ) { elem.value = newval.toLowerCase(); } return valid; } function checkFormCreditExpDate( elem ) { var valid = 1; var i = 0; newval = elem.value; var supported = 0; if ( window.RegExp ) { var tempStr = "a"; var tempReg = new RegExp(tempStr); if ( tempReg.test( tempStr ) ) { supported = 1; } } if ( !supported ) { valid = true; } var r2 = new RegExp("^([0-9\ ]{2})([\/]*)([\]*)([0-9\ ]{2})$"); // valid = ( !r1.test( newval ) && r2.test( newval ) ); valid = r2.test( newval ); if( valid > 0 ) { elem.value = newval.toLowerCase(); } return valid; } function checkPassword( elem ) { var valid = 1; var i = 0; newval = elem.value; var supported = 0; if ( window.RegExp ) { var tempStr = "a"; var tempReg = new RegExp(tempStr); if ( tempReg.test( tempStr ) ) { supported = 1; } } if ( !supported ) { valid = true; } var r2 = new RegExp("^(.){6,20}$"); // valid = ( !r1.test( newval ) && r2.test( newval ) ); valid = r2.test( newval ); return valid; } function checkFormPrice( elem ) { //var regexStr = "^(?:\\\$)?(\\d*|\\d*\\.\\d{1}|\\d*\\.\\d{2})$"; var regexStr = "^(?:\\\$)?(((\\d{1,3}(\\,\\d{3})*)|\\d*)(\\.\\d{1,2})?)$"; var regex = new RegExp(regexStr); var regexMatch = regex.exec(elem.value); if (regexMatch == null) { return false; } elem.value = regexMatch[1]; return true; } function checkPositiveInteger( elem ) { var regex = new RegExp( "^0*(\\d+)(\\.0*)?$" ); var regexMatch = regex.exec(elem.value); if (regexMatch == null) { return false; } elem.value = regexMatch[1]; return true; } function checkBankRoutingNumber( elem ) { var regex = new RegExp( "^(\\s)*(\\d){9}(\\s)*$" ); var regexMatch = regex.exec(elem.value); if (regexMatch == null) { return false; } elem.value = regexMatch[0]; return true; } function checkRecordName( elem ) { var r1 = new RegExp( "^\\*$" ); var r2 = new RegExp( "^[a-zA-Z0-9]$" ); var r3 = new RegExp( "^[a-zA-Z0-9]{1}[a-zA-Z0-9-.]*[a-zA-Z0-9]{1}$" ); return ( r1.test( elem.value ) || r2.test( elem.value ) || r3.test( elem.value ) ); } function checkRecordContent( elem ) { var valid = checkRecordContentMX( elem ); if (valid == true) { return valid; } return checkRecordContentDomain( elem ); } function checkRecordContentMX( elem ) { var r1 = new RegExp( "^([a-zA-Z0-9]+([a-zA-Z0-9-]*[a-zA-Z0-9]+)*\\.)*((([a-zA-Z0-9]{1})([a-zA-Z0-9-]*)([a-zA-Z0-9]{1}))*([a-zA-Z0-9][a-zA-Z0-9])*)+\\.[a-zA-Z]{2,4}((\\.([a-zA-Z]{2}))*)$" ); var r2 = new RegExp( ".*--.*" ); var r3 = new RegExp( ".*\\.\\..*" ); var r4 = new RegExp( "^\\..*" ); var newval = elem.value; //check to see if there is not a double dash var valid = r2.test( newval ); if (valid == true) { return false; } var valid = r3.test( newval ); if (valid == true) { return false; } var valid = r4.test( newval ); if (valid == true) { return false; } var valid = r1.test( newval ); return valid; } function checkRecordContentDomain( elem ) { var newval = elem.value; var validChars = new RegExp("^(([1-9]{1})([0-9]{0,2})\\.){1}(([0-9]{1,3})\\.){2}([0-9]{1,3})$"); var valid = validChars.test( newval ); if (valid == false) { return false; } var parts = newval.split("."); if (parts.length < 4 || parts.length > 4) { return false; } for (var i = 0; i < parts.length; i++) { var ipPart = parts[i]; if (ipPart < 0 || ipPart > 255) { return false; } } return true; } function checkRecordPrio( elem ) { var valid = false; valid = checkPositiveInteger( elem ); if (valid == true) { if (elem.value < 1 || elem.value > 100) { valid = false; } } return valid; } function checkRecordTtl( elem ) { var valid = false; valid = checkPositiveInteger( elem ); if (valid == true) { if (elem.value < 300 || elem.value > 86400) { valid = false; } } return valid; } function checkFormElement( elem, valtype ) { imageval = document.images[elem.name]; if( valtype == 'EMAIL' ) { valid = checkFormEmail( elem ); } else if ( valtype == 'DOMAIN' ) { valid = checkFormDomain( elem ); } else if ( valtype == 'PHONE' ) { valid = checkFormPhone( elem ); } else if ( valtype == 'USERNAME' ) { valid = checkFormUsername( elem ); } else if ( valtype == 'SYSTEMUSERNAME' ) { valid = checkFormSystemUsername( elem ); } else if ( valtype == 'EMAILUSERNAME' ) { valid = checkFormEmailUsername( elem ); } else if ( valtype == 'CREDITCARD' ) { valid = checkFormCreditCard( elem ); } else if ( valtype == 'CREDITCVV' ) { valid = checkFormCreditCVV( elem ); } else if ( valtype == 'CREDITEXPDATE' ) { valid = checkFormCreditExpDate( elem ); } else if ( valtype == 'PASSWORD' ) { valid = checkPassword( elem ); } else if ( valtype == 'CONFIRMPASSWORD' ) { valid = checkPassword( elem ); } else if ( valtype == 'PRICE' ) { valid = checkFormPrice( elem ); } else if ( valtype == 'POSITIVE-INTEGER' ) { valid = checkPositiveInteger( elem ); } else if ( valtype == 'SUBDOMAINNAME' ) { valid = checkRecordName( elem ); } else if ( valtype == 'RECORDCONTENT' ) { valid = checkRecordContent( elem ); } else if ( valtype == 'RECORDPRIO' ) { valid = checkRecordPrio( elem ); } else if ( valtype == 'RECORDTTL' ) { valid = checkRecordTtl( elem ); } else if ( valtype == 'RECORDCONTENTDOMAIN' ) { valid = checkRecordContentDomain( elem ); } else if ( valtype == 'RECORDCONTENTMX' ) { valid = checkRecordContentMX( elem ); } else if ( valtype == 'BANKROUTING' ) { valid = checkBankRoutingNumber( elem ); } else { valid = checkValueExists( elem ); } if( valid > 0 ) { imageval.src = '/resources/images/ui_elements/forms/field_ok.gif'; } else { imageval.src = '/resources/images/ui_elements/forms/field_error.gif'; } } function outputMoney(number) { return outputDollars(Math.floor(number-0) + '') + outputCents(number - 0); } function outputDollars(number) { if (number.length <= 3) return (number == '' ? '0' : number); else { var mod = number.length%3; var output = (mod == 0 ? '' : (number.substring(0,mod))); for (i=0 ; i < Math.floor(number.length/3) ; i++) { if ((mod ==0) && (i ==0)) output+= number.substring(mod+3*i,mod+3*i+3); else output+= ',' + number.substring(mod+3*i,mod+3*i+3); } return (output); } } function outputCents(amount) { amount = Math.round( ( (amount) - Math.floor(amount) ) *100); return (amount < 10 ? '.0' + amount : '.' + amount); }