function initPage()
{
	clearFormFields({
		clearInputs: true,
		clearTextareas: true,
		passwordFieldText: true,
		addClassFocus: "focus",
		filterClass: "default"
	});
}
function back() {
	history.go(-1);
}
function clearFormFields(o)
{
	if (o.clearInputs == null) o.clearInputs = true;
	if (o.clearTextareas == null) o.clearTextareas = true;
	if (o.passwordFieldText == null) o.passwordFieldText = false;
	if (o.addClassFocus == null) o.addClassFocus = false;
	if (!o.filterClass) o.filterClass = "default";
	if(o.clearInputs) {
		var inputs = document.getElementsByTagName("input");
		for (var i = 0; i < inputs.length; i++ ) {
			if((inputs[i].type == "text" || inputs[i].type == "password") && inputs[i].className.indexOf(o.filterClass)) {
				inputs[i].valueHtml = inputs[i].value;
				inputs[i].onfocus = function ()	{
					if(this.valueHtml == this.value) this.value = "";
					if(this.fake) {
						inputsSwap(this, this.previousSibling);
						this.previousSibling.focus();
					}
					if(o.addClassFocus && !this.fake) {
						this.className += " " + o.addClassFocus;
						this.parentNode.className += " parent-" + o.addClassFocus;
					}
				}
				inputs[i].onblur = function () {
					if(this.value == "") {
						this.value = this.valueHtml;
						if(o.passwordFieldText && this.type == "password") inputsSwap(this, this.nextSibling);
					}
					if(o.addClassFocus) {
						this.className = this.className.replace(o.addClassFocus, "");
						this.parentNode.className = this.parentNode.className.replace("parent-"+o.addClassFocus, "");
					}
				}
				if(o.passwordFieldText && inputs[i].type == "password") {
					var fakeInput = document.createElement("input");
					fakeInput.type = "text";
					fakeInput.value = inputs[i].value;
					fakeInput.className = inputs[i].className;
					fakeInput.fake = true;
					inputs[i].parentNode.insertBefore(fakeInput, inputs[i].nextSibling);
					inputsSwap(inputs[i], null);
				}
			}
		}
	}
	if(o.clearTextareas) {
		var textareas = document.getElementsByTagName("textarea");
		for(var i=0; i<textareas.length; i++) {
			if(textareas[i].className.indexOf(o.filterClass)) {
				textareas[i].valueHtml = textareas[i].value;
				textareas[i].onfocus = function() {
					if(this.value == this.valueHtml) this.value = "";
					if(o.addClassFocus) {
						this.className += " " + o.addClassFocus;
						this.parentNode.className += " parent-" + o.addClassFocus;
					}
				}
				textareas[i].onblur = function() {
					if(this.value == "") this.value = this.valueHtml;
					if(o.addClassFocus) {
						this.className = this.className.replace(o.addClassFocus, "");
						this.parentNode.className = this.parentNode.className.replace("parent-"+o.addClassFocus, "");
					}
				}
			}
		}
	}
	function inputsSwap(el, el2) {
		if(el) el.style.display = "none";
		if(el2) el2.style.display = "inline";
	}
}

//------------------------------------------------------------------------------------------
function get(id) {
	return document.getElementById(id);
}
function validateField(myField, type) {
	var contents = get(myField).value;
	var errorNotification = 'e'+ myField;
	if(type == 'email') { // email field
		// validate against invalid email addresses
		if ((/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(contents))){
			get(errorNotification).style.visibility='hidden';
		} else {
			get(errorNotification).style.visibility='visible';
		}
	} else if(type == 'basic') { // compulsory - at least 1 character
		// basic validation against empty fields which are deemed compulsory
		if(contents != '') {
			get(errorNotification).style.visibility='hidden';
		} else {
			get(errorNotification).style.visibility='visible';
		}
	}
}
function empty(value) {
	if(value == '' || value == false || value == null || value == 0) {
		return true;
	} else {
		return false;
	}
}

