// ScrollHint.user.js
// Version: 1.0
// Author: Peter K Chan (peter@oaktop.com)
// Copyright(c) 2006 Some Rights Reserved
// 
// ==UserScript==// @name Scroll Hint// @namespace http://oaktop.com/wiki/ScrollHint// @description Reading huge texts ergonomically. Find out more at http://oaktop.com/wiki/ScrollHint// @include http://*// @include https://*// ==/UserScript==


function log(s) {
	if(false) alert(s);
}

function setupScrollHint() {
	var top = document.createElement('div');	
	
	top.id = 'topScrollHint';
	top.style.borderTop = 'solid';
	top.style.borderColor = 'blue';
	top.style.display = '';
	top.style.position = 'absolute';
	top.style.width = screen.width - 200 + 'px';
	
	var bottom = top.cloneNode(true);
	
	bottom.id = 'bottomScrollHint';
	bottom.style.borderColor = 'red';
	
	var body = document.getElementsByTagName('body')[0];
	
	body.appendChild(top);
	body.appendChild(bottom);
	
	window.addEventListener('scroll', schedulePosition, false);
	
	positionScrollHint();
}

function positionScrollHint() {
	try {
		dimScrollHint();
	
		var vMargin = 25;
		var xMargin = 100;
		var top = getTopScrollHint();
		
		top.style.left = window.pageXOffset + xMargin + 'px';
		top.style.top = window.pageYOffset + vMargin + 'px';
		top.style.width = document.body.clientWidth - 200 + 'px';
		
		var bottom = getBottomScrollHint();
		
		bottom.style.left = window.pageXOffset + xMargin + 'px';
		bottom.style.top = window.pageYOffset + window.innerHeight - vMargin + 'px';
		bottom.style.width = document.body.clientWidth - 200 + 'px';
		
		log('Repositioned');
	} catch(e) {
		log(e);
	}
}

function brightenScrollHint() {
	getTopScrollHint().style.opacity = 1;
	getBottomScrollHint().style.opacity = 1;
	getTopScrollHint().style.zOrder = 100;
	getBottomScrollHint().style.zOrder = 100;
}

function dimScrollHint() {
	getTopScrollHint().style.opacity = 0.0;
	getBottomScrollHint().style.opacity = 0.0;
	getTopScrollHint().style.zOrder = -100;
	getBottomScrollHint().style.zOrder = -100;
}

function getTopScrollHint() {
	return document.getElementById('topScrollHint');
}

function getBottomScrollHint() {
	return document.getElementById('bottomScrollHint');
}

function schedulePosition() {
	log('Scheduled');
	brightenScrollHint();
	window.setTimeout(positionScrollHint, 700);
}

setupScrollHint();

