﻿/// <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));
      };
   });
};