2014-09-15 11:06:33 -07:00
|
|
|
// vim:set sw=8 et:
|
|
|
|
|
2014-09-17 15:26:13 -07:00
|
|
|
var umbraState = {'idleSince':null};
|
|
|
|
var umbraIntervalID = setInterval(umbraScrollInterval,50);
|
|
|
|
var umbraAlreadyClicked = {};
|
|
|
|
function umbraScrollInterval() {
|
2014-09-15 11:06:33 -07:00
|
|
|
|
|
|
|
//if not at the bottom
|
|
|
|
if(window.scrollY + window.innerHeight < document.documentElement.scrollHeight) {
|
2014-09-17 15:26:13 -07:00
|
|
|
umbraScroll();
|
2014-09-15 11:06:33 -07:00
|
|
|
umbraState.idleSince=null;
|
2014-09-17 15:26:13 -07:00
|
|
|
}
|
|
|
|
else {
|
|
|
|
var videoBoxes = document.querySelectorAll("div#vid_box a");
|
|
|
|
var clickedVideo = false;
|
2014-11-07 15:56:05 -08:00
|
|
|
|
|
|
|
for(i=0;i<videoBoxes.length;i++) {
|
|
|
|
if(!(videoBoxes[i] in umbraAlreadyClicked)){
|
|
|
|
videoBoxes[i].click();
|
|
|
|
umbraState.idleSince=null;
|
|
|
|
umbraAlreadyClicked[videoBoxes[i]]=true;
|
|
|
|
clickedVideo=true;
|
2014-09-15 11:06:33 -07:00
|
|
|
}
|
|
|
|
}
|
2014-11-07 15:56:05 -08:00
|
|
|
|
2014-09-17 15:26:13 -07:00
|
|
|
if(!clickedVideo && umbraState.idleSince==null) {
|
|
|
|
umbraState.idleSince=Date.now();
|
|
|
|
}
|
2014-09-15 11:06:33 -07:00
|
|
|
}
|
2014-09-17 15:26:13 -07:00
|
|
|
|
2014-09-15 11:06:33 -07:00
|
|
|
}
|
|
|
|
|
2014-09-17 15:26:13 -07:00
|
|
|
function umbraScroll() {
|
2014-09-15 11:06:33 -07:00
|
|
|
window.scrollBy(0,50);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// If we haven't had anything to do (scrolled, clicked, etc) in this amount of
|
|
|
|
// time, then we consider ourselves finished with the page.
|
|
|
|
|
|
|
|
var UMBRA_USER_ACTION_IDLE_TIMEOUT_SEC = 10;
|
|
|
|
|
|
|
|
// Called from outside of this script.
|
|
|
|
var umbraBehaviorFinished = function() {
|
|
|
|
if (umbraState.idleSince != null) {
|
|
|
|
var idleTimeMs = Date.now() - umbraState.idleSince;
|
|
|
|
if (idleTimeMs / 1000 > UMBRA_USER_ACTION_IDLE_TIMEOUT_SEC) {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|