// form_functions.js for InterPetal.com
var days = new Array("none","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31");
var months = new Array("none","January","February","March","April","May","June","July","August","September","October","November","December");
var years = new Array("none");
var monthdays = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
var timeoffset = 0;
var label_colour1 = "";
var label_colour2 = "";
var label_colour3 = "";
var label_colour4 = "";
var label_colour5 = "";
var label_colour6 = "";
//var millisDay = 24 * 60 * 60 * 1000;
var millisDay = 86400000;

function initForm(formtype) {
// CONTACTUS
	if (formtype == 'contactus') {
	} else
// ORDERQUICK
	if (formtype == 'order-quick') {
	} else
// ORDER
	if (formtype == 'order') {
		for (i=1; i<document.orderform.postage_year.length; i++) {
			years[years.length] = document.orderform.postage_year[i].value;
		}
		now = new Date();
		timeoffset = (document.orderform.serverdate.value * 1000) - now.getTime();
		parseBouquet1(document.orderform.type_petals1.selectedIndex);
		parseBouquet2(document.orderform.type_petals2.selectedIndex);
		parseBouquet3(document.orderform.type_petals3.selectedIndex);
		parseBouquet4(document.orderform.type_petals4.selectedIndex);
		parseBouquet5(document.orderform.type_petals5.selectedIndex);
		parseBouquet6(document.orderform.type_petals6.selectedIndex);
		label_colour1 = document.orderform.petals1_name.value + " COLOUR:";
		label_colourcombo1 = "Your " + document.orderform.petals1_name.value + " COLOUR COMBINATION:";
		label_colour2 = document.orderform.petals2_name.value + " COLOUR:";
		label_colourcombo2 = "Your " + document.orderform.petals2_name.value + " COLOUR COMBINATION:";
		label_colour3 = document.orderform.petals3_name.value + " COLOUR:";
		label_colourcombo3 = "Your " + document.orderform.petals3_name.value + " COLOUR COMBINATION:";
		label_colour4 = document.orderform.petals4_name.value + " COLOUR:";
		label_colourcombo4 = "Your " + document.orderform.petals4_name.value + " COLOUR COMBINATION:";
		label_colour5 = document.orderform.petals5_name.value + " COLOUR:";
		label_colourcombo5 = "Your " + document.orderform.petals5_name.value + " COLOUR COMBINATION:";
		label_colour6 = document.orderform.petals6_name.value + " COLOUR:";
		label_colourcombo6 = "Your " + document.orderform.petals6_name.value + " COLOUR COMBINATION:";
		writeout('hide2', "");
		document.orderform.display_price.disabled = true;
		recalculatePrice();
	} else
	{
		// Do nothing
	}
}

