!function(factory){"use strict";"function"==typeof define&&define.amd?define(["jquery"],factory):factory("object"==typeof exports&&"function"==typeof require?require("jquery"):jQuery)}(function($,undefined){function Plugin(element,options){this._name=pluginName,this.el=element,this.$el=$(element),this.$el.prop("multiple")||(this.settings=$.extend({},defaults,options,this.$el.data()),this._defaults=defaults,this.$options=this.$el.find("option, optgroup"),this.init(),$.fn[pluginName].instances.push(this))}var pluginName="comboSelect",dataKey="comboselect",defaults={comboClass:"combo-select",comboArrowClass:"combo-arrow",comboDropDownClass:"combo-dropdown",inputClass:"combo-input text-input",disabledClass:"option-disabled",hoverClass:"option-hover",selectedClass:"option-selected",markerClass:"combo-marker",themeClass:"",maxHeight:200,extendStyle:!0,focusInput:!0},keys={ESC:27,TAB:9,RETURN:13,LEFT:37,UP:38,RIGHT:39,DOWN:40,ENTER:13,SHIFT:16},isMobile=/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(navigator.userAgent.toLowerCase());$.extend(Plugin.prototype,{init:function(){this._construct(),this._events()},_construct:function(){var self=this;this.$el.data("plugin_"+dataKey+"_tabindex",this.$el.prop("tabindex")),!isMobile&&this.$el.prop("tabIndex",-1),this.$container=this.$el.wrapAll('
').parent(),this.settings.extendStyle&&this.$el.attr("style")&&this.$container.attr("style",this.$el.attr("style")),this.$arrow=$('
').appendTo(this.$container),this.$dropdown=$('