1 WCF
.Search
.Message
={};WCF
.Search
.Message
.KeywordList
=WCF
.Search
.Base
.extend({_className
:"wcf\\data\\search\\keyword\\SearchKeywordAction",_divider
:null,_forceSubmit
:false,init:function(c
,e
,b
){if(!$.isFunction(e
)){console
.debug("[WCF.Search.Message.KeywordList] The given callback is invalid, aborting.");return}this._callback
=e
;this._excludedSearchValues
=[];if(b
){this._excludedSearchValues
=b
}this._searchInput
=$(c
).keyup($.proxy(this._keyUp
,this)).keydown($.proxy(function(f
){if(f
.which
===13){if(this._itemCount
&&this._itemIndex
!==-1){f
.preventDefault()}}},this));var a
=WCF
.Dropdown
.getDropdownMenu(this._searchInput
.parents(".dropdown").wcfIdentify());var d
=a
.find("li.dropdownDivider").last();this._divider
=$('<li class="dropdownDivider" />').hide().insertBefore(d
);this._list
=$('<li class="dropdownList"><ul /></li>').hide().insertBefore(d
).children("ul");a
.find("input, label").on("click",function(f
){f
.stopPropagation()});this._proxy
=new WCF
.Action
.Proxy({showLoadingOverlay
:false,success
:$.proxy(this._success
,this)})},_createListItem:function(a
){this._divider
.show();this._list
.parent().show();this._super(a
)},_clearList:function(a
){if(a
){this._searchInput
.val("")}this._divider
.hide();this._list
.empty().parent().hide();WCF
.CloseOverlayHandler
.removeCallback("WCF.Search.Base");this._itemCount
=0;this._itemIndex
=-1}});WCF
.Search
.Message
.SearchArea
=Class
.extend({_searchArea
:null,init:function(d
){this._searchArea
=d
;var a
=new WCF
.Search
.Message
.KeywordList(this._searchArea
.find("input[type=search]"),$.proxy(this._callback
,this));a
.setDelay(500);var c
=this;var f
=this._searchArea
.find("input[type=search]");this._searchArea
.click(function(g
){if(g
.target
==c
._searchArea
[0]){f
.focus().trigger("click");return false}});if(this._searchArea
.hasClass("dropdown")){var e
=this._searchArea
.wcfIdentify();var b
=this._searchArea
.find("form");b
.submit(function(){var g
=WCF
.Dropdown
.getDropdownMenu(e
);g
.find("input[type=hidden]").appendTo(b
);g
.find("input[type=checkbox]:checked").each(function(i
,h
){var j
=$(h
);$('<input type="hidden" name="'+j
.attr("name")+'" value="'+j
.attr("value")+'" />').appendTo(b
)})})}},_callback:function(a
){this._searchArea
.find("input[type=search]").val(a
.label
);this._searchArea
.find("input[type=search]").focus();return false}});