| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 | /* * 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");            }            $(document.body).on("click" + "." + pluginName,"#"+$this[0].id+' li a', function(e) {                if(!$(this).parent().has('ul')) {                	return false;                }                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);
 |