function renderItemInfo(data) {
div = document.createElement('div')
div.className = "content"
div.innerHTML = `
${data.title}
${data.byline}
`
document.querySelector(".content").replaceWith(div)
}
function renderItem(data) {
if (data.error) {
return renderError(data)
}
if (data.view == "info") {
return renderItemInfo(data)
}
div = document.createElement('div')
div.className = "content"
div.innerHTML = `
${data.title}
${data.byline}
${data.value}
`
var comments = `
`
div.querySelectorAll('.layer a').forEach(a => {
a.addEventListener("click", clickLink)
})
div.querySelectorAll('.layer').forEach(layer => {
layer.querySelector('h3').addEventListener("click", event => {
var img = layer.querySelector('h3 .icon')
if (layer.classList.contains("collapsed")) {
layer.classList.remove("collapsed")
img.innerHTML = icon.down
} else {
layer.classList.add("collapsed")
img.innerHTML = icon.right
}
})
})
var video = window.video = VideoPlayer({
items: data.videos,
poster: data.poster,
position: data["in"] || 0,
duration: data.duration,
aspectratio: data.aspectratio
})
div.querySelector('.video').replaceWith(video)
video.classList.add('video')
video.addEventListener("loadedmetadata", event => {
//
})
video.addEventListener("timeupdate", event => {
var currentTime = video.currentTime()
if (currentTime >= data['out']) {
if (!video.paused) {
video.pause()
}
video.currentTime(data['in'])
}
div.querySelectorAll('.annotation').forEach(annot => {
var now = currentTime
var start = parseFloat(annot.dataset.in)
var end = parseFloat(annot.dataset.out)
if (now >= start && now <= end) {
annot.classList.add("active")
annot.parentElement.classList.add('active')
} else {
annot.classList.remove("active")
if (!annot.parentElement.querySelector('.active')) {
annot.parentElement.classList.remove('active')
}
}
})
})
document.querySelector(".content").replaceWith(div)
}
function renderError(data) {
var link = '/' + document.location.hash.slice(1)
div = document.createElement('div')
div.className = "content"
div.innerHTML = `
`
document.querySelector(".content").replaceWith(div)
}