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.
 
 
 
 
 
 

194 lines
8.0 KiB

$(function(){
// SearchForm
function send () {
var request = $("#trademark-search-request").val(),
$form = $('.trademark-search-form'),
$loading = $('.trademark-search-loading'),
$status_list = $('.trademark-search-loading-status'),
$count = $('#trademark-search-count'),
$title = $('#trademark-search-request-value'),
$sending = $('#trademark-search-sending'),
$identity = $('#trademark-search-identity'),
$contains = $('#trademark-search-contains'),
$similar = $('#trademark-search-similar'),
$wait = $('#trademark-search-wait'),
slug = '',
iteration = 0;
function update_status(data) {
var identity = data['identity'],
contains = data['contains'],
similar = data['similar'],
completed = identity['status'] == 'finished' && contains['status'] == 'finished' && similar['status'] == 'finished',
almost_completed = identity['status'] == 'finished' && contains['status'] == 'finished' && identity['count'] > 0,
show_link = identity['status'] == 'finished' || contains['status'] == 'finished' || similar['status'] == 'finished',
tm_url = '/ru/trademarks/online-search/results/' + slug + '/';
if(identity['status'] == 'finished') {
var count = identity['count'];
if(count > 0) {
$identity.text(GetNoun(count, 'Найден', 'Найдены', 'Найдено') + ' '+ count + ' ' + GetAdj(count, 'такой', 'таких') + ' ' + GetNoun(count, 'знак', 'знака', 'знаков')+ ' в ' + identity['nices'] + ' ' + GetNoun(identity['nices'], 'классе', 'классах', 'классах'));
} else {
$identity.text('Точно таких же знаков не найдено');
}
}
if(contains['status'] == 'finished') {
var count = contains['count'];
if(count > 0) {
$contains.text(GetNoun(count, 'Обнаружен', 'Обнаружены', 'Обнаружено') + ' ' + count + ' ' + GetAdj(count, 'похожий', 'похожих') + ' ' + GetNoun(count, 'знак', 'знака', 'знаков'));
} else {
$contains.text('Похожих знаков не обнаружено');
}
}
if(similar['status'] == 'finished') {
var count = similar['count'];
if(count > 0) {
$similar.text(GetNoun(count, 'Подобран', 'Подобраны', 'Подобрано') + ' ' + count + ' ' + GetAdj(count, 'производный', 'производных') + ' ' + GetNoun(count, 'знак', 'знака', 'знаков'));
} else {
$similar.text('Не удалось подобрать производных знаков');
}
}
if(iteration > 3) {
$wait.show(500);
}
if(show_link && iteration > 5) {
var href = ''
$wait.html('<a href="' + tm_url + '">Остановить поиск и перейти к результатам</a>');
} else {
console.log(iteration);
}
if(completed || almost_completed) {
yaCounter950321.reachGoal('TrademarkSearchResults');
ga('send', 'event', 'TrademarkSearch', 'results', document.title);
document.location.href = tm_url;
} else {
iteration += 1;
setTimeout(function () {
get_status(slug);
}, 10000);
}
}
function get_status(slug) {
try {
$.get("/ru/trademarks/online-search/request/" + slug + "/").done(function(data) {
update_status(data);
});
} catch (err) {
setTimeout(function () {
get_status(slug);
}, 5000);
}
}
yaCounter950321.reachGoal('TrademarkSearchClick');
ga('send', 'event', 'TrademarkSearch', 'click', document.title);
// Show Loading Block
$title.text(request);
$form.hide();
$loading.show();
$sending.show();
$.post("/ru/trademarks/online-search/request/",
{ 'keyword': request}).done(function(data) {
var tm_count = Math.floor(Math.random() * (3000000 - 1000000) + 1000000);
$('.trademark-search-count').text(tm_count.toLocaleString() + ' знаков')
$count.show(500);
$identity.delay(3000).show(500);
$contains.delay(6000).show(500);
$similar.delay(12000).show(500);
slug = data['slug'];
update_status(data);
})
.fail(function(data) {
console.log( "error " );
console.log(data);
})
.always(function(data) {
console.log( "finished" );
console.log(data);
$sending.hide()
});
}
$('#trademark-search-example').click(function(event) {
var keyword = $('#trademark-search-example').text();
event.preventDefault();
$("#trademark-search-request").val(keyword);
});
$('#trademark-search-request').keypress(function (e) {
if (e.which == 13) {
send();
return false; //<---- Add this line
}
});
$('#trademark-search-submit').click(function(){
send();
});
// Results
$('.trademark-search-show-products').each(function() {
var product_id = $(this).attr('product-id')
$(this).click(function () {
var $list = $('');
$('.trademark-search-nice-busy-products[product-id=' + product_id + ']').slideToggle('slow');
});
});
$('.load-more-results').each(function () {
var results_count = $(this).find(".load-more-result").size(),
showed = 6,
$this = $(this),
$count = $(this).find('.load-more-count');
function update_count() {
var count = results_count - showed;
if(count > 0) {
$this.find('.load-more-li').css('display', 'block');
} else {
$this.find('.load-more-li').css('display', 'none');
}
if($this.attr('list-type') == 'nices') {
$count.text(count + ' ' + GetNoun(count, 'класс', 'класса', 'классов'));
} else {
$count.text(count + ' ' + GetNoun(count, 'знак', 'знака', 'знаков'));
}
}
function show_more() {
var display_value = 'inline-block'
if($this.attr('list-type') == 'nices') {
display_value = 'block'
}
$this.find('.load-more-result:lt(' + showed + ')').css('display', display_value);
}
show_more();
update_count();
$this.find('.load-more').click(function () {
showed = ( showed + 6 <= results_count) ? showed + 6 : results_count;
show_more();
update_count();
});
});
});