addEvent(window, "load", setup, false) ;
var prices = new Object ;
prices["UK"] = new Array(8.95,10.95,11.95,8.95,8.95) ;
prices["EU"] = new Array(9.95,11.95,12.95,9.95,9.95) ;
prices["ROW"] = new Array(13.95,15.95,16.95,13.95,13.95) ;
var numberSelects ;
var myTA ;
var defaultMessage = "Type a personal message to be printed on a Bakewell Tart Shop postcard" ;
function setup() {
	numberSelects = document.getElementById("menuForm").getElementsByTagName("select") ;
	addEvent(document.getElementById("region"), "change", calcTotal, false) ;
	for (var i=0; i<numberSelects.length; i++) {
		addEvent(numberSelects[i], "change", calcTotal, false) ;
	}
	myTA = document.getElementById("postCardMessage") ;
	addEvent(myTA, "focus", blankText, false) ;
	addEvent(myTA, "blur", restoreText, false) ;
	myTA.value = defaultMessage ;
}
function calcTotal() {
	var region = document.getElementById("region")[document.getElementById("region").selectedIndex].value ;
	var runningPrice = 0 ;
	for (var i=0; i<numberSelects.length; i++) {
		var numWanted = numberSelects[i][numberSelects[i].selectedIndex].value ;
		var linePrice = prices[region][i] * numWanted ;
		runningPrice += linePrice ;
		var tableRow = climbDom(numberSelects[i], "tr") ;
		var lineTotalDisplay = tableRow.getElementsByTagName("span")[0] ;
		lineTotalDisplay.innerHTML = linePrice.toFixed(2) ;
	}
	document.getElementById("grandTotalSpan").innerHTML = runningPrice.toFixed(2) ;
	document.getElementById("grandTotal").value = runningPrice.toFixed(2) ;
	var customCombo = "" ;
	/*
		recipient (30)
		add1 (25)
		add2 (25)
		city (15)
		county (12)
		postcode (8)
		country (10)
		postCardMessage (50)
		grandTotal (for PP, 8?)
		numberTraditional (1)
		numberIced (1)
		numberPersonalised (1)
		personalisedMessageText (25)
		numberMoist (1)
		numberPuddings (1)
		numberLemon (1)
		
	Output format:
		- recipient, (31)
		- add1, (26)
		- (add2,) (26)
		- city, (16)
		- (county,) (13)
		- postcode, (9)
		- country, (11)
		- (Msg:"postCardMessage",) (56)
		- Order:1trad,2iced,1pers(personalmessage),4mois,2pudd,5lemn (41 + 27)
	*/
	customCombo += buildCombo("", "recipient", ",") ;
	customCombo += buildCombo("", "add1", ",") ;
	customCombo += buildCombo("", "add2", ",") ;
	customCombo += buildCombo("", "city", ",") ;
	customCombo += buildCombo("", "county", ",") ;
	customCombo += buildCombo("", "postcode", ",") ;
	customCombo += buildCombo("", "country", ",") ;
	customCombo += buildCombo("Msg:\"", "postCardMessage", "\",") ;
	customCombo += buildCombo("", "numberTraditional", "trad,") ;
	customCombo += buildCombo("", "numberIced", "iced,") ;
	customCombo += buildCombo("", "numberPersonalised", "pers,") ;
	customCombo += buildCombo("(", "personalisedMessageText", "),") ;
	customCombo += buildCombo("", "numberMoist", "mois,") ;
	customCombo += buildCombo("", "numberPuddings", "pudd,") ;
	customCombo += buildCombo("", "numberLemon", "lemon") ;
	document.getElementById("custom").value = customCombo ;
}
function buildCombo (pre, inputID, post) {
	if (document.getElementById(inputID)) {
		if (document.getElementById(inputID).options) {
			if (document.getElementById(inputID).options[document.getElementById(inputID).selectedIndex].value == "0") return "" ;
			else return pre + document.getElementById(inputID).options[document.getElementById(inputID).selectedIndex].value + post ;
		}
		else if (document.getElementById(inputID).value && document.getElementById(inputID).value.length && document.getElementById(inputID).value != defaultMessage) {
			return pre + document.getElementById(inputID).value + post ;
		}
	}
	// Catch-all
	return "" ;
}
function blankText() {
	if (myTA.value == defaultMessage) myTA.value ="" ;
}
function restoreText() {
	if (myTA.value == "") myTA.value = defaultMessage ;
}
function ismaxlength(obj) {
	var mlength = obj.getAttribute ? parseInt(obj.getAttribute("maxlength")) : "" ;
	if (obj.getAttribute && obj.value.length>mlength) {
		obj.value = obj.value.substring(0,mlength) ;
	}
	var charsLeft = parseInt((mlength) - parseInt(obj.value.length)) ;
	document.getElementById("charsLeft").innerHTML =  "<strong>" + charsLeft + "</strong><br />characters<br />left.." ;
}