$(window).bind('load',calcSubmenuWidth).bind('resize',calcSubmenuWidth);

$.extend( jQuery.easing,
{
	easeInBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158;
		return c*(t/=d)*t*((s+1)*t - s) + b;
	},
	easeOutBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158;
		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
	}
});

$.fn.FFShow = function()
{
	return $(this).delay(100).animate({height:'67px',opacity:$.browser.msie?.5:1},300);
};

$.fn.FFHide = function()
{
	return $(this).stop().clearQueue().animate({height:'0px',opacity:0},300);
};


$(function()
{
	var _class="submenu-wrapper";
	if ($.browser.msie) _class+= ' ie';
	$('#header ul.topnavi > li').each(function()
	{
		if ($(this).children('.submenu').length > 0)
		{
			$("<div class='"+_class+"'></div>").appendTo(this).append($(this).children('.submenu'));
		}
	});
	$('#header .submenu-wrapper').css('opacity',0.2);
		
	calcSubmenuWidth();
	
	$('#header ul.topnavi>li>a').each(function()
	{
		if (this.href == location.href)
		{
			$(this).addClass('on').siblings('.submenu-wrapper').addClass('menu-on').FFShow();
		}
	});
	
	$('#header ul.topnavi .submenu>li>a').each(function()
	{
		if (this.href == location.href)
		{
			$(this).addClass('on').parents('.submenu-wrapper').addClass("menu-on").FFShow().siblings('a').addClass('on');
		}
	});
	
	$('#header ul.topnavi>li>a').not('.on').css('opacity',0.8);
	
	
	$('#header .topnavi').mouseleave(function()
	{
		$(this).find('.submenu-wrapper.menu-on').FFShow();
	});

	$('#header ul.topnavi>li').mouseenter(function()
	{
		$(this).children('a').stop().fadeTo(300,1);
		var menuOn = $(this).find('.menu-on');
		if (menuOn.length > 0)
		{
			if (menuOn.height() < 67) menuOn.FFShow();
			return;
		}
		$('#header .submenu-wrapper.menu-on').FFHide();
		$(this).children('.submenu-wrapper').FFShow();
	}).mouseleave(function()
	{
		if ($(this).find('.menu-on').length > 0) return;
		$(this).children('.submenu-wrapper').FFHide();
		if (!$(this).children('a').hasClass('on')) $(this).children('a').fadeTo(300,0.6);
	});
	
});

function calcSubmenuWidth()
{
	var headW = $('#header').width();
	
	var headLeft = $('#header .topnavi').offset().left;
	var headMenuWidth = $('#header .topnavi').width();
	$('#header .submenu-wrapper').each(function()
	{
		$(this).css('left', -1*headLeft +'px').css('width', headW+'px');
	});
	
	$('#header .topnavi>li>a').each(function()
	{
		var submenu = $(this).parent().find('.submenu');
		if (submenu.length > 0)
		{
			var left = $(this).offset().left;
			var _w = submenu.width();
			var sleft = left - (_w - $(this).width())/2;
			if (sleft < headLeft ) sleft = headLeft;
			if (sleft + _w > headMenuWidth+headLeft) sleft = headMenuWidth + headLeft - _w;
			submenu.css('left',sleft+'px');
		}
	});
	
}

