var it_AjaxResultPage=function(c,a,k){k=Object.append({servicesUrl:null,onUpdate:function(l){}},k);var e,h;var f;var j=function(){if(!it_whitelabel){var l=new Fx.Scroll(window,{duration:800});var m=$("listNFilters").getTop()}e=$("resultList");h=new it_PageSelector(a,"bottomPageSelector",null,{events:{selectionChanged:function(p,n,o,q){if(!q){b("page",n,o);if(it_whitelabel){}else{l.set(0,m)}}else{k.onUpdate()}}}})};var g=$("resultBusy").set("tween",{duration:250});var d=function(){g.setWidth(e.getWidth());g.setHeight(e.getHeight());g.set("opacity",0);g.tween("opacity",0.5)};var i=function(){g.tween("opacity",0)};this.query=function(){b("form")};var b=function(l,m,o){it_vacationList.closeDetail();var n=new StringBuilder();n.a(k.servicesUrl).a("?cmd=").a(l);if(m!=null){n.a("&fromIndex=").a(m)}if(o!=null){n.a("&toIndex=").a(o)}n.a("&").a(c.toQueryString());if(f){f.cancel()}f=new Request.HTML({url:n.toString(),update:e,onSuccess:function(){i();k.onUpdate(l)},onFailure:i}).send();d()};this.getPageSelector=function(){return h};j()};var FilterNode=function(c,b){this.filters=Array.from(c);this.propertyName=b;this.childrenFilterNodes=new Array();var e=b==null?true:EvalUtils.isDirectChild(b);var a=this;this.applyFilter=function(h){var j=new Array();for(var g=0;g<h.length;g++){var f=h[g];if(d(f)){j.push(f)}}return j};var d=function(g){var n=a.filters.every(function(i){return i.accept(g)});if(!n){return false}for(var f=0;f<a.childrenFilterNodes.length;f++){var h=a.childrenFilterNodes[f];var j=g[h.propertyName];var k=h.applyFilter(j);var m=h.propertyName.capitalizeFirstLetter();var l=g["setFiltered"+m];if(l!=null){l(k)}else{g["filtered"+m]=k}if(k.length==0){return false}}return true};this.addChildFilterNode=function(f){this.childrenFilterNodes.push(f)};this.init=function(f){this.filters.forEach(function(g){g.init(f)});this.childrenFilterNodes.forEach(function(h){var g=[];f.forEach(function(i){g.append(EvalUtils.getValue(i,h.propertyName,e))});h.init(g)})};this.callOnFilters=function(f,g){this.filters.forEach(f,g);this.childrenFilterNodes.forEach(function(h){h.callOnFilters(f,g)})}};var EvalUtilsClass=function(){this.isDirectChild=function(expression){return expression.indexOf(".")==-1&&expression.indexOf("[")==-1};this.getValue=function(element,expression,directChild){if(directChild){return element[expression]}else{return eval("element."+expression)}};this.findMin=function(elements,expression,directChild){return this.getValue(this.findMinElement(elements,expression,directChild),expression,directChild)};this.findMax=function(elements,expression,directChild){return this.getValue(this.findMaxElement(elements,expression,directChild),expression,directChild)};this.findMinElement=function(elements,expression,directChild){var min=Number.MAX_VALUE;var minElement=null;for(var i=0;i<elements.length;i++){var element=elements[i];var value=this.getValue(element,expression,directChild);if(value<min){min=value;minElement=element}}return minElement};this.findMaxElement=function(elements,expression,directChild){var max=0;var maxElement=null;for(var i=0;i<elements.length;i++){var element=elements[i];var value=this.getValue(element,expression,directChild);if(value>max){max=value;maxElement=element}}return maxElement}};var EvalUtils=new EvalUtilsClass();var UniqueValues=function(d){this.expression=d;this.directChild=EvalUtils.isDirectChild(d);this.entries=null;var b=this;this.init=function(f){this.entries=[];var g=this.directChild?d:d.split(".");a(f,g,0);this.entries.sort(e)};var a=function(k,l,j){if(k instanceof Array){for(var f=0;f<k.length;f++){a(k[f],l,j)}}else{if(l instanceof Array){var h=l[j];k=EvalUtils.getValue(k,h,true);if(j==l.length){l=null}a(k,l,j+1)}else{if(l!=null){k=EvalUtils.getValue(k,l,true);a(k,null,0)}else{if(k==null){return}var g=new Entry(k);if(b.entries[g.key]==null){b.entries[g.key]=g;b.entries.push(g)}}}}};this.accept=function(g,f){var h=EvalUtils.getValue(g,this.expression,this.directChild);return c(h,f)};var c=function(g,f){if(g==null){return false}if(g instanceof Array){return g.some(function(h){return c(h,f)},this)}if(f instanceof Array){return f.some(function(h){return c(g,h)},this)}if(g.key!=null&&g.value!=null){return g.key==f}return normalize(g)==f};this.reject=function(g,h){var f=EvalUtils.getValue(g,this.expression,this.directChild);if(f instanceof Array){return f.every(function(i){this.reject(reject,h)})}else{return c(f,h)}};var e=function(g,f){if(g.value==f.value){return 0}else{if(g.value<f.value){return -1}else{return 1}}}};var Entry=function(b,a){if(b.value!=null&&b.key!=null){this.key=b.key;this.value=b.value}else{this.value=b;if(a==null){a=normalize(b)}this.key=a}};var normalize=function(a){return a.toUpperCase()};function TitleDecorator(c){this.title=c;this.outputHeader=b;this.outputFooter=a;function b(d){d.a('<tr><td>&nbsp;</td></tr><tr><td align="center"><span>').a(c).a('</span></td></tr><tr><td align="left">')}function a(d){d.a("</td></tr>")}}function SubTitleDecorator(b,a,c){this.outputHeader=function(d){if(c){if(b!=null){d.a('<tr><td align="left">').a(b).a("</td></tr>")}d.a('<tr><td align="left">')}else{d.a("<tr>");if(b!=null){d.a('<td class="filtersSubTitleLabel" align="right">').a(b).a("</td>")}d.a('<td class="filtersSubTitleSelector">')}};this.outputFooter=function(d){if(c){d.a("</td></tr>");if(a!=null){d.a('<tr><td align="left">').a(a).a("</td></tr>")}}else{d.a("</td>");if(a){d.a("<td>").a(a).a("</td>")}d.a("</tr>")}}}function GlobalDecorator(){this.outputHeader=function(a){a.a('<table id="filtersContent" border="0" cellpadding="0" cellspacing="0"><tr><td>').a('<form id="filtersForm" name="filters">')};this.outputFooter=function(a){a.a("</form></td></tr></table>")}}function AbstractFilter(c,b,a){this.decorator=c;this.uiOrder=b;var d;this.getFieldName=function(){if(!d){var f=new StringBuilder();var e=false;if(!String.isEmpty(a)){e=true;f.a(a)}if(this.model&&this.model.expression){if(e){f.a(".")}f.a(this.model.expression)}d=f.toString()}return d};this.outputHtml=function(e){e.a('<table cellspacing="0" cellpadding="0" border="0" width="100%">');if(this.decorator){this.decorator.outputHeader(e)}this.outputHtmlContent(e);if(this.decorator){this.decorator.outputFooter(e)}e.a("</table>")};this.outputHtmlContent=function(e){};this.afterWrite=function(){}}var CompoundFilter=function(b,a){this.parent=AbstractFilter;this.parent(b,a);this.subFilters=[];this.addFilter=function(c){this.subFilters.push(c)};this.accept=function(d){for(var c=0;c<this.subFilters.length;c++){var e=this.subFilters[c];if(!e.accept(d)){return false}}return true};this.updateModel=function(){this.subFilters.forEach(function(c){c.updateModel()})};this.init=function(c){this.subFilters.forEach(function(d){d.init(c)})};this.outputHtmlContent=function(c){this.subFilters.forEach(function(d){d.outputHtml(c)})};this.afterWrite=function(){this.subFilters.forEach(function(c){c.afterWrite()})}};var CompoundComboFilter=function(b,a){this.parent=CompoundFilter;this.parent(b,a);this.isAllAccepted=function(){for(var d=0;d<this.subFilters.length;d++){var c=this.subFilters[d];if(!c.comboModel.allAccepted){return false}}return true}};var CheckBoxModel=function(a){this.expression=a;this.uniqueValues=new UniqueValues(a);this.rejectedValues=[];this.init=function(b){this.uniqueValues.init(b)};this.accept=function(b){var c=this.rejectedValues.length;if(c==0){return true}return !this.uniqueValues.reject(b,this.rejectedValues)};this.getEntries=function(){return this.uniqueValues.entries};this.setSelected=function(b,d){var c=this.rejectedValues.contains(b);if(d){if(c){this.rejectedValues.erase(b)}}else{if(!c){this.rejectedValues.push(b)}}}};var BooleanCheckBoxModel=function(f,b,d){this.expression=f;if(b==null){b="true"}if(d==null){d="false"}var c=EvalUtils.isDirectChild(f);var g=true;var e=true;var a=[new Entry(b,true),new Entry(d,false)];this.init=function(h){};this.accept=function(h){if(EvalUtils.getValue(h,this.expression,c)){return g}else{return e}};this.getEntries=function(){return a};this.setSelected=function(h,i){if(h){g=i}else{e=i}}};var CheckBoxFilter=function(d,c,b){this.parent=AbstractFilter;this.parent(c,b);this.model=d;this.checkBoxModel=d;var a=[];this.accept=function(e){return this.checkBoxModel.accept(e)};this.updateModel=function(){var e=this.checkBoxModel.getEntries();for(var g=0;g<e.length;g++){var h=e[g];var f=a[g];this.checkBoxModel.setSelected(h.key,f.checked)}};this.init=function(e){this.checkBoxModel.init(e)};this.outputHtmlContent=function(g){var f=this.checkBoxModel.getEntries();for(var h=0;h<f.length;h++){var j=f[h];var e=it_nextRef();a.push(e);g.a('<input id="').a(e).a('" type="checkbox" onClick="resultPage.updateFiltersModel();" checked><a onClick="it_InputUtils.click(\'').a(e).a("');resultPage.updateFiltersModel();\">").a(j.value).a("</a><br>")}};this.afterWrite=function(){a=a.map(function(e){return document.getElementById(e)})}};function ComboModel(b,a){this.expression=b;this.uniqueValues=new UniqueValues(b);if(typeOf(a)==="string"){a=new Entry(a,-1000)}this.acceptAllEntry=a;this.allAccepted=true;this.init=function(c){this.uniqueValues.init(c)};this.accept=function(c){if(this.allAccepted){return true}return this.uniqueValues.accept(c,this.selectedKey)};this.getSelectedKey=function(){return this.selectedKey};this.setSelectedKey=function(c){this.selectedKey=c;this.allAccepted=(c==this.acceptAllEntry.key)};this.getEntries=function(){var c=[this.acceptAllEntry];c=c.concat(this.uniqueValues.entries);return c}}var NumberComboModel=function(c,b,a){this.expression=c;this.directChild=EvalUtils.isDirectChild(c);this.mode=b;if(typeOf(a)==="string"){a=new Entry(a,-1000)}this.acceptAllEntry=a;this.allAccepted=false;this.numberFormat=null;this.init=function(f){this.entries=this.createEntries(f);if(this.numberFormat!=null){for(var d=0;d<this.entries.length;d++){var e=this.entries[d];if(!isNaN(e.value)){e.value=this.numberFormat.format(e.value)}}}if(this.acceptAllEntry!=null){this.entries.unshift(this.acceptAllEntry)}if(this.acceptAllEntry!=null){this.setSelectedKey(this.acceptAllEntry.key)}else{if(this.mode=="min"){this.setSelectedKey(this.entries[0].key)}else{if(this.mode=="max"){this.setSelectedKey(this.entries[this.entries.length-1].key)}}}};this.createEntries=function(d){return null};this.accept=function(d){if(this.allAccepted){return true}var e=parseFloat(EvalUtils.getValue(d,this.expression,this.directChild));if(isNaN(e)){return true}return this.acceptFloat(e)};this.acceptFloat=function(d){if(this.allAccepted){return true}if(this.mode=="min"){return d>=this.selectedKey}else{return d<=this.selectedKey}};this.getSelectedKey=function(){return this.selectedKey};this.setSelectedKey=function(d){var e=parseFloat(d);this.allAccepted=(this.acceptAllEntry!=null&&this.acceptAllEntry.key==e);this.selectedKey=e};this.getEntries=function(){return this.entries};this.setNumberFormat=function(d){this.numberFormat=d}};function PriceComboModel(b,a){this.parent=NumberComboModel;this.parent(b,a);this.numberFormat=new PriceFormat();this.createEntries=function(c){var f=this.findMinPrice();var d=this.findMaxPrice();var k=new Entry("min",f);var h=new Entry("max",d);var g=[];g.push(k);var j=f;for(var e=0;e<8;e++){j+=(d-f)/9;var l=new Entry(Math.round(j/10)*10,j);g.push(l)}g.push(h);return g};this.findMinPrice=function(){return EvalUtils.findMin(dataModel.elements,this.expression,this.directChild)};this.findMaxPrice=function(){return EvalUtils.findMax(dataModel.elements,this.expression,this.directChild)}}var ComboFilter=function(g,e,c,d,b){this.parent=AbstractFilter;this.parent(e,d,b);this.model=g;this.comboModel=g;var a;var f;this.accept=function(h){return this.comboModel.accept(h)};this.updateModel=function(){var h=document.filters.elements[this.getFieldName()].value;this.comboModel.setSelectedKey(h)};this.init=function(h){this.comboModel.init(h)};this.outputHtmlContent=function(j){f=it_nextRef();var k=this.getFieldName();j.a('<select data-cssPrefix="low" class="box customSelect');if(c!=null){j.a(" ").a(c)}j.a('" id="').a(f).a('" name="').a(k).a('" onChange="resultPage.updateFiltersModel();">');var h=this.comboModel.getEntries();for(var l=0;l<h.length;l++){var m=h[l];j.a('<option value="').a(m.key).a('"');if(m.key==this.comboModel.getSelectedKey()){j.a(" selected")}j.a(">").a(m.value).a("</option>")}j.a("</select>")};this.afterWrite=function(){a=$(f);var h=this.model.getEntries().length;if(h<3){a.disabled=true;a.selectedIndex=h-1}};this.isAllAccepted=function(){return this.comboModel.allAccepted}};function AdvertiserFilter(a){this.parent=CheckBoxFilter;this.parent(new CheckBoxModel("advertiserShownName"),new TitleDecorator(it_message("filters.touroperators")),a)}function SliderFilter(f,b,g,i){i=Object.append({fieldNamePrefix:null},i);this.model={expression:f};this.parent=AbstractFilter;this.parent(b,g,i.fieldNamePrefix);var c=EvalUtils.isDirectChild(f);var h=null;var d=null;var e=null;var a=null;this.inAcceptAllState=true;this.accept=function(j){if(this.inAcceptAllState){return true}var k=EvalUtils.getValue(j,f,c);return this.acceptValue(k)};this.acceptValue=function(j){return j>=e&&j<=a};this.updateModel=function(){};this.init=function(j){h=EvalUtils.findMin(j,f,c);d=EvalUtils.findMax(j,f,c);e=h;a=d};this.outputHtml=function(j){var k=this.getFieldName();j.a('<div style="position: relative; width: 160px; height: 50px; margin: 0 6px;" >').a('<div id="').a(k).a('.minLabel" style="position: absolute; top: 35px; left: -5px; width: 50px;">').a(it_message("filters.priceRange.min")).a("</div>").a('<div id="').a(k).a('.maxLabel" style="position: absolute; top: 35px; right: -4px; width: 50px; text-align: right;">').a(it_message("filters.priceRange.max")).a("</div>").a('<div id="').a(k).a('.leftLabel" class="filterKnobPrice" style="position: absolute; top: 0px; left: 0px;"></div>').a('<div id="').a(k).a('.rightLabel" class="filterKnobPrice" style="position: absolute; top: 0px; left: 50px;"></div>').a('<div id="').a(k).a('.track" class="filterTrack" style="position: absolute; top: 20px; left: 0px; width: 160px;"></div>').a('<div id="').a(k).a('.leftKnob" class="filterKnob" style="position: absolute; top: 20px; left: -5px;"></div>').a('<div id="').a(k).a('.rightKnob" class="filterKnob" style="position: absolute; top: 20px; left: 154px;"><BR/></div>')};this.afterWrite=function(){new it_RangeSlider(h,d,this.getFieldName(),Object.append({knobClassWhenPressed:"filterKnobPressed",onChange:function(j,k){if(j){a=k}else{e=k}this.inAcceptAllState=e==h&&a==d;resultPage.updateFiltersModel()}.bind(this),formatterUnit:"&#8364;"},i))}}function TimeSliderFilter(e,b,a,c){c=Object.append({formatter:function(g){var f=g/60;var h=g-f*60;return""+f+"h"+(h<10?"0"+h:h)},formatterUnit:""},c);this.parent=SliderFilter;this.parent(e,b,a,c);var d=function(i){var g=i.indexOf("h");if(g==-1){return -1}var f=i.substring(0,g).toInt();var h=i.substring(g+1,i.length());return f*60+h}}var it_ResultPage=function(c){c=Object.append({rootFilterNode:null,dataModel:null,initialResultsPerPage:25,sendResults:false,sendDateStat:false},c);var d;var b=false;var a=this;var e=function(){if(c.rootFilterNode){c.rootFilterNode.init(c.dataModel.elements);var h=[];c.rootFilterNode.callOnFilters(function(n){h.push(n)});h=h.filter(function(n){return n.uiOrder});h.sort(function(o,n){return o.uiOrder-n.uiOrder});var g=new StringBuilder();var k=new GlobalDecorator();k.outputHeader(g);h.forEach(function(n){n.outputHtml(g)});k.outputFooter(g);var j=g.toString();document.write(j);h.forEach(function(n){n.afterWrite()})}c.dataModel.filteredElements=c.dataModel.elements;var f=new Fx.Scroll(window,{duration:800});var m=$("listNFilters").getTop();var i=$$(".resultCountStatus");d=new it_PageSelector(c.dataModel.filteredElements.length,["topPageSelector","bottomPageSelector"],"topResultPerPageSelector",{initialResultsPerPage:c.initialResultsPerPage,events:{selectionChanged:function(r,C,q,B){var u=c.dataModel.filteredElements.slice(C,q);var v=new StringBuilder();var y=c.dataModel.formatter;var x=u.length;for(var z=0;z<x;z++){var p=u[z];y.format(p,v,z,x)}$("resultList").innerHTML=v.toString();if(y.afterWrite){y.afterWrite()}var s=c.dataModel.elements.length-c.dataModel.filteredElements.length;var w;if(s!=0){w=it_message("common.synthResultsDisplayed",{resultsDisplayed:c.dataModel.filteredElements.length,resultsHidden:s})}else{w=it_message("common.resultsFound",{resultsFound:c.dataModel.elements.length})}i.forEach(function(F){F.innerHTML=w});if(!B){if(!b){if(it_whitelabel){}else{f.set(0,m)}}}if(c.sendResults){var E=[];var n=$("resultList").getElements(".results");n.forEach(function(H){var G=parseInt(H.getProperty("id"));var I=c.dataModel.elements[G];var F=I.toExternalJson();F.y=H.getPosition().y;F.height=H.offsetHeight;E.push(F)});var D={page:r.getSelectedPage()+1,pageCount:r.getPageCount(),filteredElementCount:c.dataModel.filteredElements.length,elementCount:c.dataModel.elements.length,elements:E};if(c.dataModel.formData){D.form=c.dataModel.formData.toExternalJson()}if(window.encryptedUrls){var o={};D.links=o;for(var t in window.encryptedUrls){o[t]=window.encryptedUrls[t]}}var A=JSON.encode(D);parent.sendResults(A)}}}});window.resultPage=a;if(c.sendDateStat&&c.dataModel.sendDateStatRequest){var l={};l.request=c.dataModel.sendDateStatRequest(function(n){l.values=JSON.decode(n);parent.sendDateStat(JSON.encode(l))})}};this.updateFiltersModel=function(){c.rootFilterNode.callOnFilters(function(f){f.updateModel()});this.updateUI()};this.updateUI=function(){if(c.rootFilterNode){c.dataModel.filteredElements=c.rootFilterNode.applyFilter(dataModel.elements)}else{c.dataModel.filteredElements=c.dataModel.elements}c.dataModel.filteredElements.forEach(function(f){if(f.update){f.update()}});if(c.dataModel.sorter!=null){c.dataModel.filteredElements.sort(c.dataModel.sorter)}b=true;d.setResultCount(c.dataModel.filteredElements.length);b=false};e()};var it_PageSelector=function(i,m,f,g){m=new Elements(Array.from(m));if(f){f=new Elements(f)}g=Object.append({beforeAndAfterPageCount:3,initialResultsPerPage:25,maxPageGap:2,resultsPerPageValues:["5","10","25","50","100","250"],events:[]},g);var b=new Element("div");b.addEvents(g.events);var h=g.beforeAndAfterPageCount+(g.maxPageGap-1)+g.beforeAndAfterPageCount+1+g.beforeAndAfterPageCount+(g.maxPageGap-1)+g.beforeAndAfterPageCount;var n=g.initialResultsPerPage;var r=i;var d;var j=-1;var s=[];var p=false;var k=this;var q=function(){k.setResultCount(i);if(f){f.forEach(function(u){u.empty();var t=l();s.push(t);u.adopt(t)})}e()};this.setResultCount=function(t,u){r=t;a(u)};this.setResultsPerPage=function(t,u){n=t;a(u);e()};var a=function(t){d=Math.ceil(r/n);k.setSelectedPage(0,t)};var e=function(){p=true;s.forEach(function(t){it_SelectUtils.select(t,n)});p=false};this.addEvent=function(t,u){b.addEvent(t,u)};this.setSelectedPage=function(v,x){var w=j==-1;j=v;m.forEach(function(z,y){c(z)});var t=j*n;var u=Math.min(r,(j+1)*n);if(x!==false){b.fireEvent("selectionChanged",[this,t,u,w])}};var c=function(u){u.empty();var t=false;var w=false;var v;if(d>h){t=(j>=(g.beforeAndAfterPageCount+g.maxPageGap+g.beforeAndAfterPageCount));w=(j<=(d-g.beforeAndAfterPageCount-g.maxPageGap-g.beforeAndAfterPageCount-1))}if(t){for(v=0;v<g.beforeAndAfterPageCount;v++){o(v,j,u)}u.appendText("... ");for(v=(j-g.beforeAndAfterPageCount);v<j;v++){o(v,j,u)}}else{for(v=0;v<j;v++){o(v,j,u)}}if(w){for(v=j;v<=(j+g.beforeAndAfterPageCount);v++){o(v,j,u)}u.appendText("... ");for(v=(d-g.beforeAndAfterPageCount);v<d;v++){o(v,j,u)}}else{for(v=j;v<d;v++){o(v,j,u)}}};var o=function(t,w,u){var v=new Element("a",{text:t+1,"class":t==w?"listNavigatorASelected":"listNavigatorA",events:{click:function(){k.setSelectedPage(t)}}});u.adopt(v).appendText(" ")};var l=function(){var t=new Element("select",{"class":"box customSelect pageSelect","data-cssPrefix":"low",events:{change:function(){if(p){return}var w=t.options[t.selectedIndex].value;k.setResultsPerPage(w)}}});for(var u=0;u<g.resultsPerPageValues.length;u++){var v=g.resultsPerPageValues[u];it_SelectUtils.addOption(t,v,v)}return t};this.getPageCount=function(){return d};this.getSelectedPage=function(){return j};q()};
