PageSourceSearch

https://psychoanalyse.ru/template/js/main.js?1790936909

js psychoanalyse.ru collected 2026-10-02 10:28:35 UTC 10,432 bytes, 316 lines download raw bytes

1function check_webp_feature(feature, callback) {
2    var kTestImages = {
3        lossy: "UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",
4        lossless: "UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==",
5        alpha: "UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA==",
6        animation: "UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA"
7    };
8    var img = new Image();
9    img.onload = function () {
10        var result = (img.width > 0) && (img.height > 0);
11        callback(feature, result);
12    };
13    img.onerror = function () {
14        callback(feature, false);
15    };
16    img.src = "data:image/webp;base64," + kTestImages[feature];
17}
18
19function getScreen(webp = true){
20let reload = false;
21let root = document.getElementsByTagName('html');
22let s = window.location.search;
23let url;
24    if ((root[0].clientWidth>=640)&&(root[0].className.indexOf('touch', 0)>-1)) {
25        if(s===''){
26            url = window.location.href +'?screen=wide';
27        } else {
28            url = window.location.href.replace(s,s+'&screen=wide');
29        }
30        reload = true;
31    }
32    
33    if ((root[0].clientWidth<640)&&(root[0].className.indexOf('noTouch', 0)>-1)) {
34        if(s===''){
35            url = window.location.href +'?screen=mobile';
36        } else {
37            url = window.location.href.replace(s,s+'&screen=mobile');
38        }
39        reload=true;
40    }
41    
42    if(reload) {
43        window.location.href = url;
44    }
45}
46
47var rem = function rem() {
48     let html = document.getElementsByTagName('html')[0];
49
50     return function () {
51         return parseInt(window.getComputedStyle(html)['fontSize']);
52     }
53 }();
54
55// This function will convert pixel to rem
56function toRem(length) {
57    return (parseInt(length) / rem());
58}
59
60function insertCSS(sname){
61    if (document.createStyleSheet){
62        document.createStyleSheet(sname);
63    } else {
64        $("head").append($('<link rel="stylesheet" href="'+sname+'" type="text/css" media="screen">'));
65    }
66}
67
68function insertScript(sname, path,callback){
69	path = path || false;
70	var d = document,
71		w = window,
72		n = d.getElementsByTagName("script")[0],
73		s = d.createElement("script"),
74		f = function () { n.parentNode.insertBefore(s, n); };
75	s.type = "text/javascript";
76	s.async = true;
77	s.onload = callback;
78	if(path){s.src = (d.location.protocol == "https:" ? "https:" : "http:") + sname;}
79	else {s.src=sname;}
80	if (w.opera == "[object Opera]") {
81    d.addEventListener("DOMContentLoaded", f, false);
82    } else { f(); }
83}
84
85check_webp_feature('lossy',function (feature, isSupported) {
86        getScreen(isSupported);
87    }
88);
89
90$(document).ready(function(){
91
92$('html').removeClass('noJS');
93$('a[rel~="external"]').attr('target','_blank');
94
95$(window).resize(()=>{check_webp_feature('lossy',function (feature, isSupported) {
96        getScreen(isSupported);
97    }
98);});
99
100//Загрузка инпутмаски
101if($('[type="tel"], [type="email"]').length>0){
102insertScript('//cdnjs.cloudflare.com/ajax/libs/jquery.inputmask/5.0.3/jquery.inputmask.min.js',true,()=>{
103    $('[type="tel"]').inputmask({"mask": "+7 (999) 999-99-99"});
104    $('[type="email"]').inputmask({
105        mask: "*{1,20}[.*{1,20}][.*{1,20}][.*{1,20}]@*{1,20}[.*{2,6}][.*{1,2}]",
106        greedy: false,
107        onBeforePaste: function (pastedValue, opts) {
108          pastedValue = pastedValue.toLowerCase();
109          return pastedValue.replace("mailto:", "");
110        },
111        definitions: {
112          '*': {
113            validator: "[0-9A-Za-z!#$%&'*+/=?^_`{|}~\-]",
114            casing: "lower"
115          }
116        }
117    });
118});
119}
120
121$(window).on('scroll',function(){
122    var top = $('html, body').scrollTop()||$(window).scrollTop();
123    var method = top>10?'addClass':'removeClass';
124    $('body')[method]('scroll');
125});
126
127$(document).on('click','#blog .list [data-target]',function(){
128    let lim = $('#indexBody').length>0?3:0;
129    $.ajax({
130        url:'/ajax.json',
131        data:'action=blog&parent='+$(this).data('target')+'&limit='+lim,
132        type: 'post',
133        success: (res) => {
134            $(this).siblings().removeClass('active');
135            $(this).addClass('active');
136            $('#blog .data').html(res);
137        }
138    });
139});
140
141$(document).on('click','a',function(e){
142    var hash = $(this).attr('href').split("#")[1];
143    console.log(hash);
144    if(typeof(hash) !== 'undefined' && hash!==''){
145        e.preventDefault();
146        $([document.documentElement, document.body]).animate({
147            scrollTop: $("#"+hash).offset().top-3*rem()
148        }, 500);
149        
150    }
151});
152
153$(document).on('click','#faq dt',function(){
154    $(this).toggleClass('active');
155});
156
157$(document).on('click','.menuopen',function(){
158    $('#mainMenu').toggleClass('active');
159});
160
161$(document).on('click','#blog .blogLinks a',function(e){
162    e.preventDefault();
163    e.stopPropagation();    
164    $.ajax({
165        url:$(this).attr('href'),
166        type:'post',
167        success:(res)=>{
168            $($(this).data('replace')).html(res);
169            $(this).siblings().removeClass('active');
170            $(this).addClass('active');
171        }
172    });
173});
174
175function ajaxWrapper(obj, res){
176    switch(res.type){
177        case 'text': alert(res.message);
178            break;
179        case 'popup':
180            $('#popUpWrapper').remove();
181            $('body').append('<div id="popUpWrapper" class="'+obj.data('pwc')+'"></div>');
182            $('#popUpWrapper').html(res.content);
183            break;
184        case 'replace':
185            $(obj.data('replace')).replaceWith(res.content);
186            break;
187        case 'add':
188            if(obj.parent().hasClass('viewable')){
189                obj.parent().addClass('view');
190            }
191            obj.parent().append(res.content);
192        break;
193        case 'values':
194            for (let key in res.values){
195                if(res.values[key].data){
196                    $(res.values[key].selector).data(res.values[key].data.key,res.values[key].data.value);
197                }
198                if(res.values[key].value){
199                    $(res.values[key].selector).html(res.values[key].value);
200                }
201                if(res.values[key].class){
202                    $(res.values[key].selector).addClass(res.values[key].class);
203                }
204                if(res.values[key].remClass){
205                    $(res.values[key].selector).removeClass(res.values[key].remClass);
206                }
207            }
208            if(res.popup){
209                $('#popUpWrapper').remove();
210                $('body').append('<div id="popUpWrapper" class="'+res.popupClass+'"></div>');
211                $('#popUpWrapper').html(res.popup);
212            }
213            break;
214        case 'reload':
215            window.location.reload();
216        break;
217        case 'load':
218            window.location.href = res.url;
219        break;
220    }
221    if(res.script){
222        eval(res.script);
223    }
224}
225
226$(document).on('click','.ajax',function(e){
227    e.preventDefault();
228    e.stopPropagation();
229    let data=[];
230    if($(this).data('value')){
231        data.push('value='+$(this).data('value'));
232    }
233    $.ajax({
234        url:$(this).attr('href'),
235        type:'post',
236        data:data.join('&'),
237        success:(res)=>{ajaxWrapper($(this),res)}
238    });
239});
240
241$(document).on('submit','.ajaxForm',function(e){
242    e.preventDefault();
243    e.stopPropagation();
244    let obj = $(this);
245    let data = obj.serialize();
246    grecaptcha.ready(function() {
247        grecaptcha.execute('6LffwbgUAAAAAAwEDHCwsn-GhWeSMRjZ2nn0KMch', {action: 'feedback'}).then(function(token) {
248            $('body').append('<div id="waiter"></div>');
249            $.ajax({
250                url:obj.attr('action'),
251                data:data+'&token='+token,
252                type:'post',
253                success:(res)=>{ajaxWrapper(obj,res);$('#waiter').remove();}
254            });
255        });
256    });
257});
258
259$(document).on('click','#popUpWrapper, #popUpWrapper .close',(e) => {$('#popUpWrapper').remove();});
260$(document).on('click','#popUpWrapper > *',(e) => {e.stopPropagation()});
261
262$(document).on('change','#contactForm .changer input',function(){
263    let id = $(this).data('target');
264    $(id).siblings('.hided').removeClass('active');
265    $(id).addClass('active');
266});
267
268$(document).on('click','.galList .image',function(){
269    $(this).siblings().removeClass('active');
270    $(this).addClass('active');
271    $('.galImage .img').css('background-image','url("'+$(this).data('image')+'")');
272    let num = $('.galList .active').index('.galList .image')+1;
273    let counter = $('<span class="number"></span>');
274    counter.html('Фото '+num+' из '+$('.galList .image').length);
275    $('.galImage .img').html($(this).find('.title').html());
276    $('.galImage .img').append(counter);
277});
278
279$(document).on('click','#galList .prev',function(){
280    $('.galList').animate({scrollLeft: ($('.galList').scrollLeft()-200)+'px'},300);
281});
282
283$(document).on('click','#galList .next',function(){
284    $('.galList').animate({scrollLeft: ($('.galList').scrollLeft()+200)+'px'},300);
285});
286
287$(document).on('click','.galImage .prev',function(){
288    let num = $('.galList .active').index('.galList .image');
289    if(num===0){num = $('.galList .image').length-1;}else{num--;}
290    let itm = $('.galList .image').eq(num);
291    itm.siblings().removeClass('active');
292    itm.addClass('active');
293    $('.galImage .img').css('background-image','url("'+itm.data('image')+'")');   
294    let counter = $('<span class="number"></span>');
295    counter.html('Фото '+(num+1)+' из '+$('.galList .image').length);
296    $('.galImage .img').html(itm.find('.title').html());
297    $('.galImage .img').append(counter);
298});
299
300$(document).on('click','.galImage .next',function(){
301    let num = $('.galList .active').index('.galList .image');
302    if(num==$('.galList .image').length-1){num = 0;}else{num++;}
303    let itm = $('.galList .image').eq(num);
304    itm.siblings().removeClass('active');
305    itm.addClass('active');
306    $('.galImage .img').css('background-image','url("'+itm.data('image')+'")');   
307    let counter = $('<span class="number"></span>');
308    counter.html('Фото '+(num+1)+' из '+$('.galList .image').length);
309    $('.galImage .img').html(itm.find('.title').html());
310    $('.galImage .img').append(counter);
311});
312
313//$('.galList').animate({scrollLeft: ($('.galList').scrollLeft()+200)+'px'},300);
314
315});
316

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.