function createRootFilterNode(g){var b=function(k){this.parent=PriceComboModel;this.parent("minPrice",k);this.findMinPrice=function(){return EvalUtils.findMin(dataModel.elements,"minPrice")};this.findMaxPrice=function(){return EvalUtils.findMax(dataModel.elements,"maxPrice")};this.accept=function(l){if(this.allAccepted){return true}var m=parseFloat(EvalUtils.getValue(l,"minPrice"));var n=parseFloat(EvalUtils.getValue(l,"maxPrice"));if(isNaN(m)||isNaN(n)){return true}return this.acceptFloat(m)||this.acceptFloat(n)}};this.VacationPriceFilter=function(l,k,m){this.parent=SliderFilter;this.parent("minPrice",l,k,m);this.parentAccept=this.accept;this.accept=function(n){if(this.inAcceptAllState){return true}var o=parseFloat(EvalUtils.getValue(n,"minPrice"));var p=parseFloat(EvalUtils.getValue(n,"maxPrice"));return this.acceptValue(o)||this.acceptValue(p)}};var d=[];var e=new CompoundFilter(new TitleDecorator(it_message("filters.priceRange.title")),1);var h=new VacationPriceFilter(null,null,null);e.addFilter(h);d.push(e);var f=new ComboFilter(new ComboModel("vacationType",new Entry(it_message("filters.vacation.allVacations"),"allVacationTypesAccepted")),new TitleDecorator(it_message("filters.vacation.vacationType")),"largeSelect",2,undefined,g);d.push(f);var j=new ComboFilter(new ComboModel("country",new Entry(it_message("filters.vacation.vacationType"),"allCountriesAccepted")),new TitleDecorator(it_message("filters.vacation.countries")),"largeSelect",4,undefined,g);d.push(j);d.push(new AdvertiserFilter(5));var i=new FilterNode(d,null);var c=new ComboFilter(new ComboModel("departureCities",new Entry("Toutes les villes","allDepartureCitiesAccepted")),new TitleDecorator(it_message("common.departureCity"),null,true),"largeSelect",3,undefined,g);var a=new FilterNode([c],"vacationOptions");i.addChildFilterNode(a);return i}function VacationDataModel(){this.elements=new Array();this.formatter=new VacationFormatter();this.sorter=b;this.add=a;function a(c){this.elements.push(c)}function b(d,c){return d.minPrice<c.minPrice?-1:1}}var elementIndex=0;var priceFormat=new PriceFormat();function VacationOption(c,d,e,a,b,f){this.sDepartureDate=c;this.nDepartureDate=d;this.sEndDepartureDate=e;this.nEndDepartureDate=a;this.departureCities=f;this.price=b;this.alternatePrice=b*it_message("common.price.conversionRate");this.sAlternatePrice=priceFormat.format(this.alternatePrice)}function Vacation(j,q,i,k,g,c,m,b,o,n,a,h,p,l,f,e){this.id=elementIndex;this.index=elementIndex;elementIndex++;this.visible=true;this.vacationType=j;this.title=q;this.country=i;this.countryCode=k;this.city=g;this.shortDescription=c;this.longDescription=m;this.extraInfo=b;this.smallImageUrl=o;this.bigImageUrl=n;if(!String.isEmpty(o)){this.displayedImageUrl=o}else{this.displayedImageUrl=n}this.dayCount=a;this.nightCount=h;this.detailUrl=p;this.advertiserShownName=l;this.advertiserName=f;this.vacationOptions=e;this._filteredVacationOptions=e;this.validated=false;this.update=d;this.update();function d(){if(!this.validated){this.validated=true;this.mainOption=EvalUtils.findMinElement(this._filteredVacationOptions,"price",true);this.minPrice=EvalUtils.getValue(this.mainOption,"price",true);this.maxPrice=EvalUtils.findMax(this._filteredVacationOptions,"price",true)}}this.setFilteredVacationOptions=function(r){if(!Array.equals(this._filteredVacationOptions,r)){this.validated=false;this._filteredVacationOptions=r}}}function VacationFormatter(){this.format=function(f,d,e,h){var b=f.mainOption;var g=(f._filteredVacationOptions.length>1);var i=f.countryCode+it_statServerExtraInfo;d.a('<table class="results vacResults" cellpadding="0" cellspacing="0" border="0" id="').a(f.index).a('" onclick=\'go("').a(f.detailUrl).a('", "').a(f.advertiserName).a('", "').a(i).a("\");' onmouseover=\"this.className='resultsHover vacResultsHover';\" onmouseout=\"this.className='results vacResults';\">").a('<tr><td class="vacationPrice">').a(f.vacationType).a("<BR/>");if(f.dayCount>0&&f.nightCount>0){d.a(f.dayCount).a(" ").a(it_message("common.dayInitial")).a(" / ").a(f.nightCount).a(" ").a(it_message("common.nightInitial"))}else{if(f.nightCount>0&&f.dayCount==-1){d.a(f.nightCount).a(" ").a(it_message("common.nights"))}else{if(f.dayCount>0&&f.nightCount==-1){d.a(f.dayCount).a(" ").a(it_message("common.days"))}else{d.a("&nbsp;")}}}d.a("<BR/><a");it_PopupUtils.appendEventAttributes(it_message("common.price.conversionMessage",{sPrice:b.price,sAlternatePrice:b.sAlternatePrice}),{mode:"info"},d);d.a(">").a(it_message("common.price.countryFormattedPrice",{sPrice:b.price})).a("</a></td>").a('<td class="vacationInfo" colspan="5"><NOBR><a>');var c=new StringBuilder();if(f.country){c.a(f.country)}if(f.city){c.a(" - ").a(f.city)}if(f.title){c.a(" - ").a(f.title)}d.a(c.toString(),57);d.a("</a></NOBR><BR/>");if(f.shortDescription){d.a("<NOBR><span>").a(f.shortDescription,60).a("</span></NOBR><BR/>")}else{d.a("&nbsp;<BR/>")}if(f.extraInfo){d.a("<NOBR><span>").a(f.extraInfo,75).a("</span></NOBR>")}else{d.a("&nbsp;")}d.a('<td class="vacationPictureTD" rowspan="3"><div class="vacationPictureContainer">').a('<img class="vacationPicture" src="').a(f.displayedImageUrl).a('" title="').a(f.title).a('" border="0"/>').a("</div></td></tr><tr>").a('<td rowspan="2">').a('<img src="img/affil/').a(f.advertiserName).a('.gif" title="').a(f.advertiserShownName).a('" width="80" height="28" border="0"/></td>');if(b.departureCities==null&&f.city==""){d.a('<td class="vacationNoCities" colspan="2" rowspan="2">').a(it_message("vacation.noTransportVacation",{vacationType:f.vacationType})).a("</td>")}else{if(b.departureCities!=null&&f.city==""){d.a('<td class="vacationCitiesAnnouncer" rowspan="2">').a(it_message("vacation.departureFrom")).a("</td>").a('<td class="vacationCities" rowspan="2">').appendArray(b.departureCities,20).a("</td>")}else{if(b.departureCities==null){d.a('<td class="vacationNoCities" colspan="2">').a(it_message("vacation.noTransportVacation",{vacationType:f.vacationType})).a("</td>")}else{if(b.departureCities==""){d.a('<td class="vacationNoCities" colspan="2">&nbsp;</td>')}else{d.a('<td class="vacationCitiesAnnouncer">').a(it_message("vacation.departureFrom")).a("</td>").a('<td class="vacationCities">').appendArray(b.departureCities,20).a("</td>")}}}}if(b.sEndDepartureDate!=null){d.a('<td class="vacationDatesAnnouncer">').a(it_message("vacation.firstDeparture")).a("</td>").a('<td class="vacationDates">').a(b.sDepartureDate).a("</td>")}else{d.a('<td rowspan="2" class="vacationDatesAnnouncer">').a(it_message("vacation.departureOn")).a("</td>").a('<td rowspan="2" class="vacationDates">').a(b.sDepartureDate).a("</td>")}d.a('<td rowspan="2" align="right">');if(g){d.a('<div class="otherOptions"');it_PopupUtils.appendEventAttributes(function(){var j=new StringBuilder();a(f,j);return j.toString()},{mode:"info",alignmentX:"left",infoPopupDecoratorClass:"vacationInfoTableContent"},d);d.a(">").a(it_message("vacation.departureOptions")).a("</div>")}else{d.a('<div class="noOtherOptions"></div>')}d.a("</td></tr><tr>");if(f.city){if(b.departureCities==null){d.a('<td class="vacationCitiesAnnouncer">').a(it_message("vacation.shortedDestination")).a("</td>")}else{d.a('<td class="vacationCitiesAnnouncer">').a(it_message("vacation.arrivalAt")).a("</td>")}d.a('<td class="vacationCities">').a(f.city).a("</td>")}if(b.sEndDepartureDate!=null){d.a('<td class="vacationDatesAnnouncer">').a(it_message("vacation.lastDeparture")).a("</td>").a('<td class="vacationDates">').a(b.sEndDepartureDate).a("</td>")}d.a("</tr><tr>");if(f.longDescription){d.a('<td colspan="7" class="vacationLongDescription">').a(f.longDescription).a("</td></tr>")}else{d.a('<td colspan="7" class="vacationNoLongDescription"></td></tr>')}d.a("</table>");if(e<(h-1)){d.a('<div class="longResultSeparator"></div>')}};this.afterWrite=function(){document.getElements(".otherOptions").forEach(function(b){if(!it_TextShadowUtils.addShadow(b)){b.set("html","")}})};var a=function(c,b){b.a('<table cellspacing="0" cellpadding="0" border="0"><tr id="infoTbAccroch"><td colspan="3">').a(it_message("vacation.otherOptions")).a('</td></tr><tr id="infoTbTitleResults"><td>').a(it_message("vacation.firstDeparture")).a("<BR/>(").a(it_message("vacation.lastDeparture")).a(")</td><td>").a(it_message("vacation.departureCities")).a("</td><td>").a(it_message("common.price")).a("</td></tr>");c._filteredVacationOptions.forEach(function(d){b.a('<tr id="infoTbResults"><td class="date">');if(d.sEndDepartureDate){b.a(d.sDepartureDate).a("<BR/>(").a(d.sEndDepartureDate).a(")")}else{b.a(d.sDepartureDate)}b.a('</td><td class="cityColumn">');if(d.departureCities==null){b.a("Sans Transport")}else{b.appendArray(d.departureCities)}b.a('</td><td class="type">').a(it_message("common.price.countryFormattedPrice",{sPrice:d.price})).a("</td></tr>").a('<tr><td class="optionSeparator" colspan="3">&nbsp;</td></tr>')});b.a("</table>")}};
