var monthNames = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
function findPos(obj)
 {
  var curtop = 0;
  if (obj.offsetParent)
   {
    do
     {
      curtop += obj.offsetTop;
     } while (obj = obj.offsetParent);
    return curtop;
   }
 }
function submitSearch()
 {
  if(validateSearch())
   {
    showWaitingMessage();
    return true;
   }
  return false;
 }
function selectFlightType(flightType)
 {
  var retDay = document.getElementById("retDay");
  var retMonth = document.getElementById("retMonth");
  if(flightType == "oneway")
   {
    retDay.disabled = true;
    retMonth.disabled = true;
   }
  else
   {
    retDay.disabled = false;
    retMonth.disabled = false;
   }
 }
function validateSearch()
 {
  var tmpDateDep = document.getElementById("tmpDateDep").value;
  var tmpDateRet = document.getElementById("tmpDateRet").value;
  var arrAirport = document.getElementById("arrAirport");
  var depAirport = document.getElementById("depAirport");
  //alert("tmpDateDep: " + tmpDateDep + "\n\ntmpDateRet: " + tmpDateRet);
  if (document.getElementById("depMonth").value=="")
   {
    alert("Please select a departure date");
    return false;
   }
  else if (document.getElementById("retMonth").value=="" && document.getElementById("searchform").flighttype[0].checked)
   {
    alert("Please select a return date");
    return false;
   }
  else if (depAirport.selectedIndex ==0)
   {
    alert("Please select a departure airport");
    return false;
   }
  else if (arrAirport.selectedIndex == 0)
   {
    alert("Please select an arrival airport");
    return false;
   }
  else
   {
    return true;
   }
 }
function showWaitingMessage()
 {
  document.getElementById("waitingMessage").style.visibility = "visible";
  document.getElementById("waitingMessage").style.display = "block";
  document.getElementById("content").style.visibility = "hidden";
  document.getElementById("content").style.display = "none";
  document.getElementById("footer").style.visibility = "hidden";
  document.getElementById("footer").style.display = "none";
  return true;
 }
function hideWaitingMessage()
 {
  document.getElementById("waitingMessage").style.visibility = "hidden";
  document.getElementById("waitingMessage").style.display = "none";
  document.getElementById("content").style.visibility = "visible";
  document.getElementById("content").style.display = "block";
  return true;
 }
function Pad2(x)
 {
  x = "00"+x;
  return String(x).substring(String(x).length,String(x).length-2);
 }
function DaysInMonth(varMonth, varYear)
 {
  return 32-new Date(varYear,varMonth-1,32).getDate();
 }
function processPopup(button,inputField)
 {
  var i = 0;
  //alert(button + "\n" + inputField);
  var xferDirection = 'ret';
  if(button.indexOf('Departure') != -1)
   {
    xferDirection = "dep";
   }
  var selectedDate = document.getElementById(inputField).value;
  var elMonth = document.getElementById(xferDirection+"Month");
  var optMonth = elMonth.options;
  var elDay = document.getElementById(xferDirection+"Day");
  var optDay = elDay.options;
  var arrSelectedDate = selectedDate.split("/");
  var day = parseInt(arrSelectedDate[0],10);
  var month = parseInt(arrSelectedDate[1],10);
  var year = arrSelectedDate[2];
  var monthName = monthNames[month-1];
  for(i = 0; i < optMonth.length; i++)
   {
    if(optMonth[i].text.indexOf(monthName) != -1 && optMonth[i].text.indexOf(year) != -1)
     {
      optMonth.selectedIndex = i;
     }
   }
  
  elDay.value = day;
  changeDay(xferDirection);
  if(xferDirection == "dep")
   {
    setDepTmpData();
   }
  else
   {
    setRetTmpData();
   }
 }
