vendor: 4,943 bytes, lines 1-116
1/** 2 * hoverIntent is similar to jQuery's built-in "hover" method except that 3 * instead of firing the handlerIn function immediately, hoverIntent checks 4 * to see if the user's mouse has slowed down (beneath the sensitivity 5 * threshold) before firing the event. The handlerOut function is only 6 * called after a matching handlerIn. 7 * 8 * hoverIntent r7 // 2013.03.11 // jQuery 1.9.1+ 9 * http://cherne.net/brian/resources/jquery.hoverIntent.html 10 * 11 * You may use hoverIntent under the terms of the MIT license. Basically that 12 * means you are free to use hoverIntent as long as this header is left intact. 13 * Copyright 2007, 2013 Brian Cherne 14 * 15 * // basic usage ... just like .hover() 16 * .hoverIntent( handlerIn, handlerOut ) 17 * .hoverIntent( handlerInOut ) 18 * 19 * // basic usage ... with event delegation! 20 * .hoverIntent( handlerIn, handlerOut, selector ) 21 * .hoverIntent( handlerInOut, selector ) 22 * 23 * // using a basic configuration object 24 * .hoverIntent( config ) 25 * 26 * @param handlerIn function OR configuration object 27 * @param handlerOut function OR selector for delegation OR undefined 28 * @param selector selector OR undefined 29 * @author Brian Cherne <brian(at)cherne(dot)net> 30 **/ 31(function($) { 32 $.fn.hoverIntent = function(handlerIn,handlerOut,selector) { 33 34 // default configuration values 35 var cfg = { 36 interval: 100, 37 sensitivity: 7, 38 timeout: 0 39 }; 40 41 if ( typeof handlerIn === "object" ) { 42 cfg = $.extend(cfg, handlerIn ); 43 } else if ($.isFunction(handlerOut)) { 44 cfg = $.extend(cfg, { over: handlerIn, out: handlerOut, selector: selector } ); 45 } else { 46 cfg = $.extend(cfg, { over: handlerIn, out: handlerIn, selector: handlerOut } ); 47 } 48 49 // instantiate variables 50 // cX, cY = current X and Y position of mouse, updated by mousemove event 51 // pX, pY = previous X and Y position of mouse, set by mouseover and polling interval 52 var cX, cY, pX, pY; 53 54 // A private function for getting mouse position 55 var track = function(ev) { 56 cX = ev.pageX; 57 cY = ev.pageY; 58 }; 59 60 // A private function for comparing current and previous mouse position 61 var compare = function(ev,ob) { 62 ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); 63 // compare mouse positions to see if they've crossed the threshold 64 if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) { 65 $(ob).off("mousemove.hoverIntent",track); 66 // set hoverIntent state to true (so mouseOut can be called) 67 ob.hoverIntent_s = 1; 68 return cfg.over.apply(ob,[ev]); 69 } else { 70 // set previous coordinates for next time 71 pX = cX; pY = cY; 72 // use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs) 73 ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);} , cfg.interval ); 74 } 75 }; 76 77 // A private function for delaying the mouseOut function 78 var delay = function(ev,ob) { 79 ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); 80 ob.hoverIntent_s = 0; 81 return cfg.out.apply(ob,[ev]); 82 }; 83 84 // A private function for handling mouse 'hovering' 85 var handleHover = function(e) { 86 // copy objects to be passed into t (required for event object to be passed in IE) 87 var ev = jQuery.extend({},e); 88 var ob = this; 89 90 // cancel hoverIntent timer if it exists 91 if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); } 92 93 // if e.type == "mouseenter" 94 if (e.type == "mouseenter") { 95 // set "previous" X and Y position based on initial entry point 96 pX = ev.pageX; pY = ev.pageY; 97 // update "current" X and Y position based on mousemove 98 $(ob).on("mousemove.hoverIntent",track); 99 // start polling interval (self-calling timeout) to compare mouse coordinates over time 100 if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);} , cfg.interval );} 101 102 // else e.type == "mouseleave" 103 } else { 104 // unbind expensive mousemove event 105 $(ob).off("mousemove.hoverIntent",track); 106 // if hoverIntent state is true, then call the mouseOut function after the specified delay 107 if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);} , cfg.timeout );} 108 } 109 }; 110 111 // listen for mouseenter and mouseleave 112 return this.on({'mouseenter.hoverIntent':handleHover,'mouseleave.hoverIntent':handleHover}, cfg.selector); 113 }; 114})(jQuery); 115 116/*
117 * jQuery Superfish Menu Plugin - v1.7.5 118 * Copyright (c) 2014 Joel Birch 119 * 120 * Dual licensed under the MIT and GPL licenses: 121 * http://www.opensource.org/licenses/mit-license.php 122 * http://www.gnu.org/licenses/gpl.html 123 */ 124 125;(function(e,s){"use strict";var n=function(){var n={bcClass:"sf-breadcrumb",menuClass:"sf-js-enabled",anchorClass:"sf-with-ul",menuArrowClass:"sf-arrows"},o=function(){var n=/iPhone|iPad|iPod/i.test(navigator.userAgent);return n&&e(s).load(function(){e("body").children().on("click",e.noop)}),n}(),t=function(){var e=document.documentElement.style;return"behavior"in e&&"fill"in e&&/iemobile/i.test(navigator.userAgent)}(),i=function(){return!!s.PointerEvent}(),r=function(e,s){var o=n.menuClass;s.cssArrows&&(o+=" "+n.menuArrowClass),e.toggleClass(o)},a=function(s,o){return s.find("li."+o.pathClass).slice(0,o.pathLevels).addClass(o.hoverClass+" "+n.bcClass).filter(function(){return e(this).children(o.popUpSelector).hide().show().length}).removeClass(o.pathClass)},l=function(e){e.children("a").toggleClass(n.anchorClass)},h=function(e){var s=e.css("ms-touch-action"),n=e.css("touch-action");n=n||s,n="pan-y"===n?"auto":"pan-y",e.css({"ms-touch-action":n,"touch-action":n})},u=function(s,n){var r="li:has("+n.popUpSelector+")";e.fn.hoverIntent&&!n.disableHI?s.hoverIntent(c,f,r):s.on("mouseenter.superfish",r,c).on("mouseleave.superfish",r,f);var a="MSPointerDown.superfish";i&&(a="pointerdown.superfish"),o||(a+=" touchend.superfish"),t&&(a+=" mousedown.superfish"),s.on("focusin.superfish","li",c).on("focusout.superfish","li",f).on(a,"a",n,p)},p=function(s){var n=e(this),o=n.siblings(s.data.popUpSelector);o.length>0&&o.is(":hidden")&&(n.one("click.superfish",!1),"MSPointerDown"===s.type||"pointerdown"===s.type?n.trigger("focus"):e.proxy(c,n.parent("li"))())},c=function(){var s=e(this),n=m(s);clearTimeout(n.sfTimer),s.siblings().superfish("hide").end().superfish("show")},f=function(){var s=e(this),n=m(s);o?e.proxy(d,s,n)():(clearTimeout(n.sfTimer),n.sfTimer=setTimeout(e.proxy(d,s,n),n.delay))},d=function(s){s.retainPath=e.inArray(this[0],s.$path)>-1,this.superfish("hide"),this.parents("."+s.hoverClass).length||(s.onIdle.call(v(this)),s.$path.length&&e.proxy(c,s.$path)())},v=function(e){return e.closest("."+n.menuClass)},m=function(e){return v(e).data("sf-options")};return{hide:function(s){if(this.length){var n=this,o=m(n);if(!o)return this;var t=o.retainPath===!0?o.$path:"",i=n.find("li."+o.hoverClass).add(this).not(t).removeClass(o.hoverClass).children(o.popUpSelector),r=o.speedOut;s&&(i.show(),r=0),o.retainPath=!1,o.onBeforeHide.call(i),i.stop(!0,!0).animate(o.animationOut,r,function(){var s=e(this);o.onHide.call(s)})}return this},show:function(){var e=m(this);if(!e)return this;var s=this.addClass(e.hoverClass),n=s.children(e.popUpSelector);return e.onBeforeShow.call(n),n.stop(!0,!0).animate(e.animation,e.speed,function(){e.onShow.call(n)}),this},destroy:function(){return this.each(function(){var s,o=e(this),t=o.data("sf-options");return t?(s=o.find(t.popUpSelector).parent("li"),clearTimeout(t.sfTimer),r(o,t),l(s),h(o),o.off(".superfish").off(".hoverIntent"),s.children(t.popUpSelector).attr("style",function(e,s){return s.replace(/display[^;]+;?/g,"")}),t.$path.removeClass(t.hoverClass+" "+n.bcClass).addClass(t.pathClass),o.find("."+t.hoverClass).removeClass(t.hoverClass),t.onDestroy.call(o),o.removeData("sf-options"),void 0):!1})},init:function(s){return this.each(function(){var o=e(this);if(o.data("sf-options"))return!1;var t=e.extend({},e.fn.superfish.defaults,s),i=o.find(t.popUpSelector).parent("li");t.$path=a(o,t),o.data("sf-options",t),r(o,t),l(i),h(o),u(o,t),i.not("."+n.bcClass).superfish("hide",!0),t.onInit.call(this)})}}}();e.fn.superfish=function(s){return n[s]?n[s].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof s&&s?e.error("Method "+s+" does not exist on jQuery.fn.superfish"):n.init.apply(this,arguments)},e.fn.superfish.defaults={popUpSelector:"ul,.sf-mega",hoverClass:"sfHover",pathClass:"overrideThisToUse",pathLevels:1,delay:800,animation:{opacity:"show"},animationOut:{opacity:"hide"},speed:"normal",speedOut:"fast",cssArrows:!0,disableHI:!1,onInit:e.noop,onBeforeShow:e.noop,onShow:e.noop,onBeforeHide:e.noop,onHide:e.noop,onIdle:e.noop,onDestroy:e.noop}})(jQuery,window); 126 127/*jshint browser:true */ 128/*! 129* FitVids 1.1 130*
131* Copyright 2013, Chris Coyier - http://css-tricks.com + Dave Rupert - http://daverupert.com 132* Credit to Thierry Koblentz - http://www.alistapart.com/articles/creating-intrinsic-ratios-for-video/ 133* Released under the WTFPL license - http://sam.zoy.org/wtfpl/ 134* 135*/ 136 137;(function( $ ){ 138 139 'use strict'; 140 141 $.fn.fitVids = function( options ) { 142 var settings = { 143 customSelector: null, 144 ignore: null 145 }; 146 147 if(!document.getElementById('fit-vids-style')) { 148 // appendStyles: https://github.com/toddmotto/fluidvids/blob/master/dist/fluidvids.js 149 var head = document.head || document.getElementsByTagName('head')[0]; 150 var css = '.fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}'; 151 var div = document.createElement("div"); 152 div.innerHTML = '<p>x</p><style id="fit-vids-style">' + css + '</style>'; 153 head.appendChild(div.childNodes[1]); 154 } 155 156 if ( options ) { 157 $.extend( settings, options ); 158 } 159 160 return this.each(function(){ 161 var selectors = [ 162 'iframe[src*="player.vimeo.com"]', 163 'iframe[src*="youtube.com"]', 164 'iframe[src*="youtube-nocookie.com"]', 165 'iframe[src*="kickstarter.com"][src*="video.html"]', 166 'object', 167 'embed' 168 ]; 169 170 if (settings.customSelector) { 171 selectors.push(settings.customSelector); 172 } 173 174 var ignoreList = '.fitvidsignore'; 175 176 if(settings.ignore) { 177 ignoreList = ignoreList + ', ' + settings.ignore; 178 } 179 180 var $allVideos = $(this).find(selectors.join(',')); 181 $allVideos = $allVideos.not('object object'); // SwfObj conflict patch 182 $allVideos = $allVideos.not(ignoreList); // Disable FitVids on this video. 183 184 $allVideos.each(function(count){ 185 var $this = $(this); 186 if($this.parents(ignoreList).length > 0) { 187 return; // Disable FitVids on this video. 188 } 189 if (this.tagName.toLowerCase() === 'embed' && $this.parent('object').length || $this.parent('.fluid-width-video-wrapper').length) { return; } 190 if ((!$this.css('height') && !$this.css('width')) && (isNaN($this.attr('height')) || isNaN($this.attr('width')))) 191 { 192 $this.attr('height', 9); 193 $this.attr('width', 16); 194 } 195 var height = ( this.tagName.toLowerCase() === 'object' || ($this.attr('height') && !isNaN(parseInt($this.attr('height'), 10))) ) ? parseInt($this.attr('height'), 10) : $this.height(), 196 width = !isNaN(parseInt($this.attr('width'), 10)) ? parseInt($this.attr('width'), 10) : $this.width(), 197 aspectRatio = height / width; 198 if(!$this.attr('id')){ 199 var videoID = 'fitvid' + count; 200 $this.attr('id', videoID); 201 } 202 $this.wrap('<div class="fluid-width-video-wrapper"></div>').parent('.fluid-width-video-wrapper').css('padding-top', (aspectRatio * 100)+'%'); 203 $this.removeAttr('height').removeAttr('width'); 204 }); 205 }); 206 }; 207// Works with either jQuery or Zepto 208})( window.jQuery || window.Zepto ); 209 210(function( $ ) { 211 212 $( document ).ready( function() { 213 $( '#main' ).fitVids(); 214 }); 215 216})( jQuery ); 217 218// #Newsletter Popup Start // 219 var modal = document.getElementById("myModal"); 220 var sclose= document.getElementById("sclose"); 221 var bclose = document.getElementById("btnNewsletterSignUpNo"); 222 223 window.onload = function () { 224 setTimeout(function () { 225 modal.style.display = "block"; 226 }, 10000); 227 } 228 229 sclose.onclick = function () { 230 modal.style.display = "none"; 231 } 232 233 window.onclick = function (event) { 234 if (event.target == modal) { 235 modal.style.display = "none"; 236 } 237 } 238// #Newsletter Popup End //
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.