docs: function () {
  			var that = this,
  					dropSuccessful = false,
  					dropSort = false,
  					dropSortIndex, dropSortParent;
  
  			$(document).on('dragover', 'body', function () {
  				if ($.fn.mediumInsert.settings.enabled === false) {
  					return;
  				}
  
  				that.$el.addClass('hover');
  			});
  
  			$(document).on('dragend', 'body', function () {
  				if ($.fn.mediumInsert.settings.enabled === false) {
  					return;
  				}
  
  				that.$el.removeClass('hover');
  			});
  
  			this.$el.on('dragover', '.mediumInsert', function () {
  				if ($.fn.mediumInsert.settings.enabled === false) {
  					return;
  				}
  
  				$(this).addClass('hover');
  				$(this).attr('contenteditable', true);
  			});
  
  			this.$el.on('dragleave', '.mediumInsert', function () {
  				if ($.fn.mediumInsert.settings.enabled === false) {
  					return;
  				}
  
  				$(this).removeClass('hover');
  				$(this).attr('contenteditable', false);
  			});
  
  			this.$el.on('dragstart', '.mediumInsert .mediumInsert-images img', function () {
  				if ($.fn.mediumInsert.settings.enabled === false) {
  					return;
  				}
  
  				dropSortIndex = $(this).parent().index();
  				dropSortParent = $(this).parent().parent().parent().attr('id');
  			});
  
  			this.$el.on('dragend', '.mediumInsert .mediumInsert-images img', function (e) {
  				if ($.fn.mediumInsert.settings.enabled === false) {
  					return;
  				}
  
  				if (dropSuccessful === true) {
  					if ($(e.originalEvent.target.parentNode).siblings().length === 0) {
  						$(e.originalEvent.target.parentNode).parent().parent().removeClass('small');
  					}
  					$(e.originalEvent.target.parentNode).mouseleave();
  					$(e.originalEvent.target.parentNode).remove();
  					dropSuccessful = false;
  					dropSort = false;
  
  					that.$el.trigger('keyup').trigger('input');
  				}
  			});
  
  			this.$el.on('dragover', '.mediumInsert .mediumInsert-images img', function (e) {
  				if ($.fn.mediumInsert.settings.enabled === false) {
  					return;
  				}
  
  				e.preventDefault();
  			});
  
  			this.$el.on('drop', '.mediumInsert .mediumInsert-images img', function () {
  				var index, $dragged, finalIndex;
  
  				if ($.fn.mediumInsert.settings.enabled === false) {
  					return;
  				}
  
  
  				if (dropSortParent !== $(this).parent().parent().parent().attr('id')) {
  					dropSort = false;
  					dropSortIndex = dropSortParent = null;
  					return;
  				}
  
  				index = parseInt(dropSortIndex, 10);
  
  				// Sort
  				$dragged = $(this).parent().parent().find('.mediumInsert-images:nth-child('+ (index+1) +')');
  				finalIndex = $(this).parent().index();
  				if(index < finalIndex) {
  					$dragged.insertAfter($(this).parent());
  				} else if(index > finalIndex) {
  					$dragged.insertBefore($(this).parent());
  				}
  
  				$dragged.mouseleave();
  
  				dropSort = true;
  				dropSortIndex = null;
  
  				that.$el.trigger('keyup').trigger('input');
  			});
  
  			this.$el.on('drop', '.mediumInsert', function (e) {
  				var files;
  
  				e.preventDefault();
  
  				if ($.fn.mediumInsert.settings.enabled === false) {
  					return;
  				}
  
  				$(this).removeClass('hover');
  				that.$el.removeClass('hover');
  				$(this).attr('contenteditable', false);
  
  				files = e.originalEvent.dataTransfer.files;
  				if (files.length > 0) {
  					// File upload
  					that.uploadFiles($('.mediumInsert-placeholder', this), files, that);
  				} else if (dropSort === true) {
  					dropSort = false;
  				} else {
  					// Image move from block to block
  					$('.mediumInsert-placeholder', this).append('<figure class="mediumInsert-images">'+ e.originalEvent.dataTransfer.getData('text/html') +'</figure>');
  					$('meta', this).remove();
  					dropSuccessful = true;
  				}
  			});
  		}