
 var bookThruDate = new Date('05/07/2010');    
 var sbookThruDate = (bookThruDate.getMonth() + 1) + "/" + bookThruDate.getDate() + "/" + bookThruDate.getFullYear();    
 $('#bookThru').append(sbookThruDate);
 $('#lastBookableDate').val(bookThruDate);


Number.prototype.pad=function(b){
   var a="0000000000000000"+this;
   return a.substring(a.length-b)
};

Date.prototype.toSWADateString=function(){
return(this.getMonth()+1).pad(2)+"/"+this.getDate().pad(2)+"/"+this.getFullYear()
};
function add(name, method) {
		if( !Date.prototype[name] ) {
			Date.prototype[name] = method;
		}
	};
	
add("addDays", function(num) {
		this.setTime(this.getTime() + (num*86400000) );
		return this;
	});
   
add("getMonthName", function(abbreviated) {
		return abbreviated ? Date.abbrMonthNames[this.getMonth()] : Date.monthNames[this.getMonth()];
	});
   
var datePickersBuilt=false;

$(document).ready(function(){
   if(buildDatePickersOnPageLoad){
      initiateDatePickers()      
   }      
});

function initiateDatePickers(){
   if(datePickersBuilt){   return   }
datePickersBuilt=true;
$.datepicker.setDefaults({
minDate:new Date(),
maxDate:new Date($("#lastBookableDate").val()),
changeMonth:false,
changeYear:false,
showButtonPanel:true,
closeText:"<span class='close_link'>Close</span>&nbsp;<img src='/assets/images/datepicker/close_button.gif' style='vertical-align:middle' alt='close'/>",
prevText:"<img src='/assets/images/datepicker/1.3_left_arrow.gif' alt='Previous' />",
nextText:"<img src='/assets/images/datepicker/1.3_right_arrow.gif' alt='Next' />",
showOn:"both",
duration:1,
numberOfMonths:2,
buttonImage:"/assets/images/datepicker/dropdown-calendar.gif",
buttonImageOnly:true,
buttonText:"Date Picker",
onClose:function(f){
if(f){
if(e){
e.syncDepart(f)}
}
}
}
);
$("#datepickerPreloadTriggerDepart, #datepickerPreloadTriggerReturn").remove();

var e;
var d=$("#outboundDate");
var c=d;

if(d.length>0){
   d=d[0];
   d.getDate=function(){
      return new Date(this.value)
   };
   
   d.setDate=function(f){
      this.value=f.toSWADateString()
   };
   
   c.change(function(){
      if(e){
         e.syncReturn(this.getDate())
         setHiddenDateFields(this.getDate(), 'depart');
      }
   });
   
   c.datepicker({
      buttonText:"Select departure date from calendar"}
   )}
   
   var b=$("#returnDate");
   var a=b;
   
   if(b.length>0){
      b=b[0];
      b.getDate=function(){
         return new Date(this.value)
      };
   
      b.setDate=function(f){
         this.value=f.toSWADateString()
      };
      
      a.change(function(){
         e.syncDepart(this.getDate())
         setHiddenDateFields(this.getDate(), 'return');
      });
      
      a.datepicker({
         buttonText:"Select return date from calendar"
      });
      
      e=new BothDatePickers(d,b)
   }
}
   
   function BothDatePickers(b,a){
      this.syncDepart=function(c){
      if(b.getDate()>c){
         b.setDate(c)
         setHiddenDateFields(b.getDate(), 'depart');
      }
   };
      
      this.syncReturn=function(c){
         if(a.getDate()<c){
            a.setDate(c)
            setHiddenDateFields(a.getDate(), 'return');
            }
         }
      };
      
Date.monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];

function setHiddenDateFields(date,type) {  // Classic showItinerary

   if (type == 'return') {  
      monthField = $('#returnMonth');
      dayField = $('#returnDay');
   } else if (type == "depart") {    
      monthField = $('#departMonth');
      dayField = $('#departDay');  
   }   
      var month = date.getMonthName();
      monthField.attr('value', month);
      dayField.attr('value', date.getDate());
}
