// DragonPlay : Player Javascript
// https://web.silvercherry.fr/player.html
// Version 23.20.1 (Year, week, version) by SilverCherry (Marine Latour) - CC-BY
"use strict";document.addEventListener("DOMContentLoaded",(function(){var e=document.getElementsByTagName("audio"),t=document.getElementsByTagName("head")[0],n=document.createElement("style");n.innerHTML=":root{--player-col1:#FBFBFB;--player-col2:#333333;--player-odd:#CCCCCC;--player-even:#DDDDDD;--player-bar1:#333333;--player-bar2:#CCCCCC;--player-text:#333333}.player .timer{white-space:nowrap}.player,.player *{box-sizing:border-box;margin:0;padding:0;line-height:1;font-size:1em}audio{display:none}.player{display:flex;align-items:center;margin:20px;padding:5px;background-color:var(--player-col1);border-style:solid;border-width:2px 0;border-color:var(--player-col2);border-radius:5px;flex-wrap:wrap;justify-content:space-around;position:relative}.player::after{content:'';height:20px;width:40px;background-image:url('https://web.silvercherry.fr/img/DragonPlay.svg');background-repeat:no-repeat;background-size:contain}.player .pause span,.player .play span,.playlist .forward span,.playlist .backward span{display:inline-block;height:20px;border-style:solid;width:15px}.player .play span,.playlist .forward span:first-of-type{border-width:10px 0 10px 15px;border-color:transparent transparent transparent var(--player-col2)}.player .pause span{border-width:0 5px;border-color:transparent var(--player-col2)}.player .pause,.player .play,.playlist .forward,.playlist .backward{display:flex;align-items:center;width:15px;height:30px;margin:0 10px;cursor:pointer}.playlist .forward,.playlist .backward{width:20px}.player .play:hover span,.playlist .forward:hover span:first-of-type{opacity:.75}.player .pause:hover span{opacity:.75}.player .prog{overflow:hidden;cursor:pointer;max-width:100%;min-width:100px;height:20px;margin:0 10px;background-color:var(--player-bar2);flex-grow:1;border-radius:1px}.player .prog:hover .progBarre{opacity:.75}.player .progBarre{width:0;background-color:var(--player-bar1);height:20px;overflow:visible;text-indent:5px}.player .timer,.playlist{color:var(--player-text)}.player .volumeF{cursor:pointer;width:75px;height:10px;margin:5px 10px;background-color:var(--player-bar2);border-radius:1px;overflow:hidden}.player .volumeF:hover .volumeBarre{opacity:.75}.player .volumeBarre{width:100%;background-color:var(--player-bar1);height:10px}.playlist{margin:15px}.playlist .player{border-bottom:0;border-radius:5px 5px 0 0;margin:0}.playlist ul{background-color:var(--player-col1);margin:0;padding:0 5px 5px;list-style-type:none;border-style:solid;border-width:0 0 2px;border-color:var(--player-col2);border-radius:0 0 5px 5px}.playlist ul li{padding:5px;cursor:pointer}.playlist ul li:nth-of-type(odd){background-color:var(--player-odd)}.playlist ul li:nth-of-type(even){background-color:var(--player-even)}.playlist ul li:hover{opacity:.75}.playlist .backward span:first-of-type{border:0;border-right:5px solid var(--player-col2)}.playlist .forward span:last-of-type{border:0;border-left:5px solid var(--player-col2)}.playlist .backward span:last-of-type{border-width:10px 15px 10px 0;border-color:transparent var(--player-col2) transparent transparent}.playlist .backward:hover span:first-of-type,.playlist .forward:hover span:last-of-type{opacity:.75}.playlist .backward:hover span:last-of-type{opacity:.75}.player .title{margin:5px}.playlist ul li.active{text-decoration:underline;font-style:italic}.player .pochette{margin-right:25px;border:2px solid var(--player-col2)}.player .pochette img{max-width:150px;max-height:150px}",t.appendChild(n);for(var a,i=document.getElementsByClassName("play"),l=document.getElementsByClassName("pause"),r=document.getElementsByClassName("backward"),s=document.getElementsByClassName("forward"),o=0;o<=e.length-1;o++){e[o].insertAdjacentHTML("afterend",'
');var d=e[o].getAttribute("data-volume"),p=e[o].getAttribute("data-pochette");if(null!==e[o].title&&"playlist"!==e[o].parentNode.className&&(e[o].nextElementSibling.getElementsByClassName("title")[0].innerHTML=e[o].title),d&&d>=0&&d<=1&&(e[o].volume=d,e[o].nextElementSibling.getElementsByClassName("volumeF")[0].children[0].style.width=100*d+"%",e[o].nextElementSibling.getElementsByClassName("volumeF")[0].setAttribute("aria-label","Volume : "+d)),p){e[o].nextElementSibling.getElementsByClassName("pochette")[0].style.display=null;var c=e[o].nextElementSibling.getElementsByClassName("pochette")[0].getElementsByTagName("img")[0];c.setAttribute("src",p),c.setAttribute("alt","Pochette")}if("playlist"!==e[o].parentNode.className){var m=e[o].nextElementSibling.getElementsByClassName("forward")[0];e[o].nextElementSibling.removeChild(m);var u=e[o].nextElementSibling.getElementsByClassName("backward")[0];e[o].nextElementSibling.removeChild(u)}else for(var h=e[o].nextElementSibling.nextElementSibling.children,g=0;g0&&(n=n+("0"+a).slice(-2)+":"),n=n+("0"+i).slice(-2)+":",n+=("0"+l).slice(-2)}var E=document.getElementsByClassName("timer"),x=setInterval((function(){for(var t=0;t<=e.length-1;t++){var n=e[t].duration;e[t].error&&4===e[t].error.code?E[t].innerHTML="File not found":(!e[t].hasAttribute("preload")||e[t].hasAttribute("preload")&&"none"!==e[t].getAttribute("preload"))&&isNaN(n)?E[t].innerHTML="load":e[t].hasAttribute("preload")&&"none"===e[t].getAttribute("preload")?E[t].innerHTML="--:--":E[t].innerHTML=v(n)}}),1e3);setTimeout((function(){clearInterval(x);for(var t=0;t<=e.length-1;t++)"load"===E[t].innerHTML&&(E[t].innerHTML="--:--")}),10100);var f=document.getElementsByClassName("progBarre"),N=[],A=[];function S(t=!1,n=!1){!0===t?clearInterval(a):a=setInterval((function(){for(var t=0;t<=e.length-1;t++){A[t]=N[t],N[t]=e[t].currentTime,A[t]!=N[t]||e[t].paused?0!==N[t]&&(E[t].innerHTML=(e[t].duration>3600&&N[t]<3600?"00:":"")+v(N[t])):E[t].innerHTML="load",isNaN(e[t].duration)&&(E[t].innerHTML="--:--"),e[t].error&&4===e[t].error.code&&(C(e[t]),E[t].innerHTML="File not found");var a=e[t].currentTime/e[t].duration*100;if(f[t].style.width=a+"%",N[t]!==e[t].duration||!1!==n||e[t].hasAttribute("loop")){if(N[t]===e[t].duration&&!0===n){for(var i=e[t].parentNode,l=0;l<=D.length-1;l++)if(i===D[l]){var o=l;P[l].src=V[l],""!=z[l]&&(P[l].setAttribute("data-pochette",z[l]),P[l].nextElementSibling.getElementsByClassName("pochette")[0].getElementsByTagName("img")[0].src=z[l]);for(var d=0;d<=i.getElementsByTagName("ul")[0].children.length-1;d++){var p=i.getElementsByTagName("ul")[0];null!==p.children[d].nextElementSibling&&p.children[d].nextElementSibling.id===V[l]?(P[l].nextElementSibling.getElementsByClassName("title")[0].innerHTML=p.children[d].nextElementSibling.innerHTML,P[l].title=p.children[d].nextElementSibling.innerHTML,p.children[d].nextElementSibling.nextElementSibling?(s[l].id=p.children[d].nextElementSibling.nextElementSibling.id,p.children[d].nextElementSibling.nextElementSibling.hasAttribute("data-pochette")&&s[l].setAttribute("data-pochette",p.children[d].nextElementSibling.nextElementSibling.getAttribute("data-pochette"))):(s[l].id=p.children[0].id,p.children[0].hasAttribute("data-pochette")&&s[l].setAttribute("data-pochette",p.children[0].getAttribute("data-pochette"))),r[l].id=p.children[d].id,p.children[d].hasAttribute("data-pochette")&&r[l].setAttribute("data-pochette",p.children[d].getAttribute("data-pochette")),p.children[d].classList.remove("active"),p.children[d].nextElementSibling.classList.add("active")):null===p.children[d].nextElementSibling&&p.children[0].id===V[l]&&(P[l].nextElementSibling.getElementsByClassName("title")[0].innerHTML=p.children[0].innerHTML,P[l].title=p.children[0].innerHTML,s[l].id=p.children[1].id,r[l].id=p.lastElementChild.id,p.lastElementChild.hasAttribute("data-pochette")&&r[l].setAttribute("data-pochette",p.lastElementChild.getAttribute("data-pochette")),p.children[d].classList.remove("active"),p.children[0].classList.add("active"))}}e[t].play(),Q(e[t]),w(o)}}else C(e[t]),S(!0)}}),500)}function C(e){e.currentTime=0,e.pause(),e.nextElementSibling.getElementsByClassName("progBarre")[0].style.width="0%",e.nextElementSibling.getElementsByClassName("timer")[0].innerHTML="00:00:00",e.nextElementSibling.getElementsByClassName("play")[0].style.display=null,e.nextElementSibling.getElementsByClassName("pause")[0].style.display="none"}function w(e){for(var t=0;t<=D.length-1;t++)for(var n=D[t].getElementsByTagName("ul")[0],a=0;a<=n.childElementCount-1;a++){if(e===t&&n.children[a].id===V[t]&&null!==n.children[a].nextElementSibling)return V[t]=n.children[a].nextElementSibling.id,void(n.children[a].nextElementSibling.hasAttribute("data-pochette")&&(z[t]=n.children[a].nextElementSibling.getAttribute("data-pochette")));e===t&&null===n.children[a].nextElementSibling&&(V[t]=n.children[0].id,n.children[0].hasAttribute("data-pochette")&&(z[t]=n.children[0].getAttribute("data-pochette")))}}var B=document.getElementsByClassName("prog");for(o=0;o<=e.length-1;o++){function L(e){I(e,this,"prog"),this.addEventListener("pointermove",T),this.addEventListener("pointerup",k,{once:!0})}function T(e){I(e,this,"prog")}function k(e){this.removeEventListener("pointermove",T)}B[o].addEventListener("pointerdown",L),B[o].addEventListener("keydown",(function(e){var t=e.which||e.keyCode;38!==t&&40!==t||e.preventDefault(),39!==t&&107!==t&&38!==t||M(this,"up"),37!==t&&109!==t&&40!==t||M(this,"down")}),!1)}function M(e,t){var n=e.parentNode.previousElementSibling;"up"===t?n.duration>n.currentTime+5?n.currentTime+=5:n.currentTime=n.duration-1:"down"===t&&(n.currentTime>5?n.currentTime-=5:n.currentTime=0);var a=100*n.currentTime/n.duration;e.children[0].style.width=a+"%"}var H=document.getElementsByClassName("volumeF");for(o=0;o<=e.length-1;o++){function L(e){I(e,this,"volume"),this.addEventListener("pointermove",T),this.addEventListener("pointerup",k,{once:!0})}function T(e){I(e,this,"volume")}function k(e){this.removeEventListener("pointermove",T)}H[o].addEventListener("pointerdown",L),H[o].addEventListener("keydown",(function(e){var t=e.which||e.keyCode;38!==t&&40!==t||e.preventDefault(),39!==t&&107!==t&&38!==t||F(this,"up"),37!==t&&109!==t&&40!==t||F(this,"down")}),!1)}function F(e,t){var n=e.parentNode.previousElementSibling;"up"===t?n.volume<.9?n.volume+=.1:n.volume=1:"down"===t&&(n.volume>.1?n.volume-=.1:n.volume=0);var a=100*n.volume;e.children[0].style.width=a+"%",e.setAttribute("aria-label","Volume : "+n.volume.toFixed(2))}function I(e,t,n){var a,i,l,r,s,o,d=100*(e.clientX-(a=t.getBoundingClientRect(),i=document.body,l=document.documentElement,r=window.pageXOffset||l.scrollLeft||i.scrollLeft,s=l.clientLeft||i.clientLeft||0,o=a.left+r-s,Math.round(o)))/t.clientWidth,p=t.parentNode.previousElementSibling;if(d<0&&(d=0),d>100&&(d=100),d>=0&&d<=100){if("volume"===n){p.volume=d/100;var c=100*p.volume;t.setAttribute("aria-label","Volume : "+p.volume.toFixed(2))}else if("prog"===n){p.currentTime=d*p.duration/100;c=100*p.currentTime/p.duration}t.children[0].style.width=c+"%"}}for(var D=document.getElementsByClassName("playlist"),P=Array(),V=Array(),z=Array(),j=0;j<=D.length-1;j++){var O=D[j].getElementsByTagName("ul")[0];P[j]=D[j].getElementsByTagName("audio")[0],P[j].src=O.children[0].id,O.children[0].hasAttribute("data-pochette")&&P[j].setAttribute("data-pochette",O.children[0].getAttribute("data-pochette")),O.children[0].classList.add("active"),P[j].nextElementSibling.getElementsByClassName("title")[0].innerHTML=O.children[0].innerHTML,P[j].title=O.children[0].innerHTML,O.children.length>1?(V[j]=O.children[1].id,O.children[1].hasAttribute("data-pochette")?z[j]=O.children[1].getAttribute("data-pochette"):z[j]=""):(V[j]=O.children[0].id,O.children[0].hasAttribute("data-pochette")?z[j]=O.children[0].getAttribute("data-pochette"):z[j]=""),s[j].id=V[j],s[j].setAttribute("data-pochette",z[j]),r[j].id=O.lastElementChild.id,O.lastElementChild.hasAttribute("data-pochette")&&r[j].setAttribute("data-pochette",O.lastElementChild.getAttribute("data-pochette"));for(var X=0;X<=O.childElementCount-1;X++)O.children[X].addEventListener("click",(function(){q(this)}),!1),O.children[X].addEventListener("keypress",(function(e){13===(e.which||e.keyCode)&&q(this)}));var R=D[j].getElementsByClassName("backward")[0];R.addEventListener("click",(function(){G(this)}),!1),R.addEventListener("keypress",(function(e){13===(e.which||e.keyCode)&&G(this)}));var W=D[j].getElementsByClassName("forward")[0];W.addEventListener("click",(function(){J(this)})),W.addEventListener("keypress",(function(e){13===(e.which||e.keyCode)&&J(this)}))}function q(e){clearInterval(a),clearInterval(x);for(var t=e.parentNode.parentNode,n=0;n<=D.length-1;n++)if(t===D[n]){P[n]=e.parentNode.parentNode.getElementsByTagName("audio")[0],P[n].src=e.id,e.hasAttribute("data-pochette")&&(P[n].nextElementSibling.getElementsByClassName("pochette")[0].getElementsByTagName("img")[0].src=e.getAttribute("data-pochette")),P[n].nextElementSibling.getElementsByClassName("title")[0].innerHTML=e.innerHTML,P[n].title=e.innerHTML,K(n,e);break}}function G(e){clearInterval(a),clearInterval(x);for(var t=e.parentNode.parentNode,n=0;n<=D.length-1;n++)t===D[n]&&(j=n);O=D[j].getElementsByTagName("ul")[0];for(var i=0;i<=O.childElementCount-1;i++)if(e.id===O.children[i].id)var l=O.children[i],s=O.children[i].innerHTML;P[j]=e.parentNode.parentNode.getElementsByTagName("audio")[0],P[j].src=r[j].id,r[j].hasAttribute("data-pochette")&&""!=r[j].getAttribute("data-pochette")&&(P[j].nextElementSibling.getElementsByClassName("pochette")[0].getElementsByTagName("img")[0].src=r[j].getAttribute("data-pochette")),P[j].nextElementSibling.getElementsByClassName("title")[0].innerHTML=s,P[j].title=s,K(j,l)}function J(e){clearInterval(a),clearInterval(x);for(var t=e.parentNode.parentNode,n=0;n<=D.length-1;n++)t===D[n]&&(j=n);O=D[j].getElementsByTagName("ul")[0];for(var i=0;i<=O.childElementCount-1;i++)if(e.id===O.children[i].id)var l=O.children[i],r=O.children[i].innerHTML;P[j]=e.parentNode.parentNode.getElementsByTagName("audio")[0],P[j].src=s[j].id,s[j].hasAttribute("data-pochette")&&""!=s[j].getAttribute("data-pochette")&&(P[j].nextElementSibling.getElementsByClassName("pochette")[0].getElementsByTagName("img")[0].src=s[j].getAttribute("data-pochette")),P[j].nextElementSibling.getElementsByClassName("title")[0].innerHTML=r,P[j].title=r,K(j,l)}function K(t,n){for(var a=n.parentNode.children,i=0;i<=a.length-1;i++)a[i].classList.remove("active");n.classList.add("active"),null!==n.nextElementSibling?(V[t]=n.nextElementSibling.id,s[t].id=V[t],n.nextElementSibling.hasAttribute("data-pochette")&&(z[t]=n.nextElementSibling.getAttribute("data-pochette"),s[t].setAttribute("data-pochette",n.nextElementSibling.getAttribute("data-pochette")))):(V[t]=n.parentNode.children[0].id,s[t].id=V[t],n.parentNode.children[0].hasAttribute("data-pochette")&&(z[t]=n.parentNode.children[0].getAttribute("data-pochette"),s[t].setAttribute("data-pochette",n.parentNode.children[0].getAttribute("data-pochette")))),null!==n.previousElementSibling?(r[t].id=n.previousElementSibling.id,n.previousElementSibling.hasAttribute("data-pochette")&&r[t].setAttribute("data-pochette",n.previousElementSibling.getAttribute("data-pochette"))):(r[t].id=n.parentNode.lastElementChild.id,n.parentNode.lastElementChild.hasAttribute("data-pochette")&&r[t].setAttribute("data-pochette",n.parentNode.lastElementChild.getAttribute("data-pochette")));for(var l=0;l<=e.length-1;l++)e[l].pause(),e[l].nextElementSibling.getElementsByClassName("play")[0].style.display=null,e[l].nextElementSibling.getElementsByClassName("pause")[0].style.display="none";P[t].nextElementSibling.getElementsByClassName("play")[0].style.display="none",P[t].nextElementSibling.getElementsByClassName("pause")[0].style.display=null,P[t].play(),Q(P[t]),S(!1,!0)}function Q(e){if("mediaSession"in navigator){var t="",n="",a="",i="";void 0!==e.title&&(t=e.title),null!==e.getAttribute("data-artiste")&&(n=e.getAttribute("data-artiste")),null!==e.getAttribute("data-album")&&(a=e.getAttribute("data-album")),null!==e.getAttribute("data-pochette")&&(i=e.getAttribute("data-pochette")),navigator.mediaSession.metadata=new MediaMetadata({title:t,artist:n,album:a,artwork:[{src:i,sizes:"96x96",type:"image/png"}]}),navigator.mediaSession.setActionHandler("play",(()=>{y(e.nextElementSibling.getElementsByClassName("play")[0])})),navigator.mediaSession.setActionHandler("pause",(()=>{b(e.nextElementSibling.getElementsByClassName("pause")[0])})),"playlist"===e.parentNode.className?(navigator.mediaSession.setActionHandler("previoustrack",(()=>{G(e.nextElementSibling.getElementsByClassName("backward")[0])})),navigator.mediaSession.setActionHandler("nexttrack",(()=>{J(e.nextElementSibling.getElementsByClassName("forward")[0])}))):(navigator.mediaSession.setActionHandler("previoustrack",null),navigator.mediaSession.setActionHandler("nexttrack",null))}}}));