Untitled diff

Created Diff never expires
13 removals
114 lines
70 additions
171 lines
(function iife() {
(function iife() {
"use strict";
"use strict";


function show(el) {
function show(el) {
el.classList.remove("hidea");
el.classList.remove("hidea");
el.classList.remove("hideb");
el.classList.remove("hideb");
el.classList.remove("hidec");
el.classList.remove("hidec");
el.classList.remove("hided");
el.classList.remove("hided");
el.classList.remove("hidee");
el.classList.remove("hidee");
el.classList.remove("hidef");
el.classList.remove("hidef");
}
}


function hide(el) {
function hide(el) {
el.classList.add("hidea");
el.classList.add("hideb");
}
}


function getButtonContainer(el) {
function getButtonContainer(el) {
while (el.classList.contains("playButtona") === false) {
while (el.classList.contains("playButtonb") === false) {
el = el.parentNode;
el = el.parentNode;
}
}
return el;
return el;
}
}


function hideAllButtons(button) {
function hideAllButtons(button) {
button.querySelectorAll(".playa, .pausea, .initialb, .pauseb, .speakerb, .playb, .playc, .pausec, .playd, .paused, .playe, .pausee, .playf, .pausef").forEach(hide);
button.querySelectorAll(".playa, .pausea, .initialb, .pauseb, .speakerb, .playb, .playc, .pausec, .playd, .paused, .playe, .pausee, .playf, .pausef").forEach(hide);
}
}


function getPlay(button) {
function getPlay(button) {
return button.querySelector(".playa, .playb, .playc, .playd, .playe, .playf");
return button.querySelector(".playa, .playb, .playc, .playd, .playe, .playf");
}
}


function getPause(button) {
function getPause(button) {
return button.querySelector(".pausea, .pauseb, .pausec, .paused, .pausee, .pausef");
return button.querySelector(".pausea, .pauseb, .pausec, .paused, .pausee, .pausef");
}
}


function getSpeaker(button) {
return button.querySelector(".speakerb");
}

function showPlayButton(button) {
function showPlayButton(button) {
var play = getPlay(button);
var play = getPlay(button);
hideAllButtons(button);
hideAllButtons(button);
show(play);
show(play);
button.classList.remove("active");
button.classList.remove("active");
}
}


function hideInitialOverlay(button) {
hide(button.querySelector(".initialb"));
showPlayButton(button);
}

function isPlaying(button) {
function isPlaying(button) {
var play = getPlay(button);
var play = getPlay(button);
return play.classList.contains("hidea") || play.classList.contains("hideb") || play.classList.contains("hidec") || play.classList.contains("hided") || play.classList.contains("hidee") || play.classList.contains("hidef");
return play.classList.contains("hidea") || play.classList.contains("hideb") || play.classList.contains("hidec") || play.classList.contains("hided") || play.classList.contains("hidee") || play.classList.contains("hidef");
}
}


function pauseAllButtons() {
function pauseAllButtons() {
var buttons = document.querySelectorAll(".playButtona, .playButtonb, .playButtonc, .playButtond, .playButtone, .playButtonf");
var buttons = document.querySelectorAll(".playButtona, .playButtonb, .playButtonc, .playButtond, .playButtone, .playButtonf");
buttons.forEach(function hidePause(button) {
buttons.forEach(function hidePause(button) {
if (isPlaying(button)) {
if (isPlaying(button)) {
showPlayButton(button);
showPlayButton(button);
}
}
});
});
}
}


function showPauseButton(button) {
function showPauseButton(button) {
var pause = getPause(button);
var pause = getPause(button);
pauseAllButtons();
pauseAllButtons();
hideAllButtons(button);
hideAllButtons(button);
show(pause);
show(pause);
button.classList.add("active");
button.classList.add("active");
button.classList.add("activated");
}

function showSpeakerButton(button) {
var speaker = getSpeaker(button);
hideAllButtons(button);
show(speaker);
}
}


function getAudio() {
function getAudio() {
return document.querySelector("audio");
return document.querySelector("audio");
}
}


function playAudio(player, src) {
function playAudio(player) {
player.volume = 1.0;
player.volume = 1.0;
player.setAttribute("src", src);
player.setAttribute("src", "http://hi5.1980s.fm/;");
player.play();
player.play();
}
}


function showButton(button, opts) {
function showButton(button, opts) {
if (opts.playing) {
if (opts.playing) {
showPlayButton(button);
showPlayButton(button);
} else {
} else {
showPauseButton(button);
showPauseButton(button);
}
}
}
}


function pauseAudio(player) {
function pauseAudio(player) {
player.pause();
player.pause();
}
}


function delay(milli, func) {
return setTimeout(func, milli);
}

function manageAudio(player, opts) {
function manageAudio(player, opts) {
if (opts.playing) {
if (opts.playing) {
pauseAudio(player);
pauseAudio(player);
} else {
} else {
playAudio(player, opts.src);
delay(opts.audioDelay, function delayAudio() {
playAudio(player, opts.src);
});
}
}
}
}


function togglePlayButton(button) {
function playButton(button, audioDelay) {
var player = getAudio();
var player = getAudio();
var playing = isPlaying(button);
var playing = isPlaying(button);
showButton(button, {
showButton(button, {
playing
playing
});
});
manageAudio(player, {
manageAudio(player, {
src: button.getAttribute("data-audio"),
playing,
playing
audioDelay
});
});
}
}


function showPause(button) {
if (isPlaying(button)) {
showPauseButton(button);
}
}

function showSpeaker(button) {
if (isPlaying(button)) {
showSpeakerButton(button);
}
}

function playButtonClickHandler(evt) {
function playButtonClickHandler(evt) {
var button = getButtonContainer(evt.target);
var button = getButtonContainer(evt.target);
togglePlayButton(button);
playButton(button);
}

function playButtonMouseoverHandler(evt) {
var button = getButtonContainer(evt.target);
showPause(button);
}

function playButtonMouseoutHandler(evt) {
var button = getButtonContainer(evt.target);
showSpeaker(button);
}

function initialOverlayClickHandler(evt) {
var button = getButtonContainer(evt.target);
var delayBeforeAudio = 1500;
hideInitialOverlay(button);
button.removeEventListener("click", initialOverlayClickHandler);
button.addEventListener("click", playButtonClickHandler);
button.addEventListener("mouseover", playButtonMouseoverHandler);
button.addEventListener("mouseout", playButtonMouseoutHandler);
playButton(button, delayBeforeAudio);
}
}
var playButton = document.querySelector(".playButtona");
var playButtons = document.querySelectorAll(".playButtonb");
playButton.addEventListener("click", playButtonClickHandler);
playButtons.forEach(function addInitialOverlayHandler(button) {
button.addEventListener("click", initialOverlayClickHandler);
});
}());
}());