var lastDateSelectedValue;  


  function changeTabForSelectedDate(ob_tab) {

	var dateSelected = getDateYearSelected();

	//if (ob_tab!=currentTab) {
      oldTab = currentTab;
      
      oldTab.childNodes[0].className="";
      ob_tab.childNodes[0].className="here";


      var oldTabName = oldTab.id.substr(4);
      var obTabName = ob_tab.id.substr(4);
          
      if (document.getElementById("block_" + oldTabName + "_" + lastDateSelectedValue) != null) {
        setHidden(document.getElementById("block_" + oldTabName + "_" + lastDateSelectedValue));
      } else {
        setHidden(document.getElementById("block_" + oldTabName));
      }    	  
      

      if (document.getElementById("block_" + obTabName + "_" + dateSelected.value) != null) {
        setVisible(document.getElementById("block_" + obTabName + "_" + dateSelected.value));
      } else {
    	setVisible(document.getElementById("block_" + obTabName));
      }
        
      lastDateSelectedValue = dateSelected.value;
      currentTab=ob_tab;
		
      // for google analytics
      pageTracker._trackEvent('Tabs', currentTab.id.substr(4), document.title);
      
  //}
  }

  function currencyUnformat(amount) {
	if (amount == null) {
	  return "0";
    }
	if (amount == "") {
	  return "0";
    }
	return amount.replace('$','').replace(',','');
  }

  function currencyFormat(amount) {
    var i = parseFloat(amount);
	if(isNaN(i)) {
	  // try and unformat first to see if the number has a $ and other characters in it
	  i = currencyUnformat(amount);
	  
	  if(isNaN(i)) {
	    i = 0.00;
	  }
	}
	var minus = '';
	if(i < 0) {
	  minus = '-';
	}
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { 
	  s += '.00';
	}
	if(s.indexOf('.') == (s.length - 2)) { 
	  s += '0';
	}
	s = minus + s;
	//add the comma
	nStr = s + '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
	  x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return '$' + x1 + x2;  
  }
	  
  function currecyFormatWithoutDecimal(amount) {
    amount = currencyFormat(amount);
    var dollarAmount = amount.split('.');
    return (dollarAmount[0]);
  }
	  
  function getRequestParameter(paramerterName) {
    var queryString = unescape(window.top.location.search.substring(1));
    var parameterName = paramerterName + "=";
    var parameterValue = "";
    if (queryString.length > 0) {
      // Find the beginning of the string 
      var begin = queryString.indexOf(parameterName);      
      // If the parameter name is not found, skip it, otherwise return the value      
      if ( begin != -1 ) {         
        // Add the length (integer) to the beginning         
        begin += parameterName.length;         
        // Multiple parameters are separated by the "&" sign         
        var end = queryString.indexOf ( "&" , begin );      
	    if (end == -1 ) {         
          end = queryString.length;    
        }
        parameterValue = queryString.substring (begin, end);
      }
      return parameterValue;
    }
  }
 
  
  //############################################################################################
  // section of javascript for the tour template
  //############################################################################################
  
  // Function to return the date selected field from the Book Now form
  function getDateYearSelected() {
	var thisYear = new Date();
	var nextYear = new Date();
	var yearAfterNext = new Date();
	nextYear.setFullYear(nextYear.getFullYear() + 1);
	yearAfterNext.setFullYear(yearAfterNext.getFullYear() + 2);
	
	var thisYearDateSelected;
	if (eval("document.bookNowForm.dates_" + thisYear.getFullYear() != null)) {
	  thisYearDateSelected = eval("document.bookNowForm.dates_" + thisYear.getFullYear());
	}
	var nextYearDateSelected;
	if (eval("document.bookNowForm.dates_" + nextYear.getFullYear() != null)) {
      nextYearDateSelected = eval("document.bookNowForm.dates_" + nextYear.getFullYear());
	}
	var yearAfterNextSelected;
	if (eval("document.bookNowForm.dates_" + yearAfterNext.getFullYear() != null)) {
      yearAfterNextSelected = eval("document.bookNowForm.dates_" + yearAfterNext.getFullYear());
	}
	
    var dateSelected;
    if (thisYearDateSelected != null && thisYearDateSelected.selectedIndex > 0) {
	  dateSelected = thisYearDateSelected;
	} else {
	    if (nextYearDateSelected != null && nextYearDateSelected.selectedIndex > 0) {
		  dateSelected = nextYearDateSelected;
		} else {
	      dateSelected = yearAfterNextSelected;
		}
	}
    return dateSelected;
  }
  
  // this function is to update the Dates & Prices section
  function updatePriceDescription(dates) {
    if (dates.value != "") {
      document.getElementById("descriptionDate").innerHTML = eval("descDate_" + dates.value);
      document.getElementById("descriptionDays").innerHTML = eval("totalDays_" + dates.value);
      document.getElementById("descriptionNights").innerHTML = eval("totalNights_" + dates.value);
      document.getElementById("descriptionPrice").innerHTML = eval("pricePerPerson_" + dates.value);
      document.getElementById("descriptionSingle").value = eval("priceSingle_" + dates.value);
      document.getElementById("descriptionAirfare").innerHTML = eval("airfare_" + dates.value);

      if (eval("airfare_" + dates.value) != "") {
        document.getElementById("airfare").style.display = "block";
      } else {
        document.getElementById("airfare").style.display = "none";
      }

      document.getElementById("descriptionTaxesAndFees").innerHTML = eval("taxesAndFees_" + dates.value);
      document.getElementById("descriptionStateFee").innerHTML = eval("stateFee_" + dates.value);
      document.getElementById("descriptionFuelSurcharge").innerHTML = eval("fuelSurcharge_" + dates.value);
      document.getElementById("descriptionDiscount").innerHTML = eval("discount_" + dates.value);

      
      var cabinUpgradeAllOptions = eval("cabinUpgrade_" + dates.value);
      
      if (cabinUpgradeAllOptions == "") {
    	  cabinUpgradeAllOptions = eval("cabinUpgrade_default");
      }
      if (cabinUpgradeAllOptions != "") {
        document.bookNowForm.cabinUpgrade.options.length = 1;

        var cabinUpgradeOptions = cabinUpgradeAllOptions.split("|");
	    for (i = 0; i < cabinUpgradeOptions.length; i++) {
          var cabinUpgrade = cabinUpgradeOptions[i].split("^");
 	      document.bookNowForm.cabinUpgrade.options[i+1] = new Option(cabinUpgrade[0],currencyUnformat(cabinUpgrade[1]));
	    }
	  }
      document.getElementById("descriptionCabinUpgradeCost").innerHTML = "";

      document.bookNowForm.arifareDepartureCity.options.length = 2;
      var airfareAllOptions = eval("airDeparture_" + dates.value);
      if (airfareAllOptions != "") {
        var arifareDepartureCity = airfareAllOptions.split("|");
	    for (i = 0; i < arifareDepartureCity.length; i++) {
          var airfare= arifareDepartureCity[i].split("^");
 	      document.bookNowForm.arifareDepartureCity.options[i+2] = new Option(airfare[0],airfare[1]);
	    }
	  }
      document.getElementById("descriptionAirfareDepartureCityCost").innerHTML = "$0";
      
		var thisYear = new Date();
		var nextYear = new Date();
		var yearAfterNext = new Date();
		nextYear.setFullYear(nextYear.getFullYear() + 1);
		yearAfterNext.setFullYear(yearAfterNext.getFullYear() + 2);
			
      try{
        if (dates.name != "dates_" + thisYear.getFullYear()) {
          eval("document.bookNowForm.dates_" + thisYear.getFullYear() + ".options[0].selected=true");
        }
        if (dates.name != "dates_" + nextYear.getFullYear()) {
          eval("document.bookNowForm.dates_" + nextYear.getFullYear() + ".options[0].selected=true");
        }
        if (dates.name != "dates_" + yearAfterNext.getFullYear()) {
          eval("document.bookNowForm.dates_" + yearAfterNext.getFullYear() + ".options[0].selected=true");
        }

      } catch(err) {
        // only have dates for one year. ignore.
      }

      addSingleSupplement(document.bookNowForm.singleSupplementCheckbox);
      calcualteVacationCost();
      // update the book now action url to add the date selected
      document.bookNowForm.action = document.bookNowForm.action.replace(/&bookingTourDate=[^&]*/,"&bookingTourDate=" + dates.value);
      document.bookNowForm.action = document.bookNowForm.action.replace(/&bookingCabinUpgrade=[^&]*/,"&bookingCabinUpgrade=");
      document.bookNowForm.action = document.bookNowForm.action.replace(/&bookingAirfareToTour=[^&]*/,"&bookingAirfareToTour=");
 
      // change the tab with the date
      changeTabForSelectedDate(currentTab);
      
      // update the tour starts on the details tab
      if (document.getElementById("tourStarts_" + dates.value) != null) {
        document.getElementById("tourStartsDetailsTab").innerHTML = document.getElementById("tourStarts_" + dates.value).innerHTML;
      } else if (document.getElementById("tourStarts") != null) {
    	document.getElementById("tourStartsDetailsTab").innerHTML = document.getElementById("tourStarts").innerHTML;
      }     
      
      // update the tour ends on the details tab
      if (document.getElementById("tourEnds_" + dates.value) != null) {
        document.getElementById("tourEndsDetailsTab").innerHTML = document.getElementById("tourEnds_" + dates.value).innerHTML;
      } else if (document.getElementById("tourEnds") != null) {
    	document.getElementById("tourEndsDetailsTab").innerHTML = document.getElementById("tourEnds").innerHTML;
      }     

      
      // update the itinerary print preview link
      document.getElementById("printItineraryLink").href = document.getElementById("printItineraryLink").href.replace(/&tourDate=[^&]*/,"&tourDate=" + dates.value);
      if (document.getElementById("printItineraryLink_" + dates.value) != null) {
        document.getElementById("printItineraryLink_" + dates.value).href = document.getElementById("printItineraryLink_" + dates.value).href.replace(/&tourDate=[^&]*/,"&tourDate=" + dates.value);    	
      }
    }
  }
  
  

  function upgradeCabinPrice(upgradeOptions) {

	var dateSelected = getDateYearSelected();
	
	// if 0 selected, then go to the default
	if (upgradeOptions.selectedIndex == 0) {
	  document.getElementById("descriptionCabinUpgradeCost").innerHTML = "$0";
	  document.getElementById("descriptionSingle").value = eval("priceSingle_" + dateSelected.value);
	
	} else {
          document.getElementById("descriptionCabinUpgradeCost").innerHTML = currecyFormatWithoutDecimal(currencyUnformat(upgradeOptions.value));
	  var cabinUpgradeAllOptions = eval("cabinUpgrade_" + dateSelected.value);
      if (cabinUpgradeAllOptions == "") {
    	  cabinUpgradeAllOptions = eval("cabinUpgrade_default");
      }
      if (cabinUpgradeAllOptions != "") {
        var cabinUpgradeOptions = cabinUpgradeAllOptions.split("|");
	    for (i = 0; i < cabinUpgradeOptions.length; i++) {
	      if (i == (upgradeOptions.selectedIndex-1)) {
            var cabinUpgrade = cabinUpgradeOptions[i].split("^");
	        document.getElementById("descriptionSingle").value = currecyFormatWithoutDecimal(cabinUpgrade[2]);
	      }
	    }
	  }
	}
	
    document.bookNowForm.action = document.bookNowForm.action.replace(/&bookingCabinUpgrade=[^&]*/,"&bookingCabinUpgrade=" + upgradeOptions[upgradeOptions.selectedIndex].text);
 
    addSingleSupplement(document.bookNowForm.singleSupplementCheckbox);
	calcualteVacationCost();
  }
  
  function addSingleSupplement(singleSupplementCheckBox) {
    if (singleSupplementCheckBox.checked) {
      document.getElementById("descriptionSingleSupplementCost").innerHTML = document.getElementById("descriptionSingle").value;
	}  else  {
      document.getElementById("descriptionSingleSupplementCost").innerHTML = "$0";
	}
    calcualteVacationCost();
  }

  function addAirfareDestinationCity(airfareDepartureCityOptions) {

    var dateSelected  = getDateYearSelected();  
	// if 0 selected, then go to the default
	if (airfareDepartureCityOptions.selectedIndex == 0) {
      document.getElementById("descriptionAirfareDepartureCityCost").innerHTML = "$0";
		
    } else {
      document.getElementById("descriptionAirfareDepartureCityCost").innerHTML = currecyFormatWithoutDecimal(currencyUnformat(airfareDepartureCityOptions.value));
    }
	
    document.bookNowForm.action = document.bookNowForm.action.replace(/&bookingAirfareToTour=[^&]*/,"&bookingAirfareToTour=" + airfareDepartureCityOptions[airfareDepartureCityOptions.selectedIndex].text);

	calcualteVacationCost();
  }
  
  function calcualteVacationCost() {
	var dateSelected = getDateYearSelected();
	var cruiseTourPrice = currencyUnformat(document.getElementById("descriptionPrice").innerHTML);
	var airfare = currencyUnformat(document.getElementById("descriptionAirfare").innerHTML);
	var baseTotal = parseFloat(cruiseTourPrice) + parseFloat(airfare);
	document.getElementById("descriptionCruiseTourPrice").innerHTML = currecyFormatWithoutDecimal(baseTotal);
	
	if (eval("taxesAndFees_" + dateSelected.value) == "") {
	  document.getElementById("textTaxesAndFees").style.display="none";
	  document.getElementById("descriptionTaxesAndFees").innerHTML = currecyFormatWithoutDecimal("0");
	} else {
	  document.getElementById("textTaxesAndFees").style.display="block";
	  document.getElementById("descriptionTaxesAndFees").innerHTML 
	    = currecyFormatWithoutDecimal(eval("taxesAndFees_" + dateSelected.value));
	}

	if (eval("stateFee_" + dateSelected.value) == "") {
	  document.getElementById("textStateFee").style.display="none";
	  document.getElementById("descriptionStateFee").innerHTML = currecyFormatWithoutDecimal("0");
	} else {
	  document.getElementById("textStateFee").style.display="block";
	  document.getElementById("descriptionStateFee").innerHTML 
	    = currecyFormatWithoutDecimal(eval("stateFee_" + dateSelected.value));
	}
			
    if (eval("fuelSurcharge_" + dateSelected.value) == "") {
	  document.getElementById("textFuelSurcharge").style.display="none";
	  document.getElementById("descriptionFuelSurcharge").innerHTML = currecyFormatWithoutDecimal("0");
	} else {
	  document.getElementById("textFuelSurcharge").style.display="block";
	  document.getElementById("descriptionFuelSurcharge").innerHTML 
	    = currecyFormatWithoutDecimal(eval("fuelSurcharge_" + dateSelected.value));
	}

	if (eval("discount_" + dateSelected.value) == "") {
	  document.getElementById("textDiscount").style.display="none";
	  document.getElementById("descriptionDiscount").innerHTML = currecyFormatWithoutDecimal("0");
	} else {
	  document.getElementById("textDiscount").style.display="block";
	  document.getElementById("descriptionDiscount").innerHTML 
	    = currecyFormatWithoutDecimal(eval("discount_" + dateSelected.value));
	}

	
	var taxesAndFees = currencyUnformat(document.getElementById("descriptionTaxesAndFees").innerHTML);
	var stateFee = currencyUnformat(document.getElementById("descriptionStateFee").innerHTML);
	var fuelSurcharge = currencyUnformat(document.getElementById("descriptionFuelSurcharge").innerHTML);
	var discount = currencyUnformat(document.getElementById("descriptionDiscount").innerHTML);
	var tourTotal = parseFloat(baseTotal) + parseFloat(taxesAndFees) + parseFloat(stateFee) 
	  + parseFloat(fuelSurcharge) - parseFloat(discount);
	document.getElementById("descriptionTotalTripCost").innerHTML = currecyFormatWithoutDecimal(tourTotal);
	
	var upgradeCost = currencyUnformat(document.getElementById("descriptionCabinUpgradeCost").innerHTML);
	var singleSupplementCost = currencyUnformat(document.getElementById("descriptionSingleSupplementCost").innerHTML);
	var airfareDepartureCityCost = currencyUnformat(document.getElementById("descriptionAirfareDepartureCityCost").innerHTML);
	var vacationTotal = parseFloat(tourTotal) + parseFloat(upgradeCost) + parseFloat(singleSupplementCost) + parseFloat(airfareDepartureCityCost);
	document.getElementById("descriptionTotalVacationCost").innerHTML = currecyFormatWithoutDecimal(vacationTotal);
  }

  
  //############################################################################################
  // section of javascript for the tour template
  //############################################################################################
  
  
  function initBookingForm() {
	var dates = document.bookingForm.tourDatesOptions;	
	
	updateBookingFormDate(dates);
	var cabinUpgradeOptions = document.bookingForm.cabinUpgrade.options;
	var cabinUpgradeSelected = getRequestParameter("bookingCabinUpgrade");
	for (i = 0; i < cabinUpgradeOptions.length; i++) {
	  if (cabinUpgradeOptions[i].text == unescape(cabinUpgradeSelected)) {
		cabinUpgradeOptions[i].selected=true;
		break;
	  }
	}
	
	
	// get the single supplement price
	if (cabinUpgradeSelected == "") {
      document.getElementById("singleSupplementPrice").value = "Single Supplement - " + eval("priceSingle_" + dates.value);
      document.getElementById("singleSupplementPrice").name = eval("priceSingle_" + dates.value);

	} else {
      var cabinUpgradeAllOptions = eval("cabinUpgrade_" + dates.value);
      if (cabinUpgradeAllOptions == "") {
  	    cabinUpgradeAllOptions = eval("cabinUpgrade_default");
      }
      if (cabinUpgradeAllOptions != "") {
        var cabinUpgradeOptions = cabinUpgradeAllOptions.split("|");
        for (i = 0; i < cabinUpgradeOptions.length; i++) {
          var cabinUpgrade = cabinUpgradeOptions[i].split("^");
          if (cabinUpgrade[0] == unescape(cabinUpgradeSelected)) {
            document.getElementById("descriptionCabinUpgradeCost").innerHTML = currecyFormatWithoutDecimal(cabinUpgrade[1]);
            document.getElementById("singleSupplementPrice").value = "Single Supplement - " + currecyFormatWithoutDecimal(cabinUpgrade[2]); 
            document.getElementById("singleSupplementPrice").name = currecyFormatWithoutDecimal(cabinUpgrade[2]);
            updateSingleSupplementCost();
            break;
          }
        }
      }
    }
	
	var arifareDepartureCityOptions = document.bookingForm.arifareDepartureCity.options;
  	var arifareDepartureCitySelected = getRequestParameter("bookingAirfareToTour");
	for (i = 0; i < arifareDepartureCityOptions.length; i++) {

	  if (arifareDepartureCityOptions[i].text == arifareDepartureCitySelected || arifareDepartureCityOptions[i].text == unescape(arifareDepartureCitySelected))  {
		  arifareDepartureCityOptions[i].selected=true;
		  break;
	  }
	}
	updateAirfareToTour(document.bookingForm.arifareDepartureCity);
	
	updateSingleSupplementCost();
	document.getElementById("selectedDepDate").innerHTML = dates[dates.selectedIndex].text 
	  + "&nbsp;&nbsp;<a tabindex=30 href=\"#\" onclick=document.bookingForm.tourDatesOptions.focus()>"
      + "<span class=\"redbackground\" style=\"padding: 2px\">EDIT</span></a>";
	
	document.bookingForm.airfareInsurance.value = currecyFormatWithoutDecimal(eval("flightInsurance_" + dates.value));
	
    calcualteBookingFormVacationCost();

	displayHideAddlTravInfo(document.bookingForm.numTravelersOptions);
  }
  
  function updateBookingFormDate(dates) {
	var numberoftravelers = parseFloat(document.getElementById("numTravelers").innerHTML);
    document.bookingForm.cabinUpgrade.options.length = 1;
    var cabinUpgradeAllOptions = eval("cabinUpgrade_" + dates.value);
    if (cabinUpgradeAllOptions == "") {
  	  cabinUpgradeAllOptions = eval("cabinUpgrade_default");
    }
    if (cabinUpgradeAllOptions != "") {
      var cabinUpgradeOptions = cabinUpgradeAllOptions.split("|");
      for (i = 0; i < cabinUpgradeOptions.length; i++) {
        var cabinUpgrade = cabinUpgradeOptions[i].split("^");
	    document.bookingForm.cabinUpgrade.options[i+1] = new Option(cabinUpgrade[0],currecyFormatWithoutDecimal(cabinUpgrade[1]));
      }
    }
    
    document.bookingForm.arifareDepartureCity.options.length = 2;
    var airfareAllOptions = eval("airDeparture_" + dates.value);
    if (airfareAllOptions != "") {
      var arifareDepartureCity = airfareAllOptions.split("|");
	  for (i = 0; i < arifareDepartureCity.length; i++) {
      var airfare= arifareDepartureCity[i].split("^");
	    document.bookingForm.arifareDepartureCity.options[i+2] = new Option(airfare[0],currecyFormatWithoutDecimal(airfare[1]));
	  }
	}
	document.getElementById("singleSupplementPrice").value = "Single Supplement - " + eval("priceSingle_" + dates.value);
	document.getElementById("singleSupplementPrice").name = eval("priceSingle_" + dates.value);

	updateSingleSupplementCost()
	document.getElementById("selectedDepDate").innerHTML = dates[dates.selectedIndex].text
	  + "&nbsp;&nbsp;<a href=\"#\" onclick=document.bookingForm.tourDatesOptions.focus()>"
      + "<span class=\"redbackground\" style=\"padding: 2px\">EDIT</span></a>";;

	document.bookingForm.airfareInsurance.value = currecyFormatWithoutDecimal(eval("flightInsurance_" + dates.value));

	updateAirfareToTour(document.bookingForm.arifareDepartureCity);
	
	calcualteBookingFormVacationCost();
  }

  
  function upgradeBookingFormCabinPrice(upgradeOptions) {

	var dates = document.bookingForm.tourDatesOptions;
		
	// if 0 selected, then go to the default
	if (upgradeOptions.selectedIndex == 0) {
	  document.getElementById("descriptionCabinUpgradeCost").innerHTML = "$0";
	  document.getElementById("descriptionSingle").value = eval("priceSingle_" + dates.value);
	  updateSingleSupplementCost();
		
	} else {
	  document.getElementById("descriptionCabinUpgradeCost").innerHTML = currecyFormatWithoutDecimal(upgradeOptions.value);
	  var cabinUpgradeAllOptions = eval("cabinUpgrade_" + dates.value);
	    if (cabinUpgradeAllOptions == "") {
	   	  cabinUpgradeAllOptions = eval("cabinUpgrade_default");
	    }
	    if (cabinUpgradeAllOptions != "") {
	      var cabinUpgradeOptions = cabinUpgradeAllOptions.split("|");
	      for (i = 0; i < cabinUpgradeOptions.length; i++) {
            if (i == (upgradeOptions.selectedIndex-1)) {
	          var cabinUpgrade = cabinUpgradeOptions[i].split("^");
		      document.getElementById("singleSupplementPrice").value = "Single Supplement - " + currecyFormatWithoutDecimal(cabinUpgrade[2]);
		      document.getElementById("singleSupplementPrice").name = currecyFormatWithoutDecimal(cabinUpgrade[2]);
		      
		      updateSingleSupplementCost();
		    }
		  }
        }
      }

	  calcualteBookingFormVacationCost();
    }

  function updateAirfareToTour(cityOptions) {
    if (cityOptions.value == "") {
      setHidden(document.getElementById("airProtectionRow"));
      document.bookingForm.airfareInsuranceDecline.checked = true;
      document.bookingForm.airfareInsuranceAccept.checked = false;
    }
    else {
      setVisible(document.getElementById("airProtectionRow"));
      document.bookingForm.airfareInsuranceDecline.checked = false;
      document.bookingForm.airfareInsuranceAccept.checked = true;
    }
    var numberoftravelers = parseFloat(document.getElementById("numTravelers").innerHTML);		
    if (cityOptions.selectedIndex == 0 || cityOptions.selectedIndex == 1) {
      document.getElementById("descriptionAirfareDepartureCityCost").innerHTML = "$0";
    } else {
      document.getElementById("descriptionAirfareDepartureCityCost").innerHTML = currecyFormatWithoutDecimal(numberoftravelers * currencyUnformat(cityOptions.value));
    }
    calcualteBookingFormVacationCost();
  }
  
  function swapAirfareInsuranceCheckBoxes(insuranceCheckBoxes) {

	if (insuranceCheckBoxes.name == "airfareInsuranceAccept") {
	  if (insuranceCheckBoxes.checked == true) {
		document.bookingForm.airfareInsuranceDecline.checked = false;
	  } else {
		document.bookingForm.airfareInsuranceDecline.checked = true;
	  }
	} else if (insuranceCheckBoxes.name == "airfareInsuranceDecline") {
	  if (insuranceCheckBoxes.checked == true) {
		document.bookingForm.airfareInsuranceAccept.checked = false;
	  } else {
		document.bookingForm.airfareInsuranceAccept.checked = true;
	  }
	}
    calcualteBookingFormVacationCost();
  }
  
  function swapTourInsuranceCheckBoxes(insuranceCheckBoxes) {
    if (insuranceCheckBoxes.name == "tourInsuranceAccept") {
	  if (insuranceCheckBoxes.checked == true) {
		document.bookingForm.tourInsuranceDecline.checked = false;
	  } else {
		document.bookingForm.tourInsuranceDecline.checked = true;
	  }
	} else if (insuranceCheckBoxes.name == "tourInsuranceDecline") {
	  if (insuranceCheckBoxes.checked == true) {
		document.bookingForm.tourInsuranceAccept.checked = false;
	  } else {
		document.bookingForm.tourInsuranceAccept.checked = true;
	  }
	}
	calcualteBookingFormVacationCost();
  }  
  
  function displayHideAddlTravInfo(numTravelersSelect)  {

   	var addlTravDiv = document.getElementById("additionalTraveler");
   	var singleTravTD = document.getElementById("singleTrav");
   	var numTravelers = 1;
   	var numberoftravelers = numTravelersSelect.options[numTravelersSelect.selectedIndex].value;
   	if (numberoftravelers == "1")  {
      document.bookingForm.FIRSTNAME1.value = "";
   	  document.bookingForm.LASTNAME1.value = "";
      document.bookingForm.ADDRESS1.value = "";
      document.bookingForm.APT1.value = "";
      document.bookingForm.CITY1.value = "";
      document.bookingForm.STATE1.value = "";
      document.bookingForm.ZIP1.value = "";
      document.bookingForm.COUNTRY1.selectedIndex = 0;
      document.bookingForm.sameInfoCheckbox.checked = false;
      addlTravDiv.style.display = "none";
      singleTravTD.style.display = "block";
      numTravelers = 1;
      
    } else if (numberoftravelers == "2") {
      addlTravDiv.style.display = "block";
      singleTravTD.style.display = "none";
      numTravelers = 2;
   	} else {
      tb_show('', '#TB_inline?height=500&width=800&inlineId=additionalTravelers', false);	
   	  numTravelersSelect.selectedIndex = 0;
   	  addlTravDiv.style.display = "none";
      singleTravTD.style.display = "block";
      numTravelers = 1;
    }
    var numTravelersTD = document.getElementById("numTravelers");
    numTravelersTD.innerHTML = numTravelers;
 	updateSingleSupplementCost();
 	document.bookingForm.DEPOSITAMOUNT.value = currecyFormatWithoutDecimal(parseFloat(numTravelers) * parseFloat(100));
    calcualteBookingFormVacationCost();
  }
     
  function fillAddlTravInfo(sameInfoCheckbox) {
   	if (sameInfoCheckbox.checked) {
   	  document.bookingForm.ADDRESS1.value = document.bookingForm.ADDRESS0.value;
   	  document.bookingForm.APT1.value = document.bookingForm.APT0.value;
   	  document.bookingForm.CITY1.value = document.bookingForm.CITY0.value;
   	  document.bookingForm.STATE1.value = document.bookingForm.STATE0.value;
   	  document.bookingForm.ZIP1.value = document.bookingForm.ZIP0.value;
   	  document.bookingForm.COUNTRY1.selectedIndex = document.bookingForm.COUNTRY0.selectedIndex;
   	  document.bookingForm.TELEPHONE1.value = document.bookingForm.TELEPHONE0.value;
   	  document.bookingForm.EMAIL1.value = document.bookingForm.EMAIL0.value;
   	  document.bookingForm.VERIFYEMAIL1.value = document.bookingForm.VERIFYEMAIL0.value;
    } else {
      document.bookingForm.ADDRESS1.value = "";
      document.bookingForm.APT1.value = "";
      document.bookingForm.CITY1.value = "";
      document.bookingForm.STATE1.value = "";
      document.bookingForm.ZIP1.value = "";
      document.bookingForm.COUNTRY1.value = 'United States';
      document.bookingForm.TELEPHONE1.value = "";
      document.bookingForm.EMAIL1.value = "";
      document.bookingForm.VERIFYEMAIL1.value = "";
    }
  }
  
  function updateSingleSupplementCost() {
	//set the single supplement cost accordingly
	if (document.getElementById("numTravelers").innerHTML == "1") { 
	  document.getElementById("descriptionSingleSupplementCost").innerHTML = document.getElementById("singleSupplementPrice").name;	  
	} else {
	  document.getElementById("descriptionSingleSupplementCost").innerHTML = currecyFormatWithoutDecimal("0");
	}
  }
	
  function calcualteBookingFormVacationCost() {
	var dates = document.bookingForm.tourDatesOptions;
   	var numberoftravelers = parseFloat(document.getElementById("numTravelers").innerHTML);
  
	var cruiseTourPrice = currencyUnformat(eval("pricePerPerson_" + dates.value));
    var mandatoryAirfare = currencyUnformat(eval("airfare_" + dates.value));
    var baseTotal = parseFloat(cruiseTourPrice) + parseFloat(mandatoryAirfare);
    document.getElementById("descriptionCruiseTourPrice").innerHTML = currecyFormatWithoutDecimal(numberoftravelers * baseTotal);
    document.getElementById("cruiseTourPrice").innerHTML = currecyFormatWithoutDecimal(baseTotal);
    
	if (eval("taxesAndFees_" + dates.value) == "") {
	  document.getElementById("textTaxesAndFees").style.display="none";
	  document.getElementById("descriptionTaxesAndFees").innerHTML = currecyFormatWithoutDecimal("0");
	} else {
	  document.getElementById("textTaxesAndFees").style.display="block";
	  document.getElementById("descriptionTaxesAndFees").innerHTML 
	    = currecyFormatWithoutDecimal(numberoftravelers * (currencyUnformat(eval("taxesAndFees_" + dates.value))));
	}

	if (eval("stateFee_" + dates.value) == "") {
	  document.getElementById("textStateFee").style.display="none";
	  document.getElementById("descriptionStateFee").innerHTML = currecyFormatWithoutDecimal("0");
	} else {
	  document.getElementById("textStateFee").style.display="block";
	  document.getElementById("descriptionStateFee").innerHTML 
	    = currecyFormatWithoutDecimal(numberoftravelers * (currencyUnformat(eval("stateFee_" + dates.value))));
	}
		
    if (eval("fuelSurcharge_" + dates.value) == "") {
	  document.getElementById("textFuelSurcharge").style.display="none";
	  document.getElementById("descriptionFuelSurcharge").innerHTML = currecyFormatWithoutDecimal("0");
	} else {
	  document.getElementById("textFuelSurcharge").style.display="block";
	  document.getElementById("descriptionFuelSurcharge").innerHTML 
	    = currecyFormatWithoutDecimal(numberoftravelers * (currencyUnformat(eval("fuelSurcharge_" + dates.value))));
	}

	if (eval("discount_" + dates.value) == "") {
	  document.getElementById("textDiscount").style.display="none";
	  document.getElementById("descriptionDiscount").innerHTML = currecyFormatWithoutDecimal("0");
	} else {
	  document.getElementById("textDiscount").style.display="block";
	  document.getElementById("descriptionDiscount").innerHTML 
	    = currecyFormatWithoutDecimal(numberoftravelers * (currencyUnformat(eval("discount_" + dates.value))));
	}
	
	

	var taxesAndFees = currencyUnformat(document.getElementById("descriptionTaxesAndFees").innerHTML);
	var stateFee = currencyUnformat(document.getElementById("descriptionStateFee").innerHTML);
	var fuelSurcharge = currencyUnformat(document.getElementById("descriptionFuelSurcharge").innerHTML);
	var discount = currencyUnformat(document.getElementById("descriptionDiscount").innerHTML);

	var tourTotal = parseFloat(numberoftravelers * baseTotal) + parseFloat(taxesAndFees) + parseFloat(stateFee) 
	  + parseFloat(fuelSurcharge) - parseFloat(discount);
	document.getElementById("descriptionTotalTripCost").innerHTML = currecyFormatWithoutDecimal(tourTotal);

	document.getElementById("descriptionCabinUpgradeCost").innerHTML = currecyFormatWithoutDecimal(numberoftravelers * currencyUnformat(document.bookingForm.cabinUpgrade.value));
	document.getElementById("descriptionAirfareDepartureCityCost").innerHTML = currecyFormatWithoutDecimal(numberoftravelers * currencyUnformat(document.bookingForm.arifareDepartureCity.value));
	
	var upgradeCost = currencyUnformat(document.getElementById("descriptionCabinUpgradeCost").innerHTML);
	var singleSupplementCost = currencyUnformat(document.getElementById("descriptionSingleSupplementCost").innerHTML);
	var airfareDepartureCityCost = currencyUnformat(document.getElementById("descriptionAirfareDepartureCityCost").innerHTML);
	

	if (document.bookingForm.airfareInsuranceAccept.checked) {
	  document.getElementById("airfareInsuranceCost").innerHTML = currecyFormatWithoutDecimal(numberoftravelers * currencyUnformat(document.getElementById("airfareInsurance").value));
	} else {
	  document.getElementById("airfareInsuranceCost").innerHTML = "$0";
	}
	var airfareInsuranceCost = currencyUnformat(document.getElementById("airfareInsuranceCost").innerHTML);

	if (document.bookingForm.tourInsuranceAccept.checked) {
	  document.getElementById("tourInsuranceCost").innerHTML = currecyFormatWithoutDecimal(numberoftravelers * currencyUnformat(document.bookingForm.hiddenTourInsurance.value));
	} else {
	  document.getElementById("tourInsuranceCost").innerHTML = currecyFormatWithoutDecimal("0");
	}	
	var tourInsuranceCost = currencyUnformat(document.getElementById("tourInsuranceCost").innerHTML);
	
	var vacationTotal = parseFloat(tourTotal) + parseFloat(upgradeCost) + parseFloat(singleSupplementCost) 
	  + parseFloat(airfareDepartureCityCost) + parseFloat(airfareInsuranceCost) + parseFloat(tourInsuranceCost);
	document.getElementById("descriptionTotalVacationCost").innerHTML = currecyFormatWithoutDecimal(vacationTotal);
	
	//set all the hidden form values for submit
    document.bookingForm.BASE_TOUR_PRICE.value = eval("pricePerPerson_" + dates.value);
    document.bookingForm.MANDATORY_AIRFARE.value = eval("airfare_" + dates.value);
    document.bookingForm.TOUR_PRICE_PER_PERSON.value = document.getElementById("cruiseTourPrice").innerHTML;
    
    document.bookingForm.TOUR_CRUISE_PRICE.value = document.getElementById("descriptionCruiseTourPrice").innerHTML;
	document.bookingForm.TAXES_FEES.value = document.getElementById("descriptionTaxesAndFees").innerHTML;
    document.bookingForm.STATE_FEE.value = document.getElementById("descriptionStateFee").innerHTML;
	document.bookingForm.FUEL_SURCHARGE.value = document.getElementById("descriptionFuelSurcharge").innerHTML;
    document.bookingForm.DISCOUNT.value = document.getElementById("descriptionDiscount").innerHTML;
	document.bookingForm.TOTAL_TRIP_COST.value = document.getElementById("descriptionTotalTripCost").innerHTML;

	document.bookingForm.CABIN_UPGRADE_TEXT.value = document.bookingForm.cabinUpgrade[document.bookingForm.cabinUpgrade.selectedIndex].text;
	document.bookingForm.SINGLE_SUPPLEMENT.value = document.getElementById("descriptionSingleSupplementCost").innerHTML;
    document.bookingForm.AIRFARE_TO_TOUR_TEXT.value = document.bookingForm.arifareDepartureCity[document.bookingForm.arifareDepartureCity.selectedIndex].text;
    document.bookingForm.AIRFARE_INSURANCE.value = document.getElementById("airfareInsuranceCost").innerHTML;
    document.bookingForm.TOUR_INSURANCE.value = document.getElementById("tourInsuranceCost").innerHTML;

    document.bookingForm.TOTAL_VACATION_COST.value = document.getElementById("descriptionTotalVacationCost").innerHTML;
  }
  
  function enableComments(commentsCheckBox) {
    if (commentsCheckBox.checked) {
	  document.bookingForm.commentstextarea.disabled = false;
    }  else  {
      document.bookingForm.commentstextarea.innerHTML = "";
	  document.bookingForm.commentstextarea.disabled = true;
    }
  }