function Validate(form, formtype) {
// CONTACTUS
	if (formtype == 'contactus') {
		if (!isBlank(form.email.value)) {
			if (!isEmail(form.email.value)) {
				return(formError("Please enter a valid E-mail Address", form.email));
			}
		}
	} else
// ORDERQUICK
	if (formtype == 'order-quick') {
		if (!checkBlank("your Name", form.name)) return false;
		if (!checkEmail("your E-mail Address", form.email)) return false;
		if (!checkBlank("your Reference Number", form.orderref)) return false;
		if (form.orderref.value.length != 7) {
			return(formError("Please enter a valid Reference Number", form.orderref));
		}
		if (!checkBlank("an Amount", form.inputamount)) return false;
		if (isNaN(form.inputamount.value)) {
			form.inputamount.value = "";
			return(formError("Please enter a valid Amount", form.inputamount));
		}
		return true;
	} else
// ORDER
	if (formtype == 'order') {

	// Initialize the variables
		form.orderinfo.value = "";
		form.petals1_description.value = "None";
		form.petals2_description.value = "None";
		form.petals3_description.value = "None";
		form.petals4_description.value = "None";
		form.petals5_description.value = "None";
		form.petals6_description.value = "None";
		form.code_petals1.value = "none";
		form.code_petals2.value = "none";
		form.code_petals3.value = "none";
		form.code_petals4.value = "none";
		form.code_petals5.value = "none";
		form.code_petals6.value = "none";
		form.colour1.value = "N/A";
		form.colour2.value = "N/A";
		form.colour3.value = "N/A";
		form.colour4.value = "N/A";
		form.colour5.value = "N/A";
		form.colour6.value = "N/A";
		form.amount.value = "0";
		form.delivery_method.value = "Worldwide Delivery";
		form.special_offer.value = "None";

	// Petals1
		var bouquet1_index = form.type_petals1.selectedIndex;
		if (bouquet1[bouquet1_index].orderinfo != "none") {
			form.petals1_description.value = bouquet1[bouquet1_index].orderinfo;
			form.code_petals1.value = bouquet1[bouquet1_index].ordercode;
			form.amount.value = "" + (parseInt(bouquet1[bouquet1_index].cost) + parseInt(form.amount.value));
			var colour1_code = "";
			if (form.colourlist1.value != "none") {
				var colour1_index = 0;
				if (form.colourlist1.value == "single") {
					colour1_index = getsinglecolour1Index(form.petals_colour1.selectedIndex);
				} else {
					colour1_index = getmulticolour1Index(form.petals_colour1.selectedIndex);
				}
				if (colour1[colour1_index].orderinfo == "none") {
					return(formError("Please select a " + label_colour1, form.petals_colour1));
				} else if (colour1[colour1_index].orderinfo == "Customized") {
					if (isBlank(form.petals_colourcombo1.value)) {
						return(formError("Please enter " + label_colourcombo1, form.petals_colourcombo1));
					} else {
						escapeField(form.petals_colourcombo1);
						colour1_code = colour1[colour1_index].ordercode + " ";
						form.colour1.value = form.petals_colourcombo1.value;
					}
				} else {
					colour1_code = colour1[colour1_index].ordercode + " ";
					form.colour1.value = colour1[colour1_index].orderinfo;
				}
			} else {
				form.colour1.value = bouquet1[bouquet1_index].colour;
			}
			if (form.orderinfo.value != "") { form.orderinfo.value += ", "; }
			form.orderinfo.value += colour1_code + bouquet1[bouquet1_index].ordercode;
		}
//		alert("code_petals1: " + form.code_petals1.value + " colour1: " + form.colour1.value);
	// Petals2
		var bouquet2_index = form.type_petals2.selectedIndex;
		if (bouquet2[bouquet2_index].orderinfo != "none") {
			form.petals2_description.value = bouquet2[bouquet2_index].orderinfo;
			form.code_petals2.value = bouquet2[bouquet2_index].ordercode;
			form.amount.value = "" + (parseInt(bouquet2[bouquet2_index].cost) + parseInt(form.amount.value));
			var colour2_code = "";
			if (form.colourlist2.value != "none") {
				var colour2_index = 0;
				if (form.colourlist2.value == "single") {
					colour2_index = getsinglecolour2Index(form.petals_colour2.selectedIndex);
				} else {
					colour2_index = getmulticolour2Index(form.petals_colour2.selectedIndex);
				}
				if (colour2[colour2_index].orderinfo == "none") {
					return(formError("Please select a " + label_colour2, form.petals_colour2));
				} else if (colour2[colour2_index].orderinfo == "Customized") {
					if (isBlank(form.petals_colourcombo2.value)) {
						return(formError("Please enter " + label_colourcombo2, form.petals_colourcombo2));
					} else {
						escapeField(form.petals_colourcombo2);
						colour2_code = colour2[colour2_index].ordercode + " ";
						form.colour2.value = form.petals_colourcombo2.value;
					}
				} else {
					colour2_code = colour2[colour2_index].ordercode + " ";
					form.colour2.value = colour2[colour2_index].orderinfo;
				}
			} else {
				form.colour2.value = bouquet2[bouquet2_index].colour;
			}
			if (form.orderinfo.value != "") { form.orderinfo.value += ", "; }
			form.orderinfo.value += colour2_code + bouquet2[bouquet2_index].ordercode;
		}
//		alert("code_petals2: " + form.code_petals2.value + " colour2: " + form.colour2.value);
	// Petals3
		var bouquet3_index = form.type_petals3.selectedIndex;
		if (bouquet3[bouquet3_index].orderinfo != "none") {
			form.petals3_description.value = bouquet3[bouquet3_index].orderinfo;
			form.code_petals3.value = bouquet3[bouquet3_index].ordercode;
			form.amount.value = "" + (parseInt(bouquet3[bouquet3_index].cost) + parseInt(form.amount.value));
			var colour3_code = "";
			if (form.colourlist3.value != "none") {
				var colour3_index = 0;
				if (form.colourlist3.value == "single") {
					colour3_index = getsinglecolour3Index(form.petals_colour3.selectedIndex);
				} else {
					colour3_index = getmulticolour3Index(form.petals_colour3.selectedIndex);
				}
				if (colour3[colour3_index].orderinfo == "none") {
					return(formError("Please select a " + label_colour3, form.petals_colour3));
				} else if (colour3[colour3_index].orderinfo == "Customized") {
					if (isBlank(form.petals_colourcombo3.value)) {
						return(formError("Please enter " + label_colourcombo3, form.petals_colourcombo3));
					} else {
						escapeField(form.petals_colourcombo3);
						colour3_code = colour3[colour3_index].ordercode + " ";
						form.colour3.value = form.petals_colourcombo3.value;
					}
				} else {
					colour3_code = colour3[colour3_index].ordercode + " ";
					form.colour3.value = colour3[colour3_index].orderinfo;
				}
			} else {
				form.colour3.value = bouquet3[bouquet3_index].colour;
			}
			if (form.orderinfo.value != "") { form.orderinfo.value += ", "; }
			form.orderinfo.value += colour3_code + bouquet3[bouquet3_index].ordercode;
		}
//		alert("code_petals3: " + form.code_petals3.value + " colour3: " + form.colour3.value);
	// Petals4
		var bouquet4_index = form.type_petals4.selectedIndex;
		if (bouquet4[bouquet4_index].orderinfo != "none") {
			form.petals4_description.value = bouquet4[bouquet4_index].orderinfo;
			form.code_petals4.value = bouquet4[bouquet4_index].ordercode;
			form.amount.value = "" + (parseInt(bouquet4[bouquet4_index].cost) + parseInt(form.amount.value));
			var colour4_code = "";
			if (form.colourlist4.value != "none") {
				var colour4_index = 0;
				if (form.colourlist4.value == "single") {
					colour4_index = getsinglecolour4Index(form.petals_colour4.selectedIndex);
				} else {
					colour4_index = getmulticolour4Index(form.petals_colour4.selectedIndex);
				}
				if (colour4[colour4_index].orderinfo == "none") {
					return(formError("Please select a " + label_colour4, form.petals_colour4));
				} else if (colour4[colour4_index].orderinfo == "Customized") {
					if (isBlank(form.petals_colourcombo4.value)) {
						return(formError("Please enter " + label_colourcombo4, form.petals_colourcombo4));
					} else {
						escapeField(form.petals_colourcombo4);
						colour4_code = colour4[colour4_index].ordercode + " ";
						form.colour4.value = form.petals_colourcombo4.value;
					}
				} else {
					colour4_code = colour4[colour4_index].ordercode + " ";
					form.colour4.value = colour4[colour4_index].orderinfo;
				}
			} else {
				form.colour4.value = bouquet4[bouquet4_index].colour;
			}
			if (form.orderinfo.value != "") { form.orderinfo.value += ", "; }
			form.orderinfo.value += colour4_code + bouquet4[bouquet4_index].ordercode;
		}
//		alert("code_petals4: " + form.code_petals4.value + " colour4: " + form.colour4.value);
	// Petals5
		var bouquet5_index = form.type_petals5.selectedIndex;
		if (bouquet5[bouquet5_index].orderinfo != "none") {
			form.petals5_description.value = bouquet5[bouquet5_index].orderinfo;
			form.code_petals5.value = bouquet5[bouquet5_index].ordercode;
			form.amount.value = "" + (parseInt(bouquet5[bouquet5_index].cost) + parseInt(form.amount.value));
			var colour5_code = "";
			if (form.colourlist5.value != "none") {
				var colour5_index = 0;
				if (form.colourlist5.value == "single") {
					colour5_index = getsinglecolour5Index(form.petals_colour5.selectedIndex);
				} else {
					colour5_index = getmulticolour5Index(form.petals_colour5.selectedIndex);
				}
				if (colour5[colour5_index].orderinfo == "none") {
					return(formError("Please select a " + label_colour5, form.petals_colour5));
				} else if (colour5[colour5_index].orderinfo == "Customized") {
					if (isBlank(form.petals_colourcombo5.value)) {
						return(formError("Please enter " + label_colourcombo5, form.petals_colourcombo5));
					} else {
						escapeField(form.petals_colourcombo5);
						colour5_code = colour5[colour5_index].ordercode + " ";
						form.colour5.value = form.petals_colourcombo5.value;
					}
				} else {
					colour5_code = colour5[colour5_index].ordercode + " ";
					form.colour5.value = colour5[colour5_index].orderinfo;
				}
			} else {
				form.colour5.value = bouquet5[bouquet5_index].colour;
			}
			if (form.orderinfo.value != "") { form.orderinfo.value += ", "; }
			form.orderinfo.value += colour5_code + bouquet5[bouquet5_index].ordercode;
		}
//		alert("code_petals5: " + form.code_petals5.value + " colour5: " + form.colour5.value);
	// Petals6
		var bouquet6_index = form.type_petals6.selectedIndex;
		if (bouquet6[bouquet6_index].orderinfo != "none") {
			form.petals6_description.value = bouquet6[bouquet6_index].orderinfo;
			form.code_petals6.value = bouquet6[bouquet6_index].ordercode;
			form.amount.value = "" + (parseInt(bouquet6[bouquet6_index].cost) + parseInt(form.amount.value));
			var colour6_code = "";
			if (form.colourlist6.value != "none") {
				var colour6_index = 0;
				if (form.colourlist6.value == "single") {
					colour6_index = getsinglecolour6Index(form.petals_colour6.selectedIndex);
				} else {
					colour6_index = getmulticolour6Index(form.petals_colour6.selectedIndex);
				}
				if (colour6[colour6_index].orderinfo == "none") {
					return(formError("Please select a " + label_colour6, form.petals_colour6));
				} else if (colour6[colour6_index].orderinfo == "Customized") {
					if (isBlank(form.petals_colourcombo6.value)) {
						return(formError("Please enter " + label_colourcombo6, form.petals_colourcombo6));
					} else {
						escapeField(form.petals_colourcombo6);
						colour6_code = colour6[colour6_index].ordercode + " ";
						form.colour6.value = form.petals_colourcombo6.value;
					}
				} else {
					colour6_code = colour6[colour6_index].ordercode + " ";
					form.colour6.value = colour6[colour6_index].orderinfo;
				}
			} else {
				form.colour6.value = bouquet6[bouquet6_index].colour;
			}
			if (form.orderinfo.value != "") { form.orderinfo.value += ", "; }
			form.orderinfo.value += colour6_code + bouquet6[bouquet6_index].ordercode;
		}
//		alert("code_petals6: " + form.code_petals6.value + " colour6: " + form.colour6.value);
		if (form.orderinfo.value == "") {
			return(formError("Please select at least one Product", form.type_petals1));
		}
	// Postage
		var postage_index = form.delivery.selectedIndex;
		if (postage[postage_index].orderinfo != "none") {
			form.delivery_method.value = postage[postage_index].orderinfo;
			form.code_postage.value = postage[postage_index].ordercode;
			form.amount.value = "" + (parseInt(postage[postage_index].cost) + parseInt(form.amount.value));
		} else {
			return(formError("Please select a delivery method", form.delivery));
		}
	// Offers
		if (!isBlank(form.offer.value)) {
			parseOffer(form);
		}
	// TESTLINE
	// Take the two // characters off the start of the next line to test
		// alert("orderinfo: " + form.orderinfo.value + "\n\n" + form.petals1_name.value + ": " + form.petals1_description.value + " (" + form.code_petals1.value + ")\ncolour: " + form.colour1.value  + "\n\n" + form.petals2_name.value + ": " + form.petals2_description.value + " (" + form.code_petals2.value + ")\ncolour: " + form.colour2.value + "\n\n" + form.petals3_name.value + ": " + form.petals3_description.value + " (" + form.code_petals3.value + ")\ncolour: " + form.colour3.value + "\n\n" + form.petals4_name.value + ": " + form.petals4_description.value + " (" + form.code_petals4.value + ")\ncolour: " + form.colour4.value + "\n\n" + form.petals5_name.value + ": " + form.petals5_description.value + " (" + form.code_petals5.value + ")\ncolour: " + form.colour5.value + "\n\n" + form.petals6_name.value + ": " + form.petals6_description.value + " (" + form.code_petals6.value + ")\ncolour: " + form.colour6.value + "\n\ndelivery_method: " + form.delivery_method.value + "\nspecial_offer: " + form.special_offer.value + "\n\namount: " + form.amount.value);
	// Postagedates
		if (form.postage_presetdate.selectedIndex == 0) {
			if (form.postage_day.selectedIndex == 0) {
				return(formError("Please enter a Function Day", form.postage_day));
			}
			if (form.postage_month.selectedIndex == 0) {
				return(formError("Please enter a Function Month", form.postage_month));
			}
			if (form.postage_year.selectedIndex == 0) {
				return(formError("Please enter a Function Year", form.postage_year));
			}
			today = new Date();
			today.setTime(timeoffset + today.getTime());
			todayDate = new Date(today.getYear(), today.getMonth(), today.getDate());
			if (form.postage_year.selectedIndex == 1) { //this year
				if (form.postage_month.selectedIndex < (today.getMonth() + 1)) { //before this month
					return(formError("Invalid function date", form.postage_month));
				} else if (form.postage_month.selectedIndex == (today.getMonth() + 1)) { //this month
					if (form.postage_day.selectedIndex <= today.getDate()) { // before this date or today
						return(formError("Invalid function date", form.postage_day));
					}
				}
			} else if (form.postage_year.selectedIndex == 2) { //next year
				if (form.postage_month.selectedIndex > (today.getMonth() + 1)) { //after this month
					return(formError("Sorry, deliveries cannot be ordered more than a year in advance", form.postage_month));
				} else if (form.postage_month.selectedIndex == (today.getMonth() + 1)) { //this month
					if (form.postage_day.selectedIndex > today.getDate()) { //after this date
						return(formError("Sorry, deliveries cannot be ordered more than a year in advance", form.postage_day));
					}
				}
			}
			if (form.postage_day.selectedIndex > getDaysForMonth(form.postage_month.selectedIndex, years[form.postage_year.selectedIndex])) {
				return(formError("Invalid function date", form.postage_day));
			}
			postageDate = new Date(years[form.postage_year.selectedIndex], form.postage_month.selectedIndex-1, form.postage_day.selectedIndex);
			if ((postageDate.getTime() - todayDate.getTime()) < (1 * millisDay)) {
				return(formError("Sorry, functions must be at the very least 1 day after today", form.postage_day));
			}
			form.postage_textdate.value = days[form.postage_day.selectedIndex] + " / " + months[form.postage_month.selectedIndex] + " / " + years[form.postage_year.selectedIndex];
		} else if (form.postage_presetdate.selectedIndex == 1) {
			form.postage_textdate.value = "ASAP";
		}
		if (!checkBlank("the Delivery Name", form.del_name)) return false;
		if (!checkBlank("your Name", form.name)) return false;
		if (!checkEmail("your E-mail Address", form.email)) return false;
		if (!checkBlank("your Address", form.address)) return false;
		if (!checkBlank("your Town", form.town)) return false;
		if (!checkBlank("your County", form.county)) return false;
		if (!checkBlank("your Country", form.country)) return false;
		if (!checkBlank("your Postcode", form.postcode)) return false;
		if (isBlank(form.del_address.value)) {
			form.del_address.value = form.address.value + "\n" + form.town.value + "\n" + form.county.value + "\n" + form.postcode.value + "\n" + form.country.value;
		}
		if (!checkBlank("your Telephone No.", form.telephone)) return false;
		form.postage_day.disabled = false;
		form.postage_month.disabled = false;
		form.postage_year.disabled = false;
		escapeField(form.del_address);
		escapeField(form.additional);
		return true;
	} else
	{
		// Do nothing
	}
}

