﻿	var scrollerobj = "documentContainer";
	var scrollheight = 438;
	
	var movespeed = 2; //37
	var movespeedfast = 6;
	var intervalspeed = 1.0; //2.2
	var bottompadding = 20;	
	
	var ileftpos = 0;
	var timer;
	var tempmove;
	var scheight = 0;
	var sbtop;
	var dragit = 0;
	var fullscroll = 0;
	
	function preparescroller()
	{ scrollheight = parseInt(document.getElementById("masterContainer").style.height);
		sc = document.getElementById("scrollerContainer");
		sb = document.getElementById("scrollerbox");	
		if(document.getElementById(scrollerobj).offsetHeight-scrollheight>0) { fullscroll = (parseInt(document.getElementById(scrollerobj).offsetHeight-scrollheight)*-1);}
		if(fullscroll==0)
		{
			document.getElementById("downarrow").style.visibility = "hidden";
			document.getElementById("uparrow").style.visibility = "hidden";
			document.getElementById("downarrow").style.width = "0px";
			document.getElementById("uparrow").style.width = "0px";
		}
	}

	function findabspos()
	{
		var obj = document.getElementById("scrollerbox");
		var cw = parseInt(obj.offsetWidth);
		var cx = 0;
		if (obj.offsetParent) {
			cx = obj.offsetTop
			while (obj = obj.offsetParent) {
			cx += obj.offsetTop	}
			}
			sbtop = cx;
	}	
	
	function scrollup()
	{	tempmove = movespeed;
		if(parseInt(document.getElementById(scrollerobj).style.top)<0)
		{
			timer = setInterval("doscroll(1)", intervalspeed*10);
		}
	}

	function scrolldown()
	{ var o = document.getElementById(scrollerobj);
		tempmove = movespeed;
		if(parseInt(o.style.top)>parseInt((o.offsetHeight*-1)+bottompadding))
		{
			timer = setInterval("doscroll(0)", intervalspeed*10);
		}	
	}
	
	function doscroll(dir)
	{  
		if(fullscroll==0) { clearInterval(timer); }
		var o = document.getElementById(scrollerobj);
		ileftpos += (dir==0 ? - tempmove : + tempmove);
		o.style.top = ileftpos + "px";
		var progress = parseInt(100 - ((((fullscroll-bottompadding) - (parseInt(o.style.top))) / (fullscroll-bottompadding)) * 100));
		if(dir==0)
		{
				if(parseInt(o.style.top)<parseInt(fullscroll-bottompadding))
				{  clearInterval(timer);
					o.style.top = parseInt(fullscroll-bottompadding) + "px";
				}
		}
		else
		{
				if(parseInt(o.style.top)>0)
				{
					clearInterval(timer);
					o.style.top = 0 + "px";
				}
		}
	}
	function checkS(e){ 
// capture the mouse position 
    var posx = 0; var posy = 0; 
    if (!e) var e = window.event; 
    if (e.pageX || e.pageY) { 
        posx = e.pageX; 
        posy = e.pageY; 
    } 
    else if (e.clientX || e.clientY) { 
        posx = e.clientX; 
        posy = e.clientY; 
    } 
    var o = document.getElementById(scrollerobj);
    if(dragit!=0) { 
    	sb.style.top = (posy - sbtop + document.documentElement.scrollTop - (parseInt(sb.style.height)/2)) + "px"; 
    	var progress = 1-(scheight-(parseInt(sb.style.top)))/scheight;
    	o.style.top = parseInt(parseInt(fullscroll-bottompadding)*progress)+"px";
    	ileftpos = parseInt(parseInt(fullscroll-bottompadding)*progress);
    	if(parseInt(sb.style.top)<0) { dragit=0; sb.style.top=0+"px";}
    	if(parseInt(sb.style.top)>scheight) { dragit=0;sb.style.top=scheight+"px";}
    	}
}
	function cancelscroll()
	{
		clearInterval(timer);
	}
	function alterspeed(faster)
	{
		tempmove = (faster==1 ? movespeedfast : movespeed);
	}
	
	
	// Event handler for mouse wheel event.
 
function wheel(event){
        var delta = 0;
        if (!event) /* For IE. */
                event = window.event;
        if (event.wheelDelta) { /* IE/Opera. */
                delta = event.wheelDelta/120;
                /** In Opera 9, delta differs in sign as compared to IE.
                 */
                if (window.opera)
                        delta = -delta;
        } else if (event.detail) { /** Mozilla case. */
                /** In Mozilla, sign of delta is different than in IE.
                 * Also, delta is multiple of 3.
                 */
                delta = -event.detail/3;
        }
        /** If delta is nonzero, handle it.
         * Basically, delta is now positive if wheel was scrolled up,
         * and negative, if wheel was scrolled down.
         */
        if (delta)
                handle(delta);
        /** Prevent default actions caused by mouse wheel.
         * That might be ugly, but we handle scrolls somehow
         * anyway, so don't bother here..
         */
        if (
        event.preventDefault)
        event.preventDefault();
				event.returnValue = false;
				}

/** Initialization code. 
 * If you use your own event management code, change it as required.
 */
if (window.addEventListener)
        /** DOMMouseScroll is for mozilla. */
   window.addEventListener('DOMMouseScroll', wheel, false);
/** IE/Opera. */
	window.onmousewheel = document.onmousewheel = wheel;

function handle(delta) // here the mousewheel is activated
{
	if( fullscroll!=0)
	{
		if(delta<0)//scroll down
		{	
			
			 var o = document.getElementById(scrollerobj);
		if(parseInt(o.style.top)>parseInt((o.offsetHeight*-1)+bottompadding))
			{	
				tempmove= delta * -2
				doscroll(0)
			}
		}
		else  // scroll up
		{
			if(parseInt(document.getElementById(scrollerobj).style.top)<0)
			{
			 	tempmove= delta *2
				doscroll(1)	
			}
		}
	}
}

if (window.addEventListener)
		window.addEventListener('DOMMouseScroll', wheel, false);
	
	window.onmousewheel = document.onmousewheel = wheel;

