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 == 2){
			alert("Please select how many pairs of skis/snowboards you wish to add.");
			return false;
		}
	}
	else{
		if(IntSkiCarriage == 0){
			RemoveCarriage(intStage);
		}
		if(IntSkiCarriage > 0){
			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 + " Pair(s) of skis / snowboards";
			document.getElementById("CarriageSummaryDisplay").innerHTML = CarriageTotal;
		}
		document.getElementById("carriagetotalspan").innerHTML = CarriageTotal;
		document.getElementById("CarriageUnits").value = IntSkiCarriage;
		document.getElementById("CarriagePrice").value = CarriageTotal;
		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("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("InsurancePrice").value = 0;
	document.getElementById("InsuranceConfirmed").value = "yes"
	calculateTotalCost()
}

function RemoveCarriage(intStage){
	if(intStage == 2){
		alert("Please remember, passengers who have not pre-booked and present skis or a snowboard at the airport will be charged £25 each way.");
	}
	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("CarriagePrice").value = 0;
	document.getElementById("CarriageUnits").value = 0;
	calculateTotalCost()
}

function submitflightinfo(){
	IntCarriageInDropDown = document.getElementById("IntSkiCarriage").value
	IntCarriageSubmitted = document.getElementById("CarriageUnits").value
	var boolSubmitForm = true;
	if (document.getElementById("InsuranceConfirmed").value == "no"){
		alert("Please confirm your insurance choice before continuing");
		boolSubmitForm = false;
	}
	if(document.getElementById("IntSkiCarriage").value == "Please Select"){
		alert("Please select how many pairs of skis/snowboards you wish to add carriage for before continuing.");
		return false;
	}
	if(IntCarriageInDropDown != IntCarriageSubmitted){
		alert("Before continuing, please confirm the number of ski/board carriages you wish to add by selecting the number in the drop down and clicking the \"Add ski carriage\" button.");
		return false;
	}

if(boolSubmitForm){
		return true;
	}
	else
	{
		return false;
	}
}