function changeDay(depOrRet)
 {
  var monthLength = 0;
  var i = 0;
  var elMonth = document.getElementById(depOrRet + "Month");
  if (elMonth.value=="") return false;
  var monthName = elMonth.options[elMonth.selectedIndex].text.substr(0,3);
  var varYear = elMonth.options[elMonth.selectedIndex].text.substring(elMonth.options[elMonth.selectedIndex].text.length-4);
  var elDay = document.getElementById(depOrRet + "Day");
  var optDay = elDay.options;
  var currentlySelectedText = elDay.value;
  if (currentlySelectedText<1 || currentlySelectedText>31) currentlySelectedText=1;
  if (elMonth.value=="-")
   {
    monthLength = 0;
   }
  else
   {
    for(i = 0; i < monthNames.length; i++)
     {
      if(monthName==monthNames[i])
       {
        monthLength = DaysInMonth(i+1, varYear);
       }
     }
   }
  for(i=elDay.options.length-1;i>=0;i--)
   {
    elDay.remove(i);
   }
  for(i=1;i<=monthLength;i++)
   {
    elDay.options[i-1]=new Option(Pad2(i),i);
   }
  if (monthLength==0)
   {
    elDay.options[0]=new Option("-","0");
   }
  elDay.value = currentlySelectedText;
  if(depOrRet == "dep")
   {
    setDepTmpData();
   }
  else
   {
    setRetTmpData();
   }
 }
function GetDate(depOrRet)
 {
  var i = 0;
  var dDate = new Date();
  var elMonth = document.getElementById(depOrRet+"Month");
  var month = elMonth.options[elMonth.selectedIndex].text;
  //var selectedMonth = month.substr(0,month.indexOf(' '));
  var selectedMonth = month.substr(0,3);
  dDate.setYear(month.substr(month.indexOf(' ')+1,4));
  dDate.setDate(10); // so that it works on the 31st of each month!
  for(i = 0;i < monthNames.length;i++)
   {
    if(monthNames[i].indexOf(selectedMonth) != -1)
     {
      dDate.setMonth(i);
      break;
     }
   }
  dDate.setDate(document.getElementById(depOrRet+"Day").selectedIndex + 1);
  return dDate;
 }
var weekday=new Array(7)
weekday[0]="Sun"
weekday[1]="Mon"
weekday[2]="Tue"
weekday[3]="Wed"
weekday[4]="Thur"
weekday[5]="Fri"
weekday[6]="Sat"

function changeDisplayDay()
{
 var depDayText = document.getElementById('depDayText');
 var retDayText = document.getElementById('retDayText');
 depDayText.innerHTML = weekday[GetDate('dep').getDay()];
 if (document.getElementById("retMonth").value!="-")
  {
   retDayText.innerHTML = weekday[GetDate('ret').getDay()];
  }
 else
  {
   retDayText.innerHTML = "&nbsp;";
  }
}

function setRetDate()
{
 var newDate = new Date();
 var elMonth = document.getElementById("retMonth");
 var optMonth = elMonth.options;
 var elDay = document.getElementById("retDay");
 var optDay = elDay.options;
 var i = 0;
 newDate = GetDate('dep');
 newDate.setDate(newDate.getDate() + 7);
 
 var day = parseInt(newDate.getDate(),10);
 var month = parseInt(newDate.getMonth(),10);
 var year = newDate.getYear();
 if(year < 1900)
 {
  year = year + 1900;
 }
 var monthName = monthNames[month];

 for(i = 0; i < optMonth.length; i++)
 {
  if(optMonth[i].text.indexOf(monthName) != -1 && optMonth[i].text.indexOf(year) != -1)
  {
   optMonth.selectedIndex = i;
  }
 }
 
 changeDay("ret");
 
 for(i = 0; i < optDay.length; i++)
 {
  if(optDay[i].value == day)
  {
   optDay.selectedIndex = i;
  }
 }
}

function setDepTmpData()
{
 var tmpDateDep = document.getElementById("tmpDateDep")
 var depDate = new Date();
 depDate = GetDate('dep');
 tmpDateDep.value = depDate.getDate() + "/" + (depDate.getMonth()+1) + "/" + depDate.getFullYear();
 //alert(tmpDateDep.value);
 if (document.getElementById("retMonth").value!="-") setRetDate();
 changeDisplayDay();
}
function setRetTmpData()
{
 var tmpDateRet = document.getElementById("tmpDateRet")
 var retDate = new Date();
 retDate = GetDate('ret');
 tmpDateRet.value = retDate.getDate() + "/" + (retDate.getMonth()+1) + "/" + retDate.getFullYear();
 changeDisplayDay();
 //alert(tmpDateDep.value);
}

