// order_form_functions.js for trrs.org NameARose claims
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 timeoffset = 0;
var productName;

var time_threshold = 16; // i.e. 1600 or 4pm
var time_threshold_words = "4pm (UK time)";

function initForm1() {
	writeout('hidejsreq', "");
}

function initForm2() {
	writeout('hidejsreq', "");
}

function initForm3() {
	productName = document.orderform.product.value;
/*	for (i=1; i<document.orderform.del_year.length; i++) {
		years[years.length] = document.orderform.del_year[i].value;
	}
*/	now = new Date();
	timeoffset = (document.orderform.serverdate.value * 1000) - now.getTime();
//	writeout('hidejsreq', "");
	setVisibility('hidejsreq', false);
	document.orderform.rose_image.value = "";
	if (get_typesCount(document.orderform.type_options.value) > 1) {
		for (i=0;i<document.orderform.type.length;i++) {
			document.orderform.type[i].checked = false;
		}
	}
	parseType(get_typesObject(get_typesRealIndex(0, document.orderform.type_options.value)).ordercode);
	if (document.orderform.user_image.value == "1") {
		document.orderform.userimage.checked = false;
	}
	tickUserImage(false);
}

function Validate1(form) {
	if (!checkBlank("your password!", form.password)) return false;
	if (hasBlank(form.password.value)) {
 		return formError("There shouldn't be any spaces in the password.", form.password);
	}
	if (isEmail(form.password.value)) {
		return true;
	} else {
		var goodchars = "abcdefghijklmnopqrstuvwxyz0123456789";
		for (i=0;i<form.password.value.length;i++) {
			letter = form.password.value.charAt(i);
			if (goodchars.indexOf(letter) == -1) return formError("The password contains an invalid character. Only lowercase letters (a-z) and numbers (0-9) should be used.", form.password);
		}
		return true;
	}
}

function Validate2(form) {
	if (!checkBlank("your Rose Name!", form.rose_name)) return false;
	if (form.rose_name.value.length > 30) {
	  	return formError("The Rose Name is too long. The maximum length is 30 characters.", form.rose_name);
	}
	if (hasBlank(form.rose_name.value)) {
 		return formError("Spaces aren't allowed in the Rose Name. Try a - (hyphen) or _ (underscore) instead.", form.rose_name);
	}
	var goodchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_";
	for (i=0;i<form.rose_name.value.length;i++) {
		letter = form.rose_name.value.charAt(i);
		if (goodchars.indexOf(letter) == -1) return formError("The Rose Name contains an invalid character. Only uppercase letters (A-Z), lowercase letters (a-z), numbers (0-9), underscores (_) and hyphens (-) are allowed.", form.rose_name);
	}
	return true;
}

