{"version":3,"sources":["scripts.js"],"names":["app","init","tour","video","videopreview","hamburger","slider","galleryModal","dropdown","showLyrics","accessibleNavDropdown","tourContainer","$","ajax","type","url","success","result","parseData","events","responseData","let","items","length","css","i","event","LiveEvent","date","day","getDate","dayString","slice","monthIndex","getMonth","year","getFullYear","Date","EventDate","replace","dateWrap","venue","addClass","append","Venue","venueLink","city","City","region","Region","country","Country","note","EventListNote","cityParagraph","locationWrap","ticketText","ticketEvent","ExternalTicketUrl","ticketLink","ticketWrap","attr","listItem","listItemHtml","outerHTML","addToPage","div","id","v","document","getElementsByClassName","n","createElement","setAttribute","dataset","title","innerHTML","onclick","videoIframe","appendChild","iframe","this","parentNode","replaceChild","on","toggleClass","focusout","window","width","removeClass","focus","keyup","e","key","hasClass","plusSlides","showSlides","slideIndex","autoAdvance","x","style","display","timerId","setInterval","click","clearInterval","querySelectorAll","imageModal","querySelector","closeButton","previousActiveElement","closeImageModal","classList","remove","data","activeElement","add","addEventListener","keydown","keyCode","next","forEach","button","console","log","closest","toggle","ready","OCC","Membership","IsLoggedIn","toggleMembershipVisibility","UserName"],"mappings":"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","file":"main.min.js","sourcesContent":["var app = {};\r\n\r\napp.init = function () {\r\n app.tour();\r\n app.video();\r\n app.videopreview();\r\n app.hamburger();\r\n app.slider();\r\n app.galleryModal();\r\n app.dropdown();\r\n app.showLyrics();\r\n app.accessibleNavDropdown();\r\n};\r\n\r\n\r\napp.tour = function () {\r\n const tourContainer = $(\"#tourDates\");\r\n\r\n // ATTN: PATH TO PRODUCTION API NEEDS TO BE EDITED HERE\r\n $.ajax({\r\n type: \"GET\",\r\n url: \"https://tour.jimcuddy.com/api/liveevents/jimcuddy\",\r\n success: function (result) {\r\n parseData(result);\r\n },\r\n });\r\n\r\n function parseData(responseData) {\r\n const events = responseData;\r\n let items = \"\";\r\n\r\n if (events.length === 0) $(\"#noDates\").css(\"display\", \"block\");\r\n \r\n //change middle argument to events.length instead of 5 if you want to show all\r\n for (let i = 0; i < 5; i++) {\r\n let event = events[i].LiveEvent;\r\n\r\n // Get the Date and put it in a
\r\n let date = formatDate(\r\n new Date(event.EventDate.replace(/-/g, \"/\").replace(/T.+/, \"\"))\r\n );\r\n let dateWrap = $(\"
\");\r\n dateWrap.addClass(\"date-wrapper\");\r\n dateWrap.append(date);\r\n\r\n // Get the Venue and Location Details and put it in a
\r\n let venue = event.Venue;\r\n let venueLink = $(\"

\");\r\n // venueLink.attr(\"href\", event.VenueUrl);\r\n // venueLink.attr(\"target\", \"_blank\");\r\n // venueLink.addClass(\"venue-link\");\r\n venueLink.append(venue);\r\n //city\r\n let city = event.City;\r\n let region = event.Region;\r\n let country = event.Country;\r\n let note = event.EventListNote;\r\n let cityParagraph = $('

');\r\n cityParagraph.append(city, `, `);\r\n if (region) cityParagraph.append(region, `, `);\r\n cityParagraph.append(country);\r\n cityParagraph.append(\"
\", note);\r\n //wrap\r\n let locationWrap = $(\"

\");\r\n locationWrap.addClass(\"venue-city-wrapper\");\r\n locationWrap.append(venueLink, cityParagraph);\r\n\r\n // Get the Ticket Details and put it in a link\r\n let ticketText;\r\n let ticketEvent;\r\n\r\n if (event.ExternalTicketUrl)\r\n (ticketText = \"Buy Tickets\"), (ticketEvent = 'https://tour.jimcuddy.com/');\r\n\r\n let ticketLink = $(\"\");\r\n ticketLink.addClass(\"button-style-1\");\r\n ticketLink.attr(\"href\", ticketEvent);\r\n ticketLink.attr(\"target\", \"_blank\");\r\n ticketLink.append(ticketText);\r\n\r\n // if ticket purchase button is included in this tour widget, include ticketWrap in listItem.append below\r\n let ticketWrap = $(\"
\");\r\n ticketWrap.addClass(\"ticket-wrapper\");\r\n if (event.ExternalTicketUrl) ticketWrap.append(ticketLink);\r\n\r\n //Get Facebook RSVP and put it in a link\r\n // let fbText;\r\n // let fbEvent;\r\n // if (event.FacebookEventId)\r\n // (fbText =\r\n // ' RSVP'),\r\n // (fbEvent =\r\n // \"https://www.facebook.com/events/\" + event.FacebookEventId);\r\n // let fbLink = $(\"\");\r\n // fbLink.addClass(\"button-style-1\");\r\n // fbLink.attr(\"href\", fbEvent);\r\n // fbLink.attr(\"target\", \"_blank\");\r\n // fbLink.append(fbText);\r\n\r\n // if facebook is included in this tour widget, include fbWrap in listItem.append below\r\n // let fbWrap = $(\"
\");\r\n // fbWrap.addClass(\"facebook-wrapper\");\r\n // if (event.FacebookEventId) fbWrap.append(fbLink);\r\n\r\n let listItem = $(\"
  • \");\r\n listItem.addClass(\"tour-date\");\r\n //HERE is where all the possible columns get added to the li\r\n listItem.append(dateWrap, locationWrap, ticketWrap);\r\n\r\n let listItemHtml = listItem[0].outerHTML;\r\n items += listItemHtml;\r\n }\r\n addToPage(items);\r\n }\r\n\r\n function addToPage(items) {\r\n tourContainer.append(items);\r\n }\r\n\r\n function formatDate(date) {\r\n const monthNames = [\r\n \"January\",\r\n \"February\",\r\n \"March\",\r\n \"April\",\r\n \"May\",\r\n \"June\",\r\n \"July\",\r\n \"August\",\r\n \"September\",\r\n \"October\",\r\n \"November\",\r\n \"December\",\r\n ];\r\n\r\n let day = date.getDate();\r\n let dayString = (\"0\" + day).slice(-2);\r\n let monthIndex = date.getMonth();\r\n let year = date.getFullYear();\r\n\r\n return (\r\n '' +\r\n monthNames[monthIndex] +\r\n \" \" +\r\n '' +\r\n dayString +\r\n \", \" +\r\n '' +\r\n year +\r\n \"\"\r\n );\r\n }\r\n};\r\n\r\n//Youtube Video Embed\r\napp.video = function () {\r\n var div,\r\n n,\r\n v = document.getElementsByClassName(\"youtube-player-single\");\r\n for (n = 0; n < v.length; n++) {\r\n div = document.createElement(\"button\");\r\n div.setAttribute(\"data-id\", v[n].dataset.id);\r\n div.setAttribute(\"data-title\", v[n].dataset.title);\r\n div.setAttribute(\"title\", v[n].dataset.title);\r\n div.setAttribute(\"class\", \"video-player-button\");\r\n div.innerHTML = videoThumb(v[n].dataset.id);\r\n div.onclick = videoIframe;\r\n v[n].appendChild(div);\r\n }\r\n\r\n function videoThumb(id) {\r\n let imgAlt = v[n].dataset.title;\r\n var thumb = `\"${imgAlt}\"`,\r\n play = '
    ';\r\n return thumb.replace(\"ID\", id) + play;\r\n }\r\n\r\n function videoIframe() {\r\n var iframe = document.createElement(\"iframe\");\r\n var embed = \"https://www.youtube.com/embed/ID?autoplay=1&mute=1\";\r\n iframe.setAttribute(\"src\", embed.replace(\"ID\", this.dataset.id));\r\n iframe.setAttribute(\"title\", this.dataset.title);\r\n iframe.setAttribute(\"frameborder\", \"0\");\r\n iframe.setAttribute(\"allowfullscreen\", \"1\");\r\n this.parentNode.replaceChild(iframe, this);\r\n }\r\n};\r\n\r\n// variation of video function for landing pages, does not play video inline\r\napp.videopreview = function () {\r\n var div,\r\n n,\r\n v = document.getElementsByClassName(\"youtube-player-preview\");\r\n for (n = 0; n < v.length; n++) {\r\n div = document.createElement(\"div\");\r\n div.setAttribute(\"data-id\", v[n].dataset.id);\r\n div.setAttribute(\"data-title\", v[n].dataset.title);\r\n div.innerHTML = videoThumb(v[n].dataset.id);\r\n v[n].appendChild(div);\r\n }\r\n\r\n function videoThumb(id) {\r\n let imgAlt = v[n].dataset.title;\r\n var thumb = `\"${imgAlt}\"`;\r\n return thumb.replace(\"ID\", id);\r\n }\r\n};\r\n\r\n//Mobile Hamburger Menu\r\napp.hamburger = function () {\r\n $(\".hamburger\").on(\"click\", function () {\r\n let isNavOpen = $(\".body-with-open-nav\");\r\n\r\n if (isNavOpen.length > 0) {\r\n $(\".mobile-wrapper\").attr(\"aria-hidden\", \"true\");\r\n } else {\r\n $(\".mobile-wrapper\").attr(\"aria-hidden\", \"false\");\r\n }\r\n $(\".hamburger\").toggleClass(\"is-active\");\r\n $(\"body\").toggleClass(\"body-with-open-nav\");\r\n });\r\n\r\n // Tabbing through last menu item closes the modal\r\n //\r\n //ATTN: IF THE HEADER CONTENT HAS BEEN CHANGED FROM STARTER THEME DEFAULT, CORRECT HTML SELECTOR AND BROWSER WIDTH AT WHICH HEADER SWITCHES TO MOBILE NEEDS TO BE EDITED HERE\r\n //\r\n // direct child selector is included to account for sub menus\r\n $(\".header-primary-nav > li:last-child a\").focusout(function () {\r\n let width = $(window).width();\r\n if (width < 993) {\r\n $(\".header-mobile-wrapper\").attr(\"aria-expanded\", \"false\");\r\n $(\"body\").removeClass(\"body-with-open-nav\");\r\n $(\".hamburger\").toggleClass(\"is-active\");\r\n $(\".hamburger\").focus();\r\n }\r\n });\r\n\r\n // Pressing on the escape key closes the mobile menu\r\n $(document).keyup(function (e) {\r\n if (e.key === \"Escape\") {\r\n if ($(\"body\").hasClass(\"body-with-open-nav\")) {\r\n $(\".header-mobile-wrapper\").attr(\"aria-expanded\", \"false\");\r\n $(\"body\").removeClass(\"body-with-open-nav\");\r\n $(\".hamburger\").toggleClass(\"is-active\");\r\n $(\".hamburger\").focus();\r\n }\r\n }\r\n });\r\n};\r\n\r\n// default slider with auto advance\r\napp.slider = function () {\r\n if ($(\".slider\").length) {\r\n var slideIndex = 0;\r\n showSlides(slideIndex);\r\n\r\n function plusSlides(n) {\r\n showSlides((slideIndex += n));\r\n }\r\n\r\n function autoAdvance() {\r\n plusSlides(1);\r\n }\r\n\r\n autoAdvance();\r\n\r\n var timerId = setInterval(autoAdvance, 9000);\r\n\r\n $(\".slider-prev\").click(function () {\r\n plusSlides(-1);\r\n clearInterval(timerId);\r\n });\r\n $(\".slider-next\").click(function () {\r\n plusSlides(1);\r\n clearInterval(timerId);\r\n });\r\n $(\".pause-slideshow\").on(\"click\", function () {\r\n clearInterval(timerId);\r\n $(this).css(\"display\", \"none\");\r\n $(\".play-slideshow\").css(\"display\", \"flex\");\r\n });\r\n $(\".play-slideshow\").on(\"click\", function () {\r\n plusSlides(1);\r\n timerId = setInterval(autoAdvance, 9000);\r\n $(this).css(\"display\", \"none\");\r\n $(\".pause-slideshow\").css(\"display\", \"flex\");\r\n });\r\n\r\n function showSlides(n) {\r\n var i;\r\n var x = document.getElementsByClassName(\"hero-slides\");\r\n if (n > x.length) {\r\n slideIndex = 1;\r\n }\r\n if (n < 1) {\r\n slideIndex = x.length;\r\n }\r\n for (i = 0; i < x.length; i++) {\r\n x[i].style.display = \"none\";\r\n }\r\n x[slideIndex - 1].style.display = \"block\";\r\n }\r\n\r\n //If only one slide exists, don't show the prev + next + pause buttons\r\n const slides = document.querySelectorAll(\".hero-slides\");\r\n if (slides.length < 2) {\r\n $(\".slider-button\").css(\"display\", \"none\");\r\n }\r\n }\r\n};\r\n\r\n//slider and modal as used on a single gallery page. Does not autoadvance.\r\napp.galleryModal = function () {\r\n const imageModal = document.querySelector(\".gallery-modal\");\r\n const closeButton = document.querySelector(\".gallery-modal-close\");\r\n\r\n let previousActiveElement;\r\n\r\n if (imageModal) {\r\n $(\".preview-link\").focus(function () {\r\n if ($(\".gallery-modal\").hasClass(\"modal-showing\")) {\r\n closeImageModal();\r\n }\r\n });\r\n\r\n let slideIndex = null;\r\n\r\n $(\".preview-link\").on(\"click\", function () {\r\n slideIndex = $(this).data(\"index\");\r\n showSlides((slideIndex += 1));\r\n previousActiveElement = document.activeElement;\r\n imageModal.classList.add(\"modal-showing\");\r\n $(\"body\").addClass(\"body-with-open-modal\");\r\n $(imageModal).attr(\"aria-hidden\", \"false\");\r\n closeButton.focus();\r\n return previousActiveElement;\r\n });\r\n\r\n function plusSlides(n) {\r\n showSlides((slideIndex += n));\r\n }\r\n\r\n $(\".slider-prev\").click(function () {\r\n plusSlides(-1);\r\n });\r\n $(\".slider-next\").click(function () {\r\n plusSlides(1);\r\n });\r\n\r\n function showSlides(n) {\r\n let i;\r\n let x = document.getElementsByClassName(\"one-modal-img\");\r\n if (n > x.length) {\r\n slideIndex = 1;\r\n }\r\n if (n < 1) {\r\n slideIndex = x.length;\r\n }\r\n for (i = 0; i < x.length; i++) {\r\n x[i].style.display = \"none\";\r\n }\r\n x[slideIndex - 1].style.display = \"block\";\r\n }\r\n\r\n closeButton.addEventListener(\"click\", closeImageModal);\r\n\r\n //ESCAPE BUTTON CLOSES MODAL\r\n $(document).keydown(function (event) {\r\n if (event.keyCode == 27) {\r\n closeImageModal();\r\n }\r\n });\r\n\r\n function closeImageModal() {\r\n imageModal.classList.remove(\"modal-showing\");\r\n $(\"body\").removeClass(\"body-with-open-modal\");\r\n $(imageModal).attr(\"aria-hidden\", \"true\");\r\n previousActiveElement.focus();\r\n }\r\n }\r\n};\r\n\r\napp.dropdown = function () {\r\n //dropdown general functionality\r\n $(\".dropdown\").click(function () {\r\n if ($(this).hasClass(\"button-with-open-content\")) {\r\n $(this).next(\".dropdown-content\").removeClass(\"dropdown-is-open\");\r\n $(this).attr(\"aria-expanded\", \"false\");\r\n $(this).removeClass(\"button-with-open-content\");\r\n } else {\r\n $(this).next(\".dropdown-content\").addClass(\"dropdown-is-open\");\r\n $(this).attr(\"aria-expanded\", \"true\");\r\n $(this).addClass(\"button-with-open-content\");\r\n }\r\n });\r\n};\r\n\r\napp.showLyrics = function () {\r\n\tlet buttons = document.querySelectorAll('.each-track .lyrics-button');\r\n buttons.forEach(function(button) {\r\n button.addEventListener('click', function() {\r\n console.log('clicked')\r\n let listItem = button.closest('.each-track');\r\n console.log(listItem)\r\n let lyricsElement = listItem.querySelector('.lyrics');\r\n lyricsElement.classList.toggle('hide');\r\n });\r\n });\r\n }\r\n\r\napp.accessibleNavDropdown = function () {\r\n $(\".menu-item-has-children>a\")\r\n .attr(\"aria-haspopup\", \"true\")\r\n .attr(\"aria-expanded\", \"false\");\r\n\r\n $(\".menu-item-has-children\").on(\"mouseenter focusin\", function () {\r\n $(\".menu-item-has-children>a\").attr(\"aria-expanded\", \"true\");\r\n });\r\n\r\n $(\".menu-item-has-children\").on(\"mouseleave focusout\", function () {\r\n $(\".menu-item-has-children>a\").attr(\"aria-expanded\", \"false\");\r\n });\r\n};\r\n\r\n$(document).ready(function () {\r\n //call all the app functions\r\n app.init();\r\n if (OCC.Membership.IsLoggedIn()) {\r\n toggleMembershipVisibility(true, OCC.Membership.UserName());\r\n } else {\r\n toggleMembershipVisibility(false);\r\n }\r\n});"]}