/* When clicking "I want Cruisey Pay!" */
function toggleCruiseyPay(checkbox, cruisey_pay_details, divActionButton, divActionButton2)
{

    var cruisey_pay_details = document.getElementById(cruisey_pay_details);
    var divActionButton = document.getElementById('divActionButton');
    var divActionButton2 = document.getElementById('divActionButton2');

    if(cruisey_pay_details){
           
        if(checkbox.checked == true){
            showElement('cruisey_pay_details');
            divActionButton.style.display = "none";
            divActionButton2.style.display = "";            
        } else {
            hideElement('cruisey_pay_details');
            divActionButton.style.display = "";
            divActionButton2.style.display = "none";        
        }        
    }
    
}

function getChildNodes(element){

	// Use this approach because Firefox and IE often differ with respect to the DOM and FF seems to add in the odd extra element
	// only look as far as the first 10 children
	for(var i = 0; i<10; i++){
		if(document.getElementById(element).childNodes[i].childNodes.length > 0)
			return document.getElementById(element).childNodes[i].childNodes;
	}
	return document.getElementById(element).childNodes[0].childNodes;
}

function selectVehicle(type,vehicleOrTrailer,setVehicle){

	var elements;
	var thisElement;
	var arrayCount = 0;
	var vehicles = new Array();
	
	if(vehicleOrTrailer != "trailer")
	{
		elements = document.getElementById("ctlTravelDetails_vehicle_container_" + type).childNodes;
	}
	else
		elements = document.getElementById("ctlTravelDetails_towed_container_" + type).childNodes;
	
	for (var j = 0; j < elements.length; j++) {
		thisElement = elements[j];
		if (thisElement.nodeName == "LABEL" && thisElement.id.indexOf("_length") <= 0)
		{
			vehicles[arrayCount++] = thisElement.id.substr(0, thisElement.id.indexOf(type));
		}
	}
        
    if(type != "departing" && type != "returning"){
        return false;
    }
        
    for(i in vehicles){
        
        var base_name = vehicles[i];
        var container = document.getElementById(base_name + type);
        var radio = document.getElementById(base_name + type + '_radio');
        
        if(container && radio){
                        
            var length_container = document.getElementById(base_name + type + '_length');
            var length_input = document.getElementById(base_name + type + '_length_input');
            var txtVehicleTypeID = document.getElementById((type == 'departing') ? ((vehicleOrTrailer != 'trailer') ? 'ctlTravelDetails_txtDepartVehicleTypeID' : 'ctlTravelDetails_txtDepartTrailerTypeID') : ((vehicleOrTrailer != 'trailer') ? 'ctlTravelDetails_txtReturnVehicleTypeID' : 'ctlTravelDetails_txtReturnTrailerTypeID'));
            var txtVehicleDetail = document.getElementById((type == 'departing') ? ((vehicleOrTrailer != 'trailer') ? 'ctlTravelDetails_txtDepartVehicleDetail' : 'ctlTravelDetails_txtDepartTrailerDetail') : ((vehicleOrTrailer != 'trailer') ? 'ctlTravelDetails_txtReturnVehicleDetail' : 'ctlTravelDetails_txtReturnTrailerDetail'));
            var txtVehicleLength = document.getElementById((type == 'departing') ? ((vehicleOrTrailer != 'trailer') ? 'ctlTravelDetails_txtDepartVehicleLength' : 'ctlTravelDetails_txtDepartTrailerLength') : ((vehicleOrTrailer != 'trailer') ? 'ctlTravelDetails_txtReturnVehicleLength' : 'ctlTravelDetails_txtReturnTrailerLength'));

            var splitID = container.id.split('_');
            
            // if we're setting the radio button then set it here
            if (setVehicle && txtVehicleTypeID.value == splitID[2])
            {
				radio.checked = true;
				txtVehicleDetail.value = radio.value;
				if (length_input && txtVehicleLength.value.length > 0)
				{
					length_input.value = txtVehicleLength.value;
				}
            }
            
            if(radio.checked){
                container.className = 'selected';
                if (!setVehicle){
					txtVehicleTypeID.value = splitID[2];
					txtVehicleDetail.value = radio.value;
					if (type == 'departing' && document.getElementById('vehicle_returning').style.display == 'none')
					{
						if (vehicleOrTrailer != 'trailer')
						{
							document.getElementById('ctlTravelDetails_txtReturnVehicleTypeID').value = splitID[2];
							document.getElementById('ctlTravelDetails_txtReturnVehicleDetail').value = txtVehicleDetail.value;
							if (length_container)
							{
								document.getElementById('ctlTravelDetails_txtReturnVehicleLength').value = txtVehicleLength.value;
							}
						}
						else
						{
							document.getElementById('ctlTravelDetails_txtReturnTrailerTypeID').value = splitID[2];
							document.getElementById('ctlTravelDetails_txtReturnTrailerDetail').value = txtVehicleDetail.value;
							if (length_container)
							{
								document.getElementById('ctlTravelDetails_txtReturnTrailerLength').value = txtVehicleLength.value;
							}
						}
					}
				}
                if(length_container){
                    length_container.style.display = 'block';
                    length_container.className = 'selected';
                    if (!setVehicle){
						txtVehicleLength.value = length_input.value;
					}
                }
            } else {
                container.className = '';
                if(length_container){
                    length_container.style.display = 'none';
                    length_container.className = '';
                }
            }
                       
        }
        
    }
    
}

