/*
 * 
 * Image Button
 * 
 */

function imageButtonMouseOver() {

	this.src = this.srcMouseIn;
	return true;

}
function imageButtonMouseOut() {
	this.src = this.srcMouseOut;
	return true;
}

function doImageButton() {
	var imageElts = document.getElementsByTagName("img");

	for ( var i = 0; i < imageElts.length; i++) {
		var image = imageElts[i];
		if (image.className == 'button') {

			image.srcMouseOut = image.src;

			var split = image.src.split('.');

			var filename = split[0];
			var ext = split[split.length - 1];

			for ( var j = 1; j < split.length - 1; j++) {
				filename += '.' + split[j];
			}

			image.srcMouseIn = filename + '-over.' + ext;

			// Over Image Loading
			var tmpImage = new Image();
			// tmpImage.onload = function() {
			// alert(tmpImage.src + " loaded");
			// };
			tmpImage.src = image.srcMouseIn;

			image.onmouseover = imageButtonMouseOver;
			image.onmouseout = imageButtonMouseOut;

		}
	}
}

/*
 * 
 * Scrolling
 * 
 */

function initialiseScroll(divToScroll, scrollCursor) {
	var maxScroll = divToScroll.scrollHeight - divToScroll.offsetHeight;

	if (maxScroll > 0) {
		scrollCursor.style.display = 'block';
		scrollCursor.style.position = 'absolute';
		scrollCursor.style.cursor = "pointer";
		scrollCursor.onmousedown = dragMouseDown;
		scrollCursor.onmouseup = dragMouseUp;
		if (navigator.appName == "Microsoft Internet Explorer") {
			scrollCursor.onmousemove = dragMouseMove;
		}

		scrollCursor.minY = scrollCursor.offsetTop;
		scrollCursor.maxY = scrollCursor.minY + 300;

		divToScroll.scrollCursor = scrollCursor;
		scrollCursor.divToScroll = divToScroll;

		divToScroll.onscroll = onScroll;
		divToScroll.onscroll();
	} else {
		scrollCursor.style.display = 'none';
	}
}

function onScroll() {
	var maxScroll = this.scrollHeight - this.offsetHeight;
	var scale = this.scrollTop / maxScroll;

	var top = this.scrollCursor.minY
			+ (scale * (this.scrollCursor.maxY - this.scrollCursor.minY));

	this.scrollCursor.style.top = top + 'px';
}

/*
 * 
 * ScrollBar
 * 
 */

function dragMouseUp(evt) {
	window.inDrag = null;
	window.onmousemouve = null;
};

function dragMouseDown(evt) {

	window.inDrag = this;
	window.inDrag.diffY = getMouseY(evt) - this.offsetTop;
	window.onmouseup = dragMouseUp;
	window.onmousemove = dragMouseMove;
	return false;
};
function dragMouseMove(evt) {
	if (window.inDrag != null) {
		var top = getMouseY(evt) - window.inDrag.diffY;
		if (top < window.inDrag.minY)
			top = window.inDrag.minY;
		if (top > window.inDrag.maxY)
			top = window.inDrag.maxY;

		var maxScroll = window.inDrag.divToScroll.scrollHeight
				- window.inDrag.divToScroll.offsetHeight;

		var scale = (top - window.inDrag.minY)
				/ (window.inDrag.maxY - window.inDrag.minY);

		window.inDrag.divToScroll.scrollTop = scale * maxScroll;

		window.inDrag.style.top = top + 'px';
	}
	return false;
};

//
// function scrollElt(elt, inc) {
//
// if (!elt.initialTop) {
// elt.initialTop = elt.offsetTop;
// }
// var minTop = elt.offsetHeight - elt.lastElement.offsetTop;
// var top = elt.offsetTop - elt.initialTop;// +
// // (elt.parentNode.offsetHeight
// // - elt.offsetHeight);
//
// top = top + inc;
//
// if (top >= 0)
// top = 0;
// // if (top < minTop)
// // top = minTop;
//
// elt.style.top = top + 'px';
// }
//
// function initialiseScroll(elt) {
// elt.style.position = 'relative';
// elt.onmousedown = scrollMouseDown;
// // elt.onmouseup = scrollMouseUp;
// elt.style.cursor = 'pointer';
// container = elt.parentNode;
// container.onmousemove = scrollMouseMove;
// elt.lastElement = document.createElement('div');
// container.appendChild(elt.lastElement);
//
// container.eltToScroll = elt;
// elt.scrollContainer = container;
//
// }
// function scrollMouseUp(evt) {
//
// window.inScroll.startY = null;
// window.inScroll = null;
//
// };
//
// function scrollMouseDown(evt) {
// window.inScroll = this;
//
// window.inScroll.startY = getMouseY(evt);
// return false;
// };
//
// function scrollMouseMove(evt) {
// if (this.eltToScroll.startY != null) {
// var y = getMouseY(evt);
// var diff = y - this.eltToScroll.startY;
// scrollElt(this.eltToScroll, diff);
// this.eltToScroll.startY = y;
//
// }
// return false;
// };
//
// window.onmouseup = function(evt) {
// if (window.inScroll != null) {
// scrollMouseUp(evt);
// }
//
// document.getElementById('CONTENT').scrollTop = 5000;
// alert(document.getElementById('CONTENT').scrollTop);
// document.getElementById('CONTENT').scrollTop = 0;
// };

function getMouseX(evt) {
	if (navigator.appName == "Microsoft Internet Explorer") {

		x = event.x + document.body.scrollLeft;

		y = event.y + document.body.scrollTop;

	}

	else {

		if (!evt)
			evt = window.event;

		x = evt.clientX;

		y = evt.clientY;

	}
	return x;
}
function getMouseY(evt) {
	if (navigator.appName == "Microsoft Internet Explorer") {

		x = event.x + document.body.scrollLeft;

		y = event.y + document.body.scrollTop;

	}

	else {

		if (!evt)
			evt = window.event;

		x = evt.clientX;

		y = evt.clientY;

	}
	return y;
}
/*
 * 
 * BODY LOAD
 * 
 */

function bodyOnLoad() {

	doImageButton();
	var scrollCursor = document.getElementById('SCROLLCURSOR');
	var divToScroll = document.getElementById('CONTENT');
	initialiseScroll(divToScroll, scrollCursor);
}

