var jqueryslidemenu = {
	animateduration: {over: 0, out: 0},
	arrowimages: {down:['downarrowclass', '/images/down.gif', 23], right:['rightarrowclass', '/images/right.gif']},
	
	buildmenu:function(menuid, type) {
		jQuery(document).ready(function($) {
			var $mainmenu = $("#"+menuid+">ul");
			var $headers = $mainmenu.find("ul").parent();
			$headers.each(function(i) {
				var $subul = $(this).find('ul:eq(0)');
				this._dimensions = {
                    w: this.offsetWidth,
                    h: this.offsetHeight,
                    subulw: $subul.outerWidth(),
                    subulh: $subul.outerHeight()
                };
				this.istopheader = $(this).parents("ul").length == 1 ? true : false;
				$subul.css({left: this.istopheader ? this._dimensions.w+"px" : 0});
	
				if (type == 2)
					$(this).children("a:eq(0)").css(this.istopheader ? {paddingRight: "10"} : {}).append('<img src="'+ (jqueryslidemenu.arrowimages.right[1]) + '" class="' + (jqueryslidemenu.arrowimages.right[0]) + '" style="border:0;" vspace="3" />');
				else
					$(this).children("a:eq(0)").css(this.istopheader ? {paddingRight: jqueryslidemenu.arrowimages.down[2]} : {}).append('<img src="'+ (this.istopheader? jqueryslidemenu.arrowimages.down[1] : jqueryslidemenu.arrowimages.right[1])	+'" class="' + (this.istopheader ? jqueryslidemenu.arrowimages.down[0] : jqueryslidemenu.arrowimages.right[0])+ '" style="border:0;" />');
	
				$(this).hover(
					function(e){
                        var $targetul = $(this).children("ul:eq(0)");
                        
                        this._offsets = {
                            left: $(this).offset().left,
                            top: $(this).offset().top
                        };
                        $(this).css({});

                        if (type == 2){
                            var menuleft = this._dimensions.w;
                            $targetul.css({top:"0px"});
                        } else
                            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;
                        $targetul.css({
                            left: menuleft + "px",
                            width: this._dimensions.subulw + 'px'
                        });
                        //$('#header-left').html('offset().left: ' + $targetul.offset().left + ', offset().top: ' + $targetul.offset().top + ', width(): ' + $targetul.width() + ', height(): ' + $targetul.height());
                        if ( jqueryslidemenu.animateduration.over > 0 )
                            $targetul.slideDown(jqueryslidemenu.animateduration.over);
                        else
                            $targetul.show();
                    },
					function(e){
                        var $targetul = $(this).children("ul:eq(0)");
                        if ( jqueryslidemenu.animateduration.out > 0 )
                            $targetul.slideUp(jqueryslidemenu.animateduration.out);
                        else
                            $targetul.hide();
                    }
				)
			})
			$mainmenu.find("ul").css({display:'none', visibility:'visible'});
		})
	}
};

