(function($){
    $.menuFollow = function(options){
        var self = this;
        self.init = function(){
            self.options = $.extend({},options);
            self.overElement = $('.naviArr');
            $('.topMenu a').hover(function(){
                self.show(this);
            },function(){
                self.hide(this);
            });
            self.selected();
        };

        self.show = function(element){
            clearTimeout(self.hideHandler);
            clearTimeout(self.showHandler);
            self.showHandler = setTimeout(function(){
                var pos = $(element).position();
                self.overElement.show().animate({left: pos.left + 29},300,'easeOutQuint');
            }, 100);
        };

        self.hide = function(element){
            clearTimeout(self.hideHandler);
            clearTimeout(self.showHandler);
            self.hideHandler = setTimeout(function(){
                if (!self.selected()) {
                    self.overElement.fadeOut(100);
                }
            }, 500);
        };

        self.selected = function(){
            var selectedElement = $('.topMenu a.selected');
            if (selectedElement.length > 0){
                var pos = selectedElement.position();
                if ('none' == self.overElement.css('display')) {
                    self.overElement.css({left: pos.left + 29});
                    self.overElement.fadeIn();
                    return true;
                } else {
                    self.show(selectedElement);
                    return true;
                }
            }
            return false;
        };
        self.init();
    };
    $(document).ready(function(){
        $.menuFollow();
    });
})(jQuery);
