var Filter=Singleton({FilterManager:Class({_getMoreOptions:[],_UDFCache:{},_oldFilter:null,_prevFilter:null,udFilterData:[],udSelectEventHandler:nullFunc,constructor:function(){this.enhanceFilterTabs();this.userdefSelInit();this.titleHelpersInit();this.preInitCalendars();this.extFilterSwitchesInit()},extFilterSwitchesInit:function(){var B=globals.openExtFilter,A,C;forEach($$("#filter-table .fltswitch"),function(D){if(Style.hasClass(D,"fltswitch-more")){Event.observe(D,"click",Event.bindStop(this.openMoreFilter,this))}else{Event.observe(D,"click",Event.bindStop(this.closeMoreFilters,this))}},this);if(B!=null){forEach($$("#filter-table .filterrow-moreless .fltswitch-more"),function(D){if(D.getAttribute("filterid")==B){this.openMoreFilter(null,D)}},this)}},preInitCalendars:function(){forEach($$("#filter-table .calendar-link"),function(A){Event.observe(A,"click",Event.bindStop(Filter.DPManager.createOrOpenDP,Filter.DPManager))},this);forEach(globals.dpWithJSON,function(A){if(Filter.DPManager["unit_"+A+"_datepickerJSON"].open){Filter.DPManager.createOrOpenDP(null,A);Style.set($$("#unit_"+A+"_datepicker_frame .dpNext")[0],{display:"none"});Style.set($$("#unit_"+A+"_datepicker_frame .dpPrev")[0],{display:"none"});Style.set($$(".dpHeader a")[0],{display:"none"});Style.set($$(".dpHeader")[0],{backgroundImage:"none"})}else{Style.set($("unit_"+A+"_service"),{display:"none"})}},this)},enhanceFilterTabs:function(){var A;forEach($$("#tab_list li>div"),function(B){if(A=Query.selectNode("a",B).href){Event.observe(B,"click",Event.bindStop(function(){window.open(B.getElementsByTagName("a")[0].href,"_self")},B))}},this)},userdefSelInit:function(){var A=$("select_user_defined"),B=app.CookieManager.readCookie("UDFilter");if(B){A.value=B}A.disabled=true;if(A){new AjaxRequest(ParentURL+"/getMoreOptionsVM.jsp",{method:"GET",parameters:"rnd="+Math.random()+"&skin="+globals.skin,onSuccess:bind(this.userdefColumnResp,this)})}Event.observe($("select_user_defined"),"change",Event.bindStop(this.userdefSelOnChange,this))},userdefSelOnChange:function(C,B){var A=$("select_user_defined"),D=A.options[A.selectedIndex].value,E;app.CookieManager.createCookie("UDFilter",D);forEach($$("#userdef_container .userdefbox"),function(F){Style.hide(F)});E=$("userdefbox_"+D);Style.show(E);if(E.getAttribute("more")=="true"){Style.show("userdef_switch")}else{Style.hide("userdef_switch")}forEach($$("#unit_LAST_switches a.fltswitch"),function(F){F.setAttribute("filterid",D)});if(!B){this.closeMoreFilters()}},userdefColumnResp:function(A){$("userdef_container").innerHTML=A.responseText;$("select_user_defined").disabled=false;this.userdefSelOnChange(null,true)},titleHelpersInit:function(){forEach($$("#filter-table .titlehelper"),function(A){Event.observe(A,"mouseover",Event.bind(function(){Style.addClass(A,"titlehelper-hover")},A));Event.observe(A,"mouseout",Event.bind(function(){Style.removeClass(A,"titlehelper-hover")},A))})},openMoreFilter:function(C,G){var A=G?G:Event.element(C),D=A.getAttribute("filterid"),E=A.getAttribute("colindex"),B=$("extended_f_"+D),H=(B.innerHTML.replace(/\s/g,"").length==0)?true:false,I=$("unit_"+E+"_switches"),F;this.closeMoreFilters(null);if(Style.hasClass(I,"last")){F="userdef_column"}else{F="unit_"+E+"_content"}Style.addClass(I,"withmore");Style.addClass(F,"withmore");Style.addClass(I.parentNode,"hasmore");Style.show(B);if(G){this.recalcAlphabetLinks(B)}if(H){Style.addClass(B,"extfilt-loading");new AjaxRequest(ParentURL+"/getMoreOptionsVMextReqst.jsp",{method:"GET",parameters:{filter:D,rand:Math.random(),skin:globals.skin},onSuccess:bind(function(J){B.innerHTML=J.responseText;Style.removeClass(B,"extfilt-loading");this.recalcAlphabetLinks(B)},this)},this)}},closeMoreFilters:function(A){forEach($$("#extended_filters .exf-cont"),function(B){Style.hide(B)});forEach($$("#filter-table .withmore"),function(B){Style.removeClass(B,"withmore")});Style.removeClass(Query.selectNode("#filter-table .filterrow-moreless"),"hasmore")},recalcAlphabetLinks:function(A){var C,B,D,C=null;if(D=Query.selectNode("input.JS-letter",A)){C=D.value.toUpperCase()}if(!Query.selectNode(".fext-letterlist .active",A)){B=Query.selectNode(".fext-letterlist .JS-ltr",A);if((B)&&Style.hasClass(B,"JS-ltr-"+C)){Style.addClass(B,"active")}}forEach($$(".fext-lettertitle .letter",A),function(E){C=E.innerHTML.replace(/^\s+|\s+$/g,"");if(B=Query.selectNode(".JS-ltr-"+C,A)){Style.removeClass(B,"inactive");B.setAttribute("letter",C);Event.observe(B,"click",Event.bindStop(this.clickAlphabetLink,this))}},this);Event.observe(Query.selectNode("a.showall",A),"click",Event.bindStop(this.clickAlphabetLink,this))},clickAlphabetLink:function(C){var D=Event.element(C),B=D.getAttribute("letter"),A=Query.up(D,"div.exf-cont");if(Style.hasClass(D,"showall")){B="+"}else{B=B.toLowerCase()}if(B=="+"){forEach($$(".JS-letterbox",A),function(E){E.style.display="block"})}else{forEach($$(".JS-letterbox",A),function(E){Style.hide(E)});Query.selectNode(".JS-lb-"+B,A).style.display="block"}forEach($$(".fext-letterlist a",A),function(E){Style.removeClass(E,"active")});Style.addClass(D,"active")}}),DPManager:Singleton({init:function(){this.datePickers={};var A=this;this.DP=Class(liligo.DatePicker,{constructor:function(B){this.unitRow=B.unitRow;this._base_constructor(B)},onKey:nullFunc,close:function(){this._base_close()},buildMonth:function(L){L.header.span.innerHTML=DateTools.format(L.value,this.topFormat,this.locale);for(var J=L.tbody.rows.length-1;J>=0;J--){L.tbody.deleteRow(J)}var R=L.tbody.insertRow(-1);var C=L.value.getDay()-1;if(C==-1){C=6}var N=this.firstDay;if(this.firstDay!=0){C=(C==6)?0:C+1}for(var K=true;C>0;C--){var O=R.insertCell(-1);O.innerHTML="<span></span>";if(K){O.className="first";K=false}if((N==5)||(N==6)){O.className+=" weekend"}if(++N==7){N=0}}var O,M=(this.firstDay==0)?6:5,D=new Date(),P=this.value.getTime();D=DateTools.getDayDate(new Date());D=D.getTime();var I;if(this.direction==DatePicker.DIR_RET){I=DateTools.addDays(this.depPicker.value,this.minDays).getTime()
}else{I=D}var G=new Date(L.value.getFullYear(),L.value.getMonth(),1);var E=DateTools.getDaysInMonth(L.value);for(var H=1;H<E+1;H++){if((N==this.firstDay)&&(R.cells.length!=0)){R=L.tbody.insertRow(-1)}O=R.insertCell(-1);if(N==this.firstDay){O.className="first"}else{if(N==M){O.className="last"}}G.setDate(H);var F=G.getTime();if(F==D){O.className+=" now"}var B=Filter.DPManager["unit_"+this.unitRow+"_datepickerJSON"].dateValues[String(G.getFullYear())+((G.getMonth()+1<10)?"0":"")+String(G.getMonth()+1)+((G.getDate()<10)?"0":"")+String(G.getDate())];if(typeof B=="undefined"){O.className+=" disabled";var Q=allLabels[this.locale];if(this.direction==DatePicker.DIR_RET){O.title=Q.datepicker_return_before_depart||Q.return_before_depart}else{if(this.direction==DatePicker.DIR_DEP){O.title=Q.datepicker_date_not_available||Q.date_not_available}}O.innerHTML="<span>"+H+"</span>"}else{O.innerHTML='<a href="'+B+'" onmouseup="liligo.DatePicker.actual.dontBlur=false" onmouseover="liligo.DatePicker.mouseOver(this);" onmouseout="liligo.DatePicker.mouseOut(this);">'+H+"</a>"}if((N==5)||(N==6)){O.className+=" weekend"}O.firstChild.value=F;if(F==P){O.className+=" actual"}if(++N==7){N=0}}if(N!=this.firstDay){for(;N<=M;N++){O=R.insertCell(-1);O.innerHTML="<span></span>";if(N==M){O.className="last"}if((N==5)||(N==6)){O.className+=" weekend"}}}if(this.rowsMax<L.tbody.rows.length){this.rowsMax=L.tbody.rows.length}}})},createOrOpenDP:function(A,B){var B=(typeof (B)=="undefined")?Event.element(A).id.match(/_(.+?)_/)[1]:B;if(typeof this.datePickers["dp_"+B]=="undefined"){if(typeof Filter.DPManager["unit_"+B+"_datepickerJSON"]=="undefined"){Style.addClass("unit_"+B+"_content","dp-loading");Style.addClass("unit_"+B+"_switches","dp-loading");new AjaxRequest(Filter.DPManager["unit_"+B+"_datepickerLink"],{method:"GET",onComplete:bind(function(C){Filter.DPManager["unit_"+B+"_datepickerJSON"]=JSON.decode(C.responseText);this.datePickerBuilder(B);Style.removeClass("unit_"+B+"_content","dp-loading");Style.removeClass("unit_"+B+"_switches","dp-loading")},this)})}else{this.datePickerBuilder(B)}}else{this.openDP("dp_"+B)}},openDP:function(B){var A=B.replace(/[^0-9]*/,"");Style.addClass("unit_"+A+"_content","dp-visible");Style.addClass("unit_"+A+"_switches","dp-visible");this.datePickers[B].open()},datePickerBuilder:function(A){this.datePickers["dp_"+A]=new this.DP({unitRow:A,field:"unit_"+A+"_service_link",opener:"unit_"+A+"_service_link",lang:liligo.labels[liligo.getLang()],months:1,container:"unit_"+A+"_datepicker_frame",value:new Date(Filter.DPManager["unit_"+A+"_datepickerJSON"].initDate.substring(0,4)+"/"+Filter.DPManager["unit_"+A+"_datepickerJSON"].initDate.substring(4,6)+"/01")});this.openDP("dp_"+A);setTimeout(bind(function(){Event.observe($$("#unit_"+A+"_datepicker_frame a")[0],"click",bind(this.resetDP,this,A,null))},this),0)},resetDP:function(A){Style.removeClass("unit_"+A+"_content","dp-visible");Style.removeClass("unit_"+A+"_switches","dp-visible")}}),initialize:function(){this.filterManager=new this.FilterManager();this.unitsNum=$$(".filterbox-item").length-1},goLink:function(A,B){location.href=B},openURL:function(A){window.open(A,"_self")},buildLink:function(C,F){if(!F.match(/filters=([\w,]+)/)){location.href=F;return }var E=F.match(/filters=([\w,]+)/)[1].split(",");var D=E[0],B=E[1];if(C.id==""||!Style.hasClass(Query.up(C,".filterbox-item"),"with-more")){}if(typeof Filter.filterManager._UDFCache[D]!="undefined"&&typeof Filter.filterManager._UDFCache[D][0].options[B].link!="undefined"){var A=Filter.filterManager._UDFCache[D][0].options[B].link;location.href=A}else{if(typeof Filter.filterManager._UDFCache[D]!="undefined"&&typeof Filter.filterManager._UDFCache[D][0].options[B].filter!="undefined"){var A=Filter.filterManager._UDFCache[D][0].options[B].filter;location.href=A}else{location.href=F}}}})
