{"version":3,"sources":["../ui/video/load.js","../ui/event/calendar.js","../../lib/terabyte/jquery.tablescroll.js","detail.js"],"names":["define","$","LazyLoad","VideoLoad","init","this","initLazyFunction","elems","callback","$thisPlaylist","require","VideoPlaylist","_initVideoEvent","on","_loadVideo","event","preventDefault","thisVid","VideoCommon","YouTube","Util","selectors","link","dataSelectors","startDate","endDate","title","description","venue","address","country","Calendar","_initEvents","_initLinks","document","_linkClick","$links","each","_initLink","i","el","$link","url","_buildUrl","attr","data","location","href","_enforceDateFormat","push","join","URL","dateString","dateObj","Date","year","getFullYear","month","getMonth","day","getDate","isNaN","e","filename","blob","navigator","msSaveBlob","target","closest","_createBlob","dataUrl","type","replace","Blob","window","undefined","Plugin","element","pluginName","$element","wrapper","prototype","wrappingDiv","isScrolling","_wrapTable","_checkWidth","_checkPosition","plugin","throttle","_scrollEvent","_tableResizeEvent","wrap","$wrapper","$table","find","width","addClass","removeClass","$items","length","current","elem","$this","tableWidth","scrollLeft","containerWidth","isStart","isEnd","_setClasses","$container","fn","options","jQuery","global","ret","$tables","tableScroll"],"mappings":"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ACA7E,EAAA4C,KAAAxC,KAAAyE,EACA,GAAAF,GAAAvE,KAAA0G,QAKAC,OAAAtC,OAAAxC,UACAlC,OAAA,eAAA,UAAA,SAAAiH,GACA,MAAA,YACA,GAAAC,EACA,OAAAA,IAAAD,EAAAD,SAEA3G,OClHAL,OACA,mBACA,SACA,oBACA,wBACA,eAEA,SAAAC,EAAAE,EAAA4B,GAGA5B,EAAAC,MAGA,IAAA+G,GAAAlH,EAAA,UAAA6F,KAAA,QAGAqB,GAAAhB,QACAgB,EAAAC,cAIArF,EAAA3B;AHtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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/JA,ADgKA;AC/JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,ACtHA;AACA;AACA;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/page/detail.js","sourcesContent":["/* app/ui/video/load */\r\n\r\ndefine(\r\n\t'app/ui/video/load',[\r\n\t\t'jquery',\r\n\t\t'util/lazyload',\r\n\t\t'pubsub'\r\n\t],\r\n\tfunction($, LazyLoad) {\r\n\r\n\t\tvar VideoLoad;\r\n\r\n\t\treturn {\r\n\t\t\tinit: function() {\r\n\t\t\t\tVideoLoad = this;\r\n\r\n\t\t\t\t// Run callback function after scrolling to playlist element triggers lazyScroll plugin\r\n\t\t\t\t// This will ensure the YouTube API and supporting files are only loaded when necessary\r\n\t\t\t\t// Will only run once - js hook removed once the playlist has been loaded\r\n\t\t\t\tLazyLoad.initLazyFunction({\r\n\t\t\t\t\telems: $('.js-load-playlist'),\r\n\t\t\t\t\tcallback: function() {\r\n\t\t\t\t\t\tvar $thisPlaylist = $(this);\r\n\r\n\t\t\t\t\t\trequire(['app/ui/video/playlist'], function(VideoPlaylist) {\r\n\t\t\t\t\t\t\tVideoPlaylist.init($thisPlaylist);\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\tVideoLoad._initVideoEvent();\r\n\t\t\t},\r\n\r\n\t\t\t_initVideoEvent: function() {\r\n\t\t\t\t$('.js-video-player').on('click', '.js-video', VideoLoad._loadVideo);\r\n\t\t\t},\r\n\r\n\t\t\t_loadVideo: function(event) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tvar thisVid = this;\r\n\r\n\t\t\t\trequire(['app/ui/video/common', 'app/ui/video/youtube'], function(VideoCommon, YouTube) {\r\n\t\t\t\t\tVideoCommon.init(thisVid);\r\n\t\t\t\t\tYouTube.init(thisVid);\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n);\n","/* app/ui/event/calendar */\r\n\r\ndefine(\r\n\t'app/ui/event/calendar',[\r\n\t\t'jquery',\r\n\r\n\t\t'util/core'\r\n\t],\r\n\r\n\tfunction ($, Util) {\r\n\t\tvar selectors = {\r\n\t\t\tlink: '.js-calendar-link'\r\n\t\t};\r\n\r\n\t\tvar dataSelectors = {\r\n\t\t\tstartDate: 'calendar-start-date',\r\n\t\t\tendDate: 'calendar-end-date',\r\n\t\t\ttitle: 'calendar-title',\r\n\t\t\tdescription: 'calendar-description',\r\n\t\t\tvenue: 'calendar-venue',\r\n\t\t\taddress: 'calendar-address',\r\n\t\t\tcountry: 'calendar-country'\r\n\t\t};\r\n\r\n\t\tvar Calendar = {\r\n\t\t\tinit: function () {\r\n\t\t\t\tCalendar._initEvents();\r\n\t\t\t\tCalendar._initLinks();\r\n\t\t\t},\r\n\r\n\t\t\t_initEvents: function () {\r\n\t\t\t\t$(document).on('click', selectors.link,Calendar._linkClick);\r\n\t\t\t},\r\n\r\n\t\t\t_initLinks: function () {\r\n\t\t\t\tvar $links = $(selectors.link);\r\n\r\n\t\t\t\t$links.each(Calendar._initLink);\r\n\t\t\t},\r\n\r\n\t\t\t_initLink: function (i, el) {\r\n\t\t\t\tvar $link = $(el);\r\n\r\n\t\t\t\tvar url = Calendar._buildUrl($link);\r\n\r\n\t\t\t\t$link.attr('href', url);\r\n\t\t\t},\r\n\r\n\t\t\t_buildUrl: function ($link) {\r\n\t\t\t\tvar startDate = $link.data(dataSelectors.startDate) || '';\r\n\t\t\t\tvar endDate = $link.data(dataSelectors.endDate) || '';\r\n\r\n\t\t\t\tvar title = $link.data(dataSelectors.title) || '';\r\n\t\t\t\tvar description = $link.data(dataSelectors.description) || '';\r\n\t\t\t\tvar venue = $link.data(dataSelectors.venue) || '';\r\n\t\t\t\tvar address = $link.data(dataSelectors.address) || '';\r\n\t\t\t\tvar country = $link.data(dataSelectors.country) || '';\r\n\r\n\t\t\t\tvar location = [];\r\n\r\n\t\t\t\tvar href = 'data:text/calendar;charset=utf8,';\r\n\r\n\t\t\t\tif (startDate) {\r\n\t\t\t\t\tstartDate = Calendar._enforceDateFormat(startDate);\r\n\t\t\t\t}\r\n\t\t\t\tif (endDate) {\r\n\t\t\t\t\tendDate = Calendar._enforceDateFormat(endDate);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (venue) {\r\n\t\t\t\t\tlocation.push(venue);\r\n\t\t\t\t}\r\n\t\t\t\tif (address) {\r\n\t\t\t\t\tlocation.push(address);\r\n\t\t\t\t}\r\n\t\t\t\tif (country) {\r\n\t\t\t\t\tlocation.push(country);\r\n\t\t\t\t}\r\n\t\t\t\tlocation = location.join(', ');\r\n\r\n\t\t\t\thref += ([\r\n\t\t\t\t\t'BEGIN:VCALENDAR',\r\n\t\t\t\t\t\t'VERSION:2.0',\r\n\t\t\t\t\t\t'BEGIN:VEVENT',\r\n\t\t\t\t\t\t\t'URL:' + document.URL,\r\n\t\t\t\t\t\t\t'DTSTART:' + startDate,\r\n\t\t\t\t\t\t\t'DTEND:' + endDate,\r\n\t\t\t\t\t\t\t'SUMMARY:' + title,\r\n\t\t\t\t\t\t\t'DESCRIPTION:' + description,\r\n\t\t\t\t\t\t\t'LOCATION:' + location,\r\n\t\t\t\t\t\t'END:VEVENT',\r\n\t\t\t\t\t'END:VCALENDAR'\r\n\t\t\t\t]).join('\\n');\r\n\r\n\t\t\t\t$link.attr('href', href);\r\n\t\t\t},\r\n\r\n\t\t\t_enforceDateFormat: function (dateString) {\r\n\t\t\t\tvar dateObj = new Date(dateString);\r\n\t\t\t\tvar year = dateObj.getFullYear();\r\n\t\t\t\tvar month = dateObj.getMonth() + 1;\r\n\t\t\t\tvar day = dateObj.getDate();\r\n\r\n\t\t\t\tif (isNaN(year)) {\r\n\t\t\t\t\treturn '';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (month < 10) {\r\n\t\t\t\t\tmonth = '0' + month;\r\n\t\t\t\t}\r\n\t\t\t\tif (day < 10) {\r\n\t\t\t\t\tday = '0' + day;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdateString = '';\r\n\t\t\t\tdateString += year;\r\n\t\t\t\tdateString += month;\r\n\t\t\t\tdateString += day;\r\n\r\n\t\t\t\treturn dateString;\r\n\t\t\t},\r\n\r\n\t\t\t_linkClick: function (e) {\r\n\t\t\t\tvar $link;\r\n\t\t\t\tvar href;\r\n\t\t\t\tvar filename;\r\n\t\t\t\tvar blob;\r\n\r\n\t\t\t\tif (navigator.msSaveBlob) {\r\n\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t$link = $(e.target).closest(selectors.link);\r\n\t\t\t\t\thref = $link.attr('href');\r\n\t\t\t\t\tfilename = $link.attr('download');\r\n\t\t\t\t\tblob = Calendar._createBlob(href);\r\n\r\n\t\t\t\t\tnavigator.msSaveBlob(blob, filename);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Let the default link action download the blob\r\n\t\t\t\t}\r\n\t\t\t},\r\n\r\n\t\t\t_createBlob: function (dataUrl) {\r\n\t\t\t\tvar blob;\r\n\t\t\t\tvar type = dataUrl.replace(/\\n/g, '').replace(/^data:(.*?);.*$/, '$1');\r\n\r\n\t\t\t\tblob = new Blob([dataUrl.replace(/^data:.*?;.*?,/, '')], {\r\n\t\t\t\t\ttype: type\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn blob;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\treturn {\r\n\t\t\tinit: Calendar.init\r\n\t\t};\r\n\t}\r\n);\r\n\n",";\r\n(function($, window, document, undefined) {\r\n\r\n\t'use strict';\r\n\r\n\t// Create the defaults once\r\n\tvar pluginName = 'tableScroll';\r\n\tvar wrapper = '