1var headerVideo = ( function ( $, document ) { 2 3 var settings = { 4 mainContainer: $( '.gp-page-header' ), 5 videoContainer: $( '.gp-video-header' ), 6 header: $( '.gp-video-media' ), 7 videoTrigger: $( '.gp-play-video-button' ), 8 closeButton: $( '.gp-close-video-button' ), 9 autoPlayVideo: false 10 } 11 12 var init = function( options ) { 13 settings = $.extend( settings, options ); 14 getVideoDetails(); 15 setFluidVideoContainer(); 16 setFluidMainContainer(); 17 bindClickAction(); 18 19 if ( videoDetails.teaser ) { 20 appendTeaserVideo(); 21 } 22 23 if ( settings.autoPlayVideo ) { 24 appendFrame(); 25 } 26 } 27 28 var getVideoDetails = function() { 29 videoDetails = { 30 id: settings.header.attr( 'data-video-src' ), 31 teaser: settings.header.attr( 'data-teaser-source' ), 32 provider: settings.header.attr( 'data-provider').toLowerCase(), 33 videoHeight: settings.header.attr( 'data-video-height' ),
34 videoWidth: settings.header.attr( 'data-video-width' ) 35 } 36 return videoDetails; 37 }; 38 39 var setFluidVideoContainer = function () { 40 41 $( window ).on( 'load',function(){ 42 var winWidth = $( '#gp-page-wrapper' ).width(), 43 winHeight = $( '.gp-page-header .gp-container' ).outerHeight(); 44 settings.videoContainer.width( winWidth ).height( winHeight ); 45 }); 46 47 $( window ).resize(function(){ 48 var winWidth = $( '#gp-page-wrapper' ).width(), 49 winHeight = $( '.gp-page-header .gp-container' ).outerHeight(); 50 settings.videoContainer.width( winWidth ).height( winHeight ); 51 }).trigger( 'resize' ); 52 53 }; 54 55 var setFluidMainContainer = function () { 56 57 $( window ).on( 'load',function(){ 58 var winWidth = $( '#gp-page-wrapper' ).width(), 59 winHeight = $( '.gp-page-header .gp-container' ).outerHeight(); 60 settings.mainContainer.width( winWidth ).height( winHeight ); 61 }); 62 63 $( window ).resize(function(){ 64 var winWidth = $( '#gp-page-wrapper' ).width(), 65 winHeight = $( '.gp-page-header .gp-container' ).outerHeight(); 66 settings.mainContainer.width( winWidth ).height( winHeight ); 67 }).trigger( 'resize' ); 68 69 }; 70 71 var bindClickAction = function() { 72 settings.videoTrigger.on( 'click', function(e) { 73 e.preventDefault(); 74 appendFrame(); 75 settings.closeButton.show(); 76 }); 77 }; 78 79 var appendTeaserVideo = function() { 80 if ( Modernizr.video && ! isMobile() ) { 81 var source = videoDetails.teaser, 82 html = '<video autoplay="true" loop="loop" muted class="gp-teaser-video"><source src="' + source + '.ogv" type="video/ogg"><source src="' + source + '.mp4" type="video/mp4"></video>'; 83 settings.videoContainer.append( html ); 84 } 85 }; 86 87 var createFrame = function() { 88 if ( videoDetails.provider === 'youtube' ) { 89 var html = '<iframe src="//www.youtube.com/embed/' + videoDetails.id + '?rel=0&hd=1&autohide=1&showinfo=0&autoplay=1&enablejsapi=1&origin=*" frameborder="0" class="gp-full-video" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>'; 90 } else if ( videoDetails.provider === 'vimeo' ) { 91 var html = '<iframe src="//player.vimeo.com/video/' + videoDetails.id + '?title=0&byline=0&portrait=0&color=3d96d2&autoplay=1" frameborder="0" class="gp-full-video" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>'; 92 } else if(videoDetails.provider === 'html5') { 93 var html = '<video autoplay="true" loop="loop" class="gp-full-video"><source src="'+videoDetails.id+'.ogv" type="video/ogg"><source src="' + videoDetails.id + '.mp4" type="video/mp4"></video>'; 94 } 95 return html; 96 }; 97 98 var appendFrame = function() { 99 settings.header.hide(); 100 settings.videoContainer.append( createFrame() ); 101 removePlayButton(); 102 showCloseButton(); 103 $('.gp-teaser-video').hide(); 104 }; 105 106 var removeFrame = function() { 107 settings.videoContainer.find( '.gp-full-video' ).remove(); 108 showPlayButton(); 109 if ( $( '#gp-page-wrapper' ).width() > 900 ) { 110 $( '.gp-teaser-video' ).show(); 111 } 112 $( window ).resize(function(){ 113 var winHeight = $( '.gp-page-header .gp-container' ).outerHeight(); 114 settings.mainContainer.height( winHeight ); 115 }).trigger( 'resize' ); 116 }; 117 118 var removePlayButton = function () { 119 if(settings.videoTrigger) { 120 settings.videoTrigger.fadeOut( 'slow' ); 121 } 122 }; 123 124 var showPlayButton = function () { 125 if ( settings.videoTrigger ) { 126 settings.videoTrigger.fadeIn( 'slow' ); 127 } 128 }; 129 130 var showCloseButton = function () { 131 settings.closeButton.click( function() { 132 settings.closeButton.hide(); 133 removeFrame(); 134 }); 135 }; 136 137 var isMobile = function () { 138 if ( $( '#gp-page-wrapper' ).width() < 900 && Modernizr.touch ) { 139 return true; 140 } else { 141 return false; 142 } 143 } 144 145 return { 146 init: init 147 }; 148 149})( jQuery, document );
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.