﻿var arrowimages = { down: ['downarrowclass', '/images/arrow-down.gif', 20], right: ['rightarrowclass', '/images/arrow-right.gif'] }

var jquerycssmenu = {

    //duration of fade in/ out animation, in milliseconds
    fadesettings: { overduration: 350, outduration: 100 },

    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(), left: this.left }
                this.istopheader = $curobj.parents("ul").length == 1 ? true : false

                // Down Menu
                //$subul.css({ top: this.istopheader ? this._dimensions.h + "px" : 0 }) 

                $subul.css({ top: this.istopheader ? ((this._dimensions.subulh) * -1) + "px" : ((this._dimensions.h) * -1) + "px" })  // Up Menu

                $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 debugHtml = "";
				    var negativeOffset = 0;
				    var mainNavLeft = $("#mainNav").position().left;

				    if ($curobj.tagName != "a")
				    {
				        var $targetul = $(this).children("ul:eq(0)")

				        // Down Menu
				        this._offsets = { left: $(this).offset().left, top: $(this).offset().top }

				        // Subs Centered on parent 
				        var menuleft = this.istopheader ? ((this._dimensions.subulw / 2) * -1) + (this._dimensions.w / 2) : this._dimensions.w

				        //Regular left justified subs
				        //var menuleft = this.istopheader ? 0 : this._dimensions.w


				        debugHtml += "<p>Start Menu Left : " + menuleft + "</p>";
				        debugHtml += "<p>Offset Left : " + this._offsets.left + "</p>";

				        //Check Left edge
				        if ((menuleft + $(this).position().left) < mainNavLeft)
				        {
				            menuleft = mainNavLeft - $(this).position().left;
				        }

				        var mainNavWidth = parseInt($("#mainNav").css("width"));
				        var menuWidth = parseInt($("#menu").css("width"));

                        //Check Right edge
				        if (($(this).position().left + this._dimensions.subulw) > mainNavWidth)
				        {
				            menuleft = ((mainNavWidth - this._dimensions.subulw) - $(this).position().left);
				        }

				        var subRightEdge = this._offsets.left + menuleft + this._dimensions.subulw;

				        //Original
				        //menuleft = (this._offsets.left + menuleft + this._dimensions.subulw > $(window).width()) ? (this.istopheader ? -this._dimensions.subulw + this._dimensions.w : -this._dimensions.subulw) : menuleft

    			        menuleft = (subRightEdge > $(window).width()) ? (this.istopheader ? -this._dimensions.subulw + this._dimensions.w : -this._dimensions.subulw) : menuleft


				        $targetul.css({ left: menuleft + "px" }).fadeIn(jquerycssmenu.fadesettings.overduration);

				    }
				},
				function(e)
				{
				    $(this).children("ul:eq(0)").fadeOut(jquerycssmenu.fadesettings.outduration)
				}
			) //end hover
            }) //end $headers.each()


            $mainmenu.find("ul").css({ display: 'none', visibility: 'visible' })

            //center the menu in its container
            var menuLeft = ($("#" + menuid).outerWidth() - $mainmenu.outerWidth()) / 2 + "px";
            //$mainmenu.css({ left: menuLeft })
            //center the Mini menu in its container
            var footerLeft = ($("#footer").outerWidth() - $("#miniNav").outerWidth()) / 2 + "px";
            $("#miniNav").css({ left: footerLeft })

        }) //end document.ready
    }

}
//build menu with ID="myjquerymenu" on page:
jquerycssmenu.buildmenu("menu", arrowimages)





$(document).ready(function()
{
    /* CONFIG */
    /* set start (sY) and finish (fY) heights for the list items */

    sY = 24; /* height of li.sub */
    fY = 165; /* height of maximum sub lines * sub line height */
    /* end CONFIG */

    /* open first list item */
    animate(fY)

    $("#slide .sub").click(function()
    {
        //alert(this.className.indexOf('item'));
        //if (this.className.indexOf('item') != -1)
        //{
        if (this.className.indexOf('clicked') != -1)
        {
            animate(sY)
            $(this).removeClass('clicked')
            //.css("background", "#eee url(arrows/out.gif) no-repeat 5px 8px")
            //.css("color", "#000");
        }
        else
        {
            animate(sY)
            $('.clicked').removeClass('clicked')
            //.css("background", "#eee url(arrows/out.gif) no-repeat 5px 8px")
            //.css("color", "#000");
            $(this).addClass('clicked');
            animate(fY)
        }
        // }
    });

    $("#nbSlide .sub").click(function()
    {
        //alert(this.className.indexOf('item'));
        //if (this.className.indexOf('item') != -1)
        //{
        if (this.className.indexOf('clicked') != -1)
        {
            animate(sY)
            $(this).removeClass('clicked')
            //.css("background", "#eee url(arrows/out.gif) no-repeat 5px 8px")
            //.css("color", "#000");
        }
        else
        {
            animate(sY)
            $('.clicked').removeClass('clicked')
            //.css("background", "#eee url(arrows/out.gif) no-repeat 5px 8px")
            //.css("color", "#000");
            $(this).addClass('clicked');
            animate(fY - 35)
        }
        // }
    });





    function animate(pY)
    {
        $('.clicked').animate({ "height": pY + "px" }, 500);
    }

    $("#slide .sub").hover(function()
    {
        //$(this).css("background", "#ddd url(arrows/down.gif) no-repeat 5px 8px")
        //.css("color", "#c00");
    }, function()
    {
        if (this.className.indexOf('clicked') == -1)
        {
            //$(this).css("background", "#eee url(arrows/out.gif) no-repeat 5px 8px")
            //.css("color", "#000");
        }
    });

    $("#nbSlide .sub").hover(function()
    {
        //$(this).css("background", "#ddd url(arrows/down.gif) no-repeat 5px 8px")
        //.css("color", "#c00");
    }, function()
    {
        if (this.className.indexOf('clicked') == -1)
        {
            //$(this).css("background", "#eee url(arrows/out.gif) no-repeat 5px 8px")
            //.css("color", "#000");
        }
    });

});

    
    