function newsletterFormBasic(myForm) {
	var error = 0;
	var errorMessage = '';
	var focusField = '';
	var email = get('nfb-email');

	if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email.value))){
		error = 1;
		focusField = 'nfb-email';
		errorMessage += 'Please enter a valid email address.';
	}
	email.style.background='#FFFFFF';

	if(error == 1){
		alert(errorMessage);
		// focus on error field if focus field provided
		get(focusField).style.background='#FFFDE2';
		get(focusField).focus();
		return false;
	} else {
		get(myForm).submit();
		return true;
	}
}
function newsletterForm(myForm) {
	var error = 0;
	var errorMessage = '';
	var focusField = '';
	var email = get('sn-email');
	var name = get('sn-name');
	var company = get('sn-company');

	if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email.value))){
		error = 1;
		focusField = 'email';
		errorMessage += 'Please enter a valid email address.';
	} else if(empty(name.value)) {
		error = 1;
		focusField = 'name';
		errorMessage += 'Please enter your name.';
	} else if(empty(company.value)) {
		error = 1;
		focusField = 'company';
		errorMessage += 'Please enter your company.';
	}

	email.style.background='#FFFFFF';
	get('sn-eemail').style.visibility='hidden';
	name.style.background='#FFFFFF';
	get('sn-ename').style.visibility='hidden';
	company.style.background='#FFFFFF';
	get('sn-ecompany').style.visibility='hidden';


	if(error == 1){
		alert(errorMessage);
		var errorIcon = 'sn-e'+focusField;
		get(errorIcon).style.visibility='visible';
		// focus on error field if focus field provided
		get('sn-'+focusField).style.background='#FFFDE2';
		get('sn-'+focusField).focus();
		return false;
	} else {
		get(myForm).submit();
		return true;
	}
}
function emailAlertsForm(myForm) {
	var error = 0;
	var errorMessage = '';
	var focusField = '';
	var name = get('sea-title');
	var email = get('sea-email');

	if(empty(name.value)) {
		error = 1;
		focusField = 'title';
		errorMessage += 'Please enter your name.';
	}	else if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email.value))){
		error = 1;
		focusField = 'email';
		errorMessage += 'Please enter a valid email address.';
	}
	name.style.background='#FFFFFF';
	email.style.background='#FFFFFF';
	get('sea-etitle').style.visibility='hidden';
	get('sea-eemail').style.visibility='hidden';

	if(error == 1){
		alert(errorMessage);
		var errorIcon = 'sea-e'+focusField;
		get(errorIcon).style.visibility='visible';
		// focus on error field if focus field provided
		get('sea-'+ focusField).style.background='#FFFDE2';
		get('sea-'+ focusField).focus();
		return false;
	} else {
		get(myForm).submit();
		return true;
	}
}
function journalForm(myForm) {
	var error = 0;
	var errorMessage = '';
	var focusField = '';
	var name = get('sj-title');
	var position = get('sj-position');
	var company = get('sj-company');
	var address1 = get('sj-address1');
	var address2 = get('sj-address2');
	var address3 = get('sj-address3');
	var city = get('sj-city');
	var county = get('sj-county');
	var postcode = get('sj-postcode');
	var country = get('sj-country');
	var tel = get('sj-tel');
	var fax = get('sj-fax');
	var email = get('sj-email');
	var website = get('sj-website');
	var employees = get('sj-employees');
	var responsibilities = get('sj-responsibilities');

	if(empty(name.value)) {
		error = 1;
		focusField = 'title';
		errorMessage += 'Please enter your name.';
	} else if(empty(position.value)) {
		error = 1;
		focusField = 'position';
		errorMessage += 'Please enter your position.';
	} else if(empty(company.value)) {
		error = 1;
		focusField = 'company';
		errorMessage += 'Please enter your company.';
	} else if(empty(address1.value)) {
		error = 1;
		focusField = 'address1';
		errorMessage += 'Please enter your address 1.';
	} else if(empty(city.value)) {
		error = 1;
		focusField = 'city';
		errorMessage += 'Please enter your town/city.';
	} else if(empty(county.value)) {
		error = 1;
		focusField = 'county';
		errorMessage += 'Please enter your county/state/province.';
	} else if(empty(postcode.value)) {
		error = 1;
		focusField = 'postcode';
		errorMessage += 'Please enter your postcode.';
	} else if(empty(country.selectedIndex)) {
		error = 1;
		focusField = 'country';
		errorMessage += 'Please select a country.';
	} else if(empty(tel.value)) {
		error = 1;
		focusField = 'tel';
		errorMessage += 'Please enter your telephone number.';
	}	else if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email.value))){
		error = 1;
		focusField = 'email';
		errorMessage += 'Please enter a valid email address.';
	}
	name.style.background='#FFFFFF';
	position.style.background='#FFFFFF';
	company.style.background='#FFFFFF';
	address1.style.background='#FFFFFF';
	address2.style.background='#FFFFFF';
	address3.style.background='#FFFFFF';
	city.style.background='#FFFFFF';
	county.style.background='#FFFFFF';
	postcode.style.background='#FFFFFF';
	country.style.background='#FFFFFF';
	tel.style.background='#FFFFFF';
	email.style.background='#FFFFFF';

	get('sj-etitle').style.visibility='hidden';
	get('sj-eposition').style.visibility='hidden';
	get('sj-ecompany').style.visibility='hidden';
	get('sj-eaddress1').style.visibility='hidden';
	get('sj-eaddress2').style.visibility='hidden';
	get('sj-eaddress3').style.visibility='hidden';
	get('sj-ecity').style.visibility='hidden';
	get('sj-ecounty').style.visibility='hidden';
	get('sj-epostcode').style.visibility='hidden';
	get('sj-ecountry').style.visibility='hidden';
	get('sj-etel').style.visibility='hidden';
	get('sj-eemail').style.visibility='hidden';

	if(error == 1){
		alert(errorMessage);
		var errorIcon = 'sj-e'+focusField;
		get(errorIcon).style.visibility='visible';
		// focus on error field if focus field provided
		get('sj-'+focusField).style.background='#FFFDE2';
		get('sj-'+focusField).focus();
		return false;
	} else {
		get(myForm).submit();
		return true;
	}
}
function contactForm(myForm) {
	var error = 0;
	var errorMessage = '';

	var name = get('title').value;
	var email = get('email').value;
	var telephone = get('telephone').value;
	var enquiry = get('enquiry').value;

	var focusField = '';

	if(empty(name)) {
		error = 1;
		focusField = 'title';
		errorMessage += 'Please enter your name.';
	}	else if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email))){
		error = 1;
		focusField = 'email';
		errorMessage += 'Please enter a valid email address.';
	}	else if(empty(telephone)) {
		error = 1;
		focusField = 'telephone';
		errorMessage += 'Please enter a valid telephone number.';
	}	else if(empty(enquiry)) {
		error = 1;
		focusField = 'enquiry';
		errorMessage += 'Please fill in the message field.';
	}

	if(error == 1){
		alert(errorMessage);
		var errorIcon = 'e'+focusField;
		get(errorIcon).style.visibility='visible';
		// focus on error field if focus field provided
		get(focusField).focus();
		return false;
	} else {
		get(myForm).submit();
		return true;
	}
}

