/*!
 * GMenu
 * Requires jQuery v1.4.2
 *
 * Support: http://www.gushu.cn/
 * Navigational Menu- By Dynamic Drive DHTML code library: http://www.dynamicdrive.com
 * Script Download/ instructions page: http://www.dynamicdrive.com/dynamicindex1/ddlevelsmenu/
 * 
 * Version: 1.0
 * Example: $('#Nav').gmenu({orientation:'h'});
 */
(function($) {
	$.fn.gmenu = function(options){
			var set = $.extend({
				orientation : 'h',/* 'h' is drop list,'v' is lateral list */
				downarrow : 'images/down.gif',
				rightarrow : 'images/right.gif',
				delay : '300'/* submenu delay time */
			},options)
			var navul=$(this).children('ul').find('ul').parent().hover(
				function(){$(this).children('a:eq(0)').addClass('selected')},
				function(){$(this).children('a:eq(0)').removeClass('selected')}
			).each(function(i){ //loop through each LI header
				$(this).children('ul:eq(0)').css({zIndex: 100000000+i});
				var subul=$(this).find('ul:eq(0)').css({display:'block'});
				this._dimensions={w:this.offsetWidth, h:this.offsetHeight, subulw:subul.outerWidth(), subulh:subul.outerHeight()};
				this.istopnav=$(this).parents("ul").length==1? true : false; //is top level header?
				subul.css({top:(this.istopnav && set.orientation!='v')? this._dimensions.h+"px" : 0});
				$(this).children("a:eq(0)").css(this.istopnav? {paddingRight:25} : {}).append( //add arrow images
					'<img src="'+ (this.istopnav && set.orientation!='v'? set.downarrow : set.rightarrow) +'" style="border:0;position:absolute;' + (this.istopnav && set.orientation!='v'? 'top:12px;right:6px;' : 'top:8px;right:6px;') + '" />');
				var targetul=$(this).children('ul:eq(0)');
				this._offsets={left:$(this).offset().left, top:$(this).offset().top};
				var menuleft=this.istopnav && set.orientation!='v'? 0 : this._dimensions.w;
				menuleft=(this._offsets.left+menuleft+this._dimensions.subulw>$(window).width())?(this.istopheader && set.orientation!='v'? -this._dimensions.subulw+this._dimensions.w:-this._dimensions.w):menuleft;
				$(this).hover(function(){
					if (targetul.queue().length<=1){
						targetul.animate({left:menuleft+'px',width:this._dimensions.subulw+'px',opacity:'show'},50);
					}
				},function(){
					targetul.delay(set.delay).animate({opacity:'hide'},100);
				})//end hover
			}) //end each()
			navul.find('ul').css({display:'none',visibility:'visible'})
	}
	
	$(function(){
		$('nav,.nav,#nav,div[gmenu]').gmenu();
	});
	
})(jQuery);

