docs: function initEvents() {
          var bind = _this.h.addEventListener;
          var eventTarget = params.eventTarget === 'wrapper' ? _this.wrapper : _this.container;
          //Touch Events
          if (! (_this.browser.ie10 || _this.browser.ie11)) {
              if (_this.support.touch) {
                  bind(eventTarget, 'touchstart', onTouchStart);
                  bind(eventTarget, 'touchmove', onTouchMove);
                  bind(eventTarget, 'touchend', onTouchEnd);
              }
              if (params.simulateTouch) {
                  bind(eventTarget, 'mousedown', onTouchStart);
                  bind(document, 'mousemove', onTouchMove);
                  bind(document, 'mouseup', onTouchEnd);
              }
          }
          else {
              bind(eventTarget, _this.touchEvents.touchStart, onTouchStart);
              bind(document, _this.touchEvents.touchMove, onTouchMove);
              bind(document, _this.touchEvents.touchEnd, onTouchEnd);
          }
  
          //Resize Event
          if (params.autoResize) {
              bind(window, 'resize', _this.resizeFix);
          }
          //Slide Events
          addSlideEvents();
          //Mousewheel
          _this._wheelEvent = false;
          if (params.mousewheelControl) {
              if (document.onmousewheel !== undefined) {
                  _this._wheelEvent = 'mousewheel';
              }
              if (!_this._wheelEvent) {
                  try {
                      new WheelEvent('wheel');
                      _this._wheelEvent = 'wheel';
                  } catch (e) {}
              }
              if (!_this._wheelEvent) {
                  _this._wheelEvent = 'DOMMouseScroll';
              }
              if (_this._wheelEvent) {
                  bind(_this.container, _this._wheelEvent, handleMousewheel);
              }
          }
  
          //Keyboard
          function _loadImage(src) {
              var image = new Image();
              image.onload = function () {
                  if (typeof _this === 'undefined' || _this === null) return;
                  if (_this.imagesLoaded !== undefined) _this.imagesLoaded++;
                  if (_this.imagesLoaded === _this.imagesToLoad.length) {
                      _this.reInit();
                      if (params.onImagesReady) _this.fireCallback(params.onImagesReady, _this);
                  }
              };
              image.src = src;
          }
  
          if (params.keyboardControl) {
              bind(document, 'keydown', handleKeyboardKeys);
          }
          if (params.updateOnImagesReady) {
              _this.imagesToLoad = $$('img', _this.container);
  
              for (var i = 0; i < _this.imagesToLoad.length; i++) {
                  _loadImage(_this.imagesToLoad[i].getAttribute('src'));
              }
          }
      }