var $scrollfollow;
var onScroll = window.onScroll = function (duration)
{
	duration = duration == undefined ? 1600 : duration;
	
	var offsetTop = $("#left:first").offset().top;
	var scrollTop = $(document).scrollTop();
	var top = scrollTop - offsetTop;
	top = top > 0 ? top : 0;
	
	var height = $scrollfollow.height();
	var bottom = scrollTop + height;
	var offsetBottom = $("#footer:first").offset().top;
	
	var maxTop = offsetBottom - height - offsetTop;
	
	top = bottom > offsetBottom ? maxTop : top;
	
	$scrollfollow.css('position', 'relative');
	$scrollfollow.stop();
	if ($.browser.msie || !duration)
	{
		$scrollfollow.css('top', top);
	}
	else
	{
		$scrollfollow.animate({top:top},duration, 'easeOutQuart');
	}

}

$(function()
{
	$scrollfollow = $("#frame:first");
	
	$window = $(window);
	$window.bind('scroll', function()
	{
		onScroll();
	});
	$window.bind('resize', function()
	{
		onScroll();
	});
	onScroll();
});



var Mac = navigator.appVersion.indexOf('Mac',0) != -1;
var Win = navigator.appVersion.indexOf('Win',0) != -1;
var IE  = navigator.appName.indexOf("Microsoft Internet Explorer",0) != -1;
var NN  = navigator.appName.indexOf("Netscape",0) != -1;
var Moz = navigator.userAgent.indexOf("Gecko/",0) != -1;
var Opera = window.opera;
var Vmajor = parseInt(navigator.appVersion); // ex. 3
var Vminor = parseFloat(navigator.appVersion); // ex. 3.01

var MacIE4 = ((Mac && navigator.appVersion.indexOf('MSIE 4.',0) != -1));
var MacIE3 = ((Mac && navigator.appVersion.indexOf('MSIE 3.',0) != -1));

//

function scroll (target)
{
	var targetY = 0;
	if (IE && navigator.appVersion.indexOf("MSIE 8") == -1)
	{
		targetY = target == 'body' ? 0 : document.getElementById('container').offsetTop + document.getElementById(target).offsetTop;
	}
	else
	{
	targetY = document.getElementById(target).offsetTop;
	}
	var y = getScrollY (targetY);
	doScroll (target, y);
}

function getScrollY (y)
{
	var winHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
	var posFoot = document.getElementById('footer').offsetTop + 100;
	if (winHeight > (posFoot - y)) y -= winHeight - (posFoot - y);
	return y;
}

function doScroll (target, y)
{
	if (!MacIE3 && !MacIE4 && !NN && window.scrollTo || NN && (Vminor >= 4.75) && window.scrollTo) jumpTo(y, 0, 7, 14);
	else location.hash = target;
}

function getScrollTop ()
{
	if (IE) return document.documentElement.scrollTop || document.body.scrollTop;
	else if (NN) return window.pageYOffset;
	else return 0;
}

var Timer;
function jumpTo (dstY, srcY, frms, waitSec)
{
	if (Timer) clearTimeout(Timer);
	if (!dstY || dstY < 0) dstY = 0;
	if (!srcY) srcY = 0 + getScrollTop();
	if (!frms) frms = 5;
	if (!waitSec) waitSec = 20;
	srcY += (dstY - getScrollTop()) / frms;
	if (srcY < 0) srcY = 0;
	posY = Math.floor(srcY);
	window.scrollTo(0, posY);
	if (posY != dstY) Timer = setTimeout('jumpTo('+ dstY +', '+ srcY +', '+ frms +', '+ waitSec +')', waitSec);
	else if (posY == dstY) clearTimeout(Timer);
	else if (posY < 1) window.scroll(0, 0);
}

function wheel (event)
{
  clearTimeout(Timer);
}

if (window.addEventListener) window.addEventListener('DOMMouseScroll', wheel, false);
window.onmousewheel = document.onmousewheel = wheel;
