﻿// JScript File

/**
 * Site Menu - jQuery plugin
 * By Alchemy Plus 
 * http://www.alchemyplus.com
 * 01/12/2011
**/


(function($) {
    var opts = new Array;
    
    $.fn.SiteMenu = function(options){
    
    InitMenu = function (el) 
    {
        opts[el.id] = $.extend({}, $.fn.SiteMenu.defaults, options);
        //
        opts[el.id].activeMenuElement = null;
        $(el).find(".headerMenuItem").hover(function(e) { MenuItem_mouseOver(e, $(this), el); }, function(e) { MenuItem_mouseOut(e, $(this), el); });
        $(el).find(".headerSubMenuContainer").hover(function() { ShowSubMenu(el); }, function() { HideSubMenu(el); });
    }
    
    MenuItem_mouseOver = function(e, el, panel) 
    {
        $(el).addClass("headerMenuItemOpen");
        opts[panel.id].activeMenuElement = el;
        var id = $(el).attr("id");
        var menuID = id.substring(0, id.lastIndexOf("_menu"));
        var subMenu = $("#" + menuID + "_submenu");
        if(subMenu.length > 0) 
        {
            $(panel).find(".headerSubMenuContainer").show();
            $(panel).find(".headerSubMenuContainer .headerSubMenuItem").hide();
            subMenu.show();
            // align sub menu
            var subMenu_left = 0;
            var firstItem_left = $(el).parent().children(".headerMenuItem").first().position().left;
            var lastItem = $(el).parent().children(".headerMenuItem").last();
            var lastItem_right = lastItem.position().left + lastItem.width();
            var currentItem_left = $(el).position().left;
            var subMenu_width = $(panel).find(".headerSubMenuContainer").width();
            subMenu_left = currentItem_left;
            if(subMenu_left + subMenu_width > lastItem_right) 
                subMenu_left = lastItem_right - subMenu_width;
            // allow for alignment of menu i.e. padding, margin, etc
            subMenu_left -= firstItem_left;
            $(panel).find(".headerSubMenuContainer").css({"margin-left": subMenu_left});
        }
        
    }
    
    MenuItem_mouseOut = function(e, el, panel)
    {
        $(el).removeClass("headerMenuItemOpen");
        $(panel).find(".headerSubMenuContainer").hide();
    }
    
    ShowSubMenu = function(el) 
    {
        var item = opts[el.id].activeMenuElement;
        $(item).addClass("headerMenuItemOpen");
        $(el).find(".headerSubMenuContainer").show();
    }
    
    HideSubMenu = function(el)
    {
        var item = opts[el.id].activeMenuElement;
        $(item).removeClass("headerMenuItemOpen");
        $(el).find(".headerSubMenuContainer").hide();
    }
    
	this.each (
		function(){ InitMenu(this); }
	);
		
};
	
	// default values
	$.fn.SiteMenu.defaults = {
	    menuID: ""
	};
	
})(jQuery);
