function prepare_for_mac()
{
	if(navigator.platform.indexOf("Mac") != -1 || navigator.userAgent.indexOf("Safari") != -1)
	{
		document.body.className = ( navigator.userAgent.indexOf("Safari") != -1 ? 'mac saf' : 'mac ff' );
	}
}

function getElementsByClassName(className,tag,elm)
{
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++)
	{
		current = elements[i];
		if(testClass.test(current.className))
		{
			returnElements.push(current);
		}
	}
	return returnElements;
}



function wheel_handle(delta)
{
	var stepAmount = 20;
	if ($('side_content') && $('side_content').offsetHeight*containerHeightFactor>height)
	{
		var scrollHeight = height;
		var maxScroll	 = scrollHeight-$('handle').offsetHeight;
		var curPos		 = parseInt($('handle').style.top);
		var newPos		 = curPos + stepAmount*-delta;
		
		if (newPos < 0) newPos = 0;
		else if (newPos > maxScroll) newPos = maxScroll;
		
		$('handle').style.top = newPos+'px';
		
		var pct = newPos/maxScroll;
		$('side_content').style.top = '-'+(pct*($('side_content').offsetHeight*containerHeightFactor-height))+'px';
	}
	return;
}

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)
                wheel_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;
}

var cancelEvent = function() { return false; }

window.onload = function(){
if(document.getElementById('side_content') != null)
{
	document.getElementById('side_content').onmouseover = function(){
 		window.onmousewheel = document.onmousewheel = cancelEvent;
		if (window.addEventListener)
			window.addEventListener('DOMMouseScroll', cancelEvent, false);
	}
	document.getElementById('side_content').onmouseout = function(){
		window.onmousewheel = document.onmousewheel = null;
		if (window.addEventListener)
			window.removeEventListener('DOMMouseScroll', cancelEvent, false);
	}

	/** Initialization code. 
	 * If you use your own event management code, change it as required.
	 */
	if (document.getElementById('side_content').addEventListener)
			/** DOMMouseScroll is for mozilla. */
			document.getElementById('side_content').addEventListener('DOMMouseScroll', wheel, false);
	/** IE/Opera. */
	document.getElementById('side_content').onmousewheel = wheel;

}};


function addLoadEvent(func)
{
	var oldonload = window.onload;
	if (typeof window.onload != 'function')
	{
		window.onload = func;
	}
	else
	{
		window.onload = function()
		{
			oldonload();
			func();
		}
	}
}
jQuery(document).ready(prepare_for_mac);
