/* 
 | 
 * metismenu - v1.1.3 
 | 
 * Easy menu jQuery plugin for Twitter Bootstrap 3 
 | 
 * https://github.com/onokumus/metisMenu 
 | 
 * 
 | 
 * Made by Osman Nuri Okumus 
 | 
 * Under MIT License 
 | 
 */ 
 | 
;(function($, window, document, undefined) { 
 | 
  
 | 
    var pluginName = "metisMenu", 
 | 
        defaults = { 
 | 
            toggle: true, 
 | 
            doubleTapToGo: false 
 | 
        }; 
 | 
  
 | 
    function Plugin(element, options) { 
 | 
        this.element = $(element); 
 | 
        this.settings = $.extend({}, defaults, options); 
 | 
        this._defaults = defaults; 
 | 
        this._name = pluginName; 
 | 
        this.init(); 
 | 
    } 
 | 
  
 | 
    Plugin.prototype = { 
 | 
        init: function() { 
 | 
  
 | 
            var $this = this.element, 
 | 
                $toggle = this.settings.toggle, 
 | 
                obj = this; 
 | 
  
 | 
            if (this.isIE() <= 9) { 
 | 
                $this.find("li.active").has("ul").children("ul").collapse("show"); 
 | 
                $this.find("li").not(".active").has("ul").children("ul").collapse("hide"); 
 | 
            } else { 
 | 
                $this.find("li.active").has("ul").children("ul").addClass("collapse in"); 
 | 
                $this.find("li").not(".active").has("ul").children("ul").addClass("collapse"); 
 | 
            } 
 | 
  
 | 
            //add the "doubleTapToGo" class to active items if needed 
 | 
            if (obj.settings.doubleTapToGo) { 
 | 
                $this.find("li.active").has("ul").children("a").addClass("doubleTapToGo"); 
 | 
            } 
 | 
  
 | 
            $this.find("li").has("ul").children("a").on("click" + "." + pluginName, function(e) { 
 | 
                e.preventDefault(); 
 | 
  
 | 
                //Do we need to enable the double tap 
 | 
                if (obj.settings.doubleTapToGo) { 
 | 
  
 | 
                    //if we hit a second time on the link and the href is valid, navigate to that url 
 | 
                    if (obj.doubleTapToGo($(this)) && $(this).attr("href") !== "#" && $(this).attr("href") !== "") { 
 | 
                        e.stopPropagation(); 
 | 
                        document.location = $(this).attr("href"); 
 | 
                        return; 
 | 
                    } 
 | 
                } 
 | 
  
 | 
                $(this).parent("li").toggleClass("active").children("ul").collapse("toggle"); 
 | 
  
 | 
                if ($toggle) { 
 | 
                    $(this).parent("li").siblings().removeClass("active").children("ul.in").collapse("hide"); 
 | 
                } 
 | 
  
 | 
            }); 
 | 
        }, 
 | 
  
 | 
        isIE: function() { //https://gist.github.com/padolsey/527683 
 | 
            var undef, 
 | 
                v = 3, 
 | 
                div = document.createElement("div"), 
 | 
                all = div.getElementsByTagName("i"); 
 | 
  
 | 
            while ( 
 | 
                div.innerHTML = "<!--[if gt IE " + (++v) + "]><i></i><![endif]-->", 
 | 
                all[0] 
 | 
            ) { 
 | 
                return v > 4 ? v : undef; 
 | 
            } 
 | 
        }, 
 | 
  
 | 
        //Enable the link on the second click. 
 | 
        doubleTapToGo: function(elem) { 
 | 
            var $this = this.element; 
 | 
  
 | 
            //if the class "doubleTapToGo" exists, remove it and return 
 | 
            if (elem.hasClass("doubleTapToGo")) { 
 | 
                elem.removeClass("doubleTapToGo"); 
 | 
                return true; 
 | 
            } 
 | 
  
 | 
            //does not exists, add a new class and return false 
 | 
            if (elem.parent().children("ul").length) { 
 | 
                 //first remove all other class 
 | 
                $this.find(".doubleTapToGo").removeClass("doubleTapToGo"); 
 | 
                //add the class on the current element 
 | 
                elem.addClass("doubleTapToGo"); 
 | 
                return false; 
 | 
            } 
 | 
        }, 
 | 
  
 | 
        remove: function() { 
 | 
            this.element.off("." + pluginName); 
 | 
            this.element.removeData(pluginName); 
 | 
        } 
 | 
  
 | 
    }; 
 | 
  
 | 
    $.fn[pluginName] = function(options) { 
 | 
        this.each(function () { 
 | 
            var el = $(this); 
 | 
            if (el.data(pluginName)) { 
 | 
                el.data(pluginName).remove(); 
 | 
            } 
 | 
            el.data(pluginName, new Plugin(this, options)); 
 | 
        }); 
 | 
        return this; 
 | 
    }; 
 | 
  
 | 
})(jQuery, window, document); 
 |