function parsePresetPostageDate(index) {
	document.orderform.postage_day.selectedIndex = 0;
	document.orderform.postage_month.selectedIndex = 0;
	document.orderform.postage_year.selectedIndex = 0;
	if (index == 0) {
		document.orderform.postage_day.disabled = false;
		document.orderform.postage_month.disabled = false;
		document.orderform.postage_year.disabled = false;
	} else {
		document.orderform.postage_day.disabled = true;
		document.orderform.postage_month.disabled = true;
		document.orderform.postage_year.disabled = true;
	}
}

function parseBouquet1(index) {
	if (bouquet1[index].colour == "anysingle") {
		if (document.orderform.colourlist1.value != "single") {
			writeout('colourspan11', label_colour1);
			writeout('colourspan12', "*");
			writeout('colourspan13', "<INPUT TYPE=HIDDEN NAME='colourlist1' VALUE='single'><SELECT NAME='petals_colour1' SIZE=1 onChange=\"parseColour1(this.selectedIndex)\">" + singlecolour1list + "</SELECT>");
			if (document.orderform.combotext1.value != "no") {
				writeout('colourcombospan11', "");
				writeout('colourcombospan12', "");
				writeout('colourcombospan13', "<INPUT TYPE=HIDDEN NAME='combotext1' VALUE='no'>");
			}
		}
	} else if (bouquet1[index].colour == "anymulti") {
		if (document.orderform.colourlist1.value != "multi") {
			writeout('colourspan11', label_colour1);
			writeout('colourspan12', "*");
			writeout('colourspan13', "<INPUT TYPE=HIDDEN NAME='colourlist1' VALUE='multi'><SELECT NAME='petals_colour1' SIZE=1 onChange=\"parseColour1(this.selectedIndex)\">" + multicolour1list + "</SELECT>");
			if (document.orderform.combotext1.value != "no") {
				writeout('colourcombospan11', "");
				writeout('colourcombospan12', "");
				writeout('colourcombospan13', "<INPUT TYPE=HIDDEN NAME='combotext1' VALUE='no'>");
			}
		}
	} else if (bouquet1[index].orderinfo == "none") {
		if (document.orderform.colourlist1.value != "single") {
			writeout('colourspan11', label_colour1);
			writeout('colourspan12', "");
			writeout('colourspan13', "<INPUT TYPE=HIDDEN NAME='colourlist1' VALUE='single'><SELECT NAME='petals_colour1' SIZE=1 onChange=\"parseColour1(this.selectedIndex)\">" + singlecolour1list + "</SELECT>");
			if (document.orderform.combotext1.value != "no") {
				writeout('colourcombospan11', "");
				writeout('colourcombospan12', "");
				writeout('colourcombospan13', "<INPUT TYPE=HIDDEN NAME='combotext1' VALUE='no'>");
			}
		}
	} else {
		if (document.orderform.colourlist1.value != "none") {
			writeout('colourspan11', "");
			writeout('colourspan12', "");
			writeout('colourspan13', "<INPUT TYPE=HIDDEN NAME='colourlist1' VALUE='none'>");
			if (document.orderform.combotext1.value != "no") {
				writeout('colourcombospan11', "");
				writeout('colourcombospan12', "");
				writeout('colourcombospan13', "<INPUT TYPE=HIDDEN NAME='combotext1' VALUE='no'>");
			}
		}
	}
}

