	// Requires jQuery 1.3.x
	// Tested with jQuery 1.4.3
	// jsddm.js
	
	jQuery.fn.jsddm = function() {
		return this.each(function() {
		
			var root = $(this);
		
			$(root).addClass("jsddm");
			$(root).find('ul.subMenu').addClass('jsddm').hide();
		
			$(root).parent().find('.jsddm').each(function(intIndex) {
				var menu = $(this);
				
				// Menu Properties
				$(menu).data('timeout', 1000);
				$(menu).data('ddmenuitem', 0);
				$(menu).data('uid', '.jsddm_uid_'+intIndex);
				$(menu).data('tid', 0);
				$(menu).addClass('jsddm_uid_'+intIndex);
				
				// Mouse Over
				$(menu).children("li").bind('mouseover', function() {
					var parent = $(this).parent();
					
					clearTimeout(parent.data('tid'));
					$(this).trigger('close');
					
					parent.data('ddmenuitem', $(this).children('.jsddm').show());
				});
				
				// Mouse Out
				$(menu).children("li").bind('mouseout', function() {
					var parent = $(this).parent();
					
					var uid = parent.data('uid');
					var tid = parent.data('tid');
					
					clearTimeout(tid);
					tid = setTimeout(
						function() {
							$(uid).data('ddmenuitem').hide();
						},
						parent.data('timeout')
					);
					parent.data('tid', tid);
				});
				
				// Close Menu
				$(menu).bind('close', function() {
					if ($(this).data('ddmenuitem')) {
						$(this).data('ddmenuitem').hide();
					}
				});
			});
		});
	};
	// Hide all menus when clicking anywhere.
	document.onclick = function(){
		$(".jsddm").trigger('close');
	};
