var scrollIncrement = 15;var blockTrackClick = false;var scrollInterval;var scrollHoldInterval = 250;var activeScrollArea = null;var activeScrollResetTimer;function SetScrollAreaActive(elem){clearTimeout(activeScrollResetTimer);activeScrollArea = elem;}function SetScrollAreaInactive(elem){activeScrollResetTimer = setTimeout("activeScrollArea = null", 100);}function StartScrollUp(elem){ScrollUp(elem);scrollInterval = setInterval("ScrollUp('" + elem + "');", scrollHoldInterval);}function StartScrollDown(elem){ScrollDown(elem);	scrollInterval = setInterval("ScrollDown('" + elem + "');", scrollHoldInterval);}function StopScroll(){	clearInterval(scrollInterval);}function ScrollUp(elem){var scrollPos = GetTopScrollAmount(elem) + scrollIncrement;if (scrollPos > 0) scrollPos = 0;	document.getElementById(elem + "_ScrollingArea").style.top = scrollPos + "px";SetScrollBarPercentage(elem, GetScrollPercentage(elem));}function ScrollDown(elem){var scrollPos = GetTopScrollAmount(elem) - scrollIncrement;scrollHeight = GetScrollHeight(elem);if (scrollPos < (-1 * scrollHeight)) scrollPos = (-1 * scrollHeight);document.getElementById(elem + "_ScrollingArea").style.top = scrollPos + "px";SetScrollBarPercentage(elem, GetScrollPercentage(elem));}function ScrollBarTrackClick(elem, event){if (blockTrackClick) return;var y, yMove;	if (browser.isIE) y = window.event.clientY + document.documentElement.scrollTop  + document.body.scrollTop;	if (browser.isNS) y = event.clientY + window.scrollY;if (y > GetPosY(document.getElementById(elem + "_Gripper"))){ScrollDown(elem);ScrollDown(elem);}else{ScrollUp(elem);ScrollUp(elem);	}}function GetTopScrollAmount(elem){return GetPosY(document.getElementById(elem + "_ScrollingArea")) - GetPosY(document.getElementById(elem + "_Content"));}function GetScrollHeight(elem){return document.getElementById(elem + "_ScrollingArea").offsetHeight - document.getElementById(elem + "_Content").offsetHeight;}function GetTrackDistance(elem){return document.getElementById(elem + "_GripperContainer").offsetHeight - document.getElementById(elem + "_Gripper").offsetHeight;}function GetGripperPosition(elem){return GetPosY(document.getElementById(elem + "_Gripper")) - GetPosY(document.getElementById(elem + "_GripperContainer"));}function GetScrollBarPercentage(elem){	var topOffset = GetGripperPosition(elem);var trackDistance = GetTrackDistance(elem);return topOffset / trackDistance;}function SetScrollBarPercentage(elem, percentage){GetTrackDistance(elem);document.getElementById(elem + "_Gripper").style.top = Math.floor(GetTrackDistance(elem) * percentage) + "px";}function GetScrollPercentage(elem){	return -1 * (GetTopScrollAmount(elem) / GetScrollHeight(elem));}function SetScrollPercentage(elem, percentage){document.getElementById(elem + "_ScrollingArea").style.top = (-1 * Math.floor(GetScrollHeight(elem) * percentage)) + "px";
}function SetScrollbarHeight(elem){	var visiblePercentage = document.getElementById(elem + "_Content").offsetHeight / document.getElementById(elem + "_ScrollingArea").offsetHeight;if (visiblePercentage > 1)	visiblePercentage = 1;var gripperHeight = Math.floor(document.getElementById(elem + "_GripperContainer").offsetHeight * visiblePercentage);if (gripperHeight < 20)gripperHeight = 20;	document.getElementById(elem + "_Gripper").style.height = gripperHeight + "px";}function GetPosX(obj){var curleft = 0;if (obj.offsetParent){while (obj.offsetParent) {curleft += obj.offsetLeft;	obj = obj.offsetParent;	}}else if (obj.x) curleft += obj.x;	return curleft;}function GetPosY(obj){var curtop = 0;	if (obj.offsetParent){while (obj.offsetParent){	curtop += obj.offsetTop;obj = obj.offsetParent;	}}else if (obj.y) curtop += obj.y;	return curtop;}function handleMouseWheelScroll(scrollDelta){var safety = 0;	if (scrollDelta < 0){for (var x=0; x > scrollDelta && safety < 3; x--){	ScrollDown(activeScrollArea);safety++;}	}if (scrollDelta > 0){for (var x=0; x < scrollDelta && safety < 3; x++){	ScrollUp(activeScrollArea);	safety++;}}}function mouseWheelActive(event){if (activeScrollArea == null) return;var delta = 0;if (!event) event = window.event;if (event.wheelDelta) {	delta = event.wheelDelta/120; if (window.opera) delta = -delta;	} else if (event.detail) {
		delta = -event.detail/4;}if (delta)	handleMouseWheelScroll(delta); if (event.preventDefault) event.preventDefault(); event.returnValue = false;}if (window.addEventListener)window.addEventListener('DOMMouseScroll', mouseWheelActive, false);window.onmousewheel = document.onmousewheel = mouseWheelActive;function Browser() { var ua, s, i; this.isIE    = false; this.isNS    = false; this.version = null; ua = navigator.userAgent; s = "MSIE"; if ((i = ua.indexOf(s)) >= 0) {  this.isIE = true; this.version = parseFloat(ua.substr(i + s.length)); return; } s = "Netscape6/"; if ((i = ua.indexOf(s)) >= 0) { this.isNS = true; this.version = parseFloat(ua.substr(i + s.length)); return;}  s = "Gecko"; if ((i = ua.indexOf(s)) >= 0) { this.isNS = true; this.version = 6.1; return;}}var browser = new Browser();var dragObj = new Object();dragObj.zIndex = 0;function ScrollBarDragStart(event, id) { blockTrackClick = true; var el; var x, y;  if (id) dragObj.elNode = document.getElementById(id); else {if (browser.isIE) dragObj.elNode = window.event.srcElement; if (browser.isNS) dragObj.elNode = event.target; if (dragObj.elNode.nodeType == 3)
      dragObj.elNode = dragObj.elNode.parentNode; } if (browser.isIE) { x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft; y = window.event.clientY + document.documentElement.scrollTop+ document.body.scrollTop;} if (browser.isNS) { x = event.clientX + window.scrollX; y = event.clientY + window.scrollY; } dragObj.cursorStartX = x; dragObj.cursorStartY = y; dragObj.elStartLeft  = parseInt(dragObj.elNode.style.left, 10); dragObj.elStartTop   = parseInt(dragObj.elNode.style.top,  10); if (isNaN(dragObj.elStartLeft)) dragObj.elStartLeft = 0; if (isNaN(dragObj.elStartTop))  dragObj.elStartTop  = 0; dragObj.elNode.style.zIndex = ++dragObj.zIndex; if (browser.isIE) {document.attachEvent("onmousemove", ScrollBarDragGo); document.attachEvent("onmouseup",   ScrollBarDragStop); window.event.cancelBubble = true; window.event.returnValue = false;}if (browser.isNS) {document.addEventListener("mousemove", ScrollBarDragGo,   true); document.addEventListener("mouseup",   ScrollBarDragStop, true); event.preventDefault();}}function ScrollBarDragGo(event) {  var x, y;  if (browser.isIE) {x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft; y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;} if (browser.isNS) { x = event.clientX + window.scrollX; y = event.clientY + window.scrollY;} var ctx, cty, mtx, mty; ctx = dragObj.elStartLeft + x - dragObj.cursorStartX; cty = dragObj.elStartTop  + y - dragObj.cursorStartY; mtx = dragObj.elNode.parentNode.offsetWidth  - dragObj.elNode.offsetWidth; mty = dragObj.elNode.parentNode.offsetHeight - dragObj.elNode.offsetHeight; if (ctx > mtx) ctx = mtx; if (ctx < 0) ctx = 0; if (cty > mty) cty = mty; if (cty < 0) cty = 0;  dragObj.elNode.style.left = (ctx) + "px"; dragObj.elNode.style.top  = (cty) + "px"; if (browser.isIE) { window.event.cancelBubble = true; window.event.returnValue = false; } if (browser.isNS) event.preventDefault(); var elemName = dragObj.elNode.id.split('_')[0]; SetScrollPercentage(elemName, GetScrollBarPercentage(elemName));}function ScrollBarDragStop(event) { setTimeout("blockTrackClick = false;", 100); if (browser.isIE) { document.detachEvent("onmousemove", ScrollBarDragGo); document.detachEvent("onmouseup",   ScrollBarDragStop); } if (browser.isNS) {document.removeEventListener("mousemove", ScrollBarDragGo,   true); document.removeEventListener("mouseup",   ScrollBarDragStop, true); }}
