﻿/// <reference path="jquery-1.3.2.js"/>

jQuery.fn.makeMenu = function(options) {
    var defaults = { fadeIn: 200, fadeOut: 200 };
    options = $.extend(defaults, options);
    var menu = '#navmenu';
    var coll = '.group';
    var item = '.item';
    var icon = 'icon16rightarrow';

    return this.each(function() {

        var menu = $(this);

        menu.children(item).each(function(i) {
            $(this).hover(Show, function() { menu.children(item).children(coll).fadeOut(options.fadeOut); });
            Init($(this));
            $(this).f
        });

        function Init(node) {
            node.children(coll).children(item).each(function(i) {
                $(this).bind('mouseover', Show);

                if ($(this).children(coll).size() > 0)
                    $('<span class="' + icon + '"/>').appendTo($(this));

                $(this).hide();
                Init($(this));
            });
        };

        function Show() {
            if ($(this).parent(coll).size() > 0) {
                var width = ($(this)[0].clientWidth);
                $(this).children(coll).css('left', width);
            }
            else if ($(this).parent(menu).size() > 0) {
                var height = ($(this).parent(menu)[0].offsetHeight) - 4;
                $(this).children(coll).css('top', height);
            }

            Hide($(this).siblings(item));
            $(this).children(coll).fadeIn(options.fadeIn);
            $(this).children(coll).children(item).fadeIn(options.fadeIn);
        };

        function Hide(node) {
            node.children(coll).hide();

            if (node.children(coll).children(item).size() > 0)
                Hide(node.children(coll).children(item));
        };
    });
};
