$(function () {
    $("a[href='#']").attr('href', 'javascript: void(0)');
    // 导航栏标识动画
    var $current = $('#navbar .current');
    $current.removeClass('current');
    var underline = document.createElement('li');
    $('#navbar').append(underline);
    var $underline = $(underline);
    $underline.addClass('current');
    $underline.css({
        'position': 'absolute',
        'height': '3px',
        'top': '73px',
        'width': $current.width()
    });
    $underline.offset({ 'left': $current.offset().left, 'top': $underline.offset().top });
    var left_fix = $('#navbar li').eq(0).offset().left;
    var hover_item = function(item) {
        $underline.stop(true);
        $underline.animate({
            'left': item.offset().left - left_fix,
            'width': item.width()
        }, 'slow');
    };
    var leave_item = function() {
        hover_item($current);
    };
    $('#navbar li[id]').hover(
        function() { hover_item($(this)); },
        function() { leave_item(); }
    );
    $('#navmenu ul').hover(
        function() { hover_item($('#nav_' + $(this).attr('id').substr(8))); },
        function() { leave_item(); }
    );
    // 导航栏菜单
    $menus = $('#navmenu ul');
    $('#navbar').children().each(function () {
        var $this = $(this);
        var id = $this.attr('id');
        if (id.substr(0, 4) != 'nav_')
            return;
        var $menu = $('#navmenu_' + id.substr(4));
        if ($menu.length) {
            $menu.width($this.width());
            $menu.offset({
                'top': $this.offset().top - $menu.height() - 6,
                'left': $this.offset().left
            });
            var height = $menu.height();
            var offset = $menu.offset();
            $menu.hide();
            $this.mouseenter(function () {
                if ($this.data('timeout')) {
                    clearTimeout($this.data('timeout'));
                    $this.removeData('timeout');
                }
                if ($menu.is(':hidden')) {
                    $menus.stop();
                    $menus.hide();
                    $menu.show();
                    $menu.height(0);
                    $menu.offset({ 'top': offset.top + height - 6, 'left': offset.left });
                    $menu.animate({
                        'height': height,
                        'top': offset.top
                    }, 'fast');
                }
            });
            var settimeout = function() {
                return setTimeout(function() {
                    $menu.stop();
                    $menu.hide();
                }, 100);
            };
            $this.mouseleave(function() {
                $this.data('timeout', settimeout());
            });
            $menu.mouseenter(function () {
                clearTimeout($this.data('timeout'));
                $this.removeData('timeout');
            });
            $menu.mouseleave(function () {
                $this.data('timeout', settimeout());
            });
        } else {
            $this.mouseenter(function () {
                $menus.stop();
                $menus.hide();
            });
        }
    });
});
