/*//////////////////////////////////////////////////////////// JavaScript Code Library Developed by GrafX Design Division Pty Ltd http://www.grafx.com.au Last Checked In By : Richard Czeiger Public Revision No : 1.0 The software and related user documentation are protected under copyright laws and remain the sole property of GrafX Design Division. Full license is available on the GrafX Design Division web site or in the original download. Technical support is available via the GrafX web site at http://www.grafx.com.au ////////////////////////////////////////////////////////////*/ // Get the hacked stylesheet document.write(''); // Suppress JavaScript Errors window.onerror=new Function("return true") // Set the Status Bar Message var statusMsg = 'Providence Lodge'; window.defaultStatus=statusMsg; // Fixes IE6 CSS Rendering Bug if (document.all && window.attachEvent) window.attachEvent("onload", fixWinIE); function fixWinIE() { if (document.body.scrollHeight < document.body.offsetHeight) { document.body.style.display = 'block'; } } // Spam Suppression for Emails function stopSpam(name, domain, subject) { var symbol = '@'; // Took out the Subject due to MS fault in Outlook Express (Source - http://support.microsoft.com/kb/q182985/ ) // document.write('' + name + symbol + domain + ''); document.write('' + name + symbol + domain + ''); } // XHTML External Link Script function externalLinks() { if (!document.getElementsByTagName) return; var anchors = document.getElementsByTagName("a"); for (var i=0; i'; document.write(sectionColours); } // |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| // // Coded by Travis Beckham // http://www.squidfingers.com | http://www.podlob.com // If want to use this code, feel free to do so, but please leave this message intact. // // |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| // --- version date: 11/21/02 --------------------------------------------------------- // returns true if the string is empty function isEmpty(str){ return (str == null) || (str.length == 0); } // returns true if the string is a valid email function isEmail(str){ if(isEmpty(str)) return false; var re = /^[^\s()<>@,;:\/]+@\w[\w\.-]+\.[a-z]{2,}$/i return re.test(str); } // returns true if the string only contains characters A-Z or a-z function isAlpha(str){ var re = /[^a-zA-Z]/g if (re.test(str)) return false; return true; } // returns true if the string only contains characters 0-9 function isNumeric(str){ var re = /[\D]/g if (re.test(str)) return false; return true; } // returns true if the string only contains characters A-Z, a-z or 0-9 function isAlphaNumeric(str){ var re = /[^\sa-zA-Z0-9]/g if (re.test(str)) return false; return true; } // returns true if the string's length equals "len" function isLength(str, len){ return str.length == len; } // returns true if the string's length is between "min" and "max" function isLengthBetween(str, min, max){ return (str.length >= min)&&(str.length <= max); } // returns true if the string is a phone number formatted as... // (00)0000-0000, (00) 0000-0000, 00-0000-0000, 00.0000.0000, 00 0000 0000, 0000000000 function isPhoneNumber(str){ var re = /^\(?[0-9]\d{1,2}[\)\.-]?\s?\d{4}[\s\.-]?\d{4}$/ return re.test(str); } // returns true if the string is a valid date formatted as... // dd mm yyyy, dd/mm/yyyy, dd.mm.yyyy, dd-mm-yyyy function isDate(str){ var re = /^(\d{1,2})[\s\.\/-](\d{1,2})[\s\.\/-](\d{4})$/ if (!re.test(str)) return false; var result = str.match(re); var d = parseInt(result[1]); var m = parseInt(result[2]); var y = parseInt(result[3]); if(m < 1 || m > 12 || y < 1900 || y > 2100) return false; if(m == 2){ var days = ((y % 4) == 0) ? 29 : 28; }else if(m == 4 || m == 6 || m == 9 || m == 11){ var days = 30; }else{ var days = 31; } return (d >= 1 && d <= days); } // returns true if "str1" is the same as the "str2" function isMatch(str1, str2){ return str1 == str2; } // returns true if the string contains only whitespace // cannot check a password type input for whitespace function isWhitespace(str){ // NOT USED IN FORM VALIDATION var re = /[\S]/g if (re.test(str)) return false; return true; } // removes any whitespace from the string and returns the result // the value of "replacement" will be used to replace the whitespace (optional) function stripWhitespace(str, replacement){// NOT USED IN FORM VALIDATION if (replacement == null) replacement = ''; var result = str; var re = /\s/g if(str.search(re) != -1){ result = str.replace(re, replacement); } return result; } // validate the form function validateForm(f, preCheck){ var errors = ''; if(preCheck != null) errors += preCheck; var i,e,t,n,v; for(i=0; i < f.elements.length; i++){ e = f.elements[i]; if(e.optional) continue; t = e.type; n = e.name; v = e.value; if(t == 'text' || t == 'password' || t == 'textarea'){ if(isEmpty(v)){ errors += n+' cannot be empty.\n'; continue; } if(v == e.defaultValue){ errors += n+' cannot use the default value.\n'; continue; } if(e.isAlpha){ if(!isAlpha(v)){ errors += n+' can only contain characters A-Z a-z.\n'; continue; } } if(e.isNumeric){ if(!isNumeric(v)){ errors += n+' can only contain characters 0-9.\n'; continue; } } if(e.isAlphaNumeric){ if(!isAlphaNumeric(v)){ errors += n+' can only contain characters A-Z a-z 0-9.\n'; continue; } } if(e.isEmail){ if(!isEmail(v)){ errors += v+' is not a valid email.\n'; continue; } } if(e.isLength != null){ var len = e.isLength; if(!isLength(v,len)){ errors += n+' must contain only '+len+' characters.\n'; continue; } } if(e.isLengthBetween != null){ var min = e.isLengthBetween[0]; var max = e.isLengthBetween[1]; if(!isLengthBetween(v,min,max)){ errors += n+' cannot contain less than '+min+' or more than '+max+' characters.\n'; continue; } } if(e.isPhoneNumber){ if(!isPhoneNumber(v)){ errors += v+' is not a valid phone number.\nPlease include your 2 digit Area Code'; continue; } } if(e.isDate){ if(!isDate(v)){ errors += v+' is not a valid date.\n'; continue; } } if(e.isMatch != null){ if(!isMatch(v, e.isMatch)){ errors += n+' does not match.\n'; continue; } } } if(t.indexOf('select') != -1){ if(isEmpty(e.options[e.selectedIndex].value)){ errors += n+' needs an option selected.\n'; continue; } } if(t == 'file'){ if(isEmpty(v)){ errors += n+' needs a file to upload.\n'; continue; } } } if(errors != '') alert(errors); return errors == ''; } /* The following elements are not validated... button type="button" checkbox type="checkbox" hidden type="hidden" radio type="radio" reset type="reset" submit type="submit" All elements are assumed required and will only be validated for an empty value or defaultValue unless specified by the following properties. isEmail = true; // valid email address isAlpha = true; // A-Z a-z characters only isNumeric = true; // 0-9 characters only isAlphaNumeric = true; // A-Z a-z 0-9 characters only isLength = number; // must be exact length isLengthBetween = array; // [lowNumber, highNumber] must be between lowNumber and highNumber isPhoneNumber = true; // valid US phone number. See "isPhoneNumber()" comments for the formatting rules isDate = true; // valid date. See "isDate()" comments for the formatting rules isMatch = string; // must match string optional = true; // element will not be validated */ // |||||||||||||||||||||||||||||||||||||||||||||||||| // -------------------------------------------------- // |||||||||||||||||||||||||||||||||||||||||||||||||| // All of the previous JavaScript is coded to process // any form and should be kept in an external file if // multiple forms are being processed. // This function configures the previous // form validation code for this form. function configureValidation(f){ f.yourname.isAlphaNumeric = true; f.company.optional = true; f.email.isEmail = true; f.emailpreferred.optional = true; f.phone.isPhoneNumber = true; f.comments.optional = true; return validateForm(f); } // |||||||||||||||||||||||||||||||||||||||||||||||||| // -------------------------------------------------- // |||||||||||||||||||||||||||||||||||||||||||||||||| // Multiple Onload Functions to be called function multipleOnload() { footerBorderKill(); externalLinks(); inputFocus(); } window.onload = multipleOnload;