function parseBouquet2(index) {
	if (bouquet2[index].colour == "anysingle") {
		if (document.orderform.colourlist2.value != "single") {
			writeout('colourspan21', label_colour2);
			writeout('colourspan22', "*");
			writeout('colourspan23', "<INPUT TYPE=HIDDEN NAME='colourlist2' VALUE='single'><SELECT NAME='petals_colour2' SIZE=1 onChange=\"parseColour2(this.selectedIndex)\">" + singlecolour2list + "</SELECT>");
			if (document.orderform.combotext2.value != "no") {
				writeout('colourcombospan21', "");
				writeout('colourcombospan22', "");
				writeout('colourcombospan23', "<INPUT TYPE=HIDDEN NAME='combotext2' VALUE='no'>");
			}
		}
	} else if (bouquet2[index].colour == "anymulti") {
		if (document.orderform.colourlist2.value != "multi") {
			writeout('colourspan21', label_colour2);
			writeout('colourspan22', "*");
			writeout('colourspan23', "<INPUT TYPE=HIDDEN NAME='colourlist2' VALUE='multi'><SELECT NAME='petals_colour2' SIZE=1 onChange=\"parseColour2(this.selectedIndex)\">" + multicolour2list + "</SELECT>");
			if (document.orderform.combotext2.value != "no") {
				writeout('colourcombospan21', "");
				writeout('colourcombospan22', "");
				writeout('colourcombospan23', "<INPUT TYPE=HIDDEN NAME='combotext2' VALUE='no'>");
			}
		}
	} else if (bouquet2[index].orderinfo == "none") {
		if (document.orderform.colourlist2.value != "single") {
			writeout('colourspan21', label_colour2);
			writeout('colourspan22', "");
			writeout('colourspan23', "<INPUT TYPE=HIDDEN NAME='colourlist2' VALUE='single'><SELECT NAME='petals_colour2' SIZE=1 onChange=\"parseColour2(this.selectedIndex)\">" + singlecolour2list + "</SELECT>");
			if (document.orderform.combotext2.value != "no") {
				writeout('colourcombospan21', "");
				writeout('colourcombospan22', "");
				writeout('colourcombospan23', "<INPUT TYPE=HIDDEN NAME='combotext2' VALUE='no'>");
			}
		}
	} else {
		if (document.orderform.colourlist2.value != "none") {
			writeout('colourspan21', "");
			writeout('colourspan22', "");
			writeout('colourspan23', "<INPUT TYPE=HIDDEN NAME='colourlist2' VALUE='none'>");
			if (document.orderform.combotext2.value != "no") {
				writeout('colourcombospan21', "");
				writeout('colourcombospan22', "");
				writeout('colourcombospan23', "<INPUT TYPE=HIDDEN NAME='combotext2' VALUE='no'>");
			}
		}
	}
}

