var sniffer = new BrowserSniffer();

function init_addr() {
	var puElem = document.BookingForm["locationSelections.pickUpContacts.address.suburb"];
	var delElem = document.BookingForm["locationSelections.deliveryContacts.address.suburb"];
	
	if( puElem && puElem.value == "") {
		update_addr("pickUpContacts");
		}
	if( delElem && delElem.value == "") {
		update_addr("deliveryContacts");
		}
}


function update_addr(source) {
	var list = document.BookingForm["locationSelections." + source + ".address.addressId"];
	if( list) {
		var index = list.selectedIndex;
		if( index == -1) {
			index = 0;
		}
		var choice = list.options[index].value;
		var suburblist = document.BookingForm["locationSelections." + source + ".address.suburb"].options;
		var choicesuburb = suburbs[choice];
		var i;
	
		if (choice == "OTHER") {
			document.BookingForm["locationSelections." + source + ".name"].value = "";
			document.BookingForm["locationSelections." + source + ".address.streetAddress"].value = "";
			document.BookingForm["locationSelections." + source + ".address.streetAddress2"].value = "";
			document.BookingForm["locationSelections." + source + ".address.addressNumber"].value = 0;        
    	   	 document.BookingForm["locationSelections." + source + ".address.suburb"].value="";        
		}
		else {
			document.BookingForm["locationSelections." + source + ".name"].value = company[choice];
			document.BookingForm["locationSelections." + source + ".address.streetAddress"].value = addr1[choice];
			document.BookingForm["locationSelections." + source + ".address.streetAddress2"].value = addr2[choice];
			document.BookingForm["locationSelections." + source + ".address.addressNumber"].value = num[choice];        
	        document.BookingForm["locationSelections." + source + ".address.suburb"].value=suburbs[choice];
		}
	}
}


function setSearchSource(source) {
	document.BookingForm.searchSource.value = source;
	return true;
}

function getMetroArea() {
	var metroArea = document.BookingForm["courierTypeSelections.metroArea"];
	if( metroArea && metroArea.value ) {
		return metroArea.value;
	} 
	return "";
}

	var fadedColor = "#AAAAAA";
	var origMATextColor = "#000000";
	var origITTextColor = "#000000";

function updateJobTypeControls(fColor) {
		if(!fColor) {
			fColor = fadedColor;
		}
	
		var list = document.BookingForm["courierTypeSelections.type"];
		var metroArea = document.BookingForm["courierTypeSelections.metroArea"];
		
		for(var i = 0; i < list.length; i++) {
			var paymentType = list[i];
			if(paymentType.checked) {		
				if(paymentType.value != "courier") {
					metroArea.disabled = true;
					document.getElementById("metrolabel").style.color=fColor;
					if(document.getElementById("infotd")) {
						document.getElementById("infotd").style.color=fColor;
						document.getElementById("infotd").style.borderColor=fColor;
					}
				}
				else {
					metroArea.disabled = false;
					document.getElementById("metrolabel").style.color=origMATextColor;
					if(document.getElementById("infotd")) {
						document.getElementById("infotd").style.color=origITTextColor;
						document.getElementById("infotd").style.borderColor="#959595";
					}
				}
			}	
		}
	}


function updateDimensionControls(isInit) {
		var list = document.BookingForm["courierTypeSelections.type"];
		var dimensionDisabled = false;
		var weightDisabled    = false;
		var modifyButtonsDisabled = false;
				
		for(var i = 0; i < list.length; i++) {
			var paymentType = list[i];
			if(paymentType.checked) {		
				if(paymentType.value == "courier") {
					dimensionDisabled = true;
				
				} else if (paymentType.value == "economy") {
					dimensionDisabled   = true;
					weightDisabled      = true;
					modifyButtonsDisabled = true;
				}
			}	
		}
		
		changeControlsState(dimensionDisabled, weightDisabled, modifyButtonsDisabled);
}

function changeControlsState(dimensionDisabled, weightDisabled, modifyButtonsDisabled) {
	var dimensionElements = getElementsByClass("dimensionelement");
	var weightElements    = getElementsByClass("weightelement");
	var dimensionLabels   = getElementsByClass("dimensionlabel");
	var weightLabels      = getElementsByClass("weightlabel");
	var modifyButtons     = document.getElementsByName("modifyItems");
	
	for(idx = 0; idx < dimensionElements.length; idx++) {
		dimensionElements[idx].disabled = dimensionDisabled;
	}
	for(idx = 0; idx < dimensionLabels.length; idx++) {
		dimensionLabels[idx].style.color = dimensionDisabled ? fadedColor : origMATextColor;
	}
	for(idx = 0; idx < weightElements.length; idx++) {
		weightElements[idx].disabled = weightDisabled;
	}
	for(idx = 0; idx < weightLabels.length; idx++) {
		weightLabels[idx].style.color = weightDisabled ? fadedColor : origMATextColor;
	}
	
	if (modifyButtons != null) {
		for(idx = 0; idx < modifyButtons.length; idx++) {
			modifyButtons[idx].disabled = modifyButtonsDisabled;
		}
	}
}

