docs: function() {
  			var self = this;
  
  			self.dom.off('click.Modaal keyup.Modaal keydown.Modaal');
  
  			// Body keydown
  			self.dom.on('keydown.Modaal', function(e) {
  				var key = e.keyCode;
  				var target = e.target;
  
  				// look for tab change and reset focus to modal window
  				// done in keydown so the check fires repeatedly when you hold the tab key down
  				if (key == 9 && self.scope.is_open) {
  					if (!$.contains(document.getElementById(self.scope.id), target) ) {
  						$('#' + self.scope.id).find('*[tabindex="0"]').focus();
  					}
  				}
  			});
  
  			// Body keyup
  			self.dom.on('keyup.Modaal', function(e) {
  				var key = e.keyCode;
  				var target = e.target;
  
  				if ( (e.shiftKey && e.keyCode == 9) && self.scope.is_open) {
  					// Watch for shift + tab key press. if open shift focus to close button.
  					if (!$.contains(document.getElementById(self.scope.id), target) ) {
  						$('#' + self.scope.id).find('.modaal-close').focus();
  					}
  				}
  
  				if ( !self.options.is_locked ){
  					// On escape key press close modal
  					if (key == 27 && self.scope.is_open ) {
  						if ( $(document.activeElement).is('input:not(:checkbox):not(:radio)') ) {
  							return false;
  						}
  
  						self.modaal_close();
  						return;
  					}
  				}
  
  				// is gallery open and images length is > 1
  				if ( self.options.type == 'image' ) {
  					// arrow left for back
  					if (key == 37 && self.scope.is_open && (!$('#' + self.scope.id + ' .modaal-gallery-prev').hasClass('is_hidden')) ) {
  						self.gallery_update('prev');
  					}
  					// arrow right for next
  					if (key == 39 && self.scope.is_open && (!$('#' + self.scope.id + ' .modaal-gallery-next').hasClass('is_hidden')) ) {
  						self.gallery_update('next');
  					}
  					return;
  				}
  			});
  
  			// Body click/touch
  			self.dom.on('click.Modaal', function(e) {
  				var trigger = $(e.target);
  
  				// General Controls: If it's not locked allow greedy close
  				if ( !self.options.is_locked ){
  					if ( (self.options.overlay_close && trigger.is('.modaal-inner-wrapper')) || trigger.is('.modaal-close') || trigger.closest('.modaal-close').length ) {
  						self.modaal_close();
  						return;
  					}
  				}
  
  				//Confirm Controls
  				if ( trigger.is('.modaal-confirm-btn' ) ){
  					// if 'OK' button is clicked, run confirm_callback()
  					if ( trigger.is('.modaal-ok') ) {
  						self.options.confirm_callback.call(self, self.lastFocus);
  					}
  
  					if ( trigger.is('.modaal-cancel') ) {
  						self.options.confirm_cancel_callback.call(self, self.lastFocus);
  					}
  					self.modaal_close();
  					return;
  				}
  
  				// Gallery Controls
  				if ( trigger.is( '.modaal-gallery-control' ) ){
  					// it not active, don't do nuthin!
  					if ( trigger.hasClass('is_hidden') ) {
  						return;
  					}
  
  					// trigger previous
  					if ( trigger.is('.modaal-gallery-prev') ) {
  						self.gallery_update('prev');
  					}
  					// trigger next
  					if ( trigger.is('.modaal-gallery-next') ) {
  						self.gallery_update('next');
  					}
  					return;
  				}
  			});
  		}