/*
 * jQuery Vertical Dropdown Menu v0.1
 *
 * Copyright (c) 2009 Kiwi Creation
 * http://www.kiwicreation.ca/
 *
 * Author: David Arpin
 * Date: 2009-09-26
 */
 
(function($){  
	$.fn.dropdown = function(options) { 
		var settings = {
        	delay		: '100',
			downclass	: 'downarrowclass',
			downimage	: '/images/down.gif',
			rightclass	: 'rightarrow',
			rightimage	: '/images/rightarrow.png'
        };
		$.extend(settings, options);
        return this.each(function() {   
            $.dropdown(this, settings);
        });
	};
	
	$.dropdown = function(mainmenu, settings) {
		var menus = $(mainmenu).find("ul").parent();
		menus.each(function(i){
			var currentmenu = $(this);
			var submenu = $(this).find('ul:eq(0)');
			this.dimensions = {
				width 			: this.offsetWidth, 
				height 			: this.offsetHeight, 
				submenuwidth 	: submenu.outerWidth(), 
				submenuheight 	: submenu.outerHeight()
			};
			this.istopmenu = currentmenu.parents("ul").length == 1 ? true : false;
			submenu.css({top:this.istopmenu ? this.dimensions.height + "px" : 0});
			currentmenu.children("a:eq(0)").append(
				'<img src="'+ settings.rightimage +'" class="' + settings.rightclass + '" style="border:0;" />'
			);
			currentmenu.hover(function() {
					var targetmenu=$(this).children("ul:eq(0)");
					this.offsets = {
						left : $(this).offset().left, 
						top  : $(this).offset().top
					};
					var menuleft = this.dimensions.width;
					menuleft = (this.offsets.left + menuleft + this.dimensions.submenuw > $(window).width()) ? (this.istopmenu ? -this.dimensions.submenuwidth + this.dimensions.width : -this.dimensions.width) : menuleft;
					if (targetmenu.queue().length <= 1) {
						targetmenu.css({
							left	: menuleft + "px", 
							top		: 0
						}).fadeIn(100);
					}
				},
				function(e){
					var targetmenu = $(this).children("ul:eq(0)");
					targetmenu.fadeOut(100);
				}
			)
		})
		$(mainmenu).find("ul").css({display:'none', visibility:'visible'})
	}; 
})(jQuery);