function Validate3(form) {
// Initialize the variables
	form.orderinfo.value = "";
	form.order_description.value = "";
	form.uploadimage_url.value = "";
	form.rose_garden.value = "";
	form.garden_name.value = "";
	form.rose_url.value = "";
	form.rose_type.value = "";
	form.code_type.value = "";
	form.delivery_method.value = "Email";
	form.code_postage.value = "";
	form.del_textdate.value = "";
	form.del_address.value = "";
// Rose name
	form.orderinfo.value = form.rose_name.value;
	form.order_description.value = "The "+form.rose_name.value+" Rose";
// Certificate URL
	form.cert_url.value = form.homeurl.value + "/cgi-bin/createcertificate.pl?rose_name=" + form.rose_name.value + "&password=" + form.cert_password.value;
// Rose image
	if (form.rose_image.value == "") {
		return(formError("Please select an image for your rose"));
	} else if (form.rose_image.value == "user_supplied" ) {
		form.uploadimage_url.value = "\nVERY IMPORTANT INFORMATION\nYou have chosen to supply your own rose image and therefore need to visit the following link to upload it :-\n"+ form.homeurl.value +"/cgi-bin/uploadimage.pl?orderref="+ form.orderref.value +"&rose_name="+ form.rose_name.value +"\n";
	}
// Rose garden
	var orderGarden = get_gardensObject(get_gardensRealIndex(form.garden.selectedIndex, form.garden_options.value));
	if (orderGarden.orderinfo != "none") {
		form.rose_garden.value = orderGarden.gardendirectory;
		form.garden_name.value = orderGarden.orderinfo;
		// Build URL for customer email
		form.rose_url.value = form.homeurl.value + "/" + form.rose_garden.value + "/the_" + form.rose_name.value + "_rose.html";
	} else {
		return(forError("Please choose which garden you want your rose to be planted in", form.garden));
	}
// Rose message
	if (!checkBlank("your Rose Message", form.rose_message)) return false;
// Rose presentation
	selectedType = -1;
	if (get_typesCount(document.orderform.type_options.value) == 1) {
		selectedType = 0;
	} else {
		for (i=0;i<form.type.length;i++) {
			if (form.type[i].checked) {
				selectedType = i;
				break;
			}
		}
	}
	if (selectedType == -1) {
		return(formError("Please choose how you would like your rose presented", null));
	}
	var orderType = get_typesObject(get_typesRealIndex(selectedType, form.type_options.value));
	form.rose_type.value = orderType.orderinfo;
	form.code_type.value = orderType.ordercode;
	form.orderinfo.value += ", " + form.code_type.value;
	form.order_description.value += " sent " + form.rose_type.value;
	if ((orderType.ordercode == "email") || (orderType.ordercode == "inst_email")) {
		form.delivery_method.value = "Email";
		form.code_postage.value = "email";
	} else if (orderType.ordercode == "no_del") {
		form.delivery_method.value = "N/A";
		form.code_postage.value = "none";
	}
// TESTLINE
// Take the two // characters off the start of the next line to test
//	alert("OrderNo : " + form.orderref.value + "\n\nrose_name: " + form.rose_name.value + "\ngarden_name: "+ form.garden_name.value +"\n\nrose_type: " + form.rose_type.value + " (" + form.code_type.value + ")\n\nrose_image: " + form.rose_image.value + "\ndelivery_method: " + form.delivery_method.value + " ("+form.code_postage.value+")\n\nOrderDescription: " + form.order_description.value + "\norderinfo: " + form.orderinfo.value);
	if ((orderType.ordercode == "email") || (orderType.ordercode == "inst_email")) {
		if (!checkBlank("the Delivery Name", form.del_name)) return false;
		if (!checkEmail("the Delivery E-mail Address", form.del_email1)) return false;
		if (!checkEmail("the Confirmation Delivery E-mail Address", form.del_email2)) return false;
		if (form.del_email1.value != form.del_email2.value) {
			return(formError("Please check both E-mail addresses match", form.del_email2));
		}
		form.del_address.value = form.del_email1.value;
// Presetdates
		if (orderType.ordercode == "email") {
			var orderPresetdate = get_presetdatesObject(form.del_presetdate.selectedIndex);
			if (form.del_presetdate.selectedIndex != 0) {
				if (orderPresetdate.occasion != "none") {
					if ((form.del_day.selectedIndex != parseInt(orderPresetdate.day))
					|| (form.del_month.selectedIndex != parseInt(orderPresetdate.month))
					|| (form.del_year.selectedIndex != parseInt(orderPresetdate.yearindex))) {
						return(formError("You have chosen delivery dates of both " + orderPresetdate.description + " and " + days[form.del_day.selectedIndex] + " / " + months[form.del_month.selectedIndex] + " / " + years[form.del_year.selectedIndex] + "\nPlease select just one delivery date.", form.del_presetdate));
					}
				}
				form.del_textdate.value = orderPresetdate.description;
			} else {
				today = new Date();
				today.setTime(timeoffset + today.getTime());
				todayDate = new Date(today.getFullYear(), today.getMonth(), today.getDate());
				if (!formDateCheck("delivery", form.del_day, form.del_month, form.del_year, todayDate, years)) return false;
				deliveryDate = new Date(years[form.del_year.selectedIndex], form.del_month.selectedIndex-1, form.del_day.selectedIndex);
				daysAhead = (deliveryDate.getTime() - todayDate.getTime()) / 86400000; // (24 * 60 * 60 * 1000)
		//		if (deliveryDate.getDay() == 0) { // sunday
		//			return(formError("Sorry, Sunday deliveries not available", form.del_day));
		//		}
				if (daysAhead == 1) { // tommorow
					if (today.getHours() >= time_threshold) {
						return(formError("Sorry, deliveries for the following day must be ordered before " + time_threshold_words, form.del_day));
					}
				}
				var badMessage = findBaddatesMessage(deliveryDate);
				if (badMessage != '') {
					return(formError(badMessage, form.del_day));
				}
				form.del_textdate.value = days[form.del_day.selectedIndex] + " / " + months[form.del_month.selectedIndex] + " / " + years[form.del_year.selectedIndex];
			}
		} else if (orderType.ordercode == "inst_email") {
			form.del_textdate.value = "Immediate";
		}
	}
	if (!checkBlank("your Name", form.name)) return false;
	if (!checkEmail("your E-mail Address", form.email)) return false;
	escapeField(form.additional);
	return true;
}

