code: function() {
  			var self = this, opt, preinitOpt, err;
  
  			preinitOpt = self.getOption('preinit');
  			if (typeof(preinitOpt) == "function") {
  				preinitOpt(self);
  			} else {
  				plupload.each(preinitOpt, function(func, name) {
  					self.bind(name, func);
  				});
  			}
  
  			bindEventListeners.call(self);
  
  			// Check for required options
  			plupload.each(['container', 'browse_button', 'drop_element'], function(el) {
  				if (self.getOption(el) === null) {
  					err = {
  						code : plupload.INIT_ERROR,
  						message : plupload.sprintf(plupload.translate("%s specified, but cannot be found."), el)
  					}
  					return false;
  				}
  			});
  
  			if (err) {
  				return self.trigger('Error', err);
  			}
  
  
  			if (!settings.browse_button && !settings.drop_element) {
  				return self.trigger('Error', {
  					code : plupload.INIT_ERROR,
  					message : plupload.translate("You must specify either browse_button or drop_element.")
  				});
  			}
  
  
  			initControls.call(self, settings, function(inited) {
  				var initOpt = self.getOption('init');
  				if (typeof(initOpt) == "function") {
  					initOpt(self);
  				} else {
  					plupload.each(initOpt, function(func, name) {
  						self.bind(name, func);
  					});
  				}
  
  				if (inited) {
  					self.runtime = 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.')
  					});
  				}
  			});
  		}
docs: Initializes the Uploader instance and adds internal event listeners.
  
  @method init