// ==UserScript==
// @name Imgur Album Slideshow
// @version 2017.03.05.02
// @description Adds a menu to Imgur albums to start a slideshow
// @author Withaika
// @match *://imgur.com/a/*
// @grant none
// @require http://code.jquery.com/jquery-1.12.4.min.js
// @require http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/jquery-ui.min.js
// @namespace https://greasyfork.org/users/94615
// @downloadURL https://update.greasyfork.icu/scripts/28640/Imgur%20Album%20Slideshow.user.js
// @updateURL https://update.greasyfork.icu/scripts/28640/Imgur%20Album%20Slideshow.meta.js
// ==/UserScript==
(function() {
$("#right-content").prepend("
Delay (s):
Randomize:
");
$('body').prepend('');
})();
var slideIndex = 1;
var Images=[];
function plusDivs(n) {
showDivs(slideIndex += n);
}
function showDivs(n) {
var i;
var x = Images;
if (n > x.length) {slideIndex = 1;}
if (n < 1) {slideIndex = x.length;}
document.getElementById("FSSI").src=x[slideIndex-1];
}
function startSlide(){
document.getElementById("restart").style.display="inline-block";
if (document.getElementById("randomize").checked){undefinedImages = _widgetFactory._.config.gallery.image.album_images.randomize();}else{undefinedImages = _widgetFactory._.config.gallery.image.album_images;}
for (i=0;i
");
document.getElementById("manualBack").addEventListener("click", function(){
isPaused=true;
plusDivs(-1);
});
document.getElementById("manualForward").addEventListener("click", function(){
isPaused=true;
plusDivs(1);
});
$(document).keydown(function(e) {
switch(e.which) {
case 37: // left
plusDivs(-1);
break;
case 38: // up
delay--;
break;
case 39: // right
plusDivs(1);
break;
case 40: // down
delay++;
break;
case 32: // space
if (isPaused){isPaused=false;}else{isPaused=true;}
break;
case 27: // escape
FSTog(document.getElementById("ss"));
clearInterval(intID);
break;
default: return;
}
e.preventDefault();
});
showDivs(slideIndex);
FSTog(document.getElementById("ss"));
var intID=window.setInterval(function(){
if(!isPaused) {
plusDivs(1);
}
}, delay*1000);
}
function FSTog(element) {
if (!element.fullscreenElement && !element.mozFullScreenElement && !element.webkitFullscreenElement && !element.msFullscreenElement ) {
if (element.requestFullscreen) {
element.requestFullscreen();
} else if (element.msRequestFullscreen) {
element.msRequestFullscreen();
} else if (element.mozRequestFullScreen) {
element.mozRequestFullScreen();
} else if (element.webkitRequestFullscreen) {
element.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
}
} else {
if (element.exitFullscreen) {
element.exitFullscreen();
} else if (element.msExitFullscreen) {
element.msExitFullscreen();
} else if (element.mozCancelFullScreen) {
element.mozCancelFullScreen();
} else if (element.webkitExitFullscreen) {
element.webkitExitFullscreen();
}
}
}
Array.prototype.randomize = function() {
array=this;
var currentIndex = array.length, temporaryValue, randomIndex;
while (0 !== currentIndex) {
randomIndex = Math.floor(Math.random() * currentIndex);
currentIndex -= 1;
temporaryValue = array[currentIndex];
array[currentIndex] = array[randomIndex];
array[randomIndex] = temporaryValue;
}
return array;
};
document.getElementById("ssStart").addEventListener("click", function(){
startSlide();
});
document.getElementById("ssReStart").addEventListener("click", function(){
startSlide();
slideIndex = 1;
});