// JavaScript Document

var isDragging = false;
var pauseScrolling = false;
var startY;
var startScrollTop;

function initializeScroll(elementName) {
	setInterval(scrollStep, 50, elementName);
	var element = document.getElementById(elementName);

	element.innerHTML = "<img src='images/spacer.gif' width='1px' height='" + element.style.height.toString() + "'><br>" + element.innerHTML + "<img src='images/spacer.gif' width='1px' height='" + element.style.height.toString() + "'>";
  element.onselectstart = function () { return false; } // ie
  element.onmousedown = function () { return false; } // mozilla
}

function scrollStep() {
	if (!pauseScrolling) {
		var element = document.getElementById("firm_news");
		if (element.scrollTop + element.clientHeight == element.scrollHeight) element.scrollTop = 0;
		else element.scrollTop += 1;
	}
}


function pauseScroll() {
	pauseScrolling = true;
}

function unpauseScroll() {
	pauseScrolling = false;
}

document.body.onmousemove = function() {
	if (isDragging) {
		var e = arguments[0] || event;
		
		var element = document.getElementById("firm_news");
		
		element.scrollTop = startScrollTop - e.clientY + startY;
		
		//if (!isInternetExplorer()) {
			element.selectionStart = element.selectionEnd;
		//}
		
		e.cancel = true;
		return false;
	}
}

document.body.onmouseup = function() {
	isDragging = false;
}
document.body.onmousedown = function() {
	var e = arguments[0] || event;
	
	var element = document.getElementById("firm_news");
	var offsetTop = getOffsetTop(element);
	var offsetLeft = getOffsetLeft(element);
	
	if (e.clientX < offsetLeft + element.clientWidth && e.clientX > offsetLeft && e.clientY + document.documentElement.scrollTop < offsetTop + element.clientHeight && e.clientY + document.documentElement.scrollTop > offsetTop) {
		isDragging = true;
		startY = e.clientY;
		startScrollTop = element.scrollTop;
	}
}

function getOffsetTop(sourceObject) {
	var topOffset = 0;
	while (sourceObject.offsetTop != null) {
		if (sourceObject.nodeName != "TR" && sourceObject.nodeName != "TBODY" && sourceObject.nodeName != "CENTER" && sourceObject.nodeName != "FORM" && sourceObject.nodeName != "A") topOffset += sourceObject.offsetTop;
		sourceObject = sourceObject.parentNode;
	}
	return topOffset;
}

function getOffsetLeft(sourceObject) {
	var leftOffset = 0;
	while (sourceObject.offsetLeft != null) {
		if (sourceObject.nodeName != "TR" && sourceObject.nodeName != "TBODY" && sourceObject.nodeName != "CENTER" && sourceObject.nodeName != "FORM") leftOffset += sourceObject.offsetLeft;
		sourceObject = sourceObject.parentNode;
	}
	return leftOffset;
}

