// Victoria Moore Javascript
//
// Last Updated: 28th April 2009. Author: M J Knight
//
var subTotal = 0.00;
var orderTotal = 0.00;
var delivery = 0.00;
var price = new Array(25.00,25.00,25.00,25.00,25.00,25.00,6.00,6.00,6.00,12.00,12.00,12.00,15.00,18.50);
var quantity = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0);

function ReadCookie() {
	// Ask the great Cookie Monster for some data and store the results in the quantities array
	if (document.cookie.length > 0) {
		for (i=0; i < 14; i++) {
			if (i < 10) {
			    cookieStart = document.cookie.indexOf("Quantity" + i + "=") + 10;
			} else {
				cookieStart = document.cookie.indexOf("Quantity" + i + "=") + 11;
			}
            cookieEnd = document.cookie.indexOf(";", cookieStart);
            if (cookieEnd == -1) { cookieEnd = document.cookie.length; }
			if (i < 10) {
				if (cookieStart > 9) { quantity[i] = parseInt(unescape(document.cookie.substring(cookieStart,cookieEnd))); }
			} else {
				if (cookieStart > 10) { quantity[i] = parseInt(unescape(document.cookie.substring(cookieStart,cookieEnd))); }
			}
		}
	}
	for (i=0; i < 14; i++) {
		if (isNaN(quantity[i])) { quantity[i] = 0; }
	}
}

function WriteCookie() {
	// Updated our data so time to feed the Cookie Monster
	for (i=0; i < 14; i++) {
		if (isNaN(quantity[i])) { quantity[i] = 0; }
		document.cookie = "Quantity" + i + "=" + escape(quantity[i]);
	}
}
function ClearOrder() {
	for (i=0; i < products.length; i++) {
		quantities[i] = 0;
	}
	deductAmount = 0;
	WriteCookie();
	BuildOrder();
	document.getElementById("promoCode").value = "";
	document.getElementById("b_title").focus();
}

