/* * To change this template, choose Tools | Templates * and open the template in the editor. */ function pageLoad() { bread = document.getElementById('breadcrumb'); 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); actTitle = episodeObj.title; actTrack = 0; actChapter = 0; createPlayList(); jumpById(actTrack, actChapter); select = document.getElementById('list' + actTrack + '.' + actChapter); select.setAttribute("class", "select"); } 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; mediaSource.src = trackSrc + "#t=" + trackTime; player.load(); } function timeUpdate() { actChapter = calcChapterId(actTrack, player.currentTime); bread.innerHTML = createBreadCrumb(actTrack, actChapter); } function createBreadCrumb(trackId, chapterId) { episodeInfo.innerHTML = ""; trackInfo.innerHTML = ""; chapterInfo.innerHTML = ""; episodeInfo.innerHTML = episodeObj.info; var trackObj = episodeObj.tracks[trackId]; trackInfo.innerHTML = trackObj.info; var actNewTitle = episodeObj.title + " -> " + trackObj.title; if (trackObj.chapters && chapterId < trackObj.chapters.length) { var chapterObj = trackObj.chapters[chapterId]; chapterInfo.innerHTML = chapterObj.info; actNewTitle = actNewTitle + " -> " + chapterObj.title; } select.setAttribute("class", ""); select = document.getElementById('list' + actTrack + '.' + actChapter); select.setAttribute("class", "select"); return 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); }