function initMainNav(mainNavSelector)
{	 
	var mainNav = jQuery(mainNavSelector);
	var mainNavWrapper = mainNav.parent();
	
	var mainNavWrapperInfo = {
								left: parseInt(mainNavWrapper.css('left')),
								width: parseInt(mainNavWrapper.width())
							};
							
	mainNav.find('ul')
		.each(function()
				{
					var subNav = jQuery(this);
					var subNavWrapper = subNav.parent();
					resizeNav(subNav);
					positionNav(subNav, subNavWrapper, mainNavWrapperInfo);
				})
	mainNav
		.superfish({
								 autoArrows: false
							 });
	mainNav.css('visibility', 'visible');
}

function resizeNav(nav)
{
	var w = 0;
	jQuery(nav).find('>li>a')
		.each(function()
				{
					var li = jQuery(this);
					w += li.outerWidth({margin: true});
				});
	nav.css('width', (w + 20) + 'px');
}

function positionNav(nav, navWrapper, mainNavWrapperInfo)
{
	var wrapperInfo = {
							width: navWrapper.outerWidth()
						};
						
	var navInfo = {
					width: nav.width()
				};
					
	var navLeftMargin = wrapperInfo.width/2 - navInfo.width/2;
	
	nav.css({
				marginLeft: navLeftMargin + 'px'
			});
	
	navLeftOverflow = nav.offset().left - mainNavWrapperInfo.left;

	navRightOverflow = mainNavWrapperInfo.width - navInfo.width;
	
	if (navLeftOverflow < 0)
		navLeftMargin =  navLeftMargin - navLeftOverflow
	else if (navRightOverflow < 0)
		navLeftMargin =  navLeftMargin + navRightOverflow;
					
	nav.css({
				marginLeft: navLeftMargin + 'px'
			})				
}

jQuery(function(){
								
	// init main nav
	initMainNav('ul#MainNav');
});