<!DOCTYPE HTML>
<html i18n-values="dir:textdirection;">
<head>
<meta charset="utf-8">
<title>Slideshow</title>
<style>
body {
overflow: hidden;
background: black;
}
#glow {
left: 0;
right: 0;
bottom: 30px;
height: 8px;
opacity: .4;
position: absolute;
background: -webkit-linear-gradient(transparent, white);
}
#main {
position: absolute;
left: 0;
right:0;
top: 0;
bottom: 30px;
overflow: hidden;
}
#playercontrols {
bottom: 0;
left: 0;
z-index: 999;
height: 30px;
opacity: .9;
right: 0;
align:center;
-webkit-box-align: center;
-webkit-box-pack: center;
display: -webkit-box;
position: absolute;
background: -webkit-linear-gradient(#323232, #070707);
}
#prevbutton > div {
background: url('chrome://resources/images/mediaplayer_prev.png');
background-repeat: no-repeat;
background-position: 4px 8px;
width: 100%;
height: 30px;
z-index: 9999;
}
.currentpicture {
width: 100%;
height: 100%;
position: absolute;
top: 0;
-webkit-transition-property: left;
-webkit-transition-duration: 1s;
display: -webkit-box;
-webkit-box-align: center;
-webkit-box-pack: center;
pointer-events: none;
}
.comingfromleft {
left: -100%;
}
.comingfromright {
left: 100%;
}
#nextbutton > div {
background: url('chrome://resources/images/mediaplayer_next.png');
background-repeat: no-repeat;
background-position: 4px 8px;
width: 100%;
height: 30px;
z-index: 9999;
}
button {
z-index: 9999;
cursor: pointer;
width: 28px;
height: 30px;
webkit-appearance: none;
padding: 0;
border: 0;
background: transparent;
}
button:hover {
background: -webkit-linear-gradient(#6a7eac, #000000);
}
</style>
<script src="chrome://resources/js/local_strings.js"></script>
<script src="chrome://resources/js/media_common.js"></script>
<script>
document.addEventListener('DOMContentLoaded', load);
document.onselectstart = function(e) {
e.preventDefault();
};
function $(o) {
return document.getElementById(o);
}
///////////////////////////////////////////////////////////////////////////////
// Document Functions:
var currentPicture = null;
var prevPicture = null;
var currentFileOffset = 0;
var filelist = [];
var moveRight = false;
var lastimg = null;
function loadedPicture() {
if (prevPicture) {
if (moveRight) {
prevPicture.style.left = '-100%';
} else {
prevPicture.style.left = '100%';
}
}
if (window.innerHeight < lastimg.height ||
window.innerWidth < lastimg.width) {
if (lastimg.width > lastimg.height) {
lastimg.style.height = 'auto';
lastimg.style.width = '100%';
} else {
lastimg.style.width = 'auto';
lastimg.style.height = '100%';
}
}
setTimeout(function() {
currentPicture.style.left = '0';
}, 10);
}
function transitionTo(filePath, fromTheRight) {
if (currentPicture) {
if (prevPicture) {
$('main').removeChild(prevPicture);
}
prevPicture = currentPicture;
}
currentPicture = document.createElement('div');
$('main').appendChild(currentPicture);
if (fromTheRight) {
currentPicture.className = 'currentpicture comingfromright';
} else {
currentPicture.className = 'currentpicture comingfromleft';
}
var image = document.createElement('img');
lastimg = image;
image.onload = loadedPicture;
image.onerror = loadedPicture;
image.src = filePath;
currentPicture.appendChild(image);
moveRight = fromTheRight;
}
function browseFileResult() {
currentFileOffset = 0;
if (filelist.length > 0) {
transitionTo(filelist[currentFileOffset], true);
}
}
function keyPressed(e) {
// Left Pressed
if (e.keyCode == 37) {
if (currentFileOffset > 0) {
currentFileOffset--;
transitionTo(filelist[currentFileOffset], false);
}
}
// Right Pressed
if (e.keyCode == 39) {
if (currentFileOffset < (filelist.length - 1)) {
currentFileOffset++;
transitionTo(filelist[currentFileOffset], true);
}
}
}
function load() {
localStrings = new LocalStrings();
var views = chrome.extension.getViews();
for (var i = 0; i < views.length; i++) {
if (views[i].g_slideshow_data) {
filelist = views[i].g_slideshow_data;
views[i].g_slideshow_data = null;
}
}
browseFileResult();
}
function prevButtonClick() {
if (currentFileOffset > 0) {
currentFileOffset--;
transitionTo(filelist[currentFileOffset], false);
}
}
function nextButtonClick() {
if (currentFileOffset < (filelist.length - 1)) {
currentFileOffset++;
transitionTo(filelist[currentFileOffset], true);
}
}
</script>
<body onkeydown="keyPressed(event)">
<div id="main"></div>
<div id="glow"></div>
<div id="playercontrols">
<button id="prevbutton" onclick="prevButtonClick()">
<div></div>
</button>
<button id="nextbutton" onclick="nextButtonClick()">
<div></div>
</button>
</div>
</body>
</html>