function parseBouquet3(index) {
	if (bouquet3[index].colour == "anysingle") {
		if (document.orderform.colourlist3.value != "single") {
			writeout('colourspan31', label_colour3);
			writeout('colourspan32', "*");
			writeout('colourspan33', "<INPUT TYPE=HIDDEN NAME='colourlist3' VALUE='single'><SELECT NAME='petals_colour3' SIZE=1 onChange=\"parseColour3(this.selectedIndex)\">" + singlecolour3list + "</SELECT>");
			if (document.orderform.combotext3.value != "no") {
				writeout('colourcombospan31', "");
				writeout('colourcombospan32', "");
				writeout('colourcombospan33', "<INPUT TYPE=HIDDEN NAME='combotext3' VALUE='no'>");
			}
		}
	} else if (bouquet3[index].colour == "anymulti") {
		if (document.orderform.colourlist3.value != "multi") {
			writeout('colourspan31', label_colour3);
			writeout('colourspan32', "*");
			writeout('colourspan33', "<INPUT TYPE=HIDDEN NAME='colourlist3' VALUE='multi'><SELECT NAME='petals_colour3' SIZE=1 onChange=\"parseColour3(this.selectedIndex)\">" + multicolour3list + "</SELECT>");
			if (document.orderform.combotext3.value != "no") {
				writeout('colourcombospan31', "");
				writeout('colourcombospan32', "");
				writeout('colourcombospan33', "<INPUT TYPE=HIDDEN NAME='combotext3' VALUE='no'>");
			}
		}
	} else if (bouquet3[index].orderinfo == "none") {
		if (document.orderform.colourlist3.value != "single") {
			writeout('colourspan31', label_colour3);
			writeout('colourspan32', "");
			writeout('colourspan33', "<INPUT TYPE=HIDDEN NAME='colourlist3' VALUE='single'><SELECT NAME='petals_colour3' SIZE=1 onChange=\"parseColour3(this.selectedIndex)\">" + singlecolour3list + "</SELECT>");
			if (document.orderform.combotext3.value != "no") {
				writeout('colourcombospan31', "");
				writeout('colourcombospan32', "");
				writeout('colourcombospan33', "<INPUT TYPE=HIDDEN NAME='combotext3' VALUE='no'>");
			}
		}
	} else {
		if (document.orderform.colourlist3.value != "none") {
			writeout('colourspan31', "");
			writeout('colourspan32', "");
			writeout('colourspan33', "<INPUT TYPE=HIDDEN NAME='colourlist3' VALUE='none'>");
			if (document.orderform.combotext3.value != "no") {
				writeout('colourcombospan31', "");
				writeout('colourcombospan32', "");
				writeout('colourcombospan33', "<INPUT TYPE=HIDDEN NAME='combotext3' VALUE='no'>");
			}
		}
	}
}

function parseBouquet4(index) {
	if (bouquet4[index].colour == "anysingle") {
		if (document.orderform.colourlist4.value != "single") {
			writeout('colourspan41', label_colour4);
			writeout('colourspan42', "*");
			writeout('colourspan43', "<INPUT TYPE=HIDDEN NAME='colourlist4' VALUE='single'><SELECT NAME='petals_colour4' SIZE=1 onChange=\"parseColour4(this.selectedIndex)\">" + singlecolour4list + "</SELECT>");
			if (document.orderform.combotext4.value != "no") {
				writeout('colourcombospan41', "");
				writeout('colourcombospan42', "");
				writeout('colourcombospan43', "<INPUT TYPE=HIDDEN NAME='combotext4' VALUE='no'>");
			}
		}
	} else if (bouquet4[index].colour == "anymulti") {
		if (document.orderform.colourlist4.value != "multi") {
			writeout('colourspan41', label_colour4);
			writeout('colourspan42', "*");
			writeout('colourspan43', "<INPUT TYPE=HIDDEN NAME='colourlist4' VALUE='multi'><SELECT NAME='petals_colour4' SIZE=1 onChange=\"parseColour4(this.selectedIndex)\">" + multicolour4list + "</SELECT>");
			if (document.orderform.combotext4.value != "no") {
				writeout('colourcombospan41', "");
				writeout('colourcombospan42', "");
				writeout('colourcombospan43', "<INPUT TYPE=HIDDEN NAME='combotext4' VALUE='no'>");
			}
		}
	} else if (bouquet4[index].orderinfo == "none") {
		if (document.orderform.colourlist4.value != "single") {
			writeout('colourspan41', label_colour4);
			writeout('colourspan42', "");
			writeout('colourspan43', "<INPUT TYPE=HIDDEN NAME='colourlist4' VALUE='single'><SELECT NAME='petals_colour4' SIZE=1 onChange=\"parseColour4(this.selectedIndex)\">" + singlecolour4list + "</SELECT>");
			if (document.orderform.combotext4.value != "no") {
				writeout('colourcombospan41', "");
				writeout('colourcombospan42', "");
				writeout('colourcombospan43', "<INPUT TYPE=HIDDEN NAME='combotext4' VALUE='no'>");
			}
		}
	} else {
		if (document.orderform.colourlist4.value != "none") {
			writeout('colourspan41', "");
			writeout('colourspan42', "");
			writeout('colourspan43', "<INPUT TYPE=HIDDEN NAME='colourlist4' VALUE='none'>");
			if (document.orderform.combotext4.value != "no") {
				writeout('colourcombospan41', "");
				writeout('colourcombospan42', "");
				writeout('colourcombospan43', "<INPUT TYPE=HIDDEN NAME='combotext4' VALUE='no'>");
			}
		}
	}
}

