var minDates = new Array(4);
minDates[1] = [2012, 5, 1];
minDates[2] = [2011, 12, 15];
minDates[3] = [2011, 12, 15];
minDates[4] = [2012, 3, 31];
minDates[5] = [2012, 3, 31];
minDates[6] = [2011, 12, 26];
minDates[7] = [2011, 12, 26];
minDates[8] = [2012, 5, 1];
minDates[9] = [0];

var maxDates = new Array(4);
maxDates[1] = [2012, 12, 15];
maxDates[2] = [2012, 4, 30];
maxDates[3] = [2012, 4, 30];
maxDates[4] = [2012, 4, 8];
maxDates[5] = [2012, 4, 8];
maxDates[6] = [2012, 1, 2];
maxDates[7] = [2012, 1, 2];
maxDates[8] = [2012, 12, 15];
maxDates[9] = [0];

var standardRoom2 = new Array(4);
standardRoom2[1] = 109;
standardRoom2[2] = 138;
standardRoom2[3] = 193;
standardRoom2[4] = 154;
standardRoom2[5] = 206;
standardRoom2[6] = 154;
standardRoom2[7] = 206;
standardRoom2[8] = 165;

var standardRoom3 = new Array(4);
standardRoom3[1] = 127;
standardRoom3[2] = 157;
standardRoom3[3] = 245;
standardRoom3[4] = 170;
standardRoom3[5] = 254;
standardRoom3[6] = 170;
standardRoom3[7] = 254;
standardRoom3[8] = 215;

var standardRoom4 = new Array(4);
standardRoom4[1] = 145;
standardRoom4[2] = 179;
standardRoom4[3] = 299;
standardRoom4[4] = 187;
standardRoom4[5] = 303;
standardRoom4[6] = 187;
standardRoom4[7] = 303;
standardRoom4[8] = 266;

var villas = new Array(4);
villas[1] = 190;
villas[2] = 230;
villas[3] = 369;
villas[4] = 253;
villas[5] = 512;
villas[6] = 253;
villas[7] = 512;
villas[8] = 0;

var grandVilla = new Array(4);
grandVilla[1] = 304;
grandVilla[2] = 335;
grandVilla[3] = 563;
grandVilla[4] = 405;
grandVilla[5] = 795;
grandVilla[6] = 405;
grandVilla[7] = 795;
grandVilla[8] = 0;

function carousel(){
   jQuery('#main-carousel').jcarousel({
        start: 1,
        scroll:1,
        animation:"slow",
        auto:2,
        wrap:"last"
    });
}

function internalCarousel(){
   jQuery('.internal-carousel ul').jcarousel({
        start: 1,
        scroll:5,
        animation:"fast",
        auto:0,
        wrap:"last",
        vertical:true
   });
}

function heroRotator(){
   $("#right-wrap2").delay(2000).fadeOut(1000, function() {
      $("#right-wrap2").removeClass("hero-1");
      $("#right-wrap2").addClass("hero-3");
      $("#right-wrap2").delay(2000).fadeIn(1000, function() {
         $("#right-wrap").removeClass("hero-2");
         $("#right-wrap").addClass("hero-4");
         $("#right-wrap2").delay(2000).fadeOut(1000, function() {
            $("#right-wrap2").removeClass("hero-3");
            $("#right-wrap2").addClass("hero-5");
            $("#right-wrap2").delay(2000).fadeIn(1000, function() {
               $("#right-wrap").removeClass("hero-4");
               $("#right-wrap").addClass("hero-6");
               $("#right-wrap2").delay(2000).fadeOut(1000, function() {
                  $("#right-wrap2").removeClass("hero-5");
                  $("#right-wrap2").addClass("hero-1");
                  $("#right-wrap2").delay(2000).fadeIn(1000, function() {
                     $("#right-wrap").removeClass("hero-6");
                     $("#right-wrap").addClass("hero-2");
                     heroRotator();
                  });
               });
            });  
         });
      });
   });
}






var d = new Date();
var natDays = [[12,25,2011],[12,26,2011],[12,27,2011],[12,28,2011],[12,29,2011],[12,30,2011],[12,31,2011],[1,1,2012],[1,2,2012],[3,31,2012],[4,1,2012],[4,2,2012],[4,3,2012],[4,4,2012],[4,5,2012],[4,6,2012],[4,7,2012],[4,8,2012]];

//var julyDays = [[7,1,2011],[7,2,2011],[7,3,2011],[7,4,2011],[7,5,2011],[7,6,2011],[7,7,2011],[7,8,2011],[7,9,2011],[7,10,2011],[7,11,2011],[7,12,2011],[7,13,2011],[7,14,2011],[7,15,2011],[7,16,2011],[7,17,2011],[7,18,2011],[7,19,2011],[7,20,2011],[7,21,2011],[7,22,2011],[7,23,2011],[7,24,2011],[7,25,2011],[7,26,2011],[7,27,2011],[7,28,2011],[7,29,2011],[7,30,2011],[7,31,2011]];
var julyDays = [];

function nationalDays(date) {
  var m = date.getMonth();
  var d = date.getDate();
  var y = date.getFullYear();

  for (i = 0; i < natDays.length; i++) {
    if ((m == natDays[i][0] - 1) && (d == natDays[i][1]) && (y == natDays[i][2]))
    {
      return [false];
    }
  }
  return [true];
}
function noWeekendsOrHolidays(date) {
   return nationalDays(date);
}

