docs: function() {
  			var self = this;
  
  			if (typeof(settings.preinit) == "function") {
  				settings.preinit(self);
  			} else {
  				plupload.each(settings.preinit, function(func, name) {
  					self.bind(name, func);
  				});
  			}
  
  			bindEventListeners.call(this);
  
  			// Check for required options
  			if (!settings.browse_button || !settings.url) {
  				this.trigger('Error', {
  					code : plupload.INIT_ERROR,
  					message : plupload.translate('Init error.')
  				});
  				return;
  			}
  
  			initControls.call(this, settings, function(inited) {
  				if (typeof(settings.init) == "function") {
  					settings.init(self);
  				} else {
  					plupload.each(settings.init, function(func, name) {
  						self.bind(name, func);
  					});
  				}
  
  				if (inited) {
  					self.runtime = o.Runtime.getInfo(getRUID()).type;
  					self.trigger('Init', { runtime: self.runtime });
  					self.trigger('PostInit');
  				} else {
  					self.trigger('Error', {
  						code : plupload.INIT_ERROR,
  						message : plupload.translate('Init error.')
  					});
  				}
  			});
  		}