function parseBouquet5(index) {
	if (bouquet5[index].colour == "anysingle") {
		if (document.orderform.colourlist5.value != "single") {
			writeout('colourspan51', label_colour5);
			writeout('colourspan52', "*");
			writeout('colourspan53', "<INPUT TYPE=HIDDEN NAME='colourlist5' VALUE='single'><SELECT NAME='petals_colour5' SIZE=1 onChange=\"parseColour5(this.selectedIndex)\">" + singlecolour5list + "</SELECT>");
			if (document.orderform.combotext5.value != "no") {
				writeout('colourcombospan51', "");
				writeout('colourcombospan52', "");
				writeout('colourcombospan53', "<INPUT TYPE=HIDDEN NAME='combotext5' VALUE='no'>");
			}
		}
	} else if (bouquet5[index].colour == "anymulti") {
		if (document.orderform.colourlist5.value != "multi") {
			writeout('colourspan51', label_colour5);
			writeout('colourspan52', "*");
			writeout('colourspan53', "<INPUT TYPE=HIDDEN NAME='colourlist5' VALUE='multi'><SELECT NAME='petals_colour5' SIZE=1 onChange=\"parseColour5(this.selectedIndex)\">" + multicolour5list + "</SELECT>");
			if (document.orderform.combotext5.value != "no") {
				writeout('colourcombospan51', "");
				writeout('colourcombospan52', "");
				writeout('colourcombospan53', "<INPUT TYPE=HIDDEN NAME='combotext5' VALUE='no'>");
			}
		}
	} else if (bouquet5[index].orderinfo == "none") {
		if (document.orderform.colourlist5.value != "single") {
			writeout('colourspan51', label_colour5);
			writeout('colourspan52', "");
			writeout('colourspan53', "<INPUT TYPE=HIDDEN NAME='colourlist5' VALUE='single'><SELECT NAME='petals_colour5' SIZE=1 onChange=\"parseColour5(this.selectedIndex)\">" + singlecolour5list + "</SELECT>");
			if (document.orderform.combotext5.value != "no") {
				writeout('colourcombospan51', "");
				writeout('colourcombospan52', "");
				writeout('colourcombospan53', "<INPUT TYPE=HIDDEN NAME='combotext5' VALUE='no'>");
			}
		}
	} else {
		if (document.orderform.colourlist5.value != "none") {
			writeout('colourspan51', "");
			writeout('colourspan52', "");
			writeout('colourspan53', "<INPUT TYPE=HIDDEN NAME='colourlist5' VALUE='none'>");
			if (document.orderform.combotext5.value != "no") {
				writeout('colourcombospan51', "");
				writeout('colourcombospan52', "");
				writeout('colourcombospan53', "<INPUT TYPE=HIDDEN NAME='combotext5' VALUE='no'>");
			}
		}
	}
}

function parseBouquet6(index) {
	if (bouquet6[index].colour == "anysingle") {
		if (document.orderform.colourlist6.value != "single") {
			writeout('colourspan61', label_colour6);
			writeout('colourspan62', "*");
			writeout('colourspan63', "<INPUT TYPE=HIDDEN NAME='colourlist6' VALUE='single'><SELECT NAME='petals_colour6' SIZE=1 onChange=\"parseColour6(this.selectedIndex)\">" + singlecolour6list + "</SELECT>");
			if (document.orderform.combotext6.value != "no") {
				writeout('colourcombospan61', "");
				writeout('colourcombospan62', "");
				writeout('colourcombospan63', "<INPUT TYPE=HIDDEN NAME='combotext6' VALUE='no'>");
			}
		}
	} else if (bouquet6[index].colour == "anymulti") {
		if (document.orderform.colourlist6.value != "multi") {
			writeout('colourspan61', label_colour6);
			writeout('colourspan62', "*");
			writeout('colourspan63', "<INPUT TYPE=HIDDEN NAME='colourlist6' VALUE='multi'><SELECT NAME='petals_colour6' SIZE=1 onChange=\"parseColour6(this.selectedIndex)\">" + multicolour6list + "</SELECT>");
			if (document.orderform.combotext6.value != "no") {
				writeout('colourcombospan61', "");
				writeout('colourcombospan62', "");
				writeout('colourcombospan63', "<INPUT TYPE=HIDDEN NAME='combotext6' VALUE='no'>");
			}
		}
	} else if (bouquet6[index].orderinfo == "none") {
		if (document.orderform.colourlist6.value != "single") {
			writeout('colourspan61', label_colour6);
			writeout('colourspan62', "");
			writeout('colourspan63', "<INPUT TYPE=HIDDEN NAME='colourlist6' VALUE='single'><SELECT NAME='petals_colour6' SIZE=1 onChange=\"parseColour6(this.selectedIndex)\">" + singlecolour6list + "</SELECT>");
			if (document.orderform.combotext6.value != "no") {
				writeout('colourcombospan61', "");
				writeout('colourcombospan62', "");
				writeout('colourcombospan63', "<INPUT TYPE=HIDDEN NAME='combotext6' VALUE='no'>");
			}
		}
	} else {
		if (document.orderform.colourlist6.value != "none") {
			writeout('colourspan61', "");
			writeout('colourspan62', "");
			writeout('colourspan63', "<INPUT TYPE=HIDDEN NAME='colourlist6' VALUE='none'>");
			if (document.orderform.combotext6.value != "no") {
				writeout('colourcombospan61', "");
				writeout('colourcombospan62', "");
				writeout('colourcombospan63', "<INPUT TYPE=HIDDEN NAME='combotext6' VALUE='no'>");
			}
		}
	}
}

