You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1 lines
28 KiB

var EXPO=EXPO||{};EXPO.searchBlock?console.warn("WARNING: EXPO.searchBlock is already defined!"):EXPO.searchBlock=function(){var e={};e.settings={place:{id:"pw-place",selectedItemTemplate:"csb-selected",ajaxUrl:"http://hit.expomap.ru/search-form/"},subject:{id:"pw-subj",ajaxUrl:"http://hit.expomap.ru/search-form/"}},e.lang={};var t=EXPO.common,i=function(e){var t=Object.keys(e).map(function(t){return encodeURIComponent(t)+"="+encodeURIComponent(e[t])}).join("&");return"?"+t},n=function(e,t,i){e||(e=""),$.ajax({type:"GET",url:t,data:e,success:function(e){return"function"!=typeof i?e:void i(e)}})},a=function(e,t,i){return e.hasOwnProperty(t)&&(e[i]=e[t]),this},s=function(e){var t,i=0;for(t in e)e.hasOwnProperty(t)&&i++;return i},l=function(e,t){var i=$("#"+e),n="",a=EXPO.searchBlock.settings.closerText,s=EXPO.searchBlock.settings.closerTextSingle,l="";return $element=i.find(".csbs-text"),$element.length>2?$element.eq(0).text().length<t?(l=", ",n+=$element.eq(0).text()+l+$element.eq(1).text()+a.replace("_",$element.length-2)):n+=$element.eq(0).text()+a.replace("_",$element.length-1):2==$element.length?$element.eq(0).text().length+$element.eq(1).text().length<t?(l=", ",n+=$element.eq(0).text()+l+$element.eq(1).text()+" "):$element.eq(0).text().length<t?(l=", ",n+=$element.eq(0).text()+l+$element.eq(1).text()+" "):n+=$element.eq(0).text()+s.replace("_",$element.length-1):$element.length?n+=$element.eq(0).text()+" ":n=!1,n},r=$(".wait-ajax.absolute"),c=function(e){this.opt=e;var i,n=this,a=0,s=$("#"+n.opt.subjectTriggerWrapId),c=n.opt.id,o=$("#"+c),d=$(".csb-menu-input",o),h=$(".csb-selected-items",o),u=n.opt.defaultOn,p=n.opt.applyBtnClass,m=$("#"+n.opt.modalTrigger),f=function(){r.hide()},g=function(){var e,t=16;$(window).width()<1086&&(t=12),e=l(n.opt.selectedItemsContainer,t),e&&"~~text~~"!=e&&"~~text~~..."!=e?(m.text(e),m.siblings("."+n.opt.clearAllButtonClass).addClass("active")):(m.text(m.data("default")),m.siblings("."+n.opt.clearAllButtonClass).removeClass("active"))};this.$modalInst=$("#"+c),this.itemsSelected={},this.sublist={},this.$inputFilter=$("#"+n.opt.filterInputId),this.$selectedItemsWrap=h,this.isReceived=!0,$(function(){for($(".topicChecks",s).on("change",function(){$(this).prop("checked")?n._setVisible($(this).val()):n._setUnvisible($(this).val())}),a=0;a<u.length;a++)i=$("#"+u[a]),i.prop("checked",!0),i.trigger("change");o.on("click","a.trigger",function(){var e=$(this).attr("data-name"),t=$(this).attr("data-id"),i=$(this).attr("data-template-id"),a=$(this).siblings(".dna-container");return"true"==$(this).attr("data-sub")&&$(this).parent().hasClass("level1")&&(a.children().length?n._slideToggle(a,$(this).parent()):(r.show(),n._renderSublist({name:e,id:t},i,f),$(this).parent().addClass("active"))),!1}),d.on("change",function(e,i){var a=$(this).attr("id"),s=$(this).closest(".custom-radio-check"),l=$(this).closest(".level"),r=l.parent().closest(".level").children(".custom-radio-check").find(".csb-menu-input"),c=l.children(".sublist");if(!i){if(this.checked){s.addClass("active");var o=$(this).closest(".level").find(".trigger").first().text(),d={text:o,id:a};if(h.hasClass("visible")||h.addClass("visible"),n._addTag(a,d),c.length)$(".csb-menu-input",c).each(function(){var e=this.getAttribute("id"),i=($(this).closest(".level").find(".trigger").first().text(),t.closest(this,"custom-radio-check"));this.checked=!0,n._destroyTag(e),t.addClass(i,"active")});else if(l=l.parent().closest(".level"),$(".csb-menu-input",l.find(".sublist")).length==$(".csb-menu-input:checked",l.find(".sublist")).length){var u=r[0].getAttribute("id"),p=r.closest(".level").find(".trigger").first().text(),m=t.closest(this,"custom-radio-check"),f=t.closest(m.parentNode.parentNode,"level"),v={text:p,id:u};$(".csb-menu-input:checked",l.find(".sublist")).each(function(){n._destroyTag(this.getAttribute("id"))}),r.prop("checked",!0),t.addClass($(f).find(".custom-radio-check")[0],"active"),n._addTag(u,v)}}else if(s.removeClass("active"),n._destroyTag(a),h.children(".dna-clone").length||h.removeClass("visible"),c.length)$(".csb-menu-input",c).each(function(){var e=$(this).attr("id"),i=t.closest(this,"custom-radio-check");this.checked=!1,t.removeClass(i,"active"),n._destroyTag(e)});else if(r.length&&r[0].checked){var m=t.closest(r[0],"custom-radio-check"),k=t.closest(m,"level"),C=k.querySelector(".sublist");r.prop("checked",!1),t.removeClass(m,"active"),n._destroyTag(r.attr("id")),$(".csb-menu-input:checked",C).each(function(){var e=this.getAttribute("id"),i=t.closest(this,"level").querySelector(".trigger").textContent,a={text:i,id:e};n._addTag(e,a)})}g()}}),$(".csbs-del",h).on("click",function(){var e=$(this).attr("data-checkbox-id"),t=$("#"+e);return t.prop("checked",!1),t.trigger("change"),dna.destroy(n.itemsSelected[e]),h.children(".dna-clone").length||h.removeClass("visible"),!1}),$(".modal-clear",o).on("click",function(){return n.resetList(),!1}),n._autocompleteInit(),$("."+p,o).on("click",function(){return n.applyHandler(this),!1}),m.siblings("."+n.opt.clearAllButtonClass).on("click",function(){n.resetList(),EXPO.searchBlock.exhibitionField.clearValue()})})};c.prototype={_getAjax:function(e,t){var i=this;e||(e=""),r.css({display:"block"}),$.ajax({type:"GET",url:i.opt.ajaxUrl,data:e,success:function(e){return"function"!=typeof t?e:(r.hide(),void t(e))}})},_setVisible:function(e){var t=this;$("."+e,t.$modalInst).addClass("visible")},_setUnvisible:function(e){var t=this,i=$("."+e,t.$modalInst);i.find('input[type="checkbox"]').each(function(){var e=$(this);e.prop("checked")&&(e.prop("checked",!1),e.trigger("change"))}),i.find(".dna-container").each(function(){$(this).children().length&&$(this).addClass("hidden")}),i.removeClass("visible")},_checkCheckBox:function(e,t){var i,n=this;"th"==t?i=$("#tid_"+e,n.$modalInst):"tg"==t&&(i=$("#tgid_"+e,n.$modalInst)),i.length&&!i.prop("checked")&&(i.prop("checked",!0),i.trigger("change"))},check:function(e,t){var i,n=this;"th"==t?i=$("#tid_"+e,n.$modalInst):"tg"==t&&(i=$("#tgid_"+e,n.$modalInst)),i.length&&(i.prop("checked",!0),i.trigger("change"),i.parent().addClass("active"))},_autocompleteInit:function(){var e,t,i,l=this,c=l.$inputFilter.attr("data-form"),o=$("#"+l.opt.autoCompleteId),d=!0,h=function(e,t){r.show();var i=!0;for(var a in l.sublist)for(var c in l.sublist[a])c==t.item.value&&$("#tid_"+t.item.value+'[name="'+t.item.name+'"]:checked').length&&(i=!1);if($("#tid_"+t.item.value+'[name="'+t.item.name+'"]:checked').length&&(i=!1),i){var o,d=$("#tid_"+t.item.value+'[name="'+t.item.name+'"]'),h=function(e){s(e)?l._loadParentTree(e,function(){l._checkCheckBox(t.item.value,"tg"),r.hide()}):(r.hide(),console.warn())};d.length?(r.hide(),d.prop("checked",!0),d.trigger("change")):(o={id:t.item.value,name:t.item.name},n(o,l.opt.getParentUrl,h))}},u=function(t){for(e=t,i=0;i<e.length;++i)a(e[i],"text","label");for(i=0;i<e.length;++i)a(e[i],"id","value");l.$inputFilter.hasClass("ui-autocomplete-input")?l.$inputFilter.placeComplete("search",""):(l.$inputFilter.placeComplete({source:e,minLength:0,appendTo:o,select:function(e,t){l.$inputFilter.val(""),l.$inputFilter.trigger("keyup"),h(e,t),e.preventDefault()}}),l.$inputFilter.placeComplete("search",""),d=!1)};l.timeout,l.$inputFilter.attr("autocomplete","on"),l.$inputFilter.on("keyup",function(e){return t=$(this).val(),e.stopImmediatePropagation(),clearTimeout(l.timeout),t.length>2&&d?l.timeout=setTimeout(function(){n({term:t,form:c},l.opt.autoCompleteUrl,u),d=!1},1e3):0!=t.length||d||l.$inputFilter.hasClass("ui-autocomplete-input")&&(l.$inputFilter.placeComplete("destroy"),d=!0),!1}).click(function(){return!1})},_renderSublist:function(e,t,i){var n=this,a=0,s=t+"-sub",l=function(e){if(e.length){for(n.sublist[s]={},a;a<e.length;a++)n.sublist[s][e[a].id]=dna.clone(t,e[a]);i(e.length)}else r.hide()};n._getAjax(e,l)},_loadParentTree:function(e,t,i){var n,a,s=this,l=e,c=function(){r.hide(),i||0===i?t(i):t()};r.show(),n={name:l.name,id:l.id},a=$("#tid_"+l.id).closest(".level").children(".trigger").attr("data-template-id"),s._renderSublist(n,a,c)},_destroyTag:function(e){var t=this;t.itemsSelected[e]&&dna.destroy(t.itemsSelected[e])},_addTag:function(e,t){var i=this;i.itemsSelected[e]=dna.clone(i.opt.selectedItemTemplate,t)},_slideToggle:function(e,t){e.hasClass("hidden")?(e.removeClass("hidden"),t.addClass("active")):(e.addClass("hidden").find("ul").addClass("hidden"),t.removeClass("active"))},resetList:function(){var e=this;for(var t in e.itemsSelected)e.itemsSelected.hasOwnProperty(t)&&($("#"+t,e.$selfContainer).prop("checked",!1).trigger("change"),dna.destroy(e.itemsSelected[t]));$(".level.active",e.$modalInst).removeClass("active"),e.$selectedItemsWrap.removeClass("visible"),$(this.$modalInst).find("input:checkbox:checked").prop("checked",!1)},applyHandler:function(e){r.show()},selectTag:function(e){var t=!0,i=this,n=function(){if(i.isReceived=!1,e.children)$("#tgid_"+e.children.id).length&&(t=!1),$("#tid_"+e.id+":checked").length&&(t=!1),t?i._loadParentTree({name:e.name,id:e.id},function(){i.check(e.children.id,e.children.name),i.isReceived=!0}):$("#tgid_"+e.id+":checked").length||($("#tgid_"+e.children.id).prop("checked",!0),$("#tgid_"+e.children.id).trigger("change"),i.isReceived=!0);else{for(var n in i.itemsSelected)n=="tid_"+e.id&&(t=!1);$("#tid_"+e.id+":checked").length&&(t=!1),t?(i.check(e.id,e.name),i.isReceived=!0):($("#tid_"+e.id).prop("checked",!0),$("#tid_"+e.id).trigger("change"),i.isReceived=!0)}};this.wait(n)},wait:function(e,t){var i,n=this,a=function(e,t,n){e.isReceived&&(n?t(n):t(),clearInterval(i))};i=setInterval(function(){a(n,e,t)},100)}};var o=function(e){this.opt=e;var i=this,a=$("#"+i.opt.id),s=$('input[type="checkbox"]',a),c=$(".csb-selected-items",a),o=$(".csb-selected-items",a)[0],d=$("#"+i.opt.modalTrigger),h=i.opt.applyBtnClass,u="id_",p=function(){var e,t=16;$(window).width()<1086&&(t=6),e=l(i.opt.selectedItemsContainer,t),e&&"~~text~~"!=e&&"~~text~~..."!=e?(d.text(e),d.siblings("."+i.opt.clearAllButtonClass).addClass("active")):(d.text(d.data("default")),d.siblings("."+i.opt.clearAllButtonClass).removeClass("active"))};this.curDNA={},this.itemsSelected={},this.selectedWrap=c,this.$selfContainer=a,this.$modal=a,this.idPrefix=u,this.isReceived=!0,this.$inputFilter=$("#"+i.opt.filterInputId),$(function(){i._autocompleteInit(),a.on("click","a.trigger",function(){var e=$(this).attr("data-name"),n=$(this).attr("data-id"),a=this,s=$(this).attr("data-template-id"),l=$(this).siblings(".dna-container"),c=function(e,i){var n=t.closest(a,"level"),s=n.querySelector(".csb-menu-input");$(".csb-menu-input",l).each(function(){var e=t.closest(this,"custom-radio-check");this.checked?s.checked||(this.checked=!1,t.removeClass(e,"active")):s.checked&&(this.checked=!0,t.addClass(e,"active"))}),r.hide()};return"true"==$(this).attr("data-sub")&&($(this).parent().hasClass("level1")?l.children().length?i._slideToggle(l,$(this).parent()):(r.show(),i._renderSublist({name:e,id:n},s,c)):$(this).parent().hasClass("level2")&&(l.children().length?i._slideToggle(l,$(this).parent()):(i._renderNested({name:e,id:n},c,s,n),$(this).parent().addClass("active")))),!1}),s.on("change",function(e,n){var a=(this.getAttribute("id"),"custom-radio-check"),s=(t.closest(this,a),"level"),l="active",r="sublist",d="csb-menu-input",h="level1",u="csb-selected",m="csbs-del",f="trigger",g="data-checkbox-id",v=t.closest(this,s),k=0==t.hasClass(v,h)?t.closest(v.parentNode,s):v,C=k.querySelector("."+d),b=k.querySelector("."+r),_=v.querySelector("."+r),y=t.closest(this,h),x=y.querySelector("."+d),w=y.querySelector("."+r),T=function(e){var i=t.closest(e,s)||this,n=i.querySelector("."+r);$("."+d,n).each(function(){F(this)})},S=function(e){var i=t.closest(e,s)||this,n=i.querySelector("."+r);$("."+d,n).each(function(){M(this)})},I=function(e){var i,n=t.closest(e,s);i=t.hasClass(n,"level1")?n:t.closest(n.parentNode,s),t.addClass(i.querySelector("."+a),l),i.querySelector("."+d).checked=!0},B=function(e){var i=t.closest(e,s),n=t.closest(i.parentNode,s)||i;t.removeClass(n.querySelector("."+a),l),n.querySelector("."+d).checked=!1},F=function(e){var i=t.closest(e,a);t.addClass(i,l),e.checked=!0,t.addClass(k,l),t.removeClass(b,"hidden")},M=function(e){var i=t.closest(e,a),n=t.closest(e,s);t.removeClass(i,l),e.checked=!1,n.querySelector("."+r)&&!t.hasClass(n,h)&&S(e)},O=function(){var e=(t.closest(b,r),$(b).children("li").children("."+a).find("."+d+":checked")),i=e.length,n=$(b).children("li").children("."+a).find("."+d).length;return n==i&&0!=i?!0:!1},A=function(){var e=$(w).children("li").children("."+a).find("."+d+":checked"),t=e.length,i=$(w).children("li").children("."+a).find("."+d).length;return i==t&&0!=t?!0:!1},D=function(){var e=k.querySelector("."+d);return e.checked?!0:!1},P=function(e){var i,n,c,h=t.closest(e,r),p=t.closest(e,s),k=p.querySelector("."+r),C=o.querySelectorAll("."+u),b=h.querySelector("."+r)?$("."+d+":checked",h.querySelector("."+r)):null,_=(b?b.length:null,[]),y=[],x=0,w=0,T=e.getAttribute("id"),S=0,I=0,B=0,F=0;v.querySelector("."+f).innerHTML;if(k){for(i=$(k).children("li").children("."+a).find("."+d+":checked"),F;F<i.length;F++)n=i[F].getAttribute("id"),_.push(n);for(B;B<C.length;B++)n=C[B].querySelector("."+m).getAttribute(g),"~~id~~"!=n&&y.push(n);for(x=y.length,w=_.length,S=0;x>S;S++)for(c=y[S],I=0;w>I;I++)c==_[I]&&q(i[I]);for(S=0;x>S;S++)c=y[S],c==T&&q(e);k.querySelectorAll(".final-tire")&&$("."+a+"."+l,k.querySelectorAll(".final-tire")).each(function(){q($("."+d,this)[0])})}else for(S=0;x>S;S++)c=y[S],c==T&&q(T)},q=function(e){var t=e.getAttribute("id");i._destroyTag(t),j()},E=function(e){var n=t.closest(e,s),a=n.querySelector("."+f),l="",r=e.getAttribute("id"),c={};l=a.innerHTML,c={id:r,text:l},i._addTag(r,c),j()},j=function(){c.find("."+m).length&&"~~id~~"!=c.find("."+m)[0].getAttribute(g)?c.addClass("visible"):c.removeClass("visible")},N=function(e){var t=$(e).children("li").children("."+a).find("."+d+":checked");t.each(function(){E(this)})},L=function(){var e=$(b).children("li").children("."+a).find("."+d+":checked");e.each(function(){q(this)})};i.strictMode?this.checked?(F(this),P(this),E(this)):(M(this),P(this),q(this)):this.checked?($(_).find("."+d)[0]&&_&&"~~id~~"!=$(_).find("."+d)[0].value&&P(this),O()?(I(this),F(this),P(C),E(C),L(b),C.getAttribute("id")!=x.getAttribute("id")||x.checked?A()&&(F(x),P(x),E(x)):(F(x),P(x),E(x))):(F(this),P(this),E(this)),_&&T(this)):(D()?(B(this),M(this),P(C),q(C),N(b),x.checked&&(M(x),q(x),N(w))):(M(this),P(this),q(this)),_&&(S(this),P(this))),p()}),$(".csbs-del",c).on("click",function(){var e=$(this).attr("data-checkbox-id"),t=$("#"+e);return t.prop("checked",!1),t.trigger("change"),dna.destroy(i.itemsSelected[e]),c.children(".dna-clone").length||c.removeClass("visible"),!1}),$(".modal-clear",a).on("click",function(){return i.resetList(),!1}),$(".q-sel a",a).on("click",function(){var e=$(this),t=e.attr("data-name"),a=e.attr("data-id"),s={name:t,id:a},l=function(e){i._loadParentTree(e,function(){i._checkCheckBox(a)})};return $("#id_"+a).length?$("#id_"+a).prop("checked",!0).trigger("change"):n(s,i.opt.getParentUrl,l),!1}),$("."+h,a).on("click",function(){return i.applyHandler(this),!1}),d.siblings("."+i.opt.clearAllButtonClass).on("click",function(){i.resetList(),EXPO.searchBlock.placesField.clearValue()})})};o.prototype={_getAjax:function(e,t){var i=this;e||(e=""),$.ajax({type:"GET",url:i.opt.ajaxUrl,data:e,success:function(e){return"function"!=typeof t?(i.rawData=e,e):(i.rawData=e,void t(e))}})},_renderSublist:function(e,t,i){var n=this,a=0,s=t+"-sub",l=function(e){if(e.length){for(n.curDNA[s]={},a;a<e.length;a++)n.curDNA[s][e[a].id]=dna.clone(t,e[a]);$("."+t).parents(".level1").addClass("active"),i(e.length)}else r.hide()};n._getAjax(e,l)},_renderNested:function(e,t,n,a){var s=this,l=(n.substr(0,n.lastIndexOf("-")),i(e)),r=function(e){e.length&&dna.rest.get(n,s.opt.ajaxUrl+l,{callback:function(){t(e.length)},container:s.curDNA[n][a]})};s._getAjax(e,r)},_checkCheckBox:function(e,t){var i=this,n=$("#id_"+e,i.$selfContainer);t?this.strictMode=!0:this.strictMode=!1,n.length&&!n.prop("checked")&&(n.prop("checked",!0),n.trigger("change"))},selectTag:function(e){var t=!0,i=this,a=function(){for(var a in i.curDNA)for(var s in i.curDNA[a])s==e.id&&(t=!1);if($("#id_"+e.id+":checked").length&&(t=!1,$("#id_"+e.id+":checked").trigger("change")),t){i.isReceived=!1;var l,r=$("#id_"+e.id),c=function(t){i._loadParentTree(t,function(){i._checkCheckBox(e.id),i.isReceived=!0}),r=$("#id_"+e.id)};r.length?(r.prop("checked",!0),r.trigger("change"),i.isReceived=!0):(l={id:e.id,name:e.name},n(l,i.opt.getParentUrl,c))}else $("#id_"+e.id).prop("checked",!0),$("#id_"+e.id).trigger("change")};this.wait(a)},wait:function(e,t){var i,n=this,a=function(e,t,n){e.isReceived&&(n?t(n):t(),clearInterval(i))};i=setInterval(function(){a(n,e,t)},100)},check:function(e,t){var i=this,n=$("#id_"+e,i.$selfContainer);n.length&&!n.prop("checked")&&(n.prop("checked",!0),n.trigger("change"))},_slideToggle:function(e,t){e.hasClass("hidden")?(t.addClass("active"),e.removeClass("hidden")):(t.removeClass("active"),e.addClass("hidden").find("ul"))},_destroyTag:function(e){var t=this;t.itemsSelected[e]&&dna.destroy(t.itemsSelected[e])},_addTag:function(e,t){var i=this;i.itemsSelected[e]=dna.clone(i.opt.selectedItemTemplate,t)},resetList:function(){var e=this;for(var t in e.itemsSelected)e.itemsSelected.hasOwnProperty(t)&&($("#"+t,e.$selfContainer).prop("checked",!1).closest(".custom-radio-check").removeClass("active"),dna.destroy(e.itemsSelected[t]));$(".level.active",this.$modal).removeClass("active"),this._refreshText(),e.selectedWrap.removeClass("visible"),$(this.$modal).find("input:checkbox:checked").prop("checked",!1)},_autocompleteInit:function(){var e,t,i,s=this,l=s.$inputFilter.attr("data-form"),r=$("#"+s.opt.autoCompleteId),c=!0,o=function(e,t){s.selectTag({id:t.item.id,name:t.item.name}),s.$inputFilter.val(t.item.label)},d=function(t){for(e=t,i=0;i<e.length;++i)a(e[i],"text","label");for(i=0;i<e.length;++i)a(e[i],"id","value");s.$inputFilter.hasClass("ui-autocomplete-input")?s.$inputFilter.autocomplete("search",""):(s.$inputFilter.autocomplete({source:e,minLength:0,appendTo:r,select:function(e,t){o(e,t),s.$inputFilter.val(""),s.$inputFilter.trigger("keyup"),e.preventDefault()}}),s.$inputFilter.autocomplete("search",""),c=!1)};s.timeout,s.$inputFilter.attr("autocomplete","on"),s.$inputFilter.on("keyup",function(e){return t=$(this).val(),e.stopImmediatePropagation(),clearTimeout(s.timeout),t.length>2&&c?s.timeout=setTimeout(function(){n({term:t,form:l},s.opt.autoCompleteUrl,d),c=!1},1e3):0!=t.length||c||s.$inputFilter.hasClass("ui-autocomplete-input")&&(s.$inputFilter.autocomplete("destroy"),c=!0),!1}).click(function(){return!1})},_loadParentTree:function(e,t,i){var n,a,l,c,o=this,d=e,h=$("#id_"+d.id),u=function(e){var n=$("#id_"+d.id),h=0,u=function(e){r.hide(),h++,h==e&&(i||0===i?t(i):t())};r.hide(),n.length&&s(o.curDNA[a+"-sub"])==e&&(l={name:d.name,id:d.id},r.show(),c=$("#id_"+d.id).closest(".level").children(".trigger").attr("data-template-id"),o._renderNested(l,u,c,d.id))},p=function(){r.hide(),i||0===i?t(i):t()};r.show(),d.hasOwnProperty("parent")?h.length?(l={name:d.name,id:d.id},c=h.closest(".level").children(".trigger").attr("data-template-id"),o._renderNested(l,function(){r.hide(),t()},c,d.id)):(n={name:d.parent.name,id:d.parent.id},a=$("#id_"+d.parent.id).closest(".level").children(".trigger").attr("data-template-id"),o._renderSublist(n,a,u)):(n={name:d.name,id:d.id},a=$("#id_"+d.id).closest(".level").children(".trigger").attr("data-template-id"),o._renderSublist(n,a,p))},applyHandler:function(e){console.log(this)},_refreshText:function(){var e,t=$("#"+this.opt.modalTrigger),i=16;e=l(this.opt.selectedItemsContainer,i),e&&"~~text~~"!=e&&"~~text~~..."!=e?(t.text(e),t.siblings("."+this.opt.clearAllButtonClass).addClass("active")):(t.text(t.data("default")),t.siblings("."+this.opt.clearAllButtonClass).removeClass("active"))}};var d=function(e){this.opt=e;var t,i=this,n=$("#"+i.opt.dateFrom),a=$("#"+i.opt.dateTo),s=$("#"+i.opt.id),l=$("#"+i.opt.modalTrigger),r=i.opt.applyBtnClass,c=function(){var e="",t=l.data("lng-to"),i=l.data("lng-from"),s=$.trim(a.val()),r=$.trim(n.val());return""!=s&&""!=r?e=$(window).width()<1086?i+": "+r+"<br/>"+t+": "+s+".":i+": "+r+" "+t+": "+s+".":""!=s&&""==r?e=t+": "+s+".":""==s&&""!=r&&(e=i+": "+r+"."),e},o=function(e){var t=24;$(window).width()<1086&&(t=6),""!=e?(l.html(e).siblings(".trigger-label").addClass("hidden"),l.siblings("."+i.opt.clearAllButtonClass).addClass("active")):(l.html(l.data("default")).siblings(".trigger-label").removeClass("hidden"),l.siblings("."+i.opt.clearAllButtonClass).removeClass("active"))},d=function(e){var t,s,l,r,c=e.getAttribute("id"),o=e.value,d=Date.parse(o);i.validate()&&($(e).parent(".pwf-field").removeClass("err"),c==i.opt.dateFrom?(t=a[0].getAttribute("id"),s=a[0].value):(t=n[0].getAttribute("id"),s=n[0].value),l=Date.parse(s),d>l&&c==i.opt.dateFrom?(r=document.getElementById(c).value,document.getElementById(c).value=document.getElementById(t).value,document.getElementById(t).value=r):l>d&&c==i.opt.dateTo&&(r=document.getElementById(t).value,document.getElementById(t).value=document.getElementById(c).value,document.getElementById(c).value=r))};this.$dateFrom=n,this.$dateTo=a,this.$modalTrigger=l,$(function(){$.datepicker.setDefaults($.datepicker.regional.ru),n.datepicker({dateFormat:"dd.mm.yy",showOn:"button",showOtherMonths:!0,constrainInput:!0,onClose:function(e){a.datepicker("option","minDate",e)}}).inputmask("99.99.9999",{showMaskOnHover:!1,insertMode:!1,oncomplete:function(){t=this}}),a.datepicker({dateFormat:"dd.mm.yy",showOn:"button",showOtherMonths:!0,constrainInput:!0,onClose:function(e){n.datepicker("option","maxDate",e)}}).inputmask("99.99.9999",{showMaskOnHover:!1,insertMode:!1,oncomplete:function(){t=this}}),$('input[type="text"]',s).on("change",function(){var e=c();i.validate()&&o(e)}),$("."+r,s).on("click",function(){return t&&d(t),i.applyHandler(this),!1}),l.siblings("."+i.opt.clearAllButtonClass).on("click",function(){$(this).removeClass("active"),i.resetList()})})};d.prototype={resetList:function(){this.$dateFrom.val(""),this.$dateTo.val(""),this.$modalTrigger.text(this.$modalTrigger.attr("data-default"))},validate:function(){var e=this.$dateTo.val(),t=this.$dateFrom.val(),i=e.split("."),n=t.split("."),a=[],s=!0;return a[0]=Date.parse(i[1]+"."+i[0]+"."+i[2]),a[1]=Date.parse(n[1]+"."+n[0]+"."+n[2]),a[0]||""==$.trim(e)?this.$dateTo.parent(".pwf-field").removeClass("err"):(this.$dateTo.parent(".pwf-field").addClass("err"),s=!1),a[1]||""==$.trim(t)?this.$dateFrom.parent(".pwf-field").removeClass("err"):(this.$dateFrom.parent(".pwf-field").addClass("err"),s=!1),s},applyHandler:function(e){}};var h=function(e){this.opt=e,this.opt.anyChar=!1;var i=this,s=!0;this.$field=$("#"+i.opt.id),this.DOMcompleteWrap=document.getElementById(i.opt.autoCompleteWrapId),this.afterClear,this.rawData={items:[],set:function(e){this.items=e,this._rawDataChange()},get:function(){return this.items},_rawDataChange:function(e){var t,i=this;for(t=0;t<i.items.length;t++)a(i.items[t],"text","label"),a(i.items[t],"id","value")}},this.completeName="autocomplete",this.firstComplete=!0,this.$field.attr("autocomplete","off"),this.timeout,i.$field.on("keyup",function(e){var a;return text=$(this).val(),e.stopImmediatePropagation(),clearTimeout(i.timeout),a=i.dataForm?{term:text,form:i.dataForm}:{term:text},i.opt.anyChar?text.length>2?i.timeout=setTimeout(function(){n(a,i.opt.autoCompleteUrl,function(e){i.$field.hasClass("ui-autocomplete-input")&&i.$field[i.completeName]("destroy"),i.rawData.set(e),i._initAutoComplete(),i.showList("")})},1e3):0===text.length&&i.$field.hasClass("ui-autocomplete-input")&&(i.$field[i.completeName]("destroy"),t.removeClass(i.DOMcompleteWrap,"full-visible"),i._resetmodals(i.afterClear)):text.length>2&&s?i.timeout=setTimeout(function(){n(a,i.opt.autoCompleteUrl,function(e){i.rawData.set(e),i._initAutoComplete(),i.showList("")}),s=!1},1e3):0!=text.length||s?i.$field.hasClass("ui-autocomplete-input")&&i.showList(text):i.$field.hasClass("ui-autocomplete-input")&&(i.$field[i.completeName]("destroy"),t.removeClass(i.DOMcompleteWrap,"full-visible"),i._resetmodals(i.afterClear),s=!0),!1}).click(function(){return!1})};return h.prototype={_initAutoComplete:function(){var e=this;e.$field[e.completeName]({source:e.rawData.get(),minLength:0,appendTo:e.DOMcompleteWrap,select:function(t,i){e._afterSelect(t,i)},close:function(){t.removeClass(e.DOMcompleteWrap,"full-visible")},open:function(){t.addClass(e.DOMcompleteWrap,"full-visible")}})},_afterSelect:function(e,t){var i=this;e.preventDefault(),t.item.url?window.location=t.item.url:t.item.label.length&&(i.$field[0].value=t.item.label,i.selectCheckBoxes(t.item.id,t.item.name))},_resetmodals:function(e){return e?void e():0},selectHandler:function(){},selectCheckBoxes:function(e,t){},showList:function(e){self=this,this.$field[self.completeName]("search",e)},pullData:function(e){},clearValue:function(){this.$field.val("")}},e.init=function(e){$.extend(this.lang,e.lang),e.lang=null,$.extend(this.settings,e);var i=this,a=function(){$(i.DOMform).find('input[name="~~name~~"]').remove()};"None"!=this.settings.searchData&&this.settings.searchData&&(this.previousSearch=JSON.parse(this.settings.searchData)),this.DOMform=document.getElementById(this.settings.formId),$(this.DOMform).on("submit",function(){a()}),$.widget("custom.exibitionComplete",$.ui.autocomplete,{_renderMenu:function(e,t){var i=this,n="";$.each(t,function(t,a){a.cat!=n&&a.cat&&(e.append("<li class='ui-autocomplete-category'>"+a.cat+"</li>"),n=a.cat),i._renderItemData(e,a)})}}),$.widget("custom.exibitionComplete",$.ui.autocomplete,{_renderMenu:function(e,t){var i=this,n="";$.each(t,function(t,a){a.cat!=n&&a.cat&&(e.append("<li class='ui-autocomplete-category'>"+a.cat+"</li>"),n=a.cat),i._renderItemData(e,a)})}}),$.widget("custom.placeComplete",$.ui.autocomplete,{_renderItem:function(e,t){return $("<li>").append($("<a>").text(t.label)).append('<span class="subj-category"> ('+t.cat+")</span>").appendTo(e)}}),this.exhibitionField=new h(i.settings.firstField),this.exhibitionField.completeName="exibitionComplete",this.exhibitionField.opt.anyChar=!0,this.placesModal=new o(i.settings.place),this.subjModal=new c(i.settings.subject),this.periodModal=new d(i.settings.period),this.exhibitionField.selectCheckBoxes=function(e,t){var i,a,s=this,l=t;"th"==t?i=document.getElementById(s.opt.prefix+e):"tg"==t&&(i=document.getElementById(s.opt.prefixInner+e),l="th"),r.show(),i?(r.hide(),EXPO.searchBlock.subjModal.resetList(),$(i).prop("checked",!0),$(i).trigger("change")):(a={name:t,id:e},EXPO.searchBlock.subjModal.resetList(),n(a,EXPO.searchBlock.subjModal.opt.getParentUrl,function(i){EXPO.searchBlock.subjModal._loadParentTree(i,function(){EXPO.searchBlock.subjModal._checkCheckBox(e,t)})}))},this.placesField=new h(i.settings.placeField),this.placesField.dataForm=EXPO.searchBlock.placesModal.$inputFilter.attr("data-form"),this.placesField.selectCheckBoxes=function(e,t){var i,a,s=this;i=document.getElementById(s.opt.prefix+e),i?(r.hide(),EXPO.searchBlock.placesModal.resetList(),$(i).prop("checked",!0),$(i).trigger("change")):(a={name:t,id:e},EXPO.searchBlock.placesModal.resetList(),n(a,EXPO.searchBlock.placesModal.opt.getParentUrl,function(t){EXPO.searchBlock.placesModal._loadParentTree(t,function(){EXPO.searchBlock.placesModal._checkCheckBox(e,!0)})}))},this.exhibitionField.afterClear=function(){i.subjModal.resetList()},this.placesField.afterClear=function(){i.placesModal.resetList()},this.modalWindow=new t.Modal(i.settings.modal),this.periodModal.applyHandler=function(){this.validate()&&(r.show(),$(i.DOMform).submit())},this.placesModal.applyHandler=function(){r.show(),$(i.DOMform).submit()},this.subjModal.applyHandler=function(){r.show(),$(i.DOMform).submit()},$("."+i.settings.modalTriggerClass).on("click",function(e){return e.preventDefault(),i.modalWindow.pullData(this.getAttribute("href")),i.modalWindow.open(),!1}),$(function(){if(i.previousSearch)for(var e=0;e<i.previousSearch.inputs.length;e++)"th"==i.previousSearch.inputs[e].name?i.subjModal.selectTag(i.previousSearch.inputs[e]):"area"==i.previousSearch.inputs[e].name&&(i.previousSearch.inputs[e].children&&i.previousSearch.inputs[e].children.children?i.placesModal.selectTag(i.previousSearch.inputs[e].children.children):i.previousSearch.inputs[e].children?i.placesModal.selectTag(i.previousSearch.inputs[e].children):i.previousSearch.inputs[e]&&i.placesModal.selectTag(i.previousSearch.inputs[e]))})},e}();