/*! Espy 0.1.0 - 2nd Feb 2013 | https://github.com/Darsain/espy */ (function(b,q,s){function t(b,c,e){b=(b+"").match(/^(-?[0-9]+)(%)?$/);if(!b)return!1;var d=parseInt(b[1],10);b[2]&&(d*=c/100);return 0>d?c+d+(e||0):d}function u(n,c){function e(){function b(){j=+new Date;c.apply(e,f);d&&(d=clearTimeout(d))}var e=this,l=+new Date-j,f=arguments;d&&(d=clearTimeout(d));l>n?b():d=setTimeout(b,n-l)}var d,j=0;b.guid&&(e.guid=c.guid=c.guid||b.guid++);return e}b.Espy=function(n,c,e){function d(a){if(a=v(a)){var h=a.$el.offset()[a.horizontal?"left":"top"]-p.offset[a.horizontal? "left":"top"],g=a.$el[a.horizontal?"outerWidth":"outerHeight"]();b.extend(a,{start:h,elSize:g,end:h+g});j(a)}}function j(a){if(a===s)b.each(m,j);else if(a=v(a)){var h=p[a.horizontal?"width":"height"],g=t(a.size,h),h=p[a.horizontal?"left":"top"]+t(a.offset,h,-g),d=h+g,g=a.contain?h<=a.start&&d>=a.end?"inside":h+g/2>a.start+a.elSize/2?a.horizontal?"left":"up":a.horizontal?"right":"down":h>a.start&&ha.start&&d=a.start||h<=a.end&&d>=a.end?"inside":h>a.end?a.horizontal? "left":"up":a.horizontal?"right":"down";a.state!==g&&(a.state=g,"function"===typeof c&&c.call(a.el,"inside"===g,g),"function"===typeof a.callback&&a.callback.call(a.el,"inside"===g,g))}}function k(a){if(m.hasOwnProperty(a))return a;if(b.isPlainObject(a)&&m.hasOwnProperty(a.id))return a.id;a=b(a)[0];var d=!1;b.each(m,function(b,c){c.el===a&&(d=b)});return d}function v(a){return(a=k(a))?m[a]:!1}"function"!==typeof c&&(e=c,c=0);var l=this,f=b(n),r=b.extend({},b.fn.espy.defaults,e),m={},q=0,p={top:f.scrollTop(), left:f.scrollLeft(),width:f.innerWidth(),height:f.innerHeight(),offset:f.offset()||{top:0,left:0}};l.add=function(a,c,g){b.isPlainObject(c)&&(g=c,c=0);b(a).each(function(a,e){var f=k(e)||"s"+q++;m[f]=b.extend({id:f,el:e,$el:b(e),callback:c},r,g);d(f)})};l.reload=function(a){b(a).each(function(a,b){var c=k(b);c&&d(c)})};l.remove=function(a){b(a).each(function(a,b){var c=k(b);c&&delete m[c]})};l.destroy=function(){f.off(".espy");m={};l=s};f.on("scroll.espy",u(r.delay,function(){p.top=f.scrollTop(); p.left=f.scrollLeft();j()}));f.on("resize.espy",u(r.delay,function(){p.width=f.innerWidth();p.height=f.innerHeight();j()}))};b.fn.espy=function(n,c){var e,d,j=c&&c.context||q,k=b.data(j,"espy")||b.data(j,"espy",new b.Espy(j));"string"===typeof n&&(e=!1===c||"destroy"===c?"remove":c,d=Array.prototype.slice.call(arguments,1),c={});return this.each(function(b,j){e?"function"===typeof k[e]&&k[e].apply(k,d):k.add(j,n,c)})};b.fn.espy.defaults={delay:100,context:window,horizontal:0,offset:0,size:"100%", contain:0}})(jQuery,window);