text: (function($) {
  
      // Plugin function
      $.fn.mHeader = function(options) {
          // Plugin scope variable
          var header = this;
          var element = $(this);
  
          // Plugin class
          var Plugin = {
              /**
               * Run plugin
               * @returns {mHeader}
               */
              run: function(options) { 
                  if (element.data('header')) {
                      header = element.data('header');                
                  } else {
                      // reset header
                      Plugin.init(options);
  
                      // reset header
                      Plugin.reset();
  
                      // build header
                      Plugin.build();
  
                      element.data('header', header);
                  } 
  
                  return header;
              },
  
              /**
               * Handles subheader click toggle
               * @returns {mHeader}
               */
              init: function(options) {                
                  header.options = $.extend(true, {}, $.fn.mHeader.defaults, options);
              },
  
              /**
               * Reset header
               * @returns {mHeader}
               */
              build: function() {
                  Plugin.toggle();                   
              },
  
              toggle: function() {
                  var lastScrollTop = 0;
  
                  if (header.options.minimize.mobile === false && header.options.minimize.desktop === false) {
                      return;
                  }          
  
                  $(window).scroll(function() {
                      var offset = 0;
  
                      if (mUtil.isInResponsiveRange('desktop')) {
                          offset = header.options.offset.desktop;
                          on = header.options.minimize.desktop.on;
                          off = header.options.minimize.desktop.off;
                      } else if (mUtil.isInResponsiveRange('tablet-and-mobile')) {
                          offset = header.options.offset.mobile;
                          on = header.options.minimize.mobile.on;
                          off = header.options.minimize.mobile.off;
                      }
  
                      var st = $(this).scrollTop();
  
                      if (
                          (mUtil.isInResponsiveRange('tablet-and-mobile') && header.options.classic && header.options.classic.mobile) ||
                          (mUtil.isInResponsiveRange('desktop') && header.options.classic && header.options.classic.desktop)
                          
                          ) {
                          if (st > offset){ // down scroll mode
                              $("body").addClass(on);
                              $("body").removeClass(off);
                          } else { // back scroll mode
                              $("body").addClass(off);
                              $("body").removeClass(on);
                          }
                      } else {
                          if (st > offset && lastScrollTop < st){ // down scroll mode
                              $("body").addClass(on);
                              $("body").removeClass(off);
                          } else { // back scroll mode
                              $("body").addClass(off);
                              $("body").removeClass(on);
                          }
                          
                          lastScrollTop = st;
                      }
                  });
              },
  
              /**
               * Reset menu
               * @returns {mMenu}
               */
              reset: function() {
              }
          };
  
          // Run plugin
          Plugin.run.apply(header, [options]);
  
          //////////////////////
          // ** Public API ** //
          //////////////////////
  
          /**
           * Disable header for given time
           * @returns {jQuery}
           */
          header.publicMethod = function() {
          	//return Plugin.publicMethod();
          };
  
          // Return plugin instance
          return header;
      };
  
      // Plugin default options
      $.fn.mHeader.defaults = {
          classic: false,
          offset: {
              mobile: 150,
              desktop: 200        
          },
          minimize: {
              mobile: false,
              desktop: false
          }
      }; 
  }(jQuery));