// Booking Form

function setDate(text, control) {
  var dt = text.split('/');

  $('#' + control.id + '_month').val(dt[0]);
  $('#' + control.id + '_day').val(dt[1]);
  $('#' + control.id + '_year').val(dt[2]);
}
function setDate2(text, control) {
  var dt2 = text.split('/');

  $('#' + control.id + '_month').val(dt2[0]);
  $('#' + control.id + '_day').val(dt2[1]);
  $('#' + control.id + '_year').val(dt2[2]);
}

$(function() {
    var button = $('#bookingButton');
    var button2 = $('#tableButton');
    var closer = $('#closebook');
    var closer2 = $('#closetablebook');
    var box = $('#bookingBox');
    var box2 = $('#tableBox');
    var form = $('#reservation');
    button.removeAttr('href');
 
    button.mouseup(function(book) {
        box.toggle();
        button.hide();
        button2.hide();

    });
    closer.mouseup(function(book) {
    	box.toggle();
    	button.show();
    	button2.show();
    	
    });
    form.mouseup(function() { 
        return false;
    });
    
    button2.mouseup(function(book) {
        box2.toggle();
        button.hide();
        button2.hide();

    });
    closer2.mouseup(function(book) {
    	box2.toggle();
    	button.show();
    	button2.show();
    	
    });

   
	var d = new Date();
	$('#arrive_month').val(d.getMonth()+1);
	$('#arrive_day').val(d.getDate());
  var y = $('#arrive_year').get(0);
  for (i = d.getFullYear(); i < d.getFullYear()+2; i++)
    y.options[y.options.length] = new Option(i, i);
  $('#arrive_year').val(d.getFullYear());
  var minDate = new Date(y.options[0].value, d.getMonth(), d.getDate());
  var maxDate = new Date(y.options[y.options.length-1].value, 11, 31);
  $('#arrive').datepicker({dateFormat: 'mm/dd/yy', minDate: minDate, maxDate: maxDate, onSelect: setDate});
 
  var d2 = new Date();
  $('#depart_month').val(d2.getMonth()+1);
  $('#depart_day').val(d2.getDate());
  var y2 = $('#depart_year').get(0);
  for (i2 = d2.getFullYear(); i2 < d2.getFullYear()+2; i2++)
    y2.options[y2.options.length] = new Option(i2, i2);
  $('#depart_year').val(d2.getFullYear());
  var minDate2 = new Date(y2.options[0].value, d.getMonth(), d.getDate());
  var maxDate2 = new Date(y2.options[y2.options.length-1].value, 11, 31);
  $('#depart').datepicker({dateFormat: 'mm/dd/yy', minDate2: minDate2, maxDate2: maxDate2, onSelect: setDate2});     
   
  
});


function format_arrive_date() {
	
	mon_m =  document.forms["reservation"].arrive_month.value;
	mon_d =  document.forms["reservation"].arrive_day.value;
	mon_y = document.forms["reservation"].arrive_year.value;
	
	
	return mon_m + "/" + mon_d + "/" + mon_y;		

} 
function format_depart_date() {
	
	mon_m =  document.forms["reservation"].depart_month.value;
	mon_d =  document.forms["reservation"].depart_day.value;
	mon_y = document.forms["reservation"].depart_year.value;	
	
	return mon_m + "/" + mon_d + "/" + mon_y;		

}  
function validate_booking_date() {
	
	document.forms["reservation"].arrive.value = format_arrive_date();	
	document.forms["reservation"].depart.value = format_depart_date();

	return true;
}

function showDatepicker(id) {
  $('#' + id).val($('#' + id + '_month').val() + '/' + $('#' + id + '_day').val() + '/' + $('#' + id + '_year').val());
  $('#' + id).datepicker('show');
}


function isLeapYear( yrStr ) {
var leapYear = false;
var year = parseInt( yrStr, 10 );
// every fourth year is a leap year
if ( year % 4 == 0 ) {
leapYear = true;
// unless it's a multiple of 100
if( year % 100 == 0 ) {
leapYear = false;
// unless it's a multiple of 400
if( year % 400 == 0 ) {
leapYear=true;
}
}
}
return leapYear;
}

