{"version":3,"file":"fixedsticky.min.js","names":["win","$","featureTest","property","value","noPrefixes","prop","mStyle","document","createElement","style","cssText","join","indexOf","getPx","unit","parseInt","uniqueIdCounter","S","classes","plugin","active","inactive","clone","withoutFixedFixed","keys","offset","position","id","tests","sticky","fixed","getScrollTop","documentElement","body","bypass","optOut","FixedFixed","hasClass","update","el","offsetWidth","skipSettingToFixed","elTop","elBottom","$el","height","outerHeight","initialOffset","data","scroll","isAlreadyOn","is","toggle","turnOn","viewportHeight","window","$parent","parent","parentOffset","top","parentHeight","undefined","after","addClass","next","css","bottom","isFixedToTop","offsetTop","isFixedToBottom","destroy","each","$this","this","unbind","removeData","removeClass","remove","init","_this","bind","trigger","FixedSticky","fn","fixedsticky","method","call","Error","jQuery"],"sources":["Purchase/Scripts/fixedsticky.js"],"mappings":"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","sourcesContent":[";(function( win, $ ) {\r\n\r\n\tfunction featureTest( property, value, noPrefixes ) {\r\n\t\t// Thanks Modernizr! https://github.com/phistuck/Modernizr/commit/3fb7217f5f8274e2f11fe6cfeda7cfaf9948a1f5\r\n\t\tvar prop = property + ':',\r\n\t\t\tel = document.createElement( 'test' ),\r\n\t\t\tmStyle = el.style;\r\n\r\n\t\tif( !noPrefixes ) {\r\n\t\t\tmStyle.cssText = prop + [ '-webkit-', '-moz-', '-ms-', '-o-', '' ].join( value + ';' + prop ) + value + ';';\r\n\t\t} else {\r\n\t\t\tmStyle.cssText = prop + value;\r\n\t\t}\r\n\t\treturn mStyle[ property ].indexOf( value ) !== -1;\r\n\t}\r\n\r\n\tfunction getPx( unit ) {\r\n\t\treturn parseInt( unit, 10 ) || 0;\r\n\t}\r\n\r\n\tvar uniqueIdCounter = 0;\r\n\r\n\tvar S = {\r\n\t\tclasses: {\r\n\t\t\tplugin: 'fixedsticky',\r\n\t\t\tactive: 'fixedsticky-on',\r\n\t\t\tinactive: 'fixedsticky-off',\r\n\t\t\tclone: 'fixedsticky-dummy',\r\n\t\t\twithoutFixedFixed: 'fixedsticky-withoutfixedfixed'\r\n\t\t},\r\n\t\tkeys: {\r\n\t\t\toffset: 'fixedStickyOffset',\r\n\t\t\tposition: 'fixedStickyPosition',\r\n\t\t\tid: 'fixedStickyId'\r\n\t\t},\r\n\t\ttests: {\r\n\t\t\tsticky: featureTest( 'position', 'sticky' ),\r\n\t\t\tfixed: featureTest( 'position', 'fixed', true )\r\n\t\t},\r\n\t\t// Thanks jQuery!\r\n\t\tgetScrollTop: function() {\r\n\t\t\tvar prop = 'pageYOffset',\r\n\t\t\t\tmethod = 'scrollTop';\r\n\t\t\treturn win ? (prop in win) ? win[ prop ] :\r\n\t\t\t\twin.document.documentElement[ method ] :\r\n\t\t\t\twin.document.body[ method ];\r\n\t\t},\r\n\t\tbypass: function() {\r\n\t\t\t// Check native sticky, check fixed and if fixed-fixed is also included on the page and is supported\r\n\t\t\treturn ( S.tests.sticky && !S.optOut ) ||\r\n\t\t\t\t!S.tests.fixed ||\r\n\t\t\t\twin.FixedFixed && !$( win.document.documentElement ).hasClass( 'fixed-supported' );\r\n\t\t},\r\n\t\tupdate: function( el ) {\r\n\t\t\tif( !el.offsetWidth ) { return; }\r\n\r\n\t\t\tvar $el = $( el ),\r\n\t\t\t\theight = $el.outerHeight(),\r\n\t\t\t\tinitialOffset = $el.data( S.keys.offset ),\r\n\t\t\t\tscroll = S.getScrollTop(),\r\n\t\t\t\tisAlreadyOn = $el.is( '.' + S.classes.active ),\r\n\t\t\t\ttoggle = function( turnOn ) {\r\n\t\t\t\t\t$el[ turnOn ? 'addClass' : 'removeClass' ]( S.classes.active )\r\n\t\t\t\t\t\t[ !turnOn ? 'addClass' : 'removeClass' ]( S.classes.inactive );\r\n\t\t\t\t},\r\n\t\t\t\tviewportHeight = $( window ).height(),\r\n\t\t\t\tposition = $el.data( S.keys.position ),\r\n\t\t\t\tskipSettingToFixed,\r\n\t\t\t\telTop,\r\n\t\t\t\telBottom,\r\n\t\t\t\t$parent = $el.parent(),\r\n\t\t\t\tparentOffset = $parent.offset().top,\r\n\t\t\t\tparentHeight = $parent.outerHeight();\r\n\r\n\t\t\tif( initialOffset === undefined ) {\r\n\t\t\t\tinitialOffset = $el.offset().top;\r\n\t\t\t\t$el.data( S.keys.offset, initialOffset );\r\n\t\t\t\t$el.after( $( '
' ).addClass( S.classes.clone ).height( height ) );\r\n\t\t\t} else {\r\n\t\t\t\t$el.next( '.' + S.classes.clone ).height( height );\r\n\t\t\t}\r\n\r\n\t\t\tif( !position ) {\r\n\t\t\t\t// Some browsers require fixed/absolute to report accurate top/left values.\r\n\t\t\t\tskipSettingToFixed = $el.css( 'top' ) !== 'auto' || $el.css( 'bottom' ) !== 'auto';\r\n\r\n\t\t\t\tif( !skipSettingToFixed ) {\r\n\t\t\t\t\t$el.css( 'position', 'fixed' );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tposition = {\r\n\t\t\t\t\ttop: $el.css( 'top' ) !== 'auto',\r\n\t\t\t\t\tbottom: $el.css( 'bottom' ) !== 'auto'\r\n\t\t\t\t};\r\n\r\n\t\t\t\tif( !skipSettingToFixed ) {\r\n\t\t\t\t\t$el.css( 'position', '' );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$el.data( S.keys.position, position );\r\n\t\t\t}\r\n\r\n\t\t\tfunction isFixedToTop() {\r\n\t\t\t\tvar offsetTop = scroll + elTop;\r\n\r\n\t\t\t\t// Initial Offset Top\r\n\t\t\t\treturn initialOffset < offsetTop &&\r\n\t\t\t\t\t// Container Bottom\r\n\t\t\t\t\toffsetTop + height <= parentOffset + parentHeight;\r\n\t\t\t}\r\n\r\n\t\t\tfunction isFixedToBottom() {\r\n\t\t\t\t// Initial Offset Top + Height\r\n\t\t\t\treturn initialOffset + ( height || 0 ) > scroll + viewportHeight - elBottom &&\r\n\t\t\t\t\t// Container Top\r\n\t\t\t\t\tscroll + viewportHeight - elBottom >= parentOffset + ( height || 0 );\r\n\t\t\t}\r\n\r\n\t\t\telTop = getPx( $el.css( 'top' ) );\r\n\t\t\telBottom = getPx( $el.css( 'bottom' ) );\r\n\r\n\t\t\tif( position.top && isFixedToTop() || position.bottom && isFixedToBottom() ) {\r\n\t\t\t\tif( !isAlreadyOn ) {\r\n\t\t\t\t\ttoggle( true );\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif( isAlreadyOn ) {\r\n\t\t\t\t\ttoggle( false );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n\t\tdestroy: function( el ) {\r\n\t\t\tvar $el = $( el );\r\n\t\t\tif (S.bypass()) {\r\n\t\t\t\treturn $el;\r\n\t\t\t}\r\n\r\n\t\t\treturn $el.each(function() {\r\n\t\t\t\tvar $this = $( this );\r\n\t\t\t\tvar id = $this.data( S.keys.id );\r\n\t\t\t\t$( win ).unbind( '.fixedsticky' + id );\r\n\r\n\t\t\t\t$this\r\n\t\t\t\t\t.removeData( [ S.keys.offset, S.keys.position, S.keys.id ] )\r\n\t\t\t\t\t.removeClass( S.classes.active )\r\n\t\t\t\t\t.removeClass( S.classes.inactive )\r\n\t\t\t\t\t.next( '.' + S.classes.clone ).remove();\r\n\t\t\t});\r\n\t\t},\r\n\t\tinit: function( el ) {\r\n\t\t\tvar $el = $( el );\r\n\r\n\t\t\tif( S.bypass() ) {\r\n\t\t\t\treturn $el;\r\n\t\t\t}\r\n\r\n\t\t\treturn $el.each(function() {\r\n\t\t\t\tvar _this = this;\r\n\t\t\t\tvar id = uniqueIdCounter++;\r\n\t\t\t\t$( this ).data( S.keys.id, id );\r\n\r\n\t\t\t\t$( win ).bind( 'scroll.fixedsticky' + id, function() {\r\n\t\t\t\t\tS.update( _this );\r\n\t\t\t\t}).trigger( 'scroll.fixedsticky' + id );\r\n\r\n\t\t\t\t$( win ).bind( 'resize.fixedsticky' + id , function() {\r\n\t\t\t\t\tif( $el.is( '.' + S.classes.active ) ) {\r\n\t\t\t\t\t\tS.update( _this );\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\twin.FixedSticky = S;\r\n\r\n\t// Plugin\r\n\t$.fn.fixedsticky = function( method ) {\r\n\t\tif ( typeof S[ method ] === 'function') {\r\n\t\t\treturn S[ method ].call( S, this);\r\n\t\t} else if ( typeof method === 'object' || ! method ) {\r\n\t\t\treturn S.init.call( S, this );\r\n\t\t} else {\r\n\t\t\tthrow new Error( 'Method `' + method + '` does not exist on jQuery.fixedsticky' );\r\n\t\t}\r\n\t};\r\n\r\n\t// Add fallback when fixed-fixed is not available.\r\n\tif( !win.FixedFixed ) {\r\n\t\t$( win.document.documentElement ).addClass( S.classes.withoutFixedFixed );\r\n\t}\r\n\r\n})( window, jQuery );\r\n"]}