var it_CarForm=function(c,a){a=it_Utils.extend({imgDir:it_basePath+"img/",autoCompleteQueryUrl:it_basePath+"car/suggest.html",autoCompleteOptions:null,departureDateOptions:{dayOfWeekElement:"car_departureDate.dayOfWeek",anchorElement:"car_departureCalendarImg",shortYear:true},returnDateOptions:{dayOfWeekElement:"car_returnDate.dayOfWeek",anchorElement:"car_returnCalendarImg",shortYear:true},departureCity:"",departureDate:null,departureTime:null,returnDate:null,returnTime:null,driversAge:25},a||{},["departureDateOptions","returnDateOptions"]);if(!a.departureDate){a.departureDate=it_DateUtils.addDay(it_DateUtils.clone(it_today),7)}if(!a.returnDate){a.returnDate=it_DateUtils.addDay(it_DateUtils.clone(it_today),14)}if(it_Utils.isDateBefore(a.departureDate,a.returnDate)){a.returnDate=a.departureDate}c=it_FormUtils.getForm(c);var b=c.elements;var d=function(){var e=$(b.departureCity);e.setProperty("autocomplete","off");new it_CarAutoComplete(e,$extend({queryUrl:a.autoCompleteQueryUrl},a.autoCompleteOptions));var i=new CompoundDate("departureDate",c,$extend({today:it_today,selectedDate:a.departureDate,imgDir:a.imgDir},a.departureDateOptions));var f=new CompoundDate("returnDate",c,$extend({today:it_today,selectedDate:a.returnDate,imgDir:a.imgDir},a.returnDateOptions));i.setDateListener(function(){if(it_Utils.isDateBefore(i.getDate(),f.getDate())){f.setDate(DateUtils.getDateShifted(i.getDate(),1))}});var g=new it_CompoundTime("departureDate",c);var h=new it_CompoundTime("returnDate",c);if(g.getHourSelect()&&h.getHourSelect()){g.getHourSelect().addEvent("change",function(){it_Select.select(h.getHourSelect(),g.getHourSelect().value)})}b.driversAge.addEvent("focus",function(){b.driversAge.select()});if(a.departureCity){b.departureCity.value=a.departureCity}if(a.driversAge){b.driversAge.value=a.driversAge}if(a.departureTime){g.setTime(a.departureTime)}else{g.setTimeParts(10,0)}if(a.returnTime){h.setTime(a.returnTime)}else{h.setTimeParts(10,0)}};d()};var it_CarAutoComplete=function(b,a){a=$extend({width:350,visibleLineCount:10,popupMenuBuilder:new it_CarAutoCompletePopupBuider()},a);new it_AutoComplete(b,a)};var it_CarAutoCompletePopupBuider=function(){var g=14+1;var c=14;var d=11;var a,b;var f;var e;this.init=function(h,i){if(a!=null){throw new Error("The popupBuilder can't be shared")}a=h;b=i};this.isResultValid=function(h){var i=e[h];return i.adv.length>0};this.getInputValue=function(h){var i=e[h];return i.inputText};this.setData=function(h){f=h};this.isDataShowable=function(){return f.length>0};this.buildContent=function(m){var k=22;var i=m.getWidth();var l=[];f[0].usedAdvertisers.split(",").forEach(function(n){l.push(carAdvertisers[n])});var h=l.length*g;var j=[];e=[];f.forEach(function(p,n){var o=function(t,q,s){var x=t.place;var A=e.length;var E={mouseover:function(){a.setSelectedIndex(A)},mousedown:function(){setTimeout(function(){a.lineSelected()},0)}};var B="";if(t.adv.length==0){B+="autoCompleteDisabled"}if(p.important){B+=" autoCompleteImportant"}var F=new Element("div",{styles:{position:"relative",height:b.lineHeight},events:E}).inject(m);var r=0;var w=new Element("div",{styles:{position:"absolute",left:r,top:(b.lineHeight-d)/2,width:k,textAlign:"center"}}).inject(F);if(q&&b.imgDir!=null&&p.flag!=null){new Element("img",{src:b.imgDir+"flags/"+p.flag.toLowerCase()+".png",title:p.countryName?p.countryName:null}).inject(w)}r+=k;var D;if(q||b.imgDir==null){D=0}else{if(x=="T"){D=2}else{D=1}}if(D!=0){for(var v=0;v<D-1;v++){new Element("div",{styles:{position:"absolute",left:r+v*14,width:14,height:"100%",backgroundImage:"url('"+b.imgDir+"autoComplete/I.png')"}}).inject(F)}new Element("div",{styles:{position:"absolute",left:r+(D-1)*14,width:14,height:"100%",backgroundImage:"url('"+b.imgDir+"autoComplete/"+(s?"L":"T")+".png')"}}).inject(F)}r+=D*14;if(b.imgDir!=null&&!q&&x!="T"){var z=null;if(x=="A"){z="airport"}else{if(x=="B"){z="bus"}else{if(x=="R"){z="railway"}else{if(x=="P"){z="port"}else{if(x=="C"){z="downtown"}else{if(x=="H"){z="hotel"}}}}}}if(z!=null){var y=new Element("div",{styles:{position:"absolute",left:r,top:(b.lineHeight-c)/2,width:c,height:"100%",overflow:"hidden",whiteSpace:"nowrap"}}).inject(F);new Element("img",{src:b.imgDir+"misc/picto/"+z+".png",title:it_message("car.form."+z+".name")}).inject(y);r+=c+3}}var u=new Element("div",{styles:{position:"absolute",left:r,top:0,width:i-r-h,height:"100%",overflow:"hidden",whiteSpace:"nowrap"}}).inject(F);new Element("div",{"class":B,text:t.text,styles:{position:"absolute",left:0,lineHeight:b.lineHeight}}).inject(u);var C=new Element("div",{styles:{position:"absolute",top:Math.ceil((b.lineHeight-g)/2),right:0,width:h,lineHeight:b.lineHeight}}).inject(F);l.forEach(function(G,H){if(t.adv.contains(G.name)){new Element("img",{src:b.imgDir+"affil/14x14/"+G.name+".gif",title:G.shownName,styles:{position:"absolute",left:H*g}}).inject(C)}});j.push(F);e.push(t)};o(p.all,true,false);p.stations.forEach(function(r,q){o(r,false,q==p.stations.length-1);if(r.place=="A"&&r.terminals){r.terminals.forEach(function(t,s){o(t,false,s==r.terminals.length-1)})}})});return j}};var it_FlightFormData=function(a,b){if(!b){b=""}this.classOfService=it_Utils.getProperty(a,b+"classOfService","eco");this.departureAirport=it_Utils.getProperty(a,b+"departureAirport","");this.arrivalAirport=it_Utils.getProperty(a,b+"arrivalAirport","");this.departureDate=it_Utils.getProperty(a,b+"departureDate",null);this.returnDate=it_Utils.getProperty(a,b+"returnDate",null);this.adultCount=it_Utils.getProperty(a,b+"adultCount",1);this.childCount=it_Utils.getProperty(a,b+"childCount",0);this.babyCount=it_Utils.getProperty(a,b+"babyCount",0);this.returnTicket=it_Utils.getProperty(a,b+"returnTicket",true);if(!this.departureDate){this.departureDate=it_DateUtils.addDay(it_DateUtils.clone(it_today),7)}if(!this.returnDate){this.returnDate=it_DateUtils.addDay(it_DateUtils.clone(it_today),14)}if(it_Utils.isDateBefore(this.departureDate,this.returnDate)){this.returnDate=this.departureDate}this.toExternalJson=function(){return{classOfService:this.classOfService,departureAirport:this.departureAirport,arrivalAirport:this.arrivalAirport,departureDateMillis:this.departureDate.getTime(),returnDateMillis:this.returnDate.getTime(),adultCount:this.adultCount,childCount:this.childCount,babyCount:this.babyCount,returnTicker:this.returnTicket}}};var it_FlightForm=function(a,i){i=it_Utils.extend({imgDir:it_basePath+"img/",autoCompleteQueryUrl:it_basePath+"flight/services.html",departureAutoCompleteOptions:null,arrivalAutoCompleteOptions:null,elementsToHideIfSingle:["fl_returnCase","fl_returnDate1","fl_returnDate2"],manageDates:true,departureDateOptions:{dayOfWeekElement:"fl_departureDate.dayOfWeek",anchorElement:"fl_departureCalendarImg",shortYear:true},returnDateOptions:{dayOfWeekElement:"fl_returnDate.dayOfWeek",anchorElement:"fl_returnCalendarImg",shortYear:true}},i||{},["departureDateOptions","returnDateOptions"]);var c=new it_FlightFormData(i);a=it_FormUtils.getForm(a);var d=a.elements;var f,b;var e;var h=this;var g=function(){e=!d.returnTicket.tagName||d.returnTicket.tagName.toLowerCase()!=="select";if(e){it_FormUtils.getRadios(a,"returnTicket").forEach(function(l){it_checkedListener.addCheckedListener(l,function(m,n){if(n){h.update()}})})}else{$(d.returnTicket).addEvent("change",h.update)}var j=$(d.departureAirport);var k=$(d.arrivalAirport);j.set({autocomplete:"off",events:{focus:function(){}}});k.set({autocomplete:"off",events:{focus:function(){k.select()}}});new it_FlightAutoComplete(j,$extend({queryUrl:i.autoCompleteQueryUrl},i.departureAutoCompleteOptions));new it_FlightAutoComplete(d.arrivalAirport,$extend({queryUrl:i.autoCompleteQueryUrl},i.arrivalAutoCompleteOptions));if(i.manageDates){f=new CompoundDate("departureDate",a,$extend({today:it_today,selectedDate:c.departureDate,imgDir:i.imgDir},i.departureDateOptions));b=new CompoundDate("returnDate",a,$extend({today:it_today,selectedDate:c.returnDate,imgDir:i.imgDir},i.returnDateOptions));f.setDateListener(function(){if(it_Utils.isDateBefore(f.getDate(),b.getDate())){b.setDate(f.getDate())}})}it_SelectUtils.addOptions(d.classOfService,[["eco",it_message("flight.form.class.eco")],["biz",it_message("flight.form.class.biz")],["first",it_message("flight.form.class.first")]],c.classOfService);if(e){it_FormUtils.checkRadios(it_FormUtils.getRadios(a,"returnTicket"),i.returnTicket,"true")}else{it_SelectUtils.select(d.returnTicket,"true")}it_SelectUtils.addNumericOptions(d.adultCount,0,6,c.adultCount);it_SelectUtils.addNumericOptions(d.childCount,0,6,c.childCount);it_SelectUtils.addNumericOptions(d.babyCount,0,6,c.babyCount);if(c.departureAirport){d.departureAirport.value=c.departureAirport}if(c.arrivalAirport){d.arrivalAirport.value=c.arrivalAirport}h.update()};this.update=function(){var j;if(e){j=d.returnTicket[1].checked}else{j=d.returnTicket.get("value")==="true"}it_Utils.setVisible(i.elementsToHideIfSingle,j);if(i.manageDates){b.setVisible(j)}};g()};var it_FlightAutoComplete=function(b,a){a=$extend({width:250,visibleLineCount:6,popupMenuBuilder:new it_FlightPopupMenuBuilder()},a);new it_AutoComplete(b,a)};var it_FlightPopupMenuBuilder=function(){var a,b;var c;this.init=function(d,e){if(a!=null){it_Utils.throwError("The popupBuilder can't be shared")}a=d;b=e};this.isResultValid=function(e){var d=c[e];return d.iataCode!=null};this.getInputValue=function(e){var d=c[e];return d.text+" "+d.iataCode};this.setData=function(d){c=d};this.isDataShowable=function(){return c!=null&&c.length>0};this.buildContent=function(h){var f=22;var g=38;var d=h.getWidth();var e=[];c.forEach(function(s,m){var k;var q={mouseover:function(){a.setSelectedIndex(m)},mousedown:function(){setTimeout(function(){a.lineSelected()},0)}};var n="";if(s.iataCode==null){n+="autoCompleteDisabled"}if(s.important){n+=" autoCompleteImportant"}var r=new Element("div",{styles:{position:"relative",height:b.lineHeight},events:q}).inject(h);e.push(r);var l=new Element("div",{styles:{position:"absolute",top:(b.lineHeight-11)/2,width:f,textAlign:"center"}}).inject(r);k=b.imgDir!=null&&s.child;if(!k&&b.imgDir!=null&&s.flag!=null){new Element("img",{src:b.imgDir+"flags/"+s.flag.toLowerCase()+".png",title:s.countryName?s.countryName:null}).inject(l)}var p=new Element("div",{styles:{position:"absolute",left:f,top:0,width:d-f-g,height:"100%",overflow:"hidden",whiteSpace:"nowrap"}}).inject(r);k=b.imgDir!=null&&s.child;if(k){var j=m==c.length-1||!c[m+1].child;new Element("div",{styles:{position:"absolute",width:14,height:"100%",backgroundImage:"url('"+b.imgDir+"autoComplete/"+(j?"L":"T")+".png')"}}).inject(p)}var o=s.text;if(s.viewOnlySuffix!=null){o+=s.viewOnlySuffix}new Element("div",{"class":n,text:o,styles:{position:"absolute",left:k?14:0,lineHeight:b.lineHeight}}).inject(p);var i=new Element("div",{"class":n,styles:{position:"absolute",left:d-g,width:g,lineHeight:b.lineHeight}}).inject(r);if(s.iataCode!=null){i.set("text",s.iataCode)}});return e}};var it_HotelForm=function(c,a){a=it_Utils.extend({imgDir:it_basePath+"img/",manageDates:true,arrivalDateOptions:{dayOfWeekElement:"hot_arrivalDate.dayOfWeek",anchorElement:"hot_arrivalCalendarImg",shortYear:true},countryName:it_subSite.toUpperCase(),cityName:"",arrivalDate:null,nightCount:1,roomCount:1,room1PeopleCount:2,room2PeopleCount:1,room3PeopleCount:1,room4PeopleCount:1},a||{},["arrivalDateOptions"]);if(!a.arrivalDate){a.arrivalDate=it_DateUtils.addDay(it_DateUtils.clone(it_today),7)}c=it_FormUtils.getForm(c);var b=c.elements;var d;var e=function(){var g=$(b.countryName);it_SelectUtils.bind(g,{data:hotelCountries,selectedCode:a.countryName});var h=$(b.cityName).set({value:a.cityName,events:{focus:function(){h.select()}}});if(a.manageDates){new CompoundDate("arrivalDate",c,$extend({today:it_today,selectedDate:a.arrivalDate,imgDir:a.imgDir},a.arrivalDateOptions))}it_SelectUtils.addNumericOptions(b.nightCount,1,60,a.nightCount);d=it_SelectUtils.addNumericOptions(b.roomCount,1,4,a.roomCount);if(d){d.addEvent("change",f)}it_SelectUtils.addNumericOptions(b.room1PeopleCount,1,4,a.room1PeopleCount);it_SelectUtils.addNumericOptions(b.room2PeopleCount,1,4,a.room2PeopleCount);it_SelectUtils.addNumericOptions(b.room3PeopleCount,1,4,a.room3PeopleCount);it_SelectUtils.addNumericOptions(b.room4PeopleCount,1,4,a.room4PeopleCount);f()};var f=function(){if(d){var g=d.value.toInt();c.getElements(".hot_room2").forEach(function(h){h.setOpacity(g>=2?1:0)});c.getElements(".hot_room3").forEach(function(h){h.setOpacity(g>=3?1:0)});c.getElements(".hot_room4").forEach(function(h){h.setOpacity(g>=4?1:0)})}};e()};