function businessContactForm(myForm) {
	var error = 0;
	var errorMessage = '';

	var name = get('title').value;
	var email = get('email').value;
	var telephone = get('telephone').value;
	var enquiry = get('enquiry').value;

	var focusField = '';

	if(empty(name)) {
		error = 1;
		focusField = 'title';
		errorMessage += 'Please enter your name.';
	}	else if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email))){
		error = 1;
		focusField = 'email';
		errorMessage += 'Please enter a valid email address.';
	}	else if(empty(telephone)) {
		error = 1;
		focusField = 'telephone';
		errorMessage += 'Please enter a valid telephone number.';
	}	else if(empty(enquiry)) {
		error = 1;
		focusField = 'enquiry';
		errorMessage += 'Please fill in the message field.';
	}

	if(error == 1){
		alert(errorMessage);
		var errorIcon = 'e'+focusField;
		get(errorIcon).style.visibility='visible';
		// focus on error field if focus field provided
		get(focusField).focus();
		return false;
	} else {
		get(myForm).submit();
		return true;
	}
}

function enquireAboutProduct(myFormId) {
	var error = 0;
	var errorMessage = '';

	var name = get('title').value;
	var company = get('company').value;
	var address1 = get('address1').value;
	var address2 = get('address2').value;
	var email = get('email').value;
	var telephone = get('telephone').value;
	var enquiry = get('enquiry').value;

	var focusField = '';

	if(empty(name)) {
		error = 1;
		focusField = 'title';
		errorMessage += 'Please enter your name.';
	}	else if(empty(company)) {
		error = 1;
		focusField = 'company';
		errorMessage += 'Please enter your company.';
	}	else if(empty(address1)) {
		error = 1;
		focusField = 'address1';
		errorMessage += 'Please enter a value for address 1.';
	}	else if(empty(address2)) {
		error = 1;
		focusField = 'address2';
		errorMessage += 'Please enter a value for address 2.';
	}	else if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email))){
		error = 1;
		focusField = 'email';
		errorMessage += 'Please enter a valid email address.';
	}	else if(empty(telephone)) {
		error = 1;
		focusField = 'telephone';
		errorMessage += 'Please enter a valid telephone number.';
	}	else if(empty(enquiry)) {
		error = 1;
		focusField = 'enquiry';
		errorMessage += 'Please fill in the message field.';
	}

	if(error == 1){
		alert(errorMessage);
		var errorIcon = 'e'+focusField;
		get(errorIcon).style.visibility='visible';
		// focus on error field if focus field provided
		get(focusField).focus();
		return false;
	} else {
		get(myFormId).submit();
		return true;
	}
	
}

