
(function($){$.widget('ui.combobox',{_create:function(){var self=this,select=this.element.hide(),selected=select.children(':selected'),value=selected.val()?selected.text():'';var input=this.input=$('<input>').insertAfter(select).val(value).autocomplete({delay:0,minLength:0,source:function(request,response){var matcher=new RegExp($.ui.autocomplete.escapeRegex(request.term),'i');response(select.children('option').map(function(){var text=$(this).text();if(this.value&&(!request.term||matcher.test(text)))
return{label:text.replace(new RegExp('(?![^&;]+;)(?!<[^<>]*)('+
$.ui.autocomplete.escapeRegex(request.term)+')(?![^<>]*>)(?![^&;]+;)','gi'),'<strong>$1</strong>'),value:text,option:this};}));},select:function(event,ui){ui.item.option.selected=true;self._trigger('selected',event,{item:ui.item.option});},change:function(event,ui){if(!ui.item){var matcher=new RegExp('^'+$.ui.autocomplete.escapeRegex($(this).val())+'$','i'),valid=false;select.children('option').each(function(){if($(this).text().match(matcher)){this.selected=valid=true;return false;}});}},search:function(event,ui){var buttonAddNew=$('#'+select.attr('id')+'_addNew');var msgAddNew=$('#'+select.attr('id')+'_addNew_msg');buttonAddNew.show();msgAddNew.hide();$('.combo-toggle').show();$('.combo-toggle-button-dialog').addClass('ui-state-disabled').attr('disabled','disabled');select.val('');},open:function(event,ui){var buttonAddNew=$('#'+select.attr('id')+'_addNew');buttonAddNew.hide();$('.combo-toggle').hide();$('.combo-toggle-button-dialog').removeClass('ui-state-disabled').attr('disabled','');var msgAddNew=$('#'+select.attr('id')+'_addNew_msg');msgAddNew.show();}}).addClass('ui-widget ui-widget-content ui-corner-left');input.data('autocomplete')._renderItem=function(ul,item){return $('<li></li>').data('item.autocomplete',item).append('<a>'+item.label+'</a>').appendTo(ul);};this.button=$('<button type=\'button\'>&nbsp;</button>').attr('tabIndex',-1).attr('title','Show All Items').insertAfter(input).button({icons:{primary:'ui-icon-triangle-1-s'},text:false}).removeClass('ui-corner-all').addClass('ui-corner-right ui-button-icon').click(function(){if(input.autocomplete('widget').is(':visible')){input.autocomplete('close');return;}
input.autocomplete('search','');input.focus();});},destroy:function(){this.input.remove();this.button.remove();this.element.show();$.Widget.prototype.destroy.call(this);}});})(jQuery);(function($){$.widget('ui.comboboxRestrict',{_create:function(){var self=this,select=this.element.hide(),selected=select.children(':selected'),value=selected.val()?selected.text():'';var input=this.input=$('<input>').insertAfter(select).val(value).autocomplete({delay:0,minLength:0,source:function(request,response){var matcher=new RegExp($.ui.autocomplete.escapeRegex(request.term),'i');response(select.children('option').map(function(){var text=$(this).text();if(this.value&&(!request.term||matcher.test(text)))
return{label:text.replace(new RegExp('(?![^&;]+;)(?!<[^<>]*)('+
$.ui.autocomplete.escapeRegex(request.term)+')(?![^<>]*>)(?![^&;]+;)','gi'),'<strong>$1</strong>'),value:text,option:this};}));},select:function(event,ui){ui.item.option.selected=true;self._trigger('selected',event,{item:ui.item.option});},change:function(event,ui){if(!ui.item){var matcher=new RegExp('^'+$.ui.autocomplete.escapeRegex($(this).val())+'$','i'),valid=false;select.children('option').each(function(){if($(this).text().match(matcher)){this.selected=valid=true;return false;}});if(!valid){$(this).val('');select.val('');input.data('autocomplete').term='';return false;}}},search:function(event,ui){$('.combo-toggle').hide();$('.combo-toggle-button-dialog').addClass('ui-state-disabled').attr('disabled','disabled');},open:function(event,ui){$('.combo-toggle').show();$('.combo-toggle-button-dialog').removeClass('ui-state-disabled').attr('disabled','');}}).addClass('ui-widget ui-widget-content ui-corner-left');input.data('autocomplete')._renderItem=function(ul,item){return $('<li></li>').data('item.autocomplete',item).append('<a>'+item.label+'</a>').appendTo(ul);};this.button=$('<button type=\'button\'>&nbsp;</button>').attr('tabIndex',-1).attr('title','Show All Items').insertAfter(input).button({icons:{primary:'ui-icon-triangle-1-s'},text:false}).removeClass('ui-corner-all').addClass('ui-corner-right ui-button-icon').click(function(){if(input.autocomplete('widget').is(':visible')){input.autocomplete('close');return;}
input.autocomplete('search','');input.focus();});},destroy:function(){this.input.remove();this.button.remove();this.element.show();$.Widget.prototype.destroy.call(this);}});})(jQuery);
