/* * To change this template, choose Tools | Templates * and open the template in the editor. */ function pageLoad() { breadTitle = document.getElementById('breadcrumbTitle'); player = document.getElementById('player'); mediaSource = document.getElementById('playersource'); episodeInfo = document.getElementById('episodeInfo'); trackInfo = document.getElementById('trackInfo'); chapterInfo = document.getElementById('chapterInfo'); player.addEventListener('timeupdate', timeUpdate); player.addEventListener('ended', trackEnded); var episodeHTML = document.getElementById('episode'); var episodeJson = episodeHTML.contentDocument.body.firstChild.innerHTML; episodeObj = jsonParse(episodeJson); episodeHTML.style.display="none"; var eListHTML = document.getElementById('eList'); var eListJson = eListHTML.contentDocument.body.firstChild.innerHTML; eListObj = jsonParse(eListJson); eListHTML.style.display="none"; createEList(); actTitle = episodeObj.title; actTrack = 0; actChapter = 0; createPlayList(); select = document.getElementById('list' + actTrack + '.' + actChapter); select.setAttribute("class", "select"); jumpById(actTrack, actChapter); } function createPlayList() { var playList = document.getElementById('playList'); var entryNumber = 1; var listEntries = ""; for (var track in episodeObj.tracks) { var trackObj = episodeObj.tracks[track]; if (trackObj.chapters) { for (var chapter in trackObj.chapters) { var chapterObj = trackObj.chapters[chapter]; listEntries = listEntries + "
  • " + entryNumber++ + ": " + chapterObj.title + "
  • "; } } else { listEntries = listEntries + "
  • " + entryNumber++ + ": " + trackObj.title + "
  • "; } } playList.innerHTML = listEntries; } function jumpById(trackId, chapterId) { if (!episodeObj.tracks || trackId >= episodeObj.tracks.length) { return; } var trackObj = episodeObj.tracks[trackId]; var trackSrc = trackObj.src; var trackTime = 0; if (trackObj.chapters && chapterId < trackObj.chapters.length) { var chapterObj = trackObj.chapters[chapterId]; trackTime = chapterObj.time; } actTrack = trackId; actChapter = chapterId; trackChapChanged(actTrack, actChapter); mediaSource.src = trackSrc + "#t=" + trackTime; player.load(); } function timeUpdate() { var oldChapter = actChapter; actChapter = calcChapterId(actTrack, player.currentTime); if (actChapter !== oldChapter) { trackChapChanged(actTrack, actChapter); } } function trackChapChanged(trackId, chapterId) { episodeInfo.innerHTML = ""; trackInfo.innerHTML = ""; chapterInfo.innerHTML = ""; episodeInfo.innerHTML = unescape(episodeObj.info); var trackObj = episodeObj.tracks[trackId]; trackInfo.innerHTML = unescape(trackObj.info); var actNewTitle = episodeObj.title + " -> " + trackObj.title; if (trackObj.chapters && chapterId < trackObj.chapters.length) { var chapterObj = trackObj.chapters[chapterId]; chapterInfo.innerHTML = unescape(chapterObj.info); actNewTitle = actNewTitle + " -> " + chapterObj.title; } select.setAttribute("class", ""); select = document.getElementById('list' + actTrack + '.' + actChapter); select.setAttribute("class", "select"); breadTitle.innerHTML = actNewTitle; } function calcChapterId(trackId, time) { var trackObj = episodeObj.tracks[trackId]; var newChapId = 0; for (var chapter in trackObj.chapters) { var chapterObj = trackObj.chapters[chapter]; if (chapterObj.time <= time) { newChapId = chapter; } else { return newChapId; } } return newChapId; } function trackEnded() { jumpById(actTrack+1, 0); } function createEList() { var epiList = document.getElementById('epiList'); var entryNumber = 1; var listEntries = ""; for (var item in eListObj.episodes) { var itemObj = eListObj.episodes[item]; listEntries = listEntries + "
  • " + entryNumber++ + ": " + itemObj.title + "
  • "; } epiList.innerHTML = listEntries; }