function toggleVehicleTab(type,turn_me_on)
{
    
    if(type != "departing" && type != "returning"){
        return false;
    }
    
    var tab = document.getElementById('vehicle_' + type + '_tab');
    var bike_note = document.getElementById('bike_note');
    
    if(tab){
        
        if(turn_me_on){
            tab.className = 'selected';
            showElement('vehicle_' + type);
            hideElement('bike_note');
            // make sure the radio button is set
            selectVehicle(type, 'vehicle', true);
            selectVehicle(type, 'trailer', true);
        } else {
            hideElement('vehicle_' + type);
            tab.className = '';
        }
        
    }
    
}

function toggleMotorcycleTab(type,turn_me_on)
{
    
    if(type != "departing" && type != "returning"){
        return false;
    }
    
    var tab = document.getElementById('motorcycle_' + type + '_tab');
    
    if(tab){
        
        if(turn_me_on){
            tab.className = 'selected';
            showElement('motorcycle_' + type);
            hideElement('bike_note'); 
        } else {
            hideElement('motorcycle_' + type);
            tab.className = '';
        }
        
    }
    
}

function checkDifferentReturnVehicles()
{
    
    var from_oneway = document.getElementById('ctlTravelDetails_from_oneway');
    var vehicle_departing_radio_no_vehicle = document.getElementById('ctlTravelDetails_vehicle_departing_radio_no_vehicle');
    var different_return_vehicles_title = document.getElementById('different_return_vehicles_title');
    
    if(from_oneway && vehicle_departing_radio_no_vehicle){
        
        if(from_oneway.checked == false){
            
            if(vehicle_departing_radio_no_vehicle.checked == false){
                
                hideElement('only_return_vehicle_link');
                showElement('different_return_vehicles_link');
                different_return_vehicles_title.innerHTML = 'Different return vehicle';
                
            } else {
            
                showElement('only_return_vehicle_link');
                hideElement('different_return_vehicles_link');
                different_return_vehicles_title.innerHTML = 'Return vehicle';
            
            }
            
        } else {
        
            hideElement('only_return_vehicle_link');
            hideElement('different_return_vehicles_link');
        
        }
        
    }
    
}

/* Function for "one way" vs. "return" options */
function checkOneWay(on){

    if(on == true){
    
        hideElement('returning');
        hideElement('different_return_passengers_link');
        hideElement('different_return_trailer_link');
        hideElement('different_return_vehicles_link');
        hideElement('only_return_vehicle_link');
        hideElement('vehicle_returning_options');
        hideElement('different_return_vehicles_title');
        hideElement('vehicle_returning');
        hideElement('passengers_returning');
        var vehicle_returning_radio_same_as_departing = document.getElementById('ctlTravelDetails_vehicle_returning_radio_same_as_departing');
        vehicle_returning_radio_same_as_departing.checked = true;
        document.getElementById('ctlTravelDetails_txtDifferentReturnPax').value = "false";
    
    } else {
    
        showElement('returning');
        showElement('different_return_passengers_link');
        showElement('different_return_trailer_link');
        
//        var vehicle_returning_radio_same_as_departing = document.getElementById('ctlTravelDetails_vehicle_returning_radio_same_as_departing');
//        if (vehicle_returning_radio_same_as_departing.checked) {
//			var vehicle_departing_radio_no_vehicle = document.getElementById('ctlTravelDetails_vehicle_departing_radio_no_vehicle');
//			var vehicle_departing_radio_vehicle = document.getElementById('ctlTravelDetails_vehicle_departing_radio_vehicle');
//			var vehicle_departing_radio_motorcycle = document.getElementById('ctlTravelDetails_vehicle_departing_radio_motorcycle');
//			
//			if (vehicle_departing_radio_vehicle.checked) {
//				document.getElementById('ctlTravelDetails_vehicle_returning_radio_vehicle').checked == true;
//			} else if (vehicle_departing_radio_motorcycle.checked) {
//				document.getElementById('ctlTravelDetails_vehicle_returning_radio_motorcycle').checked == true;
//			} else {
//				document.getElementById('ctlTravelDetails_vehicle_returning_radio_no_vehicle').checked == true;
//			}
//        }
//        else alert('nope');
        
        checkDifferentReturnVehicles();
    
    }

}