function getDaysInMonth(mthIdx, YrStr)
      {
        // all the rest have 31
        var maxDays = 31
        // expect Feb. (of course)
        if (mthIdx==2)
        {
          if (isLeapYear(YrStr))
          {
            maxDays=29;
          }
          else
          {
            maxDays=28;
          }
        }
        // thirty days hath...
        if (mthIdx==4 || mthIdx==6 || mthIdx==9 || mthIdx==11)
        {
          maxDays=30;
        }
        return maxDays;
      }
function default_date() {
	Today = new Date;
	Day = Today.getDate();
	Month = (Today.getMonth())+1;
	Year = Today.getFullYear();
	
	if (Day > getDaysInMonth(Month, Year)) {
		Day = Day - getDaysInMonth(Month, Year);
		Month = Month + 1;
		if (Month>12) {
			Month = 1;
			Annee = Annee+1;
		}
	}		
	if (Day<10) {
		Day = '0' + Day;
	}
	if (Month<10) {
		Month = '0' + Month;
	}
	document.forms["reservation"].arrive_day.value = Day;
	document.forms["reservation"].arrive_month.value = Month;
	document.forms["reservation"].arrive_year.value = Year;
	document.forms["reservation"].depart_day.value = Day+1;
	document.forms["reservation"].depart_month.value = Month;
	document.forms["reservation"].depart_year.value = Year;
}

function setOutDayMonth() {
	var inMonthSelected = document.getElementById("arrive_month").options[document.getElementById("arrive_month").selectedIndex].value;
	var inYearSelected = document.getElementById("arrive_year").options[document.getElementById("arrive_year").selectedIndex].value;
	var inDaySelected = document.getElementById("arrive_day").options[document.getElementById("arrive_day").selectedIndex].value;
	
	var outMonthSelected = document.getElementById("depart_month").options[document.getElementById("depart_month").selectedIndex].value;
	var outYearSelected = document.getElementById("depart_year").options[document.getElementById("depart_year").selectedIndex].value;
	var outDaySelected = document.getElementById("depart_day").options[document.getElementById("depart_day").selectedIndex].value;
	
	var currInDate = new Date(inYearSelected, inMonthSelected, inDaySelected);
	var currOutDate = new Date(outYearSelected, outMonthSelected, outDaySelected);
	if ( currOutDate.getTime() < currInDate.getTime() + 1000*60*60*24 ) {
		currOutDate = new Date(currInDate.getTime() + 1000*60*60*24);
		var currOutMonth = (currOutDate.getMonth() < 9 ? "0" : "") + (currOutDate.getMonth());
		
		setMonth(currOutDate.getFullYear(), currOutMonth, "depart_");
		setDay('depart_year','depart_month', 'depart_day', currOutDate.getDate());
	}
}

function setMonth(year,month,type) {
	var ym = year + "-" + month;
	var s = document.getElementById(type +"month");
	for ( var i=0; i<s.options.length; i++ ) {
		if ( s.options[i].value == month ) {
			s.selectedIndex = i;
			break;
		}
	}
}
Date.prototype.daysInMonth = function () {
   return new Date(this.getFullYear(), this.getMonth()+1, 0).getDate();
}
function setDay(yearSelectName, monthSelectName, daySelectName, day){
	var daySelect = document.getElementById(daySelectName);
	var selectedDay;
	if ( day != undefined ) {
		selectedDay = day;
	}
	else {
		selectedDay = daySelect.options[daySelect.selectedIndex].value;
	}
	var inYearSelected = document.getElementById(yearSelectName).options[document.getElementById(yearSelectName).selectedIndex].value;
	var inMonthSelected = document.getElementById(monthSelectName).options[document.getElementById(monthSelectName).selectedIndex].value;
	daySelect.options.length = 0;
	var calDate = new Date(inMonthSelected, inYearSelected);
	var hassel = false;
	for( var i=1; i<=calDate.daysInMonth(); i++ ) {
		var issel = i == selectedDay ? true : false;
		hassel = hassel == false ? issel : hassel;
		if ( i == calDate.daysInMonth() && !(hassel) ) {
			issel = true;
		}
		daySelect.options[daySelect.options.length] = new Option(i, i, false, issel);
	}
}