function signupSupplement(myFormId) {
	var error = 0;
	var errorMessage = '';

	var name = get('title').value;
	var company = get('company').value;
	var email = get('email').value;
	var telephone = get('telephone').value;
	var address1 = get('address1').value;
	var address2 = get('address2').value;
	var towncity = get('towncity').value;
	var postcode = get('postcode').value;

	var focusField = '';

	if(empty(name)) {
		error = 1;
		focusField = 'title';
		errorMessage += 'Please enter your name.';
	}	else if(empty(company)) {
		error = 1;
		focusField = 'company';
		errorMessage += 'Please enter your company.';
	}	else if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email))){
		error = 1;
		focusField = 'email';
		errorMessage += 'Please enter a valid email address.';
	}	else if(empty(telephone)) {
		error = 1;
		focusField = 'telephone';
		errorMessage += 'Please enter a valid telephone number.';
	}	else if(empty(address1)) {
		error = 1;
		focusField = 'address1';
		errorMessage += 'Please enter a value for address 1.';
	}	else if(empty(address2)) {
		error = 1;
		focusField = 'address2';
		errorMessage += 'Please enter a value for address 2.';
	}	else if(empty(towncity)) {
		error = 1;
		focusField = 'towncity';
		errorMessage += 'Please enter a value for your town/city.';
	}	else if(empty(postcode)) {
		error = 1;
		focusField = 'postcode';
		errorMessage += 'Please fill in the postcode field.';
	}

	if(error == 1){
		alert(errorMessage);
		var errorIcon = 'e'+focusField;
		get(errorIcon).style.visibility='visible';
		// focus on error field if focus field provided
		get(focusField).focus();
		return false;
	} else {
		get(myFormId).submit();
		return true;
	}
	
}

function shareForm(myForm) {
	var error = 0;
	var errorMessage = '';
	var focusField = '';
	var page = get('share-page');
	var name = get('share-name');
	var email = get('share-email');
	var theirname = get('share-theirname');
	var theiremail = get('share-theiremail');

	if(empty(page.value)) {
		error = 1;
		focusField = 'page';
		errorMessage += 'Please enter a page to share.';
	}	else if(empty(name.value)) {
		error = 1;
		focusField = 'name';
		errorMessage += 'Please enter your name.';
	}	else if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email.value))){
		error = 1;
		focusField = 'email';
		errorMessage += 'Please enter a valid email address for you.';
	}	else if(email.value == theiremail.value) {
		error = 1;
		focusField = 'email';
		errorMessage += 'Please enter different email addresses.';
	}	else if(empty(theirname.value)) {
		error = 1;
		focusField = 'theirname';
		errorMessage += 'Please enter their name.';
	}	else if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(theiremail.value))){
		error = 1;
		focusField = 'theiremail';
		errorMessage += 'Please enter a valid email address for them.';
	}

	page.style.background='#FFFFFF';
	name.style.background='#FFFFFF';
	email.style.background='#FFFFFF';
	theirname.style.background='#FFFFFF';
	theiremail.style.background='#FFFFFF';

	if(error == 1){
		alert(errorMessage);
		// focus on error field if focus field provided
		get('share-'+ focusField).style.background='#FFFDE2';
		get('share-'+ focusField).focus();
		return false;
	} else {
		get(myForm).submit();
		return true;
	}
}

//------------------------------------------------------------------------------------------


if (window.addEventListener)
	window.addEventListener("load", initPage, false);
else if (window.attachEvent)
	window.attachEvent("onload", initPage);

