var scrollInt
var scrTime, scrSt, scrDist, scrDur, scrInt, scrSl, scrDistX
function easeInOut(t,b,c,d) {	
	return (c/2 * (1 - Math.cos(Math.PI*t/d)) + b);
}
scrollPage = function(){	
	scrTime += scrInt	
	if (scrTime < scrDur) {		
		window.scrollTo(easeInOut(scrTime,scrSl,scrDistX,scrDur), easeInOut(scrTime,scrSt,scrDist,scrDur))
	} else {		
		window.scrollTo(scrSl+scrDistX, scrSt+scrDist)
		clearInterval(scrollInt)	
	}
}
jQuery.fn.extend({	
	smoothScroll : function(duration, velocity, marginLeft, marginTop)	{
		if(typeof(duration) == 'undefined') duration = 500
		if(typeof(velocity) == 'undefined') velocity = 10		
		if(typeof(marginLeft) == 'undefined') marginLeft = 0		
		if(typeof(marginTop) == 'undefined') marginTop = 0		
		this.click(function(){
			var element_id = $(this).attr("href")			
			var source_positions = {				
				top : $(this).get(0).offsetTop,				
				left : $(this).get(0).offsetLeft			
			}			
			var dest_positions = {				
				top : $(element_id).get(0).offsetTop-marginTop,
				left : $(element_id).get(0).offsetLeft-marginLeft			
			}			
			if (window.scrollY)	
				scrSt = window.scrollY
			else if (document.documentElement.scrollTop) 
				scrSt = document.documentElement.scrollTop
			else
				scrSt = document.body.scrollTop							
			
			if (window.scrollX)				
				scrSl = window.scrollX			
			else if (document.documentElement.scrollLeft)				
				scrSl = document.documentElement.scrollLeft			
			else
				scrSl = document.body.scrollLeft			
			
			scrDist = dest_positions.top - scrSt			
			scrDistX = dest_positions.left - scrSl			
			scrDur = 500			
			scrTime = 0			
			scrInt = 5			
			// set interval			
			clearInterval(scrollInt)
			scrollInt = setInterval(scrollPage, scrInt)			
			
			return false	
		})	
	}
});

