function set_filter_block_height () { var add_links = false; $('#filter_form_wraper').find('ul').each(function(i, ul) { var $ul = $(this), $block = $ul.parent('div'); add_links = false; $ul.find('li').each(function(j, li) { if ($(li).index() > 9) { $(li).css('display', 'none'); add_links = true; } }); if (add_links){ var $show_more_link = $('', {href: "#", text: 'показать еще 10', class: 'show_more_link'}), $show_all_link = $('', {href: '#', text: 'показать все', class: 'show_all_link'}), $links_block = $('
', {class: 'links_block'}); $links_block .append($show_more_link) .append('
') .append($show_all_link); $block.append($links_block); } }); } function build_sidebar() { var results_count = $('cl-item ').length, $aside_block = $('aside .mps-sect'), $aside_news = $('aside .s-news-list'), $aside_sbnr = $('aside .sbnr'), $aside_vk = $('aside .vk-widget'), $aside_subscribe = $('aside .subscribe-sm'), $aside_hr = $('aside hr'); if (results_count <= 5){ $aside_block.addClass('none'); $aside_news.addClass('none'); $aside_sbnr.addClass('none'); $aside_vk.addClass('none'); $aside_subscribe.addClass('none'); $aside_hr.addClass('none'); } else { $aside_block.removeClass('none'); $aside_news.removeClass('none'); $aside_sbnr.removeClass('none'); $aside_vk.removeClass('none'); $aside_subscribe.removeClass('none'); $aside_hr.removeClass('none'); } } function build_filters_period () { // работа с ссылкой "уточнить дату в боковом фильтре" var $period_link = $('#filter_period_trigger'), $filters = $('#filter_form_wraper'), $month_block = $filters.find('#id_month'); $period_link.insertAfter('#id_date_to').wrap($('
', {class: 'period_block'})); if ($filters.find('input#id_date_from').val() || $filters.find('input#id_date_to').val()){ $month_block.hide(); } $('#filterPeriod').on('click', '.modal-approve', function(event) { event.preventDefault(); if ($('#filterPeriod input[name="from"]').val().length || $('#filterPeriod input[name="to"]').val().length) { var new_from_val = $('#filterPeriod input[name="from"]').val(), new_to_val = $('#filterPeriod input[name="to"]').val(); $filters.find('#id_date_from input').val(new_from_val); $filters.find('#id_date_to input').val(new_to_val); $.fancybox.close(); submit_search_form (); } }); } function submit_search_form () { var $form = $('.filter_form'), params = $form.serialize(), paramsForTop = $form.serializeArray(), filters_url = $form.data('formurl'), results_url = $form.data('resultsurl'), $loader = $('#wait-ajax'); $loader.show(); $('.filters_overlay').show(); $('html, body').animate({scrollTop: $('.page-body').offset().top - 50}, 500); $.getJSON(results_url, params, function(data) { if (data.success) { $('.page-body').html(data.results).prepend('
'); build_sidebar(); $loader.hide(); } }); $.getJSON(filters_url, params, function (data) { if (data.success){ $('#filter_form_wraper').html(data.form); set_filter_block_height(); build_filters_period(); } }) var API_URL_ROOT = "/expo-b/get-tops/"; var PARENT_ID = "expo_top_events"; var getUrl = function () { var search = []; var parts = /^\/([^\/]+)(?:\/|$)/i.exec(location.pathname); if (parts) { search.push("catalog=" + encodeURIComponent(parts[1])); } else { search.push("catalog="); } var data = window.sendData, theme = []; $.each(paramsForTop, function(i,val){ if(val.name === 'theme') { theme.push(parseInt(val.value)); } }); data.theme = theme; console.log('NEW:',data); if (data instanceof Object) { for (var key in data) { if (data.hasOwnProperty(key)) { var value = data[key]; if (value instanceof Array) { for (var i = 0, l = value.length; i < l; i++) { search.push(encodeURIComponent(key) + "=" + encodeURIComponent(value[i])); } } else { search.push(encodeURIComponent(key) + "=" + encodeURIComponent(value)); } } } } return API_URL_ROOT + "?" + search.join("&"); }; var runCallback = function (callback, arg) { try { callback(arg); } catch (error) { // do nothing } // console.info('callback Done'); }; var getTops = function (url, callback) { var xhr = new XMLHttpRequest(); xhr.open("GET", url, true); xhr.onreadystatechange = function (event) { if (event.target.readyState === 4) { if (event.target.status === 200) { if (document.readyState === "loading" && !window.marker_DOMtopjsElementInserted) { // console.info('setting DOMContentLoaded event listener'); // console.info('setting DOMtopjsElementInserted event listener'); // document.addEventListener("DOMContentLoaded", function() { document.addEventListener("DOMtopjsElementInserted", function() { runCallback(callback, event.target.responseText); }); } else { runCallback(callback, event.target.responseText); } } } }; xhr.send(); }; var removeDublicates = function () { $('div#' + PARENT_ID + ' ul li.cl-item').each(function(index, el) { $('div.page-body ul.cat-list li.cl-item[data-slug=\'' + $(el).data('slug') + '\']').not(el).remove(); }); }; var insertTops = function (text) { var parent = document.getElementById(PARENT_ID); if (parent) { parent.innerHTML = text; // $(document).ready(function () { // removeDublicates(); // }); } }; var main = function () { getTops(getUrl(), insertTops); }; // main(); // window.addEventListener("load", main); // document.addEventListener("DOMContentLoaded", main); main(); } $(document).ready(function () { set_filter_block_height(); $('#filter_form_wraper') .on('click', '.show_more_link', function(e){ e.preventDefault(); var $block = $(this).parents('.filter_block'), li_length = $block.find('li').length, visible_length = $block.find('li:visible').length; for (var i = 0; i < 10; i++){ if (visible_length + i != li_length) { $block.find('li').eq(visible_length + i).fadeIn(200); } else { $(this).parent().hide(); } } }) .on('click', '.show_all_link', function(e){ e.preventDefault(); var $block = $(this).parents('.filter_block'); $block.find('li').fadeIn(200); $block.find('.links_block').hide(); }) .on('click', '#get_filters', function(event) { event.preventDefault(); var search_string = '', $link = $(this); $link.html(''); $.each(window.sendData, function(i, val) { var key = i; if ( val.length ) { if ( $.type(val) == 'array' ){ for(var j = 0; j < val.length; j++){ search_string += key + '=' + val[j] + '&'; } } if ( $.type(val) == 'string'){ search_string += key + '=' + val + '&'; } } }); $.ajax({ url: $link.attr('href'), data: search_string }) .done(function(data) { if (data.success) { $('#filter_form_wraper').html(data.form); set_filter_block_height(); build_filters_period(); } }); }) .on('click', '#filter_period_trigger', function (event) { event.preventDefault(); // $('#pwPeriod').fadeIn(); $.fancybox.open('#filterPeriod') }); $('#get_filters').trigger('click'); $('.page-body').on('click', '.ajax-paginator a:not(.disabled)', function(e) { e.preventDefault(); var $link = $(this), $loader = $('#wait-ajax'); $loader.show(); $('html, body').animate({scrollTop: $('.page-body').offset().top - 50}, 500); $.ajax({ url: $link.attr('href') }) .done(function(data) { if (data.success) { $('.page-body').html(data.results); $loader.hide(); } }); }); $('body').on('click', '#clearPeriod', function (event) { event.preventDefault(); $('#filter_form_wraper #id_date_from input').val(''); $('#filter_form_wraper #id_date_to input').val(''); $.fancybox.close(); submit_search_form(); }); $('#filter_form_wraper').on('click', '.filter_block_label', function(event) { event.preventDefault(); var $this = $(this), target = '#' + $this.attr('for'); $(target).slideToggle(300); $this.find('.fa').toggleClass('fa-caret-down fa-caret-up'); }); $('#filter_form_wraper').on('change', 'input[type="checkbox"]', function(event) { event.preventDefault(); submit_search_form(); }); $('#filter_form_wraper').on('click', '.filter_form_clear_all', function(event) { event.preventDefault(); window.location.reload(); }); $("div.ht-main_1").each(function () { $(this).width($('div.serv-links').width()); }); $(window).resize(function () { $("div.ht-main_1").each(function () { $(this).width($('div.serv-links').width()); }); }); $("a.small_link").click(function(){ $("#large img").hide().attr({"src": $(this).attr("href"), "title": $("> img", this).attr("title")}); return false; }); $("#large>img").load(function(){$("#large>img:hidden").fadeIn("slow")}); setTimeout(function () { $('a.subscribe_link').click(); }, 3000); $('.subscribe_success').click(function () { $('div.subscribe_before').hide(); $('div.subscribe_after').show(); setTimeout(function () { $('a.fancybox-close').click(); }, 2000); return false; }); var number_subjects_list = $("div.subjects_list ul li").length; var number_subjects_list_x = number_subjects_list -5; $('div.subjects_list ul li:gt(4)').hide(); $('div.subjects_list span i').text(number_subjects_list_x); if (number_subjects_list > 5) { $('div.subjects_list').addClass('more'); } else { } $('div.subjects_list span').click(function () { $(this).parents('div.subjects_list').removeClass('more'); $(this).parents('div.subjects_list').find('li').show(); return false; }); $('.preview_toggle').on('click', function (e) { e.preventDefault(); var $this = $(this); if ($this.hasClass('full')){ $this .removeClass('full') .text($this.data('short')); } else { $this .addClass('full') .text($this.data('full')); } $('.new_article').toggleClass('hidden'); }); if ($('#message-not-found').length){ $.fancybox.open({ href: '#message-not-found' }) } });