function handle(delta) {
	
	/** ONLY ENABLE MOUSE WHEEL SCROLLING IF SCROLL ARROWS ARE VISIBLE ON THE SCREEN... 
	    THIS IS TAKEN CARE OF ON ANOTHER PAGE. JUST MAKE SURE WE DONT ALLOW THE USER
	    TO SCROLL TEXT THAT DOESNT NEED TO BE OR IT SCREWS UP THE AESTHETICS */
	if(document.getElementById('ScrollControls')){
		if(document.getElementById('ScrollControls').style.display == 'block'){
			if (delta < 0){
				startScrolling(); 
				scrollspeed=10;
				mouseScrollDivUp();
			}
			else{
				startScrolling(); 
				scrollspeed=10;
				mouseScrollDivDown();
			}
		}
	}
}

function wheel(event){
	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/3;
	}
	if (delta)
		handle(delta);
        if (event.preventDefault)
                event.preventDefault();
        event.returnValue = false;
}

/* Initialization code. */
if (window.addEventListener)
	window.addEventListener('DOMMouseScroll', wheel, false);
window.onmousewheel = document.onmousewheel = wheel;


  function findPosX(obj)
  {
    var curleft = 0;
    if(obj.offsetParent)
        while(1) 
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
  }

  function findPosY(obj)
  {
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
  }


//Specify speed of scroll. Larger=faster (ie: 5)
var scrollspeed = 0;

//Specify intial delay before scroller starts scrolling (in miliseconds):
var initialdelay=500

var loop, timer;

function initializeScroller(){
	if(document.getElementById("side_content") && document.getElementById("side_content")){
		dataobj=document.all? document.all.datacontainer : document.getElementById("side_content")
		dataobj_container=document.all? document.all.datacontainer : document.getElementById("side_content_container")
		dataobj.style.top="5px"
		setTimeout("getdataheight()", initialdelay)
	}
}

function getdataheight(){
	thelength=dataobj.offsetHeight;
	if(dataobj_container)
		thecontainerlength=dataobj_container.offsetHeight;
	if (thelength==0)
	setTimeout("getdataheight()",10)
	//else
	//scrollDiv()
}

function mouseScrollDivUp(){
	if(dataobj.style)
		dataobj.style.top=parseInt(dataobj.style.top)-scrollspeed+"px"
	if (parseInt(findPosY(dataobj)+thelength)<thecontainerlength){
		dataobj.style.top = parseInt(findPosY(dataobj_container)-thelength)+"px"
	}
}

function mouseScrollDivDown(){
	if(dataobj.style)
		dataobj.style.top=parseInt(dataobj.style.top)+scrollspeed+"px"
	if (findPosY(dataobj)>parseInt(findPosY(dataobj_container)+10))
		dataobj.style.top="0px"
		
}

function scrollDivUp(){
	if(dataobj.style)
		dataobj.style.top=parseInt(dataobj.style.top)-scrollspeed+"px"
	if (parseInt(findPosY(dataobj)+thelength)<thecontainerlength){
		stopScrolling();
	}
	if(loop) setTimeout("scrollDivUp()",40)
}

function scrollDivDown(){
	if(dataobj.style)
		dataobj.style.top=parseInt(dataobj.style.top)+scrollspeed+"px"
	if (findPosY(dataobj)>parseInt(findPosY(dataobj_container)+10))
		dataobj.style.top="0px"
		
	if(loop) setTimeout("scrollDivDown()",40)
}

function startScrolling(){
	loop = true;
}

function stopScrolling(){

    loop=false;
    if(timer) clearTimeout(timer);
}

if (window.addEventListener)
window.addEventListener("load", initializeScroller, false)
else if (window.attachEvent)
window.attachEvent("onload", initializeScroller)
else
window.onload=initializeScroller