
jQuery.namespace("bravofly.volagratis.homepage");bravofly.volagratis.homepage.hotelSearch=new bravofly.apps.AbstractPage({button:null,gateway:"http://vacanze.volagratis.it/vg1/vacanze/waitingsearch.action",routesArrival:['IBZ','BCN','PAR','AMS','PRG','BER','LIS','MAD','SVQ','ALC','ZAZ','PMI','OLB','MLA','SXF','TXL','TOJ','BVA','CDG','ORY','LON','LCY','LGW','LHR','LTN','STN','ACE','VLC','RHO','ROM','MIL','VIE','DUB','BUD','LPA','NYC','IST','BLQ','BRU','TFN','JTR','FUE','VCE','HER','FLR','CTA','KGS','PMO','NAP','BUH','TRN','CAG','ATH','BRI','MUC','CGN','TRS','TSR','RMI','STO','DUS','JMK','SIG','PSA','FRA','KRK','AGP','BDS','CPH','RAK','MIA','TPS','NCE','MOW','BGY','','DXB','SDR','VRN','AHO','EDI','GRX','MAH','WAW','GOA','LAS','OPO','MRS','SOF','NUE','RIX','MAN','OSL','BTS','KBP','LDE','AOI','GVA','FCO','SZG','HAJ','GRO','INN','PEK','ZRH','HAM','STR','TTB','MJV','CUN','PGR','BKK','LAX','SCQ','BIO','HEL','ZAG','AGA','AEP','LYS','SIN','WAS','COR','BJV','BGO','PSR','LUG','BRS','JKT','DRS','LPL','EIN','PEG','BRN','HKG','AYT','SSH','HAV','VRA'],routesExclude:['KBL','LAD','FMA','RGL','PPG','ABM','AUU','BCI','BDD','BEU','BKQ','BQL','BUC','BVI','CAZ','CMA','CNB','CNC','CNJ','CTL','CUQ','DMD','EDR','GIC','GOV','HGD','HID','IRG','JCK','KGC','KNS','KRB','LHG','LZR','MOV','NAA','OLP','PBO','RVT','SGO','STH','TCA','TIS','ULP','WEI','WGE','WNR','XMY','XTG','CGP','DAC','ZYL','BOY','BJM','COO','TDD','AFL','IMP','JPR','MAB','PPB','TFF','VDC','BIM','TZN','ZSA','FRW','MUB','XGR','YAY','YBB','YBK','YBX','YCB','YCK','YCO','YCS','YCY','YDP','YEK','YEV','YFB','YGL','YGR','YGW','YHD','YHG','YHK','YHR','YHY','YIF','YKG','YKL','YKQ','YKU','YMO','YMT','YNA','YOP','YPE','YQD','YRL','YRT','YSM','YST','YTE','YTH','YTQ','YUX','YVP','YVQ','YWK','YXL','YXN','YXP','YXT','YYH','YYR','YZP','YZS','ZGS','ZJN','ZKG','ZTB','ZUM','CCK','FBM','FIH','BGF','BZV','PNR','GOU','HSN','HYN','LYG','NDG','TEN','YNJ','ADZ','APO','CCC','CFG','CMW','CYO','HAV','HOG','SCU','SNU','VRA','SFL','VXE','XCH','ZQW','JIB','DCF','BJA','BSK','CZL','GHA','HME','ABS','BJR','DIR','JIM','MPN','PNI','TKK','YAP','MVB','POG','GOH','JAV','JEG','JNN','LLU','SFJ','UAK','SSG','AOK','FRS','OXB','GEO','CAP','PAP','AMQ','BKS','DJB','SOQ','TIM','BHJ','DIB','DIU','GAY','IXD','IXI','IXL','JGA','PAT','PBD','RPR','AZD','BUZ','CQD','KSH','ASJ','FUJ','HAC','MMY','TKN','EDL','KIS','LAU','LKG','MRE','FRU','TRW','HAH','CYB','CIT','KSN','KZO','PPK','PWQ','UKK','MLW','ROB','WES','BEN','EUN','VIL','DIE','MJN','MOQ','SMS','SVB','TLE','TMM','BII','EBO','KWA','MAJ','NDK','ROP','NDB','NKC','BLZ','LLW','LKH','MKM','SBW','APL','BEW','TET','OMD','LIF','NIM','KAN','RYG','IUE','AUQ','GKA','GUR','HGU','HKN','KVG','LAE','LNV','MAG','MAS','MDU','RUU','SAM','TBG','TIZ','WWK','CYP','GES','GIL','MJD','PEW','TUK','FSP','ROR','ARH','BQS','DYR','KEJ','KXK','NJC','NOJ','PKC','KGL','GIZ','SHW','TUI','URY','BAS','HIR','FNA','DEZ','GDT','NCA','PLS','XSC','DYU','DIL','ASB','HPA','VAV','MSR','FUN','MZG','MWZ','MYW','ABL','AIN','AKN','ANI','APN','BET','CDV','COD','DLG','DUT','EAA','ELY','ENA','GAL','HOM','HSL','KLG','KLW','KTS','LWT','NUL','OME','OTZ','PSG','ROW','SCC','SDP','SOV','TAL','UNK','WLK','YAK','SOM','DIN','PXU','SQH','TAH','AAY','DZA','NLA'],adults:1,infants:0,children:0,roundtrip:true,isExclusive:false,outboundDate:null,returnDate:null,airportArrival:"",airportDeparture:"",updateData:null,init:function(){jQuery.subscribe("/action/update",jQuery.proxy(this.saveUpdateData,this));jQuery.subscribe("/action/switchAirports",jQuery.proxy(this.switchAirports,this));},ready:function(){var btn=this.button=jQuery("#search-hotel");if(bravofly&&bravofly.store&&bravofly.store.Homepage&&bravofly.store.Homepage.searchMultiproduct){this.searchInDays=bravofly.store.Homepage.searchMultiproduct.searchInDays||1;}else{this.searchInDays=1;}
if(btn){btn.click(jQuery.proxy(this.submit,this));}
if(this.updateData){this.refresh(this.updateData);this.updateData=null;}},saveUpdateData:function(data){this.updateData=data;if(this.button){this.refresh(this.updateData);this.updateData=null;}},_dateDefine:function(datepicker){var M=datepicker.selectedMonth+1;return datepicker.selectedYear+""
+((M<10?"0":"")+M)+""
+(datepicker.selectedDay<10?"0":"")+datepicker.selectedDay;},switchAirports:function(obj){this.airportDeparture=obj.departure.value;this.airportArrival=obj.arrival.value;this.update();},_isAvailable:function(){var str,offset,reTest,routes=(this.isExclusive?this.routesExclude:this.routesArrival).join("|"),rSize=routes.length-1,result=false;if(this.airportArrival!==""&&this.airportDeparture!==""&&this.roundtrip===true&&!this._isSameDate()&&this._isDateGreaterThenToday(this.outboundDate,this.searchInDays)&&this.adults<5&&this.children===0&&this.infants===0){reTest=new RegExp(this.airportArrival);result=(reTest).test(routes);if(this.isExclusive){result=!(result);}}
return result;},_isDateGreaterThenToday:function(dateString,offset){var dateSlices=dateString.match(/^(\d{4})(\d{2})(\d{2})$/),year=parseInt(dateSlices[1],10),month=parseInt(dateSlices[2],10)-1,day=parseInt(dateSlices[3],10),today=new Date(),date=new Date(year,month,day);today.setDate(today.getDate()+offset);return date>=today;},_generateUrl:function(){var config={"search.type":"CUSTOM","bf_source":bravofly.store.Homepage.cobranded||"notfound","bf_subsource":"HP_Voli","search.departureAirports":this.airportDeparture,"search.destinationAirports":this.airportArrival,"search.departureIntervals":this.outboundDate+"-"+this.returnDate};switch(this.adults){case 1:case 2:case 3:config["search.rooms[0].adults"]=this.adults;break;case 4:config["search.rooms[0].adults"]=2;config["search.rooms[1].adults"]=2;break;default:break;}
return jQuery.param(config);},_isSameDate:function(){return this.outboundDate===this.returnDate;},refresh:function(data){if(!data||!data.outboundDate||!data.returnDate){return;}
this.outboundDate=this._dateDefine({selectedDay:data.outboundDate.getDate(),selectedMonth:data.outboundDate.getMonth(),selectedYear:this.getRealYear(data.outboundDate)});this.returnDate=this._dateDefine({selectedDay:data.returnDate.getDate(),selectedMonth:data.returnDate.getMonth(),selectedYear:this.getRealYear(data.returnDate)});this.airportDeparture=data.departureAirport||data.departure||"";this.airportArrival=data.arrivalAirport||data.arrival||"";this.adults=parseInt(data.adults,10);this.children=parseInt(data.children,10);this.infants=parseInt(data.infants,10);this.roundtrip=data.isRound;this.update();},getRealYear:function(date){var year,buff;if(date.getFullYear()){year=date.getFullYear();}else{buff=date.getYear();year=buff>2000?buff:buff+1900;}
return year;},update:function(){if(!this.button){return;}
this.button[this._isAvailable()?"show":"hide"]();},submit:function(){window.location=this.gateway+"?"+this._generateUrl();}});;