function parsePresetDate(index) {
	var selectPresetdate = get_presetdatesObject(index);
	day = 0;
	month = 0;
	year = 0;
	disable = false;
	if ((selectPresetdate.occasion != "none") && (selectPresetdate.occasion != "asbelow")) {
		day = parseInt(selectPresetdate.day);
		month = parseInt(selectPresetdate.month);
		year = parseInt(selectPresetdate.yearindex);
		disable = true;
	}
	document.orderform.del_day.selectedIndex = day;
	document.orderform.del_month.selectedIndex = month;
	document.orderform.del_year.selectedIndex = year;
	document.orderform.del_day.disabled = disable;
	document.orderform.del_month.disabled = disable;
	document.orderform.del_year.disabled = disable;
}

function tickUserImage(ticked) {
	if (ticked) {
		writeout('image_select', "");
		document.orderform.rose_image.value = 'user_supplied';
		alert("Instructions to upload your own rose image will be E-mailed to you immediatly after your order has been placed");
	} else {
		document.orderform.rose_image.value = '';
		if (document.orderform.user_image.value == "1") {
			outstring = "Or if you prefer you can <A HREF=\"javascript:newWindow('/popup_roseimages.html',350,350)\">click here</A> to choose from one of our own Name a Rose images.";
		} else {
			outstring = "<A HREF=\"javascript:newWindow('/popup_roseimages.html',350,350)\">Click here</A> to choose one of our Name a Rose images.";
		}
		writeout('image_select', outstring + "<BR><A HREF=\"javascript:newWindow('/popup_roseimages.html',350,350)\"><IMG SRC='images/logo_nar.gif' NAME='rose_image' WIDTH=90 HEIGHT=90 BORDER=0 ALT=''></A>");
	}
}

function parseType(type) {
/*	if (type == "email") {
		setVisibility('js_deldate', true);
	} else {
		setVisibility('js_deldate', false);
	}
*/	if ((type == "email") || (type == "inst_email")) {
		writeout('js_delheader', "<IMG SRC='images/headers/delivery_information.gif' WIDTH='233' HEIGHT='28' ALT='Delivery Information' BORDER='0'>");

		writeout('js_delmessage1a', "YOUR ROSE DELIVERY MESSAGE:<BR>");
		writeout('js_delmessage1b', "This is the message that will be sent along with your Name a Rose Presentation Email. (This can be left blank if you prefer)");
		writeout('js_delmessage2', "");
		writeout('js_delmessage3', "<TEXTAREA NAME='del_message' COLS='30' ROWS='7' WRAP='VIRTUAL'></TEXTAREA>");

		writeout('js_delname1', "DELIVERY NAME:<BR>");
		writeout('js_delname2', "*");
		writeout('js_delname3', "<INPUT TYPE=TEXT NAME='del_name' SIZE='30'>");

		writeout('js_deladdress1a', "DELIVERY E-MAIL ADDRESS:");
		writeout('js_deladdress1b', "");
		writeout('js_deladdress2', "*");
		writeout('js_deladdress3', "<INPUT TYPE=TEXT NAME='del_email1' SIZE='30'>");

		writeout('js_delphone1a', "CONFIRM DELIVERY E-MAIL ADDRESS:<BR>");
		writeout('js_delphone1b', "To prevent any mistakes");
		writeout('js_delphone2', "*");
		writeout('js_delphone3', "<INPUT TYPE=TEXT NAME='del_email2' SIZE='30'>");

		document.orderform.del_date_label_html.value = "Delivery Date:";
		document.orderform.del_date_label_txt.value = "\nDelivery Date :";
		document.orderform.del_name_label_txt.value = "\nDelivery Name :";
		document.orderform.del_address_label_txt.value = "\nDelivery Address :";
		document.orderform.del_message_label_txt.value = "\nDelivery Message :";

		document.orderform.requiredfields2.value = "del_name,del_address";
	} else if (type == "no_del") {		
		writeout('js_delheader', "");

		writeout('js_delmessage1a', "");
		writeout('js_delmessage1b', "");
		writeout('js_delmessage2', "");
		writeout('js_delmessage3', "");
		
		writeout('js_delname1', "");
		writeout('js_delname2', "");
		writeout('js_delname3', "");

		writeout('js_deladdress1a', "");
		writeout('js_deladdress1b', "");
		writeout('js_deladdress2', "");
		writeout('js_deladdress3', "");

		writeout('js_delphone1a', "");
		writeout('js_delphone1b', "");
		writeout('js_delphone2', "");
		writeout('js_delphone3', "");

		document.orderform.del_date_label_html.value = "";
		document.orderform.del_date_label_txt.value = "";
		document.orderform.del_name_label_txt.value = "";
		document.orderform.del_address_label_txt.value = "";
		document.orderform.del_message_label_txt.value = "";
		
		document.orderform.requiredfields2.value = "";
	}
}

function setVisibility(spanid, value) {
	if (document.getElementById) {
		spanNode = document.getElementById(spanid);
		if (value) {
			spanNode.style.display = 'block';
		} else {
			spanNode.style.display = 'none';
		}
	
	}
}

