/* 
 * A (slightly) better technique for "Back to Top" links.
 *  Original by
 *   http://web-graphics.com/mtarchive/001659.php
 */

function backToTop() {
	var x1 = x2 = x3 = 0;
	var y1 = y2 = y3 = 0;
	if (document.documentElement) {
		x1 = document.documentElement.scrollLeft || 0;
		y1 = document.documentElement.scrollTop || 0;
	}
	if (document.body) {
		x2 = document.body.scrollLeft || 0;
		y2 = document.body.scrollTop || 0;
	}
	x3 = window.scrollX || 0;
	y3 = window.scrollY || 0;
	var x = Math.max(x1, Math.max(x2, x3));
	var y = Math.max(y1, Math.max(y2, y3));
	window.scrollTo(x, Math.floor(y / 2));
	if (y > 0) {
		window.setTimeout("backToTop()", 25);
	}
}

function goToBottom() {
	var x1 = x2 = x3 = 0;
	var y1 = y2 = y3 = 0;
	var b1 = b2      = 0;
        var ym           = 0;
	var h1 = h2 = h3 = 0;
	if (document.documentElement) {
		x1 = document.documentElement.scrollLeft || 0;
		y1 = document.documentElement.scrollTop || 0;
		b1 = document.documentElement.scrollHeight || 0;
		h1 = document.documentElement.clientHeight || 999999;
	}
	if (document.body) {
		x2 = document.body.scrollLeft || 0;
		y2 = document.body.scrollTop || 0;
		b2 = document.body.scrollHeight || 0;
		h2 = document.body.clientHeight || 999999;
	}
	x3 = window.scrollX || 0;
	y3 = window.scrollY || 0;
	ym = window.scrollMaxY || 0;
	h3 = window.innerHeight || 999999;
	var x = Math.max(x1, Math.max(x2, x3));
	var y = Math.max(y1, Math.max(y2, y3));
	var g;
	if (ym > 0) {
		g = ym;
	} else {
		g = Math.max(b1, b2) - Math.min(h1, Math.min(h2, h3));
	}
	var d = Math.ceil((g - y) / 2) + y;
	window.scrollTo(x, d);
	if (d < g) {
	    window.setTimeout("goToBottom()", 25);
	}
}