function setDropDownByValue(id,val)
{
 var el = document.getElementById(id);
 var elOptions = document.getElementById(id).options;
 var i = 0;
 for(i = 0; i < elOptions.length; i++) {
  if(elOptions[i].value == val) {
   elOptions.selectedIndex = i;
   break;
  }
 }
}

function setDropDownByText(id,val)
{
 var el = document.getElementById(id);
 var elOptions = document.getElementById(id).options;
 var i = 0;
 for(i = 0; i < elOptions.length; i++) {
  if(elOptions[i].text == val) {
   elOptions.selectedIndex = i;
   break;
  }
 }
}

function checkCheckBoxes() {
 var formcheck = document.getElementById("form1");
 if (formcheck.prepop.checked == true) {
  formcheck.chd_title.value = formcheck.title1.value;
  formcheck.chd_firstname.value = formcheck.firstname1.value;
  formcheck.chd_surname.value = formcheck.surname1.value;
 }
 else
 {
  formcheck.chd_title.value = "";
  formcheck.chd_firstname.value = "";
  formcheck.chd_surname.value = "";
 }
}

function bgalpha() {
	var thumb1 = document.getElementById("exploreimg");
	var OverlayObject = document.createElement("div");
	OverlayObject.style.width = "324px";
	OverlayObject.style.height = "30px";
	OverlayObject.style.left = '0px';
	OverlayObject.style.top = '40px';
	OverlayObject.style.position = "absolute";
	OverlayObject.style.backgroundColor = "#004496";
	OverlayObject.style.zindex = "2";
	OverlayObject.style.filter = "alpha(opacity=30)";
	OverlayObject.style.mozOpacity = ".30";
	OverlayObject.style.opacity = ".30";
	OverlayObject.style.display = "block";
	thumb1.appendChild(OverlayObject);
}

function setSkiCarriageTmpData(IntSkiCarriage,CarriagePerUnit,CarriagePerPersonEachWay,intStage){
	var CarriageTotal = parseFloat(IntSkiCarriage * CarriagePerUnit).toFixed(2);
	if(IntSkiCarriage == "Please Select"){
		if(intStage == 1){
			RemoveCarriage(intStage);
			document.getElementById("CarriageConfirmed").value = "no"
			document.getElementById("IntSkiCarriage").options.selectedIndex = 0;
			popup('CarriageBens','block','visible');
		}else{
			RemoveCarriage(intStage);
			document.getElementById("CarriageConfirmed").value = "no"
			document.getElementById("IntSkiCarriage").options.selectedIndex = 0;
			popup('CarriageBens','none','hidden');
		}
	}
	else{
		if(IntSkiCarriage == 0){
//			alert("Please remember, passengers who have not pre-booked and present skis \/ snowboards \/ bags \/ boots at the airport will be charged double.");
			RemoveCarriage(intStage);
		}
		if(IntSkiCarriage > 0){
			document.getElementById("CarriageConfirmed").value = "yes"
			document.getElementById("carriagechoice").style.visibility = "visible";
			document.getElementById("carriagechoice").style.display = "block";
			document.getElementById("carriagetotal").style.visibility = "visible";
			document.getElementById("carriagetotal").style.display = "block";
			document.getElementById("carriagesummary").innerHTML = " " + IntSkiCarriage + " Ski / Snowboard Bag(s)";
			document.getElementById("CarriageSummaryDisplayWrapper").style.visibility = "visible";
			document.getElementById("CarriageSummaryDisplayWrapper").style.display = "block";
			
			strCarriageUnits = (IntSkiCarriage > 1 ? " ski / snowboard bags " : " ski / snowboard bag " );
			strCarriageSummaryDetails = IntSkiCarriage + strCarriageUnits + " @ £" + CarriagePerPersonEachWay.toFixed(2) + " per bag each way";
			
			document.getElementById("CarriageSummaryDisplayDetails").innerHTML = strCarriageSummaryDetails;
			
			document.getElementById("CarriageSummaryDisplay").innerHTML = CarriageTotal;
		}
		document.getElementById("carriagetotalspan").innerHTML = CarriageTotal;
		document.getElementById("CarriageUnits").value = IntSkiCarriage;
		document.getElementById("CarriagePrice").value = CarriageTotal;
		calculateTotalCost()
	}
}

