// JavaScript Document

var iccForm = {

	addListeners: function () {
		if (!document.getElementsByTagName || !document.getElementById)
			return;		
		
		// set listeners
		//		guests
		var txtGuests_Adults = document.getElementById('intGuests_Adults');
		rwScript.addEvent(txtGuests_Adults, 'change', iccForm.getGuestChange(txtGuests_Adults), false);
		var txtGuests_Children = document.getElementById('intGuests_Children');
		rwScript.addEvent(txtGuests_Children, 'change', iccForm.getGuestChange(txtGuests_Children), false);

		//		menu choice
		var slcMenuChoice = document.getElementById('menuChoice');
		rwScript.addEvent(slcMenuChoice, 'change', iccForm.getMenuChange(slcMenuChoice), false);
		
		//		desserts
		var radDessertYes = document.getElementById('dessertYes');
		var radDessertNo = document.getElementById('dessertNo');
		rwScript.addEvent(radDessertYes, 'click', iccForm.getDessertAdd(radDessertYes), false);
		rwScript.addEvent(radDessertNo, 'click', iccForm.getDessertAdd(radDessertNo), false);
		
		var objDessertLabel = document.getElementById('ds_Label');
		var objDessertList = document.getElementById('ds_List');
		if (radDessertYes.checked == true) {
			objDessertLabel.style.display = 'inline';
			objDessertList.style.display = 'block';			
		} else {
			objDessertLabel.style.display = 'none';
			objDessertList.style.display = 'none';
		}
		
		//		dessert selection
		
		var j = 1;
		for (i=0; i < iccForm.arrAllDesserts.length; i++) {
			var objCheckBox = document.getElementById(iccForm.arrAllDesserts[i]);
			rwScript.addEvent(objCheckBox, 'click', iccForm.getDessertChange(objCheckBox), false);
			
			if (objCheckBox.checked == true) {
				iccForm.arrSelDesserts[j] = iccForm.arrAllDesserts[i];
				j--;
			}
		}
		
		// address stuff
		var txtShipState = document.getElementById('cnDeliveryState');
		txtShipState.disabled = true;
		var chkPAisDA = document.getElementById('PA_is_DA');
		rwScript.addEvent(chkPAisDA, 'click', iccForm.getCheckClick(chkPAisDA), false);
		
		// form submission
		var btnQuote = document.getElementById('btnQuote');
		var btnBooking = document.getElementById('btnBooking');
		rwScript.addEvent(btnQuote, 'click', iccForm.getButtonClick(btnQuote), false);
		rwScript.addEvent(btnBooking, 'click', iccForm.getButtonClick(btnBooking), false);
		
		var frmBooking = document.getElementById('icc_Booking');
		rwScript.addEvent(frmBooking, 'submit', iccForm.formSubmit, false);
		frmBooking.onsubmit = iccForm.checkSubmit; // Safari
		
		iccForm.retotalForm();
	},

	retotalForm: function () {
		var txtNumGuests_Adults = document.getElementById('intGuests_Adults');
		var txtNumGuests_Children = document.getElementById('intGuests_Children');
		var slcMenuChoice = document.getElementById('menuChoice');
		var radDessertYes = document.getElementById('dessertYes');
		var txtMenuLineTotal = document.getElementById('sngMenu_LineTotal');
		var txtDessertLineTotal = document.getElementById('sngDessert_LineTotal');
		var txtBookingTotal = document.getElementById('sngOrderTotal');		

		var intGuests = parseInt(txtNumGuests_Adults.value) + parseInt(txtNumGuests_Children.value);
				
		switch (slcMenuChoice.value) {
		case "0":
			var sngCostPP = 0;
			var sngCostPC = 0;
			break;
		case "1":
			var sngCostPP = 13.10;
			var sngCostPC = 9.85;
			break;
		case "2":
			var sngCostPP = 12.00;
			var sngCostPC = 9.00;
			break;
		case "3":
			var sngCostPP = 12.30;
			var sngCostPC = 9.25;
			break;
		case "4":
			var sngCostPP = 14.50;
			var sngCostPC = 10.90;
			break;
		case "5":
			var sngCostPP = 15.20;
			var sngCostPC = 11.40;
			break;
		case "6":
			var sngCostPP = 13.20;
			var sngCostPC = 9.90;
			break;
		}
		
		var sngMenuTotal = (parseInt(txtNumGuests_Adults.value) * sngCostPP) + (parseInt(txtNumGuests_Children.value) * sngCostPC);
		
		if (radDessertYes.checked == true) {
			var sngDessertTotal = intGuests * 3.5;
		} else {
			var sngDessertTotal = 0;
		}
		
		var sngBookingTotal = 80.6 + sngMenuTotal + sngDessertTotal;
		if (sngBookingTotal == 80.6) {
			sngBookingTotal = 0;
		}
		
		// Display New Totals
		txtMenuLineTotal.value = '$' + sngMenuTotal.toFixed(2);
		txtDessertLineTotal.value = '$' + sngDessertTotal.toFixed(2);
		txtBookingTotal.value = '$' + sngBookingTotal.toFixed(2);
	},

	guestChange: function (e, targetElement) {
		var el = window.event ? targetElement : e ? e.currentTarget : null;
		if (!el) return;
	
		if (el.value != parseInt(el.value, 10)) {
			el.value = 0;
		}
		
		iccForm.retotalForm();
	
	},
	getGuestChange: function (node) { return function(e) { iccForm.guestChange(e, node); }; },

	menuChange: function (e, targetElement) {
		var el = window.event ? targetElement : e ? e.currentTarget : null;
		if (!el) return;
	
		for (i=1; i < 7; i++) {
			var objUL = document.getElementById('mnu_' + i);
			objUL.style.display = 'none';
		}
		
		if (el.value != "0") {
			objUL = document.getElementById('mnu_' + el.value);
			objUL.style.display = 'block';
		}
		
		iccForm.retotalForm();
	
	},
	getMenuChange: function (node) { return function(e) { iccForm.menuChange(e, node); }; },

	dessertAdd: function (e, targetElement) {
		var el = window.event ? targetElement : e ? e.currentTarget : null;
		if (!el) return;
	
		var objDessertLabel = document.getElementById('ds_Label');
		var objDessertList = document.getElementById('ds_List');

		if ((el.id == 'dessertYes' && el.checked == true) || (el.id == 'dessertNo' && el.checked == false)) {
			objDessertLabel.style.display = 'inline';
			objDessertList.style.display = 'block';
		} else {
			objDessertLabel.style.display = 'none';
			objDessertList.style.display = 'none';
		}
		
		iccForm.retotalForm();
	
	},
	getDessertAdd: function (node) { return function(e) { iccForm.dessertAdd(e, node); }; },

	dessertChange: function (e, targetElement) {
		var el = window.event ? targetElement : e ? e.currentTarget : null;
		if (!el) return;
	
		if (el.checked == true) {	
			var strTemp = iccForm.arrSelDesserts[0];
			iccForm.arrSelDesserts[0] = iccForm.arrSelDesserts[1];
			iccForm.arrSelDesserts[1] = el.id;
			
			if (strTemp != 'null') {
				var objCheckOff = document.getElementById(strTemp);
				objCheckOff.checked = false;
			}
		} else {
			if (el.id == iccForm.arrSelDesserts[0]) {
				iccForm.arrSelDesserts[0] = 'null';
			} else if (el.id == iccForm.arrSelDesserts[1]) {
				iccForm.arrSelDesserts[1] = iccForm.arrSelDesserts[0];
				iccForm.arrSelDesserts[0] = 'null';
			}
		}
	},
	getDessertChange: function (node) { return function(e) { iccForm.dessertChange(e, node); }; },

	addressFill: function(e, targetElement) {
		var el = window.event ? targetElement : e ? e.currentTarget : null;
		if (!el) return;
		
		var txtPostAdd_1 = document.getElementById('cnPostalAddress1');
		var txtPostAdd_2 = document.getElementById('cnPostalAddress2');
		var txtPostSuburb = document.getElementById('cnPostalSuburb');
		var txtPostPostcode = document.getElementById('cnPostalPostcode');
		var txtShipAdd_1 = document.getElementById('cnDeliveryAddress1');
		var txtShipAdd_2 = document.getElementById('cnDeliveryAddress2');
		var txtShipSuburb = document.getElementById('cnDeliverySuburb');
		var txtShipPostcode = document.getElementById('cnDeliveryPostcode');
		
		if (el.checked == true) {
			txtShipAdd_1.disabled = true;
			txtShipAdd_2.disabled = true;
			txtShipSuburb.disabled = true;
			txtShipPostcode.disabled = true;
			txtShipAdd_1.style.backgroundColor = 'ece9d8';
			txtShipAdd_2.style.backgroundColor = 'ece9d8';
			txtShipSuburb.style.backgroundColor = 'ece9d8';
			txtShipPostcode.style.backgroundColor = 'ece9d8';
			txtShipAdd_1.value = txtPostAdd_1.value;
			txtShipAdd_2.value = txtPostAdd_2.value;
			txtShipSuburb.value = txtPostSuburb.value;
			txtShipPostcode.value = txtPostPostcode.value;
			el.value = '1';
		} else {
			txtShipAdd_1.disabled = false;
			txtShipAdd_2.disabled = false;
			txtShipSuburb.disabled = false;
			txtShipPostcode.disabled = false;
			txtShipAdd_1.style.backgroundColor = 'ffffff';
			txtShipAdd_2.style.backgroundColor = 'ffffff';
			txtShipSuburb.style.backgroundColor = 'ffffff';
			txtShipPostcode.style.backgroundColor = 'ffffff';
			txtShipAdd_1.value = '';
			txtShipAdd_2.value = '';
			txtShipSuburb.value = '';
			txtShipPostcode.value = '';
			el.value = '0';
		}
		
	},
	getCheckClick: function (node) { return function(e) { iccForm.addressFill(e, node); }; },

	formSubmit: function(e) {
		var el = window.event ? window.event.srcElement : e ? e.target : null;
		if (!el) return;
		
		var objFormFunction = document.getElementById('formFunction');
		$strConfirm = confirm("Are you sure you want to continue with this " + objFormFunction.value + "?");
	
		if (!$strConfirm) {
			el.submitAllowed = false;
			if (e && e.stopPropagation && e.preventDefault) {
				e.stopPropagation();
				e.preventDefault();
			}
			if (window.event) {
				window.event.cancelBubble = true;
				window.event.returnValue = false;
				return false;
			}
		} else {
			// Enable all Form Fields
			var txtShipAdd_1 = document.getElementById('cnDeliveryAddress1');
			var txtShipAdd_2 = document.getElementById('cnDeliveryAddress2');
			var txtShipSuburb = document.getElementById('cnDeliverySuburb');
			var txtShipState = document.getElementById('cnDeliveryState');
			var txtShipPostcode = document.getElementById('cnDeliveryPostcode');
			txtShipAdd_1.disabled = false;
			txtShipAdd_2.disabled = false;
			txtShipSuburb.disabled = false;
			txtShipState.disabled = false;
			txtShipPostcode.disabled = false;

			el.submitAllowed = true;
		}
	},
	checkSubmit: function() { return this.submitAllowed; },
	
	frmButtonClick: function(e, targetElement) {
		var el = window.event ? targetElement : e ? e.currentTarget : null;
		if (!el) return;
		
		// Update Form Function
		var objFormFunction = document.getElementById('formFunction');
		if (el.id == 'btnQuote') {
			objFormFunction.value = "quote";
		} else {
			objFormFunction.value = "booking";
		}
	},
	getButtonClick: function (node) { return function(e) { iccForm.frmButtonClick(e, node); }; },

	arrAllDesserts: ['ds_Pavlova','ds_Cheesecake','ds_BlackForest','ds_ChocolateCake','ds_CherryStrudel','ds_CheeseBiscuits','ds_AppleStrudel','ds_FruitPlatter'],
	arrSelDesserts: ['null','null']

};

rwScript.addEvent(window, 'load', iccForm.addListeners, false);
rwScript.addEvent(window, 'unload', EventCache.flush, false);