function AddToOrder(productIndex) {
	var fieldName = "";
	var foundError = "N";
	ReadCookie();
	if (productIndex == 0) { fieldName = "set_one_gs"; }
	if (productIndex == 1) { fieldName = "set_two_gs"; }
	if (productIndex == 2) { fieldName = "set_three_gs"; }
	if (productIndex == 3) { fieldName = "set_one_hc"; }
	if (productIndex == 4) { fieldName = "set_two_hc"; }
	if (productIndex == 5) { fieldName = "set_three_hc"; }
	if (productIndex == 6) { fieldName = "set_one_cs"; }
	if (productIndex == 7) { fieldName = "set_two_cs"; }
	if (productIndex == 8) { fieldName = "set_three_cs"; }
	if (productIndex == 9) { fieldName = "set_four_cs"; }
	if (productIndex == 10) { fieldName = "set_five_cs"; }
	if (productIndex == 11) { fieldName = "set_six_cs"; }
	if (productIndex == 12) { fieldName = "set_seven_cs"; }
	if (productIndex == 13) { fieldName = "set_four_hc"; }
	var trimmedValue = document.getElementById(fieldName).value.replace(/^\s+|\s+$/g, '');
	if (trimmedValue.length > 2 || trimmedValue.length < 1 || isNaN(trimmedValue)) {
		foundError = "Y";
	} else {
		if (trimmedValue.substring(0,1) < "0" ||  trimmedValue.substring(0,1) > "9") {
			foundError = "Y";
		} else {
			if (trimmedValue.length ==2) {
				if (trimmedValue.substring(1,2) < "0" ||  trimmedValue.substring(1,2) > "9") {
					foundError = "Y";
				}
			}
		}
	}
	if (foundError == "Y") {
		alert("Please enter a valid number between 1 and 99");
		document.getElementById(fieldName).select();
		document.getElementById(fieldName).focus();
	} else {
		quantity[productIndex] = parseInt(trimmedValue);
		document.getElementById(fieldName).value = "";
	}
	WriteCookie();
	//window.location.href = "order_page.html";
}
function ChangeItemQuantity(quantityIndex) {
	var fieldName = "";
	var totalFieldName = "";
	var foundError = "N";
	var itemTotal = 0.00;
	if (quantityIndex == 0) { fieldName = "qty_0"; totalFieldName = "total_0"; }
	if (quantityIndex == 1) { fieldName = "qty_1"; totalFieldName = "total_1"; }
	if (quantityIndex == 2) { fieldName = "qty_2"; totalFieldName = "total_2"; }
	if (quantityIndex == 3) { fieldName = "qty_3"; totalFieldName = "total_3"; }
	if (quantityIndex == 4) { fieldName = "qty_4"; totalFieldName = "total_4"; }
	if (quantityIndex == 5) { fieldName = "qty_5"; totalFieldName = "total_5"; }
	if (quantityIndex == 6) { fieldName = "qty_6"; totalFieldName = "total_6"; }
	if (quantityIndex == 7) { fieldName = "qty_7"; totalFieldName = "total_7"; }
	if (quantityIndex == 8) { fieldName = "qty_8"; totalFieldName = "total_8"; }
	if (quantityIndex == 9) { fieldName = "qty_9"; totalFieldName = "total_9"; }
	if (quantityIndex == 10) { fieldName = "qty_10"; totalFieldName = "total_10"; }
	if (quantityIndex == 11) { fieldName = "qty_11"; totalFieldName = "total_11"; }
	if (quantityIndex == 12) { fieldName = "qty_12"; totalFieldName = "total_12"; }
	if (quantityIndex == 13) { fieldName = "qty_13"; totalFieldName = "total_13"; }
	var trimmedValue = document.getElementById(fieldName).value.replace(/^\s+|\s+$/g, '');
	if (trimmedValue != "") {
		if (trimmedValue.length > 2 || trimmedValue.length < 1 || isNaN(trimmedValue)) {
			foundError = "Y";
		} else {
			if (trimmedValue.substring(0,1) < "0" ||  trimmedValue.substring(0,1) > "9") {
				foundError = "Y";
			} else {
				if (trimmedValue.length ==2) {
					if (trimmedValue.substring(1,2) < "0" ||  trimmedValue.substring(1,2) > "9") {
						foundError = "Y";
					}
				}
			}
		}
	}
	if (foundError == "Y") {
		alert("Please enter a valid number between 1 and 99");
		document.getElementById(fieldName).select();
		document.getElementById(fieldName).focus();
	} else {
		if (trimmedValue == "") {
			quantity[quantityIndex] = 0;
		} else {
			quantity[quantityIndex] = parseInt(trimmedValue);
			itemTotal = quantity[quantityIndex] * price[quantityIndex];
			document.getElementById(totalFieldName).innerHTML = itemTotal.toFixed(2);
		}
		subTotal = 0.00;
		for (i=0; i < 14; i++) {
			subTotal = subTotal + (quantity[i] * price[i]);
		}
		if (subTotal == 0) {
			document.getElementById("sub_total").innerHTML = "&nbsp;";
		} else {
			document.getElementById("sub_total").innerHTML = subTotal.toFixed(2);
		}
	}
	CalculateDelivery();
	WriteCookie();
}
function ResetItemQuantity(quantityIndex) {
	var fieldName = "";
	var totalFieldName = "";
	var resetFieldName = "";
	if (quantityIndex == 0) { fieldName = "qty_0"; totalFieldName = "total_0"; resetFieldName = "reset_0"; }
	if (quantityIndex == 1) { fieldName = "qty_1"; totalFieldName = "total_1"; resetFieldName = "reset_1"; }
	if (quantityIndex == 2) { fieldName = "qty_2"; totalFieldName = "total_2"; resetFieldName = "reset_2"; }
	if (quantityIndex == 3) { fieldName = "qty_3"; totalFieldName = "total_3"; resetFieldName = "reset_3"; }
	if (quantityIndex == 4) { fieldName = "qty_4"; totalFieldName = "total_4"; resetFieldName = "reset_4"; }
	if (quantityIndex == 5) { fieldName = "qty_5"; totalFieldName = "total_5"; resetFieldName = "reset_5"; }
	if (quantityIndex == 6) { fieldName = "qty_6"; totalFieldName = "total_6"; resetFieldName = "reset_6"; }
	if (quantityIndex == 7) { fieldName = "qty_7"; totalFieldName = "total_7"; resetFieldName = "reset_7"; }
	if (quantityIndex == 8) { fieldName = "qty_8"; totalFieldName = "total_8"; resetFieldName = "reset_8"; }
	if (quantityIndex == 9) { fieldName = "qty_9"; totalFieldName = "total_9"; resetFieldName = "reset_9"; }
	if (quantityIndex == 10) { fieldName = "qty_10"; totalFieldName = "total_10"; resetFieldName = "reset_10"; }
	if (quantityIndex == 11) { fieldName = "qty_11"; totalFieldName = "total_11"; resetFieldName = "reset_11"; }
	if (quantityIndex == 12) { fieldName = "qty_12"; totalFieldName = "total_12"; resetFieldName = "reset_12"; }
	if (quantityIndex == 13) { fieldName = "qty_13"; totalFieldName = "total_13"; resetFieldName = "reset_13"; }
	quantity[quantityIndex] = 0;
	subTotal = 0.00;
	for (i=0; i < 14; i++) {
		subTotal = subTotal + (quantity[i] * price[i]);
	}
	if (subTotal == 0) {
		document.getElementById("sub_total").innerHTML = "&nbsp;";
	} else {
		document.getElementById("sub_total").innerHTML = subTotal.toFixed(2);
	}
	document.getElementById(resetFieldName).checked = false;
	document.getElementById(fieldName).value = "";
	document.getElementById(totalFieldName).innerHTML = "&nbsp;";
	CalculateDelivery();
	WriteCookie();
}

