media/js/vendor/selectize/selectize.js
function(self, types, fn) {
		var type;
		var trigger = self.trigger;
		var event_args = {};
	
		// override trigger method
		self.trigger = function() {
			var type = arguments[0];
			if (types.indexOf(type) !== -1) {
				event_args[type] = arguments;
			} else {
				return trigger.apply(self, arguments);
			}
		};
	
		// invoke provided function
		fn.apply(self, []);
		self.trigger = trigger;
	
		// trigger queued events
		for (type in event_args) {
			if (event_args.hasOwnProperty(type)) {
				trigger.apply(self, event_args[type]);
			}
		}
	}
function(self, types, fn) {
		var type;
		var trigger = self.trigger;
		var event_args = {};
	
		// override trigger method
		self.trigger = function() {
			var type = arguments[0];
			if (types.indexOf(type) !== -1) {
				event_args[type] = arguments;
			} else {
				return trigger.apply(self, arguments);
			}
		};
	
		// invoke provided function
		fn.apply(self, []);
		self.trigger = trigger;
	
		// trigger queued events
		for (type in event_args) {
			if (event_args.hasOwnProperty(type)) {
				trigger.apply(self, event_args[type]);
			}
		}
	}
function ( self , types , fn ) { var type ; var trigger = self . trigger ; var event_args = { } ; // override trigger method self . trigger = function ( ) { var type = arguments [ 0 ] ; if ( types . indexOf ( type ) !== - 1 ) { event_args [ type ] = arguments ; } else { return trigger . apply ( self , arguments ) ; } } ; // invoke provided function fn . apply ( self , [ ] ) ; self . trigger = trigger ; // trigger queued events for ( type in event_args ) { if ( event_args . hasOwnProperty ( type ) ) { trigger . apply ( self , event_args [ type ] ) ; } } }
Debounce all fired events types listed in `types`
while executing the provided `fn`.

@param {object} self
@param {array} types
@param {function} fn
Debounce all fired events types listed in types while executing the provided fn .