{"version":3,"sources":["instagram.js","launch_model.js","main.js","map.js","soccer.js","spaceX.js","spaceX_v4.js","modules/tardis.js"],"names":["Instragram","[object Object]","caption","date","isVideo","mediaURL","location","likes","this","instagramGallery","instaGalPos","GetInstagram","max_id","$","when","get","access_token","instagramAPI","after","fields","then","result","myPics","data","nextMaxID","paging","next","undefined","slice","indexOf","hide","i","length","myString","Date","timestamp","fullDate","tardis","DayMonthDate","toUTCString","setLocation","myCaption","imgTypeText","replace","latitude","longitude","name","media_type","media_url","push","append","fail","err","console","log","responseText","getNextPosition","ind","dir","InstraArrayLen","nextPos","document","on","e","currebtPos","prevPos","srcUrl","alt","video","getElementById","addClass","html","removeClass","pause","IsCreated","source","createElement","setAttribute","appendChild","attr","load","preventDefault","modal","currentPos","LaunchInfo","id","rocket","launchPad","launchPad_full_name","launchPadInfo","landingPad","landingPad_full_name","landingPadInfo","desc","pic","capsule","crew","full_name","theCrew","forEach","lat","lng","setLat","setLng","days","months","dynamicSort","property","sortOrder","substr","a","b","isInViewport","elem","bounding","getBoundingClientRect","top","left","bottom","window","innerHeight","documentElement","clientHeight","right","innerWidth","clientWidth","map","initMap","newLat","newLng","google","maps","Map","center","parseFloat","defaultView","zoom","goTravel","addListener","newCenter","getCenter","getLocation","navigator","geolocation","getCurrentPosition","showPosition","showError","error","code","PERMISSION_DENIED","POSITION_UNAVAILABLE","TIMEOUT","UNKNOWN_ERROR","position","pos","currentLat","coords","currentLng","currentAlt","altitude","toFixed","jQuery","ready","timelineBlocks","offset","initial_position","showBlocks","blocks","each","scrollTop","height","find","hasClass","addEventListener","Math","floor","alpha","current_position","panorama","width","percentage","css","hideBlocks","requestAnimationFrame","setTimeout","click","toggleWidth","animate","mousemove","pageX","myTravels","arrayLength","setMarkers","copy","marker","Marker","title","infowindow","InfoWindow","content","event","close","open","DeleteMarkers","markers","setMap","onTouchStart","passive","rankUp","rankDown","GetSpaceX","max_cnt","limit","launches","promises","buildTargetBlock","rocket_id","rocketImg","rocketName","rocket_name","payload","second_stage","payloads","payload_type","missionID","launchDate","MonthDateTime","launch_date_unix","is_tentative","tentative_max_precision","description","target","mission_id","toLowerCase","details","ajax","url","success","mission","mission_name","launch_site","site_name_long","apply","done","catch","targetBlock","thisClick","currentRank","loopCnt","GetSpaceXV4","cnt","fetch","response","json","processData","sort","date_unix","flight_number","launchInfo","setName","setDate","makeDate","setCrew","setDesc","getLaunchPad","launchpad","getLandingPad","cores","landpad","getRocket","Promise","all","async","obj","res","setLaunchPad","setLaunchPadFullName","setLaunchPadInfo","setLandinghPad","setLandingPadFullName","setLandingPadInfo","setPic","setRocket","includes","launch","upcoming","date_precision","targetDiv","makeElement","targetCopy","innerHTML","cssClasses","elemID","theClasses","split","trim","newElem","cssClass","classList","add","theTime","pattern","patterns","keys","convertTime","checkUnixTime","dateObj","year","getYear","month","getMonth","day","getDate","hour","getHours","min","getMinutes","sec","getSeconds","fullYear","getFullYear","shortYear","toString","wordYear","inWords","fullMonth","shortMonth","fullDay","getDay","shortDay","wordHour","wordMin","wordSec","yearInt","monthInt","dayInt","hourInt","minInt","secInt","YYear","MMonth","DDay","HHour","MMin","SSec","TT","tt","utc","now","checkedTime","isNaN","parse","join","num","n","match","str","Number","replaceAll","replaceWhat","replaceTo","re","RegExp","dateparts","replacement","key","val","patterned","thisDate","replaceStr","replaceMap","index","thisEdit","eval","rpl","time","ISO","ShortDate","LongDate","MonthDate","MonthDateTime12","workTweleve","Year","Month","Day","TimeOfDay","TimeOfDay12","theHour","hours","doctorwho","quotes","random"],"mappings":"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","file":"../script.min.js","sourcesContent":["class Instragram {\n\tconstructor(\n\t\tcaption = '',\n\t\tdate,\n\t\tisVideo = false,\n\t\tmediaURL,\n\t\tlocation,\n\t\tlikes\n\t) {\n\t\tthis.caption = caption;\n\t\tthis.date = date;\n\t\tthis.isVideo = isVideo;\n\t\tthis.mediaURL = mediaURL;\n\t\tthis.location = location;\n\t\tthis.likes = likes;\n\t}\n}\n\nlet instagramGallery = [];\nlet instaGalPos = 0;\n\nfunction GetInstagram(max_id) {\n\t$.when(\n\t\t$.get('https://graph.instagram.com/me/media/', {\n\t\t\taccess_token: instagramAPI,\n\t\t\tafter: max_id,\n\t\t\tfields:\n\t\t\t\t'id, username, caption, media_type, media_url, permalink, thumbnail_url, timestamp, username',\n\t\t})\n\t)\n\t\t.then(function (result) {\n\t\t\tlet myPics = result.data;\n\t\t\tlet nextMaxID = result.paging.next;\n\n\t\t\tif (nextMaxID != undefined) {\n\t\t\t\tnextMaxID = nextMaxID.slice(nextMaxID.indexOf('after=') + 6);\n\t\t\t\t$('#getMoreIstagram').data('nexturl', nextMaxID);\n\t\t\t} else {\n\t\t\t\t$('#getMoreIstagram').hide();\n\t\t\t}\n\n\t\t\tfor (let i = 0; i < myPics.length; i++) {\n\t\t\t\tlet myString = '';\n\t\t\t\tlet isVideo = false;\n\t\t\t\tlet date = new Date(myPics[i].timestamp);\n\t\t\t\tlet fullDate = tardis.DayMonthDate(date.toUTCString());\n\t\t\t\tlet location = new setLocation();\n\t\t\t\tlet myCaption = '';\n\t\t\t\tlet mediaURL = '';\n\t\t\t\tlet likes = null;\n\t\t\t\tlet imgTypeText = 'Photo';\n\t\t\t\t//let likes = myPics[i].likes.count;\n\n\t\t\t\tif (\n\t\t\t\t\tmyPics[i].caption != undefined ||\n\t\t\t\t\tmyPics[i].caption != null\n\t\t\t\t) {\n\t\t\t\t\tmyCaption = myPics[i].caption;\n\t\t\t\t} else {\n\t\t\t\t\tmyCaption = 'Untitled';\n\t\t\t\t}\n\t\t\t\tmyCaption = myCaption.replace(/'/g, '’');\n\t\t\t\tif (myPics[i].location != undefined) {\n\t\t\t\t\tlocation = new setLocation(\n\t\t\t\t\t\tmyPics[i].location.latitude,\n\t\t\t\t\t\tmyPics[i].location.longitude,\n\t\t\t\t\t\tmyPics[i].location.name\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (myPics[i].media_type == 'VIDEO') {\n\t\t\t\t\tisVideo = true;\n\t\t\t\t\timgTypeText = 'Video';\n\t\t\t\t}\n\n\t\t\t\tmyString += \"<div class='col-md-3 col-sm-6'>\";\n\t\t\t\tmyString += `<div class='instagram__holder' tabindex='0' aria-label='${imgTypeText} by Mike McAllister. ${myCaption}. Taken on ${fullDate}'>`;\n\n\t\t\t\tif (isVideo == false) {\n\t\t\t\t\tmediaURL = myPics[i].media_url;\n\t\t\t\t\tmyString += `<div class='instagram__border gallery__modal' data-isVid='${isVideo}' data-pid='${instaGalPos}' data-pic='${mediaURL}' data-caption='${myCaption}' style='background-image:url(${mediaURL});'>`;\n\t\t\t\t\t//<div class='likebox'><span class='text-red'>♥</span><span class='instagram__date likecnt'>${likes}</span></div>\n\t\t\t\t} else {\n\t\t\t\t\tmediaURL = myPics[i].media_url;\n\t\t\t\t\tmyString += `<div class='instagram__border gallery__modal' data-isVid='${isVideo}' data-pid='${instaGalPos}' data-vid='${mediaURL}' data-caption='${myCaption}'>`;\n\t\t\t\t\t//<div class='likebox'></div> <span class='text-red'>♥</span><span class='instagram__date likecnt'>${likes}</span>\n\t\t\t\t\tmyString += `<div class='instagram__video'><video autoplay muted loop><source src='${mediaURL}' type='video/mp4'></video></div>`;\n\t\t\t\t}\n\t\t\t\tmyString += `</div><div class='instagram__copy' aria-hidden='true'>${myCaption}<br /><span class='instagram__date'>${fullDate}`;\n\t\t\t\tif (location.name != '' && location.name != undefined) {\n\t\t\t\t\tmyString += ` - ${location.name}`;\n\t\t\t\t}\n\t\t\t\tmyString += `</span></div>\n </div></div>`;\n\n\t\t\t\tinstagramGallery.push(\n\t\t\t\t\tnew Instragram(\n\t\t\t\t\t\tmyCaption,\n\t\t\t\t\t\tdate,\n\t\t\t\t\t\tisVideo,\n\t\t\t\t\t\tmediaURL,\n\t\t\t\t\t\tlocation,\n\t\t\t\t\t\tlikes\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\tinstaGalPos++;\n\n\t\t\t\t$('.instagram').append(myString);\n\t\t\t}\n\t\t})\n\t\t.fail(function (err) {\n\t\t\tconsole.log('Error: ' + err.responseText);\n\t\t});\n}\n\nfunction getNextPosition(ind, dir) {\n\tlet InstraArrayLen = instagramGallery.length;\n\tlet nextPos = ind + dir;\n\tif (nextPos < 0) nextPos = InstraArrayLen - 1;\n\tif (nextPos > InstraArrayLen - 1) nextPos = 0;\n\n\treturn nextPos;\n}\n\n$(document).on('click', '.modal-btn', function (e) {\n\tlet currebtPos = $(this).data('gotoPos');\n\tlet prevPos = getNextPosition(currebtPos, -1);\n\tlet nextPos = getNextPosition(currebtPos, 1);\n\tlet srcUrl = instagramGallery[currebtPos].mediaURL;\n\tlet caption = instagramGallery[currebtPos].caption;\n\tlet alt = instagramGallery[currebtPos].alt;\n\tif (alt == 'undefined' || alt == '') alt = caption;\n\tlet isVideo = instagramGallery[currebtPos].isVideo;\n\tlet video = document.getElementById('bigstagram--vid');\n\n\t$('#bigstagram--vid').addClass('hidden');\n\t$('#bigstagram').addClass('hidden');\n\t$('.modal-left').data('gotoPos', prevPos);\n\t$('.modal-right').data('gotoPos', nextPos);\n\t$('.modal-dynamic-title').html(caption);\n\n\tif (isVideo) {\n\t\t$('#bigstagram--vid').removeClass('hidden');\n\t\tvideo.pause();\n\t\tif (IsCreated <= 0) {\n\t\t\tlet source = document.createElement('source');\n\t\t\tIsCreated = 1;\n\t\t\tsource.setAttribute('src', srcUrl);\n\t\t\tsource.setAttribute('id', 'instaPlayer');\n\t\t\tvideo.appendChild(source);\n\t\t} else {\n\t\t\t$('#instaPlayer').attr('src', srcUrl);\n\t\t}\n\n\t\tvideo.load();\n\t} else {\n\t\tvideo.pause();\n\t\t$('#bigstagram').removeClass('hidden');\n\t\t$('#bigstagram').attr('src', srcUrl);\n\t\t$('#bigstagram').attr('alt', alt);\n\t}\n});\n\n$('#getMoreIstagram').on('click', function (e) {\n\te.preventDefault();\n\tvar max_id = $('#getMoreIstagram').data('nexturl');\n\tGetInstagram(max_id);\n});\n\n$(document).on('click', '.pic__modal', function (e) {\n\t$('#bigstagram').addClass('hidden');\n\t$('#bigstagram--vid').addClass('hidden');\n\t$('.modal-btn').addClass('hidden');\n\n\tlet srcUrl = $(this).data('pic');\n\tlet caption = $(this).data('caption');\n\tlet alt = $(this).data('alt');\n\tif (alt == 'undefined' || alt == '') alt = caption;\n\n\t$('#bigstagram').removeClass('hidden');\n\t$('#bigstagram').attr('src', srcUrl);\n\t$('#bigstagram').attr('alt', alt);\n\t$('#photoModal').modal('show');\n\t$('.modal-dynamic-title').html(caption);\n});\n\n$(document).on('click', '.gallery__modal', function (e) {\n\t$('#bigstagram').addClass('hidden');\n\t$('#bigstagram--vid').addClass('hidden');\n\t$('.modal-btn').addClass('hidden');\n\tlet currentPos = $(this).data('pid');\n\n\t//if in gallery mode\n\tif (currentPos != undefined) {\n\t\t$('.modal-btn').removeClass('hidden');\n\t\tlet prevPos = getNextPosition(currentPos, -1);\n\t\tlet nextPos = getNextPosition(currentPos, 1);\n\n\t\t$('.modal-left').data('gotoPos', prevPos);\n\t\t$('.modal-right').data('gotoPos', nextPos);\n\t}\n\n\tlet srcUrl = instagramGallery[currentPos].mediaURL;\n\tlet caption = instagramGallery[currentPos].caption;\n\tlet alt = instagramGallery[currentPos].alt;\n\tif (alt == 'undefined' || alt == '') alt = caption;\n\tlet isVideo = instagramGallery[currentPos].isVideo;\n\tlet video = document.getElementById('bigstagram--vid');\n\n\tif (isVideo) {\n\t\t$('#bigstagram--vid').removeClass('hidden');\n\t\tvideo.pause();\n\t\tif (IsCreated <= 0) {\n\t\t\tlet source = document.createElement('source');\n\t\t\tIsCreated = 1;\n\t\t\tsource.setAttribute('src', srcUrl);\n\t\t\tsource.setAttribute('id', 'instaPlayer');\n\t\t\tvideo.appendChild(source);\n\t\t} else {\n\t\t\t$('#instaPlayer').attr('src', srcUrl);\n\t\t}\n\t\tvideo.load();\n\t} else {\n\t\tvideo.pause();\n\t\t$('#bigstagram').removeClass('hidden');\n\t\t$('#bigstagram').attr('src', srcUrl);\n\t\t$('#bigstagram').attr('alt', alt);\n\t}\n\t$('#photoModal').modal('show');\n\t$('.modal-dynamic-title').html(caption);\n});\n","\nclass LaunchInfo {\n constructor(id, name, date, rocket, launchPad, launchPad_full_name, launchPadInfo, landingPad, landingPad_full_name, landingPadInfo, desc, pic, capsule, crew) {\n this.id = id;\n this.name = name;\n this.pic = pic;\n this.rocket = rocket;\n this.date = date;\n this.launchPad = launchPad;\n this.launchPad_full_name = launchPad_full_name;\n this.landingPad = landingPad;\n this.landingPad_full_name = landingPad_full_name;\n this.launchPadInfo = launchPadInfo;\n this.landingPadInfo = landingPadInfo;\n this.desc = desc;\n this.capsule = capsule;\n this.crew = crew;\n }\n\n setName(name){\n this.name = name;\n }\n\n setPic(pic){\n this.pic = pic;\n }\n\n setRocket(rocket){\n this.rocket = rocket;\n }\n\n setDate(date){\n this.date = date;\n }\n\n setLaunchPad(launchPad){\n this.launchPad = launchPad;\n }\n\n setLaunchPadFullName(full_name){\n this.launchPad_full_name = full_name;\n }\n\n setLandinghPad(landingPad){\n this.landingPad = landingPad;\n }\n\n setLandingPadFullName(full_name){\n this.landingPad_full_name = full_name;\n }\n\n setLaunchPadInfo(launchPadInfo){\n this.launchPadInfo = launchPadInfo;\n }\n\n setLandingPadInfo(landingPadInfo){\n this.landingPadInfo = landingPadInfo;\n }\n\n setDesc(desc){\n this.desc = desc;\n }\n\n setCapsule(capsule){\n this.capsule = capsule;\n }\n\n setCrew(crew){\n let theCrew = []\n crew.forEach(name => {\n theCrew.push(name);\n })\n this.crew = theCrew;\n }\n\n getCapsule(){\n return this.capsule;\n }\n}","class setLocation {\n\tconstructor(lat = '40.079', lng = '-75.160', name) {\n\t\tthis.setLat = lat;\n\t\tthis.setLng = lng;\n\t\tthis.name = name;\n\t}\n}\n\nconst instagramAPI =\n\t'IGQVJVR2N3ZAk1IOFNGV2c3OGwxUVB4RHI0UFA4ZAmRQR1ZAnN19tazQ0OVJQLWNZAYVJsOVcxMTUtX1JZAQWZA2VS1JU0k0NE9kRXJTVlhabm5rZAHRsNGQzTjNoOUd6SXcyUGdJVUFlXzljZA21ybDhJZAl9CRwZDZD';\nconst days = [\n\t'Sunday',\n\t'Monday',\n\t'Tuesday',\n\t'Wednesday',\n\t'Thursday',\n\t'Friday',\n\t'Saturday',\n];\nconst months = [\n\t'January',\n\t'Febuary',\n\t'March',\n\t'April',\n\t'May',\n\t'June',\n\t'July',\n\t'August',\n\t'September',\n\t'October',\n\t'November',\n\t'Decemeber',\n];\nlet IsCreated = 0;\n\nfunction dynamicSort(property) {\n\tvar sortOrder = 1;\n\tif (property[0] === '-') {\n\t\tsortOrder = -1;\n\t\tproperty = property.substr(1);\n\t}\n\treturn function (a, b) {\n\t\t/* next line works with strings and numbers,\n\t\t * and you may want to customize it to your needs\n\t\t */\n\t\tvar result =\n\t\t\ta[property] < b[property] ? -1 : a[property] > b[property] ? 1 : 0;\n\t\treturn result * sortOrder;\n\t};\n}\n\nlet isInViewport = function (elem) {\n\tvar bounding = elem.getBoundingClientRect();\n\treturn (\n\t\tbounding.top >= 0 &&\n\t\tbounding.left >= 0 &&\n\t\tbounding.bottom <=\n\t\t\t(window.innerHeight || document.documentElement.clientHeight) &&\n\t\tbounding.right <=\n\t\t\t(window.innerWidth || document.documentElement.clientWidth)\n\t);\n};\n\njQuery(document).ready(function ($) {\n\tvar timelineBlocks = $('.cd-timeline-block'),\n\t\toffset = 0.8,\n\t\tinitial_position = null;\n\n\twindow.addEventListener('deviceorientation', function (e) {\n\t\tif (initial_position === null) {\n\t\t\tinitial_position = Math.floor(e.alpha);\n\t\t}\n\n\t\tlet current_position = initial_position - Math.floor(e.alpha);\n\t\tlet right = panorama.width();\n\t\tlet midPoint = right / 2;\n\n\t\tif (current_position < 0) {\n\t\t\toffset = offset + 10;\n\t\t} else {\n\t\t\toffset = offset - 10;\n\t\t}\n\n\t\tif (offset <= left) offset = 0;\n\t\tif (offset >= right) offset = right;\n\t\t//console.log(current_position + \" - \" + left + \" - \" + initial_position);\n\t\tvar percentage = (offset / width) * 100;\n\t\tpanorama.css('background-position', percentage + '% 0');\n\t});\n\n\t$('#getMoreIstagram').on('click', function (e) {\n\t\te.preventDefault();\n\t\tvar max_id = $('#getMoreIstagram').data('nexturl');\n\t\tGetInstagram(max_id);\n\t});\n\n\t$(document).on('click', '.pic__modal', function (e) {\n\t\t$('#bigstagram').addClass('hidden');\n\t\t$('#bigstagram--vid').addClass('hidden');\n\t\t$('.modal-btn').addClass('hidden');\n\n\t\tlet srcUrl = $(this).data('pic');\n\t\tlet caption = $(this).data('caption');\n\t\tlet alt = $(this).data('alt');\n\t\tif (alt == 'undefined' || alt == '') alt = caption;\n\n\t\t$('#bigstagram').removeClass('hidden');\n\t\t$('#bigstagram').attr('src', srcUrl);\n\t\t$('#bigstagram').attr('alt', alt);\n\t\t$('#photoModal').modal('show');\n\t\t$('.modal-dynamic-title').html(caption);\n\t});\n\n\t$(document).on('click', '.gallery__modal', function (e) {\n\t\t$('#bigstagram').addClass('hidden');\n\t\t$('#bigstagram--vid').addClass('hidden');\n\t\t$('.modal-btn').addClass('hidden');\n\t\tlet currentPos = $(this).data('pid');\n\n\t\t//if in gallery mode\n\t\tif (currentPos != undefined) {\n\t\t\t$('.modal-btn').removeClass('hidden');\n\t\t\tlet prevPos = getNextPosition(currentPos, -1);\n\t\t\tlet nextPos = getNextPosition(currentPos, 1);\n\n\t\t\t$('.modal-left').data('gotoPos', prevPos);\n\t\t\t$('.modal-right').data('gotoPos', nextPos);\n\t\t}\n\n\t\tlet srcUrl = instagramGallery[currentPos].mediaURL;\n\t\tlet caption = instagramGallery[currentPos].caption;\n\t\tlet alt = instagramGallery[currentPos].alt;\n\t\tif (alt == 'undefined' || alt == '') alt = caption;\n\t\tlet isVideo = instagramGallery[currentPos].isVideo;\n\t\tlet video = document.getElementById('bigstagram--vid');\n\n\t\tif (isVideo) {\n\t\t\t$('#bigstagram--vid').removeClass('hidden');\n\t\t\tvideo.pause();\n\t\t\tif (IsCreated <= 0) {\n\t\t\t\tlet source = document.createElement('source');\n\t\t\t\tIsCreated = 1;\n\t\t\t\tsource.setAttribute('src', srcUrl);\n\t\t\t\tsource.setAttribute('id', 'instaPlayer');\n\t\t\t\tvideo.appendChild(source);\n\t\t\t} else {\n\t\t\t\t$('#instaPlayer').attr('src', srcUrl);\n\t\t\t}\n\t\t\tvideo.load();\n\t\t} else {\n\t\t\tvideo.pause();\n\t\t\t$('#bigstagram').removeClass('hidden');\n\t\t\t$('#bigstagram').attr('src', srcUrl);\n\t\t\t$('#bigstagram').attr('alt', alt);\n\t\t}\n\n\t\t$('#photoModal').modal('show');\n\t\t$('.modal-dynamic-title').html(caption);\n\t});\n\n\t//hide timeline blocks which are outside the viewport\n\thideBlocks(timelineBlocks, offset);\n\n\t//on scolling, show/animate timeline blocks when enter the viewport\n\t$(window).on('scroll', function () {\n\t\t!window.requestAnimationFrame\n\t\t\t? setTimeout(function () {\n\t\t\t\t\tshowBlocks(timelineBlocks, offset);\n\t\t\t }, 100)\n\t\t\t: window.requestAnimationFrame(function () {\n\t\t\t\t\tshowBlocks(timelineBlocks, offset);\n\t\t\t });\n\t});\n\n\tfunction hideBlocks(blocks, offset) {\n\t\tblocks.each(function () {\n\t\t\t$(this).offset().top >\n\t\t\t\t$(window).scrollTop() + $(window).height() * offset &&\n\t\t\t\t$(this)\n\t\t\t\t\t.find('.cd-timeline-img, .cd-timeline-content')\n\t\t\t\t\t.addClass('is-hidden');\n\t\t});\n\t}\n\n\tfunction showBlocks(blocks, offset) {\n\t\tblocks.each(function () {\n\t\t\t$(this).offset().top <=\n\t\t\t\t$(window).scrollTop() + $(window).height() * offset &&\n\t\t\t\t$(this).find('.cd-timeline-img').hasClass('is-hidden') &&\n\t\t\t\t$(this)\n\t\t\t\t\t.find('.cd-timeline-img, .cd-timeline-content')\n\t\t\t\t\t.removeClass('is-hidden')\n\t\t\t\t\t.addClass('bounce-in');\n\t\t});\n\t}\n\n\t//QRCode toggle\n\t$('#qrCode').click(function () {\n\t\tvar toggleWidth = $('#qrCode').width() < 38 ? '210px' : '37px';\n\t\t$('#qrCode').animate({\n\t\t\twidth: toggleWidth,\n\t\t});\n\t});\n\n\t//panorama\n\tvar panorama = $('.jumbotron--homepage');\n\tvar left = panorama.offset().left;\n\tvar width = panorama.width();\n\n\t$('.jumbotron--homepage').mousemove(function (e) {\n\t\tvar offset = e.pageX - left;\n\t\tvar percentage = (offset / width) * 100;\n\t\tpanorama.css('background-position', percentage + '% 0');\n\t});\n});\n","let map;\n\nfunction initMap(newLat, newLng) {\n\t//console.log('map ' + newLat + \"/\" + newLng);\n\tmap = new google.maps.Map(document.getElementById('map'), {\n\t\tcenter: {\n\t\t\tlat: parseFloat(newLat),\n\t\t\tlng: parseFloat(newLng),\n\t\t},\n\t\tdefaultView: 'streetmap',\n\t\tzoom: 5,\n\t});\n\tgoTravel();\n\tmap.addListener('dragend', function () {\n\t\tlet newCenter = map.getCenter();\n\t\tlet at = newCenter.lat() + ',' + newCenter.lng();\n\t});\n}\n\nfunction getLocation() {\n\tif (navigator.geolocation) {\n\t\tnavigator.geolocation.getCurrentPosition(showPosition, showError);\n\t}\n}\n\nfunction showError(error) {\n\tinitMap('40.079', '-75.160');\n\tswitch (error.code) {\n\t\tcase error.PERMISSION_DENIED:\n\t\t\tconsole.log('User denied the request for Geolocation.');\n\t\t\tbreak;\n\t\tcase error.POSITION_UNAVAILABLE:\n\t\t\tconsole.log('Location information is unavailable.');\n\t\t\tbreak;\n\t\tcase error.TIMEOUT:\n\t\t\tconsole.log('The request to get user location timed out.');\n\t\t\tbreak;\n\t\tcase error.UNKNOWN_ERROR:\n\t\t\tconsole.log('An unknown error occurred.');\n\t\t\tbreak;\n\t}\n}\n\nfunction showPosition(position) {\n\tlet pos = position;\n\tlet currentLat = pos.coords.latitude;\n\tlet currentLng = pos.coords.longitude;\n\tlet currentAlt = pos.coords.altitude;\n\tif (currentAlt != null) {\n\t\tcurrentAlt = currentAlt.toFixed(6);\n\t}\n\n\tinitMap(currentLat, currentLng); // init gmap\n\tlet loop = false;\n\tlet at = currentLat + ',' + currentLng;\n\n\treturn new setLocation(currentLat, currentLng, currentAlt);\n}\n\nlet myTravels = [\n\tnew setLocation('40.079', '-75.160', 'Philly!'),\n\tnew setLocation('40.7834', '-73.9662', 'NYC'),\n\tnew setLocation('42.3188', '-71.0846', 'Boston'),\n\tnew setLocation('26.1412', '-80.1464', 'Fort Lauderdale'),\n\tnew setLocation('28.4788', '-81.342', 'Orlando'),\n\tnew setLocation('30.2782', '-81.4045', 'Jacksonville'),\n\tnew setLocation('25.7617', '-80.1918', 'Miami'),\n\tnew setLocation('28.9270', '-82.0038', 'The Villages'),\n\tnew setLocation('39.3051', '-76.6144', 'Baltimore'),\n\tnew setLocation('43.1121', '-77.4869', 'Rochester'),\n\tnew setLocation('41.8373', '-87.6861', 'Chicago'),\n\tnew setLocation('41.4993', '-81.6944', 'Cleveland'),\n\tnew setLocation('42.3834', '-83.1024', 'Detroit'),\n\tnew setLocation('43.7', '-79.42', 'Toronto'),\n\tnew setLocation('45.5', '-73.5833', 'Montreal'),\n\tnew setLocation('44.65', '-63.6', 'Halifax'),\n\tnew setLocation('32.0282', '-81.1786', 'Savannah'),\n\tnew setLocation('40.4396', '-79.9763', 'Pittsburgh'),\n\tnew setLocation('51.5', '-0.1167', 'London'),\n\tnew setLocation('51.7704', '-1.25', 'Oxford'),\n\tnew setLocation('50.2084', '-5.4909', 'Saint Ives'),\n\tnew setLocation('51.45', '-2.5833', 'Bristol'),\n\tnew setLocation('50.5938', '-4.83', 'Port Issiac'),\n\tnew setLocation('51.3837', '-2.35', 'Bath'),\n\tnew setLocation('55.6786', '12.5635', 'København'),\n\tnew setLocation('27.9937', '-82.4454', 'Tampa'),\n\tnew setLocation('24.5636', '-81.7769', 'Key West'),\n\tnew setLocation('29.1386', '-83.0351', 'Cedar Keys'),\n\tnew setLocation('52.35', '4.9166', 'Amsterdam'),\n\tnew setLocation('47.38', '8.55', 'Zurich'),\n\tnew setLocation('41.1400', '-104.8202', 'Cheyenne'),\n\tnew setLocation('40.7774', '-111.9301', 'Salt Lake City'),\n\tnew setLocation('39.5497', '-119.8483', 'Reno'),\n\tnew setLocation('36.1699', '-115.1398', 'Las Vegas'),\n\tnew setLocation('38.5667', '-121.4683', 'Sacramento'),\n\tnew setLocation('37.7749', '-122.4194', 'San Francisco'),\n\tnew setLocation('34.1139', '-118.4068', 'Los Angeles'),\n\tnew setLocation('32.8312', '-117.1226', 'San Diego'),\n\tnew setLocation('35.1872', '-111.6195', 'Flagstaff'),\n\tnew setLocation('33.5722', '-112.0891', 'Phoenix'),\n\tnew setLocation('39.1239', '-94.5541', 'Kansas City'),\n\tnew setLocation('42.3127', '-83.2129', 'Dearborn'),\n\tnew setLocation('44.4877', '-73.2314', 'Burlington'),\n\tnew setLocation('42.8509', '-72.5579', 'Brattleboro'),\n\tnew setLocation('29.4722', '-98.5247', 'San Antonio'),\n\tnew setLocation('39.5309', '-75.8074', 'Chesapeake City'),\n\tnew setLocation('55.9584', '12.5269', 'Humlebæk'),\n\tnew setLocation('30.0687', '-89.9288', 'New Orleans'),\n\tnew setLocation('39.1534', '-74.6929', 'Sea Isle City'),\n\tnew setLocation('38.9072', '-77.0369', 'Washington D.C.'),\n\tnew setLocation('47.238', '-93.5327', 'Grand Rapids'),\n\tnew setLocation('44.2312', '-76.4860', 'Kingston'),\n\tnew setLocation('44.4918', '-63.9187', 'Peggys Point'),\n\tnew setLocation('44.5421', '-64.2389', 'Chester'),\n\tnew setLocation('44.4592', '-64.1619', 'Big Tancook Island'),\n\tnew setLocation('43.0962', '-79.0377', 'Niagara Falls'),\n\tnew setLocation('41.3543', '-71.9665', 'Mystic'),\n\tnew setLocation('41.6688', '-70.2962', 'Cape Cod'),\n\tnew setLocation('41.0359', '-71.9545', 'Montauk'),\n\tnew setLocation('43.5670', '-76.1277', 'Pulaski'),\n\tnew setLocation('32.5149', '-117.0382', 'Tujianna'),\n\tnew setLocation('42.1014', '-83.1087', 'Amherstburg'),\n\tnew setLocation('42.6526', '-73.7562', 'Albany'),\n\tnew setLocation('40.8759', '-75.7324', 'Jim Thorpe'),\n\tnew setLocation('40.6259', '-75.3705', 'Bethlehem'),\n\tnew setLocation('53.3498', '-6.2603', 'Dublin'),\n\tnew setLocation('51.4852', '-2.7679', 'Portishead'),\n\tnew setLocation('28.3200', '-80.6076', 'Cocoa Beach'),\n\tnew setLocation('36.3803', '-75.8308', 'Corolla Outer Banks'),\n\tnew setLocation('34.8697', '-111.7610', 'Sedona'),\n\tnew setLocation('33.8303', '-116.5453', 'Palm Springs'),\n\tnew setLocation('41.2565', '-95.9345', 'Omaha'),\n\tnew setLocation('42.2917', '-85.5872', 'Kalamazoo'),\n\tnew setLocation('42.8864', '-78.8784', 'Buffalo'),\n\tnew setLocation('41.4901', '-71.3128', 'Newport'),\n\tnew setLocation('38.8032', '-75.0946', 'Cape Henlopen'),\n\tnew setLocation('40.3573', '-74.6672', 'Princeton'),\n\tnew setLocation('55.5940', '12.6605', 'Dragør'),\n\tnew setLocation('41.0807423', '-75.420217', 'The Poconos'),\n\tnew setLocation('40.3643', '-74.9513', 'New Hope'),\n\tnew setLocation('40.2204', '-74.0121', 'Asbury Park'),\n\tnew setLocation('42.0409', '-74.1182', 'Woodstock'),\n\tnew setLocation('40.1573°', '-76.3069', 'Lititz, PA'),\n\tnew setLocation('35.0537916', '-78.8829083', 'Fayetteville'),\n\tnew setLocation('32.8209674', '-80.1105604', 'Charleston'),\n\tnew setLocation('31.368576', '-81.4352139', 'Darien'),\n\tnew setLocation('43.0566242', '-70.8105213', 'Portsmouth'),\n\tnew setLocation('36.9308009', '-76.309759', 'Norfolk'),\n\tnew setLocation('41.7713327', '-76.4571832', 'Towanda'),\n\tnew setLocation('43.4604012', '-76.5393677', 'Oswego'),\n\tnew setLocation('43.0352286', '-76.1742993', 'Syracuse'),\n\tnew setLocation('42.4427017', '-76.5158845', 'Ithica'),\n\tnew setLocation('39.2605068', '-74.6380517', 'Ocean City'),\n\tnew setLocation('38.9707996', '-74.8345959', 'Wildwood'),\n\tnew setLocation('38.9403316', '-74.9212611', 'Cape May'),\n\tnew setLocation('39.5473402', '-76.1240484', 'Harve De grace'),\n\tnew setLocation('39.5271633', '-75.8146038', 'Chesapeake City'),\n\tnew setLocation('39.5753181', '-75.6093883', 'Delaware City'),\n\tnew setLocation('36.1913724', '-75.7901978', 'Duck'),\n\tnew setLocation('36.0710382', '-75.7302105', 'Kitty Hawk'),\n\tnew setLocation('37.9161043', '-85.9562469', 'Fort Knox'),\n\t// new setLocation('','',''),\n\t// new setLocation('','',''),\n\t// new setLocation('','',''),\n\t,\n];\n\nfunction goTravel() {\n\tlet arrayLength = myTravels.length;\n\tfor (let i = 0; i < arrayLength; i++) {\n\t\tsetMarkers(myTravels[i].setLat, myTravels[i].setLng, myTravels[i].name);\n\t}\n}\n\nfunction setMarkers(lat, lng, copy) {\n\tlet marker = new google.maps.Marker({\n\t\tposition: {\n\t\t\tlat: parseFloat(lat),\n\t\t\tlng: parseFloat(lng),\n\t\t},\n\t\tmap: map,\n\t\ttitle: copy,\n\t});\n\n\tlet infowindow = new google.maps.InfoWindow({\n\t\tcontent: copy,\n\t});\n\n\tgoogle.maps.event.addListener(marker, 'click', function () {\n\t\tif (infowindow) {\n\t\t\tinfowindow.close();\n\t\t}\n\t\tinfowindow.open(map, marker);\n\t});\n}\n\nfunction DeleteMarkers() {\n\t//Loop through all the markers and remove\n\tfor (let i = 0; i < markers.length; i++) {\n\t\tmarkers[i].setMap(null);\n\t}\n\tmarkers = [];\n}\n\ndocument.addEventListener('touchstart', onTouchStart, { passive: true });\n\nfunction onTouchStart(e) {\n\treturn e;\n}\n","let \nrankUp = $('.football__item--up'),\nrankDown = $('.football__item--down')\n;\n\n\n$(document).on('click', '.football__item--up, .football__item--down', function(e){\n e.preventDefault();\n let thisClick = $(this).data('dir');\n $('.football_team--' + currentRank).removeClass('football_team--show');\n $('.football_team--' + currentRank).addClass('football_team--hide');\n\n if (thisClick == 'up'){\n currentRank = currentRank - 1;\n if (currentRank == 0) currentRank = 20;\n }\n else{\n currentRank = currentRank + 1;\n if (currentRank == 21) currentRank = 1;\n }\n\n $('.football_team--' + currentRank).removeClass('football_team--hide');\n $('.football_team--' + currentRank).addClass('football_team--show');\n});\n\n$(document).on('touchend', '.football__item--up .football__item--down', function (e) {\n e.preventDefault();\n $(this).click();\n});\n","function GetSpaceX(max_cnt) {\n\t$.when(\n\t\t\t$.get(\"https://api.spacexdata.com/v3/launches/upcoming\", {\n\t\t\t\tlimit: max_cnt\n\t\t\t})\n\t\t)\n\t\t.then(result => {\n\t\t\tlet launches = result;\n\t\t\tvar promises = [];\n\n\t\t\tfor (let i = 0; i < launches.length; i++) {\n\t\t\t\tbuildTargetBlock(i);\n\t\t\t\tlet rocket = launches[i].rocket.rocket_id;\n\t\t\t\tlet rocketImg = \"falcon9.png\";\n\t\t\t\tlet rocketName = launches[i].rocket.rocket_name;\n\t\t\t\tlet payload = launches[i].rocket.second_stage.payloads[0].payload_type;\n\t\t\t\tlet missionID = \"\";\n\t\t\t\tlet launchDate =\n\t\t\t\t\ttardis.MonthDateTime(launches[i].launch_date_unix) +\n\t\t\t\t\t'<br /><span class=\"italic\">';\n\n\t\t\t\tif (launches[i].is_tentative) {\n\t\t\t\t\tlaunchDate =\n\t\t\t\t\t\tlaunchDate +\n\t\t\t\t\t\t\"tenative up to a \" +\n\t\t\t\t\t\tlaunches[i].tentative_max_precision;\n\t\t\t\t} else {\n\t\t\t\t\tlaunchDate = launchDate + \" \";\n\t\t\t\t}\n\n\t\t\t\tlaunchDate = launchDate + \"</span>\";\n\t\t\t\tlet description = \"\";\n\t\t\t\tlet target = $(\"#launchBlock\" + i);\n\n\t\t\t\tif (launches[i].mission_id.length > 0) {\n\t\t\t\t\tmissionID = launches[i].mission_id[0];\n\t\t\t\t}\n\t\t\t\tif (rocket == \"falconheavy\") {\n\t\t\t\t\trocketImg = \"falconheavy.png\";\n\t\t\t\t}\n\t\t\t\tif (payload.toLowerCase().indexOf(\"dragon\") >= 0) {\n\t\t\t\t\trocketImg = \"dragon.png\";\n\t\t\t\t}\n\t\t\t\tif (launches[i].details == \"\" || launches[i].details == null) {\n\t\t\t\t\tlet details;\n\t\t\t\t\tdescription = $.ajax({\n\t\t\t\t\t\turl: \"https://api.spacexdata.com/v3/missions/\" + missionID,\n\t\t\t\t\t\tsuccess: function (mission) {\n\t\t\t\t\t\t\tdetails = mission.description;\n\t\t\t\t\t\t\tif (details == \"\" || details == null) {\n\t\t\t\t\t\t\t\tdetails =\n\t\t\t\t\t\t\t\t\t\"<span class=''>There are no details available for this mission.</span>\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttarget.find(\".launch__details\").html(details);\n\t\t\t\t\t\t},\n\t\t\t\t\t\terror: err => {\n\t\t\t\t\t\t\tconsole.log(err);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tpromises.push(description);\n\t\t\t\t} else {\n\t\t\t\t\tdescription = launches[i].details;\n\t\t\t\t\ttarget.find(\".launch__details\").html(description);\n\t\t\t\t}\n\n\t\t\t\ttarget.find(\".launch__mission__name\").html(launches[i].mission_name);\n\t\t\t\ttarget.find(\".launch__rocket\").html(launches[i].rocket.rocket_name);\n\t\t\t\ttarget.find(\".launch__date\").html(launchDate);\n\t\t\t\ttarget\n\t\t\t\t\t.find(\".launch__site\")\n\t\t\t\t\t.html(launches[i].launch_site.site_name_long);\n\t\t\t\ttarget.find(\".launch__img\").attr(\"src\", \"/img/spacex/\" + rocketImg);\n\t\t\t\ttarget.find(\".launch__img\").attr(\"alt\", rocketName);\n\t\t\t}\n\t\t\t$.when.apply(null, promises).done(function () {\n\t\t\t\t//console.log('All done')\n\t\t\t});\n\t\t})\n\t\t.catch(err => {\n\t\t\tconsole.log(\"SpaceX error: \", err);\n\t\t});\n}\n\nfunction buildTargetBlock(i) {\n\tlet targetBlock = `<div class=\"col-md-4\"><div id=\"launchBlock${i}\" class=\"launchContainer\">\n <img src=\"\" class=\"launch__img launch__copy\" />\n <div class=\"launch__mission__name launch__copy\"></div>\n <div class=\"launch__rocket launch__copy\"></div>\n <div class=\"launch__date launch__copy\"></div>\n <div class=\"launch__site launch__copy\"></div>\n <hr />\n <div class=\"launch__details launch__copy\"></div>\n </div>\n </div>`;\n\n\t$(\"#launchBlockHolder\").append(targetBlock);\n}","let loopCnt = 0;\nlet promises = [];\n\nfunction GetSpaceXV4(cnt) {\n\tloopCnt = cnt;\n\tfetch('https://api.spacexdata.com/v5/launches/upcoming', {\n\t\tlimit: cnt,\n\t})\n\t\t.then((response) => response.json())\n\t\t.then((data) => processData(data))\n\t\t.catch((error) => console.log('error', error));\n}\n\nfunction processData(data) {\n\tdata.sort((a, b) =>\n\t\ta.date_unix > b.date_unix\n\t\t\t? 1\n\t\t\t: a.date_unix === b.date_unix\n\t\t\t? a.flight_number > b.flight_number\n\t\t\t\t? 1\n\t\t\t\t: -1\n\t\t\t: -1\n\t);\n\n\tif (loopCnt > data.length) {\n\t\tloopCnt = data.length;\n\t}\n\tfor (let i = 0; i < loopCnt; i++) {\n\t\tlet launchInfo = new LaunchInfo(i);\n\n\t\tlaunchInfo.setName(data[i].name);\n\t\tlaunchInfo.setDate(makeDate(data[i]));\n\t\tlaunchInfo.setCrew(data[i].crew);\n\n\t\tdata[i].details === null\n\t\t\t? launchInfo.setDesc(\n\t\t\t\t\t'There are no details available for this mission.'\n\t\t\t )\n\t\t\t: launchInfo.setDesc(data[i].details);\n\n\t\tpromises.push(getLaunchPad(data[i].launchpad, launchInfo));\n\n\t\tpromises.push(getLandingPad(data[i].cores[0].landpad, launchInfo));\n\n\t\tpromises.push(getRocket(data[i].rocket, launchInfo));\n\n\t\tPromise.all(promises).then(() => {\n\t\t\tbuildTargetBlock(launchInfo);\n\t\t});\n\t}\n}\n\nasync function getLaunchPad(id, obj) {\n\tconst res = await fetch('https://api.spacexdata.com/v4/launchpads/' + id);\n\tconst data = await res.json();\n\tobj.setLaunchPad(data.name);\n\tobj.setLaunchPadFullName(data.full_name);\n\tobj.setLaunchPadInfo(data.details);\n}\n\nasync function getLandingPad(id, obj) {\n\tif (id !== null) {\n\t\tconst res = await fetch('https://api.spacexdata.com/v4/landpads/' + id);\n\t\tconst data = await res.json();\n\t\tobj.setLandinghPad(data.name);\n\t\tobj.setLandingPadFullName(data.full_name);\n\t\tobj.setLandingPadInfo(data.details);\n\t} else {\n\t\tobj.setLandinghPad('TBD');\n\t}\n}\n\nasync function getRocket(id, obj) {\n\tlet requestOptions = {\n\t\tmethod: 'GET',\n\t\tredirect: 'follow',\n\t\tid: id,\n\t};\n\tconst res = await fetch('https://api.spacexdata.com/v4/rockets/' + id);\n\tconst data = await res.json();\n\tobj.setPic('falcon9.png');\n\n\tif (data.id == id) {\n\t\tobj.setRocket(data.name);\n\n\t\tswitch (data.name) {\n\t\t\tcase 'Falcon 9':\n\t\t\t\tobj.setPic('falcon9.png');\n\t\t\t\tbreak;\n\t\t\tcase 'Falcon Heavy':\n\t\t\t\tobj.setPic('falconheavy.png');\n\t\t\t\tbreak;\n\t\t\tcase 'Starship':\n\t\t\t\tobj.setPic('Starship.png');\n\t\t\t\tbreak;\n\t\t}\n\t}\n\t// checj for crew or CRS mission and update the image\n\tif (obj.crew.length > 0 || obj.name.includes('CRS'))\n\t\tobj.setPic('dragon.png');\n}\n\nfunction makeDate(launch) {\n\tlet launchDate =\n\t\ttardis.MonthDateTime(launch.date_unix) + '<br /><span class=\"italic\">';\n\n\tlaunch.upcoming\n\t\t? (launchDate += 'tentative up to a ' + launch.date_precision)\n\t\t: (launchDate += ' ');\n\n\tlaunchDate += '</span>';\n\n\treturn launchDate;\n}\n\nfunction buildTargetBlock(launch) {\n\tconst targetDiv = document.getElementById('launchBlockHolder');\n\tlet targetBlock = makeElement('div', 'col-md-4');\n\ttargetBlock.appendChild(\n\t\tmakeElement('div', 'launchContainer', `launchBlock${launch.id}`)\n\t);\n\ttargetBlock.setAttribute('tabindex', 0);\n\ttargetDiv.appendChild(targetBlock);\n\n\tlet targetCopy = `\n <img src=\"img/spacex/${launch.pic}\" class=\"launch__img launch__copy\" alt=\"${launch.rocket} rocket picture.\"/>\n <div class=\"launch__mission__name launch__copy\">${launch.name}.</div>\n <div class=\"launch__rocket launch__copy\">${launch.rocket}.</div>\n <div class=\"launch__date launch__copy\">${launch.date}.</div>\n <div class=\"launch__site launch__copy launch__tooltip\">Launch: ${launch.launchPad}.\n <div class=\"launch__site_info launch__copy launch__tooltiptext\"><h4>${launch.launchPad_full_name}</h4>${launch.launchPadInfo}</div>\n </div>\n <div class=\"launch__site launch__copy`;\n\n\tif (launch.landingPad !== 'TBD') targetCopy += ` launch__tooltip`;\n\n\ttargetCopy += `\">Landing: ${launch.landingPad}.`;\n\n\tif (launch.landingPad !== 'TBD')\n\t\ttargetCopy += `<div class=\"launch__site_info launch__copy launch__tooltiptext\"><h4>${launch.landingPad_full_name}</h4>${launch.landingPadInfo}</div>`;\n\n\ttargetCopy += `</div>\n <hr />\n <div class=\"launch__details launch__copy\">${launch.desc}</div>\n `;\n\n\tconst launchInfoBlock = document.getElementById(`launchBlock${launch.id}`);\n\n\tlaunchInfoBlock.innerHTML = targetCopy;\n}\n\n/* Make and element\n elem: string {required} - type of DOM element you want to create\n cssClasses: string {optional} - can be comma deliminated to attach multiple classes\n elemID: string {optional} - Element ID is needed\n*/\nfunction makeElement(elem, cssClasses, elemID) {\n\tlet theClasses = [];\n\tif (cssClasses != undefined) theClasses = cssClasses.split(', ');\n\tif (typeof elem !== 'undefined' && elem.trim() !== '') {\n\t\tconst newElem = document.createElement(elem);\n\t\tif (theClasses.length > 0 && theClasses[0] !== '') {\n\t\t\ttheClasses.forEach((cssClass) => newElem.classList.add(cssClass));\n\t\t}\n\t\tif (elemID != undefined && elemID != '')\n\t\t\tnewElem.setAttribute('id', elemID);\n\n\t\treturn newElem;\n\t}\n}\n","/* \nTardis - a module for dates and time formating and converting.\nversion: v1.4.0\nUpdated: June 30, 2019\nAuthor: Mike McAllister\nEmail: mike@logikbox.com\nSite: https://logikbox.com\nDate: June 28, 2019\nDocs: https: //docs.google.com/spreadsheets/d/1SVNrBFcKqkojN59xQNyeA3mvNxvX8pwgXzKj9JABAtw/edit?usp=sharing\n\n\nusage: include the file in your build. \npublic methods:\n taris.dateparts({date}); -- simple date part object\n taris.MonthDateTime({date}); -- preformatted displays\n taris.DayMonthDate({date}); -- preformatted displays\n*/\n\n/*jshint esversion: 6 */\nlet tardis = (function (theTime, pattern) {\n // Keep this variables private inside this closure scope\n\n // Patterns and Keys must stay in sync vlaue and size wise,\n const patterns = [\"YYYY\", \"YYY\", \"YY\", \"y\", \"MMMM\", \"MMM\", \"MM\", \"M\", \"m\", \"DDDD\", \"DDD\", \"DD\", \"D\", \"d\", \"HHHH\", \"HH\", \"H\", \"h\", \"IIII\", \"II\", \"I\", \"i\", \"SSSS\", \"SS\", \"S\", \"s\", \"TT\", \"tt\"];\n const keys = [\"fullYear\", \"wordYear\", \"YYear\", \"year\", \"fullMonth\", \"shortMonth\", \"MMonth\", \"month\", \"monthInt\", \"fullDay\", \"shortDay\", \"DDay\", \"day\", \"dayInt\", \"wordHour\", \"HHour\", \"hour\", \"hourInt\", \"wordMin\", \"MMin\", \"min\", \"minInt\", \"wordSec\", \"SSec\", \"sec\", \"secInt\", \"TT\", \"tt\"];\n const days = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\n const months = [\"January\", \"Febuary\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\n const a = ['', 'one ', 'two ', 'three ', 'four ', 'five ', 'six ', 'seven ', 'eight ', 'nine ', 'ten ', 'eleven ', 'twelve ', 'thirteen ', 'fourteen ', 'fifteen ', 'sixteen ', 'seventeen ', 'eighteen ', 'nineteen '];\n const b = ['', '', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety'];\n\n\n // Private Methods ----------------------------------------------------------------------------------------------- //\n\n function convertTime(theTime) {\n theTime = checkUnixTime(theTime);\n let date = new Date(theTime * 1000);\n let dateObj = {\n year: date.getYear(),\n month: (date.getMonth() + 1),\n day: date.getDate(),\n hour: date.getHours(),\n min: (\"0\" + date.getMinutes()).slice(-2),\n sec: (\"0\" + date.getSeconds()).slice(-2),\n\n fullYear: date.getFullYear(),\n shortYear: date.getYear().toString().substr(-2),\n wordYear: inWords(date.getFullYear()).trim(),\n fullMonth: months[date.getMonth()],\n shortMonth: months[date.getMonth()].substr(0, 3),\n fullDay: days[date.getDay()],\n shortDay: days[date.getDay()].substr(0, 3),\n wordHour: inWords(date.getHours()).trim(),\n wordMin: inWords(date.getMinutes()).trim(),\n wordSec: inWords(date.getSeconds()).trim(),\n\n yearInt: date.getYear(),\n monthInt: date.getMonth(),\n dayInt: date.getDay(),\n hourInt: date.getHours(),\n minInt: date.getMinutes(),\n secInt: date.getSeconds(),\n\n YYear: date.getYear().toString().substr(-2),\n MMonth: (\"0\" + (date.getMonth() + 1)).slice(-2),\n DDay: (\"0\" + (date.getDate() + 1)).slice(-2),\n HHour: (\"0\" + date.getHours()).slice(-2),\n MMin: (\"0\" + date.getMinutes()).slice(-2),\n SSec: (\"0\" + date.getSeconds()).slice(-2),\n TT: null,\n tt: null,\n\n utc: date,\n timestamp: theTime\n };\n\n dateObj.TT = (date.hour < 11) ? \"AM\" : \"PM\";\n dateObj.tt = (date.hour < 11) ? \"am\" : \"pm\";\n\n return dateObj;\n }\n\n function checkUnixTime(theTime) {\n if (theTime == '' || theTime == undefined) theTime = Math.floor(Date.now() / 1000);\n let checkedTime = theTime;\n\n if (!isNaN(Date.parse(checkedTime))) {\n checkedTime = checkedTime.split(\" - \").map(function (date) {\n return Date.parse(date + \"-0500\") / 1000;\n }).join(\" - \");\n }\n\n return checkedTime;\n }\n\n // https://github.com/salmanm/num-words\n function inWords(num) {\n if ((num = num.toString()).length > 9) return 'overflow';\n let n = ('000000000' + num).substr(-9).match(/^(\\d{2})(\\d{2})(\\d{2})(\\d{1})(\\d{2})$/);\n if (!n) return; var str = '';\n str += (n[1] != 0) ? (a[Number(n[1])] || b[n[1][0]] + ' ' + a[n[1][1]]) + 'crore ' : '';\n str += (n[2] != 0) ? (a[Number(n[2])] || b[n[2][0]] + ' ' + a[n[2][1]]) + 'lakh ' : '';\n str += (n[3] != 0) ? (a[Number(n[3])] || b[n[3][0]] + ' ' + a[n[3][1]]) + 'thousand ' : '';\n str += (n[4] != 0) ? (a[Number(n[4])] || b[n[4][0]] + ' ' + a[n[4][1]]) + 'hundred ' : '';\n str += (n[5] != 0) ? ((str != '') ? 'and ' : '') + (a[Number(n[5])] || b[n[5][0]] + ' ' + a[n[5][1]]) : '';\n return str;\n }\n\n function replaceAll(str, replaceWhat, replaceTo) {\n //console.log(\"replaceAll\", str, replaceWhat, replaceTo);\n replaceWhat = replaceWhat.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n var re = new RegExp(replaceWhat, 'g');\n return str.replace(re, replaceTo);\n }\n\n // Public Methods ----------------------------------------------------------------------------------------------- //\n\n\n let dateparts = theTime => {\n return convertTime(theTime);\n };\n\n class replacement {\n constructor(key = '', val = '') {\n this.key = key;\n this.val = val;\n }\n }\n\n // Freeform patterns\n let patterned = (theTime, pattern) => {\n let thisDate = convertTime(theTime);\n let replaceStr = '';\n let replaceMap = [];\n\n\n patterns.forEach(function (val, index) {\n let thisEdit = '';\n replaceStr = '{{' + index + '}}';\n thisEdit = new replacement(replaceStr, eval('thisDate.' + keys[index]));\n replaceMap.push(thisEdit);\n pattern = replaceAll(pattern, val, replaceStr);\n });\n\n for (var i = 0; i < replaceMap.length; i++) {\n let rpl = replaceMap[i];\n pattern = replaceAll(pattern, rpl.key, rpl.val);\n }\n\n return {\n pattern: pattern,\n time: theTime\n };\n };\n\n // Preset patterns\n let ISO = theTime => {\n let thisDate = convertTime(theTime);\n let formattedDate = thisDate.fullYear + \"-\" + thisDate.MMonth + \"-\" + thisDate.day;\n\n return formattedDate;\n };\n\n let ShortDate = theTime => {\n let thisDate = convertTime(theTime);\n let formattedDate = thisDate.MMonth + \"/\" + thisDate.day + \"/\" + thisDate.fullYear;\n\n return formattedDate;\n };\n\n let LongDate = theTime => {\n let thisDate = convertTime(theTime);\n let formattedDate = thisDate.shortMonth + ' ' + thisDate.day + ' ' + thisDate.fullYear;\n\n return formattedDate;\n };\n\n let MonthDate = theTime => {\n let thisDate = convertTime(theTime);\n let formattedDate = thisDate.fullMonth + ' ' + thisDate.day + ', ' + thisDate.fullYear;\n\n return formattedDate;\n };\n\n let MonthDateTime = theTime => {\n let thisDate = convertTime(theTime);\n let formattedDate = thisDate.fullMonth + ' ' + thisDate.day + ', ' + thisDate.fullYear + ' ' + thisDate.hour + ':' + thisDate.min;\n\n return formattedDate;\n };\n\n let MonthDateTime12 = theTime => {\n let thisDate = convertTime(theTime);\n\n let formattedDate = thisDate.fullMonth + ' ' + thisDate.day + ', ' + thisDate.fullYear + ' ' + workTweleve(thisDate.hour) + ':' + thisDate.min + ' ' + thisDate.TT;\n\n return formattedDate;\n };\n\n let DayMonthDate = theTime => {\n let thisDate = convertTime(theTime);\n let formattedDate = thisDate.fullDay + ', ' + thisDate.fullMonth + ' ' + thisDate.day + ', ' + thisDate.fullYear;\n\n return formattedDate;\n };\n\n let Year = theTime => {\n let thisDate = convertTime(theTime);\n let formattedDate = thisDate.fullYear;\n\n return formattedDate;\n };\n\n let Month = theTime => {\n let thisDate = convertTime(theTime);\n let formattedDate = thisDate.fullMonth;\n\n return formattedDate;\n };\n\n let Day = theTime => {\n let thisDate = convertTime(theTime);\n let formattedDate = thisDate.fullDay;\n\n return formattedDate;\n };\n\n let TimeOfDay = theTime => {\n let thisDate = convertTime(theTime);\n let formattedDate = thisDate.hour + ':' + thisDate.min + ':' + thisDate.SSec;\n\n return formattedDate;\n };\n\n let TimeOfDay12 = theTime => {\n let thisDate = convertTime(theTime);\n\n let formattedDate = workTweleve(thisDate.hour) + ':' + thisDate.min + ':' + thisDate.SSec + \" \" + thisDate.TT;\n\n return formattedDate;\n };\n\n let workTweleve = theHour => {\n let hours = theHour;\n if (hours > 0 && hours <= 12) {\n hours = hours;\n } else if (hours > 12) {\n hours = (hours - 12);\n } else if (hours == 0) {\n hours = \"12\";\n }\n\n return hours;\n };\n\n // Nerd stuff\n let doctorwho = function () {\n console.log('Spoilers!');\n let quotes = ['Bowties are cool.', 'Rule 1, the Doctor lies.', 'I’m a mad man with a box.', 'Run!', 'and Don’t Blink!', 'Fezzes are cool.', 'Never cruel or cowardly. Never give up, never give in.', 'Do what I do. Hold tight and pretend it’s a plan!', 'Rest is for the weary, sleep is for the dead', 'We’re all stories, in the end. Just make it a good one, eh?', 'Good men don’t need rules', 'Never run when you’re scared.', 'What’s the point in two hearts if you can’t be a bit forgiving now and then?', 'There’s no point in being grown up if you can’t be childish sometimes.', 'You want weapons? We’re in a library! Books! The best weapons in the world!', 'A straight line may be the shortest distance between two points, but it is by no means the most interesting', 'Come on, Rory! It isn’t rocket science, it’s just quantum physics!', 'Big flashy things have my name written all over them. Well… not yet, give me time and a crayon.', 'In 900 years of time and space, I’ve never met anyone who wasn’t important', 'Almost every species in the universe has an irrational fear of the dark. But they’re wrong. ‘Cause it’s not irrational.', 'Biting’s excellent. It’s like kissing – only there is a winner.', 'Never be certain of anything. It’s a sign of weakness.', 'Spoilers!', 'Geronimo', 'Hello Sweetie'];\n\n return quotes[Math.floor(Math.random() * quotes.length)];\n };\n\n return {\n dateparts: dateparts,\n patterned: patterned,\n ISO: ISO,\n ShortDate: ShortDate,\n LongDate: LongDate,\n MonthDate: MonthDate,\n MonthDateTime: MonthDateTime,\n MonthDateTime12: MonthDateTime12,\n DayMonthDate: DayMonthDate,\n Year: Year,\n Month: Month,\n Day: Day,\n TimeOfDay: TimeOfDay,\n TimeOfDay12: TimeOfDay12,\n doctorwho: doctorwho\n };\n\n}());\n\n"]}