1/*-----------------------------------------------------------------------------------*/ 2/* WordPress 3/*-----------------------------------------------------------------------------------*/ 4jQuery(document).ready(function() { 5 6 /** 7 * Mega Menu Stuff 8 */ 9 jQuery('nav .wpb_column').unwrap().parent().removeClass('subnav').addClass('mega-menu'); 10 jQuery('.mega-menu h4').each(function(){ 11 var $text = jQuery(this).text(); 12 jQuery(this).next().find('ul').prepend('<li><span class="title">'+ $text +'</span></li>') 13 jQuery(this).remove(); 14 }); 15 jQuery('.mega-menu ul').removeClass('menu').unwrap().unwrap().unwrap().wrap('<li />'); 16 jQuery('.mega-menu > div > li').unwrap(); 17 18 /** 19 * Forms 20 */ 21 jQuery('.custom-forms .wpcf7-checkbox .wpcf7-list-item, .custom-forms .gfield_checkbox > li').addClass('checkbox-option').prepend('<div class="inner" />'); 22 jQuery('.custom-forms .wpcf7-radio .wpcf7-list-item, .custom-forms .gfield_radio > li').addClass('radio-option').prepend('<div class="inner" />'); 23 24 /** 25 * Single post stuff 26 */ 27 jQuery('.feed-item .more-link').parent('p').remove(); 28 29 /** 30 * Select items 31 */ 32 jQuery('select:not(.checkout select)').wrap('<div class="select-option" />').parent().prepend('<i class="ti-angle-down"></i>'); 33 34 jQuery('.blog-carousel').owlCarousel({ 35 nav: false, 36 dots: false, 37 loop: true, 38 responsive:{ 39 0:{ 40 items:1 41 }, 42 700:{ 43 items:2 44 }, 45 1100:{ 46 items:3 47 }, 48 1600:{ 49 items:4 50 } 51 } 52 }); 53 54 jQuery('a[rel*="attachment"]').attr('data-lightbox', 'true'); 55 56}); 57/*-----------------------------------------------------------------------------------*/ 58/* Document Ready Stuff 59/*-----------------------------------------------------------------------------------*/ 60var mr_firstSectionHeight, 61 mr_nav, 62 mr_fixedAt, 63 mr_navOuterHeight, 64 mr_navScrolled = false, 65 mr_navFixed = false, 66 mr_outOfSight = false, 67 mr_floatingProjectSections, 68 mr_scrollTop = 0; 69 70jQuery(document).ready(function() { 71 "use strict"; 72 73 //Cache Selectors 74 var $window = jQuery(window); 75 var mobileNavHeight = jQuery('nav.fixed').outerHeight(); 76 77 // Smooth scroll to inner links 78 if (jQuery(window).width() > 991) { 79 jQuery('nav a[href^="#"]:not(a[href="#"]), .back-to-top, a.btn[href^="#"], .hero-header a[href^="#"]').smoothScroll({ 80 offset: -55, 81 speed: 800 82 }); 83 } else { 84 jQuery('nav a[href^="#"]:not(a[href="#"]), .back-to-top, a.btn[href^="#"], .hero-header a[href^="#"]').smoothScroll({ 85 offset: -mobileNavHeight, 86 speed: 800 87 }); 88 } 89 90 //WooCommerce VC Element Fixes 91 jQuery('.woocommerce.columns-2 .col-sm-4').addClass('col-sm-6').removeClass('col-sm-4'); 92 jQuery('.woocommerce.columns-2 .col-md-4').addClass('col-md-6').removeClass('col-md-4'); 93 jQuery('.woocommerce.columns-4 .col-sm-4').addClass('col-sm-3').removeClass('col-sm-4'); 94 jQuery('.woocommerce.columns-4 .col-md-4').addClass('col-md-3').removeClass('col-md-4'); 95 96 // Update scroll variable for scrolling functions 97 addEventListener('scroll', function() { 98 mr_scrollTop = window.pageYOffset; 99 }, false); 100 101 // Append .background-image-holder <img>'s as CSS backgrounds 102 jQuery('.background-image-holder').each(function() { 103 var imgSrc = jQuery(this).children('img').attr('src'); 104 jQuery(this).css('background-image', 'url("' + imgSrc + '")'); 105 jQuery(this).children('img').hide(); 106 jQuery(this).css('background-position', 'initial'); 107 }); 108 109 // Fade in background images 110 setTimeout(function() { 111 jQuery('.background-image-holder').each(function() { 112 jQuery(this).addClass('fadeIn'); 113 }); 114 }, 200); 115 116 // Initialize Tooltips 117 jQuery('[data-toggle="tooltip"]').tooltip(); 118 119 // Icon bulleted lists 120 jQuery('ul[data-bullet]').each(function(){ 121 var bullet = jQuery(this).attr('data-bullet'); 122 jQuery(this).find('li').prepend('<i class="'+bullet+'"></i>'); 123 }); 124 125 // Checkboxes 126 jQuery('body').on('click', '.checkbox-option', function(){ 127 jQuery(this).toggleClass('checked'); 128 var checkbox = jQuery(this).find('input'); 129 if (checkbox.prop('checked') === false) { 130 checkbox.prop('checked', true); 131 } else { 132 checkbox.prop('checked', false); 133 } 134 }); 135 136 // Radio Buttons 137 jQuery('body').on('click', '.radio-option', function(){ 138 var checked = jQuery(this).hasClass('checked'); // Get the current status of the radio 139 140 var name = jQuery(this).find('input').attr('name'); // Get the name of the input clicked 141 142 if (!checked) { 143 144 jQuery('input[name="' + name + '"]').parent().removeClass('checked'); 145 146 jQuery(this).addClass('checked'); 147 148 jQuery(this).find('input').prop('checked', true); 149 150 } 151 }); 152 153 // Accordions 154 jQuery('.accordion').not('.team-member .accordion').each(function(){ 155 jQuery('li', this).eq(0).addClass('active'); 156 }); 157 158 jQuery('.accordion li').click(function() { 159 if (jQuery(this).closest('.accordion').hasClass('one-open')) { 160 jQuery(this).closest('.accordion').find('li').removeClass('active'); 161 jQuery(this).addClass('active'); 162 } else { 163 jQuery(this).toggleClass('active'); 164 } 165 if(typeof window.mr_parallax !== "undefined"){ 166 setTimeout(mr_parallax.windowLoad, 500); 167 } 168 }); 169 170 // Tabbed Content 171 jQuery('.tabbed-content').each(function() { 172 jQuery('li', this).eq(0).addClass('active'); 173 jQuery(this).append('<ul class="content"></ul>'); 174 }); 175 176 jQuery('.tabs li').each(function() { 177 var originalTab = jQuery(this), 178 activeClass = ""; 179 if (originalTab.is('.tabs > li:first-child')) { 180 activeClass = ' class="active"'; 181 } 182 var tabContent = originalTab.find('.tab-content').detach().wrap('<li' + activeClass + '></li>').parent(); 183 originalTab.closest('.tabbed-content').find('.content').append(tabContent); 184 }); 185 186 jQuery('.tabs li').click(function() { 187 jQuery(this).closest('.tabs').find('li').removeClass('active'); 188 jQuery(this).addClass('active'); 189 var liIndex = jQuery(this).index() + 1; 190 jQuery(this).closest('.tabbed-content').find('.content>li').removeClass('active'); 191 jQuery(this).closest('.tabbed-content').find('.content>li:nth-of-type(' + liIndex + ')').addClass('active'); 192 }); 193 194 // Progress Bars 195 jQuery('.progress-bar').each(function() { 196 jQuery(this).css('width', jQuery(this).attr('data-progress') + '%'); 197 }); 198 199 if( jQuery('body').hasClass('perm-fixed-nav') ){ 200 jQuery('nav').addClass('absolute'); 201 } 202 203 // Navigation 204 if (!jQuery('nav').hasClass('fixed') && !jQuery('nav').hasClass('absolute')) { 205 206 // Make nav container height of nav 207 jQuery('.nav-container').css('min-height', jQuery('nav').outerHeight(true)); 208 209 jQuery(window).resize(function() { 210 jQuery('.nav-container').css('min-height', jQuery('nav').outerHeight(true)); 211 }); 212 213 // Compensate the height of parallax element for inline nav 214 if (jQuery(window).width() > 768) { 215 jQuery('.parallax:nth-of-type(1) .background-image-holder').css('top', -(jQuery('nav').outerHeight(true))); 216 } 217 218 // Adjust fullscreen elements 219 if (jQuery(window).width() > 768) { 220 jQuery('section.fullscreen:nth-of-type(1)').css('height', (jQuery(window).height() - jQuery('nav').outerHeight(true))); 221 } 222 223 } else { 224 jQuery('body').addClass('nav-is-overlay'); 225 226 // Compensate the height of parallax element for inline nav 227 if (jQuery(window).width() > 768) { 228 if(jQuery('body').hasClass('admin-bar')){ 229 jQuery('.parallax:nth-of-type(1) .background-image-holder').css('top', -32); 230 } else { 231 jQuery('.parallax:nth-of-type(1) .background-image-holder').css('top', 0); 232 } 233 } 234 } 235 236 if (jQuery('nav').hasClass('bg-dark')) { 237 jQuery('.nav-container').addClass('bg-dark'); 238 } 239 240 jQuery('.perm-fixed-nav').css('padding-top', jQuery('.nav-container nav').outerHeight()); 241 242 // Fix nav to top while scrolling 243 mr_nav = jQuery('body .nav-container nav:first'); 244 mr_navOuterHeight = jQuery('body .nav-container nav:first').outerHeight(); 245 mr_fixedAt = typeof mr_nav.attr('data-fixed-at') !== typeof undefined ? parseInt(mr_nav.attr('data-fixed-at').replace('px', '')) : parseInt(j
245Query('section:nth-of-type(1)').outerHeight()); 246 window.addEventListener("scroll", updateNav, false); 247 248 // Menu dropdown positioning 249 jQuery('.menu > li > ul').each(function() { 250 var menu = jQuery(this).offset(); 251 var farRight = menu.left + jQuery(this).outerWidth(true); 252 if (farRight > jQuery(window).width() && !jQuery(this).hasClass('mega-menu')) { 253 jQuery(this).addClass('make-right'); 254 } else if (farRight > jQuery(window).width() && jQuery(this).hasClass('mega-menu')) { 255 var isOnScreen = jQuery(window).width() - menu.left; 256 var difference = jQuery(this).outerWidth(true) - isOnScreen; 257 jQuery(this).css('margin-left', -(difference)); 258 } 259 }); 260 261 // Mobile Menu 262 jQuery('.mobile-toggle').click(function() { 263 jQuery('.nav-bar').toggleClass('nav-open'); 264 jQuery(this).toggleClass('active'); 265 }); 266 267 jQuery('.menu li').click(function(e) { 268 if (!e) e = window.event; 269 e.stopPropagation(); 270 if (jQuery(this).find('ul').length) { 271 jQuery(this).toggleClass('toggle-sub'); 272 } else { 273 jQuery(this).parents('.toggle-sub').removeClass('toggle-sub'); 274 } 275 }); 276 277 jQuery('.menu li a[href^="#"]:not(a[href="#"])').click(function() { 278 jQuery(this).closest('.nav-bar').removeClass('nav-open'); 279 }); 280 281 jQuery('.module.widget-handle').click(function() { 282 jQuery(this).toggleClass('toggle-widget-handle'); 283 }); 284 285 jQuery('.search-widget-handle .search-form input').click(function(e){ 286 if (!e) e = window.event; 287 e.stopPropagation(); 288 }); 289 290 // Offscreen Nav 291 if(jQuery('.offscreen-toggle').length){ 292 jQuery('body').addClass('has-offscreen-nav'); 293 } else{ 294 jQuery('body').removeClass('has-offscreen-nav'); 295 } 296 297 jQuery('.offscreen-toggle').click(function(){ 298 jQuery('.main-container').toggleClass('reveal-nav'); 299 jQuery('nav').toggleClass('reveal-nav'); 300 jQuery('.offscreen-container').toggleClass('reveal-nav'); 301 }); 302 303 jQuery('.main-container').click(function(){ 304 if(jQuery(this).hasClass('reveal-nav')){ 305 jQuery(this).removeClass('reveal-nav'); 306 jQuery('.offscreen-container').removeClass('reveal-nav'); 307 jQuery('nav').removeClass('reveal-nav'); 308 } 309 }); 310 311 jQuery('.offscreen-container a').click(function(){ 312 jQuery('.offscreen-container').removeClass('reveal-nav'); 313 jQuery('.main-container').removeClass('reveal-nav'); 314 jQuery('nav').removeClass('reveal-nav'); 315 }); 316 317 if( false == wp_data.all_title || 'undefined' == wp_data.all_title || '' == wp_data.all_title ){ 318 wp_data.all_title = 'All'; 319 } 320 321 // Populate filters 322 jQuery('.projects').each(function() { 323 324 var filters = ""; 325 326 jQuery(this).find('.project').each(function() { 327 328 var filterTags = jQuery(this).attr('data-filter').split(','); 329 330 filterTags.forEach(function(tagName) { 331 if (filters.indexOf(tagName) == -1) { 332 filters += '<li data-filter="' + tagName + '">' + capitaliseFirstLetter(tagName) + '</li>'; 333 } 334 }); 335 336 jQuery(this).closest('.projects').find('ul.filters').empty().append('<li data-filter="all" class="active">' + wp_data.all_title + '</li>').append(filters); 337 338 }); 339 340 }); 341 342 jQuery('.filters li').click(function() { 343 var filter = jQuery(this).attr('data-filter'); 344 jQuery(this).closest('.filters').find('li').removeClass('active'); 345 jQuery(this).addClass('active'); 346 347 jQuery(this).closest('.projects').find('.project').each(function() { 348 var filters = jQuery(this).data('filter'); 349 350 if (filters.indexOf(filter) == -1) { 351 jQuery(this).addClass('inactive'); 352 } else { 353 jQuery(this).removeClass('inactive'); 354 } 355 }); 356 357 if (filter == 'all') { 358 jQuery(this).closest('.projects').find('.project').removeClass('inactive'); 359 } 360 }); 361 362 // Twitter Feed 363 jQuery('.tweets-feed').each(function(index) { 364 jQuery(this).attr('id', 'tweets-' + index); 365 }).each(function(index) { 366 367 if(!( '' == jQuery('#tweets-' + index).attr('data-user-name') || undefined == jQuery('#tweets-' + index).attr('data-user-name') )){ 368 369 var TweetConfig = { 370 "profile": {"screenName": jQuery('#tweets-' + index).attr('data-user-name')}, 371 "domId": '', 372 "maxTweets": jQuery('#tweets-' + index).attr('data-amount'), 373 "enableLinks": true, 374 "showUser": true, 375 "showTime": true, 376 "dateFunction": '', 377 "showRetweet": false, 378 "customCallback": handleTweets 379 }; 380 381 } else { 382 383 var TweetConfig = { 384 "id": jQuery('#tweets-' + index).attr('data-widget-id'), 385 "domId": '', 386 "maxTweets": jQuery('#tweets-' + index).attr('data-amount'), 387 "enableLinks": true, 388 "showUser": true, 389 "showTime": true, 390 "dateFunction": '', 391 "showRetweet": false, 392 "customCallback": handleTweets 393 }; 394 395 } 396 397 function handleTweets(tweets) { 398 var x = tweets.length; 399 var n = 0; 400 var element = document.getElementById('tweets-' + index); 401 var html = '<ul class="slides">'; 402 while (n < x) { 403 html += '<li>' + tweets[n] + '</li>'; 404 n++; 405 } 406 html += '</ul>'; 407 element.innerHTML = html; 408 return html; 409 } 410 411 twitterFetcher.fetch(TweetConfig); 412 413 }); 414 415 // Instagram Feed 416 if( jQuery('.instafeed').length && wp_data.access_token && wp_data.client_id ){ 417 jQuery.fn.spectragram.accessData = { 418 accessToken: wp_data.access_token, 419 clientID: wp_data.client_id 420 }; 421 422 jQuery('.instafeed').each(function() { 423 var method = ( jQuery(this).attr('data-method') ) ? jQuery(this).attr('data-method') : 'getUserFeed'; 424 jQuery(this).children('ul').spectragram( method, { 425 query: jQuery(this).attr('data-user-name'), 426 max: jQuery(this).attr('data-max') 427 }); 428 }); 429 } 430 431 // Flickr Feeds 432 if(jQuery('.flickr-feed').length){ 433 jQuery('.flickr-feed').each(function(){ 434 435 var flickrThis = jQuery(this), 436 userID = flickrThis.attr('data-user-id'), 437 albumID = flickrThis.attr('data-album-id'); 438 439 flickrThis.flickrPhotoStream({ id: userID, setId: albumID, container: '<li class="masonry-item" />' }).done(function(){ 440 jQuery(window).load(function(){ 441 flickrThis.masonry(); 442 }); 443 }); 444 445 }); 446 } 447
448 var foundryAutoplay = ( wp_data.hero_autoplay == 'false' ) ? false : true; 449 450 // Image Sliders 451 jQuery('.slider-all-controls').flexslider({ 452 start: function(slider){ 453 if(slider.find('.slides li:first-child').find('.fs-vid-background video').length){ 454 slider.find('.slides li:first-child').find('.fs-vid-background video').get(0).play(); 455 } 456 }, 457 after: function(slider){ 458 if(slider.find('.fs-vid-background video').length){ 459 if(slider.find('li:not(.flex-active-slide)').find('.fs-vid-background video').length){ 460 slider.find('li:not(.flex-active-slide)').find('.fs-vid-background video').get(0).pause(); 461 } 462 if(slider.find('.flex-active-slide').find('.fs-vid-background video').length){ 463 slider.find('.flex-active-slide').find('.fs-vid-background video').get(0).play(); 464 } 465 } 466 }, 467 animation: wp_data.hero_animation, 468 slideshow: foundryAutoplay, 469 slideshowSpeed: wp_data.hero_timer 470 }); 471 jQuery('.slider-paging-controls').flexslider({ 472 animation: "slide", 473 directionNav: false 474 }); 475 jQuery('.slider-arrow-controls').flexslider({ 476 controlNav: false 477 }); 478 jQuery('.slider-thumb-controls .slides li').each(function() { 479 var imgSrc = jQuery(this).find('img').attr('src'); 480 jQuery(this).attr('data-thumb', imgSrc); 481 }); 482 jQuery('.slider-thumb-controls').flexslider({ 483 animation: "slide", 484 controlNav: "thumbnails", 485 directionNav: true 486 }); 487 488 if( jQuery(window).width() < 491 ){ 489 jQuery('.logo-carousel').flexslider({ 490 minItems: 1, 491 maxItems: 1, 492 move: 1, 493 itemWidth: 200, 494 itemMargin: 0, 495 animation: "slide", 496 slideshow: true, 497 slideshowSpeed: 3000, 498 directionNav: false, 499 controlNav: false 500 }); 501 } else { 502 jQuery('.logo-carousel').flexslider({ 503 minItems: 1, 504 maxItems: 4, 505 move: 1, 506 itemWidth: 200, 507 itemMargin: 0, 508 animation: "slide", 509 slideshow: true, 510 slideshowSpeed: 3000, 511 directionNav: false, 512 controlNav: false 513 }); 514 } 515 516 // Lightbox gallery titles 517 jQuery('.lightbox-grid li a').each(function(){ 518 var galleryTitle = jQuery(this).closest('.lightbox-grid').attr('data-gallery-title'); 519 jQuery(this).attr('data-lightbox', galleryTitle); 520 }); 521 522 // Multipurpose Modals 523 if(jQuery('.foundry_modal').length){ 524 var modalScreen = jQuery('<div class="modal-screen">').appendTo('body'); 525 } 526 527 jQuery(document).on('wheel mousewheel scroll', '.foundry_modal, .modal-screen', function(evt){ 528 jQuery(this).get(0).scrollTop += (evt.originalEvent.deltaY); 529 return false; 530 }); 531 532 jQuery('.modal-container').each(function(index) { 533 if(jQuery(this).find('iframe[src]').length){ 534 jQuery(this).find('.foundry_modal').addClass('iframe-modal'); 535 jQuery('iframe', this).appendTo('.iframe-modal'); 536 jQuery('.iframe-modal > div', this).remove(); 537 jQuery(this).find('.foundry_modal').clone().appendTo('body'); 538 } 539 }); 540 541 jQuery('.btn-modal').click(function(){ 542 var linkedModal = jQuery('section').closest('body').find('.foundry_modal[modal-link="' + jQuery(this).attr('modal-link') + '"]'); 543 jQuery('.modal-screen').toggleClass('reveal-modal'); 544 if(linkedModal.find('iframe').length){ 545 linkedModal.find('iframe').attr('src', linkedModal.find('iframe').attr('data-src')); 546 } 547 linkedModal.toggleClass('reveal-modal'); 548 return false; 549 }); 550 551 // Autoshow modals 552 jQuery('.foundry_modal[modal-link][data-time-delay]').each(function(){ 553 var modal = jQuery(this); 554 var delay = modal.attr('data-time-delay'); 555 modal.prepend(jQuery('<i class="ti-close close-modal">')); 556 if(typeof modal.attr('data-cookie') != "undefined"){ 557 if(!mr_cookies.hasItem(modal.attr('data-cookie'))){ 558 setTimeout(function(){ 559 modal.addClass('reveal-modal'); 560 jQuery('.modal-screen').addClass('reveal-modal'); 561 },delay); 562 } 563 }else{ 564 setTimeout(function(){ 565 jQuery('.foundry_modal').removeClass('reveal-modal');
566 jQuery('.modal-screen').removeClass('reveal-modal'); 567 modal.addClass('reveal-modal'); 568 jQuery('.modal-screen').addClass('reveal-modal'); 569 }, delay); 570 } 571 }); 572 573 jQuery('.close-modal:not(.modal-strip .close-modal)').click(function(){ 574 var modal = jQuery(this).closest('.foundry_modal'); 575 modal.toggleClass('reveal-modal'); 576 if(typeof modal.attr('data-cookie') != "undefined"){ 577 mr_cookies.setItem(modal.attr('data-cookie'), "true", Infinity); 578 } 579 jQuery('.modal-screen').toggleClass('reveal-modal'); 580 modal.find('iframe').attr('data-src', modal.find('iframe').attr('src')); 581 modal.find('iframe').attr('src', ''); 582 }); 583 584 jQuery('.modal-screen').click(function(){ 585 jQuery('.foundry_modal.reveal-modal').toggleClass('reveal-modal'); 586 jQuery(this).toggleClass('reveal-modal'); 587 }); 588 589 jQuery(document).keyup(function(e) { 590 if (e.keyCode == 27) { // escape key maps to keycode `27` 591 jQuery('.foundry_modal').removeClass('reveal-modal'); 592 jQuery('.modal-screen').removeClass('reveal-modal'); 593 } 594 }); 595 596 // Modal Strips 597 jQuery('.modal-strip').each(function(){ 598 if(!jQuery(this).find('.close-modal').length){ 599 jQuery(this).append(jQuery('<i class="ti-close close-modal">')); 600 } 601 var modal = jQuery(this); 602 603 if(typeof modal.attr('data-cookie') != "undefined"){ 604 605 if(!mr_cookies.hasItem(modal.attr('data-cookie'))){ 606 setTimeout(function(){ 607 modal.addClass('reveal-modal'); 608 },1000); 609 } 610 }else{ 611 setTimeout(function(){ 612 modal.addClass('reveal-modal'); 613 },1000); 614 } 615 }); 616 617 jQuery('.modal-strip .close-modal').click(function(){ 618 var modal = jQuery(this).closest('.modal-strip'); 619 if(typeof modal.attr('data-cookie') != "undefined"){ 620 mr_cookies.setItem(modal.attr('data-cookie'), "true", Infinity); 621 } 622 jQuery(this).closest('.modal-strip').removeClass('reveal-modal'); 623 return false; 624 }); 625 626 627 // Video Modals 628 jQuery('section').closest('body').find('.modal-video[video-link]').remove(); 629 630 jQuery('.modal-video-container').each(function(index) { 631 jQuery(this).find('.play-button').attr('video-link', index); 632 jQuery(this).find('.modal-video').clone().appendTo('body').attr('video-link', index); 633 }); 634 635 jQuery('.modal-video-container .play-button').click(function() { 636 var linkedVideo = jQuery('section').closest('body').find('.modal-video[video-link="' + jQuery(this).attr('video-link') + '"]'), 637 iFrame = linkedVideo.find('iframe'); 638 639 iFrame.attr('src', iFrame.prev('.src-holder').attr('data-src')); 640 641 linkedVideo.toggleClass('reveal-modal'); 642 643 if (linkedVideo.find('video').length) { 644 linkedVideo.find('video').get(0).play(); 645 } 646 }); 647 648 jQuery('section').closest('body').find('.modal-video').click(function() { 649 jQuery(this).closest('.modal-video').toggleClass('reveal-modal'); 650 651 var $iframe = jQuery('iframe', this), 652 $src = $iframe.attr('src'); 653 654 $iframe.before('<div class="src-holder" data-src="'+ $src +'" />'); 655 $iframe.attr('src',''); 656 657 if(jQuery(this).siblings('video').length){ 658 jQuery(this).siblings('video').get(0).pause(); 659 } 660 }); 661 662 // Local Videos 663 jQuery('section').closest('body').find('.local-video-container .play-button').click(function() { 664 jQuery(this).siblings('.background-image-holder').removeClass('fadeIn'); 665 jQuery(this).siblings('.background-image-holder').css('z-index', -1); 666 jQuery(this).css('opacity', 0); 667 jQuery(this).siblings('video').get(0).play(); 668 }); 669 670 // Youtube Videos 671 jQuery('section').closest('body').find('.player').each(function() { 672 var section = jQuery(this).closest('section'); 673 section.find('.container').addClass('fadeOut'); 674 var src = jQuery(this).attr('data-video-id'); 675 var startat = jQuery(this).attr('data-start-at'); 676 jQuery(this).attr('data-property', "{videoURL:'http://youtu.be/" + src + "',containment:'self',autoPlay:true, mute:true, startAt:" + startat + ", opacity:1, showControls:false}"); 677 }); 678 679 if(jQuery('.player').length){ 680 jQuery('.player').each(function(){ 681 682 var section = jQuery(this).closest('section'); 683 var player = section.find('.player'); 684 player.YTPlayer(); 685 player.on("YTPStart",function(e){ 686 section.find('.container').removeClass('fadeOut'); 687 section.find('.masonry-loader').addClass('fadeOut'); 688 }); 689 690 }); 691 } 692 693 // Interact with Map once the user has clicked (to prevent scrolling the page = zooming the map 694 jQuery('.map-holder').click(function() { 695 jQuery(this).addClass('interact'); 696 }); 697 698 if(jQuery('.map-holder').length){ 699 $window.scroll(function() { 700 if (jQuery('.map-holder.interact').length) { 701 jQuery('.map-holder.interact').removeClass('interact'); 702 } 703 }); 704 } 705 706 // Countdown Timers 707 if (jQuery('.countdown').length) { 708 jQuery('.countdown').each(function() { 709 var date = jQuery(this).attr('data-date'); 710 jQuery(this).countdown(date, function(event) { 711 jQuery(this).text( 712 event.strftime('%D days %H:%M:%S') 713 ); 714 }); 715 }); 716 } 717 718 // Disable parallax on mobile
719 if ((/Android|iPhone|iPad|iPod|BlackBerry|Windows Phone/i).test(navigator.userAgent || navigator.vendor || window.opera)) { 720 jQuery('section').removeClass('parallax'); 721 jQuery('.vid-bg .player, .vid-bg .masonry-loader').css('display', 'none'); 722 jQuery('.vid-bg .background-image-holder').css('display', 'block'); 723 } 724 725 if(jQuery('.counter').length){ 726 jQuery('.counter').counterUp(); 727 } 728 729 $window.trigger('resize'); 730 731 // BACK TO TOP 732 jQuery("a[href='#top']").click(function(e) { 733 e.preventDefault(); 734 jQuery("html, body").animate({ scrollTop: 0 }, "slow"); 735 return false; 736 }); 737 738}); 739/*-----------------------------------------------------------------------------------*/ 740/* Window Load Stuff 741/*-----------------------------------------------------------------------------------*/ 742jQuery(window).load(function() { 743 "use strict"; 744 745 var $window = jQuery(window); 746 747 // Initialize Masonry 748 if (jQuery('.masonry').length) { 749 var container = document.querySelector('.masonry'); 750 var msnry = new Masonry(container, { 751 itemSelector: '.masonry-item' 752 }); 753 754 msnry.on('layoutComplete', function() { 755 756 mr_firstSectionHeight = jQuery('.main-container section:nth-of-type(1)').outerHeight(true); 757 if( 0 == jQuery('section').length || 1 == jQuery('section').length ){ 758 mr_firstSectionHeight = 300; 759 } 760 761 // Fix floating project filters to bottom of projects container 762 if (jQuery('.filters.floating').length) { 763 setupFloatingProjectFilters(); 764 updateFloatingFilters(); 765 window.addEventListener("scroll", updateFloatingFilters, false); 766 } 767 768 jQuery('.masonry').addClass('fadeIn'); 769 jQuery('.masonry-loader').addClass('fadeOut'); 770 if (jQuery('.masonryFlyIn').length) { 771 masonryFlyIn(); 772 } 773 }); 774 775 msnry.layout(); 776 } 777 778 if (jQuery('.wp-gallery-masonry').length) { 779 jQuery('.wp-gallery-masonry').each(function(){ 780 781 var $this = jQuery(this), 782 msnry = new Masonry($this[0], { 783 itemSelector: '.masonry-item' 784 }); 785 786 msnry.on('layoutComplete', function() { 787 788 $this.addClass('fadeIn'); 789 jQuery('.masonry-loader', $this).addClass('fadeOut'); 790 if (jQuery('.masonryFlyIn').length) { 791 masonryFlyIn(); 792 } 793 }); 794 795 msnry.layout(); 796 797 }); 798 } 799 800 // Initialize twitter feed 801 var setUpTweets = setInterval(function() {
802 if (jQuery('.tweets-slider').find('li.flex-active-slide').length) { 803 clearInterval(setUpTweets); 804 return; 805 } else { 806 if (jQuery('.tweets-slider').length) { 807 jQuery('.tweets-slider').flexslider({ 808 directionNav: false, 809 controlNav: false 810 }); 811 } 812 } 813 }, 500); 814 815 mr_firstSectionHeight = jQuery('.main-container section:nth-of-type(1)').outerHeight(true); 816 if( 0 == jQuery('section').length || 1 == jQuery('section').length ){ 817 mr_firstSectionHeight = 300; 818 } 819 820 $window.trigger('resize'); 821 822 setTimeout(function(){ 823 $window.trigger('resize'); 824 }, 2500); 825 826 jQuery('.perm-fixed-nav').css('padding-top', jQuery('.nav-container nav').outerHeight()); 827 828 if(typeof window.mr_parallax !== "undefined"){ 829 setTimeout(mr_parallax.windowLoad, 500); 830 } 831 832 jQuery('.clone a').attr('data-lightbox', 'false'); 833 834}); 835/*-----------------------------------------------------------------------------------*/ 836/* Custom Functions 837/*-----------------------------------------------------------------------------------*/ 838function updateNav() { 839 840 var scrollY = mr_scrollTop; 841 842 if (scrollY <= 0) { 843 if (mr_navFixed) { 844 mr_navFixed = false; 845 mr_nav.removeClass('fixed'); 846 } 847 if (mr_outOfSight) { 848 mr_outOfSight = false; 849 mr_nav.removeClass('outOfSight'); 850 } 851 if (mr_navScrolled) { 852 mr_navScrolled = false; 853 mr_nav.removeClass('scrolled'); 854 } 855 return; 856 } 857 858 if (scrollY > mr_navOuterHeight + mr_fixedAt) { 859 if (!mr_navScrolled) { 860 mr_nav.addClass('scrolled'); 861 mr_navScrolled = true; 862 return; 863 } 864 } else { 865 if (scrollY > mr_navOuterHeight) { 866 if (!mr_navFixed) { 867 mr_nav.addClass('fixed'); 868 mr_navFixed = true; 869 } 870 871 if (scrollY > mr_navOuterHeight +10) { 872 if (!mr_outOfSight) { 873 mr_nav.addClass('outOfSight'); 874 mr_outOfSight = true; 875 } 876 } else { 877 if (mr_outOfSight) { 878 mr_outOfSight = false; 879 mr_nav.removeClass('outOfSight'); 880 } 881 } 882 } else { 883 if (mr_navFixed) { 884 mr_navFixed = false; 885 mr_nav.removeClass('fixed'); 886 } 887 if (mr_outOfSight) { 888 mr_outOfSight = false; 889 mr_nav.removeClass('outOfSight'); 890 } 891 } 892 893 if (mr_navScrolled) { 894 mr_navScrolled = false; 895 mr_nav.removeClass('scrolled'); 896 } 897 898 } 899} 900function capitaliseFirstLetter(string) { 901 return string.charAt(0).toUpperCase() + string.slice(1); 902} 903function masonryFlyIn() { 904 var $items = jQuery('.masonryFlyIn .masonry-item'); 905 var time = 0; 906 907 $items.each(function() { 908 var item = jQuery(this); 909 setTimeout(function() { 910 item.addClass('fadeIn'); 911 }, time); 912 time += 170; 913 }); 914} 915function setupFloatingProjectFilters() { 916 mr_floatingProjectSections = []; 917 jQuery('.filters.floating').closest('section').each(function() { 918 var section = jQuery(this); 919 920 mr_floatingProjectSections.push({ 921 section: section.get(0), 922 outerHeight: section.outerHeight(), 923 elemTop: section.offset().top, 924 elemBottom: section.offset().top + section.outerHeight(), 925 filters: section.find('.filters.floating'), 926 filersHeight: section.find('.filters.floating').outerHeight(true) 927 }); 928 }); 929} 930function updateFloatingFilters() { 931 var l = mr_floatingProjectSections.length, 932 navHeight = wp_data.nav_height - 7; 933 934 if( jQuery('body').hasClass('admin-bar') ){ 935 navHeight = navHeight + 32; 936 } 937 938 while (l--) { 939 var section = mr_floatingProjectSections[l]; 940 941 if ((section.elemTop < mr_scrollTop) && typeof window.mr_variant == "undefined" ) { 942 section.filters.css({ 943 position: 'fixed', 944 top: '16px', 945 bottom: 'auto' 946 }); 947 if (mr_navScrolled) { 948 section.filters.css({ 949 transform: 'translate3d(0,'+ navHeight +'px,0)' 950 }); 951 } 952 if (mr_scrollTop > (section.elemBottom - 70)) { 953 section.filters.css({ 954 position: 'absolute', 955 bottom: '16px', 956 top: 'auto' 957 }); 958 section.filters.css({
vendor: 2,025 bytes, lines 959-1008
959 transform: 'translate3d(0,0,0)' 960 }); 961 } 962 } else { 963 section.filters.css({ 964 position: 'absolute', 965 transform: 'translate3d(0,0,0)' 966 }); 967 } 968 } 969} 970var mr_cookies = { 971getItem: function (sKey) { 972 if (!sKey) { return null; } 973 return decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*" + encodeURIComponent(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*([^;]*).*$)|^.*$"), "$1")) || null; 974}, 975setItem: function (sKey, sValue, vEnd, sPath, sDomain, bSecure) { 976 if (!sKey || /^(?:expires|max\-age|path|domain|secure)$/i.test(sKey)) { return false; } 977 var sExpires = ""; 978 if (vEnd) { 979 switch (vEnd.constructor) { 980 case Number: 981 sExpires = vEnd === Infinity ? "; expires=Fri, 31 Dec 9999 23:59:59 GMT" : "; max-age=" + vEnd; 982 break; 983 case String: 984 sExpires = "; expires=" + vEnd; 985 break; 986 case Date: 987 sExpires = "; expires=" + vEnd.toUTCString(); 988 break; 989 } 990 } 991 document.cookie = encodeURIComponent(sKey) + "=" + encodeURIComponent(sValue) + sExpires + (sDomain ? "; domain=" + sDomain : "") + (sPath ? "; path=" + sPath : "") + (bSecure ? "; secure" : ""); 992 return true; 993}, 994removeItem: function (sKey, sPath, sDomain) { 995 if (!this.hasItem(sKey)) { return false; } 996 document.cookie = encodeURIComponent(sKey) + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT" + (sDomain ? "; domain=" + sDomain : "") + (sPath ? "; path=" + sPath : ""); 997 return true; 998}, 999hasItem: function (sKey) { 1000 if (!sKey) { return false; } 1001 return (new RegExp("(?:^|;\\s*)" + encodeURIComponent(sKey).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=")).test(document.cookie); 1002}, 1003keys: function () { 1004 var aKeys = document.cookie.replace(/((?:^|\s*;)[^\=]+)(?=;|$)|^\s*|\s*(?:\=[^;]*)?(?:\1|$)/g, "").split(/\s*(?:\=[^;]*)?;\s*/); 1005 for (var nLen = aKeys.length, nIdx = 0; nIdx < nLen; nIdx++) { aKeys[nIdx] = decodeURIComponent(aKeys[nIdx]); } 1006 return aKeys; 1007} 1008};
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.