1/*jshint undef: true, unused: false, vars: true, plusplus: true */ 2/*global jQuery:false, window: false, setInterval: false, clearTimeout: false, setTimeout: false, mo_options:false, mo_theme:false, template_dir:false, document:false */ 3 4jQuery.noConflict(); 5 6var MO_THEME; // theme namespace 7 8/*================================ Global Function init ==================================*/ 9// Helps to avoid continuous method execution as can happen in the case of scroll or window resize. Useful specially 10// when DOM access/manipulation is involved 11var mo_wait_for_final_event = (function () { 12 "use strict"; 13 var timers = {}; 14 return function (callback, ms, uniqueId) { 15 if (!uniqueId) { 16 uniqueId = "Don't call this twice without a uniqueId"; 17 } 18 if (timers[uniqueId]) { 19 clearTimeout(timers[uniqueId]); 20 } 21 timers[uniqueId] = setTimeout(callback, ms); 22 }; 23})(); 24 25/*---- Enter negative percentage to darken; assumes presence of # - Credit: http://stackoverflow.com/questions/5560248/programmatically-lighten-or-darken-a-hex-color --*/ 26var mo_shadeColor = (function () { 27 "use strict"; 28 return function (color, percent) { 29 var num = parseInt(color.slice(1), 16), amt = Math.round(2.55 * percent), R = (num >> 16) + amt, G = (num >> 8 & 0x00FF) + amt, B = (num & 0x0000FF) + amt; 30 return "#" + (0x1000000 + (R < 255 ? R < 1 ? 0 : R : 255) * 0x10000 + (G < 255 ? G < 1 ? 0 : G : 255) * 0x100 + (B < 255 ? B < 1 ? 0 : B : 255)).toString(16).slice(1); 31 }; 32})(); 33 34var mo_isIE = (function () { 35 "use strict"; 36 return function (version) { 37 var exp = new RegExp('msie' + (!isNaN(version) ? ('\\s' + version) : ''), 'i'); 38 return exp.test(navigator.userAgent); 39 }; 40})(); 41 42var mo_isMobile = (function () { 43 "use strict"; 44 return function () { 45 if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) { 46 return true; 47 } 48 return false; 49 }; 50})(); 51 52/*================================== Theme Function init =======================================*/ 53 54(function ($) { 55 56 "use strict"; 57 58 MO_THEME = { 59 60 add_body_classes: function () { 61 if (mo_isMobile()) { 62 $('body').addClass('mobile-device'); 63 } 64 if (/iPhone|iPad|iPod/i.test(navigator.userAgent)) { 65 $('body').addClass('ios-device'); 66 } 67 if (navigator.userAgent.match(/Android/i) !== null) { 68 $('body').addClass('android-device'); 69 } 70 }, 71 72 toggle_mobile_menu: function () { 73 $('#mobile-menu-toggle').toggleClass('menu-open'); 74 $('body').toggleClass('push-right'); 75 $('#mobile-menu').toggleClass('slide-open'); 76 }, 77 78 display_numbers: function (duration) { 79 /* ------- Numbers ---------- */ 80 $('.stats .number').animateNumbers(false, duration); 81 }, 82 83 display_stats: function () { 84 /* ------- Skill Bar --------- */ 85 $('.skill-bar-content').each(function () { 86 var dataperc = $(this).attr('data-perc'); 87 $(this).animate({ "width": dataperc + "%"}, dataperc * 20); 88 }); 89 90 /* -------- Charts like Pie Chart -------- */ 91 var charts = $('.piechart .percentage'), 92 bar_color = mo_options.theme_skin, 93 track_color = mo_shadeColor(bar_color, 26); 94 /* Lighten */ 95 charts.easyPieChart({ 96 animate: 2000, 97 lineWidth: 20, 98 barColor: bar_color, 99 trackColor: track_color, 100 scaleColor: false, 101 lineCap: 'square', 102 size: 250 103 104 }); 105 }, 106 107 get_internal_link: function (urlString) { 108 var internal_link = null;
109 if (urlString.indexOf("#") !== -1) { 110 var arr = urlString.split('#'); 111 if (arr.length === 2) { 112 var url = arr[0]; 113 internal_link = '#' + arr[1]; 114 // check if this internal link belongs to current URL 115 if (url === (document.URL + '/') || url === document.URL) { 116 return internal_link; 117 } 118 } else if (arr.length === 1) { 119 internal_link = '#' + arr[0]; 120 return internal_link; 121 } 122 } 123 return internal_link; 124 125 }, 126 127 init_page_navigation: function () { 128 129 // make the parent of current page active for lavalamp highlight 130 $('#primary-menu > ul > li.current_page_ancestor').first().addClass('active'); 131 132 // make the current page active for lavalamp highlight - top list cannot have both a parent and current page item 133 $('#primary-menu > ul > li.current_page_item').first().addClass('active'); 134 135 // make the parent of current page active for lavalamp highlight 136 $('#primary-menu > ul > li.current-page-ancestor').first().addClass('active'); 137 138 $('#primary-menu > ul > li.current_page_parent').first().addClass('active'); 139 140 // make the current page active for lavalamp highlight - top list cannot have both a parent and current page item 141 $('#primary-menu > ul > li.current-page-item').first().addClass('active'); 142 143 // make the parent of current page active for lavalamp highlight 144 $('#primary-menu > ul > li.current-menu-ancestor').first().addClass('active'); 145 146 // make the current page active for lavalamp highlight - top list cannot have both a parent and current page item 147 $('#primary-menu > ul > li.current-menu-item').first().addClass('active'); 148 149 var lavaLamp = jQuery('html:not(".ie") #primary-menu > ul.menu').lavaLamp({ 150 speed: 600 151 }); 152 153 var delay = (function () { 154 var timer = 0; 155 return function (callback, ms) { 156 clearTimeout(timer); 157 timer = setTimeout(callback, ms); 158 }; 159 })(); 160 161 /*--- Sticky Menu -------*/ 162 var width = $(window).width(); 163 if (width > 768 && mo_options.sticky_menu) { 164 $('#header').waypoint('sticky', { 165 stuckClass: 'sticky', 166 offset: -100, 167 handler: function (direction) { 168 if (direction === "up") { 169 /* Reached the top and hence highlight current page link */ 170 $('#primary-menu > ul > li').not(".hover-bg").each(function () { 171 $(this).removeClass('active'); 172 var menu_link = $(this).find('a').attr('href').replace(/\/?$/, '/'); // add a trailing slash if not present 173 var current_url = document.URL.replace(/\/?$/, '/'); 174 if (menu_link === current_url) { 175 $(this).addClass('active'); 176 if (lavaLamp !== null) { 177 lavaLamp.moveLava($(this)[0]);// pass the list element to update lavaLamp menu highlight 178 } 179 } 180 }); 181 } else { 182 if (lavaLamp !== null) { 183 lavaLamp.moveLava(); // Update the position of lavaLamp on reaching the top 184 } 185 } 186 } 187 }); 188 189 $('#container').waypoint(function () { 190 var height = $('#header').height(); 191 $('.sticky-wrapper').height(height); 192 if (lavaLamp !== null) { 193 lavaLamp.moveLava(); // Update the position of lavaLamp on reaching the top 194 } 195 }); 196 197 198 $(window).resize(function () { 199 mo_wait_for_final_event(function () { 200 if ($(document).scrollTop() < 50) { 201 var height = $('#header').height(); 202 $('.sticky-wrapper').height(height); 203 } 204 }, 200, 'sticky-wrapper-resize'); 205 206 }); 207 208 } 209 210 /* ----- Smooth Scroll --------*/ 211 212 if ($().smoothScroll !== undefined) { 213 $('#primary-menu > ul > li > a[href*=#]').smoothScroll( 214 { preventDefault: true, easing: 'swing', speed: 700, offset: -50, exclude: ['.external a'], 215 beforeScroll: function () {
216 // Disable all waypoints on internal divs which are linked to from the menu 217 $('#primary-menu > ul > li > a[href*=#]').each(function () { 218 var element_id = MO_THEME.get_internal_link($(this).attr('href')); // Gives me ids of div's with ids like #work,#service, #portfolio etc. 219 $(element_id).waypoint('disable'); 220 }); 221 }, 222 afterScroll: function () { 223 // Enable all waypoints on internal divs which are linked to from the menu 224 $('#primary-menu > ul > li > a[href*=#]').each(function () { 225 var element_id = MO_THEME.get_internal_link($(this).attr('href')); // Gives me ids of div's with ids like #work,#service, #portfolio etc. 226 $(element_id).waypoint('enable'); 227 }); 228 }}); 229 $('#mobile-menu a[href*=#]').smoothScroll( 230 {easing: 'swing', speed: 700, offset: 0, exclude: ['.external a']}); 231 } 232 233 234 /* --------- One Page Menu --------- */ 235 $('#primary-menu > ul > li > a[href*=#]').click(function () { 236 $(this).closest('ul').children('li').each(function () { 237 $(this).removeClass('active'); 238 }); 239 $(this).parent('li').addClass('active'); 240 }); 241 $('#primary-menu > ul > li > a[href*=#]').each(function () { 242 var current_div_selector = MO_THEME.get_internal_link($(this).attr('href')); // Give ids of div's with ids like #work,#service, #portfolio etc. 243 244 $(current_div_selector).waypoint(function (direction) { 245 if (direction === "up") { 246 $('#primary-menu > ul > li').not(".hover-bg").each(function () { 247 $(this).removeClass('active'); 248 if ($(this).find('a').attr('href').indexOf(current_div_selector) !== -1) { 249 $(this).addClass('active'); 250 lavaLamp.moveLava($(this)[0]);// pass the list element to update lavaLamp menu highlight 251 } 252 }); 253 } 254 }, { 255 offset: function () { 256 var half_browser_height = $.waypoints('viewportHeight') / 2; 257 var element_height = $(this).height(); 258 var result = 0; 259 if (element_height > half_browser_height) { 260 result = -( element_height - (half_browser_height)); // enable when top of the div is half exposed on the screen 261 } 262 else { 263 result = -(element_height / 2); // enable the menu when everything is visible 264 } 265 return result; 266 } 267 } 268 ); 269 $(current_div_selector).waypoint(function (direction) { 270 if (direction === "down") { 271 $('#primary-menu > ul > li').not(".hover-bg").each(function () { 272 $(this).removeClass('active'); 273 if ($(this).find('a').attr('href').indexOf(current_div_selector) !== -1) { 274 $(this).addClass('active'); 275 lavaLamp.moveLava($(this)[0]); 276 } 277 }); 278 } 279 }, { offset: '50%' }); 280 }); 281 282 }, 283 284 init_menus: function () { 285 /* For sticky and primary menu navigation */ 286 $('.dropdown-menu-wrap > ul').superfish({ 287 delay: 300, // one second delay on mouseout 288 animation: {height: 'show'}, // fade-in and slide-down animation 289 speed: 'fast', // faster animation speed
290 autoArrows: false // disable generation of arrow mark-up 291 }); 292 293 294 /* Take care of internal links too - close the menu when scrolling from internal links */ 295 $("#mobile-menu-toggle, #mobile-menu a[href*=#]").click(function () { 296 MO_THEME.toggle_mobile_menu(); 297 return true; 298 /* must return true to record click event for smooth scroll of internal links */ 299 }); 300 301 /* Close the mobile menu if the user touches the right document when mobile menu is open */ 302 $('#container').on('click touchstart', function () { 303 if ($('body').hasClass('push-right')) { 304 MO_THEME.toggle_mobile_menu(); 305 return false; 306 /* no need to do anything else for now until menu closes */ 307 } 308 return true; 309 /* continue with normal click activity */ 310 }); 311 312 $("#mobile-menu ul li").each(function () { 313 var sub_menu = $(this).find("> ul"); 314 if (sub_menu.length > 0 && $(this).addClass("has-ul")) { 315 $(this).append('<div class="sf-sub-indicator"><i class="icon-uniF488"></i></div>'); 316 } 317 }); 318 319 $('#mobile-menu ul li:has(">ul") > div').click(function () { 320 $(this).siblings("ul.sub-menu").stop(true, true).slideToggle(); 321 $(this).parent().toggleClass("open"); 322 return false; 323 }); 324 325 this.init_page_navigation(); 326 }, 327 328 scroll_effects: function () { 329 if ($().waypoint === undefined) { 330 return; 331 } 332 333 $(".download-buttons .appstore img, .profiles .profile-header img, .download-buttons .google-play img, #client-list .twocol img, .showcase-section .image-area, #featured-app .app-screenshot img, .features-list-alternate i").css('opacity', 0); 334 335 $(".download-buttons").waypoint(function (direction) { 336 $(this).find(".appstore img").addClass("animated fadeInLeft"); // flash only the button 337 $(this).find(".google-play img").addClass("animated fadeInRight"); // flash only the button 338 }, { offset: $.waypoints('viewportHeight') - 200, 339 triggerOnce: true}); 340 341 342 $(".features-list-alternate i").waypoint(function (direction) { 343 $(this).addClass("animated fadeIn"); 344 }, { offset: $.waypoints('viewportHeight') - 300, 345 triggerOnce: true}); 346 347 $(".showcase-section .image-area").waypoint(function (direction) { 348 $(this).addClass("animated fadeInUp"); 349 }, { offset: $.waypoints('viewportHeight') - 150, 350 triggerOnce: true}); 351 352 $("#client-list .twocol img").waypoint(function (direction) { 353 $(this).addClass("animated fadeIn"); 354 }, { offset: $.waypoints('viewportHeight') - 250, 355 triggerOnce: true}); 356 357 $("#featured-app .app-screenshot img").waypoint(function (direction) { 358 $(this).addClass("animated fadeInUp"); 359 }, { offset: $.waypoints('viewportHeight') - 450, 360 triggerOnce: true}); 361 362 $(".profiles .profile-header img").waypoint(function (direction) { 363 $(this).addClass("animated fadeIn"); 364 }, { offset: $.waypoints('viewportHeight') - 250, 365 triggerOnce: true}); 366 367 /* ------------------- Stats -----------------------------*/ 368 369 $("#stats-section").waypoint(function (direction) { 370 371 MO_THEME.display_stats(); 372 373 }, { offset: $.waypoints('viewportHeight') - 100, 374 triggerOnce: true}); 375 376 $(".stats").waypoint(function (direction) { 377 setTimeout(function () { 378 MO_THEME.display_numbers(2400) 379 }, 100); 380 381 }, { offset: $.waypoints('viewportHeight') - 100, 382 triggerOnce: true}); 383 384 }, 385 386 prettyPhoto: function () { 387 388 if ($().prettyPhoto === undefined) { 389 return; 390 } 391 392 var theme_selected = 'pp_default'; 393 394 $("a[rel^='prettyPhoto']").prettyPhoto({ 395 "theme": theme_selected, /* light_rounded / dark_rounded / light_square / dark_square / facebook */ 396 social_tools: false 397 }); 398 }, 399 400 toggle_state: function (toggle_element) { 401 var active_class; 402 var current_content; 403 404 active_class = 'active-toggle'; 405 406 // close all others first 407 toggle_element.siblings().removeClass(active_class); 408 toggle_element.siblings().find('.toggle-content').slideUp("fast"); 409 410 current_content = toggle_element.find('.toggle-content'); 411 412 if (toggle_element.hasClass(active_class)) { 413 toggle_element.removeClass(active_class); 414 current_content.slideUp("fast"); 415 } 416 else { 417 toggle_element.addClass(active_class); 418 current_content.slideDown("fast"); 419 } 420 }, 421 422 validate_contact_form: function () { 423 /* ------------------- Contact Form Validation ------------------------ */ 424 var rules = { 425 contact_name: { 426 required: true, 427 minlength: 5 428 }, 429 contact_email: { 430 required: true, 431 email: true 432 }, 433 contact_phone: { 434 required: false, 435 minlength: 5 436 }, 437 contact_url: { 438 required: false, 439 url: true 440 }, 441 message: { 442 required: true, 443 minlength: 15 444 } 445 }; 446 var messages = { 447 contact_name: { 448 required: mo_theme.name_required, 449 minlength: mo_theme.name_format 450 }, 451 contact_email: mo_theme.email_required, 452 contact_url: mo_theme.url_required, 453 contact_phone: { 454 minlength: mo_theme.phone_required 455 }, 456 message: { 457 required: mo_theme.message_required, 458 minlength: mo_theme.message_format 459 } 460 }; 461 $("#content .contact-form").validate({ 462 rules: rules, 463 messages: messages, 464 errorClass: 'form-error', 465 submitHandler: function (theForm) { 466 $.post( 467 theForm.action, 468 $(theForm).serialize(), 469 function (response) { 470 $("#content .feedback").html('<div class="success-msg">' + mo_theme.success_message + '</div>'); 471 theForm.reset(); 472 }); 473 } 474 475 }); 476 $(".widget .contact-form").validate({ 477 rules: rules, 478 messages: messages, 479 errorClass: 'form-error', 480 submitHandler: function (theForm) { 481 $.post( 482 theForm.action, 483 $(theForm).serialize(), 484 function (response) { 485 $(".widget .feedback").html('<div class="success-msg">' + mo_theme.success_message + '</div>'); 486 theForm.reset(); 487 }); 488 } 489 490 }); 491 } 492 493 494 }; 495 496})(jQuery); 497 498/*======================== Plugins ======================*/ 499 500(function ($) { 501 502 "use strict"; 503 504 $.fn.lavaLamp = function (o) { 505 506 o = $.extend({ fx: "easeOutBack", speed: 500, click: function () { 507 } }, o || {}); 508 509 if (this.length === 0) { 510 return null; 511 } 512 513 function setCurr(el) { 514 hover_element.css({ left: el.offsetLeft + "px", width: el.offsetWidth + "px" }); 515 current = el; 516 } 517 518 function move(el) { 519 hover_element.each(function () { 520 $.dequeue(this, "fx"); 521 } 522 ).animate({ 523 width: el.offsetWidth, 524 left: el.offsetLeft 525 }, o.speed, o.fx); 526 } 527 528 var me = $(this), noop = function () { 529 }, 530 hover_element = $('<li class="hover-bg"></li>').appendTo(me), 531 list_element = $(">li", this), 532 current = $("li.active", this)[0] || $(list_element[0]).addClass("active")[0]; 533
534 var delay = (function () { 535 var timer = 0; 536 return function (callback, ms) { 537 clearTimeout(timer); 538 timer = setTimeout(callback, ms); 539 }; 540 })(); 541 542 var moveLava = function (el) { 543 if (el) { 544 setCurr(el); 545 } 546 else { 547 hover_element.css({left: current.offsetLeft + "px", width: current.offsetWidth + "px"}); 548 } 549 }; 550 551 list_element.not(".hover-bg").hover(function () { 552 move(this); 553 }, noop); 554 555 $(this).hover(noop, function () { 556 move(current); 557 }); 558 559 list_element.click(function (e) { 560 setCurr(this); 561 return o.click.apply(this, [e, this]); 562 }); 563 setCurr(current); 564 565 $(window).resize(function () { 566 delay(function () { 567 hover_element.css({left: current.offsetLeft + "px", width: current.offsetWidth + "px"}); 568 }, 200); 569 570 }); 571 572 return { 573 moveLava: moveLava 574 }; 575 576 }; 577})(jQuery); 578 579/*======================== Document event handling ======================*/ 580 581jQuery(document).ready(function ($) { 582 583 "use strict"; 584 585 /* -------------------------- Initialize document based on platform type -------------------- */ 586 587 MO_THEME.add_body_classes(); 588 589 /* ---------------------------------- Drop-down Menu.-------------------------- */ 590 591 MO_THEME.init_menus(); 592 593 /* --------- Back to top function ------------ */ 594 $(window).scroll(function () { 595 mo_wait_for_final_event(function () { 596 var yPos = $(window).scrollTop(); 597 /* show back to top after screen has scrolled down 200px from the top in desktop and big size tablets only */ 598 if (yPos > 200) { 599 if (!mo_options.disable_back_to_top) { 600 $("#go-to-top").fadeIn(); 601 } 602 } else { 603 $("#go-to-top").fadeOut(); 604 } 605 }, 200, 'go-to-top'); 606 }); 607 608 609 // Animate the scroll to top 610 $('#go-to-top').click(function (event) { 611 event.preventDefault(); 612 $('html, body').animate({scrollTop: 0}, 600); 613 }); 614 615 /* ------------------- Scroll Effects ----------------------------- */ 616 617 618 if (!mo_options.disable_animations_on_page && !mo_isIE() && !mo_isMobile()) { 619 MO_THEME.scroll_effects(); 620 } 621 else { 622 623 //Show stats without waiting for user to scroll to the element 624 MO_THEME.display_stats(); 625 setTimeout(function () { 626 MO_THEME.display_numbers(2400) 627 }, 200); 628 629 // Show elements rightaway without animation 630 $('#featured-app .app-screenshot').addClass('visible'); 631 $('#feature-pointers img').css({ opacity: 1}); 632 } 633 634 635 /* ------------------- Tabs and Accordions plus Tooltips ------------------------ */ 636 637 $("ul.tabs").tabs(".pane"); 638 639 $(".accordion").tabs("div.pane", { 640 tabs: 'div.tab', 641 effect: 'slide', 642 initialIndex: 0 643 }); 644 645 $(".social-list li a[title]").tooltip(); 646 647 $(".single-page-template .page_section a.edit-button[title]").tooltip(); 648 649 650 /* ------------------- Back to Top and Close ------------------------ */ 651 652 $(".back-to-top").click(function (e) { 653 $('html,body').animate({ 654 scrollTop: 0 655 }, 600); 656 e.preventDefault(); 657 }); 658 659 $('a.close').click(function (e) { 660 e.preventDefault(); 661 $(this).closest('.message-box').fadeOut(); 662 }); 663 664 665 $(".toggle-label").toggle( 666 function () { 667 MO_THEME.toggle_state($(this).parent()); 668 }, 669 function () { 670 MO_THEME.toggle_state($(this).parent()); 671 } 672 ); 673 674 // Hide the honeypot trap field 675 $("p.trap-field").hide(); 676 677 MO_THEME.validate_contact_form(); 678 /* -------------------------------- PrettyPhoto Lightbox --------------------------*/ 679 680 681 MO_THEME.prettyPhoto(); 682 683 /* ------------------------------- Ticker display in home page --------------- */ 684 685 $('.ticker').each(function () { 686 var num = 1; 687 var height = $(this).height(); 688 var count = $(this).children().length; 689 var elem = $(this).find('div:nth-child(1)'); 690 setInterval(function () { 691 var top = num * -height; 692 elem.css("margin-top", top + "px"); 693 if (num === count) { 694 elem.css("margin-top", "0px"); 695 num = 1; 696 } else { 697 num++; 698 } 699 }, 2000); 700 }) 701 702 /* --------------------------- YouTube Video display ------------------------- */ 703 704 if (!mo_isMobile()) { 705 $(".ytp-player").mb_YTPlayer({ 706 startAt: 0, 707 showYTLogo: false, 708 showControls: false 709 }); 710 } 711 712 /*-----------------------------------------------------------------------------------*/ 713 /* jQuery isotope functions and Infinite Scroll 714 /*-----------------------------------------------------------------------------------*/ 715 716 $(function () { 717 718 if ($().isotope === undefined) { 719 return; 720 } 721 722 var post_snippets = $('.post-snippets').not('.carousel-container .post-snippets').not('.pane .post-snippets'); 723 724 post_snippets.imagesLoaded(function () { 725 $(this).isotope({ 726 // options 727 itemSelector: '.entry-item', 728 layoutMode: 'fitRows' 729 }); 730 }); 731 732 var container = $('#showcase-items'); 733 if (container.length === 0) { 734 return; 735 } 736 737 container.imagesLoaded(function () { 738 $(this).isotope({ 739 // options 740 itemSelector: '.showcase-item', 741 layoutMode: 'fitRows' 742 }); 743 744 $('#showcase-filter a').click(function (e) { 745 e.preventDefault(); 746 747 var selector = $(this).attr('data-value'); 748 container.isotope({ filter: selector }); 749 return false;
750 }); 751 }); 752 753 if (mo_options.ajax_showcase) { 754 if ($().infinitescroll !== undefined && $('.pagination').length) { 755 756 container.infinitescroll({ 757 navSelector: '.pagination', // selector for the paged navigation 758 nextSelector: '.pagination .next', // selector for the NEXT link (to page 2) 759 itemSelector: '.showcase-item', // selector for all items you'll retrieve 760 loading: { 761 msgText: mo_theme.loading_portfolio, 762 finishedMsg: mo_theme.finished_loading, 763 img: template_dir + '/images/loader.gif', 764 selector: '#main' 765 } 766 }, 767 // call Isotope as a callback 768 function (newElements) { 769 var $newElems = $(newElements); 770 $newElems.imagesLoaded(function () { 771 container.isotope('appended', $newElems); 772 }); 773 MO_THEME.prettyPhoto(); 774 }); 775 } 776 } 777 }); 778 779 /*-----------------------------------------------------------------------------------*/ 780 /* Handle videos in responsive layout - Credit - http://css-tricks.com/NetMag/FluidWidthVideo/Article-FluidWidthVideo.php 781 /*-----------------------------------------------------------------------------------*/ 782 783 $("#content, #sidebar-primary, #footer").fitVids(); 784 785 // Take care of maps too - https://github.com/davatron5000/FitVids.js - customSelector option 786 $("#content").fitVids({ customSelector: "iframe[src^='http://maps.google.com/']"}); 787 $("#content").fitVids({ customSelector: "iframe[src^='https://maps.google.com/']"}); 788 789 790 /*----------------- Parallax Effects - only on desktop ------------------ */ 791 792 var width = $(window).width(); 793 if (width > 1100) { 794 795 $('.parallax-banner').parallax("50%", 0.6); 796 797 } 798 799 800}); 801 802jQuery(window).load(function () { 803 804 if (!mo_options.disable_smooth_page_load) { 805 jQuery("#page-loading").delay(500).fadeOut("slow"); 806 } 807 808 /* Temporary fix for Chrome 33 Build Fonts display issue */ 809 jQuery('body').width(jQuery('body').width()+1).width('auto'); 810});
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.