// JavaScript Document

//// **** //// Function to limit message input //// **** ////
function limitMessage() {
	var carriageReturns = 0;
	var len = 0;
	var retLen = 0;
	for (i = 0; i < document.messageForm.message.value.length; i++) {
		if (document.messageForm.message.value.charAt(i) == '\r'
				|| document.messageForm.message.value.charAt(i) == '\n') {
			carriageReturns = carriageReturns + 1;
		}
		if (carriageReturns >= 10) {
			if (document.messageForm.message.value.charAt(i) == '\r'
					|| document.messageForm.message.value.charAt(i) == '\n') {
				document.messageForm.message.value = document.messageForm.message.value
						.substring(0, i - 1);
			}
		}
	}
	len = document.messageForm.message.value.length - carriageReturns;

	if (len >= 250) {
		retLen = 250 + carriageReturns;
		document.messageForm.message.value = document.messageForm.message.value
				.substring(0, retLen);
	}
	retLen = document.messageForm.message.value.length - carriageReturns;
	document.getElementById('charsLeft').innerHTML = (250 - retLen);
}

// // **** //// Function to count message characters //// **** ////
function charCount() {
	var carriageReturns = 0;
	var len = 0;
	var retLen = 0;
	for (i = 0; i < document.messageForm.message.value.length; i++) {
		if (document.messageForm.message.value.charAt(i) == '\r'
				|| document.messageForm.message.value.charAt(i) == '\n') {
			carriageReturns = carriageReturns + 1;
		}
	}
	len = document.messageForm.message.value.length - carriageReturns;

	if (len >= 250) {
		retLen = 250 + carriageReturns;
		document.messageForm.message.value = document.messageForm.message.value
				.substring(0, retLen);
	}
	retLen = document.messageForm.message.value.length - carriageReturns;
	document.getElementById('charsLeft').innerHTML = (250 - retLen);
}

// // **** //// Function to load pop-up //// **** ////
function popup(url, nme, hgt, wgt) {
	var params = 'toolbar=no,height=' + hgt + ',width=' + wgt
			+ ',location=no,scrollbars=yes,status=no,menubar=no,resizable=no';
	if (self && self.screen && self.screen.width) {
		params += ",left=" + ((self.screen.width - wgt) / 2);
		params += ",top=" + ((self.screen.height - hgt) / 2);
	}
	newwindow = window.open(url, nme, params);
	newwindow.focus();
}

