(function($) { $.fn.amyuiFancySelect = function(opts) { var isiOS, settings; if (opts == null) { opts = {}; } settings = $.extend({ forceiOS: false, includeBlank: false, optionTemplate: function(optionEl) { return optionEl.text(); }, optgroupTemplate: function(optgroupEl) { return optgroupEl.attr('label'); }, triggerTemplate: function(optionEl) { return optionEl.text(); } }, opts); isiOS = !!navigator.userAgent.match(/iP(hone|od|ad)/i); this.each(function() { var copyOptionsToList, disabled, nextElement, options, prevElement, sel, selClass, trigger, updateTriggerText, wrapper; sel = $(this); if (sel.hasClass('amyui-fancified') || sel.prop('tagName').toLowerCase() !== 'select') { return; } selClass = sel.attr('class'); sel.addClass('amyui-fancified'); sel.css({ width: 1, height: 1, display: 'block', position: 'absolute', top: 0, left: 0, padding: 0, margin: 0, opacity: 0 }); sel.wrap('
'); wrapper = sel.parent(); if (sel.data('class')) { wrapper.addClass(sel.data('class')); } wrapper.append($('
').addClass(selClass)); if (!(isiOS && !settings.forceiOS)) { wrapper.append('