function setBootBagTmpData(IntBootBagCarriage,BootBagPerUnit,BootBagPerBagEachWay,intStage){
	var BootBagTotal = parseFloat(IntBootBagCarriage * BootBagPerUnit).toFixed(2);
	if(IntBootBagCarriage == "Please Select"){
		if(intStage==1){
			RemoveBootBags(intStage);
			document.getElementById("IntBootBagCarriage").options.selectedIndex = 0;
			document.getElementById("BootBagConfirmed").value = "no"
			popup('BootBagBens','block','visible');
		}else{
			RemoveBootBags(intStage);
			document.getElementById("IntBootBagCarriage").options.selectedIndex = 0;
			document.getElementById("BootBagConfirmed").value = "no"
			popup('BootBagBens','none','hidden');
		}
	}
	else{
		if(IntBootBagCarriage == 0){
//			alert("Please remember, passengers who have not pre-booked and present boot bags at the airport will be charged double.");
			RemoveBootBags(intStage);
		}
		if(IntBootBagCarriage > 0){
			document.getElementById("BootBagConfirmed").value = "yes"
			document.getElementById("BootBagchoice").style.visibility = "visible";
			document.getElementById("BootBagchoice").style.display = "block";
			document.getElementById("BootBagtotal").style.visibility = "visible";
			document.getElementById("BootBagtotal").style.display = "block";
			document.getElementById("BootBagsummary").innerHTML = " " + IntBootBagCarriage + " Boot Bag(s)";
			document.getElementById("BootBagSummaryDisplayWrapper").style.visibility = "visible";
			document.getElementById("BootBagSummaryDisplayWrapper").style.display = "block";
			
			strBootBagUnits = (IntBootBagCarriage > 1 ? " boot bags " : " boot bag " );
			strBootBagSummaryDetails = IntBootBagCarriage + strBootBagUnits + " @ £" + BootBagPerBagEachWay.toFixed(2) + " per boot bag each way";
			
			document.getElementById("BootBagSummaryDisplayDetails").innerHTML = strBootBagSummaryDetails;
			document.getElementById("BootBagSummaryDisplay").innerHTML = BootBagTotal;
		}
		document.getElementById("BootBagtotalspan").innerHTML = BootBagTotal;
		document.getElementById("BootBagUnits").value = IntBootBagCarriage;
		document.getElementById("BootBagPrice").value = BootBagTotal;
		calculateTotalCost()
	}
}


function setHoldBaggageTmpData(IntHoldBaggage,HoldBagagePerUnit,HoldBaggagePerBagEachWay,intStage){
	var HoldBaggageTotal = parseFloat(IntHoldBaggage * HoldBagagePerUnit).toFixed(2);

	if(IntHoldBaggage == "Please Select"){
		if(intStage==1){
			RemoveHoldBaggage(intStage);
			document.getElementById("HoldBaggageConfirmed").value = "no"
			document.getElementById("IntHoldBaggage").options.selectedIndex = 0;
			popup('HoldBaggageBens','block','visible');
		}else{
			RemoveHoldBaggage(intStage);
			document.getElementById("IntHoldBaggage").options.selectedIndex = 0;
			document.getElementById("HoldBaggageConfirmed").value = "no"
			popup('HoldBaggageBens','none','hidden');
		}
	}
	else{
		if(IntHoldBaggage == 0){
//			alert("Remember, if you present bags to check-in at the airport that have not been pre-booked you will be charged double. ");
			RemoveHoldBaggage(intStage);
		}
		if(IntHoldBaggage > 0){
			document.getElementById("HoldBaggageConfirmed").value = "yes"
			document.getElementById("HoldBaggagechoice").style.visibility = "visible";
			document.getElementById("HoldBaggagechoice").style.display = "block";
			document.getElementById("HoldBaggagetotal").style.visibility = "visible";
			document.getElementById("HoldBaggagetotal").style.display = "block";
			document.getElementById("HoldBaggagesummary").innerHTML = " " + IntHoldBaggage + " Bag(s)";
			document.getElementById("HoldBaggageSummaryDisplayWrapper").style.visibility = "visible";
			document.getElementById("HoldBaggageSummaryDisplayWrapper").style.display = "block";

			strHoldBaggageUnits = (IntHoldBaggage > 1 ? " bags " : " bag " );
			strHoldBaggageSummaryDetails = IntHoldBaggage + strHoldBaggageUnits + " @ £" + HoldBaggagePerBagEachWay.toFixed(2) + " per bag each way";
			
			document.getElementById("HoldBaggageSummaryDisplayDetails").innerHTML = strHoldBaggageSummaryDetails;

			document.getElementById("HoldBaggageSummaryDisplay").innerHTML = HoldBaggageTotal;
		}
		document.getElementById("HoldBaggagetotalspan").innerHTML = HoldBaggageTotal;
		document.getElementById("HoldBaggageUnits").value = IntHoldBaggage;
		document.getElementById("HoldBaggagePrice").value = HoldBaggageTotal;
		calculateTotalCost()
	}
}

