(function($) {
	$.fn.extend({
		dropnav: function(settings) {
			var defaults = {
				topPosTweak: 0,
				rightPosTweak: 10,
				width: 200,
				itemHeight: 20,        
				columns: 2,
				noJavascriptClass: "subMenu"
			};
			var settings = $.extend(defaults, settings);
			var myMenu = $(this);
			$(myMenu).find("ul").css({
				"position": "absolute",
				"left": -9999
			});
			$(myMenu).find("ul").removeClass(settings.noJavascriptClass);
			$(myMenu).children("li").each(function(index) {
				var pos = $(this).position();
				var thisTop = settings.topPosTweak + pos.top + $(this).outerHeight();
				var parentMaxWidth = $(myMenu).position().left + $(myMenu).innerWidth() - settings.rightPosTweak;
				var rightEdge = pos.left + settings.width;
				var leftPos = pos.left;
				var itemWidth = (settings.width / settings.columns) - 1;
				if(rightEdge > parentMaxWidth) {
					leftPos = parentMaxWidth - settings.width - settings.rightPosTweak;
				}
				$(myMenu).children("li").children("ul").css({ "position": "absolute", "left": -9999 });
				$(this).children("ul").each(function(i) {
					//$(this).css({'margin-top' : '-'+settings.topPosTweak+'px', 'padding-top' : settings.topPosTweak+'px' });
					//$(this).css({'margin-top' : '-8px', 'padding-top' : '8px' });
					var topoffset = settings.topPosTweak;
					$(this).children("li").each(function(x) {
						var liPos = 0;
						var liHeight = (settings.itemHeight < $(this).outerHeight()) ? $(this).outerHeight() : settings.itemHeight;
						var floatDir = "left";
						var clear = "none";
						if ((x + 1) % settings.columns != 0) {
							liPos = itemWidth;
							floatDir = "right";
							topoffset += liHeight;
							clear = "both";
						}
						$(this).css({ "left": liPos, "top": topoffset, "width": itemWidth, "height": liHeight, "clear": clear });
						//$(this).css({ "left": liPos, "top": topoffset, "width": itemWidth, "height": liHeight, "clear": clear, "margin-top": settings.topPosTweak + "px", "padding-top": settings.topPosTweak + "px" });
					});
				});
				$(this).bind("mouseover", function(e) {
					$(myMenu).children("li").children("ul").css({ "position": "absolute", "left": -9999 });
					$(this).children("ul:first").css({ "position": "absolute", "left": leftPos, "top": thisTop, "width": settings.width });
					$(this).bind("mouseout", function(e) {
						$(this).children("ul:first").css({ "position": "absolute", "left": -9999 });
					});
				});
				$(this).children("ul:first").bind("mouseout", function(e) {
					$(this).parent().unbind("mouseout");
					$(this).css({"position": "absolute", "left": -9999 });
				});
			});
		}
	});
})(jQuery);
