/* Image Rollovers */

function MM_swapImgRestore() { //v3.0
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_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
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);
if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
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];}
}

/* Form Validation */

function validate(f)
{
	if (f.name == 'EmailAFriend')
	{
		if (isFilled(f.ToFirstName) == false)
		{
			alert("To First Name field cannot be blank.");
			f.ToFirstName.focus();
			return false;
		}
		if (isFilled(f.ToLastName) == false)
		{
			alert("To Last Name field cannot be blank.");
			f.ToLastName.focus();
			return false;
		}
		if (isFilled(f.ToEmailAddress) == false)
		{
			alert("To Email Address field cannot be blank.");
			f.ToEmailAddress.focus();
			return false;
		}	
		if ((isFilled(f.ToEmailAddress) == true) && (isValidEmail(f.ToEmailAddress.value) == false))
		{
			alert("Invalid email address!");
			f.ToEmailAddress.select();
			return false;
  		}
		if (f.Message.value.length > 1000)
		{
			alert("Your message must not be greater than 1000 characters.");
			f.Message.focus();
			return false;
		}
		if (isFilled(f.FromFirstName) == false)
		{
			alert("From First Name field cannot be blank.");
			f.FromFirstName.focus();
			return false;
		}
		if (isFilled(f.FromLastName) == false)
		{
			alert("From Last Name field cannot be blank.");
			f.FromLastName.focus();
			return false;
		}
		if (isFilled(f.FromEmailAddress) == false)
		{
			alert("From Email Address field cannot be blank.");
			f.FromEmailAddress.focus();
			return false;
		}	
		if ((isFilled(f.FromEmailAddress) == true) && (isValidEmail(f.FromEmailAddress.value) == false))
		{
			alert("Invalid email address!");
			f.FromEmailAddress.select();
			return false;
  		}
	}
	else if (f.name == 'Enquire')
	{
		if (isFilled(f.Name) == false)
		{
			alert("Name field cannot be blank.");
			f.Name.focus();
			return false;
		}
		if (isFilled(f.Email) == false)
		{
			alert("Email address field cannot be blank.");
			f.Email.focus();
			return false;
		}	
		if ((isFilled(f.Email) == true) && (isValidEmail(f.Email.value) == false))
		{
			alert("Invalid email address!");
			f.Email.select();
			return false;
  		}
	}
	return true;
}

// Determine whether a form field contains a value
function isFilled(elm)
{
	if (elm.value == "" || elm.value == null)
	{
		return false;
	} else {
		return true;
	}
}

// Validate email address
function isValidEmail(email)
{
	invalidChars = " /:,;";
	for (i=0; i<invalidChars.length; i++)	// does it contain any invalid characters?
	{
		badChar = invalidChars.charAt(i);
		if (email.indexOf(badChar,0) > -1)
		{
			return false;
		}
	}
	atPos = email.indexOf("@",1) // there must be one "@" symbol
	if (atPos == -1)
	{
		return false;
	}
	if (email.indexOf("@",atPos+1) != -1) // and only one "@" symbol
	{
		return false;
	}
	periodPos = email.indexOf(".",atPos)
	if (periodPos == -1) // and at least one "." after the "@"
	{
		return false;
	}
	if (periodPos+3 > email.length) // must be at least 2 characters after the "."
	{
		return false;
	}
	return true;
}

// Validate telephone/fax number
function isValidTelFaxNum(TelFaxNum)
{
	var pattern = /^(\+\d{1,3} ?)?(\(\d{1,5}\)|\d{1,5}) ?\d{3} ?\d{0,7}( ?(x|xtn|ext|extn|extension)?\.? ?\d{1,5})?$/i
	var isValid = pattern.test(TelFaxNum);
	return isValid;
}

// Validate url
function isValidURL(URL)
{
	var pattern = /^(http:\/\/www.|www.)[-a-zA-Z0-9]{2,63}\.([a-zA-Z]{2,4}|[a-zA-Z]{2,4}\.[a-zA-Z]{2,4})$/i;
	var isMatch = pattern.test(URL);
	if (isMatch == true)
	{
		return true;
	}
	return false;
}