code: function Plugin(option, event) {
  		// get the args of the outer function..
  		var args = arguments;
  		// The arguments of the function are explicitly re-defined from the argument list, because the shift causes them
  		// to get lost
  		//noinspection JSDuplicatedDeclaration
  		var _option = option,
  				option = args[0],
  				event = args[1];
  		[].shift.apply(args);
  
  		// This fixes a bug in the js implementation on android 2.3 #715
  		if (typeof option == 'undefined') {
  			option = _option;
  		}
  
  		var value;
  		var chain = this.each(function () {
  			var $this = $(this);
  			if ($this.is('select')) {
  				var data = $this.data('selectpicker'),
  						options = typeof option == 'object' && option;
  
  				if (!data) {
  					var config = $.extend({}, Selectpicker.DEFAULTS, $.fn.selectpicker.defaults || {}, $this.data(), options);
  					$this.data('selectpicker', (data = new Selectpicker(this, config, event)));
  				} else if (options) {
  					for (var i in options) {
  						if (options.hasOwnProperty(i)) {
  							data.options[i] = options[i];
  						}
  					}
  				}
  
  				if (typeof option == 'string') {
  					if (data[option] instanceof Function) {
  						value = data[option].apply(data, args);
  					} else {
  						value = data.options[option];
  					}
  				}
  			}
  		});
  
  		if (typeof value !== 'undefined') {
  			//noinspection JSUnusedAssignment
  			return value;
  		} else {
  			return chain;
  		}
  	}
docs: SELECTPICKER PLUGIN DEFINITION ==============================