/*********************
//* jQuery Multi Level CSS Menu #2- By Dynamic Drive: http://www.dynamicdrive.com/
//* Last update: Nov 7th, 08': Limit # of queued animations to minmize animation stuttering
//* Menu avaiable at DD CSS Library: http://www.dynamicdrive.com/style/
//* http://www.dynamicdrive.com/style/csslibrary/item/jquery_multi_level_css_menu_2/P170/
*********************/

// CONFIGURATION SECTION
// specify if ANY arrows should be shown
var boolArrow = 1;
// specify if DOWN arrows should be shown
var boolDownArrow = 0;
// path to down-arrow relative to root or document where menu exists
var pathDownArrow = "scripts/jqueryslidemenu/down.gif"; 
	// pathDownArrow = "http://"+window.location.hostname+pathDownArrow // may be more flexible than root
// path to right-arrow relative to root or document where menu exists
var pathRightArrow = "scripts/jqueryslidemenu/right.gif"; 
	// pathRightArrow = "http://"+window.location.hostname+pathRightArrow // may be more flexible than root
var padDownArrow = 23; // amount of padding-right to add to top-level items as space for down arrows
var animateIn = 500; //duration of slide in animation, in milliseconds
var animateOut = 600; //duration of slide out animation, in milliseconds

//Specify full URL to down and right arrow images (23 is padding-right to add to top level LIs with drop downs):
var arrowimages={down:['downarrowclass', pathDownArrow, padDownArrow], right:['rightarrowclass', pathRightArrow]}

var jqueryslidemenu={

animateduration: {over: animateIn, out: animateOut}, //duration of slide in/ out animation, in milliseconds

buildmenu:function(menuid, arrowsvar){
	jQuery(document).ready(function($){
		var $mainmenu=$("#"+menuid+">ul")
		var $headers=$mainmenu.find("ul").parent()
		$headers.each(function(i){
			var $curobj=$(this)
			var $subul=$(this).find('ul:eq(0)')
			this._dimensions={w:this.offsetWidth, h:this.offsetHeight, subulw:$subul.outerWidth(), subulh:$subul.outerHeight()}
			this.istopheader=$curobj.parents("ul").length==1? true : false
			$subul.css({top:this.istopheader? this._dimensions.h+"px" : 0})
			/*Crude ... but easier to duplicate the statements
					no arrows? skip it all
					no down arrows?
						top header? skip it all
						subheader? do it.
					yes down arrows.
						top header or subheader, do it.
			*/
			if (boolArrow) {
			// no arrows? skip it all
				if (boolDownArrow==0) {
				// no down arrows.
				// top header? skip it all
					if (this.istopheader) { /*skip*/ }
				// subheader? do it.
					else {
					$curobj.children("a:eq(0)").css(this.istopheader? {paddingRight: arrowsvar.down[2]} : { /*skip*/ }).append('<img src="'+ (this.istopheader? arrowsvar.down[1] : arrowsvar.right[1])+'" class="' + (this.istopheader? arrowsvar.down[0] : arrowsvar.right[0])	+ '" style="border:0;" />')
					}
				}
				// yes down arrows.
				// top header or subheader, do it.
				else {
				$curobj.children("a:eq(0)").css(this.istopheader? {paddingRight: arrowsvar.down[2]} : {}).append('<img src="'+ (this.istopheader? arrowsvar.down[1] : arrowsvar.right[1])+'" class="' + (this.istopheader? arrowsvar.down[0] : arrowsvar.right[0])	+ '" style="border:0;" />')
				}
			}
			$curobj.hover(
				function(e){
					var $targetul=$(this).children("ul:eq(0)")
					this._offsets={left:$(this).offset().left, top:$(this).offset().top}
					var menuleft=this.istopheader? 0 : this._dimensions.w
					menuleft=(this._offsets.left+menuleft+this._dimensions.subulw>$(window).width())? (this.istopheader? -this._dimensions.subulw+this._dimensions.w : -this._dimensions.w) : menuleft
					if ($targetul.queue().length<=1) //if 1 or less queued animations
						$targetul.css({left:menuleft+"px", width:this._dimensions.subulw+'px'}).slideDown(jqueryslidemenu.animateduration.over)
				},
				function(e){
					var $targetul=$(this).children("ul:eq(0)")
					$targetul.slideUp(jqueryslidemenu.animateduration.out)
				}
			) //end hover
		}) //end $headers.each()
		$mainmenu.find("ul").css({display:'none', visibility:'visible'})
	}) //end document.ready
}
}

//build menu with ID="myslidemenu" on page:
jqueryslidemenu.buildmenu("myslidemenu", arrowimages)