function BuildOrder() {
	
	var orderTotal = 0.00;
	var itemTotal = 0.00;
	var fieldName = "";
	var totalFieldName = "";
	subTotal = 0.00;
	ReadCookie();
	for (i=0; i < 14; i++) {
		fieldName = "qty_" + i;
		totalFieldName = "total_" + i;
		subTotal = subTotal + (quantity[i] * price[i]);
		if (quantity[i] == 0) {
			document.getElementById(fieldName).value = "";
			document.getElementById(totalFieldName).innerHTML = "&nbsp;";
		} else {
			document.getElementById(fieldName).value = quantity[i];
			itemTotal = quantity[i] * price[i];
			document.getElementById(totalFieldName).innerHTML = itemTotal.toFixed(2);
		}
	}
	if (subTotal == 0) {
		document.getElementById("sub_total").innerHTML = "&nbsp;";
	} else {
		document.getElementById("sub_total").innerHTML = subTotal.toFixed(2);
	}
	CalculateDelivery();
}
function CalculateDelivery() {
	orderTotal = 0.00;
	delivery = 0.00;
	subTotal = 0.00;
	for (i=0; i < 14; i++) {
		subTotal = subTotal + (quantity[i] * price[i]);
	}
	if (document.getElementById("Shipping").value == "United Kingdom") {
		if (subTotal <= 25) { delivery = 5.00; }
		if (subTotal > 25 && subTotal <= 100) { delivery = 10.00; }
		if (subTotal > 100) { delivery = 0.00; }
	}
	if (document.getElementById("Shipping").value == "Europe") {
		if (subTotal <= 25) { delivery = 10.00; }
		if (subTotal > 25 && subTotal <= 100) { delivery = 20.00; }
		if (subTotal > 100) { delivery = 30.00; }
	}
	if (document.getElementById("Shipping").value == "Rest of World") {
		if (subTotal <= 25) { delivery = 15.00; }
		if (subTotal > 25 && subTotal <= 100) { delivery = 25.00; }
		if (subTotal > 100) { delivery = 35.00; }
	}
	if (delivery == 0) {
		if (document.getElementById("Shipping").value == "United Kingdom") {
			document.getElementById("shipping_value").innerHTML = "0.00";
		} else {
			document.getElementById("shipping_value").innerHTML = "&nbsp;";
		}
	} else {
		document.getElementById("shipping_value").innerHTML = delivery.toFixed(2);
	}
	if (subTotal == 0 || (delivery == 0 && document.getElementById("Shipping").value != "United Kingdom")) {
		document.getElementById("order_total").innerHTML = "&nbsp;";
	} else {
		orderTotal = subTotal + delivery;
		document.getElementById("order_total").innerHTML = orderTotal.toFixed(2);
	}
}
function BuildDeliveryAddress() {
	if (document.getElementById("confirm_address").checked == true) {
		document.getElementById("del_forename_field").value = document.getElementById("billing_forename").value;
		document.getElementById("del_surname_field").value = document.getElementById("billing_surname").value;
		document.getElementById("del_address_field_1").value = document.getElementById("address_field_1").value;
		document.getElementById("del_address_field_2").value = document.getElementById("address_field_2").value;
		document.getElementById("del_town_field").value = document.getElementById("town_field").value;
		document.getElementById("del_county_field").value = document.getElementById("county_field").value;
		document.getElementById("del_country_field").value = document.getElementById("country_field").value;
		document.getElementById("del_postcode_field").value = document.getElementById("postcode_field").value;
		document.getElementById("del_email_field").value = document.getElementById("email_field").value;
		document.getElementById("del_telephone_field").value = document.getElementById("telephone_field").value;
	} else {
		document.getElementById("del_forename_field").value = "";
		document.getElementById("del_surname_field").value = "";
		document.getElementById("del_address_field_1").value = "";
		document.getElementById("del_address_field_2").value = "";
		document.getElementById("del_town_field").value = "";
		document.getElementById("del_county_field").value = "";
		document.getElementById("del_country_field").value = "";
		document.getElementById("del_postcode_field").value = "";
		document.getElementById("del_email_field").value = "";
		document.getElementById("del_telephone_field").value = "";
	}
}
function ValidEmail(emailAddress) {
	var emailIndex = 0;
	if (emailAddress == "") {
		return true;
	} else {
		if (emailAddress.length < 5) {
			return false;
		} else {
			if (emailAddress.indexOf(".") < 1) {
				return false;
			} else {
				if (emailAddress.indexOf("@") < 1) {
					return false;
				} else {
					emailIndex = emailAddress.indexOf("@");
					if (emailAddress.indexOf(".", emailIndex) < emailAddress.indexOf("@")) {
						return false;
					} else {
						return true;
					}
				}
			}
		}
	}
}

