PageSourceSearch

https://vashdomkrym.ru/min/serve/g?g=45df518299640d5e5f3caa381d8e0389&lm=1522780695

js vashdomkrym.ru collected 2026-10-06 00:23:48 UTC 43,190 bytes, 1,019 lines download raw bytes

1/*!
2 * jquery.sumoselect - v2.1.0
3 * http://hemantnegi.github.io/jquery.sumoselect
4 * 2014-04-08
5 *
6 * Copyright 2015 Hemant Negi
7 * Email : [email protected]
8 * Compressor http://refresh-sf.com/
9 */
10
11(function ($) {
12
13    'namespace sumo';
14    $.fn.SumoSelect = function (options) {
15
16        // var is_visible_default = false;
17        //$(document).click(function () { is_visible_default = false; });
18
19        // This is the easiest way to have default options.
20        var settings = $.extend({
21            placeholder: 'Select Here',   // Dont change it here.
22            csvDispCount: 3,              // display no. of items in multiselect. 0 to display all.
23            captionFormat:'{0} Selected', // format of caption text. you can set your locale.
24            floatWidth: 400,              // Screen width of device at which the list is rendered in floating popup fashion.
25            forceCustomRendering: false,  // force the custom modal on all devices below floatWidth resolution.
26            nativeOnDevice: ['Android', 'BlackBerry', 'iPhone', 'iPad', 'iPod', 'Opera Mini', 'IEMobile', 'Silk'], //
27            outputAsCSV: false,           // true to POST data as csv ( false for Html control array ie. deafault select )
28            csvSepChar: ',',              // seperation char in csv mode
29            okCancelInMulti: false,       //display ok cancel buttons in desktop mode multiselect also.
30            triggerChangeCombined: true,  // im multi select mode wether to trigger change event on individual selection or combined selection.
31            selectAll: false,             // to display select all button in multiselect mode.|| also select all will not be available on mobile devices.
32            selectAlltext: 'Select All',   // the text to display for select all.
33            filter: false,                // to display input for filtering content. selectAlltext will be input text placeholder
34            filterText: 'Search...'       // to display input for filtering content. selectAlltext will be input text placeholder
35
36        }, options);
37
38        var ret = this.each(function () {
39            var selObj = this; // the original select object.
40            if (this.sumo || !$(this).is('select')) return; //already initialized
41
42            this.sumo = {
43                E: $(selObj),   //the jquery object of original select element.
44                is_multi: $(selObj).attr('multiple'),  //if its a mmultiple select
45                select: '',
46                caption: '',
47                placeholder: '',
48                optDiv: '',
49                CaptionCont: '',
50                is_floating: false,
51                is_opened: false,
52                //backdrop: '',
53                mob:false, // if to open device default select
54                Pstate: [],
55
56                createElems: function () {
57                    var O = this;
58                    O.E.wrap('<div class="SumoSelect" tabindex="0">');
59                    O.select = O.E.parent();
60                    O.caption = $('<span></span>');
61                    O.CaptionCont = $('<p class="CaptionCont"><label><i></i></label></p>').addClass('SlectBox').attr('style', O.E.attr('style')).prepend(O.caption);
62                    O.select.append(O.CaptionCont);
63
64                    if(O.E.attr('disabled'))
65                        O.select.addClass('disabled').removeAttr('tabindex');
66
67                    //if output as csv and is a multiselect.
68                    if (settings.outputAsCSV && O.is_multi && O.E.attr('name')) {
69                        //create a hidden field to store csv value.
70                        O.select.append($('<input class="HEMANT123" type="hidden" />').attr('name', O.E.attr('name')).val(O.getSelStr()));
71
72                        // so it can not post the original select.
73                        O.E.removeAttr('name');
74                    }
75
76                    //break for mobile rendring.. if forceCustomRendering is false
77                    if (O.isMobile() && !settings.forceCustomRendering) {
78                        O.setNativeMobile();
79                        return;
80                    }
81
82                    //hide original select
83                    O.E.hide();
84
85                    //## Creating the list...
86                    O.optDiv = $('<div class="optWrapper">');
87
88                    //branch for floating list in low res devices.
89                    O.floatingList();
90
91                    //Creating the markup for the available options
92                    ul = $('<ul class="options">');
93                    O.optDiv.append(ul);
94
95                    // Select all functionality
96                    if (settings.selectAll || settings.filter) O.selAll();
97
98                    $(O.E.children('option')).each(function (i, opt) {       // parsing options to li
99                        opt = $(opt);
100                        O.createLi(opt);
101                    });
102
103                    //if multiple then add the class multiple and add OK / CANCEL button
104                    if (O.is_multi) O.multiSelelect();
105
106                    O.select.append(O.optDiv);
107                    O.basicEvents();
108                    O.selAllState();
109                },
110
111                //## Creates a LI element from a given option and binds events to it
112                //## Adds it to UL at a given index (Last by default)
113                createLi: function (opt,i) {
114                    var O = this;
115
116                    if(!opt.attr('value'))opt.attr('value',opt.val());
117
118                    li = $('<li data-val="' + opt.val() + '"><label>' + opt.text() + '</label></li>');
119                    if (O.is_multi) li.prepend('<span><i></i></span>');
120
121                    if (opt[0].disabled)
122                        li = li.addClass('disabled');
123
124                    O.onOptClick(li);
125
126                    if (opt[0].selected)
127                        li.addClass('selected');
128
129                    if (opt.attr('class'))
130                        li.addClass(opt.attr('class'));
131
132                    ul = O.optDiv.children('ul.options');
133                    if (typeof i == "undefined")
134                        ul.append(li);
135                    else
136                        ul.children('li').eq(i).before(li);
137
138                    return li;
139                },
140
141                //## Returns the selected items as string in a Multiselect.
142                getSelStr: function () {
143                    // get the pre selected items.
144                    sopt = [];
145                    this.E.children('option:selected').each(function () { sopt.push($(this).val()); });
146                    return sopt.join(settings.csvSepChar);
147                },
148
149                //## THOSE OK/CANCEL BUTTONS ON MULTIPLE SELECT.
150                multiSelelect: function () {
151                    var O = this;
152                    O.optDiv.addClass('multiple');
153                    O.okbtn = $('<p class="btnOk">OK</p>').click(function () {
154
155                        //if combined change event is set.
156                        if (settings.triggerChangeCombined) {
157
158                            //check for a change in the selection.
159                            changed = false;
160                            if (O.E.children('option:selected').length != O.Pstate.length) {
161                                changed = true;
162                            }
163                            else {
164                                O.E.children('option:selected').each(function () {
165                                    if (O.Pstate.indexOf($(this).val()) < 0) changed = true;
166                                });
167                            }
168
169                            if (changed) {
170                                O.E.trigger('change').trigger('click');
171                                O.setText();
172                            }
173                        }
174                        O.hideOpts();
175                    });
176                    O.cancelBtn = $('<p class="btnCancel">Cancel</p>').click(function () {
177                        O._cnbtn();
178                        O.hideOpts();
179                    });
180                    O.optDiv.append($('<div class="MultiControls">').append(O.okbtn).append(O.cancelBtn));
181                },
182
183                _cnbtn:function(){
184                    var O = this;
185                    //remove all selections
186                        O.E.children('option:selected').each(function () { this.selected = false; });
187                        O.optDiv.find('li.selected').removeClass('selected')
188
189                        //restore selections from saved state.
190                        for (i = 0; i < O.Pstate.length; i++) {
191                            O.E.children('option[value="' + O.Pstate[i] + '"]')[0].selected = true;
192                            O.optDiv.find('li[data-val="' + O.Pstate[i] + '"]').addClass('selected');
193                        }
194                    O.selAllState();
195                },
196
197                selAll:function(){
198                    var O = this;
199
200                    if(!O.is_multi && !settings.filter)return;
201					O.chkAll = $('<i>');
202
203					if (!settings.filter) 
204						O.selAll = $('<p class="select-all"><label>' + settings.selectAlltext + '</label></p>').prepend($('<span></span>').append(O.chkAll));
205					else {
206                                                O.filter = $('<input type="text" class="text-filter" value="" placeholder="' + settings.filterText + '">');
207                                                if (typeof O.E != "undefined" && O.E.children('option').length > 0) {
208                                                    O.selAll = $('<p class="' + (settings.selectAll ? 'select-all ' : '') + 'filter"></p>').prepend(O.filter);
209                                                }
210                                                else {
211                                                    O.selAll = $('<p style="margin:0; padding:0;" class="' + (settings.selectAll ? 'select-all ' : '')+'"></p>');
212                                                }
213						
214						O.filter.on('keyup',function(){
215							O.optDiv.find('ul.options li').each(function(ix,e){
216								e = $(e);
217								if(e.text().toLowerCase().indexOf(O.filter.val().toLowerCase()) > -1)
218									e.removeClass('hidden');
219								else
220									e.addClass('hidden');
221							});
222							O.selAllState();
223						});
224
225						if ( settings.selectAll )
226							O.selAll = O.selAll.prepend($('<span></span>').append(O.chkAll));
227					}
228
229					O.chkAll.on('click',function(){
230						//O.toggSelAll(!);
231						O.selAll.toggleClass('selected');
232						O.optDiv.find('ul.options li').each(function(ix,e){
233							e = $(e);
234							if(O.selAll.hasClass('selected')){
235								if(!e.hasClass('selected') && !$(e).hasClass('hidden'))e.trigger('click');
236							}
237							else
238								if(e.hasClass('selected')  && !$(e).hasClass('hidden'))e.trigger('click');
239						});
240					});
241
242                    O.optDiv.prepend(O.selAll);
243                },
244
245                selAllState: function () {
246                    var O = this;
247                    if (settings.selectAll) {
248                        var sc = 0, vc = 0;
249                        O.optDiv.find('ul.options li').each(function (ix, e) {
250                            if ($(e).hasClass('selected') && !$(e).hasClass('hidden')) sc++;
251                            if (!$(e).hasClass('disabled') && !$(e).hasClass('hidden')) vc++;
252                        });
253                        //select all checkbox state change.
254                        if (sc == vc) O.selAll.removeClass('partial').addClass('selected');
255                        else if (sc == 0) O.selAll.removeClass('selected partial');
256                        else O.selAll.addClass('partial')//.removeClass('selected');
257                    }
258                },
259
260                showOpts: function () {
261                    var O = this;
262                    if (O.E.attr('disabled')) return; // if select is disabled then retrun
263                    O.is_opened = true;
264                    //O.backdrop.show();
265                    O.optDiv.addClass('open');
266                    
267                    // hide options on click outside.
268                    $(document).on('click.sumo', function (e) {
269                            if (!O.select.is(e.target)                  // if the target of the click isn't the container...
270                                && O.select.has(e.target).length === 0){ // ... nor a descendant of the container
271//                               if (O.is_multi && settings.okCancelInMulti)
272//                                    O._cnbtn();
273//                                O.hideOpts();
274								if(!O.is_opened)return;
275								O.hideOpts();
276								if (O.is_multi && settings.okCancelInMulti)O._cnbtn();
277                            }
278                    });
279
280                    if (O.is_floating) {
281                        H = O.optDiv.children('ul').outerHeight() + 2;  // +2 is clear fix
282                        if (O.is_multi) H = H + parseInt(O.optDiv.css('padding-bottom'));
283                        O.optDiv.css('height', H);
284                    }
285
286                    //maintain state when ok/cancel buttons are available.
287                    if (O.is_multi && (O.is_floating || settings.okCancelInMulti)) {
288                        O.Pstate = [];
289                        O.E.children('option:selected').each(function () { O.Pstate.push($(this).val()); });
290                    }
291                },
292                hideOpts: function () {
293                    var O = this;
294                    O.is_opened = false;
295                    O.optDiv.removeClass('open').find('ul li.sel').removeClass('sel');
296                    $(document).off('click.sumo');
297                },
298                setOnOpen: function () {
299                    var O = this;
300                    var li = O.optDiv.find('ul li').eq(O.E[0].selectedIndex);
301                    li.addClass('sel');
302                    O.showOpts();
303                },
304                nav: function (up) {
305                    var O = this, c;
306                    var sel = O.optDiv.find('ul li.sel');
307                    if (O.is_opened && sel.length) {
308                        if (up)
309                            c = sel.prevAll('li:not(.disabled)');
310                        else
311                            c = sel.nextAll('li:not(.disabled)');
312                        if (!c.length)return;
313                        sel.removeClass('sel');
314                        sel = c.first().addClass('sel');
315
316                        // setting sel item to visible view.
317                        var ul = O.optDiv.find('ul'),
318                            st = ul.scrollTop(),
319                            t = sel.position().top + st;                            
320                        if(t >= st + ul.height()-sel.outerHeight())
321                            ul.scrollTop(t - ul.height() + sel.outerHeight());
322                        if(t<st)
323                            ul.scrollTop(t);
324
325                    }
326                    else
327                        O.setOnOpen();
328                },
329
330                basicEvents: function () {
331                    var O = this;
332                    O.CaptionCont.click(function (evt) {
333                        O.E.trigger('click');
334                        if (O.is_opened) O.hideOpts(); else O.showOpts();
335                        evt.stopPropagation();
336                    });
337
338                  /*  O.select.on('blur focusout', function () {
339                        if(!O.is_opened)return;
340                        //O.hideOpts();
341                        O.hideOpts();
342
343                    if (O.is_multi && settings.okCancelInMulti)
344                         O._cnbtn();
345                    })*/
346                        O.select.on('keydown', function (e) {
347                            switch (e.which) {
348                                case 38: // up
349                                    O.nav(true);
350                                    break;
351
352                                case 40: // down
353                                    O.nav(false);
354                                    break;
355
356                                case 32: // space
357                                case 13: // enter
358                                    if (O.is_opened)
359                                        O.optDiv.find('ul li.sel').trigger('click');
360                                    else
361                                        O.setOnOpen();
362                                    break;
363								case 9:	 //tab
364                                case 27: // esc
365                                     if (O.is_multi && settings.okCancelInMulti)O._cnbtn();
366                                    O.hideOpts();
367                                    return;
368
369                                default:
370                                    return; // exit this handler for other keys
371                            }
372                            e.preventDefault(); // prevent the default action (scroll / move caret)
373                        });
374
375                    $(window).on('resize.sumo', function () {
376                        O.floatingList();
377                    });
378                },
379
380                onOptClick: function (li) {
381                    var O = this;
382                    li.click(function () {
383                        var li = $(this);
384                        if(li.hasClass('disabled'))return;
385                        txt = "";
386                        if (O.is_multi) {
387                            li.toggleClass('selected');
388                            O.E.children('option[value="' + li.data('val') + '"]')[0].selected = li.hasClass('selected');
389
390                            O.selAllState();
391                        }
392                        else {
393                            li.parent().find('li.selected').removeClass('selected'); //if not multiselect then remove all selections from this list
394                            li.toggleClass('selected');
395                            O.E.val(li.attr('data-val'));   //set the value of select element
396                        }
397
398                        //branch for combined change event.
399                        if (!(O.is_multi && settings.triggerChangeCombined && (O.is_floating || settings.okCancelInMulti))) {
400                            O.setText();
401                            O.E.trigger('change').trigger('click');
402                        }
403
404                        if (!O.is_multi) O.hideOpts(); //if its not a multiselect then hide on single select.
405                    });
406                },
407
408                setText: function () {
409                    var O = this;
410                    O.placeholder = "";
411                    if (O.is_multi) {
412                        sels = O.E.children(':selected').not(':disabled'); //selected options.
413
414                        for (i = 0; i < sels.length; i++) {
415                            if (i >
415= settings.csvDispCount && settings.csvDispCount) {
416                                O.placeholder = settings.captionFormat.replace('{0}', sels.length);
417                                //O.placeholder = i + '+ Selected';
418                                break;
419                            }
420                            else O.placeholder += $(sels[i]).text() + ", ";
421                        }
422                        O.placeholder = O.placeholder.replace(/,([^,]*)$/, '$1'); //remove unexpected "," from last.
423                    }
424                    else {
425                        O.placeholder = O.E.children(':selected').not(':disabled').text();
426                    }
427
428                    is_placeholder = false;
429
430                    if (!O.placeholder) {
431
432                        is_placeholder = true;
433
434                        O.placeholder = O.E.attr('placeholder');
435                        if (!O.placeholder)                  //if placeholder is there then set it
436                        {
437                            O.placeholder = O.E.children('option:disabled:selected').text();
438                            //if (!O.placeholder && settings.placeholder === 'Select Here')
439                            //    O.placeholder = O.E.val();
440                        }
441                    }
442
443                    O.placeholder = O.placeholder ? O.placeholder : settings.placeholder
444
445                    //set display text
446                    O.caption.text(O.placeholder);
447
448                    //set the hidden field if post as csv is true.
449                    csvField = O.select.find('input.HEMANT123');
450                    if (csvField.length) csvField.val(O.getSelStr());
451
452                    //add class placeholder if its a placeholder text.
453                    if (is_placeholder) O.caption.addClass('placeholder'); else O.caption.removeClass('placeholder');
454                    return O.placeholder;
455                },
456
457                isMobile: function () {
458
459                    // Adapted from http://www.detectmobilebrowsers.com
460                    var ua = navigator.userAgent || navigator.vendor || window.opera;
461
462                    // Checks for iOs, Android, Blackberry, Opera Mini, and Windows mobile devices
463                    for (var i = 0; i < settings.nativeOnDevice.length; i++) if (ua.toString().toLowerCase().indexOf(settings.nativeOnDevice[i].toLowerCase()) > 0) return settings.nativeOnDevice[i];
464                    return false;
465                },
466
467                setNativeMobile: function () {
468                    var O = this;
469                    O.E.addClass('SelectClass')//.css('height', O.select.outerHeight());
470					O.mob = true;
471                    O.E.change(function () {
472                        O.setText();
473                    });
474                },
475
476                floatingList: function () {
477                    var O = this;
478                    //called on init and also on resize.
479                    //O.is_floating = true if window width is < specified float width
480                    O.is_floating = $(window).width() <= settings.floatWidth;
481
482                    //set class isFloating
483                    O.optDiv.toggleClass('isFloating', O.is_floating);
484
485                    //remove height if not floating
486                    if (!O.is_floating) O.optDiv.css('height', '');
487
488                    //toggle class according to okCancelInMulti flag only when it is not floating
489                    O.optDiv.toggleClass('okCancelInMulti', settings.okCancelInMulti && !O.is_floating);
490                },
491
492                //HELPERS FOR OUTSIDERS
493                // validates range of given item operations
494                vRange: function (i) {
495                    var O = this;
496                    opts = O.E.children('option');
497                    if (opts.length <= i || i < 0) throw "index out of bounds"
498                    return O;
499                },
500
501                //toggles selection on c as boolean.
502                toggSel: function (c, i) {
503                    var O = this.vRange(i);
504                    if (O.E.children('option')[i].disabled) return;
505                    O.E.children('option')[i].selected = c;
506                    if(!O.mob)O.optDiv.find('ul.options li').eq(i).toggleClass('selected',c);
507                    O.setText();
508                },
509
510                //toggles disabled on c as boolean.
511                toggDis: function (c, i) {
512                    var O = this.vRange(i);
513                    O.E.children('option')[i].disabled = c;
514                    if(c)O.E.children('option')[i].selected = false;
515                    if(!O.mob)O.optDiv.find('ul.options li').eq(i).toggleClass('disabled', c).removeClass('selected');
516                    O.setText();
517                },
518
519                // toggle disable/enable on complete select control
520                toggSumo: function(val) {
521                    var O = this;
522                    O.enabled = val;
523                    O.select.toggleClass('disabled', val);
524
525                    if (val) {
526                        O.E.attr('disabled', 'disabled');
527                        O.select.removeAttr('tabindex');
528                    }
529                    else{
530                        O.E.removeAttr('disabled');
531                        O.select.attr('tabindex','0');
532                    }
533
534                    return O;
535                },
536
537                //toggles alloption on c as boolean.
538                toggSelAll: function (c) {
539                    var O = this;
540                    O.E.find('option').each(function (ix, el) {
541                        if (O.E.find('option')[$(this).index()].disabled) return;
542                        O.E.find('option')[$(this).index()].selected = c;
543                        if (!O.mob)
544							O.optDiv.find('ul.options li').eq($(this).index()).toggleClass('selected', c);
545                        O.setText();
546                    });
547                    if(!O.mob && (settings.selectAll || settings.filter))O.selAll.removeClass('partial').toggleClass('selected',c);
548                },
549
550                /* outside accessibility options
551                   which can be accessed from the element instance.
552                */
553                reload:function(){
554                    var elm = this.unload();
555                    return $(elm).SumoSelect(settings);
556                },
557
558                unload: function () {
559                    var O = this;
560                    O.select.before(O.E);
561                    O.E.show();
562
563                    if (settings.outputAsCSV && O.is_multi && O.select.find('input.HEMANT123').length) {
564                        O.E.attr('name', O.select.find('input.HEMANT123').attr('name')); // restore the name;
565                    }
566                    O.select.remove();
567                    delete selObj.sumo;
568                    return selObj;
569                },
570
571                //## add a new option to select at a given index.
572                add: function (val, txt, i) {
573                    if (typeof val == "undefined") throw "No value to add"
574
575                    var O = this;
576                    opts=O.E.children('option')
577                    if (typeof txt == "number") { i = txt; txt = val; }
578                    if (typeof txt == "undefined") { txt = val; }
579
580                    opt = $("<option></option>").val(val).html(txt);
581
582                    if (opts.length < i) throw "index out of bounds"
583
584                    if (typeof i == "undefined" || opts.length == i) { // add it to the last if given index is last no or no index provides.
585                        O.E.append(opt);
586                        if(!O.mob)O.createLi(opt);
587                    }
588                    else {
589                        opts.eq(i).before(opt);
590                        if(!O.mob)O.createLi(opt, i);
591                    }
592
593                    return selObj;
594                },
595
596                //## removes an item at a given index.
597                remove: function (i) {
598                    var O = this.vRange(i);
599                    O.E.children('option').eq(i).remove();
600                    if(!O.mob)O.optDiv.find('ul.options li').eq(i).remove();
601                    O.setText();
602                },
603
604                //## Select an item at a given index.
605                selectItem: function (i) { this.toggSel(true, i); },
606
607                //## UnSelect an iten at a given index.
608                unSelectItem: function (i) { this.toggSel(false, i); },
609
610                //## Select all items  of the select.
611                selectAll: function () { this.toggSelAll(true); },
612
613                //## UnSelect all items of the select.
614                unSelectAll: function () { this.toggSelAll(false); },
615
616                //## Disable an iten at a given index.
617                disableItem: function (i) { this.toggDis(true, i) },
618
619                //## Removes disabled an iten at a given index.
620                enableItem: function (i) { this.toggDis(false, i) },
621
622                //## New simple methods as getter and setter are not working fine in ie8-
623                //## variable to check state of control if enabled or disabled.
624                enabled : true,
625                //## Enables the control
626                enable: function(){return this.toggSumo(false)},
627
628                //## Disables the control
629                disable: function(){return this.toggSumo(true)},
630
631
632                init: function () {
633                    var O = this;
634                    O.createElems();
635                    O.setText();
636                    return O
637                }
638
639            };
640
641            selObj.sumo.init();
642        });
643
644        return ret.length == 1 ? ret[0] : ret;
645    };
646
647
648}(jQuery));$(function(){
649    $("ul.dropdown li").hover(function(){
650        $(this).addClass("hover");
651        $('ul:first',this).css('visibility', 'visible');
652    
653    }, function(){
654        $(this).removeClass("hover");
655        $('ul:first',this).css('visibility', 'hidden');
656    
657    });
658    $("ul.dropdown li ul li:has(ul)").find("a:first").append(" &raquo; ");
659
660
661	
662	$("ul.dropDownNav li").hover(function(){
663        $(this).addClass("hover");
664        $('ul:first',this).css('visibility', 'visible');
665    
666    }, function(){
667        $(this).removeClass("hover");
668        $('ul:first',this).css('visibility', 'hidden');
669    
670    });
671
672	$("ul.dropDownNav li ul li:has(ul)").find("a:first").append(" &raquo; ");
673	//$("ul.dropDownNav li:has(ul)").find("a:first").prepend(" &#9660;");
674});var clickedImgIndex = 1;
675
676function showGallery(){
677    var index = clickedImgIndex;
678    index = index - 1;
679
680    $("a[data-gal^='prettyPhoto']:eq(" + index + ")").click();
681}
682
683function setImgGalleryIndex(index){
684    if(index){
685        clickedImgIndex = index;
686        var tmp = clickedImgIndex - 1;
687        $("#jcarousel .active").removeClass("active");
688        $("#jcarousel li:eq(" + tmp + ")").addClass("active");
689
690
691    }
692}
693
694jQuery(function ($) {    
695    $(document).ajaxSend(function(){
696        $("#loading").show();
697    }).ajaxComplete(function(){
698        $("#loading").hide();
699    });
700    
701    $('#search-form').on('change', '.searchField', function (event) {
702        changeSearch();
703    });
704
705    $(".switch-menu span").click(function(){
706        if ($(window).width() <= 960)  {
707            $(".hide-780").slideToggle("fast");
708            return false;
709        }
710    });
711
712    $(".home").hover(
713        function () {
714            $(this).find('ul').show();
715            $(this).find('a').addClass("active");
716        },
717        function () {
718            $(this).find('ul').hide();
719            $(this).find('a').removeClass("active");
720        }
721    );
722
723    $('#mobnav-btn').click(
724        function () {
725            $('#sf-menu-id').toggleClass("xactive");
726            $('#sf-menu-id').find('li').removeClass("sfHover");
727            $('#sf-menu-id').find('li').removeClass("xpopdrop");
728            $('#sf-menu-id').find('li').removeClass("xpopdroplevelsvisible");
729        });
730
731    $('.mobnav-subarrow').click(
732        function () {
733            $(this).parent().removeClass("sfHover");
734            $(this).parent().toggleClass("xpopdrop");            
735        });
736
737    $('.mobnav-subarrow-levels').click(
738        function () {
739            $(this).parent().removeClass("sfHover");
740            $(this).parent().toggleClass("xpopdroplevelsvisible");
741        });
742
743    $( '.hide_filtr, .hide_filtr_collapsed').click(function() {
744        if($(this).hasClass('collapsed')) {
745            //$(this).removeClass('collapsed');
746            $('.filtr').removeClass('collapsed');
747            $('#inner_open_button').hide();
748        } else {
749            //$(this).addClass('collapsed');
750            $('.filtr').addClass('collapsed');
751            $('#inner_open_button').show();
752        }
753    });
754
755    $('.mini_gallery ul img').click(function(){
756        var path = $(this).parent().attr('href');
757        var alt = $(this).attr('alt');
758        //var relImg = $(this).parent().attr('rel');
759
760        //var relImg = 'prettyPhoto[img-gallery]';
761        var relImg = 'ppprettyPhoto';
762
763        $('#imgHolder').animate({opacity: 0},300,function(){
764            if (relImg) {
765                $(this).html('<a onclick="showGallery(this); return false;" id="main-img" href='+ path +' data-gal=' + relImg + '><img src=' + path + ' /></a>').find('img').bind('load',function(){
766                    $(this).parent().parent().append('').animate({opacity: 1},300);
767                });
768            }
769            else {
770                $(this).html('<img src=' + path + ' />').find('img').bind('load',function(){
771                    $(this).parent().append('').animate({opacity: 1},300);
772                });
773            }
774        });
775        return false;
776    });
777
778    $('.mini_gallery ul img:first').click();
779
780    var width = $(window).width() > 1024 ? '607px' : ($(window).width()-150);
781
782    if(parseInt(width) <= 1024) {
783        $('.jcarousel').attr({'style':'width:'+parseInt(width)+'px'});
784    }
785
786    $( ".tabs_1 li a" ).click(function() {
787        $( ".tabs_1 li a" ).removeClass('active_tabs');
788        $(this).addClass('active_tabs');
789        $('.tab_bl_1').hide();
790        $('.'+$(this).parent().attr('id')).show();
791    });
792
793    $( ".tabs_2 li a" ).click(function() {
794        $( ".tabs_2 li a" ).removeClass('active_tabs');
795        $(this).addClass('active_tabs');
796        $('.tab_bl_2').hide();
797        $('.'+$(this).parent().attr('id')).show();
798    });
799
800    $(window).scroll(function() {
801        if($(this).scrollTop() != 0) {
802            $('#toTop').fadeIn();
803        } else {
804            $('#toTop').fadeOut();
805        }
806    });
807
808    $('#toTop').click(function() {
809        $('body,html').animate({scrollTop:0},500);
810    });
811});
812
813function focusSubmit(elem) {
814    elem.keypress(function (e) {
815        if (e.which == 13) {
816            $(this).blur();
817            $("#btnleft").focus().click();
818        }
819    });
820}
821
822$(window).bind('popstate', function(event) {
823    var state = event.originalEvent.state;
824    if (state) {
825        if (state.callFrom == 'reloadApartmentList') {
826            //$('div.main-content-wrapper').html(state.response);
827            window.location.href = state.path;
828        }
829    }
830    /*else {
831        window.location.reload();
832    }*/
833});
834
835function reloadApartmentList(url) {
836    $.ajax({
837        type: 'GET',
838        url: url,
839        /*data: {is_ajax: 1},*/
840        ajaxStart: UpdatingProcess(resultBlock, updateText),
841        success: function (msg) {
842            history.pushState( {callFrom: 'reloadApartmentList', path: url, response: msg}, null, url);
843
844            $('div.main-content-wrapper').html(msg);
845            $('div.rating > span > input').rating({'readOnly': true});
846
847            list.apply();
848
849            // smooth scroll to
850            var dest=0;
851            
852            if($("#appartment_box").offset().top > $(document).height()-$(window).height()){
853                dest=$(document).height()-$(window).height();
854            }
855            else{
856                dest=$("#appartment_box").offset().top;
857            }
858            
859            $("html,body").animate({scrollTop:dest}, 500,"swing");
860            
861            $('#update_div').remove();
862            $('#update_text').remove();
863            $('#update_img').remove();
864        }
865    });
866}
867
868function UpdatingProcess(resultBlock, updateText) {
869    $('#update_div').remove();
870    $('#update_text').remove();
871    $('#update_img').remove();
872
873    var opacityBlock = $('#' + resultBlock);
874
875    if (opacityBlock.width() != null) {
876        var width = opacityBlock.width();
877        var height = opacityBlock.height();
878        var left_pos = opacityBlock.offset().left;
879        var top_pos = opacityBlock.offset().top;
880        $('body').append('<div id=\"update_div\"></div>');
881
882        var cssValues = {
883            'z-index': '1005',
884            'position': 'absolute',
885            'left': left_pos,
886            'top': top_pos,
887            'width': width,
888            'height': height,
889            'border': '0px solid #FFFFFF',
890            'background-image': 'url(' + bg_img + ')'
891        }
892
893        $('#update_div').css(cssValues);
894
895        var left_img = left_pos + width / 2 - 16;
896        var left_text = left_pos + width / 2 + 24;
897        var top_img = top_pos + height / 2 - 16;
898        var top_text = top_img + 8;
899
900        $('body').append("<img id='update_img' src='" + indicator + "' style='position:absolute;z-index:1006; left: " + left_img + "px;top: " + top_img + "px;'>");
901        $('body').append("<div id='update_text' style='position:absolute;z-index:6; left: " + left_text + "px;top: " + top_text + "px;'>" + updateText + "</div>");
902    }
903}
904
905var searchLock = false;
906
907function changeSearch() {
908    if (params.change_search_ajax != 1) {
909        return false;
910    }
911
912    if (!searchLock) {
913        searchLock = true;
914
915        $.ajax({
916            url: CHANGE_SEARCH_URL,
917            data: $('#search-form').serialize(),
918            dataType: 'json',
919            type: 'get',
920            success: function (data) {
921                $('#btnleft').html(data.string);
922                searchLock = false;
923            },
924            error: function () {
925                searchLock = false;
926            }
927        })
928    }
929}
930
931var placemarksYmap = [];
932
933var list = {
934    lat: 0,
935    lng: 0,
936    ad_id : 0,
937
938    apply: function () {
939        $('div.appartment_item').each(function () {
940
941            var existListMap = $('#list_map_block').attr('data-exist') == 1;
942            if(!existListMap){
943                return;
944            }
945
946            var item = $(this);
947
948            item.mouseover(function () {
949
950                var ad = $(this);
951                var lat = ad.attr('data-lat') + 0;
952                var lng = ad.attr('data-lng') + 0;
953                var id = ad.attr('data-ap-id');
954
955                if ((list.lat != lat || list.lng != lng || list.ad_id != id) && lat > 0 && lng > 0) {
956                    list.lat = lat;
957                    list.lng = lng;
958                    list.ad_id = id;
959
960                    if (useGoogleMap) {
961                        if (typeof infoWindowsGMap !== 'undefined' && typeof infoWindowsGMap[id] !== 'undefined') {
962                            for (var key in infoWindowsGMap) {
963                                if (key == id) {
964                                    infoWindowsGMap[key].open();
965                                } else {
966                                    infoWindowsGMap[key].close();
967                                }
968                            }
969                            var latLng = new google.maps.LatLng(lat, lng);
970
971                            mapGMap.panTo(latLng);
972                            infoWindowsGMap[id].open(mapGMap, markersGMap[id]);
973                        }
974                    }
975
976                    if (useYandexMap) {
977                        if (typeof placemarksYMap[id] !== 'undefined') {
978                            placemarksYMap[id].balloon.open();
979                        }
980                    }
981
982                    if (useOSMap) {
983                        if (typeof markersOSMap[id] !== 'undefined') {
984                            markersOSMap[id].openPopup();
985                            mapOSMap.panTo(new L.LatLng(lat, lng));
986                        }
987                    }
988                }
989
990            });
991
992        });
993    }
994}
995
996var scriptLoaded = [];
997
998function loadScript(url, reload) {
999    reload = reload || true;
1000
1001    //if(typeof scriptLoaded[url] == 'undefined' || reload){
1002        var script = document.createElement("script");
1003        script.type = "text/javascript";
1004        script.src = url;
1005        document.body.appendChild(script);
1006
1007        scriptLoaded[url] = 1;
1008    //}
1009}
1010
1011function ajaxRequest(url, tableId){
1012	$.ajax({
1013		url: url,
1014		type: "get",
1015		success: function(){
1016			$("#"+tableId).yiiGridView.update(tableId);
1017		}
1018	});
1019}$.easing['jswing']=$.easing['swing'];$.extend($.easing,{def:'easeOutQuad',swing:function(x,t,b,c,d){return $.easing[$.easing.def](x,t,b,c,d)},easeInQuad:function(x,t,b,c,d){return c*(t/=d)*t+b},easeOutQuad:function(x,t,b,c,d){return-c*(t/=d)*(t-2)+b},easeInOutQuad:function(x,t,b,c,d){if((t/=d/2)<1) return c/2*t*t+b;return-c/2*((--t)*(t-2)-1)+b},easeInCubic:function(x,t,b,c,d){return c*(t/=d)*t*t+b},easeOutCubic:function(x,t,b,c,d){return c*((t=t/d-1)*t*t+1)+b},easeInOutCubic:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t+b;return c/2*((t-=2)*t*t+2)+b},easeInQuart:function(x,t,b,c,d){return c*(t/=d)*t*t*t+b},easeOutQuart:function(x,t,b,c,d){return-c*((t=t/d-1)*t*t*t-1)+b},easeInOutQuart:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t+b;return-c/2*((t-=2)*t*t*t-2)+b},easeInQuint:function(x,t,b,c,d){return c*(t/=d)*t*t*t*t+b},easeOutQuint:function(x,t,b,c,d){return c*((t=t/d-1)*t*t*t*t+1)+b},easeInOutQuint:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t*t+b;return c/2*((t-=2)*t*t*t*t+2)+b},easeInSine:function(x,t,b,c,d){return-c*Math.cos(t/d*(Math.PI/2))+c+b},easeOutSine:function(x,t,b,c,d){return c*Math.sin(t/d*(Math.PI/2))+b},easeInOutSine:function(x,t,b,c,d){return-c/2*(Math.cos(Math.PI*t/d)-1)+b},easeInExpo:function(x,t,b,c,d){return(t==0)?b:c*Math.pow(2,10*(t/d-1))+b},easeOutExpo:function(x,t,b,c,d){return(t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b},easeInOutExpo:function(x,t,b,c,d){if(t==0)return b;if(t==d)return b+c;if((t/=d/2)<1)return c/2*Math.pow(2,10*(t-1))+b;return c/2*(-Math.pow(2,-10*--t)+2)+b},easeInCirc:function(x,t,b,c,d){return-c*(Math.sqrt(1-(t/=d)*t)-1)+b},easeOutCirc:function(x,t,b,c,d){return c*Math.sqrt(1-(t=t/d-1)*t)+b},easeInOutCirc:function(x,t,b,c,d){if((t/=d/2)<1)return-c/2*(Math.sqrt(1-t*t)-1)+b;return c/2*(Math.sqrt(1-(t-=2)*t)+1)+b},easeInElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0) return b;if((t/=d)==1)return b+c;
vendor: 1,610 bytes, line 1019
1019if(!p)p=d*.3;if(a<Math.abs(c)){a=c;var s=p/4}else var s=p/(2*Math.PI)*Math.asin(c/a);return-(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b},easeOutElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(a<Math.abs(c)){a=c;var s=p/4}else var s=p/(2*Math.PI)*Math.asin(c/a);return a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p)+c+b},easeInOutElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d/2)==2)return b+c;if(!p)p=d*(.3*1.5);if(a<Math.abs(c)){a=c;var s=p/4}else var s=p/(2*Math.PI)*Math.asin(c/a);if(t<1)return-.5*(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;return a*Math.pow(2,-10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p)*.5+c+b},easeInBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;return c*(t/=d)*t*((s+1)*t-s)+b},easeOutBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;return c*((t=t/d-1)*t*((s+1)*t+s)+1)+b},easeInOutBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;if((t/=d/2)<1)return c/2*(t*t*(((s*=(1.525))+1)*t-s))+b;return c/2*((t-=2)*t*(((s*=(1.525))+1)*t+s)+2)+b},easeInBounce:function(x,t,b,c,d){return c-$.easing.easeOutBounce(x,d-t,0,c,d)+b},easeOutBounce:function(x,t,b,c,d){if((t/=d)<(1/2.75)){return c*(7.5625*t*t)+b}else if(t<(2/2.75)){return c*(7.5625*(t-=(1.5/2.75))*t+.75)+b}else if(t<(2.5/2.75)){return c*(7.5625*(t-=(2.25/2.75))*t+.9375)+b}else{return c*(7.5625*(t-=(2.625/2.75))*t+.984375)+b}},easeInOutBounce:function(x,t,b,c,d){if(t<d/2)return $.easing.easeInBounce(x,t*2,0,c,d)*.5+b;return $.easing.easeOutBounce(x,t*2-d,0,c,d)*.5+c*.5+b}})

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.