function parseColour1(index) {
	var colour_index = 0;
	if (document.orderform.colourlist1.value == "multi") {
		colour_index = getmulticolour1Index(index);
	} else if (document.orderform.colourlist1.value == "single") {
		colour_index = getsinglecolour1Index(index);
	}
	if (colour1[colour_index].orderinfo == "Customized") {
		if (document.orderform.combotext1.value != "yes") {
			writeout('colourcombospan11', label_colourcombo1);
			writeout('colourcombospan12', "*");
			writeout('colourcombospan13', "<INPUT TYPE=HIDDEN NAME='combotext1' VALUE='yes'><TEXTAREA NAME='petals_colourcombo1' COLS=30 ROWS=4 WRAP='virtual'></TEXTAREA>");
			return;
		}
	}
	if (document.orderform.combotext1.value != "no") {
		writeout('colourcombospan11', "");
		writeout('colourcombospan12', "");
		writeout('colourcombospan13', "<INPUT TYPE=HIDDEN NAME='combotext1' VALUE='no'>");
	}
}

function parseColour2(index) {
	var colour_index = 0;
	if (document.orderform.colourlist2.value == "multi") {
		colour_index = getmulticolour2Index(index);
	} else if (document.orderform.colourlist2.value == "single") {
		colour_index = getsinglecolour2Index(index);
	}
	if (colour2[colour_index].orderinfo == "Customized") {
		if (document.orderform.combotext2.value != "yes") {
			writeout('colourcombospan21', label_colourcombo2);
			writeout('colourcombospan22', "*");
			writeout('colourcombospan23', "<INPUT TYPE=HIDDEN NAME='combotext2' VALUE='yes'><TEXTAREA NAME='petals_colourcombo2' COLS=30 ROWS=4 WRAP='virtual'></TEXTAREA>");
			return;
		}
	}
	if (document.orderform.combotext2.value != "no") {
		writeout('colourcombospan21', "");
		writeout('colourcombospan22', "");
		writeout('colourcombospan23', "<INPUT TYPE=HIDDEN NAME='combotext2' VALUE='no'>");
	}
}

function parseColour3(index) {
	var colour_index = 0;
	if (document.orderform.colourlist3.value == "multi") {
		colour_index = getmulticolour3Index(index);
	} else if (document.orderform.colourlist3.value == "single") {
		colour_index = getsinglecolour3Index(index);
	}
	if (colour3[colour_index].orderinfo == "Customized") {
		if (document.orderform.combotext3.value != "yes") {
			writeout('colourcombospan31', label_colourcombo3);
			writeout('colourcombospan32', "*");
			writeout('colourcombospan33', "<INPUT TYPE=HIDDEN NAME='combotext3' VALUE='yes'><TEXTAREA NAME='petals_colourcombo3' COLS=30 ROWS=4 WRAP='virtual'></TEXTAREA>");
			return;
		}
	}
	if (document.orderform.combotext3.value != "no") {
		writeout('colourcombospan31', "");
		writeout('colourcombospan32', "");
		writeout('colourcombospan33', "<INPUT TYPE=HIDDEN NAME='combotext3' VALUE='no'>");
	}
}

function parseColour4(index) {
	var colour_index = 0;
	if (document.orderform.colourlist4.value == "multi") {
		colour_index = getmulticolour4Index(index);
	} else if (document.orderform.colourlist4.value == "single") {
		colour_index = getsinglecolour4Index(index);
	}
	if (colour4[colour_index].orderinfo == "Customized") {
		if (document.orderform.combotext4.value != "yes") {
			writeout('colourcombospan41', label_colourcombo4);
			writeout('colourcombospan42', "*");
			writeout('colourcombospan43', "<INPUT TYPE=HIDDEN NAME='combotext4' VALUE='yes'><TEXTAREA NAME='petals_colourcombo4' COLS=30 ROWS=4 WRAP='virtual'></TEXTAREA>");
			return;
		}
	}
	if (document.orderform.combotext4.value != "no") {
		writeout('colourcombospan41', "");
		writeout('colourcombospan42', "");
		writeout('colourcombospan43', "<INPUT TYPE=HIDDEN NAME='combotext4' VALUE='no'>");
	}
}

function parseColour5(index) {
	var colour_index = 0;
	if (document.orderform.colourlist5.value == "multi") {
		colour_index = getmulticolour5Index(index);
	} else if (document.orderform.colourlist5.value == "single") {
		colour_index = getsinglecolour5Index(index);
	}
	if (colour5[colour_index].orderinfo == "Customized") {
		if (document.orderform.combotext5.value != "yes") {
			writeout('colourcombospan51', label_colourcombo5);
			writeout('colourcombospan52', "*");
			writeout('colourcombospan53', "<INPUT TYPE=HIDDEN NAME='combotext5' VALUE='yes'><TEXTAREA NAME='petals_colourcombo5' COLS=30 ROWS=4 WRAP='virtual'></TEXTAREA>");
			return;
		}
	}
	if (document.orderform.combotext5.value != "no") {
		writeout('colourcombospan51', "");
		writeout('colourcombospan52', "");
		writeout('colourcombospan53', "<INPUT TYPE=HIDDEN NAME='combotext5' VALUE='no'>");
	}
}

function parseColour6(index) {
	var colour_index = 0;
	if (document.orderform.colourlist6.value == "multi") {
		colour_index = getmulticolour6Index(index);
	} else if (document.orderform.colourlist6.value == "single") {
		colour_index = getsinglecolour6Index(index);
	}
	if (colour6[colour_index].orderinfo == "Customized") {
		if (document.orderform.combotext6.value != "yes") {
			writeout('colourcombospan61', label_colourcombo6);
			writeout('colourcombospan62', "*");
			writeout('colourcombospan63', "<INPUT TYPE=HIDDEN NAME='combotext6' VALUE='yes'><TEXTAREA NAME='petals_colourcombo6' COLS=30 ROWS=4 WRAP='virtual'></TEXTAREA>");
			return;
		}
	}
	if (document.orderform.combotext6.value != "no") {
		writeout('colourcombospan61', "");
		writeout('colourcombospan62', "");
		writeout('colourcombospan63', "<INPUT TYPE=HIDDEN NAME='combotext6' VALUE='no'>");
	}
}