// // **** //// Function to validate emails //// **** ////
function validateEmail(form_id, email) {
	var reg = /^([A-Za-z0-9_+\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	var address = document.forms[form_id].elements[email].value;
	address = address.replace(/ /g,"");
	if (reg.test(address) == false) {
		alert('Invalid Email Address');
		document.forms[form_id].elements[email].focus();
		return false;
	} else {
		return true;
	}
}

// // **** //// Own address button //// **** ////
function useOwnAddressButton() {
	document
			.write('<input type="image" src="images/useaddress.gif" alt="Send To My Address" title="Send To My Address" onclick="javascript:confirmUseOwnAddress();" />');
}

// // **** //// ******************************* //// **** ////
// // **** //// //// **** ////
// // **** //// Form validation functions //// **** ////
// // **** //// //// **** ////
// // **** //// ******************************* //// **** ////

function confirmUseOwnAddress() {
	var sendrec = confirm("Are you sure you want to send to your own address?");
	if (sendrec)
		return true;
	else
		return false;
}

function reminderValidate(formName) {
	var frm = document.forms[formName];
	if (frm.subject.value.length == 0) {
		alert("Please enter a subject.");
		frm.subject.focus();
		return false;
	} else if (frm.message.value.length == 0) {
		alert("Please enter a message.");
		frm.message.focus();
		return false;
	} else {
		// submit
		return true;
	}
}

function validateRecipientDetails(formName) {
	var frm = document.forms[formName];
	// qasHouseSearch & qasPostcode are QAS inputs. Having a value implies a
	// seach rather than a submit
	// qasHouseSearch2 & qasPostcode2 are QAS inputs. Having a value implies a
	// seach rather than a submit
	if (frm.qasHouseSearch.value.length == 0
			&& frm.qasPostcode.value.length == 0) {
		if (frm.d_name.value.length == 0) {
			alert("Please enter a name.");
			frm.d_name.focus();
			return false;
		} else if (frm.d_address1.value.length == 0) {
			alert("Please enter an address.");
			frm.d_address1.focus();
			return false;
		} else {
			// submit
			return true;
		}
	} else {
		return true;
	}
}

function validateAddressBook() {
	var frm = document.forms['addNewAddress'];
	if (frm.add_book_title.value.length == 0) {
		alert("Please enter an address title.");
		frm.add_book_title.focus();
		return false;
	} else if (frm.add_book_name.value.length == 0) {
		alert("Please enter a name.");
		frm.add_book_name.focus();
		return false;
	} else if (frm.add_book_address1.value.length == 0) {
		alert("Please enter an address.");
		frm.add_book_address1.focus();
		return false;
	} else {
		// submit
		return true;
	}
}

function messageValidation() {
	var frm = document.forms['messageForm'];
	if (frm.message.value.length == 0) {
		alert("Please enter a message.");
		frm.message.focus();
		return false;
	} else {
		// submit
		return true;
	}
}

function validateCustomerDetails(formName) {
	var frm = document.forms[formName];
	// qasHouseSearch & qasPostcode are QAS inputs. Having a value implies a
	// seach rather than a submit
	// qasHouseSearch2 & qasPostcode2 are QAS inputs. Having a value implies a
	// seach rather than a submit
	if (frm.qasHouseSearch.value.length == 0
			&& frm.qasPostcode.value.length == 0) {
		if (!validateEmail(formName, 'c_email')) { // checks for valid email
													// address
			return false; // email is invalid
		} else if (frm.c_first_name.value.length == 0) {
			alert("Please enter a name.");
			frm.c_first_name.focus();
			return false;
		} else if (frm.c_email.value.length == 0) {
			alert("Please enter an email address.");
			frm.c_email.focus();
			return false;
		} else if (frm.c_email_confirm.value.length == 0) {
			alert("Please confirm your email address.");
			frm.c_email_confirm.focus();
			return false;
		} else if (frm.c_address1.value.length == 0) {
			alert("Please enter your postal address.");
			frm.c_address1.focus();
			return false;
		} else if (frm.c_postcode.value.length == 0) {
			alert("Please enter your postcode.");
			frm.c_postcode.focus();
			return false;
		} else if (frm.c_password.value.length == 0) {
			alert("Please enter a password.");
			frm.c_password.focus();
			return false;
		} else if (frm.c_password_confirm.value.length == 0) {
			alert("Please confirm your password.");
			frm.c_password_confirm.focus();
			return false;
		} else if (frm.c_email_confirm.value != frm.c_email.value) {
			alert("The email addresses you entered do not match.");
			frm.c_email_confirm.focus();
			return false;
		} else if (frm.c_password_confirm.value != frm.c_password.value) {
			alert("The passwords you entered do nto match");
			frm.c_password_confirm.focus();
			return false;
		} else {
			// submit
			return true;
		}
	} else {
		return true;
	}
}

function validateOrdRegCustomerDetails(formName) {
	var frm = document.forms[formName];
	// qasHouseSearch & qasPostcode are QAS inputs. Having a value implies a
	// seach rather than a submit
	// qasHouseSearch2 & qasPostcode2 are QAS inputs. Having a value implies a
	// seach rather than a submit
	if (frm.qasHouseSearch.value.length == 0
			&& frm.qasPostcode.value.length == 0) {
		if (frm.c_first_name.value.length == 0) {
			alert("Please enter a name.");
			frm.c_first_name.focus();
			return false;
		} else if (frm.c_address1.value.length == 0) {
			alert("Please enter your postal address.");
			frm.c_address1.focus();
			return false;
		} else if (frm.c_postcode.value.length == 0) {
			alert("Please enter your postcode.");
			frm.c_postcode.focus();
			return false;
		} else {
			// submit
			return true;
		}
	} else {
		return true;
	}
}

function validateLogin(formName) {
	var frm = document.forms[formName];
	if (!validateEmail(formName, 'username')) { // checks for valid email
												// address
		return false; // email is invalid
	} else if (frm.username.value.length == 0) {
		alert("Please enter an email address.");
		frm.username.focus();
		return false;
	} else if (frm.password.value.length == 0) {
		alert("Please enter a password.");
		frm.password.focus();
		return false;
	} else {
		// submit
		return true;
	}
}

function validateForgotPass(formName) {
	var frm = document.forms[formName];
	if (!validateEmail(formName, 'username')) { // checks for valid email
												// address
		return false; // email is invalid
	} else if (frm.username.value.length == 0) {
		alert("Please enter an email address.");
		frm.username.focus();
		return false;
	} else {
		// submit
		return true;
	}
}

function validateOrderRegister(formName) {
	var frm = document.forms[formName];
	if (!validateEmail(formName, 'r_emailaddress')) { // checks for valid
														// email address
		return false; // email is invalid
	} else if (frm.r_emailaddress.value.length == 0) {
		alert("Please enter an email address.");
		frm.r_emailaddress.focus();
		return false;
	} else if (frm.r_confirmemailaddress.value.length == 0) {
		alert("Please confirm your email address.");
		frm.r_confirmemailaddress.focus();
		return false;
	} else if (frm.password.value.length == 0) {
		alert("Please enter a password.");
		frm.password.focus();
		return false;
	} else if (frm.confirmpassword.value.length == 0) {
		alert("Please confirm your password.");
		frm.confirmpassword.focus();
		return false;
	} else if (frm.r_emailaddress.value != frm.r_confirmemailaddress.value) {
		alert("The email addresses you entered do not match.");
		frm.r_confirmemailaddress.focus();
		return false;
	} else if (frm.password.value != frm.confirmpassword.value) {
		alert("The passwords you entered do nto match");
		frm.confirmpassword.focus();
		return false;
	} else {
		// submit
		return true;
	}
}

function validateLateRegister(formName) {
	var frm = document.forms[formName];
	if (frm.password.value.length == 0) {
		alert("Please enter a password.");
		frm.password.focus();
		return false;
	} else if (frm.confirmpassword.value.length == 0) {
		alert("Please confirm your password.");
		frm.confirmpassword.focus();
		return false;
	} else if (frm.password.value != frm.confirmpassword.value) {
		alert("The passwords you entered do nto match");
		frm.confirmpassword.focus();
		return false;
	} else {
		// submit
		return true;
	}
}

function validateYourDetailsForm() {
	var frm = document.forms['justCheckout'];
	// qasHouseSearch & qasPostcode are QAS inputs. Having a value implies a
	// seach rather than a submit
	// qasHouseSearch2 & qasPostcode2 are QAS inputs. Having a value implies a
	// seach rather than a submit
	if (frm.qasHouseSearch.value.length == 0
			&& frm.qasPostcode.value.length == 0) {
		if (frm.qasHouseSearch2.value.length == 0
				&& frm.qasPostcode2.value.length == 0) {
			if (!validateEmail('justCheckout', 'c_email')) { // checks for
																// valid email
																// address
				return false; // email is invalid
			} else if (frm.c_first_name.value.length == 0) {
				alert("Please enter your name.");
				frm.c_first_name.focus();
				return false;
			} else if (frm.c_email.value.length == 0) {
				alert("Please enter an email address.");
				frm.c_email.focus();
				return false;
			} else if (frm.c_email_confirm.value.length == 0) {
				alert("Please confirm your email address.");
				frm.c_email_confirm.focus();
				return false;
			} else if (frm.c_address1.value.length == 0) {
				alert("Please enter your address.");
				frm.c_address1.focus();
				return false;
			} else if (frm.c_postcode.value.length == 0) {
				alert("Please enter your postcode.");
				frm.c_postcode.focus();
				return false;
			} else if (frm.d_name.value.length == 0) {
				alert("Please enter a delivery name.");
				frm.d_name.focus();
				return false;
			} else if (frm.d_address1.value.length == 0) {
				alert("Please enter a delivery address.");
				frm.d_address1.focus();
				return false;
			} else {
				// submit
				return true;
			}
		} else {
			return true;
		}
	} else {
		return true;
	}
}

function validateEcard(formName) {
	var frm = document.forms[formName];
	if (!validateEmail(formName, 'youremail')) { // checks for valid email
													// address
		return false; // email is invalid
	} else if (!validateEmail(formName, 'recipemail')) { // checks for valid
															// email address
		return false; // email is invalid
	} else if (frm.yourname.value.length == 0) {
		alert("Please enter your name.");
		frm.yourname.focus();
		return false;
	} else if (frm.youremail.value.length == 0) {
		alert("Please enter your email address.");
		frm.youremail.focus();
		return false;
	} else if (frm.recipname.value.length == 0) {
		alert("Please enter the recipient name.");
		frm.recipname.focus();
		return false;
	} else if (frm.recipemail.value.length == 0) {
		alert("Please enter the recipient email address.");
		frm.recipemail.focus();
		return false;
	} else if (frm.message.value.length == 0) {
		alert("Please enter a message.");
		frm.message.focus();
		return false;
	} else {
		// submit
		return true;
	}
}

function validateCompetitionForm() {
	var frm = document.forms['competition'];
	if (!validateEmail('competition', 'txtEmail')) { // checks for valid
														// email address
		return false; // email is invalid
	} else if (frm.txtName.value.length == 0) {
		alert("Please enter a name.");
		frm.txtName.focus();
		return false;
	} else if (frm.txtEmail.value.length == 0) {
		alert("Please enter an email address.");
		frm.txtEmail.focus();
		return false;
	} else if (frm.q1.value.length == 0) {
		alert("Please answer all questions.");
		frm.q1.focus();
		return false;
	} else if (frm.q2.value.length == 0) {
		alert("Please answer all questions.");
		frm.q2.focus();
		return false;
	} else if (frm.q3.value.length == 0) {
		alert("Please answer all questions.");
		frm.q3.focus();
		return false;
	} else if (frm.q4.value.length == 0) {
		alert("Please answer all questions.");
		frm.q4.focus();
		return false;
	} else if (frm.q5.value.length == 0) {
		alert("Please answer all questions.");
		frm.q5.focus();
		return false;
	} else {
		// submit
		return true;
	}
}

// // **** //// Function to hide/show menus on homepage //// **** ////
function liToggle(ulid) {
	if (document.getElementById(ulid).className == "show") {
		document.getElementById(ulid).className = "hide";
	} else {
		document.getElementById(ulid).className = "show";
	}
}
