(function(a){a.widget("ui.combobox",{options:{height:"27px",width:null},_create:function(){var d=this,b=this.element.hide(),f=b.children(":selected"),g=f.val()?f.text():"";var e="";if(this.options.width!=null){e="width: "+this.options.width}var c=this.input=a('<input readonly="readonly" style="height: '+this.options.height+"; "+e+'">').insertAfter(b).val(g).autocomplete({delay:0,minLength:0,source:function(i,h){var j=new RegExp(a.ui.autocomplete.escapeRegex(i.term),"i");h(b.children("option").map(function(){var k=a(this).text();if(this.value&&(!i.term||j.test(k))){return{label:k.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)("+a.ui.autocomplete.escapeRegex(i.term)+")(?![^<>]*>)(?![^&;]+;)","gi"),"<strong>$1</strong>"),value:k,option:this}}}))},select:function(h,i){i.item.option.selected=true;d._trigger("selected",h,{item:i.item.option});b.trigger("change")},change:function(i,j){if(!j.item){var k=new RegExp("^"+a.ui.autocomplete.escapeRegex(a(this).val())+"$","i"),h=false;b.children("option").each(function(){if(a(this).text().match(k)){this.selected=h=true;return false}});if(!h){a(this).val("");b.val("");c.data("autocomplete").term="";return false}}}}).addClass("ui-widget ui-widget-content ui-corner-left");c.data("autocomplete")._renderItem=function(h,i){h.css("overflow-y","auto");h.css("max-height","200px");return a("<li></li>").data("item.autocomplete",i).append("<a>"+i.label+"</a>").appendTo(h)};this.button=a("<button type='button'>&nbsp;</button>").attr("tabIndex",-1).attr("title","Show All Items").insertAfter(c).button({icons:{primary:"ui-icon-triangle-1-s"},text:false}).removeClass("ui-corner-all").addClass("ui-corner-right ui-button-icon").click(function(){if(c.autocomplete("widget").is(":visible")){c.autocomplete("close");return}c.autocomplete("search","");c.focus()})},destroy:function(){this.input.remove();this.button.remove();this.element.show();a.Widget.prototype.destroy.call(this)}})})(jQuery);$(function(){$("#combobox").combobox({change:function(){alert("changed")}});$("#toggle").click(function(){$("#combobox").toggle()});$("#combobox").change(function(){alert(this.value)})});
