/*////////////////////////////////////////////////////////////
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;