Advertisement
Guest User

Untitled

a guest
Oct 14th, 2015
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. $.require = function(selectors, callback) {
  2.     var is_map = $.isPlainObject(selectors),
  3.         $els = is_map ? {} : [],
  4.         context = document,
  5.         success = true;
  6.        
  7.     if(selectors.context) {
  8.         context = selectors.context;
  9.         delete selectors.context;
  10.     }    
  11.    
  12.     if(typeof selectors === 'string') {
  13.         selectors = [selectors];
  14.     }
  15.    
  16.     var $context = $(context);
  17.     $.each(selectors, function(key, selector) {
  18.         var $cur = $context.find(selector);
  19.         if(!$cur.length) {
  20.             return success = false;
  21.         }
  22.         is_map ?
  23.            ($els[key] = $cur) :
  24.             $els.push($cur);
  25.     });
  26.    
  27.     if(success) {
  28.         if(context !== document) {
  29.             is_map ?
  30.                 ($els.$context = $context) :
  31.                 $els.unshift($context);
  32.         }
  33.        
  34.         callback && callback[is_map ? 'call' : 'apply'](this, $els);
  35.     }
  36.    
  37.     return success && $els;
  38. };
  39.  
  40. $.fn.scrollIntoView = function(options) {
  41.     options = $.extend({
  42.         duration: 0,
  43.         top: function() {
  44.             return this.offset().top;
  45.         },
  46.         callback: false
  47.     }, options);
  48.     $('html, body').animate({
  49.         scrollTop: options.top.call(this)
  50.     }, options.duration, function(){
  51.         if(options.callback) {
  52.             options.callback();
  53.         }
  54.     });
  55.     return this;
  56. };
  57.  
  58. (function() {
  59.     $('.js-form-adv_input').prop('checked', !!+sputnik.cookie.get('show_ad'));
  60.    
  61.     var addEvent = window.addEventListener ?
  62.     function(obj, event, handler) {
  63.         obj.addEventListener(event, handler);
  64.     } : function(obj, event, handler) {
  65.         obj.attachEvent('on' + event, function() {
  66.             handler.apply(obj, arguments);
  67.         });
  68.     },
  69.     trackEvent = (function() {
  70.         var tracker;
  71.  
  72.         return function(category, action, name, value) {
  73.             if (!tracker) {
  74.                 tracker = window.Piwik &&
  75.                 window.Piwik.getTracker('http://piwik.sputnik.ru/piwik.php', 2);
  76.             }
  77.  
  78.             if(tracker) {
  79.                 if(action) {
  80.                     action = category + '.' + action;
  81.                 }
  82.                 if(name) {
  83.                     name = action + '.' + name;
  84.                 }
  85.  
  86.                 tracker.trackEvent(category, action, name, value);
  87.             }
  88.         };
  89.     })();
  90.  
  91.     var init = function() {  
  92.         $.rand = function (min, max) {
  93.             min = min || 0;
  94.             max = max || Number.MAX_VALUE;
  95.  
  96.             return Math.floor(Math.random() * (max - min + 1) + min);
  97.         };
  98.         var search = window.location.search,
  99.             queries = [
  100.                 'возврат товара интернет-магазину',
  101.                 'восстановление родительских прав',
  102.                 'встать на учет в налоговый орган',
  103.                 'выезд ребенка за границу',
  104.                 'выплаты приемной семье',
  105.                 'госуслуга о штрафах ГИБДД',
  106.                 'документы для получения трудовой пенсии',
  107.                 'загранпаспорт нового и старого образца',
  108.                 'замена водительского удостоверения',
  109.                 'записать ребенка в детский сад',
  110.                 'зарегистрировать квартиру',
  111.                 'защита прав потребителей',
  112.                 'как заменить паспорт',
  113.                 'как лишить родительских прав',
  114.                 'как оформить декретный отпуск',
  115.                 'как оформить инвалидность',
  116.                 'как оформить пенсию',
  117.                 'как оформить учебный отпуск',
  118.                 'как получить вид на жительство',
  119.                 'как получить вычет на ребенка',
  120.                 'как получить ИНН',
  121.                 'как сменить фамилию',
  122.                 'как создать ТСЖ',
  123.                 'как стать опекуном',
  124.                 'как усыновить ребенка',
  125.                 'калькулятор декретных пособий',
  126.                 'Конституция РФ 1993 года',
  127.                 'льготы ветеранам боевых действий',
  128.                 'льготы ветеранам труда',
  129.                 'льготы инвалидам детства',
  130.                 'льготы инвалидам при поступлении в ВУЗ',
  131.                 'льготы малоимущим семьям',
  132.                 'льготы матерям-одиночкам',
  133.                 'льготы опекунам',
  134.                 'льготы пенсионерам по старости',
  135.                 'льготы при поступлении в детский сад',
  136.                 'льготы приемной семье',
  137.                 'материнский капитал',
  138.                 'минимальная потребительская корзина',
  139.                 'налоговая декларация',
  140.                 'обучение на дому',
  141.                 'оплата ЖКХ',
  142.                 'оплата коммунальных услуг',
  143.                 'оплатить налоги',
  144.                 'оплатить штраф ГИБДД',
  145.                 'отпуск по уходу за ребенком',
  146.                 'официальный сайт ГИБДД',
  147.                 'оформить дарственную',
  148.                 'оформить медицинскую книжку',
  149.                 'оформить опекунство',
  150.                 'оформить развод',
  151.                 'Пенсионный Фонд РФ',
  152.                 'перечень услуг по полису ОМС',
  153.                 'полис медицинского страхования',
  154.                 'получить гражданство РФ',
  155.                 'получить ИНН повторно',
  156.                 'получить ИНН через интернет',
  157.                 'получить полис ОМС',
  158.                 'получить свидетельство о рождении',
  159.                 'получить СНИЛС',
  160.                 'получить СНИЛС на ребенка',
  161.                 'портал госуслуг рф',
  162.                 'пособие по безработице',
  163.                 'пособие по беременности и родам',
  164.                 'пособие по временной нетрудоспособности',
  165.                 'правила дистанционной торговли',
  166.                 'Президент РФ',
  167.                 'прикрепить ребенка к поликлинике',
  168.                 'прожиточный минимум',
  169.                 'размер пособия по безработице',
  170.                 'рассчитать размер трудовой пенсии',
  171.                 'расторжение брака',
  172.                 'регистрация брака',
  173.                 'регистрация по месту жительства',
  174.                 'родовой сертификат',
  175.                 'сайт Правительства РФ',
  176.                 'сайт Федеральной Миграционной службы',
  177.                 'свидетельство о рождении',
  178.                 'свидетельство о рождении ребенка',
  179.                 'семейный кодекс РФ',
  180.                 'снять с учета автомобиль',
  181.                 'список лекарств по льготе',
  182.                 'страховое свидетельство',
  183.                 'трудовой кодекс РФ',
  184.                 'узнать ИНН',
  185.                 'установка счетчиков воды',
  186.                 'что такое налоговый вычет',
  187.                 'штрафы ГИБДД онлайн',
  188.                 'электронная запись в детский сад',
  189.                 'анальгин',
  190.                 'бадяга',
  191.                 'валидол',
  192.                 'визин',
  193.                 'возврат товара интернет-магазину',
  194.                 'восстановление родительских прав',
  195.                 'встать на учет в налоговый орган',
  196.                 'выезд ребенка за границу',
  197.                 'выплаты приемной семье',
  198.                 'гексорал',
  199.                 'госуслуга о штрафах ГИБДД',
  200.                 'дибазол',
  201.                 'документы для получения трудовой пенсии',
  202.                 'загранпаспорт нового и старого образца',
  203.                 'замена водительского удостоверения',
  204.                 'записать ребенка в детский сад',
  205.                 'зарегистрировать квартиру',
  206.                 'защита прав потребителей',
  207.                 'как заменить паспорт',
  208.                 'как лишить родительских прав',
  209.                 'как оформить декретный отпуск',
  210.                 'как оформить инвалидность',
  211.                 'как оформить пенсию',
  212.                 'как оформить учебный отпуск',
  213.                 'как получить вид на жительство',
  214.                 'как получить вычет на ребенка',
  215.                 'как получить ИНН',
  216.                 'как сменить фамилию',
  217.                 'как создать ТСЖ',
  218.                 'как стать опекуном',
  219.                 'как усыновить ребенка',
  220.                 'калькулятор декретных пособий',
  221.                 'Конституция РФ 1993 года',
  222.                 'корвалол',
  223.                 'левомицетин',
  224.                 'льготы ветеранам боевых действий',
  225.                 'льготы ветеранам труда',
  226.                 'льготы инвалидам детства',
  227.                 'льготы инвалидам при поступлении в ВУЗ',
  228.                 'льготы малоимущим семьям',
  229.                 'льготы матерям-одиночкам',
  230.                 'льготы опекунам',
  231.                 'льготы пенсионерам по старости',
  232.                 'льготы при поступлении в детский сад',
  233.                 'льготы приемной семье',
  234.                 'материнский капитал',
  235.                 'мексидол',
  236.                 'минимальная потребительская корзина',
  237.                 'налоговая декларация',
  238.                 'нафтизин',
  239.                 'нурофен',
  240.                 'обучение на дому',
  241.                 'оксолин',
  242.                 'оплата ЖКХ',
  243.                 'оплата коммунальных услуг',
  244.                 'оплатить налоги',
  245.                 'оплатить штраф ГИБДД',
  246.                 'отпуск по уходу за ребенком',
  247.                 'официальный сайт ГИБДД',
  248.                 'оформить дарственную',
  249.                 'оформить медицинскую книжку',
  250.                 'оформить опекунство',
  251.                 'оформить развод',
  252.                 'парацетамол',
  253.                 'Пенсионный Фонд РФ',
  254.                 'перечень услуг по полису ОМС',
  255.                 'полис медицинского страхования',
  256.                 'получить гражданство РФ',
  257.                 'получить ИНН повторно',
  258.                 'получить ИНН через интернет',
  259.                 'получить полис ОМС',
  260.                 'получить свидетельство о рождении',
  261.                 'получить СНИЛС',
  262.                 'получить СНИЛС на ребенка',
  263.                 'портал госуслуг рф',
  264.                 'пособие по безработице',
  265.                 'пособие по беременности и родам',
  266.                 'пособие по временной нетрудоспособности',
  267.                 'правила дистанционной торговли',
  268.                 'преднизолон',
  269.                 'Президент РФ',
  270.                 'прикрепить ребенка к поликлинике',
  271.                 'прожиточный минимум',
  272.                 'размер пособия по безработице',
  273.                 'ранитидин',
  274.                 'рассчитать размер трудовой пенсии',
  275.                 'расторжение брака',
  276.                 'регистрация брака',
  277.                 'регистрация по месту жительства',
  278.                 'родовой сертификат',
  279.                 'сайт Правительства РФ',
  280.                 'сайт Федеральной Миграционной службы',
  281.                 'сайт Федеральной Налоговой службы',
  282.                 'саридон',
  283.                 'свидетельство о рождении',
  284.                 'свидетельство о рождении ребенка',
  285.                 'семейный кодекс РФ',
  286.                 'снять с учета автомобиль',
  287.                 'список лекарств по льготе',
  288.                 'страховое свидетельство',
  289.                 'супрадин',
  290.                 'трависил',
  291.                 'трудовой кодекс РФ',
  292.                 'уголь активированный',
  293.                 'узнать ИНН',
  294.                 'установка счетчиков воды',
  295.                 'фурацилин',
  296.                 'что такое налоговый вычет',
  297.                 'штрафы ГИБДД онлайн',
  298.                 'электронная запись в детский сад'
  299.             ],
  300.             $logo_link = $('.js-logo'),
  301.             $search_link = $('.js-project-inet'),
  302.             $news_link = $('.js-project-news'),
  303.             $tv_link = $('.js-project-tv'),
  304.             $currency_link = $('.js-project-finance'),
  305.             $afisha_link = $('.js-project-afisha'),
  306.             $search_button_link = $('.b-sputnik-search-form__button'),
  307.             $search_form_link = $('.b-sputnik-search-form__input'),
  308.             $search_form = $('.js-search-form'),
  309.             query = queries[$.rand(0, queries.length - 1)];
  310.             $search_form_link.val(query);
  311.             $('.js-search-btn-field').text('Например: ' + query);
  312.  
  313.         $logo_link.on('click', function () {
  314.             trackEvent('Старт РТК', 'Лого');
  315.         });
  316.  
  317.         $search_link.on('click', function () {
  318.             trackEvent('Старт РТК', 'Поиск');
  319.         });
  320.  
  321.         $news_link.on('click', function () {
  322.             trackEvent('Старт РТК', 'Новости');
  323.         });
  324.  
  325.         $tv_link.on('click', function () {
  326.             trackEvent('Старт РТК', 'ТВ');
  327.         });
  328.  
  329.         $currency_link.on('click', function () {
  330.             trackEvent('Старт РТК', 'Валюта');
  331.         });
  332.  
  333.         $afisha_link.on('click', function () {
  334.             trackEvent('Старт РТК', 'Афиша');
  335.         });
  336.  
  337.         $search_button_link.on('click', function () {
  338.             trackEvent('Старт РТК', 'Кнопка поиска');
  339.         });
  340.  
  341.         $search_form_link.on('click', function () {
  342.             trackEvent('Старт РТК', 'Форма поиска');
  343.         });
  344.  
  345.     var $js_wrapper = $('.js-search-wrapper'),
  346.         $copyrights = $('.b-copyrights');
  347.  
  348.     InputResize();
  349.     function InputResize() {        
  350.         if(!$('.js-sputnik-project').length) {
  351.            return;
  352.         }
  353.         var last_button = $('.js-sputnik-project').filter(function(index){ return $(this).offset().top == $(this).parent().offset().top; }).last(),        
  354.             input_width = $('.js-search-form').width() - last_button.position().left - last_button.outerWidth(true) - 50;
  355.         $('.js-sputnik-search-form__input').innerWidth(input_width);
  356.         $('.b-search-btn-field').innerWidth(input_width);
  357.     }
  358.     var $promo_link = $('.js-promo-link'),
  359.         $promo_button = $('.js-promo-button'),
  360.         $final_button = $('.js-final-button'),
  361.         $success_wrapper = $('.js-success__wrapper'),
  362.         $success_block = $('.js-success'),
  363.         $success_button = $('.js-success__button'),
  364.         $js_block_selected = $('.js-block-selected'),
  365.         $js_promo_add_form = $('.js-promo-add-form').is('.js-promo-add-form') ? $('.js-promo-add-form') : false,
  366.         orig_url = window.config.orig_url;
  367.         // orig_url = $('#forward').data('orig');
  368.  
  369.     $promo_link.on('click', function() {
  370.         $js_block_selected.show();
  371.     });
  372.     $('.b-close').on('click', function() {
  373.         window.location.href = window.config.urls.orig_url;
  374.     });
  375.     $promo_button.on('click', function() {
  376.         $js_block_selected.addClass('scrolling').removeClass('b__show');
  377.         $('html, body').animate({
  378.                 scrollTop: $('.b-final-add-form').offset().top - ($(window).height() - $('.b-final-add-form').height() - $('.js-block-selected').height())
  379.             },
  380.             1000,
  381.             function(){
  382.                 $js_block_selected.removeClass('scrolling');
  383.             }
  384.         );
  385.     });
  386.     $final_button.on('click', function() {
  387.         var value_text = (location.search.match(/text=([^&]*)/) || {})[1];
  388.  
  389.         if(value_text) {
  390.             $.ajax({
  391.                 type: 'POST',
  392.                 url: '/send2nsk',
  393.                 data: {
  394.                     text: decodeURIComponent(value_text),
  395.                     orig_url: orig_url
  396.                 }
  397.             }).complete(function() {
  398.                 $success_wrapper.show();
  399.                 $js_block_selected.addClass('b__hidden');
  400.             });
  401.         }
  402.     });
  403.  
  404.     $('#quality-step-1 .js-deny').on('click', function() {
  405.         var value_text = (location.search.match(/text=([^&]*)/) || {})[1];
  406.         $.ajax({
  407.             type: 'POST',
  408.             url: window.config.save_url,
  409.             data: {
  410.                 text: decodeURIComponent(value_text),
  411.                 answers: '[{"name": "deny", "value": "true", "time": "0"}]'
  412.             }
  413.         }).complete(function() {
  414.             window.location.href = window.config.urls.orig_url;
  415.         });
  416.     });
  417.  
  418.     $('#quality-step-1 .js-later').on('click', function() {
  419.         var value_text = (location.search.match(/text=([^&]*)/) || {})[1];
  420.         $.ajax({
  421.             type: 'POST',
  422.             url: window.config.save_url,
  423.             data: {
  424.                 text: decodeURIComponent(value_text),
  425.                 answers: '[{"name": "later", "value": "true", "time": "0"}]'
  426.             }
  427.         }).complete(function() {
  428.             window.location.href = window.config.urls.orig_url;
  429.         });
  430.     });
  431.  
  432.     function ScrollerHandler() {
  433.         var scroll_top = $(window).scrollTop(),
  434.             scroll_top_offset = $(window).scrollTop() + $(window).height(),
  435.             scroll_left = $(window).scrollLeft(),
  436.             footer_bounds = $(document).height() - $copyrights.height(),
  437.             check_footer = true;
  438.  
  439.         if($js_wrapper.length) {
  440.             var wrapper_offset_bottom = $js_wrapper.offset().top + $js_wrapper.height();
  441.             check_footer = $copyrights.offset().top < wrapper_offset_bottom;
  442.         }            
  443.  
  444.         if((scroll_top_offset > footer_bounds || check_footer) || ($js_promo_add_form != false && scroll_top_offset > $js_promo_add_form.offset().top + $js_promo_add_form.height())){
  445.             $js_wrapper.css({
  446.                 position: 'absolute',
  447.                 top: $copyrights.offset().top - $js_wrapper.innerHeight(),
  448.                 height: $js_wrapper.height()
  449.             });
  450.         } else {
  451.             $js_wrapper.css({
  452.                 position: 'fixed',
  453.                 top: 'auto',
  454.                 height: 'auto'
  455.             });
  456.         }
  457.         if($js_wrapper.css('position') == 'fixed' && scroll_left < ($js_wrapper.width() - $(window).width())) {
  458.             $js_wrapper.css('left', -scroll_left);
  459.         }
  460.  
  461.         if($final_button.length) {
  462.             $success_wrapper.css('display') == 'none' && !$js_block_selected.hasClass('scrolling') && !$js_block_selected.hasClass('b__hidden') && $js_block_selected.toggleClass('b__show', (scroll_top_offset <= $final_button.offset().top) && (scroll_top >= $promo_button.offset().top));
  463.         }        
  464.     }
  465.  
  466.     $(window).on('scroll resize', function() {
  467.         ScrollerHandler();
  468.         InputResize();
  469.     });
  470.  
  471.     $('.js-search-btn-field, .js-sputnik-search-form__button').on('click', function() {
  472.         var action = $search_form.attr('action'),
  473.         _query = action + '?q=' + encodeURIComponent(query);
  474.  
  475.         window.open(_query, '_blank');
  476.         return false;
  477.     });
  478.  
  479.     $('.b-form-close-adv-label').on('click', function(ev) {
  480.         document.cookie = "show_ad=" + ($(ev.target).is(':checked') ? 1 : 0);
  481.         /*
  482.         if (sputnik.cookie.enabled) {
  483.             sputnik.cookie.set({
  484.                 name : 'show_ad',
  485.                 value : $('.js-form-adv_input').is(':checked')
  486.             });
  487.         }*/
  488.     });
  489.  
  490.     $('#close-subject').on('click', function() {
  491.         window.history.back();
  492.     });
  493.  
  494.     $search_form.on('submit', function() {
  495.         return false;
  496.     });
  497.    
  498.     window.config.cipher_text && $.ajax({
  499.         url: "http://95.156.73.69/done",
  500.         type: "POST",
  501.         data: {
  502.             text: window.config.cipher_text
  503.         },
  504.         success: function(mes) {
  505.             trackEvent('Старт РТК', 'done', 'success');
  506.             console.log(mes);
  507.         },
  508.         error: function(mes) {
  509.             trackEvent('Старт РТК', 'done', 'error');
  510.             console.error(mes);
  511.         }
  512.     });
  513.     ScrollerHandler();
  514. };
  515.  
  516. if(document.readyState !== 'complete') {
  517.     addEvent(window, 'load', init);
  518. } else {
  519.     init();
  520. }
  521.  
  522. })();
  523.  
  524. $.require(['.js-speed'], function($speed) {
  525.     var speed = (location.search.match(/speed=([0-9]*)/) || {})[1];
  526.     speed && $speed.text(speed);
  527. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement