// JavaScript Document for Booking page
var curPanel = 1;
var n=1;
var currDate = new Date();
var randomnumber=Math.floor(Math.random()*1001)
var bookingnumber="REF"+(currDate.getMonth()+1)+currDate.getDate()+randomnumber;
var month_names = new Array ( );

month_names[month_names.length] = "January";
month_names[month_names.length] = "February";
month_names[month_names.length] = "March";
month_names[month_names.length] = "April";
month_names[month_names.length] = "May";
month_names[month_names.length] = "June";
month_names[month_names.length] = "July";
month_names[month_names.length] = "August";
month_names[month_names.length] = "September";
month_names[month_names.length] = "October";
month_names[month_names.length] = "November";
month_names[month_names.length] = "December";

// Presentation of current date
var currstr = month_names[currDate.getMonth()]+" "+currDate.getDate()+", "+currDate.getFullYear();

// ranges of valid dates for booking
var range1B = new Date(2007,5,22); // 5 = June
var range1E = new Date(2007,6,1); // 6 = July
var range2B = new Date(2007,6,13);  // 6 = July
var range2E = new Date(2007,6,22); // 6 = July
var range3B = new Date(2007,6,27); // 6 = July
var range3E = new Date(2007,7,5);  // 7 = August
var range4B = new Date(2007,7,17); // 7 = August
var range4E = new Date(2007,7,26); // 7 = August

var y, m, d, l;
var period; //string with period
var Accommodation // string telling what Accommodation chosen
var room // string telling which room type is chosen

// prices in Euro
var priceday = 40;
var pricevisa = 35;
var priceair = 30;
var pricebb = 30;
var price3s = 70;
var price4s = 150;
var pricefitness = 50;
var pricegift = 20;
var depositpercent = 10; 
var total, deposit, hotelrate;

// Flip through calendar pages
function flipCalendar(){
 document.getElementById("tb"+curPanel).style.display="none";
 n=curPanel;n++;
 if (n==4){n=1};
 document.getElementById("tb"+n).style.display="block";
 curPanel=n;
}

// See if selected period is within ranges available for travel
function validateDateRange(dS, dE){
if (
((dS.getTime()>=range1B.getTime()) && (dE.getTime()<=(range1E.getTime()+1*24*60*60*1000))) 
|| ((dS.getTime()>=range2B.getTime()) && (dE.getTime()<=(range2E.getTime()+1*24*60*60*1000)))
|| ((dS.getTime()>=range3B.getTime()) && (dE.getTime()<=(range3E.getTime()+1*24*60*60*1000)))
|| ((dS.getTime()>=range4B.getTime()) && (dE.getTime()<=(range4E.getTime()+1*24*60*60*1000)))
 ){ return true }
   else {return false}
}

// Update range of trip in html text
function updateDateRange(){ 
              y = document.getElementById("yearfrom").value;
              m = document.getElementById("monthfrom").value;
              d = document.getElementById("dayfrom").value;			  
              l = document.getElementById("numdays").value;			  			  
			  var valid = "&nbsp;&nbsp;&nbsp;At least some days in chosen period are not available for booking! Please choose another period.";
			  var dStart = new Date();
			  dStart.setFullYear(y,m,d);
			  var dEnd = new Date(dStart.getTime()+((l-1)*24*60*60*1000));
			  nt=l-1
			  period = month_names[dStart.getMonth()]+" "+dStart.getDate()+", "+dStart.getFullYear()+
	          " - "+month_names[dEnd.getMonth()]+" "+dEnd.getDate()+", "+dEnd.getFullYear()+"    ("+l+" days/ "+nt+" nights)";
			  document.getElementById("daterange").innerHTML= "Booking period: "+period;
              if (validateDateRange(dStart,dEnd)){
			   valid = "&nbsp;&nbsp;&nbsp;Period is ok";
			   document.getElementById("error0").innerHTML= valid;
			   return true;
			  }
			  else {
			   document.getElementById("error0").innerHTML= valid;
			   return false;
			  }
}

function updateFields(){

updateDateRange();
document.getElementById("basicpackage").innerHTML= "<input name=\"cbBasic\" type=\"checkbox\" disabled=\"disabled\" id=\"cbBasic\" value=\"checkbox\" checked=\"checked\"/> Basic package for "+l+" days - "+Math.min(l*priceday,9*priceday)+"&euro;";

total=Math.min(l*priceday,9*priceday);

formObj = document.bookingform;

formObj.fRefnumber.value=bookingnumber;
formObj.fBookdate.value=currstr;
formObj.fPeriod.value=period;

document.getElementById("idPeriod").innerHTML=period;
document.getElementById("idName").innerHTML=formObj.fName.value;
document.getElementById("idLastname").innerHTML=formObj.fLastname.value;
document.getElementById("idHome").innerHTML=formObj.fHome.value;
document.getElementById("idCity").innerHTML=formObj.fCity.value;
document.getElementById("idCountry").innerHTML=formObj.fCountry.value;
document.getElementById("idPhone").innerHTML=formObj.fPhone.value;
document.getElementById("idEmail").innerHTML=formObj.fEmail.value;
document.getElementById("idComments").innerHTML=formObj.fComments.value;
if(formObj.fVisa.checked){document.getElementById("idVisa").innerHTML="yes";total+=pricevisa;}else{document.getElementById("idVisa").innerHTML="no"};
if(formObj.fAir.checked){document.getElementById("idAir").innerHTML="yes";total+=priceair;}else{document.getElementById("idAir").innerHTML="no"};

if(formObj.fAccommodation[0].checked){Accommodation="no Accommodation";document.getElementById("idAccommodation").innerHTML=Accommodation;hotelrate=0;}
 else{if(formObj.fAccommodation[1].checked){Accommodation="B&B hotel";document.getElementById("idAccommodation").innerHTML=Accommodation;total+=(l*pricebb);hotelrate=pricebb;}
   else{if(formObj.fAccommodation[2].checked){Accommodation="private hotel";document.getElementById("idAccommodation").innerHTML=Accommodation;total+=(l*price3s);hotelrate=price3s;}
	 else{Accommodation="high class hotel";document.getElementById("idAccommodation").innerHTML=Accommodation;total+=(l*price4s);hotelrate=price4s;}}}	

formObj.fAccommodationStr.value=Accommodation;

if(formObj.fRoom[0].checked){room="dormitory type";document.getElementById("idRoom").innerHTML=room;}
 else{if(formObj.fRoom[1].checked){room="single";document.getElementById("idRoom").innerHTML=room;}
   else{if(formObj.fRoom[2].checked){room="double";document.getElementById("idRoom").innerHTML=room;}
	 else{room="n/a";document.getElementById("idRoom").innerHTML=room;}}}	

formObj.fRoomStr.value=room;

if(formObj.fFitness.checked){document.getElementById("idFitness").innerHTML="yes";total+=pricefitness;}else{document.getElementById("idFitness").innerHTML="no"};
if(formObj.fGift.checked){document.getElementById("idGift").innerHTML="yes";total+=pricegift;}else{document.getElementById("idGift").innerHTML="no"};

formObj.fTotal.value=total+"&euro;";
formObj.fDeposit.value=(Math.round(total*depositpercent/100))+"&euro;";

document.getElementById("idTotal").innerHTML=total+" &euro;";
document.getElementById("idDeposit").innerHTML=(Math.round((total-hotelrate*l)*depositpercent/100)+hotelrate)+" &euro;";
}