function selectInsurance(boolSelectInsurance,stage,total,InsurancePerPerson){
	if (boolSelectInsurance == "true"){
		document.getElementById("insurancechoice").style.visibility = "visible";
		document.getElementById("insurancechoice").style.display = "block";
		document.getElementById("insurancetotal").style.visibility = "visible";
		document.getElementById("insurancetotal").style.display = "block";
		document.getElementById("InsuranceSummaryDisplayWrapper").style.visibility = "visible";
		document.getElementById("InsuranceSummaryDisplayWrapper").style.display = "block";
		document.getElementById("InsuranceSummaryDisplay").innerHTML = InsurancePerPerson;
		document.getElementById("InsurancePrice").value = parseFloat(total);
		document.getElementById("InsuranceConfirmed").value = "yes"
		if(stage == 2){
			document.getElementById("boolInsuranceFalse").checked = false;
			document.getElementById("boolInsuranceTrue").checked = true;
			popup('InsuranceBens','none','hidden');
		}
		calculateTotalCost()
	}
	else{
		if(stage == 1){
			document.getElementById("InsuranceConfirmed").value = "no"
			popup('InsuranceBens','block','visible');
		}
		else
		{
			popup('InsuranceBens','none','hidden');
			RemoveInsurance();
			document.getElementById("boolInsuranceFalse").checked = true;
			document.getElementById("boolInsuranceTrue").checked = false;
		}
	}
}

function RemoveInsurance(){
	document.getElementById("insurancechoice").style.visibility = "hidden";
	document.getElementById("insurancechoice").style.display = "none";
	document.getElementById("insurancetotal").style.visibility = "hidden";
	document.getElementById("insurancetotal").style.display = "none";
	document.getElementById("InsuranceSummaryDisplay").innerHTML = "0.00";
	document.getElementById("InsuranceSummaryDisplayWrapper").style.visibility = "hidden";
	document.getElementById("InsuranceSummaryDisplayWrapper").style.display = "none";
	document.getElementById("InsurancePrice").value = 0;
	document.getElementById("InsuranceConfirmed").value = "yes"
	calculateTotalCost();
}

function RemoveHoldBaggage(intStage){
	if(intStage == 2){
//		alert("Remember, if you present bags to check-in at the airport that have not been pre-booked you will be charged double. ");
	}
	document.getElementById("HoldBaggagechoice").style.visibility = "hidden";
	document.getElementById("HoldBaggagechoice").style.display = "none";
	document.getElementById("HoldBaggagetotal").style.visibility = "hidden";
	document.getElementById("HoldBaggagetotal").style.display = "none";
	document.getElementById("HoldBaggageSummaryDisplay").innerHTML = "0.00";
	document.getElementById("HoldBaggageSummaryDisplayWrapper").style.visibility = "hidden";
	document.getElementById("HoldBaggageSummaryDisplayWrapper").style.display = "none";
	document.getElementById("HoldBaggagePrice").value = 0;
	document.getElementById("HoldBaggageConfirmed").value = "yes"
	setDropDownByValue("IntHoldBaggage",0)
	calculateTotalCost();
}


