var SalsaCheckDateAvailability=new Class({initialize:function(f,b,a,g,d,e,c){this.departure_year_elem=f;this.departure_month_elem=b;this.departure_day_elem=a;this.arrival_year_elem=g;this.arrival_month_elem=d;this.arrival_day_elem=e;this.nights_number_elem=c;this.status=0;this.on_error=function(){};this.ARRIVAL_DATE_NOT_VALID=-1;this.DEPARTURE_DATE_NOT_VALID=-2;this.DATES_NOT_VALID=-3},_is_valid:function(b,c,a){var e=new Date(b,c,a);return((e.getFullYear()==b)&&(c==e.getMonth())&&(a==e.getDate()))},_elapsed_days:function(e,a,c,b,d,g){var f=Date.UTC(e,a,c,0,0,0)-Date.UTC(b,d,g,0,0,0);return f/1000/60/60/24},getStatus:function(){return this.status},update:function(){var f=this.departure_year_elem.value;var a=this.departure_month_elem.value-1;var c=this.departure_day_elem.value;var b=this.arrival_year_elem.value;var e=this.arrival_month_elem.value-1;var g=this.arrival_day_elem.value;if(!this._is_valid(b,e,g)){this.status=this.ARRIVAL_DATE_NOT_VALID;this.on_error();return false}if(!this._is_valid(f,a,c)){this.status=this.DEPARTURE_DATE_NOT_VALID;this.on_error();return false}var d=this._elapsed_days(f,a,c,b,e,g);if(d<0){d=0}this.nights_number_elem.value=d;return true},check:function(){this.update();if(this.nights_number_elem.value==0){this.status=this.DATES_NOT_VALID;this.on_error();return false}return true},setOnError:function(a){this.on_error=a}});

