code: function Tabs(options) {
          if (!options.containerId) {
              throw new Error("Container id not defined");
          }
  
          /**
           * Getter for tabs options
           * @returns {Object}
           */
          this.getOptions = function () {
              return options;
          };
  
          this.container = $("#" + options.containerId);
          this.tabId = options.id || _.uniqueId("__tabs__");
          var tabs = options.items;
  
  
          if (!tabs || !_.isArray(tabs)) {
              throw new Error("Empty or incorrect tab items type");
          }
  
          this._tabs = tabs;
  
          this._ajaxSource = {};
  
          this._ajaxSuccessFn = {};
  
          this._opts = options;
  
          this.init();
          this._handleEvents();
      }
docs: Constructor to create bootstrap tabs.
  Options:
  containerId {String} Container in which tabs are rendered
  [id] {String|Number} Id of current tab
  pills {Boolean} Renders tabs as pills. Default false.
  appendHash{Boolean} Appends tab's href as url hash
  tabDirection {String} Should be "below", "left" or "right" to render tabs in that direction. Default none.
  items {Array of Objects} Tabs to be rendered
  Item object properties:
  header {String} Tab header
  content {String} Tab content html
  ajax {URL} when tab is shown response of this url is rendered in tab content overwriting existing content.
  active {Boolean}. If true then this tab is active. Default first tab is active.
  ajaxSuccess {Function}. Function called after tab content is loaded by ajax.
  @param options
  @constructor