docs: function setSlideContent() {
          var slide = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
  
          var _this = this;
  
          var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
          var callback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
  
          if (hasClass(slide, 'loaded')) {
              return false;
          }
  
          if (utils.isFunction(this.settings.beforeSlideLoad)) {
              this.settings.beforeSlideLoad(slide, data);
          }
  
          var type = data.type;
          var position = data.descPosition;
          var slideMedia = slide.querySelector('.gslide-media');
          var slideTitle = slide.querySelector('.gslide-title');
          var slideText = slide.querySelector('.gslide-desc');
          var slideDesc = slide.querySelector('.gdesc-inner');
          var finalCallback = callback;
  
          if (utils.isFunction(this.settings.afterSlideLoad)) {
              finalCallback = function finalCallback() {
                  if (utils.isFunction(callback)) {
                      callback();
                  }
                  _this.settings.afterSlideLoad(slide, data);
              };
          }
  
          if (data.title == '' && data.description == '') {
              if (slideDesc) {
                  slideDesc.parentNode.removeChild(slideDesc);
              }
          } else {
              if (slideTitle && data.title !== '') {
                  slideTitle.innerHTML = data.title;
              } else {
                  slideTitle.parentNode.removeChild(slideTitle);
              }
              if (slideText && data.description !== '') {
                  if (isMobile && this.settings.moreLength > 0) {
                      data.smallDescription = slideShortDesc(data.description, this.settings.moreLength, this.settings.moreText);
                      slideText.innerHTML = data.smallDescription;
                      slideDescriptionEvents.apply(this, [slideText, data]);
                  } else {
                      slideText.innerHTML = data.description;
                  }
              } else {
                  slideText.parentNode.removeChild(slideText);
              }
              addClass(slideMedia.parentNode, 'desc-' + position);
              addClass(slideDesc.parentNode, 'description-' + position);
          }
  
          addClass(slideMedia, 'gslide-' + type);
          addClass(slide, 'loaded');
  
          if (type === 'video') {
              slideMedia.innerHTML = '<div class="gvideo-wrapper"></div>';
              setSlideVideo.apply(this, [slide, data, finalCallback]);
              return;
          }
  
          if (type === 'external') {
              var iframe = createIframe({
                  url: data.href,
                  width: data.width,
                  height: data.height,
                  callback: finalCallback
              });
              slideMedia.parentNode.style.maxWidth = data.width + 'px';
              slideMedia.appendChild(iframe);
              return;
          }
  
          if (type === 'inline') {
              setInlineContent.apply(this, [slide, data, finalCallback]);
              return;
          }
  
          if (type === 'image') {
              var img = new Image();
              img.addEventListener('load', function () {
                  if (utils.isFunction(finalCallback)) {
                      finalCallback();
                  }
              }, false);
              img.src = data.href;
              slideMedia.appendChild(img);
              return;
          }
  
          if (utils.isFunction(finalCallback)) finalCallback();
      }