// extends jquery as a db_dropdown method
// apply to the main nav ul or sidebar ul - use orientation to specify behavior

(function($){
	jQuery.fn.db_dropdown = function(opts) {
		
		var defaults = {
			slideDownSpeed 				: 200,
			slideUpSpeed 				: 200,
			orientation					: 'horizontal', // set to horizontal or vertical
			adjustHeight				: true,
			firstLevelPadding			: 1,
			secondLevelPadding			: 1,
			firstLevelOffset			: 0,
			secondLevelOffset			: 0
		};

		var opts = $.extend( defaults, opts );
		
		return this.each(function() {
			
			if(opts.orientation == 'horizontal' ) {
				
				$(this).find('li').css({'position':'relative','zoom':'1'}).find('ul').css({'display':'none', 'position' : 'absolute'});
				$(this).children('li').hover(
					function(){
						$(this).addClass('current');
						$(this).find('ul:first').css({	visibility: "visible", display: "none", 'top' : $(this).outerHeight() - 1 - opts.firstLevelOffset, "padding-top" : opts.firstLevelPadding + "px"} ).slideDown(opts.slideDownSpeed);
						if($(window).width() < $(this).find('ul:first').offset().left + $(this).find('ul:first').outerWidth()){
							$(this).find('ul:first').css({'left':'auto', 'right':'0'});
						} else {
							$(this).find('ul:first').css({'left':'0', 'right':'auto'});
						}
					},
					function(){
						$(this).find('ul:first').css({'left':'auto','right':'auto'}).slideUp(opts.slideUpSpeed).css({visibility: "hidden"});
						$(this).removeClass('current');
					}
				);
				
				$(this).find("li li").hover(
					function(){
						$(this).find('ul:first').css({visibility: "visible",display: "none",'left' : $(this).width() - 1 - opts.secondLevelOffset, "padding-left" : opts.secondLevelPadding + "px" }).slideDown(opts.slideDownSpeed);
					},
					function(){
						$(this).find('ul:first').slideUp(opts.slideUpSpeed).css({visibility: "hidden"});
					}
				);
				
				$(this).css({"z-index":"500", "zoom":"1"});
				if(opts.adjustHeight)$(this).height($(this).children("li").outerHeight());
			}
			
			
			if(opts.orientation == 'vertical') {
				$(this).find('li').css({'position':'relative', 'zoom':'1'}).find('ul').css({'display':'none', 'position' : 'absolute'});
				$(this).children('li').hover(function(){
					$(this).addClass('current');
					$(this).find('ul:first').css({visibility: "visible",display: "none", 'left' : $(this).outerWidth() - 1 - opts.firstLevelOffset, "padding-left" : opts.firstLevelPadding + "px", 'z-index':'200' }).slideDown(opts.slideDownSpeed);
				},function(){
					$(this).find('ul:first').slideUp(opts.slideUpSpeed).css({visibility: "hidden", display: 'none'});
					$(this).removeClass('current');
				});
				
				$(this).find("li li").hover(function(){
					$(this).find('ul:first').css({visibility: "visible",display: "none", 'left' : $(this).outerWidth() - 1 - opts.secondLevelOffset, "padding-left" : opts.secondLevePadding + "px", 'z-index':'200' }).slideDown(opts.slideDownSpeed);
				},function(){
					$(this).find('ul:first').slideUp(opts.slideUpSpeed).css({visibility: "hidden", display: 'none'});
				});
			}
		});
	};
})(jQuery);