function ValidateOrder() {
	var error = 0;
	var elementNumber = 0;
	var total = parseFloat(document.getElementById("order_total").innerHTML);
	ReadCookie();
	if (document.getElementById("order_total").innerHTML == "&nbsp;" || total <= 0) {
		error = 1;
		alert("The order total must be greater than zero");
		document.getElementById("qty_0").select();
		document.getElementById("qty_0").focus();
	}
	// Check the Billing Address
	if (error == 0) {
		if (document.getElementById("billing_forename").value == "") {
			error = 1;
			alert("Please enter your Forename");
			document.getElementById("billing_forename").select();
			document.getElementById("billing_forename").focus();
		} else {
			if (document.getElementById("billing_surname").value == "") {
				error = 1;
				alert("Please enter your Surname");
				document.getElementById("billing_surname").select();
				document.getElementById("billing_surname").focus();
			} else {
				if (document.getElementById("address_field_1").value == "") {
					error = 1;
					alert("Please enter your 1st Address Line");
					document.getElementById("address_field_1").select();
					document.getElementById("address_field_1").focus();
				} else {
					if (document.getElementById("town_field").value == "") {
						error = 1;
						alert("Please enter your Town or City");
						document.getElementById("town_field").select();
						document.getElementById("town_field").focus();
					} else {
						if (document.getElementById("county_field").value == "") {
							error = 1;
							alert("Please enter your County or State");
							document.getElementById("county_field").select();
							document.getElementById("county_field").focus();
						} else {
							if (document.getElementById("country_field").value == "") {
								error = 1;
								alert("Please enter your Country");
								document.getElementById("country_field").select();
								document.getElementById("country_field").focus();
							} else {
								if (document.getElementById("postcode_field").value == "") {
									error = 1;
									alert("Please enter your Post or Zip Code");
									document.getElementById("postcode_field").select();
									document.getElementById("postcode_field").focus();			
								} else {
									if (document.getElementById("email_field").value == "") {
										error = 1;
										alert("Please enter your Email Address");
										document.getElementById("email_field").select();
										document.getElementById("email_field").focus();
									} else {
										if (ValidEmail(document.getElementById("email_field").value) == false) {
											error = 1;
											alert("Please enter a valid Email Address");
											document.getElementById("email_field").select();
											document.getElementById("email_field").focus();
										} else {
											if (document.getElementById("telephone_field").value == "") {
												error = 1;
												alert("Please enter your Telephone Number");
												document.getElementById("telephone_field").select();
												document.getElementById("telephone_field").focus();
											}
										}
									}
								}
							}	
						}
					}
				}
			}
		}
	}
	if (error == 0) {
		// Move fields to the PayPal form and then return true
		elementNumber = 5;
		if (quantity[0] != 0) {
			document.PayPalForm.elements[elementNumber].value = price[0];
			elementNumber++;
			document.PayPalForm.elements[elementNumber].value = "100gm Soap & 10cl Candle Gift Set (Cinnamon, Vetimos & Cognac Oil)";
			elementNumber++;
			document.PayPalForm.elements[elementNumber].value = quantity[0];
			elementNumber++;
		}
		if (quantity[1] != 0) {
			document.PayPalForm.elements[elementNumber].value = price[1];
			elementNumber++;
			document.PayPalForm.elements[elementNumber].value = "100gm Soap & 10cl Candle Gift Set (Frangipani & Jasmine)";
			elementNumber++;
			document.PayPalForm.elements[elementNumber].value = quantity[1];
			elementNumber++;
		}
		if (quantity[2] != 0) {
			document.PayPalForm.elements[elementNumber].value = price[2];
			elementNumber++;
			document.PayPalForm.elements[elementNumber].value = "100gm Soap & 10cl Candle Gift Set (Frankincense, Jasmine & Vanilla Bean)";
			elementNumber++;
			document.PayPalForm.elements[elementNumber].value = quantity[2];
			elementNumber++;
		}
		if (quantity[3] != 0) {
			document.PayPalForm.elements[elementNumber].value = price[3];
			elementNumber++;
			document.PayPalForm.elements[elementNumber].value = "25cl Handmade Soya Candle (Cinnamon, Vetimos & Cognac Oil)";
			elementNumber++;
			document.PayPalForm.elements[elementNumber].value = quantity[3];
			elementNumber++;
		}
		if (quantity[4] != 0) {
			document.PayPalForm.elements[elementNumber].value = price[4];
			elementNumber++;
			document.PayPalForm.elements[elementNumber].value = "25cl Handmade Soya Candle (Frangipani & Jasmine)";
			elementNumber++;
			document.PayPalForm.elements[elementNumber].value = quantity[4];
			elementNumber++;
		}
		if (quantity[5] != 0) {
			document.PayPalForm.elements[elementNumber].value = price[5];
			elementNumber++;
			document.PayPalForm.elements[elementNumber].value = "25cl Handmade Soya Candle (Frankincense, Jasmine & Vanilla Bean)";
			elementNumber++;
			document.PayPalForm.elements[elementNumber].value = quantity[5];
			elementNumber++;
		}
		if (quantity[6] != 0) {
			document.PayPalForm.elements[elementNumber].value = price[6];
			elementNumber++;
			document.PayPalForm.elements[elementNumber].value = "100gm Handmade Castile Soap (Cinnamon, Vetimos & Cognac Oil)";
			elementNumber++;
			document.PayPalForm.elements[elementNumber].value = quantity[6];
			elementNumber++;
		}
		if (quantity[7] != 0) {
			document.PayPalForm.elements[elementNumber].value = price[7];
			elementNumber++;
			document.PayPalForm.elements[elementNumber].value = "100gm Handmade Castile Soap (Frangipani & Jasmine)";
			elementNumber++;
			document.PayPalForm.elements[elementNumber].value = quantity[7];
			elementNumber++;
		}
		if (quantity[8] != 0) {
			document.PayPalForm.elements[elementNumber].value = price[8];
			elementNumber++;
			document.PayPalForm.elements[elementNumber].value = "100gm Handmade Castile Soap (Frankincense, Jasmine & Vanilla Bean)";
			elementNumber++;
			document.PayPalForm.elements[elementNumber].value = quantity[8];
			elementNumber++;
		}
		if (quantity[9] != 0) {
			document.PayPalForm.elements[elementNumber].value = price[9];
			elementNumber++;
			document.PayPalForm.elements[elementNumber].value = "Gentle Body Wash (Frankincense, Jasmine & Vanilla)";
			elementNumber++;
			document.PayPalForm.elements[elementNumber].value = quantity[9];
			elementNumber++;
		}
		if (quantity[10] != 0) {
			document.PayPalForm.elements[elementNumber].value = price[10];
			elementNumber++;
			document.PayPalForm.elements[elementNumber].value = "Revitalising Shampoo (Frankincense, Jasmine & Vanilla)";
			elementNumber++;
			document.PayPalForm.elements[elementNumber].value = quantity[10];
			elementNumber++;
		}
		if (quantity[11] != 0) {
			document.PayPalForm.elements[elementNumber].value = price[11];
			elementNumber++;
			document.PayPalForm.elements[elementNumber].value = "Restoring Conditioner (Frankincense, Jasmine & Vanilla)";
			elementNumber++;
			document.PayPalForm.elements[elementNumber].value = quantity[11];
			elementNumber++;
		}
		if (quantity[12] != 0) {
			document.PayPalForm.elements[elementNumber].value = price[12];
			elementNumber++;
			document.PayPalForm.elements[elementNumber].value = "Hydrating Body Cream (Frankincense, Jasmine & Vanilla)";
			elementNumber++;
			document.PayPalForm.elements[elementNumber].value = quantity[12];
			elementNumber++;
		}
		if (quantity[13] != 0) {
			document.PayPalForm.elements[elementNumber].value = price[13];
			elementNumber++;
			document.PayPalForm.elements[elementNumber].value = "Indulgence Massage Candle (Frankincense, Jasmine & Vanilla)";
			elementNumber++;
			document.PayPalForm.elements[elementNumber].value = quantity[13];
		}
		document.PayPalForm.shipping_1.value = document.getElementById("shipping_value").innerHTML;
		document.PayPalForm.first_name.value = document.getElementById("billing_forename").value;
		document.PayPalForm.last_name.value = document.getElementById("billing_surname").value;
		document.PayPalForm.address1.value = document.getElementById("address_field_1").value;
		document.PayPalForm.address2.value = document.getElementById("address_field_2").value;
		document.PayPalForm.city.value = document.getElementById("town_field").value;
		document.PayPalForm.state.value = document.getElementById("county_field").value;
		document.PayPalForm.zip.value = document.getElementById("postcode_field").value;
		document.PayPalForm.country.value = document.getElementById("country_field").value;
		document.PayPalForm.night_phone_a.value = "";
		document.PayPalForm.night_phone_b.value = document.getElementById("telephone_field").value;
		document.PayPalForm.email.value = document.getElementById("email_field").value;
		return true;
	} else {
		return false;
	}
}
