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.
426 lines
12 KiB
426 lines
12 KiB
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 = $('<a></a>', {href: "#", text: 'показать еще 10', class: 'show_more_link'}),
|
|
$show_all_link = $('<a></a>', {href: '#', text: 'показать все', class: 'show_all_link'}),
|
|
$links_block = $('<div></div>', {class: 'links_block'});
|
|
|
|
$links_block
|
|
.append($show_more_link)
|
|
.append('<br />')
|
|
.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($('<div></div>', {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('<div id="expo_top_events"></div>');
|
|
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('<img src="/static/img/white-ajax-loader.gif">');
|
|
|
|
$.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'
|
|
})
|
|
}
|
|
});
|
|
|