/* Function for clicking "Different return passengers" */
function checkReturnPassengers()
{
    showElement('passengers_returning');
    hideElement('different_return_passengers_link');
    
    if (!bookingLoaded) {
		var departControls = document.getElementById("ctlTravelDetails_txtPaxTypeControls").value.split(",");
		var returnControls = document.getElementById("ctlTravelDetails_txtPaxTypeReturnControls").value.split(",");
	    
		for(i=0;i<departControls.length;i++){
			var cboDepart = document.getElementById(departControls[i]);
			var cboReturn = document.getElementById(returnControls[i]);
	        
			if(cboDepart && cboReturn){
				cboReturn.selectedIndex = cboDepart.selectedIndex;
			}
		}
    }
    
    document.getElementById("ctlTravelDetails_txtDifferentReturnPax").value = "true";
}

/* Function for clicking "Different return vehicle" */
function checkReturnVehicle()
{

    var vehicle_returning_options = document.getElementById("vehicle_returning_options");
    var vehicle_returning_radio = document.getElementById("ctlTravelDetails_vehicle_returning_radio_vehicle");
    var motorcycle_returning_radio = document.getElementById("ctlTravelDetails_vehicle_returning_radio_motorcycle");
    var turnMeOn = false;

    if(vehicle_returning_options && vehicle_returning_radio){
        
        if(vehicle_returning_options.style.display == "" || vehicle_returning_options.style.display == "none"){
            
            turnMeOn = true;
            hideElement('different_return_vehicles_link');
            hideElement('only_return_vehicle_link');
            
            if(vehicle_returning_radio.checked == true){
                toggleVehicleTab('returning',true);
                showElement('vehicle_returning');
            } else {
                hideElement('vehicle_returning');
                toggleVehicleTab('returning',false);
            }
            
            if(motorcycle_returning_radio.checked == true){
                toggleMotorcycleTab('returning',true);
                showElement('motorcycle_returning');
            } else {
                hideElement('motorcycle_returning');
                toggleMotorcycleTab('returning',false);
            }
                
        } else {
        
            hideElement('vehicle_returning');
            hideElement('motorcycle_returning');
        
        }
        
        toggleElement('different_return_vehicles_title');
        toggleElement('vehicle_returning_options');
        
        // Copy departing options to returning vehicle and hide this link
        if(turnMeOn && !bookingLoaded){
            
            //hideElement('different_return_vehicles_link');
            //hideElement('only_return_vehicle_link');

			var elements = document.getElementById("ctlTravelDetails_vehicle_container_departing").childNodes;
			var thisElement;
			var arrayCount = 0;
			var vehicles = new Array();
			
			for (var j = 0; j < elements.length; j++) {
				thisElement = elements[j];
				if (thisElement.nodeName == "LABEL" && thisElement.id.indexOf("_length") <= 0)
				{
					vehicles[arrayCount++] = thisElement.id.substr(0, thisElement.id.indexOf("departing"));
				}
			}
			elements = document.getElementById("ctlTravelDetails_towed_container_departing").childNodes;
			for (var j = 0; j < elements.length; j++) {
				thisElement = elements[j];
				if (thisElement.nodeName == "LABEL" && thisElement.id.indexOf("_length") <= 0)
				{
					vehicles[arrayCount++] = thisElement.id.substr(0, thisElement.id.indexOf("departing"));
				}
			}
            
            for(i in vehicles){
                
                var base_name = vehicles[i];
                var returning_container = document.getElementById(base_name + "returning");
                var returning_radio = document.getElementById(base_name + "returning_radio");
                var departing_radio = document.getElementById(base_name + "departing_radio");
                var returning_length_container = document.getElementById(base_name + "returning_length");
                var departing_length_container = document.getElementById(base_name + "departing_length");
                var returning_length_input = document.getElementById(base_name + "returning_length_input");
                var departing_length_input = document.getElementById(base_name + "departing_length_input");
                
                if(returning_container && returning_radio && departing_radio){
                    
                    returning_radio.checked = departing_radio.checked;
                    if(returning_radio.checked == true){
                        returning_container.className = 'selected';
                        if(returning_length_container && departing_length_container){
                            returning_length_container.className = 'selected';
                            returning_length_container.style.display = 'block';
                        }
                        if(returning_length_input && departing_length_input){
                            returning_length_input.value = departing_length_input.value;
                        }
                    } else {
                        returning_container.className = '';
                        if(returning_length_container){
                            returning_length_container.className = '';
                            returning_length_container.style.display = 'none';
                        }
                    }
                    
                }
                
            }
            
            var returning_towed_checkbox = document.getElementById('ctlTravelDetails_returning_towed_checkbox');
            var departing_towed_checkbox = document.getElementById('ctlTravelDetails_departing_towed_checkbox');
            
            var vehicle_departing_radio_no_vehicle = document.getElementById('ctlTravelDetails_vehicle_departing_radio_no_vehicle');
            var vehicle_departing_radio_vehicle = document.getElementById('ctlTravelDetails_vehicle_departing_radio_vehicle');
            var vehicle_departing_radio_motorcycle = document.getElementById('ctlTravelDetails_vehicle_departing_radio_motorcycle');
            
            var vehicle_returning_radio_no_vehicle = document.getElementById('ctlTravelDetails_vehicle_returning_radio_no_vehicle');
            var vehicle_returning_radio_vehicle = document.getElementById('ctlTravelDetails_vehicle_returning_radio_vehicle');
            var vehicle_returning_radio_motorcycle = document.getElementById('ctlTravelDetails_vehicle_returning_radio_motorcycle');
        
            if(returning_towed_checkbox && departing_towed_checkbox && vehicle_departing_radio_no_vehicle && vehicle_departing_radio_vehicle && vehicle_departing_radio_motorcycle && vehicle_returning_radio_no_vehicle && vehicle_returning_radio_vehicle && vehicle_returning_radio_motorcycle){
            
                if(departing_towed_checkbox.checked == true){
                    returning_towed_checkbox.checked = true;
                    checkTowedVehicle("returning",returning_towed_checkbox);
                } else {
                    returning_towed_checkbox.checked = false;
                    checkTowedVehicle("returning",returning_towed_checkbox);
                }
                                
                vehicle_returning_radio_no_vehicle.checked = vehicle_departing_radio_no_vehicle.checked;
                vehicle_returning_radio_vehicle.checked = vehicle_departing_radio_vehicle.checked;
                vehicle_returning_radio_motorcycle.checked = vehicle_departing_radio_motorcycle.checked;
                
                if(vehicle_returning_radio_vehicle.checked == true){
                    toggleVehicleTab("returning",true);
                    showElement('vehicle_returning');
                } else {
                    toggleVehicleTab("returning",false);
                    hideElement('vehicle_returning');
                }
                
                if(vehicle_returning_radio_motorcycle.checked == true){
                    toggleMotorcycleTab("returning",true);
                    showElement('motorcycle_returning');
                } else {
                    toggleMotorcycleTab("returning",false);
                    hideElement('motorcycle_returning');
                }
                
            }
            
        }
        
        if (turnMeOn && bookingLoaded) {
			var vehicle_returning_radio_same_as_departing = document.getElementById('ctlTravelDetails_vehicle_returning_radio_same_as_departing');
			if (vehicle_returning_radio_same_as_departing.checked) {

				vehicle_returning_radio_same_as_departing.checked = false;

				var vehicle_departing_radio_no_vehicle = document.getElementById('ctlTravelDetails_vehicle_departing_radio_no_vehicle');
				var vehicle_departing_radio_vehicle = document.getElementById('ctlTravelDetails_vehicle_departing_radio_vehicle');
				var vehicle_departing_radio_motorcycle = document.getElementById('ctlTravelDetails_vehicle_departing_radio_motorcycle');
				
				if (vehicle_departing_radio_vehicle.checked) {
					document.getElementById('ctlTravelDetails_vehicle_returning_radio_vehicle').checked = true;
				} else if (vehicle_departing_radio_motorcycle.checked) {
					document.getElementById('ctlTravelDetails_vehicle_returning_radio_motorcycle').checked = true;
				} else {
					document.getElementById('ctlTravelDetails_vehicle_returning_radio_no_vehicle').checked = true;
				}
			}
		}
        
    }
            
}

/* Function for checking the "towed vehicle" checkbox */
function checkTowedVehicle(type,checkbox)
{
    
    var towed_container = document.getElementById("ctlTravelDetails_towed_container_" + type);
    
    if(towed_container){
    
        if(checkbox.checked == true){
            
            showElement("ctlTravelDetails_towed_container_" + type);
            
        } else {
        
            hideElement("ctlTravelDetails_towed_container_" + type);
        
        }
        
    }

}

/* Booking summary show fare detail toggle" */
function toggleFaretype()
{

}

/* NMC login toggle */
function nmcLogin(element)
{
    if (element.checked) { 
        showElement('ctlTravelDetails_divNMCLogin');
    } else { 
        hideElement('ctlTravelDetails_divNMCLogin');
        clearError("ctlTravelDetails_fldNMCDetails", "ctlTravelDetails_spnNMCError");
    }
}