function updateIndemnityControls() {
	var tbl = document.getElementById("accept_indemnity_terms");
	//var accepted = document.BookingForm["acceptTerms"];
	var indType = document.BookingForm["extraSelections.selectedInsuranceType"];
	if( tbl && indType ) {
		var tds = tbl.getElementsByTagName("TD");
		var links = tbl.getElementsByTagName("A");
		var inputs = tbl.getElementsByTagName("INPUT");
		var checkedValue = getCheckedRadioValue(indType);
		if(checkedValue != "none") {
			for(var idx=0; idx<tds.length; idx++) {
				tds[idx].style.color="#000000";
			}
			for(var idx=0; idx<links.length; idx++) {
				links[idx].style.color="#000000";
			}
			for(var idx=0; idx<inputs.length; idx++) {
				inputs[idx].disabled=false;
			}
			
		}
		else {
			for(var idx=0; idx<tds.length; idx++) {
				tds[idx].style.color="#0E2C8C";
			}
			for(var idx=0; idx<links.length; idx++) {
				links[idx].style.color="#0E2C8C";
			}
			for(var idx=0; idx<inputs.length; idx++) {
				inputs[idx].disabled=true;
			}
		}
	}
}

function toggleHintBox(divId) {
 		var cvnVisib = document.getElementById(divId).style.visibility;
 		if( cvnVisib == 'visible') {
 			document.getElementById(divId).style.visibility = 'hidden';
 		}
 		else {
 			document.getElementById(divId).style.visibility = 'visible';
 		}
  }
  
  
function initialise() {
	updatePickupTime();
}
	
function updatePickupTime() {
	var asapPickup = document.BookingForm["locationSelections.asapPickUp"];
	for(var i = 0; i < asapPickup.length; i++) {
		var opt = asapPickup[i];
		if (opt.value == "false" && opt.checked == true ) {
			setPickupFields(false);	
		}
		else {
			setPickupFields(true);	
		}
	}
}

function togglePickupDetails(sourceElement) {
	if( pickupToggle == "off" ) {
		document.BookingForm["locationSelections.pickUpContacts.name"].value = myName;
		document.BookingForm["locationSelections.pickUpContacts.phone"].value = myPhone;
		document.BookingForm["locationSelections.pickUpContacts.email"].value = myEmail;
		pickupToggle = "on";
		sourceElement.value = "Clear My Details";
	}
	else {
		document.BookingForm["locationSelections.pickUpContacts.name"].value = null;
		document.BookingForm["locationSelections.pickUpContacts.phone"].value = null;
		document.BookingForm["locationSelections.pickUpContacts.email"].value = null;
		pickupToggle = "off";
		sourceElement.value = "Use My Details";
	}
}

var fadedColor = "#AAAAAA";
var origTextColor = "#000000";

function setPickupFields(isDisabled) {
	document.BookingForm["locationSelections.pickupTimeHours"].disabled = isDisabled;
	document.BookingForm["locationSelections.pickupTimeMinutes"].disabled = isDisabled;
	document.getElementById('locationSelections_pickupDate').disabled = isDisabled;
	if (dijit.byId('locationSelections_pickupDate') != null) {
		dijit.byId('locationSelections_pickupDate').setDisabled(isDisabled);
	}

	if( isDisabled) {
		document.getElementById("workdaysinfo").style.visibility="hidden";
	}
	else {
		document.getElementById("workdaysinfo").style.visibility="visible";
	}
}

function setCCDetails() {
	var show = false;
	var buttonGroup = document.BookingCartForm["paymentBean.paymentMethod"];
	var checkedValue = getCheckedRadioValue(buttonGroup);
	if(checkedValue == "CC") {
		show = true;
	}
	
	var detailsElem = document.getElementById("cc_detail_row");
	var submitTextElem = document.getElementById("submit_text");
	var submitButtonElem = document.getElementById("submit_button");
	
	if(show) {
		detailsElem.style.display = "";	
		submitTextElem.innerHTML = "Submit Credit Card Payment";
		submitButtonElem.style.display = "";
	}
	else {
		detailsElem.style.display = "none";
		submitButtonElem.style.display = "none";
		submitTextElem.innerHTML = '<input type="image" alt="Next" src="images/btn_xpressCheckout.gif" name="paymentBean.payPalCheckout"/>"';
	}
}

function initialiseUpgradeService() {
	initialiseTailLift();
	updateIndemnityControls();
}

function initialiseTailLift() {
	var tailLiftPanel = document.getElementById('panel_tail_lift');
	if (tailLiftPanel) {
		var tailLiftCombo = document.BookingForm["extraSelections.selectedTailLiftServiceType"];

		tailLiftCombo.onchange = tailLiftHasBeenChanged;
		tailLiftHasBeenChanged(true);
	}
}

function tailLiftHasBeenChanged(isInit) {
	var pickupPanel   = document.getElementById('panel_priority_pickup');
	var deliveryPanel = document.getElementById('panel_vip_delivery');
	var tailLiftCombo = document.BookingForm["extraSelections.selectedTailLiftServiceType"];
	var value = tailLiftCombo.options[tailLiftCombo.selectedIndex].value;
	var display = "";
	
	var showAlert = false;
	
	/* if tail lift required, then pickup priority and vip delivery are not available */
	if (value != "none") {
		display = "none";
	}
	
	/* Redefining panels visibility if they exist */
	if (pickupPanel) {
		pickupPanel.style.display = display;
		if (isInit != true) {
			if (getCheckedRadioValue(document.BookingForm["extraSelections.priorityPickup.selected"]) == "true") {
				showAlert = true;
			}
			setRadioValue(document.BookingForm["extraSelections.priorityPickup.selected"], "false");
		}		
	}
	if (deliveryPanel) {
		deliveryPanel.style.display = display;
		if (isInit != true) {
			if (getCheckedRadioValue(document.BookingForm["extraSelections.vipDelivery.selected"]) == "true") {
				showAlert = true;
			}
			setRadioValue(document.BookingForm["extraSelections.vipDelivery.selected"], "false");
		}
	}
	
	if (showAlert == true) {
		alert("Note: Because you have chose a Tail-Lift truck, your previous choice for a Priority Pickup and/or VIP Delivery has been withdrawn.");
	}
}