text: /* DirectChat()
   * ===============
   * Toggles the state of the control sidebar
   *
   * @Usage: $('#my-chat-box').directChat()
   *         or add [data-widget="direct-chat"] to the trigger
   */
  +function ($) {
    'use strict';
  
    var DataKey = 'lte.directchat';
  
    var Selector = {
      data: '[data-widget="chat-pane-toggle"]',
      box : '.direct-chat'
    };
  
    var ClassName = {
      open: 'direct-chat-contacts-open'
    };
  
    // DirectChat Class Definition
    // ===========================
    var DirectChat = function (element) {
      this.element = element;
    };
  
    DirectChat.prototype.toggle = function ($trigger) {
      $trigger.parents(Selector.box).first().toggleClass(ClassName.open);
    };
  
    // Plugin Definition
    // =================
    function Plugin(option) {
      return this.each(function () {
        var $this = $(this);
        var data  = $this.data(DataKey);
  
        if (!data) {
          $this.data(DataKey, (data = new DirectChat($this)));
        }
  
        if (typeof option == 'string') data.toggle($this);
      });
    }
  
    var old = $.fn.directChat;
  
    $.fn.directChat             = Plugin;
    $.fn.directChat.Constructor = DirectChat;
  
    // No Conflict Mode
    // ================
    $.fn.directChat.noConflict = function () {
      $.fn.directChat = old;
      return this;
    };
  
    // DirectChat Data API
    // ===================
    $(document).on('click', Selector.data, function (event) {
      if (event) event.preventDefault();
      Plugin.call($(this), 'toggle');
    });
  
  }(jQuery);
  