{"version":3,"sources":["../../../lib/mout/object/hasOwn.js","../../../lib/mout/object/forIn.js","../../../lib/mout/object/forOwn.js","functionality.js","../../../util/history.js","../../../util/track.js","content.js"],"names":["define","hasOwn","obj","prop","Object","prototype","hasOwnProperty","call","checkDontEnum","_dontEnums","_hasDontEnumBug","key","toString","forIn","fn","thisObj","i","exec","forOwn","val","$","Functionality","mappings","trips-and-services","$images","find","publish","require","about","init","this","_initSubscriptions","subscribe","_processFunctionalityEvent","data","pages","forEach","page","History","history","window","pushState","_initEvents","addEventListener","_goToState","event","state","currentUrl","location","pathname","id","replace","substring","length","_processHistoryUpdate","url","stateObj","Track","pagesViewed","_processPageViewEvent","title","indexOf","_trackAjaxPageView","ga","push","ContentManager","Content","progress","maxPageIndex","_setUpProgress","_cacheContent","done","_setUpScroll","_processGetContentEvent","_processHistoryPopEvent","each","index","href","order","loaded","content","dfd","Deferred","value","html","getContent","_processResponse","then","allFinished","resolve","promise","lazyScroll","recalculate","callback","highestIndex","_getHighestContentIndex","newIndex","parseInt","_getIdFromIndex","_getContent","response","trim","isNewContent","first","text","element","animate","scroll","highestContent","lowestContent","contentToShow","_getLowestContentIndex","_generateContentToShow","_generatePageIds","_insertContent","_initFunctionality","_scrollToContent","_getContentAheadOfLastPage","_getContentBeforeLastPage","_getFirstPageItem","$firstPageItem","filter","is","parent","_getLastPageItem","$lastPageItem","$element","time","easing","adjacentElement","position","last","attr","indexToFind"],"mappings":"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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/CA,ADgDA;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"app/ui/content/content.js","sourcesContent":["define('mout/object/hasOwn',[],function () {\r\n\r\n /**\r\n * Safer Object.hasOwnProperty\r\n */\r\n function hasOwn(obj, prop){\r\n return Object.prototype.hasOwnProperty.call(obj, prop);\r\n }\r\n\r\n return hasOwn;\r\n\r\n});\r\n\n","define('mout/object/forIn',[],function () {\r\n\r\n var _hasDontEnumBug,\r\n _dontEnums;\r\n\r\n function checkDontEnum(){\r\n _dontEnums = [\r\n 'toString',\r\n 'toLocaleString',\r\n 'valueOf',\r\n 'hasOwnProperty',\r\n 'isPrototypeOf',\r\n 'propertyIsEnumerable',\r\n 'constructor'\r\n ];\r\n\r\n _hasDontEnumBug = true;\r\n\r\n for (var key in {'toString': null}) {\r\n _hasDontEnumBug = false;\r\n }\r\n }\r\n\r\n /**\r\n * Similar to Array/forEach but works over object properties and fixes Don't\r\n * Enum bug on IE.\r\n * based on: http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation\r\n */\r\n function forIn(obj, fn, thisObj){\r\n var key, i = 0;\r\n // no need to check if argument is a real object that way we can use\r\n // it for arrays, functions, date, etc.\r\n\r\n //post-pone check till needed\r\n if (_hasDontEnumBug == null) checkDontEnum();\r\n\r\n for (key in obj) {\r\n if (exec(fn, obj, key, thisObj) === false) {\r\n break;\r\n }\r\n }\r\n\r\n if (_hasDontEnumBug) {\r\n while (key = _dontEnums[i++]) {\r\n // since we aren't using hasOwn check we need to make sure the\r\n // property was overwritten\r\n if (obj[key] !== Object.prototype[key]) {\r\n if (exec(fn, obj, key, thisObj) === false) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n function exec(fn, obj, key, thisObj){\r\n return fn.call(thisObj, obj[key], key, obj);\r\n }\r\n\r\n return forIn;\r\n\r\n});\r\n\n","define('mout/object/forOwn',['./hasOwn', './forIn'], function (hasOwn, forIn) {\r\n\r\n /**\r\n * Similar to Array/forEach but works over object properties and fixes Don't\r\n * Enum bug on IE.\r\n * based on: http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation\r\n */\r\n function forOwn(obj, fn, thisObj){\r\n forIn(obj, function(val, key){\r\n if (hasOwn(obj, key)) {\r\n return fn.call(thisObj, obj[key], key, obj);\r\n }\r\n });\r\n }\r\n\r\n return forOwn;\r\n\r\n});\r\n\n","/*global window: false */\r\n/* app/ui/content/functionality */\r\n\r\ndefine(\r\n\t'app/ui/content/functionality',[\r\n\t\t'jquery',\r\n\t\t'pubsub'\r\n\t],\r\n\r\n\tfunction ( $ ) {\r\n\r\n\t\t\"use strict\";\r\n\r\n\t\tvar Functionality;\r\n\t\tvar mappings = {\r\n\t\t\t\"trips-and-services\": function(){\r\n\t\t\t\tvar $images = $('.trips-and-services').find( '.js-lazy-auto' );\r\n\t\t\t\t$.publish( '/lazyload/image', [$images] );\r\n\t\t\t\trequire(['app/page/listing']);\r\n\t\t\t},\r\n\t\t\t\"about\": function(){\r\n\t\t\t\trequire(['app/page/about']);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\treturn {\r\n\r\n\t\t\tinit: function () {\r\n\t\t\t\tFunctionality = this;\r\n\t\t\t\tthis._initSubscriptions();\r\n\t\t\t},\r\n\t\t\t_initSubscriptions: function(){\r\n\t\t\t\t$.subscribe( '/content/functionality', this._processFunctionalityEvent );\r\n\t\t\t},\r\n\t\t\t_processFunctionalityEvent: function( data ){\r\n\t\t\t\tvar pages = data.pages;\r\n\t\t\t\tpages.forEach(function( page ){\r\n\t\t\t\t\tif( mappings[page] ) {\r\n\t\t\t\t\t\tmappings[page]();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t}\r\n);\r\n\r\n\n","/*global window: false */\r\n/* util/history */\r\n\r\ndefine(\r\n\t'util/history',[\r\n\t\t'jquery',\r\n\t\t'pubsub'\r\n\t],\r\n\r\n\tfunction ( $ ) {\r\n\r\n\t\t\"use strict\";\r\n\r\n\t\tvar History;\r\n\t\tvar history;\r\n\r\n\t\treturn {\r\n\r\n\t\t\tinit: function () {\r\n\t\t\t\tif( !window.history.pushState ) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t\tHistory = this;\r\n\t\t\t\thistory = window.history;\r\n\t\t\t\tthis._initEvents();\r\n\t\t\t\tthis._initSubscriptions();\r\n\t\t\t},\r\n\t\t\t_initEvents: function(){\r\n\t\t\t\twindow.addEventListener('popstate', this._goToState);\r\n\t\t\t},\r\n\t\t\t_goToState: function( event ){\r\n\t\t\t\tif( !event.state ) {\r\n\t\t\t\t\tvar currentUrl = window.location.pathname;\r\n\t\t\t\t\tvar id = currentUrl.replace(/(\\/)?$/g, '').substring(1, currentUrl.length);\r\n\t\t\t\t\tHistory._processHistoryUpdate( {\r\n\t\t\t\t\t\tid: id,\r\n\t\t\t\t\t\turl: currentUrl\r\n\t\t\t\t\t} );\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t$.publish( '/history/state/pop', [{\r\n\t\t\t\t\tid: event.state.id,\r\n\t\t\t\t\turl: event.state.url\r\n\t\t\t\t}] );\r\n\t\t\t},\r\n\t\t\t_initSubscriptions: function(){\r\n\t\t\t\t$.subscribe( '/history/push', this._processHistoryUpdate );\r\n\t\t\t},\r\n\t\t\t_processHistoryUpdate: function( data ){\r\n\t\t\t\tvar stateObj = {\r\n\t\t\t\t\tid: data.id,\r\n\t\t\t\t\turl: data.url\r\n\t\t\t\t};\r\n\t\t\t\thistory.pushState(stateObj,data.id,data.url);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t}\r\n);\r\n\r\n\n","/* util/track */\r\n\r\ndefine(\r\n\t'util/track',[\r\n\t\t'jquery',\r\n\t\t'pubsub'\r\n\t],\r\n\r\n\tfunction ( $ ) {\r\n\r\n\t\tvar Track;\r\n\t\tvar pagesViewed = [];\r\n\r\n\t\treturn {\r\n\t\t\tinit: function(){\r\n\t\t\t\tTrack = this;\r\n\t\t\t\t//this._initSubscriptions();\r\n\t\t\t},\r\n\t\t\t_initSubscriptions: function(){\r\n\t\t\t\t$.subscribe( '/track/pageview', this._processPageViewEvent );\r\n\t\t\t},\r\n\t\t\t_processPageViewEvent: function( data ){\r\n\t\t\t\tvar title = data.title;\r\n\t\t\t\tvar url = data.url;\r\n\t\t\t\tif( pagesViewed.indexOf( url ) === -1 ) {\r\n\t\t\t\t\tTrack._trackAjaxPageView( url, title );\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t_trackAjaxPageView: function( url, title ){\r\n\t\t\t\tif( ga ) {\r\n\t\t\t\t\t// console.log( 'track page', url, title );\r\n\t\t\t\t\tga('send', 'pageview', {\r\n\t\t\t\t\t\t'page': url,\r\n\t\t\t\t\t\t'title': title\r\n\t\t\t\t\t});\r\n\t\t\t\t\tpagesViewed.push( url );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n);\r\n\r\n\r\n\n","/* app/ui/content/content */\r\n\r\ndefine(\r\n\t'app/ui/content/content',[\r\n\t\t'jquery',\r\n\t\t'mout/object/forOwn',\r\n\t\t'util/contentManager',\r\n\t\t'app/ui/content/functionality',\r\n\t\t'util/history',\r\n\t\t'util/track',\r\n\t\t'pubsub',\r\n\t\t'lazyscroll'\r\n\t],\r\n\r\n\tfunction ( $, forOwn, ContentManager, Functionality, History, Track ) {\r\n\r\n\t\tvar Content;\r\n\t\tvar progress = {};\r\n\t\tvar maxPageIndex = -1;\r\n\r\n\t\treturn {\r\n\t\t\tinit: function(){\r\n\t\t\t\tContent = this;\r\n\t\t\t\tthis._initSubscriptions();\r\n\t\t\t\tif( $('.ajax-content').length && window.history.pushState ) {\r\n\t\t\t\t\tFunctionality.init();\r\n\t\t\t\t\tHistory.init();\r\n\t\t\t\t\tTrack.init();\r\n\t\t\t\t\tthis._setUpProgress();\r\n\t\t\t\t\tthis._cacheContent().done( this._setUpScroll );\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t_initSubscriptions: function(){\r\n\t\t\t\t$.subscribe( '/content/get', this._processGetContentEvent );\r\n\t\t\t\t$.subscribe( '/history/state/pop', this._processHistoryPopEvent );\r\n\t\t\t},\r\n\t\t\t_setUpProgress: function(){\r\n\t\t\t\t$('.js-nav').find('.js-nav__link').each(function( index ){\r\n\t\t\t\t\tvar href = this.href;\r\n\t\t\t\t\tvar id = this.id;\r\n\t\t\t\t\tprogress[href] = {\r\n\t\t\t\t\t\tid: id.replace(/_/g, '-'),\r\n\t\t\t\t\t\torder: index,\r\n\t\t\t\t\t\tloaded: false,\r\n\t\t\t\t\t\tcontent: null\r\n\t\t\t\t\t};\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\t_cacheContent: function(){\r\n\t\t\t\tvar dfd = $.Deferred();\r\n\t\t\t\tforOwn( progress, function( value, key ) {\r\n\t\t\t\t\tmaxPageIndex++;\r\n\t\t\t\t\tif( $('[data-content=\"' + value.id + '\"]' ).length) {\r\n\t\t\t\t\t\tvalue.loaded = true;\r\n\t\t\t\t\t\tvalue.content = $('[data-content=\"' + value.id + '\"]').html();\r\n\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tContentManager.getContent( key ).done( Content._processResponse ).then( function(){\r\n\t\t\t\t\t\tvar allFinished = true;\r\n\t\t\t\t\t\tforOwn( progress, function( value ) {\r\n\t\t\t\t\t\t\tif( !value.loaded ) {\r\n\t\t\t\t\t\t\t\tallFinished = false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\tif( allFinished ) {\r\n\t\t\t\t\t\t\tdfd.resolve();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} );\r\n\t\t\t\t} );\r\n\t\t\t\treturn dfd.promise();\r\n\t\t\t},\r\n\t\t\t_setUpScroll: function(){\r\n\t\t\t\t$('.js-footer').lazyScroll({\r\n\t\t\t\t\trecalculate: true,\r\n\t\t\t\t\tcallback: function(){\r\n\t\t\t\t\t\tvar highestIndex = Content._getHighestContentIndex();\r\n\t\t\t\t\t\tif( highestIndex + 1 > maxPageIndex ) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar newIndex = parseInt( highestIndex, 10 ) + 1;\r\n\t\t\t\t\t\tvar id = Content._getIdFromIndex( newIndex );\r\n\t\t\t\t\t\tContent._getContent( id, false );\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\t_processResponse: function( response ){\r\n\t\t\t\tvar url = this.url;\r\n\t\t\t\tif( url.length ) {\r\n\t\t\t\t\tprogress[url].content = $(\"