var regionFormOpened = faderOpened = searchOpened = modalOpened = topMenuStartItem = 0; var jquery_libs_loaded, jivoOpened, showHDRonMobile, sideMenuClosePressed = false; var searchTO = resizeTO = openedModalData = null; var openedModalStack = []; var modalData = {}; var modalFaderIndex = -1; var windowScroll = windowScroll_prev = windowScroll_instant = $(window).scrollTop(); var modalToggleTO, hideCategorySideTO, sideCategoryNavigationTO, scrollStartTO, hdrShowTO, modalAnimationTO, sideFiltersTO, catalogModal, authModal; function categoryFilterPosition(to = true){ toLen = (to==true?250:10); if(currentPage=='category'){ clearTimeout(sideFiltersTO); sideFiltersTO = setTimeout(()=>{ var filtersContainer = $(".category .snippet-cell.filters"); var el = $(".category .snippet-list.listing_main .snippet-cell.itm").last(); // уменьшаем высоту .filters // $(filtersContainer).css('height',$(".snippet-cell.filters .filters-inner").height()+50); var startRow = 0; var prevOffset = 0; var el = $(".category .snippet-list.listing_main .snippet-cell.itm").last(); var OffsetCorrection = 0; $(".category .snippet-list.listing_main .snippet-cell.itm").each(function(i,el){ if(prevOffset<$(el).offset().top){ prevOffset = $(el).offset().top; startRow = startRow+1; if(startRow==1){ offsetCorrection = $(el).height(); }else if($(el).offset().top + $(el).height()>$(filtersContainer).offset().top+$(".snippet-cell.filters .filters-inner").height()+offsetCorrection){ $(filtersContainer).css({'grid-area':'2 / 1 / '+startRow+' / 1'}); return false; } } }); },toLen); } } function sideBarPosition(){ if($(".hdr").hasClass('hidable') && ($(".hdr").hasClass('fixed') == false || $(".hdr").hasClass('not_shown') == true)){ if($(window).scrollTop()>$('.up').outerHeight()+$(".hdr").outerHeight()){ $(".category_side").addClass('fixed').css({top:$('.topmenu_placeholder').outerHeight(),height:'auto'}); }else{ $(".category_side").css({top:0,height:$(window).height() - ( $('.hdr_placeholder').outerHeight()+$('.topmenu_placeholder').outerHeight()+$('.up').outerHeight()-$(window).scrollTop() ) }).removeClass('fixed'); } }else{ if($(window).scrollTop()>$('.up').outerHeight()){ $(".category_side").addClass('fixed').css({top:$('.hdr_placeholder').height()+$('.topmenu_placeholder').outerHeight(),height:'auto'}); }else{ $(".category_side").css({top:0,height:$(window).height() - ( $('.hdr_placeholder').height()+$('.topmenu_placeholder').outerHeight()+$('.up').outerHeight()-$(window).scrollTop() ) }).removeClass('fixed'); } } } function underfloatingFaderPosition(){ if($('.fader').hasClass('underFloating')){ if($(".hdr").hasClass('hidable') && ($(".hdr").hasClass('fixed') == false || $(".hdr").hasClass('not_shown') == true)){ $(".fader.underFloating").css({top:$('.up').outerHeight()}); }else{ if($(window).scrollTop()>$('.up').outerHeight()){ $(".fader.underFloating").css({top:$('.hdr_placeholder').height()}); }else{ $(".fader.underFloating").css({top:$('.up').outerHeight()}); } } } } function interfaceResize(){ if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(navigator.userAgent.substr(0,4))) { mobile = true; }else{ mobile = false; } clearTimeout(resizeTO); $(".topmenu").css('width','auto'); resizeTO = setTimeout(()=>{ $(".hdr_placeholder").height($('.hdr').height()); $(".topmenu_placeholder").height($('.topmenu_wrapper').height()); $(".cat_container").css({top:$('.hdr').offset().top+$('.hdr').height()-$(window).scrollTop()}); $(".auth_container").css({top:$('.hdr').offset().top+$('.hdr').outerHeight()-$(window).scrollTop()}); var w = 0; $(".topmenu li").each(function(i,el){ w = w + $(el).width(); }); $(".topmenu").css('min-width',w); if(jquery_libs_loaded==true){ $('.topmenu_wrapper .sly_container').sly('reload'); } sideBarPosition(); underfloatingFaderPosition(); if(mobile==true){ $(".stickyRight-no").removeClass('stickyRight-no').addClass('stickyRight'); $(".stickyLeft-no").removeClass('stickyLeft-no').addClass('stickyLeft'); catalogModal.setTrigger('click'); authModal.setTrigger('click'); }else{ $(".stickyRight").addClass('stickyRight-no').removeClass('stickyRight'); $(".stickyLeft").addClass('stickyLeft-no').removeClass('stickyLeft'); catalogModal.setTrigger('mousestop'); authModal.setTrigger('mousestop'); } categoryFilterPosition(); },210); } function topmenuSelectOnReload(eq,voidParam = null){ $(".topmenu .top_item").removeClass('active'); $(".topmenu .top_item.reloadListingLinkCont").eq(eq).addClass('active'); } function openCategorySideElement_prep(elClass,scrollTop = false){ if(scrollTop==false || scrollTop==null){ scrollTop = $(".category_side .buttons .element."+elClass+" .menu .container").scrollTop(); } var ret = {param1:elClass,param2:scrollTop}; return ret; } function openCategorySideElement(elClass,scrollTop = false){ clearTimeout(hideCategorySideTO); clearTimeout(sideCategoryNavigationTO); $(".category_side").addClass(['noEase','opened']); $(".category_side .buttons .element."+elClass).addClass(['opened','noEase']); if(scrollTop!=false && scrollTop!=null){ sideBarPosition(); $(".category_side .buttons .element."+elClass+" .menu .container").scrollTop(scrollTop); } setTimeout(()=>{ $(".category_side").removeClass('noEase'); $(".category_side .buttons .element").removeClass('noEase'); },250); } function closeCategorySideElement(elClass,voidParam = null){ clearTimeout(hideCategorySideTO); clearTimeout(sideCategoryNavigationTO); $(".category_side").addClass(['noEase','opened']); $(".category_side .buttons .element").addClass('noEase'); $(".category_side .buttons .element").removeClass('opened'); $(".category_side .buttons .element."+elClass).addClass('opened'); setTimeout(()=>{ $(".category_side").removeClass('noEase').removeClass('opened'); $(".category_side .buttons .element").removeClass('noEase').removeClass('opened'); },250); } $(window).on('jquery_libs_loaded',function(){ categoryFilterPosition(); $('.topmenu_wrapper .sly_container').sly({ slidee: $('.topmenu_wrapper .sly_container ul.topmenu'), horizontal: 1, itemNav: 'basic', activateOn: 'load', mouseDragging: 1, touchDragging: 1, releaseSwing: 1, startAt: 0, smart: 1, scrollBy: 0, speed: 250, elasticBounds: 1, activeClass: 'sly_active', nextPage: $(".topmenu_wrapper .more.next"), activatePageOn: 'click', },{ load: function(){ var elsWidth = $('.topmenu_wrapper .sly_container ul.topmenu').eq(0).outerWidth(); var containerWidth = $('.topmenu_wrapper .autowidth').eq(0).outerWidth(); if(elsWidthlastElOffset){ $(".topmenu_wrapper .more").removeClass('next').addClass('goToStart'); $(".topmenu_wrapper .more i").removeClass(['fa-regular','fa-arrow-right-long']).addClass(['fa-solid','fa-backward-fast']); }else{ $(".topmenu_wrapper .more").addClass('next').removeClass('goToStart'); $(".topmenu_wrapper .more i").addClass(['fa-regular','fa-arrow-right-long']).removeClass(['fa-solid','fa-backward-fast']); } } } }); }); function stickHeader(){ if($(".hdr").hasClass('shown')==false || $(".hdr").hasClass('fixed')==false){ $(".hdr").removeClass('not_shown').addClass(['fixed','shown']).css({top:0}); } } function hideStickHeader(){ if($(".hdr").hasClass('fixed') && ($(".hdr").hasClass('shown')==true || $(".hdr").hasClass('not_shown')==false)){ $(".hdr").removeClass(['shown']).addClass('not_shown').css({top:$('.hdr').outerHeight()*-1}); } } function unStickHeader(){ $(".hdr").removeClass(['fixed','not_shown']).css({top:0}); } function stickyHeaders(){ windowScroll = $(window).scrollTop(); var wh = $(window).height(); var ww = $(window).outerWidth(); var hdrHeight = $('.hdr').outerHeight(); var topmenuHeight = $('.topmenu').outerHeight(); var viewportHdrPlaceholderOffset = $(window).scrollTop()-$('.hdr_placeholder').offset().top; var tolerance = 0; var stickyHeader = true; var scrollDirection = null; // Распознаем скролл if(windowScroll > windowScroll_instant){ /* вниз */ if(windowScroll-windowScroll_instant>tolerance){ scrollDirection = 'down'; clearTimeout(scrollStartTO); windowScroll_prev = windowScroll; $(window).trigger('my_scroll'); $(window).trigger('my_scroll_down'); }else{ return false; } }else{ /* И вверх */ scrollDirection = 'up'; // Обновляем значение предыдущего скролла окна после остановки скроллинга вверх (300 мс), чтобы менюшка не пропадала clearTimeout(scrollStartTO); scrollStartTO = setTimeout(()=>{ windowScroll_prev = windowScroll; },300); $(window).trigger('my_scroll'); $(window).trigger('my_scroll_up'); } windowScroll_instant = windowScroll; if(scrollDirection){ if(scrollDirection == 'down'){ // Если проскроллили вниз, то скрываем навигацию на девайсах с маленьким экраном var stickyHeader = (ww>1024?true:false); }else{ // Если проскроллили более чем на 50 пикселей вверх, то показываем навигацию на девайсах с маленьким экраном и на остальных девайсах var stickyHeader = (windowScroll_prev-windowScroll>50 && ww<=1024?true:$(".hdr").hasClass('shown')?true:false); } } if(ww<=1024){ $(".hdr").addClass('hidable'); }else{ $(".hdr").removeClass('hidable'); } // Если показывать хедер нужно offset = $(".hdr").hasClass('shown') || ww>1024 ? 0 : hdrHeight + topmenuHeight; if(stickyHeader==true){ viewportHdrPlaceholderOffset>offset ? stickHeader() : unStickHeader(); }else{ hideStickHeader(); } } $(window).on('load',function(){ windowScroll_prev = windowScroll_instant = $(window).scrollTop(); stickyHeaders(true); $(window).on('scroll',()=>{ stickyHeaders(); cumulativeOffset = 0; if($(".hdr").hasClass('fixed') && $(".hdr").hasClass('shown')){ cumulativeOffset = cumulativeOffset + $(".hdr").outerHeight(); } if(currentPage=='category'){ var coeff = $(window).scrollTop()-$('.topmenu_placeholder').offset().top + cumulativeOffset; if(coeff>0){ $(".hdr").addClass('thinShadow'); if($(".hdr").hasClass('fixed') && $(".hdr").hasClass('hidable')){ $(".topmenu_wrapper").addClass('transition_animate'); }else{ $(".topmenu_wrapper").removeClass('transition_animate'); } $(".topmenu_wrapper").css({top:cumulativeOffset}).addClass('fixed'); }else{ $(".hdr").removeClass('thinShadow'); $(".topmenu_wrapper").removeClass('transition_animate'); $(".topmenu_wrapper").css({top:0}).removeClass('fixed'); } sideBarPosition(); categoryFilterPosition(false); } $(".cat_container").css({top:$('.hdr').offset().top+$('.hdr').height()-$(window).scrollTop()}); $(".auth_container").css({top:$('.hdr').offset().top+$('.hdr').height()-$(window).scrollTop()}); }); }); function close_category_side_to(){ clearTimeout(hideCategorySideTO); clearTimeout(sideCategoryNavigationTO); hideCategorySideTO = setTimeout(close_category_side,400); } function close_category_side(){ sideMenuClosePressed = true; clearTimeout(hideCategorySideTO); clearTimeout(sideCategoryNavigationTO); $(".category_side").removeClass('opened'); $(".category_side .buttons .element").removeClass('opened'); setTimeout(()=>{ sideMenuClosePressed = false; },250); if(mobile==true){ closeFader(); } } $(document).ready(()=>{ function sideCategoryTrigger(){ $(".wrapper").on('mouseover click',".category_side .buttons .element",function(){ clearTimeout(sideCategoryNavigationTO); if(sideMenuClosePressed==false){ clearTimeout(sideCategoryNavigationTO); that = this; sideCategoryNavigationTO = setTimeout(()=>{ if(mobile==true){ openFader(true); } $(".category_side").addClass('opened'); $(".category_side .buttons .element").removeClass('opened'); $(that).addClass('opened'); },100); } }); } $(document).on('press_27',close_category_side); $(document).on('mouseleave',".category_side",close_category_side_to); $(".category_side .buttons .element.opened .icon").on('click',function(e){ if(mobile==true){ e.preventDefault(); close_category_side(); } return false;} ); $(".category_side .buttons .element.cb-close").on('click',function(e){ e.preventDefault(); close_category_side(); return false; }); $(".topmenu_wrapper").on('click',".more.goToStart",function(){ $('.topmenu_wrapper .sly_container').sly('toStart',$('.topmenu_wrapper .sly_container ul.topmenu li').eq(0)); }); $(".topmenu").css({'padding-right':Math.round($(".topmenu_wrapper .more").outerWidth()+40)}); $(window).on('resize mainContentJSONloaded load orientationchange',interfaceResize); if(jquery_libs_loaded){ sideCategoryTrigger(); }else{ $(window).on('jquery_libs_loaded',sideCategoryTrigger); } $(document).on('mouseenter click',".category_side",function(){ clearTimeout(hideCategorySideTO); }) // Когда кликаем по фейдеру - посылаем ESC $(document).on('click',".fader",()=>{ $(document).trigger('press_27'); }); // CATALOG MODAL catalogModal = new kosModal({ handler:'#catalogueButton', closeOnHandleClick:true, // only for click trigger or mobile id:'.cat_container', trigger:'mousestop', stackable: true, // Сохраняет последовательность открывания менюшек и позволяет закрывать их через ESC или тыканью по фейдеру windowScrollDisable:true, fader:true, faderIsUnderFloatingMenus:true, effect:'fade', }, ()=>{ $(".reward_cta_container").css({'z-index':50}); $(".chat_container").css({'z-index':50}); $(".fader").css({'z-index':50,'top':$(".hdr_placeholder").outerHeight()}); }, ()=>{ $(".reward_cta_container").css({'z-index':99}); $(".chat_container").css({'z-index':99}); $(".fader").css({'z-index':59,'top':0}); } ); // AUTH MODAL authModal = new kosModal({ handler:'#authButton', closeOnHandleClick:true, // only for click trigger or mobile id:'.auth_container', trigger:'mousestop', deviceTrigger:'click', closeOnScroll:true, // only for click trigger stackable: true, // Сохраняет последовательность открывания менюшек и позволяет закрывать их через ESC или тыканью по фейдеру windowScrollDisable:'mobile', fader:'on_devices', effect:'fade', deviceSwipe:'right', }, ()=>{ $(".reward_cta_container").css({'z-index':50}); $(".chat_container").css({'z-index':50}); }, ()=>{ $(".reward_cta_container").css({'z-index':99}); $(".chat_container").css({'z-index':99}); } ); // REWARDS MODAL var rewardsModal = new kosModal({ handler:'.reward_cta_container .cta_float', id:'.reward_cta_container .rewards', trigger:'click', closeID:'.reward_cta_container .closeState', stackable: true, // Сохраняет последовательность открывания менюшек и позволяет закрывать их через ESC или тыканью по фейдеру closeOnHandleClick:true, // only for click trigger windowScrollDisable:true, fader:true, effect:'fade', }, ()=>{ $(".reward_cta_container .cta_float .state1").hide(); $(".reward_cta_container .cta_float .state2").show(); }, ()=>{ $(".reward_cta_container .cta_float .state1").show(); $(".reward_cta_container .cta_float .state2").hide(); } ); // REWARD ELEMENTS SPOILERS newSpoiler({ container:'.reward_cta_container .rewards .element.toggler', handler:'*', // * - значит сам контейнер является хендлером state1:'.toggleFrom', state2:'.toggleTo', once:true, // Можно только показать modal, но не спрятать }); // SEARCH MODAL var searchModal = new kosModal({ handler:'#searchbutton', id:'.search_container', trigger:'click', closeID:'.search_container .close', windowScrollDisable:true, stackable: true, // Сохраняет последовательность открывания менюшек и позволяет закрывать их через ESC или тыканью по фейдеру fader:true, effect:'fade', focusOn:'.search_container .search_line input[type=text]', focusOnLeave:'#searchbutton', }, ()=>{$(".search_wrapper.suggest_links").slideDown('fast')}, ()=>{$(".search_wrapper.suggest_links").slideUp('fast')} ); /* SEARCH LOGIC */ var popSearch = $(".search_wrapper.suggest_links").html(); var el = $(".search_container .search_line input[type=text]").val(); $(el).keyup(()=>{ $(".search_container .search_line input[name=searchstring]").val($(el).val()); that = this; clearTimeout(searchTO); searchTO = setTimeout(()=>{ $(".search_wrapper.suggest_links").html(popSearch); $.ajax({ type: 'GET', url: "/build/json/searchPrediction.php?json=1&searchstring="+$(el).val(), success: function(data){ $(".search_wrapper.suggest_links").html('
Вы это искали?
'+data+''); }, dataType: "json" }); },350); }); // REGION MODAL var regionModal = new kosModal({ handler:'#selectRegionButton', id:'.region_container', trigger:'click', closeID:'.region_container .close', windowScrollDisable:true, stackable: true, // Сохраняет последовательность открывания менюшек и позволяет закрывать их через ESC или тыканью по фейдеру fader:true, effect:'fade', focusOn:'.region_container .search_line input[type=text]', focusOnLeave:'#selectRegionButton', }, ()=>{$(".region_wrapper.suggest_links").slideDown('fast')}, ()=>{$(".region_wrapper.suggest_links").slideUp('fast')} ); /* REGION LOGIC */ var popSearch = $(".region_wrapper.suggest_links").html(); var el = $(".region_container .search_line input[type=text]").val(); $(el).keyup(()=>{ $(".region_container .search_line input[name=searchstring]").val($(el).val()); that = this; clearTimeout(searchTO); searchTO = setTimeout(()=>{ $(".region_wrapper.suggest_links").html(popSearch); $.ajax({ type: 'GET', url: "/build/json/searchPrediction.php?json=1&searchstring="+$(el).val(), success: function(data){ $(".region_wrapper.suggest_links").html('
Вы это искали?
'+data+''); }, dataType: "json" }); },350); }); $('[name="city"]').suggestions({ token: dadata_token, type: "ADDRESS", hint: false, bounds: "city-settlement", onSelect: function(s){ $('[name="city"]').attr('data-title',s.data['city_with_type']); checkCityForm(); if(s.data['city_fias_id']!=null && s.data['city_fias_id']!=''){ fias = s.data['city_fias_id']; }else if(s.data['settlement_fias_id']!=null && s.data['settlement_fias_id']!=''){ fias = s.data['settlement_fias_id']; } setRegion(fias); setTimeout(closeCityForm,350); $(".cityForm_wrapper button").animate({'opacity':'0'},'fast'); setTimeout(function(){$(".cityForm_wrapper button").css({'opacity':'1'});},1000); } }); }); // Действия на ESC $(document).on("press_27",()=>{ // Прячем jivo if(jivoOpened==1){ jivo_api.close(); } if(typeof openedModalStack !='undefined' && openedModalStack.length>0 && typeof modalData == 'object'){ el = openedModalStack[0]; params = modalData[el].params; callbackOnClose = modalData[el].callbackOnClose; if(typeof params != 'null' && typeof params.closeID != 'undefined' && params.closeID!=null){ $(params.closeID).eq(0).trigger('click'); }else if(typeof params.trigger != 'undefined' && params.trigger=='mouseover'){ $(params.id).trigger('mouseleave'); }else{ modalHide(params,(typeof callbackOnClose != 'undefined'?callbackOnClose:null)); } } }); function removeModalFromStack(id,isSelf = false){ const index = openedModalStack.indexOf(id); if (index > -1) { // only splice array when item is found openedModalStack.splice(index, 1); // 2nd parameter means remove one item only } if(isSelf==true){ if(modalFaderIndex==openedModalStack.indexOf(id)){ modalFaderIndex = -1; } }else{ if(modalFaderIndex>=0){ modalFaderIndex = modalFaderIndex - 1; } } } function addModalStack(id,fader = false){ removeModalFromStack(id,true); openedModalStack.unshift(id); if(modalFaderIndex<0 && fader!=false){ modalFaderIndex = 0; }else if(modalFaderIndex>=0){ modalFaderIndex = modalFaderIndex + 1; } } function predictSearch(el){ } function openFader(underFloatingMenus = false,onDevice = false){ if((onDevice == true && mobile==true) || onDevice==false){ if(faderOpened==0){ faderOpened=1; if(underFloatingMenus == true ){ $(".fader").addClass('underFloating').css({'z-index':3}); underfloatingFaderPosition(); }else{ $(".fader").removeClass('underFloating'); } $(".fader").height($("body").height()).fadeIn(100); } } } function closeFader(){ faderOpened=0; $(".fader").fadeOut(100,function(){$(".cityForm").fadeOut(); $(this).height('100%'); $(".fader").css({'z-index':59,top:0}); }); } function newSpoiler(params){ var handlerIsContainer = params.handler==params.container || params.handler=='*' ? true : false; $(handlerIsContainer ? params.container : params.container + ' ' + params.handler).on('click',function(){ var container = handlerIsContainer==true ? $(this) : $(this).closest(params.container); if(container.hasClass('active')==false){ container.find(params.state1).hide(); container.find(params.state2).fadeIn(); container.addClass('active'); if(typeof params.once != 'undefined' && params.once==true){ $(this).addClass('fired'); } }else if(container.hasClass('active')==true && (typeof params.once == 'undefined' || params.once==false)){ container.find(params.state2).hide(); container.find(params.state1).fadeIn(); container.removeClass('active'); } }); } function kosModal(params,callbackOnOpen = null,callbackOnClose = null){ if(typeof params.handler == 'undefined'){ return false; } this.setTrigger = function(trigger = null){ trigger = (trigger==null ? (mobile == true && typeof params.deviceTrigger != 'undefined' ? params.deviceTrigger : params.trigger) : trigger); $(params.handler).unbind(); if(typeof trigger != 'undefined' && trigger=='mouseover'){ if(typeof params.handler != 'undefined'){ $(params.handler).mouseenter(()=>{ clearTimeout(modalToggleTO); modalShow(params,callbackOnOpen); }); $(params.handler).mouseleave(()=>{ clearTimeout(modalToggleTO); modalHide(params,callbackOnClose); }); } $(params.id).mouseenter(()=>{ clearTimeout(modalToggleTO); modalShow(params,callbackOnOpen); }); $(params.id).mouseleave(()=>{ clearTimeout(modalToggleTO); modalHide(params,callbackOnClose); }); }else if(typeof trigger != 'undefined' && trigger=='mousestop'){ if(jquery_libs_loaded){ this.eventOnMouseStop(); }else{ $(window).on('jquery_libs_loaded',this.eventOnMouseStop); } }else{ $(params.handler).click(()=>{ if(typeof params.closeOnHandleClick != 'undefined' && params.closeOnHandleClick==true && $(params.handler).hasClass('active')){ clearTimeout(modalToggleTO); modalHide(params,callbackOnClose); }else{ clearTimeout(modalToggleTO); modalShow(params,callbackOnOpen,parent); } }); } } this.eventOnMouseStop = function(){ if(typeof params.handler != 'undefined'){ $(params.handler).mousestop(()=>{ clearTimeout(modalToggleTO); modalShow(params,callbackOnOpen); }); $(params.handler).mouseleave(()=>{ clearTimeout(modalToggleTO); modalHide(params,callbackOnClose); }); } $(params.id).mouseenter(()=>{ clearTimeout(modalToggleTO); modalShow(params,callbackOnOpen); }); $(params.id).mouseleave(()=>{ clearTimeout(modalToggleTO); modalHide(params,callbackOnClose); }); } this.close = function(){ clearTimeout(modalToggleTO); modalHide(params,callbackOnClose); $(params.handler).removeClass('active'); } var uuid; $(params.id).each((i,el)=>{ uuid = 'el'+Math.floor(Math.random() * 100000) params.id = '#'+uuid; $(el).attr('id',uuid); modalData[uuid] = {params:params,callbackOnOpen:callbackOnOpen,callbackOnClose:callbackOnClose}; /* open events */ this.setTrigger(); /* close events */ if(typeof params.deviceSwipe != 'undefined' && (params.deviceSwipe=='left' || params.deviceSwipe=='right')){ $(el).on( "swipe"+params.deviceSwipe, ()=>{ if(mobile==true){ this.close(); } }); } if(typeof params.closeOnScroll != 'undefined' && params.closeOnScroll==true){ $(window).on('scroll',function(){ if($(params.handler).hasClass('active')){ this.close(); } }); } if(typeof params.closeID != 'undefined'){ $(params.closeID).click(()=>{ this.close(); }); } }); return this; } function modalShow(params,callback = null,parent = null){ var TO = (typeof params.trigger != 'undefined' && params.trigger=='mouseover' ? 100 : 0); clearTimeout(modalToggleTO); var el_handler = $(params.handler); var el = $(params.id); modalToggleTO = setTimeout(()=>{ if(typeof $(el).attr('data-opened') == 'undefined' || $(el).attr('data-opened')=='0'){ $(el).attr('data-opened','1'); $(el_handler).addClass('active'); if(typeof params.stackable != 'undefined' && params.stackable==true){ addModalStack($(el).attr('id'),(typeof params.fader != 'undefined' && params.fader!=false?true:false)); } if(typeof params.windowScrollDisable != 'undefined' && (params.windowScrollDisable==true || (params.windowScrollDisable=='mobile' && mobile==true))){ $("body").css({'overflow':'hidden'}); } if(typeof params.fader != 'undefined' && params.fader!=false){ openFader(params.faderIsUnderFloatingMenus != 'undefined' ? params.faderIsUnderFloatingMenus : false,params.fader=='on_devices'?true:false); } if(typeof params.deviceSwipe != 'undefined' && (params.deviceSwipe=='left' || params.deviceSwipe=='right') && mobile==true){ $(".stickyRight").removeClass(['show','from']).hide(); $(".stickyLeft").removeClass(['show','from']).hide(); clearTimeout(modalAnimationTO); $(el).addClass(['from']).show(); modalAnimationTO = setTimeout(()=>{ $(el).addClass(['show']); },10); }else if(typeof params.effect != 'undefined' && params.effect=='fade'){ $(el).fadeIn('fast'); }else if(typeof params.effect != 'undefined' && params.effect=='no'){ // do nothing }else{ $(el).show(); } if(typeof callback == 'function'){ callback(); } if(typeof params.focusOn != 'undefined'){ if(typeof params.relative != 'undefined' && params.relative==true){ $(that).find(params.focusOn).focus(); }else{ $(params.focusOn).focus(); } } } },TO); } function modalHide(params,callback = null){ var TO = (typeof params.trigger != 'undefined' && params.trigger=='mouseover' ? 125 : 0); clearTimeout(modalToggleTO); // var el = typeof params.relative != 'undefined' && params.relative==true ? $(that).find(params.id) : $(params.id); // var el_handler = typeof params.relative != 'undefined' && params.relative==true ? $(that).find(params.handler) : $(params.handler); var el = $(params.id); var el_handler = $(params.handler); modalToggleTO = setTimeout(()=>{ openedModalData = null; $(el).attr('data-opened','0'); $(el_handler).removeClass('active'); if(typeof params.stackable != 'undefined' && params.stackable==true){ if(modalFaderIndex==0 && typeof params.fader != 'undefined' && params.fader!=false){ closeFader(); } removeModalFromStack($(el).attr('id')); }else if(params.fader != 'undefined' && params.fader!=false){ closeFader(); } $("body").css({'overflow':'auto'}); if(typeof params.deviceSwipe != 'undefined' && (params.deviceSwipe=='left' || params.deviceSwipe=='right') && mobile==true){ clearTimeout(modalAnimationTO); $(el).removeClass(['show']); modalAnimationTO = setTimeout(()=>{ $(el).hide().removeClass(['from']); },250); }else if(typeof params.effect != 'undefined' && params.effect=='fade'){ $(el).fadeOut('fast'); }else if(typeof params.effect != 'undefined' && params.effect=='no'){ // do nothing }else{ $(el).hide(); } if(typeof callback == 'function'){ callback(); } if(typeof params.focusOnLeave != 'undefined'){ if(typeof params.relative != 'undefined' && params.relative==true){ $(that).find(params.focusOnLeave).focus(); }else{ $(params.focusOnLeave).focus(); } } },TO); }