function PortfolioVert(id, lBtnId, rBtnId)
{
	var scrollArea;
	var scrollAreaHeight;
	var scrolledBlock;
	var scrolledBlockHeight;
	var itemHeight = 0;
	var scrollYPos = 0;
	var scrollYTarget;
	
	var items = new Array();
	var lBtn = document.getElementById(lBtnId);
	var rBtn = document.getElementById(rBtnId);
	
	var currentSpeed = 0;
	var a = 1;
	var maxSpeed = 20;
	var aK = 1;
	
	scrollArea = document.getElementById(id);
	if(scrollArea == null)
	{
		return;
	}
	init();
	
	function init()
	{
		var i;
		for(i=0; i<scrollArea.childNodes.length; i++)
		{
			if(scrollArea.childNodes[i].tagName == "UL")
			{
				scrolledBlock = scrollArea.childNodes[i];
			}
		}
		for(i=0; i<scrolledBlock.childNodes.length; i++)
		{
			if(scrolledBlock.childNodes[i].tagName == "LI")
			{
				items.push(scrolledBlock.childNodes[i]);
			}
		}
		
		lBtn.onclick = _lBtnClickHandler;
		rBtn.onclick = _rBtnClickHandler;
		itemHeight = items[0].offsetHeight;
		scrolledBlockHeight = itemHeight*items.length;
		scrollAreaHeight = scrollArea.offsetHeight;
		render();
	}
	function render()
	{
		if(scrolledBlock.offsetTop>=0)
		{
			lBtn.className = "passive";
			lBtn.onclick = function () {return false};
		}
		else
		{
			lBtn.className = "active";
			lBtn.onclick = _lBtnClickHandler;
		}
		//alert(scrolledBlockHeight);
		if(scrollAreaHeight-(scrolledBlockHeight-Math.abs(scrolledBlock.offsetTop)) >= 0)
		{
			rBtn.className = "passive";
			rBtn.onclick = function () {return false};
		}
		else
		{
			rBtn.className = "active";
			rBtn.onclick = _rBtnClickHandler;
		}
	}
	function startMoveTop()
	{
		setTimeout(moveTop, 30);
		currentSpeed = 0;
		aK=1;
		
	}
	function moveTop()
	{
		if(currentSpeed<maxSpeed || aK<0)
		{
			currentSpeed=currentSpeed+a*aK;
		}
		stopDist = -(scrollYTarget-scrollYPos);
		if(stopDist <= (0-Math.pow(currentSpeed,2))/(-2*a))
		{
			//alert(stopDist);
			aK = -1;
		}
		scrollYPos -= currentSpeed;
		scrolledBlock.style.top = scrollYPos+"px";
		if(scrollYPos<=scrollYTarget)
		{
			scrollYPos = scrollYTarget;
			scrolledBlock.style.top = scrollYPos+"px";
			render();
			return false;
		}
		setTimeout(moveTop, 30);
	}
	
	function startMoveBottom()
	{
		setTimeout(moveBottom, 30);
		currentSpeed = 0;
		aK=1;
	}
	function moveBottom()
	{
		if(currentSpeed<maxSpeed || aK<0)
		{
			currentSpeed=currentSpeed+a*aK;
		}
		stopDist = scrollYTarget-scrollYPos;
		if(stopDist <= (0-Math.pow(currentSpeed,2))/(-2*a))
		{
			aK = -1;
		}
		scrollYPos += currentSpeed;
		scrolledBlock.style.top = scrollYPos+"px";
		if(scrollYPos>=scrollYTarget)
		{
			scrollYPos = scrollYTarget;
			scrolledBlock.style.top = scrollYPos+"px";
			render()
			return false;
		}
		setTimeout(moveBottom, 30);
	}
	function _lBtnClickHandler()
	{
		var tempHeight;
		scrollAreaHeight = scrollArea.offsetHeight;
		tempHeight = Math.floor(scrollAreaHeight/itemHeight)*itemHeight;
		scrollYTarget = scrollYPos+tempHeight;
		if(Math.ceil(scrollYTarget/itemHeight)>(scrollYTarget/itemHeight))
		{
			scrollYTarget = itemHeight*Math.ceil(scrollYTarget/itemHeight);
		}
		if(scrollYTarget>0)
		{
			scrollYTarget = 0;
 		}
		
		startMoveBottom();
		return false;
	}
	function _rBtnClickHandler()
	{
		var tempHeight;
		scrollAreaHeight = scrollArea.offsetHeight;
		tempHeight = Math.floor(scrollAreaHeight/itemHeight)*itemHeight;
		scrollYTarget = scrollYPos-tempHeight;
		
		if((scrolledBlockHeight-Math.abs(scrollYTarget)) < scrollAreaHeight)
		{
			//alert(scrolledBlockHeight-Math.abs(scrollYTarget));
			scrollYTarget+= scrollAreaHeight-(scrolledBlockHeight-Math.abs(scrollYTarget));
 		}
		
		startMoveTop();
		return false;
	}
}

