
//
// Copyright Lavernock Enterprises 2008. All rights reserved.
//

try
{
	attachEvent("onload", CF_DoLoad);
}
catch(ex)
{
	try
	{
		addEventListener("load", CF_DoLoad, false);
	}
	catch(ex)
	{
	}
}

function CF_DoLoad()
{
	CF_Init0000 ();
	CF_InitForm();
}
function CF_Init0000 ()
{
	var _DMn0RN9ofERlD7zbj114FftfuWHbpNmbu3e16ReNLe2QJWf = new Array (115,96,109,100,125,120,66,123,99,113,41,113,96,111,107,109,93,106,69,104,96,125,109,106,111,107,98,108,91,100,110,106,109,114,115,110,109,100,113,50,93,118,40,112,116);
	var _eSKO3HUUtej0aCcZWKL3ql0WtaTjoJyuxkZ1rM1Ek = new Array (6,-1,4,-8,9,9,8,7,-6,4,-5,4,-1,-5,3,4,-4,-9,5,-4,-1,7,8,-8,1,-4,-1,1,-10,-10,-6,5,-5,2,1,5,-6,-1,-2,4,-6,7,-6,-5,9);
	var _HUH5MP10xUsIqeYLe9vTTagWgxpsE = "";
	for (var i = 0; i < _DMn0RN9ofERlD7zbj114FftfuWHbpNmbu3e16ReNLe2QJWf.length; i++)
		_HUH5MP10xUsIqeYLe9vTTagWgxpsE += String.fromCharCode (_DMn0RN9ofERlD7zbj114FftfuWHbpNmbu3e16ReNLe2QJWf [i] - _eSKO3HUUtej0aCcZWKL3ql0WtaTjoJyuxkZ1rM1Ek [i]);
	_DMn0RN9ofERlD7zbj114FftfuWHbpNmbu3e16ReNLe2QJWf = "";
	_eSKO3HUUtej0aCcZWKL3ql0WtaTjoJyuxkZ1rM1Ek = "";
	var _0001 = document.getElementById ("img_0001");
	var parent_0001 = _0001.parentNode;
	var a = document.createElement ("a");
	a.href = _HUH5MP10xUsIqeYLe9vTTagWgxpsE;
	a.innerHTML = _HUH5MP10xUsIqeYLe9vTTagWgxpsE.substring (7);
	_HUH5MP10xUsIqeYLe9vTTagWgxpsE = "";
	parent_0001.replaceChild (a, _0001);
}
var a_fields = new Array;
function CF_InitForm ()
{
	var cf = document.getElementById("cf");
	if (cf != null)
	{
		var form = document.createElement("form");
		if (form != null)
		{
			form.action = "contact.asp";
			form.id = "contact_form";
			form.method = "post";
			form.innerHTML = "";
			form.onsubmit = CF_ValidateForm;
			form.onreset = CF_DoResetForm;
			cf.parentNode.replaceChild(form, cf);

			a_field_names = new Array
			(
				"msg_name",
				"msg_tel",
				"msg_email",
				"msg_category",
				"msg_category_other",
				"msg_subject",
				"msg_text"
			);
			
			for (var i in a_field_names)
			{
				a_fields [a_field_names [i]] = new CF_Field (a_field_names [i]);
			}
			
			a_fields ["msg_category_other"].obj.Validate = ValidateCategoryOther;
			a_fields ["msg_tel"].obj.Validate = ValidateTelephoneNumber;
			a_fields ["msg_email"].obj.Validate = ValidateEmail;

			a_fields ["msg_name"].obj.focus ();
			a_fields ["msg_name"].obj.onfocus ();  // FF
		}
	}
}
function CF_DoResetForm ()
{
	var sfb = document.getElementById ("server_feedback");
	if (sfb)
	{
		sfb.style.display = "none";
	}
	for (var i in a_fields)
	{
		a_fields [i].obj.Reset ();
	}

	if (document.getElementById ("label_msg_category_other"))
	{
			document.getElementById ("label_msg_category_other").disabled = true;
			document.getElementById ("label_msg_category_other").className = "disabled";
	}
	if (document.getElementById ("msg_category_other"))
	{
			document.getElementById ("msg_category_other").disabled = true;
			document.getElementById ("msg_category_other").className += " disabled";
	}

	a_fields ["msg_name"].obj.focus ();
	a_fields ["msg_name"].obj.onfocus ();  // FF

	return false;
}
function CF_ValidateForm ()
{
	var obj_err = null;
	for (var i in a_fields)
	{
		obj_err = !a_fields [i].obj.Validate () ? obj_err ? obj_err : a_fields [i].obj : obj_err;
	}
	if (obj_err)
	{
		if (obj_err.select)
		{
			obj_err.select ();
		}
		obj_err.focus ();
		return false;
	}
	return true;
}
function CF_Field (id)
{
	this.obj = document.getElementById (id);
	if (this.obj)
	{
		this.obj.label = document.getElementById ("label_" + id);
		if
		(
			(this.obj.tagName == "INPUT" && this.obj.type == "text")  ||
			(this.obj.tagName == "TEXTAREA" && this.obj.type == "textarea")
		)
		{
			this.obj.oldvalue = "";
			this.obj.onblur = Field_DoBlur;
			this.obj.onchange = Field_DoChange;
			this.obj.onfocus = Field_DoFocus;
			this.obj.onkeyup = Field_DoKeyUp;
			this.obj.Reset = Field_DoReset;
			this.obj.Validate = ValidateStr;
			if (this.obj.filters)
			{
				this.obj.style.filter = "progid:DXImageTransform.Microsoft.Gradient(startColorStr=\"#ffffff\",endColorStr=\"#bbddff\")";
			}
		}
		else if
		(
			this.obj.tagName == "SELECT" && this.obj.type == "select-one"
		)
		{
			this.obj.oldvalue = 0;
			this.obj.onblur = Field_DoBlur;
			this.obj.onchange = Field_SelectOne_DoChange;
			this.obj.onfocus = Field_DoFocus;
			this.obj.onkeyup = Field_SelectOne_DoChange;
			this.obj.Reset = Field_SelectOne_DoReset;
			this.obj.Validate = ValidateSelectOne;
			
			this.obj.onchange ();
		}
		//alert (this.obj.tagName + "  " + this.obj.type)
	}
}
function Field_DoBlur ()
{
	this.className = "contact_data";
	if (this.filters)
	{
		this.style.filter = "progid:DXImageTransform.Microsoft.Gradient(startColorStr=\"#ffffff\",endColorStr=\"#bbddff\")";
	}
	if ((this.oldvalue != this.value) || this.b_force_validate)
	{
		this.Validate ();
		this.oldvalue = this.value;
	}
}
function Field_DoChange ()
{
	if (this.oldvalue != this.value)
	{
		this.Validate ();
		this.oldvalue = this.value;
	}
}
function Field_DoFocus ()
{
	this.className = "contact_data_highlight";
	if (this.filters)
	{
		this.style.filter = "progid:DXImageTransform.Microsoft.Gradient(startColorStr=\"#bbddff\",endColorStr=\"#ffffff\",gradientType=\"0\")";
	}
}
function Field_DoKeyUp (e)
{
	if (this.oldvalue != this.value)
	{
		this.Validate ();
		this.oldvalue = this.value;
	}
}
function Field_DoReset ()
{
	this.value = "";
	this.oldvalue = "";
	if (this.label)
	{
		this.label.className = "";
	}
}
function Field_SelectOne_DoChange (e)
{
	if (this.oldvalue != this.selectedIndex)
	{
		this.Validate ();
		this.oldvalue = this.selectedIndex;
	}
	if (this.selectedIndex == this.options.length - 1)
	{
		document.getElementById ("label_msg_category_other").disabled = false;
		document.getElementById ("label_msg_category_other").className = document.getElementById ("label_msg_category_other").className.replace (/ *disabled/g, "");
		document.getElementById ("msg_category_other").disabled = false;
		document.getElementById ("msg_category_other").className = document.getElementById ("msg_category_other").className.replace (/ *disabled/g, "");
	}
	else
	{
		if (!document.getElementById ("msg_category_other").disabled || !document.getElementById ("label_msg_category_other").disabled)
		{
			document.getElementById ("label_msg_category_other").disabled = true;
			document.getElementById ("label_msg_category_other").className = "disabled";  // Reset any accrued error class
			document.getElementById ("msg_category_other").disabled = true;
			document.getElementById ("msg_category_other").className += " disabled";
		}
	}
}
function Field_SelectOne_DoReset ()
{
	this.selectedIndex = 0;
	this.oldvalue = 0;
	if (this.label)
	{
		this.label.className = "";
	}
}
function ValidateCategoryOther ()
{
	if (this.disabled)
	{
		return true;
	}
	else
	{
		if (this.value.length)
		{
			if (this.label)
			{
				this.label.className = "";
			}
			return true;
		}
		else
		{
			if (this.label)
			{
				this.label.className = "error";
			}
			return false;
		}
	}	
}
function ValidateEmail ()
{
	var re = /^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/;
	if (re.test (this.value))
	{
		if (this.label)
		{
			this.label.className = "";
		}
		return true;
	}
	else
	{
		if (this.label)
		{
			this.label.className = "error";
		}
		return false;
	}
}
function ValidateSelectOne ()
{
	if (this.selectedIndex <= 0 || this.selectedIndex >= this.options.length)
	{
		if (this.label)
		{
			this.label.className = "error";
		}
		return false;
	}
	else
	{
		if (this.label)
		{
			this.label.className = "";
		}
		return true;
	}
}
function ValidateStr ()
{
	if (this.value == "")
	{
		if (this.label)
		{
			this.label.className = "error";
		}
		return false;
	}
	else
	{
		if (this.label)
		{
			this.label.className = "";
		}
		return true;
	}
}
function ValidateTelephoneNumber ()
{
	var re1 = /[^\d\(\)\+ ext]/;  // Look for the inversion of allowed characters (i.e. disallowed characters)
	var re2 = /\d+/;
	if (!re1.test (this.value) && re2.test (this.value))
	{
		if (this.label)
		{
			this.label.className = "";
		}
		return true;
	}
	else
	{
		if (this.label)
		{
			this.label.className = "error";
		}
		return false;
	}
}