$(document).ready(function () { $(".open-popup").on('click', function (e) { e.preventDefault(); var popupId = $(this).data('id'); $(".popup").hide(); $("#overlay").show(); $('#' + popupId).fadeIn(); }); $(".close-popup").on('click', function () { $("#overlay").hide(); $(this).parents('.popup').fadeOut(); //$.cookie('redirectUrl', '', {path: '/'}); }); $(".js-dropdown-toggle").on("click", function (e) { e.preventDefault(); $(this).next(".dropdown-list").slideToggle(); $(this).find(".caret-down").toggleClass('arrow-up'); }); $(".js-dropdown-toggle-by-click").on("click", function (e) { e.preventDefault(); $(this).next(".js-dropdown-list").slideToggle(); $(this).find(".caret-down").toggleClass('arrow-up'); }); $(document).on("mousedown", function (e) { if ($(".js-dropdown-toggle").has(e.target).length === 0) { $(".js-dropdown-toggle+.dropdown-list").slideUp(); $(".js-dropdown-toggle .caret-down").removeClass('arrow-up'); } }); var dropParent; $(".select-dropdown").each(function () { dropParent = $(this).parent(); $(this).select2({ dropdownParent: dropParent }); }); $(".scroll-block").mCustomScrollbar(); function initSlider(element) { var inpMin = element.closest(".rangeslider").find(".minVal"); var inpMax = element.closest(".rangeslider").find(".maxVal"); var valMin = inpMin.val(); var valMax = inpMax.val(); element.slider({ range: true, min: element.data('min'), max: element.data('max'), values: [valMin, valMax], slide: function (event, ui) { inpMin.val(ui.values[0]); inpMax.val(ui.values[1]); } }); inpMin.val(element.slider("values", 0)); inpMax.val(element.slider("values", 1)); } //initSlider($( "#slider-range" )); $(".js-slider").each(function () { initSlider($(this)); }); $(".js-show-filter").on("click", function () { $(this).hide(); $(this).next(".filters").show(200); }); $(".close-filter").on("click", function () { $(this).closest(".filters").hide(200); $(this).closest(".maps-action-elements").find(".js-show-filter").show(200); }) function myFilter() { var directions = $("[data-type]"); var directionMap = {}; var rangers = $("[data-range]"); var rangersMap = {}; var minRange, maxRange, selectVal; var selects = $("[data-select]"); var selectMap = {}; for (var i = 0, len = directions.length; i < len; i++) { var elem = directions.eq(i); if(!elem.prop( "checked" )){ continue; } var type = elem.attr("data-type"); if (directionMap[type]) { directionMap[type].push(elem.attr("data-direction")); } else { directionMap[type] = [elem.attr("data-direction")]; } } for (var j = 0, leng = rangers.length; j < leng; j++) { minRange = rangers.eq(j).find(".minVal").val(); maxRange = rangers.eq(j).find(".maxVal").val(); if (rangers.eq(j).attr("data-range") && minRange && maxRange) { rangersMap[rangers.eq(j).attr("data-range")] = {"min": minRange, "max": maxRange}; } } for (var k = 0, l = selects.length; k < l; k++) { selectVal = selects.eq(k).find("[selected]").val(); if (selectVal) { selectMap[selects.eq(k).attr("data-select")] = selectVal; } } return function (el) { var result = false; if( directionMap[el.type] && directionMap[el.type].indexOf(el.direction) >= 0 ){ result = true; } else { return false} for (var feald in rangersMap){ if( el[feald] && parseFloat(el[feald]) >= parseFloat(rangersMap[feald].min) && parseFloat(el[feald]) <= parseFloat(rangersMap[feald].max)){ result = true; } else { return false; } } for (var feald1 in selectMap){ if( el[feald1] && el[feald1] === selectMap[feald1]){ result = true; } else { return false; } } return result; }; } $("#filter").on("click", function () { var predicate = myFilter(); markers.forEach(function(el){ el.setVisible(predicate(el)); console.log(predicate(el)); console.log(el); }); }); });