PageSourceSearch

https://www.cnaql.com/wp-content/themes/YourColor/components/packs/%23footer/js/setup.js?1631247801&ver=7.0.6

js cnaql.com collected 2026-10-06 13:17:27 UTC 45,484 bytes, 1,229 lines download raw bytes

1;(function($) {
2
3    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
4        a256 = '',
5        r64 = [256],
6        r256 = [256],
7        i = 0;
8
9    var UTF8 = {
10
11        /**
12         * Encode multi-byte Unicode string into utf-8 multiple single-byte characters
13         * (BMP / basic multilingual plane only)
14         *
15         * Chars in range U+0080 - U+07FF are encoded in 2 chars, U+0800 - U+FFFF in 3 chars
16         *
17         * @param {String} strUni Unicode string to be encoded as UTF-8
18         * @returns {String} encoded string
19         */
20        encode: function(strUni) {
21            // use regular expressions & String.replace callback function for better efficiency
22            // than procedural approaches
23            var strUtf = strUni.replace(/[\u0080-\u07ff]/g, // U+0080 - U+07FF => 2 bytes 110yyyyy, 10zzzzzz
24            function(c) {
25                var cc = c.charCodeAt(0);
26                return String.fromCharCode(0xc0 | cc >> 6, 0x80 | cc & 0x3f);
27            })
28            .replace(/[\u0800-\uffff]/g, // U+0800 - U+FFFF => 3 bytes 1110xxxx, 10yyyyyy, 10zzzzzz
29            function(c) {
30                var cc = c.charCodeAt(0);
31                return String.fromCharCode(0xe0 | cc >> 12, 0x80 | cc >> 6 & 0x3F, 0x80 | cc & 0x3f);
32            });
33            return strUtf;
34        },
35
36        /**
37         * Decode utf-8 encoded string back into multi-byte Unicode characters
38         *
39         * @param {String} strUtf UTF-8 string to be decoded back to Unicode
40         * @returns {String} decoded string
41         */
42        decode: function(strUtf) {
43            // note: decode 3-byte chars first as decoded 2-byte strings could appear to be 3-byte char!
44            var strUni = strUtf.replace(/[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g, // 3-byte chars
45            function(c) { // (note parentheses for precence)
46                var cc = ((c.charCodeAt(0) & 0x0f) << 12) | ((c.charCodeAt(1) & 0x3f) << 6) | (c.charCodeAt(2) & 0x3f);
47                return String.fromCharCode(cc);
48            })
49            .replace(/[\u00c0-\u00df][\u0080-\u00bf]/g, // 2-byte chars
50            function(c) { // (note parentheses for precence)
51                var cc = (c.charCodeAt(0) & 0x1f) << 6 | c.charCodeAt(1) & 0x3f;
52                return String.fromCharCode(cc);
53            });
54            return strUni;
55        }
56    };
57
58    while(i < 256) {
59      var c = String.fromCharCode(i);
60      a256 += c;
61      r256[i] = i;
62      r64[i] = b64.indexOf(c);
63      ++i;
64    }
65
66    function code(s, discard, alpha, beta, w1, w2) {
67        s = String(s);
68        var buffer = 0,
69            i = 0,
70            length = s.length,
71            result = '',
72            bitsInBuffer = 0;
73
74        while(i < length) {
75            var c = s.charCodeAt(i);
76            c = c < 256 ? alpha[c] : -1;
77
78            buffer = (buffer << w1) + c;
79            bitsInBuffer += w1;
80
81            while(bitsInBuffer >= w2) {
82                bitsInBuffer -= w2;
83                var tmp = buffer >> bitsInBuffer;
84                result += beta.charAt(tmp);
85                buffer ^= tmp << bitsInBuffer;
86            }
87            ++i;
88        }
89        if(!discard && bitsInBuffer > 0) result += beta.charAt(buffer << (w2 - bitsInBuffer));
90        return result;
91    }
92
93    var Plugin = $.base64 = function(dir, input, encode) {
94            return input ? Plugin[dir](input, encode) : dir ? null : this;
95        };
96
97    Plugin.btoa = Plugin.encode = function(plain, utf8encode) {
98        plain = Plugin.raw === false || Plugin.utf8encode || utf8encode ? UTF8.encode(plain) : plain;
99        plain = code(plain, false, r256, b64, 8, 6);
100        return plain + '===='.slice((plain.length % 4) || 4);
101    };
102
103    Plugin.atob = Plugin.decode = function(coded, utf8decode) {
104        coded = coded.replace(/[^A-Za-z0-9\+\/\=]/g, "");
105        coded = String(coded).split('=');
106        var i = coded.length;
107        do {--i;
108            coded[i] = code(coded[i], true, r64, a256, 6, 8);
109        } while (i > 0);
110        coded = coded.join('');
111        return Plugin.raw === false || Plugin.utf8decode || utf8decode ? UTF8.decode(coded) : coded;
112    };
113}(jQuery));
114$.base64.utf8encode = true;
115
116// # Cookies Integration
117  (function (factory) {
118        if (typeof define === 'function' && define.amd) {
119            // AMD (Register as an anonymous module)
120            define(['jquery'], factory);
121        } else if (typeof exports === 'object') {
122            // Node/CommonJS
123            module.exports = factory(require('jquery'));
124        } else {
125            // Browser globals
126            factory(jQuery);
127        }
128    }(function ($) {
129        var pluses = /\+/g;
130        function encode(s) {
131            return config.raw ? s : encodeURIComponent(s);
132        }
133        function decode(s) {
134            return config.raw ? s : decodeURIComponent(s);
135        }
136        function stringifyCookieValue(value) {
137            return encode(config.json ? JSON.stringify(value) : String(value));
138        }
139        function parseCookieValue(s) {
140            if (s.indexOf('"') === 0) {
141                // This is a quoted cookie as according to RFC2068, unescape...
142                s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
143            }
144            try {
145                // Replace server-side written pluses with spaces.
146                // If we can't decode the cookie, ignore it, it's unusable.
147                // If we can't parse the cookie, ignore it, it's unusable.
148                s = decodeURIComponent(s.replace(pluses, ' '));
149                return config.json ? JSON.parse(s) : s;
150            } catch(e) {}
151        }
152        function read(s, converter) {
153            var value = config.raw ? s : parseCookieValue(s);
154            return $.isFunction(converter) ? converter(value) : value;
155        }
156        var config = $.cookie = function (key, value, options) {
157            // Write
158            if (arguments.length > 1 && !$.isFunction(value)) {
159                options = $.extend({}, config.defaults, options);
160                if (typeof options.expires === 'number') {
161                    var days = options.expires, t = options.expires = new Date();
162                    t.setMilliseconds(t.getMilliseconds() + days * 864e+5);
163                }
164                return (document.cookie = [
165                    encode(key), '=', stringifyCookieValue(value),
166                    options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
167                    options.path    ? '; path=' + options.path : '',
168                    options.domain  ? '; domain=' + options.domain : '',
169                    options.secure  ? '; secure' : ''
170                ].join(''));
171            }
172            // Read
173            var result = key ? undefined : {},
174                // To prevent the for loop in the first place assign an empty array
175                // in case there are no cookies at all. Also prevents odd result when
176                // calling $.cookie().
177                cookies = document.cookie ? document.cookie.split('; ') : [],
178                i = 0,
179                l = cookies.length;
180            for (; i < l; i++) {
181                var parts = cookies[i].split('='),
182                    name = decode(parts.shift()),
183                    cookie = parts.join('=');
184                if (key === name) {
185                    // If second argument (value) is a function it's a converter...
186                    result = read(cookie, value);
187                    break;
188                }
189                // Prevent storing a cookie that we couldn't decode.
190                if (!key && (cookie = read(cookie)) !== undefined) {
191                    result[name] = cookie;
192                }
193            }
194            return result;
195        };
196        config.defaults = {};
197        $.removeCookie = function (key, options) {
198            // Must not alter options, thus extending a fresh object...
199            $.cookie(key, '', $.extend({}, options, { expires: -1 }));
200            return !$.cookie(key);
201        };
202    }));
203
204// # Page Speed Boost
205   var CookiedAjax = [];
206   function ensureCssFileInclusion(cssFileToCheck) {
207       var styleSheets = document.styleSheets;
208       for (var i = 0, max = styleSheets.length; i < max; i++) {
209           if (styleSheets[i].href == cssFileToCheck) {
210               return;
211           }
212       }
213       // because no matching stylesheets were found, we will add a new HTML link element to the HEAD section of the page.
214       var link = document.createElement("link");
215       link.rel = "stylesheet";
216       link.href = cssFileToCheck;
217       document.getElementsByTagName("head")[0].appendChild(link);
218   }
219   // # 
220  
221   $('body').on("click",'.ez-toc-title',function(){
222      $(this).parent().toggleClass('-opentable-');
223   });
224   $('body').on("click", '#openSEarch i.far.fa-search', function(){
225      $('.search_header form').addClass('active');
226      $('#openSEarch').addClass('close');
227     
228   });
229   $('body').on("click", '#openSEarch .fa-xmark', function(){
230      $('.search_header form').removeClass('active');
231      $('#openSEarch').removeClass('close');
232   });
233
234// #  children
235
236   $('body').on("click",'.menu-item-has-children>a',function(a){  
237      a.preventDefault();
238      a.stopPropagation();
239       $(this).parent().find('>i').toggleClass('trans');
240       $('.menu-item-has-children').toggleClass('hover')
241         $(this).parent().find("> ul.sub-menu").toggleClass("active"), $(this).not($(this).find("> ul.sub-menu"));
242
243      
244   });
245// # Ajax Handler
246   var AjaxHandlerXHR = false;
247   var AjaxHandlerLastData = false;
248   var RetryInterval;
249   function AjaxRequest(data) {
250      if( AjaxHandlerXHR != false && AjaxHandlerLastData.url == data.url ) {
251         AjaxHandlerXHR.abort();
252      }
253      data.error = function (jqXHR, exception) {
254         var msg = '';
255         if (jqXHR.status == 404) {
256            msg = 'لم يتم العثور على الصفحة.';
257            AjaxHandlerXHR = false;
258         } else if (jqXHR.status == 500) {
259            msg = 'حدث خطأ اثناء معاينة الملف.';
260            AjaxHandlerXHR = false;
261         } else if (exception === 'timeout') {
262            msg = 'إنتهت مهلة الإتصال.';
263            AjaxHandlerXHR = false;
264         }
265         if( msg != '' && msg != undefined ) {
266            RetryInterval = setInterval(AjaxRequest(data), 5000);
267         }
268      }
269      AjaxHandlerLastData = data;
270      AjaxHandlerXHR = $.ajax(data).done(function(){
271         clearInterval(RetryInterval);
272         AjaxHandlerXHR = false;
273         InitializeTrig();
274      });
275      return true;
276   }
277
278// # Ajaxify
279   var LoadedPages = [];
280   function ChangeTitle(title) {
281      $(document).prop("title", title);
282   }
283   function ChangeURL(url) {
284      url = url.replace('/?ajax=1', '');
285      if(url!=window.location){
286         window.history.pushState({path:url},'',url);
287       }
288   }
289   window.onpopstate = function(e) {
290      url = location.href;
291      BackToURL(url);
292      e.preventDefault();
293   }
294   function outerHTML(node){
295       return node.outerHTML || new XMLSerializer().serializeToString(node);
296   }
297   function BackToURL(url) {
298      var owl, elements;
299      if( LoadedPages[url] != undefined ) {
300         $('root').after(LoadedPages[url].output).remove();
301         $('body, html').animate({"scrollTop":LoadedPages[url].scroll}, 0);
302         LoadedPages[location.href] = {
303            "title":$(document).prop('title'),
304            "output":outerHTML(document.querySelector('root')),
305            "scroll":$(document).scrollTop() || $(window).scrollTop(),
306         };
307         //
308         ChangeTitle(LoadedPages[url].title);
309         ChangeURL(url);
310         InitializeTrig();
311         $(DeletedPostsItems).each(function(k, v){
312            $('.PostItem[cpd="'+v+'"]').remove();
313         });
314      }else {
315         $('#BackPopstateURL').remove();
316         $('root').append('<a href="'+url+'" id="BackPopstateURL" style="display:none;">eee</a>');
317         //
318         $('#BackPopstateURL').trigger("click");
319      }
320   }
321   var mouseY, mouseX;
322   $(window).on("mousemove", function(e) {
323       mouseX = e.pageX;
324       mouseY = e.pageY;
325   })
326   function AjaxNavigate(url,s='page') {
327      if( AjaxHandlerXHR != false ) {
328         AjaxHandlerXHR.abort();
329      }
330      Count = 0;
331      LoadingRelated = false;
332      Loadingsingle = false;
333      LoadingMore = false;
334
335      if( sharepopover != false ) {
336         sharepopover.trigger('destroy.owl.carousel').css("opacity", '0');
337      }
338      //
339      LoadedPages[location.href] = {
340         "title":$(document).prop('title'),
341         "output":outerHTML(document.querySelector('root')),
342         "scroll":$(document).scrollTop() || $(window).scrollTop(),
343      };
344      $('.--news-loader').remove();
345      mouseY = mouseY - $(window).scrollTop()   ;
346      $('body').append('<div style="left:'+(mouseX - 35)+'px;top:'+(mouseY - 35)+'px;" class="--news-loader"><svg version="1.1" id="loader-1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="30px" height="30px" viewBox="0 0 50 50" style="enable-background:new 0 0 50 50;" xml:space="preserve"> <path fill="#005fa3" d="M43.935,25.145c0-10.318-8.364-18.683-18.683-18.683c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615c8.072,0,14.615,6.543,14.615,14.615H43.935z"> <animateTransform attributeType="xml" attributeName="transform" type="rotate" from="0 25 25" to="360 25 25" dur="0.6s" repeatCount="indefinite"></animateTransform> </path> </svg></div>');
347         var AjaxURL = url;
348         AjaxRequest({
349            url: AjaxURL,
350            type: "GET",
351            data: {"ajax":true},
352            dataType: 'json',
353            success: function(msg) {
354               $('.--news-loader').remove();
355               $('root').after(msg.output).remove();
356               //
357               var ScrolltoElem = false;
358               if( url.indexOf('#') > -1 ) {
359                  var Element = url.split('#')[1];
360                  ScrolltoElem = Element;
361               }
362               if( ScrolltoElem == false ) {
363                  $('body, html').animate({"scrollTop":0}, 0);
364               }else {
365                  $('body, html').animate({"scrollTop":$('#'+ScrolltoElem).offset().top}, 0);
366               }
367               ChangeURL(url);
368               ChangeTitle(msg.title);
369               InitializeTrig();
370
371            },
372         });
373   }
374
375
376// ## UniqID ## //
377  var charstoformid = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz'.split('');
378  var UniqID = function() {
379    var idlength = 10;
380      var uniqid = '';
381      for (var i = 0; i < idlength; i++) {
382        uniqid += charstoformid[Math.floor(Math.random() * charstoformid.length)];
383      }
384      return uniqid;
385  }
386
387// # THEME CONSTRACT FUNCTIONS
388  function isEmpty(value){
389    return !$.trim(value);
390  }
391
392  function stripslashes (str) {
393    return (str + '').replace(/\\(.?)/g, function (s,n1) {
394      switch (n1) {
395        case '\\':
396          return '\\';
397        case '0':
398          return '\u0000';
399        case '':
400          return '';
401        default:
402          return n1;
403      }
404    });
405  }
406
407  function strip_tags(str, allow){
408    allow = (((allow || '') + '').toLowerCase().match(/<[a-z][a-z0-9]*>/g) || []).join('');
409
410    var tags = /<\/?([a-z][a-z0-9]*)\b[^>]*>/gi;
411    var commentsAndPhpTags = /<!--[\s\S]*?-->|<\?(?:php)?[\s\S]*?\?>/gi;
412    return str.replace(commentsAndPhpTags, '').replace(tags, function ($0, $1) {
413      return allow.indexOf('<' + $1.toLowerCase() + '>') > -1 ? $0 :'';
414    });
415  }
416
417// # InitializeTrig
418   function LazyloaderHook() {
419      $("[data-loader-style]").each(function (e, t) {
420         var n = $(t).offset().top - $(window).height();
421         $(window).scrollTop() >= n && ($(t).fadeOut(100), $(t).attr("style", $(t).attr("data-loader-style")), $(t).removeAttr("data-loader-style"), setTimeout(function () {
422            $(t).fadeIn(100)
423         }, 90))
424      }), $("[data-loader-src]").each(function (e, t) {
425         var n = $(t).offset().top - $(window).height();
426         $(window).scrollTop() >= n && ($(t).fadeOut(100), $(t).attr("src", $(t).attr("data-loader-src")), $(t).removeAttr("data-loader-src"), setTimeout(function () {
427            $(t).fadeIn(100)
428         }, 90))
429      }),$("[data-loader-href]").each(function (e, t) {
430         var n = $(t).offset().top - $(window).height();
431         $(window).scrollTop() >= n && ($(t).fadeOut(100), $(t).attr("href", $(t).attr("data-loader-href")), $(t).removeAttr("data-loader-href"), setTimeout(function () {
432            $(t).fadeIn(100)
433         }, 90))
434      })
435      
436
437   }
438   LazyloaderHook()
439   
440
441   var IPInfo = false;
442   var SidebarTerms = false, CurrenciesSlider = false, Scrollingslider = false, sharepopover = false, articlesmodel3 = false, matchesbar = false;
443   function InitializeTrig(){
444      
445      if( navigator.userAgent.indexOf("Lighthouse") == -1 ) {
446         LazyloaderHook();
447      }
448      var WindowWidth = $(window).width();
449      // # Auto Focus
450         if( $('[autofocus]').val() == '' ) {
451            $('[autofocus]').focus();
452         }
453         
454         $(window).scroll(ScrollListener);
455         ScrollListener();
456      
457      // # Owl Carousel
458        // # ads-widght
459            if( $('.album-slider').length > 0 && $('.album-slider.owl-loaded').length == 0 ) {
460                $('.album-slider').not('.-owl-loaded').each(function(els, el){
461                  sharepopover = $(el).owlCarousel({
462                  margin:15,
463                    rtl: true,
464                    loop: false,
465                    center: false,
466                    nav: true,
467                    dots:false,
468                    navSpeed:300,
469                    navText: ['<i class="fa fa-angle-left"></i>', '<i class="fa fa-angle-right"></i>'],
470                    autoplay: false,
471                    responsiveClass:true,
472                    autoWidth: true,
473                }).css("opacity", '1');
474                });
475            }   
476            
477   
478      
479   }
480   InitializeTrig();
481// # Scroll Listener
482   var Count = 0;
483   var LoadingRelated = false;
484   var LoadingMore = false;
485   var LoadedCounter = 1;
486   //
487   
488
489   var SingleCounterMore = 0;
490   var SingleScrollAllowed = false;
491
492   function ScrollListener() {
493      
494      if ($("[data-loadmore]").length > 0 && $(window).scrollTop() + $(window).height() > ($('[data-loadmore]').offset().top + $('[data-loadmore]').height()) - 600) {
495         if(LoadingMore == false && $("[data-loadmore]").data('autoloaded') != false && LoadedCounter < 3 && $('[data-loadmore]').data('finish') == false){
496            LoadedCounter = LoadedCounter + 1;
497            MoreAjax($("[data-loadmore]"));
498         }
499      }
500      
501   
502   
503      //
504      
505   }
506   $(window).scroll(ScrollListener);
507
508   window.addEventListener('load', function () {
509      if(navigator.userAgent.indexOf('Lighthouse') === -1 ){
510        $('head').append('<link rel="stylesheet" media="all" href="https://site-assets.fontawesome.com/releases/v6.1.1/css/all.css" />');
511      }
512   })
513// # Comments
514   function __loc(e) {
515      return e
516   }
517   function SubmitComment(form) {
518      var alerts = 0;
519      $(form).find('.alerts').html('');
520      $(form).find('.necessary').removeClass('necessary');
521      if( Currentuser_Logged == true ) {
522         var Data = {
523            "action":'AddComment',
524            "type":'عضو',
525            "yourname":Currentuser_display_name,
526            "email":Currentuser_email,
527            "message":$(form).find('textarea').val(),
528            "rate":$(form).find('.RateValue').val(),
529            "postID":$(form).data('id'),
530            "parent":$(form).attr('data-parent'),
531         };
532         if( $(form).find('textarea').val() == '' ) {
533            alerts++;
534            $(form).find('textarea').addClass('necessary');
535         }
536         if( $(form).find('.RateValue').val() == '' ) {
537            alerts++;
538            $(form).find('.RateComment').addClass('necessary');
539         }
540      }else {
541         var Data = {
542            "action":'AddComment',
543            "type":'عضو',
544            "yourname":$(form).find('[name="yourname"]').val(),
545            "email":$(form).find('[name="email"]').val(),
546            "message":$(form).find('textarea').val(),
547            "rate":$(form).find('.RateValue').val(),
548            "postID":$(form).data('id'),
549            "parent":$(form).attr('data-parent'),
550         };
551         if( $(form).find('textarea').val() == '' ) {
552            alerts++;
553            $(form).find('textarea').addClass('necessary');
554         }
555         if( $(form).find('.RateValue').val() == '' ) {
556            alerts++;
557            $(form).find('.RateComment').addClass('necessary');
558         }
559         if( $(form).find('[name="yourname"]').val() == '' ) {
560            alerts++;
561            $(form).find('[name="yourname"]').addClass('necessary');
562         }
563         if( $(form).find('[name="email"]').val() == '' ) {
564            alerts++;
565            $(form).find('[name="email"]').addClass('necessary');
566         }
567      }
568      if( alerts > 0 ) {
569         $(form).find('.alerts').append('<div class="alert alert-danger">يرجي ملأ الحقول المطلوبة (*)</div>');
570      }else {
571         $('.NoComments').remove();
572         $(form).addClass('loading');
573         $(form).append('<div class="loader"><div class="line"></div> <div class="line"></div> <div class="line"></div> <div class="line"></div> </div>');
574         AjaxRequest({
575            url: HomeURL+'/AjaxCenter/AddComment/',
576            type:'POST',
577            data:Data,
578            dataType: 'json',
579            success: function(msg) {
580               if( msg.error == undefined ) {
581                  $(form).removeClass('loading');
582                  $(form).find('.loader').remove();
583                  $(form).trigger("reset");
584                  $(form).find('.RatingReview > i').removeClass('fixedactive active');
585                  $(form).find('.RateValue').val('');
586                  if( $(form).attr('data-parent') == '0' ) {
587                     if( $('.CommentsListInner').closest('under-post-comments').length > 0 ) {
588                        $('.CommentsListInner').prepend(msg.output);
589                     }else {
590                        $('.CommentsListInner').append(msg.output);
591                     }
592                  }else {
593                     $('#comment-'+$(form).attr('data-parent')).after('<ul class="ChildComments">'+msg.output+'</ul>');
594                  }
595               }
596            }
597         });
598      }
599   }
600   function ReplyComment(e) {
601      $("form.CommentsFormInner").attr("data-parent", $(e).data("c
601omment")), $(".ReplyCommentPreview").remove(), $("form.CommentsFormInner").prepend('<div class="ReplyCommentPreview"><h2><i class="fas fa-reply"></i><em>' + __loc("رد علي") + "</em> <span>" + $(e).parent().find(".NameArea").text() + "</span></h2><p>" + $(e).parent().find(".CommentContent > p").text() + "</p></div>"), $("form.CommentsFormInner > textarea").focus()
602   }
603// # Post references
604            
605    $('body').on('click','.referance-title',function(){
606        $('.referance-Content').toggleClass('active');
607        if($('.referance-Content').hasClass('active')){
608            $('.referance-title i:nth-child(3)').attr('class','fa-solid fa-minus');
609        }else{
610            $('.referance-title i:nth-child(3)').attr('class','fa-solid fa-plus');
611        }
612    })
613// # FaqQuestion
614   $('body').on("click",'[data-open-faq]',function(){
615      var BTN,MyLI,FaqsAnswers,AnswerContext,BoxHeight;
616      BTN = $(this);
617      MyLI = BTN.parent();
618      FaqsAnswers = $('.answer');
619      AnswerContext = $('.answer p');
620      BoxHeight = AnswerContext.outerHeight();
621      BoxHeight = BoxHeight + 6;
622      //
623      if(!MyLI.hasClass('active')){
624         FaqsAnswers.attr("style",'--outheight:'+BoxHeight+'px');
625         setTimeout(function(){
626            MyLI.addClass('active').siblings().removeClass('active');
627         },100);
628      }
629   });
630
631// #  children
632    
633
634// # LoadMore Function 
635   LoadingRelated = false;
636   LoadingMore = false;
637   var Count = 0;
638   var LoadingRelated = false;
639   var LoadingMore = false;
640   var LoadedCounter = 1;
641   function MoreAjax(argument) {
642      $('[data-more-click]').append('<div class="-newsLoaded"><div class="loader"><svg class="circular" viewBox="25 25 50 50"><circle class="path" cx="50" cy="50" r="20" fill="none" stroke-width="2" stroke-miterlimit="10"/></svg></div></div>');
643      LoadingMore = true;
644      var Args = argument.data("loadmore");
645      var AjaxURL = HomeURL+'/AjaxCenter/Loadmore/'+Args+'/';
646      $.ajax({
647         url: AjaxURL,
648         dataType: 'json',
649         success: function(msg) {         
650            $('.-newsLoaded').remove();
651            if(LoadedCounter == 3){
652               argument.attr("data-autoloaded",false);
653               argument.data("autoloaded",false);
654               $('.PostsScrollLoader[data-more-click="'+argument.data("uniqid")+'"]').show();
655            }else if(LoadedCounter == 5){
656               LoadedCounter = 1;
657               argument.attr("data-autoloaded",true);
658               argument.data("autoloaded",true);
659               $('[data-more-click="'+argument.data("uniqid")+'"]').hide();
660            }
661            $('[data-more-click="'+argument.data("uniqid")+'"]').removeClass('isloader');
662            LoadingMore = false;
663            argument.append(msg.output);
664            argument.data("loadmore", msg.arguments);
665
666            if(msg.end != undefined && msg.end == true){
667               argument.attr("data-autoloaded",false);
668               argument.data("autoloaded",false);
669               argument.attr("data-finish",true);
670               $('[data-more-click="'+argument.data("uniqid")+'"]').hide();
671            }
672         }
673      });
674   }
675// # More Click 
676   $('body').on('click','[data-more-click]',function(e){e.preventDefault();
677      var ScrollerCenter = $('.-ScrollerCenter[data-uniqid="'+$(this).data('more-click')+'"]');
678      if(LoadingMore == false && ScrollerCenter.data('finish') == false ){
679         LoadedCounter = ((LoadedCounter < 3)) ? 4 : LoadedCounter + 1;
680         $(this).addClass('isloader');
681         MoreAjax(ScrollerCenter);
682      }
683   });
684// # data-tabs
685   var TabIsClick = false;
686   var Timeout = false;
687   $('body').on('click','[data-tabs]',function(){
688      var BTN,ActionType,AppenderElement,type,NowUniq,cats,number;
689      BTN = $(this);
690      tabType = BTN.data('tabs');
691      type = BTN.data('type');
692      cats = BTN.data('cats');
693      number = BTN.data('number');
694      NowUniq = $(this).data('uniq');
695      AppenderElement = $('.post-model-'+type+'');
696      BTN.addClass('active').siblings().removeClass('active');
697      var AjaxURL = HomeURL+'/AjaxCenter/RelatedPosts/';
698         AppenderElement.addClass("-loading");
699         
700      
701         TabIsClick = true;
702         clearTimeout(Timeout);
703         Timeout = setTimeout(function(){
704            AjaxRequest({
705               url: AjaxURL,
706               dataType: 'json',
707               type: 'POST',
708               data: {
709                  "tabs":tabType,
710                  "type":type,
711                  "cats":cats,
712                  "number":number,
713               },
714               success: function(msg) {
715                  $(AppenderElement).html(msg.output);
716                  $(AppenderElement).removeClass("-loading");
717               }
718            });
719         },150);
720      
721      
722   });
723
724// # data-tabs
725   var TabIsClick = false;
726   var Timeout = false;
727   $('body').on('click','[data-hometab]',function(){
728      var BTN,ActionType,AppenderElement;
729      BTN = $(this);
730      tabType = BTN.data('hometab');
731      NowUniq = $(this).data('uniq');
732      term = BTN.data('term');
733      AppenderElement = $('.-ScrollerCenter[data-uniqid="'+NowUniq+'"]');
734      BTN.addClass('active').siblings().removeClass('active');
735      
736      var AjaxURL = HomeURL+'/AjaxCenter/singletabs/';
737      
738      if( tabType != TabIsClick ) {
739         AppenderElement.addClass("-loading");
740         
741      
742         TabIsClick = true;
743         clearTimeout(Timeout);
744         Timeout = setTimeout(function(){
745            AjaxRequest({
746               url: AjaxURL,
747               dataType: 'json',
748               type: 'POST',
749               data: {
750                  "hometab":tabType,
751                  "term":term,
752               },
753               success: function(msg) {
754                  tabType = TabIsClick;
755                  $(AppenderElement).html(msg.output);
756                  $(AppenderElement).removeClass("-loading");
757               }
758            });
759         },150);
760      }
761      
762   });
763
764   $(window).on("scroll", function () {
765      $(window).scrollTop() >= $('header').outerHeight() ? (
766
767      $("header").addClass("fixed"),
768      $(".btn-phone").addClass("show"),
769      $(".btn-whatsapp").addClass("show")) : (
770      $("header").removeClass("fixed"),
771      $(".btn-phone").removeClass("show"),
772      $(".btn-whatsapp").removeClass("show"))
773   })
774   $('body').on('click','.menu_bar .fa-bars',function(e){
775      $(".menu-nav").addClass("open");
776      $(".menu_bar").addClass("icon");
777   });
778   $('body').on('click','.menu_bar .fa-xmark',function(e){
779      $(".menu-nav").removeClass("open");
780      $(".menu_bar").removeClass("icon");
781   });
782// # share
783     // https://ellisonleao.github.io/sharer.js
784     // # data-title - sharer text
785     // # data-url - url to be shared
786     // # data-width - popup width
787     // # data-height - popup height
788     // # data-link - share element will work as a link
789    // # data-blank (requires data-link combined) - share element will work as a link in a new tab
790      (function(m, r) {
791       "use strict";
792       var s = function(t) {
793         this.elem = t
794       };
795       s.init = function() {
796         var t = r.querySelectorAll("[data-sharer]"),
797           e, a = t.length;
798         for (e = 0; e < a; e++) {
799           t[e].addEventListener("click", s.add)
800         }
801       };
802       s.add = function(t) {
803         var e = t.currentTarget || t.srcElement;
804         var a = new s(e);
805         a.share()
806       };
807       s.prototype = {
808         constructor: s,
809         getValue: function(t) {
810           var e = this.elem.getAttribute("data-" + t);
811           if (e && t === "hashtag") {
812             if (!e.startsWith("#")) {
813               e = "#" + e
814             }
815           }
816           return e === null ? "" : e
817         },
818         share: function() {
819           var t = this.getValue("sharer").toLowerCase(),
820             e = {
821               facebook: {
822                 shareUrl: "https://www.facebook.com/sharer/sharer.php",
823                 params: {
824                   u: this.getValue("url"),
825                   hashtag: this.getValue("hashtag"),
826                   quote: this.getValue("quote")
827                 }
828               },
829               linkedin: {
830                 shareUrl: "https://www.linkedin.com/shareArticle",
831                 params: {
832                   url: this.getValue("url"),
833                   mini: true
834                 }
835               },
836               twitter: {
837                 shareUrl: "https://twitter.com/intent/tweet/",
838                 params: {
839                   text: this.getValue("title"),
840                   url: this.getValue("url"),
841                   hashtags: this.getValue("hashtags"),
842                   via: this.getValue("via")
843                 }
844               },
845               email: {
846                 shareUrl: "mailto:" + this.getValue("to"),
847                 params: {
848                   subject: this.getValue("subject"),
849                   body: this.getValue("title") + "\n" + this.getValue("url")
850                 }
851               },
852               whatsapp: {
853                 shareUrl: this.getValue("web") === "true" ? "https://web.whatsapp.com/se
vendor: 9,860 bytes, lines 853-1123
853nd" : "https://wa.me/",
854                 params: {
855                   phone: this.getValue("to"),
856                   text: this.getValue("title") + " " + this.getValue("url"),
857                   hashtags: this.getValue("hashtags"),
858                 }
859               },
860               telegram: {
861                 shareUrl: "https://t.me/share",
862                 params: {
863                   text: this.getValue("title"),
864                   url: this.getValue("url")
865                 }
866               },
867               viber: {
868                 shareUrl: "viber://forward",
869                 params: {
870                   text: this.getValue("title") + " " + this.getValue("url")
871                 }
872               },
873               line: {
874                 shareUrl: "http://line.me/R/msg/text/?" + encodeURIComponent(this.getValue("title") + " " + this.getValue("url"))
875               },
876               pinterest: {
877                 shareUrl: "https://www.pinterest.com/pin/create/button/",
878                 params: {
879                   url: this.getValue("url"),
880                   media: this.getValue("image"),
881                   description: this.getValue("description")
882                 }
883               },
884               tumblr: {
885                 shareUrl: "http://tumblr.com/widgets/share/tool",
886                 params: {
887                   canonicalUrl: this.getValue("url"),
888                   content: this.getValue("url"),
889                   posttype: "link",
890                   title: this.getValue("title"),
891                   caption: this.getValue("caption"),
892                   tags: this.getValue("tags")
893                 }
894               },
895               hackernews: {
896                 shareUrl: "https://news.ycombinator.com/submitlink",
897                 params: {
898                   u: this.getValue("url"),
899                   t: this.getValue("title")
900                 }
901               },
902               reddit: {
903                 shareUrl: "https://www.reddit.com/submit",
904                 params: {
905                   url: this.getValue("url"),
906                   title: this.getValue("title")
907                 }
908               },
909               vk: {
910                 shareUrl: "http://vk.com/share.php",
911                 params: {
912                   url: this.getValue("url"),
913                   title: this.getValue("title"),
914                   description: this.getValue("caption"),
915                   image: this.getValue("image")
916                 }
917               },
918               xing: {
919                 shareUrl: "https://www.xing.com/social/share/spi",
920                 params: {
921                   url: this.getValue("url")
922                 }
923               },
924               buffer: {
925                 shareUrl: "https://buffer.com/add",
926                 params: {
927                   url: this.getValue("url"),
928                   title: this.getValue("title"),
929                   via: this.getValue("via"),
930                   picture: this.getValue("picture")
931                 }
932               },
933               instapaper: {
934                 shareUrl: "http://www.instapaper.com/edit",
935                 params: {
936                   url: this.getValue("url"),
937                   title: this.getValue("title"),
938                   description: this.getValue("description")
939                 }
940               },
941               pocket: {
942                 shareUrl: "https://getpocket.com/save",
943                 params: {
944                   url: this.getValue("url")
945                 }
946               },
947               mashable: {
948                 shareUrl: "https://mashable.com/submit",
949                 params: {
950                   url: this.getValue("url"),
951                   title: this.getValue("title")
952                 }
953               },
954               mix: {
955                 shareUrl: "https://mix.com/add",
956                 params: {
957                   url: this.getValue("url")
958                 }
959               },
960               flipboard: {
961                 shareUrl: "https://share.flipboard.com/bookmarklet/popout",
962                 params: {
963                   v: 2,
964                   title: this.getValue("title"),
965                   url: this.getValue("url"),
966                   t: Date.now()
967                 }
968               },
969               weibo: {
970                 shareUrl: "http://service.weibo.com/share/share.php",
971                 params: {
972                   url: this.getValue("url"),
973                   title: this.getValue("title"),
974                   pic: this.getValue("image"),
975                   appkey: this.getValue("appkey"),
976                   ralateUid: this.getValue("ralateuid"),
977                   language: "zh_cn"
978                 }
979               },
980               blogger: {
981                 shareUrl: "https://www.blogger.com/blog-this.g",
982                 params: {
983                   u: this.getValue("url"),
984                   n: this.getValue("title"),
985                   t: this.getValue("description")
986                 }
987               },
988               baidu: {
989                 shareUrl: "http://cang.baidu.com/do/add",
990                 params: {
991                   it: this.getValue("title"),
992                   iu: this.getValue("url")
993                 }
994               },
995               douban: {
996                 shareUrl: "https://www.douban.com/share/service",
997                 params: {
998                   name: this.getValue("name"),
999                   href: this.getValue("url"),
1000                   image: this.getValue("image"),
1001                   comment: this.getValue("description")
1002                 }
1003               },
1004               okru: {
1005                 shareUrl: "https://connect.ok.ru/dk",
1006                 params: {
1007                   "st.cmd": "WidgetSharePreview",
1008                   "st.shareUrl": this.getValue("url"),
1009                   title: this.getValue("title")
1010                 }
1011               },
1012               mailru: {
1013                 shareUrl: "http://connect.mail.ru/share",
1014                 params: {
1015                   share_url: this.getValue("url"),
1016                   linkname: this.getValue("title"),
1017                   linknote: this.getValue("description"),
1018                   type: "page"
1019                 }
1020               },
1021               evernote: {
1022                 shareUrl: "https://www.evernote.com/clip.action",
1023                 params: {
1024                   url: this.getValue("url"),
1025                   title: this.getValue("title")
1026                 }
1027               },
1028               skype: {
1029                 shareUrl: "https://web.skype.com/share",
1030                 params: {
1031                   url: this.getValue("url"),
1032                   title: this.getValue("title")
1033                 }
1034               },
1035               delicious: {
1036                 shareUrl: "https://del.icio.us/post",
1037                 params: {
1038                   url: this.getValue("url"),
1039                   title: this.getValue("title")
1040                 }
1041               },
1042               sms: {
1043                 shareUrl: "sms://",
1044                 params: {
1045                   body: this.getValue("body")
1046                 }
1047               },
1048               trello: {
1049                 shareUrl: "https://trello.com/add-card",
1050                 params: {
1051                   url: this.getValue("url"),
1052                   name: this.getValue("title"),
1053                   desc: this.getValue("description"),
1054                   mode: "popup"
1055                 }
1056               },
1057               messenger: {
1058                 shareUrl: "fb-messenger://share",
1059                 params: {
1060                   link: this.getValue("url"),
1061                   title: this.getValue("title")
1062                 }
1063               },
1064               odnoklassniki: {
1065                 shareUrl: "https://connect.ok.ru/dk",
1066                 params: {
1067                   st: {
1068                     cmd: "WidgetSharePreview",
1069                     deprecated: 1,
1070                     shareUrl: this.getValue("url")
1071                   }
1072                 }
1073               },
1074               meneame: {
1075                 shareUrl: "https://www.meneame.net/submit",
1076                 params: {
1077                   url: this.getValue("url")
1078                 }
1079               },
1080               diaspora: {
1081                 shareUrl: "https://share.diasporafoundation.org",
1082                 params: {
1083                   title: this.getValue("title"),
1084                   url: this.getValue("url")
1085                 }
1086               },
1087               googlebookmarks: {
1088                 shareUrl: "https://www.google.com/bookmarks/mark",
1089                 params: {
1090                   op: "edit",
1091                   bkmk: this.getValue("url"),
1092                   title: this.getValue("title")
1093                 }
1094               },
1095               qzone: {
1096                 shareUrl: "https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey",
1097                 params: {
1098                   url: this.getValue("url")
1099                 }
1100               },
1101               refind: {
1102                 shareUrl: "https://refind.com",
1103                 params: {
1104                   url: this.getValue("url")
1105                 }
1106               },
1107               surfingbird: {
1108                 shareUrl: "https://surfingbird.ru/share",
1109                 params: {
1110                   url: this.getValue("url"),
1111                   title: this.getValue("title"),
1112                   description: this.getValue("description")
1113                 }
1114               },
1115               yahoomail: {
1116                 shareUrl: "http://compose.mail.yahoo.com",
1117                 params: {
1118                   to: this.getValue("to"),
1119                   subject: this.getValue("subject"),
1120                   body: this.getValue("body")
1121                 }
1122               },
1123               wordpress: {
1124                 shareUrl: "https://wordpress.com/wp-admin/press-this.php",
1125                 params: {
1126                   u: this.getValue("url"),
1127                   t: this.getValue("title"),
1128                   s: this.getValue("title")
1129                 }
1130               },
1131               amazon: {
1132                 shareUrl: "https://www.amazon.com/gp/wishlist/static-add",
1133                 params: {
1134                   u: this.getValue("url"),
1135                   t: this.getValue("title")
1136                 }
1137               },
1138               pinboard: {
1139                 shareUrl: "https://pinboard.in/add",
1140                 params: {
1141                   url: this.getValue("url"),
1142                   title: this.getValue("title"),
1143                   description: this.getValue("description")
1144                 }
1145               },
1146               threema: {
1147                 shareUrl: "threema://compose",
1148                 params: {
1149                   text: this.getValue("text"),
1150                   id: this.getValue("id")
1151                 }
1152               },
1153               kakaostory: {
1154                 shareUrl: "https://story.kakao.com/share",
1155                 params: {
1156                   url: this.getValue("url")
1157                 }
1158               },
1159               yummly: {
1160                 shareUrl: "http://www.yummly.com/urb/verify",
1161                 params: {
1162                   url: this.getValue("url"),
1163                   title: this.getValue("title"),
1164                   yumtype: "button"
1165                 }
1166               }
1167             },
1168             a = e[t];
1169           if (a) {
1170             a.width = this.getValue("width");
1171             a.height = this.getValue("height")
1172           }
1173           return a !== undefined ? this.urlSharer(a) : false
1174         },
1175         urlSharer: function(t) {
1176           var e = t.params || {},
1177           a = Object.keys(e),
1178           r, 
1179           s = a.length > 0 ? "?" : "";
1180           
1181           for (r = 0; r < a.length; r++) {
1182             if (s !== "?") {
1183               s += "&"
1184             }
1185             if (e[a[r]]) {
1186               s += a[r] + "=" + encodeURIComponent(e[a[r]])
1187             }
1188           }
1189           t.shareUrl += s;
1190           var l = this.getValue("link") === "true";
1191           var i = this.getValue("blank") === "true";
1192           if (l) {
1193             if (i) {
1194               m.open(t.shareUrl, "_blank")
1195             } else {
1196               m.location.href = t.shareUrl
1197             }
1198           } else {
1199             console.log(t.shareUrl);
1200             var h = t.width || 600,
1201               u = t.height || 480,
1202               o = m.innerWidth / 2 - h / 2 + m.screenX,
1203               p = m.innerHeight / 2 - u / 2 + m.screenY,
1204               g = "scrollbars=no, width=" + h + ", height=" + u + ", top=" + p + ", left=" + o,
1205               n = m.open(t.shareUrl, "", g);
1206             if (m.focus) {
1207               n.focus()
1208             }
1209           }
1210         }
1211       };
1212       if (r.readyState === "complete" || r.readyState !== "loading") {
1213         s.init()
1214       } else {
1215         r.addEventListener("DOMContentLoaded", s.init)
1216       }
1217       m.Sharer = s
1218     })(window, document);
1219      $('body').on("click",'[data-sharer] a',function(e) {e.preventDefault();});
1220    $('body').on("click", '.ez-toc-title-container', function(){
1221      $('ul.ez-toc-list').toggleClass("open");
1222   });
1223
1224    $('body').on("click", '.album-holder .close', function(){
1225        $('.album-holder').removeClass('open')
1226    })    
1227    $('body').on("click", 'post--albums .img', function(){
1228        $('.album-holder').addClass('open');
1229    })

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.