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(" » "); 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(" » "); 673 //$("ul.dropDownNav li:has(ul)").find("a:first").prepend(" ▼"); 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.