(function($){

    TWP.Module.Menu = function(setup){
        if(!setup){
            return;
        }

        var config = setup;
        var target = config.target;

        var utilityHt = $('#utility-wrapper').height();
        var animating = false;
        var currTarget = null;
        var wrapperExpanded = false;
        var intv = null;
        var prevItem = null;

        function init(){
            bindEvents();
        }

        function showDrop(){
            alert('')
        }

        function bindEvents(){
            if(!target){
                return;
            }

            var mainNav = target;
            var mainNavItems = [];
            var subNavItems = []

            for(var e=0;e<mainNav.childNodes.length;e=e+1){
                if(mainNav.childNodes[e].nodeType == 1 && mainNav.childNodes[e].nodeName == "LI" ){
                    mainNavItems.push(mainNav.childNodes[e]);
                }
            }


            // setup mouseover
            for(var a=0;a<mainNavItems.length;a=a+1){
                for(var b=0;b<mainNavItems[b].childNodes.length;b=b+1){
                    if(mainNavItems[b].nodeName == "A"){
                        var anchor = mainNavItems[b];
                        anchor.onmouseover = showDrop;
                        break;
                    }
                }
            }



            $(mainNavItems).each(function(){

               $('a.anchor', this).mouseover(function(e){
                    var self = this;

                    clearInterval(intv);
                    intv = null;

                    if(this == prevItem){
                        return;
                    }
                    
                    $(target).find('.active').removeClass('active');

                    $(this).addClass('active');
                    
                    $(target).find('div').removeAttr('style');

                    $(this).siblings('div').attr('style', 'display:block;');

                   function hideMenu(){
                       $('#utility-wrapper').animate({
                           height : utilityHt
                       }, 300, function(){
                            prevItem = null;
                       });
                   }

                    function trackEngagement(){
                        /*$(window).bind('mousemove', function(e){
                            currTarget = $(e.target);
                        });*/
                        
                        /*$('body').bind('mouseleave', function(){
                            hideMenu();
                        });

                        intv = setInterval(function(){
                            if($(currTarget).parents(target).length !== 1){
                                clearInterval(intv);
                                intv = null;
                                hideMenu();
                            }
                        }, 13);*/
                    }

                    if($('#utility-wrapper').height() != config.size){
                        if(animating){
                            return;
                        }

                        animating = true;

                        $('#utility-wrapper').animate({
                            height : config.size
                        }, 300, function(){
                            animating = false;
                            wrapperExpanded = true;
                        });
                    }

                    trackEngagement();

                    return false;
                });
            });
        }

        init();

        return {
            showSubnav : function(){

            },

            hideSubnav : function(){

            }
        }
    }
})(jQuery);