function parseOffer(form) {
	for (i=0;i<offers.length;i++) {
		if (b64_md5(form.offer.value.toUpperCase()) == offers[i].hashvalue) {
			form.amount.value = "" + Math.round((1 - (parseInt(offers[i].percent) / 100)) * parseInt(form.amount.value));
			form.special_offer.value = offers[i].orderinfo;
			break;
		}
	}
}

function recalculatePrice() {
	cost = 0;
	var bouquet1_index = document.orderform.type_petals1.selectedIndex;
	if (bouquet1[bouquet1_index].orderinfo != "none") {
			cost += parseInt(bouquet1[bouquet1_index].cost);
	}
	var bouquet2_index = document.orderform.type_petals2.selectedIndex;
	if (bouquet2[bouquet2_index].orderinfo != "none") {
			cost += parseInt(bouquet2[bouquet2_index].cost);
	}
	var bouquet3_index = document.orderform.type_petals3.selectedIndex;
	if (bouquet3[bouquet3_index].orderinfo != "none") {
			cost += parseInt(bouquet3[bouquet3_index].cost);
	}
	var bouquet4_index = document.orderform.type_petals4.selectedIndex;
	if (bouquet4[bouquet4_index].orderinfo != "none") {
			cost += parseInt(bouquet4[bouquet4_index].cost);
	}
	var bouquet5_index = document.orderform.type_petals5.selectedIndex;
	if (bouquet5[bouquet5_index].orderinfo != "none") {
			cost += parseInt(bouquet5[bouquet5_index].cost);
	}
	var bouquet6_index = document.orderform.type_petals6.selectedIndex;
	if (bouquet6[bouquet6_index].orderinfo != "none") {
			cost += parseInt(bouquet6[bouquet6_index].cost);
	}
	var postage_index = document.orderform.delivery.selectedIndex;
	if (postage[postage_index].orderinfo != "none") {
		cost += parseInt(postage[postage_index].cost);
	}
	if (!isBlank(document.orderform.offer.value)) {
		for (i=0;i<offers.length;i++) {
			if (b64_md5(document.orderform.offer.value.toUpperCase()) == offers[i].hashvalue) {
				cost = Math.round((1 - (parseInt(offers[i].percent) / 100)) * cost);
				break;
			}
		}
	}
	document.orderform.display_price.value = formatPenceAsPounds(cost);
}

function writeout(spanid, outputhtml) {
	if (document.getElementById) {
		if (window.HTMLElement) {
			spanNode = document.getElementById(spanid);
			while (spanNode.hasChildNodes()) spanNode.removeChild(spanNode.lastChild);
			var range = document.createRange();
			range.selectNodeContents(spanNode);
			spanNode.appendChild(range.createContextualFragment(outputhtml));
		} else {
			document.all(spanid).innerHTML = outputhtml;
		}
	} else if (document.all) {
		document.all(spanid).innerHTML = outputhtml;
//	} else if (document.layers) {
//		document.layers[spanid].document.open();
//		document.layers[spanid].document.writeln(outputhtml);
//		document.layers[spanid].document.close();
	}
}

function getDaysForMonth(month, year) {
	if ((month == 2) && (year % 4 == 0) && ((year % 400 == 0) || !(year % 100 == 0))) {
		return (monthdays[month-1] + 1);
	} else {
		return (monthdays[month-1]);
	}
}

function formBlankError(message, formfield) {
	if (formfield != null) {
		formfield.value = "";
	}
	return formError(message, formfield);
}

function formError(message, formfield) {
	alert(message);
	if (formfield != null) {
		formfield.focus();
	}
	return false;
}

function isBlank(fieldvalue) {
	if (fieldvalue == null) return true;
	if (fieldvalue.length == 0) return true;
	var blankchars = " \t\n\r";
	for (i=0;i<fieldvalue.length;i++) {
		letter = fieldvalue.charAt(i);
		if (blankchars.indexOf(letter) == -1) return false;
	}
	return true;
}

function hasBlank(fieldvalue) {
	if (fieldvalue.indexOf(' ') != -1) return true;
	if (fieldvalue.indexOf('\t') != -1) return true;
	if (fieldvalue.indexOf('\n') != -1) return true;
	return false;
}

function isEmail(email) {
	if (isBlank(email)) return false;
	if (hasBlank(email)) return false;
	atpos = email.indexOf('@');
	if ((atpos < 1) || (atpos > email.length - 4)) return false;
	if (email.charAt(atpos + 1) == '.') return false;
	dotpos = email.lastIndexOf('.');
	if ((dotpos < atpos + 2) || (dotpos > email.length - 2)) return false;
	return true;
}

function checkBlank(label, formfield) {
	if (isBlank(formfield.value)) {
		return(formBlankError("Please enter " + label, formfield));
	}
	return true;
}

function checkEmail(label, formfield) {
	if (!checkBlank(label, formfield)) return false;
	if (hasBlank(formfield.value)) {
		return(formError("Please check there are no spaces in " + label, formfield));
	}
	if (!isEmail(formfield.value)) {
		return(formError("Please check " + label + " is correct", formfield));
	}
	return true;
}

function formatPenceAsPounds(inputNum) {
	inputNum = parseInt(inputNum);
	sign = ""; pounds = "0"; pence = "00";
	if (isNaN(inputNum)) {
		inputNum = "";
	} else {
		if (inputNum < 0) {
			sign = "-";
			inputNum *= -1;
		}
		inputTxt = "" + inputNum;
		txtLen = inputTxt.length;

		if (txtLen < 3) {
			pounds = "0";
			pence = inputTxt;
			while (pence.length < 2) {
				pence = "0" + pence;
			}
		} else {
			pounds = inputTxt.substr(0, txtLen-2);
			pence = inputTxt.substr(txtLen-2,txtLen);
		}
	}
	return sign+"£"+pounds+"."+pence;
}

function escapeField(formfield) {
	formfield.value = replace(formfield.value,'"',"'");
}