$(document).ready(function()
{
	slide("#navigation", 7, 0, 150, .8);
});

function slide(navigation_id, pad_out, pad_in, time, multiplier)
{
	// creates the target paths
	var list_elements = navigation_id + " li.sliding-element";
	var link_elements = list_elements + " > a";
	var submenu_link_elements = list_elements + " > ul > li > a";
	
	// initiates the timer used for the sliding animation
	var timer = 0;
	
	// creates the slide animation for all list elements 
	$(list_elements).each(function(i)
	{
		// margin left = - ([width of element] + [total vertical padding of element])
		$(this).css("margin-left","-180px");
		// updates timer
		timer = (timer*multiplier + time);
		$(this).animate({ marginLeft: "0" }, timer);
		$(this).animate({ marginLeft: "15px" }, timer);
		$(this).animate({ marginLeft: "0" }, timer);
	});

	$(navigation_id).mouseleave(
		function()
		{
			$(".active ul > li").show();
	});

	// creates the hover-slide effect for non-active and non-submenu link elements 
	$(link_elements).not('.submenu').each(function(i)
	{
		$(this).mouseenter(
		function()
		{
			$(this).animate({ paddingLeft: pad_out }, 150);	
			$(".active ul").show();
			$(".submenu ul").hide();
		});
		
		$(this).mouseleave(
		function()
		{
			$(this).animate({ paddingLeft: pad_in }, 150);
			$(".active ul").show();
			$(".submenu ul").hide();
		});
	});
	
	// creates the hover-slide effect for submenu link elements 
	$(link_elements).filter('.submenu').each(function(i)
	{
		$(this).mouseenter(
		function()
		{
			$(this).animate({ paddingLeft: pad_out }, 150);			
			$(".active ul").hide();
			$(".submenu ul").show();
		});
		
		$(this).mouseleave(
		function()
		{
			$(this).animate({ paddingLeft: pad_in }, 150);
		});
	});
	
	// creates the hover-slide effect for submenu link elements 
	$(submenu_link_elements).each(function(i)
	{
		$(this).mouseenter(
		function()
		{
			$(this).animate({ paddingLeft: pad_out }, 150);			
		});
		
		$(this).mouseleave(
		function()
		{
			$(this).animate({ paddingLeft: pad_in }, 150);
		});
	});
}
