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(i.getDate())}});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 b=14;var c=11;var f,a;var e;var d;this.init=function(i,h){if(f!=null){throw new Error("The popupBuilder can't be shared")}f=i;a=h};this.isResultValid=function(h){var i=d[h];return i.adv.length>0};this.getInputValue=function(h){var i=d[h];return i.inputText};this.setData=function(h){e=h};this.isDataShowable=function(){return e.length>0};this.buildContent=function(m){var k=22;var i=m.getWidth();var l=[];e[0].usedAdvertisers.split(",").forEach(function(n){l.push(carAdvertisers[n])});var h=l.length*g;var j=[];d=[];e.forEach(function(q,o){var p=function(u,r,t,z){if(z==null){throw new Error("The inputText argument is mandatory. stationObj: "+u)}u.inputText=z;var y=u.place;var C=d.length;var H={mouseover:function(){f.setSelectedIndex(C)},mousedown:function(){f.lineSelected()}};var D="";if(u.adv.length==0){D+="autoCompleteDisabled"}if(q.important){D+=" autoCompleteImportant"}var G=new Element("div",{styles:{position:"relative",height:a.lineHeight},events:H}).inject(m);var s=0;var x=new Element("div",{styles:{position:"absolute",left:s,top:(a.lineHeight-c)/2,width:k,textAlign:"center"}}).inject(G);if(r&&a.imgDir!=null&&q.flag!=null){new Element("img",{src:a.imgDir+"flags/"+q.flag.toLowerCase()+".png",title:q.countryName?q.countryName:null}).inject(x)}s+=k;var F;if(r||a.imgDir==null){F=0}else{if(y=="T"){F=2}else{F=1}}if(F!=0){for(var w=0;w<F-1;w++){new Element("div",{styles:{position:"absolute",left:s+w*14,width:14,height:"100%",backgroundImage:"url('"+a.imgDir+"autoComplete/I.png')"}}).inject(G)}new Element("div",{styles:{position:"absolute",left:s+(F-1)*14,width:14,height:"100%",backgroundImage:"url('"+a.imgDir+"autoComplete/"+(t?"L":"T")+".png')"}}).inject(G)}s+=F*14;if(a.imgDir!=null&&!r&&y!="T"){var B=null;if(y=="A"){B="airport"}else{if(y=="B"){B="bus"}else{if(y=="R"){B="railway"}else{if(y=="P"){B="port"}else{if(y=="C"){B="downtown"}else{if(y=="H"){B="hotel"}}}}}}if(B!=null){var A=new Element("div",{styles:{position:"absolute",left:s,top:(a.lineHeight-b)/2,width:b,height:"100%",overflow:"hidden",whiteSpace:"nowrap"}}).inject(G);new Element("img",{src:a.imgDir+"misc/picto/"+B+".png",title:it_message("car.form."+B+".name")}).inject(A);s+=b+3}}var v=new Element("div",{styles:{position:"absolute",left:s,top:0,width:i-s-h,height:"100%",overflow:"hidden",whiteSpace:"nowrap"}}).inject(G);new Element("div",{"class":D,text:u.text,styles:{position:"absolute",left:0,lineHeight:a.lineHeight}}).inject(v);var E=new Element("div",{styles:{position:"absolute",top:Math.ceil((a.lineHeight-g)/2),right:0,width:h,lineHeight:a.lineHeight}}).inject(G);l.forEach(function(I,J){if(u.adv.contains(I.name)){new Element("img",{src:a.imgDir+"affil/14x14/"+I.name+".gif",title:I.shownName,styles:{position:"absolute",left:J*g}}).inject(E)}});j.push(G);d.push(u)};var n=q.all.text;if(q.parent!=null){n+=" ("+q.parent+")"}p(q.all,true,false,n);q.stations.forEach(function(t,s){var r=n+", "+t.text;p(t,false,s==q.stations.length-1,r);if(t.place=="A"&&t.terminals){t.terminals.forEach(function(w,v){var u=r+", "+w.text;p(w,false,v==t.terminals.length-1,u)})}})});return j}};var it_FlightForm=function(f,c){c=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},classOfService:null,departureAirport:"",arrivalAirport:"",departureDate:null,returnDate:null,adultCount:1,childCount:0,babyCount:0,returnTicket:true},c||{},["departureDateOptions","returnDateOptions"]);if(!c.departureDate){c.departureDate=it_DateUtils.addDay(it_DateUtils.clone(it_today),7)}if(!c.returnDate){c.returnDate=it_DateUtils.addDay(it_DateUtils.clone(it_today),14)}if(it_Utils.isDateBefore(c.departureDate,c.returnDate)){c.returnDate=c.departureDate}f=it_FormUtils.getForm(f);var d=f.elements;var h,a;var e;var b=this;var g=function(){e=!d.returnTicket.tagName||d.returnTicket.tagName.toLowerCase()!=="select";if(e){it_FormUtils.getRadios(f,"returnTicket").addEvent("click",b.update)}else{$(d.returnTicket).addEvent("change",b.update)}var i=$(d.departureAirport);var j=$(d.arrivalAirport);i.set({autocomplete:"off",events:{focus:function(){}}});j.set({autocomplete:"off",events:{focus:function(){j.select()}}});new it_FlightAutoComplete(i,$extend({queryUrl:c.autoCompleteQueryUrl},c.departureAutoCompleteOptions));new it_FlightAutoComplete(d.arrivalAirport,$extend({queryUrl:c.autoCompleteQueryUrl},c.arrivalAutoCompleteOptions));if(c.manageDates){h=new CompoundDate("departureDate",f,$extend({today:it_today,selectedDate:c.departureDate,imgDir:c.imgDir},c.departureDateOptions));a=new CompoundDate("returnDate",f,$extend({today:it_today,selectedDate:c.returnDate,imgDir:c.imgDir},c.returnDateOptions));h.setDateListener(function(){if(it_Utils.isDateBefore(h.getDate(),a.getDate())){a.setDate(h.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,"eco");if(e){it_FormUtils.checkRadios(it_FormUtils.getRadios(f,"returnTicket"),c.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}b.update()};this.update=function(){var i;if(e){i=d.returnTicket[1].checked}else{i=d.returnTicket.get("value")==="true"}it_Utils.setVisible(c.elementsToHideIfSingle,i);if(c.manageDates){a.setVisible(i)}};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 c,a;var b;this.init=function(e,d){if(c!=null){it_Utils.throwError("The popupBuilder can't be shared")}c=e;a=d};this.isResultValid=function(e){var d=b[e];return d.iataCode!=null};this.getInputValue=function(e){var d=b[e];return d.text+" "+d.iataCode};this.setData=function(d){b=d};this.isDataShowable=function(){return b!=null&&b.length>0};this.buildContent=function(h){var f=22;var g=38;var d=h.getWidth();var e=[];b.forEach(function(s,m){var k;var q={mouseover:function(){c.setSelectedIndex(m)},mousedown:function(){c.lineSelected()}};var n="";if(s.iataCode==null){n+="autoCompleteDisabled"}if(s.important){n+=" autoCompleteImportant"}var r=new Element("div",{styles:{position:"relative",height:a.lineHeight},events:q}).inject(h);e.push(r);var l=new Element("div",{styles:{position:"absolute",top:(a.lineHeight-11)/2,width:f,textAlign:"center"}}).inject(r);k=a.imgDir!=null&&s.child;if(!k&&a.imgDir!=null&&s.flag!=null){new Element("img",{src:a.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=a.imgDir!=null&&s.child;if(k){var j=m==b.length-1||!b[m+1].child;new Element("div",{styles:{position:"absolute",width:14,height:"100%",backgroundImage:"url('"+a.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:a.lineHeight}}).inject(p);var i=new Element("div",{"class":n,styles:{position:"absolute",left:d-g,width:g,lineHeight:a.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:1,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()};