function nojulyDays(date) {
  var m = date.getMonth();
  var d = date.getDate();
  var y = date.getFullYear();

  for (i = 0; i < julyDays.length; i++) {
    if ((m == julyDays[i][0] - 1) && (d == julyDays[i][1]) && (y == julyDays[i][2]))
    {
      return [false];
    }
  }
  return [true];
}
function noJuly(date) {
   return nojulyDays(date);
}

function setDatepicker(calendar, season){
   
   minMonth = minDates[season][1] - 1;
   maxMonth = maxDates[season][1] - 1;
   
   $('#'+calendar).datepicker( "destroy" )
   
   if (season == 2 || season == 3){
      $('#'+calendar).datepicker({
         changeMonth: true,
         changeYear: true,
         minDate: new Date(minDates[season][0], minMonth, minDates[season][2]),
         maxDate: new Date(maxDates[season][0], maxMonth, maxDates[season][2]),
         showOn: 'button',
         buttonImage: 'images/calendar.gif',
         buttonImageOnly: true,
         beforeShowDay: noWeekendsOrHolidays
      }); 
   }
   else{
      if (season == 1){
         $('#'+calendar).datepicker({
            changeMonth: true,
            changeYear: true,
            minDate: new Date(minDates[season][0], minMonth, minDates[season][2]),
            maxDate: new Date(maxDates[season][0], maxMonth, maxDates[season][2]),
            showOn: 'button',
            buttonImage: 'images/calendar.gif',
            buttonImageOnly: true,
            beforeShowDay: noJuly
         }); 
      }
      else {
         $('#'+calendar).datepicker({
            changeMonth: true,
            changeYear: true,
            minDate: new Date(minDates[season][0], minMonth, minDates[season][2]),
            maxDate: new Date(maxDates[season][0], maxMonth, maxDates[season][2]),
            showOn: 'button',
            buttonImage: 'images/calendar.gif',
            buttonImageOnly: true
         });
      }
   }
}

function refresh(){
   var season = parseInt($("#booking_season input:radio:checked").val());
   var nights = parseInt($("#booking_nights").val());
   
   setDatepicker("booking_checkin",season);
   
   $('#price_s1').html('$ '+standardRoom2[season]);   
   $('#total_s1').html('$ '+standardRoom2[season]* nights);
   
   $('#price_s2').html('$ '+standardRoom3[season]);
   $('#total_s2').html('$ '+standardRoom3[season]* nights);
   
   $('#price_s3').html('$ '+standardRoom4[season]);
   $('#total_s3').html('$ '+standardRoom4[season]* nights);
   
   $('#price_s4').html('$ '+villas[season]);
   $('#total_s4').html('$ '+villas[season]* nights);
   
   $('#price_s5').html('$ '+grandVilla[season]);
   $('#total_s5').html('$ '+grandVilla[season]* nights);
   
   calculate();
}

function refreshBooking(){
   var season = parseInt($("#left_booking_season").val());
   setDatepicker("left_booking_checkin", season);
}

function calculate(){
   var room = $("#booking_room input:radio:checked").val();
   
   var price_room = $("#price_s"+room).html();
   var price_total = $("#total_s"+room).html();
  
   $("#room_price").val(price_room);
   $("#total_price").val(price_total);
}

function setBookingOptions(season, checkin, nights){
  var season_id = season - 1;
  $('#booking_season input:radio:eq('+season_id+')').attr({checked: true});
  
  $('#booking_checkin').val(checkin);
  
  $('#booking_nights').val(nights)
}

function emailValidate(email){
   var emailRE = /^[a-zA-Z0-9_\+-]+(\.[a-zA-Z0-9_\+-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.([a-zA-Z]{2,4})$/;
   if (email.match(emailRE)){
      return true;
   }
   else {
      return false;
   }
}

function validateRoom(){
   var error = 0;
   
   $('#booking_checkin').removeClass('error')
   $('#booking_name').removeClass('error')
   $('#booking_phone').removeClass('error')
   $('#booking_email').removeClass('error')
   
   if ($('#booking_checkin').val() == ""){      
      $('#booking_checkin').addClass('error')
      error = 1;
   }
   
   if ($('#booking_name').val() == ""){      
      $('#booking_name').addClass('error')
      error = 1;
   }
   
   if ($('#booking_phone').val() == ""){      
      $('#booking_phone').addClass('error')
      error = 1;
   }
   
   if (!emailValidate($('#booking_email').val())){      
     $('#booking_email').addClass('error')
      error = 1;
   }

   if (error == 1){
      return false;
   }
   else{
      return true;
   }
}

function pngFixer(){
   $("#main-menu").pngfix();
   $("#hero-bottom").pngfix();
}

/*************************Document Load******************************/
$(document).ready(function() {   
   refreshBooking();
   $('#left_booking_season').change(refreshBooking);
   
   carousel();
   
   /*Internal Gallery*/
   $('.internal-carousel a').click(function(event) {      
      $('.internal-carousel').css('background-image', 'url(images/internal-carousel/'+$(this).attr("href")+')')
      return false;
   });

   $('#form-booking-room').submit(function() {      
      return validateRoom();
   });

   if($.browser.msie && $.browser.version=="6.0"){
      pngFixer();
   }

   setDatepicker("left_booking_checkin",0);
});