function RemoveCarriage(intStage){
	if(intStage == 2){
//		alert("Please remember, passengers who have not pre-booked and present skis \/ snowboards \/ bags \/ boots at the airport will be charged double.");
	}
	document.getElementById("IntSkiCarriage").options.selectedIndex = 1;
	document.getElementById("carriagechoice").style.visibility = "hidden";
	document.getElementById("carriagechoice").style.display = "none";
	document.getElementById("carriagetotal").style.visibility = "hidden";
	document.getElementById("carriagetotal").style.display = "none";
	document.getElementById("CarriageSummaryDisplay").innerHTML = "0.00";
	document.getElementById("CarriageSummaryDisplayWrapper").style.visibility = "hidden";
	document.getElementById("CarriageSummaryDisplayWrapper").style.display = "none";
	document.getElementById("CarriagePrice").value = 0;
	document.getElementById("CarriageUnits").value = 0;
	document.getElementById("CarriageConfirmed").value = "yes";
	calculateTotalCost();
}


function RemoveBootBags(intStage){
	if(intStage == 2){
//		alert(" Remember, if you present equipment to check-in at the airport that has not been pre-booked you will be charged double.  If you will be travelling without equipment please select the value '0' in the appropriate fields.");
	}
	document.getElementById("IntBootBagCarriage").options.selectedIndex = 1;
	document.getElementById("BootBagchoice").style.visibility = "hidden";
	document.getElementById("BootBagchoice").style.display = "none";
	document.getElementById("BootBagtotal").style.visibility = "hidden";
	document.getElementById("BootBagtotal").style.display = "none";
	document.getElementById("BootBagSummaryDisplay").innerHTML = "0.00";
	document.getElementById("BootBagSummaryDisplayWrapper").style.visibility = "hidden";
	document.getElementById("BootBagSummaryDisplayWrapper").style.display = "none";
	document.getElementById("BootBagPrice").value = 0;
	document.getElementById("BootBagUnits").value = 0;
	document.getElementById("BootBagConfirmed").value = "yes"
	calculateTotalCost();
}

function submitflightinfo(){
	IntCarriageInDropDown = document.getElementById("IntSkiCarriage").value
	IntCarriageSubmitted = document.getElementById("CarriageUnits").value

	IntBootBagsInDropDown = document.getElementById("IntBootBagCarriage").value
	IntBootBagsSubmitted = document.getElementById("BootBagUnits").value

	var strDisplayMsg = "";
	var strDisplayMsgIntro = "Before continuing please tell us:\n\n";
	var boolSubmitForm = true;

	if (document.getElementById("HoldBaggageConfirmed").value == "no"){
		strDisplayAddition = "  -  How many bags you would like to add to your booking\n";
		strDisplayMsg += ( strDisplayMsg != "" ? strDisplayAddition : strDisplayMsgIntro + strDisplayAddition );
		boolSubmitForm = false;
	}
	if(document.getElementById("IntBootBagCarriage").value == "Please Select"){
		strDisplayAddition = "  -  How many boot bags you would like to add to your booking\n";
		strDisplayMsg += ( strDisplayMsg != "" ? strDisplayAddition : strDisplayMsgIntro + strDisplayAddition );
		boolSubmitForm = false;
	}
	if(document.getElementById("IntSkiCarriage").value == "Please Select"){
		strDisplayAddition = "  -  How many ski / snowboard bags you would like to add to your booking\n";
		strDisplayMsg += ( strDisplayMsg != "" ? strDisplayAddition : strDisplayMsgIntro + strDisplayAddition );
		boolSubmitForm = false;
	}

	strDisplayMsg += ( strDisplayMsg != "" ? "\nIf you present bags to check-in at the airport that have not been pre-booked you will be charged double. \n\n" : "" );

	if (document.getElementById("InsuranceConfirmed").value == "no"){
		strDisplayMsg = strDisplayMsg + "Please confirm your insurance choice before continuing.\n";
		boolSubmitForm = false;
	}
	if(boolSubmitForm){
		return true;
	}
	else
	{
		if(strDisplayMsg != ""){
			alert(strDisplayMsg);
		}
		return false;
	}
}