var SearchAutoComplete=React.createClass({displayName:"SearchAutoComplete",propTypes:{suggestions:React.PropTypes.array,searchUrl:React.PropTypes.string,searchStartLength:React.PropTypes.number,keystrokeWaitTimer:React.PropTypes.number,disableAutoComplete:React.PropTypes.bool,buttonText:React.PropTypes.string,placeHolderText:React.PropTypes.string},getInitialState:function(){return{suggestions:this.props.suggestions,lastKeyword:"",currentKeyword:""}},componentWillUnmount:function(){this.state.interval&&clearInterval(this.state.interval)},componentDidMount:function(){var t=this,n;this.searchSuggestionsToggle=$(ReactDOM.findDOMNode(this.refs.searchSuggestionsToggle));this.searchKeywordInput=$(ReactDOM.findDOMNode(this.refs.searchKeywordInput));this.searchKeywordForm=$(ReactDOM.findDOMNode(this.refs.searchKeywordForm));this.suggestionsList=$(ReactDOM.findDOMNode(this.refs.suggestionsList));this.searchSuggestionsToggle.on("click",function(n){t.submitSearch();n.preventDefault()});n=setInterval(function(){var n=document.getElementsByClassName("dropdown-backdrop");_.each(n,function(n){n.remove()})},200);this.setState({interval:n})},changeKeyword:function(n){this.setState({currentKeyword:n.target.value,lastKeyword:this.state.currentKeyword},this.queueUpdateSuggestions)},queueUpdateSuggestions:function(){this.props.disableAutoComplete||(typeof this.timeout!="undefined"&&clearTimeout(this.timeout),this.timeout=setTimeout(this.updateSuggestions,this.props.keystrokeWaitTimer))},updateSuggestions:_.debounce(function(){var n=this,t;if(this.state.currentKeyword.length<this.props.searchStartLength){this.toggleSearchSuggestions();return}t=$.post(this.props.searchUrl,{keyword:this.state.currentKeyword});t.done(function(t){n.setState({suggestions:t},n.toggleSearchSuggestions)})},300),chooseSuggestion:function(n){n.preventDefault();this.setState({currentKeyword:n.target.text},this.submitSearch)},submitSearch:function(){this.searchKeywordForm.submit()},shouldShowSuggestions:function(){return this.state.suggestions.length>0&&this.state.currentKeyword.length>=this.props.searchStartLength},toggleSearchSuggestions:function(){var n=this.searchSuggestionsToggle.attr("aria-expanded")==="true";this.shouldShowSuggestions()!==n&&(this.searchSuggestionsToggle.dropdown("toggle"),this.searchKeywordInput.focus())},dynamicSuggestionClasses:function(){var n=["input-group-btn"];return this.state.suggestions.length>0&&n.push("open"),n.join(" ")},searchKeywordInputKeyDown:function(n){if(n.keyCode===13){this.setState({currentKeyword:n.target.value},this.submitSearch);return}n.keyCode===40&&($("li:first-child > a",this.suggestionsList).focus(),n.preventDefault());n.keyCode===38&&($("li:last-child > a",this.suggestionsList).focus(),n.preventDefault())},searchKeywordNavKeyDown:function(n){n.keyCode==27&&(this.searchKeywordInput.focus(),n.preventDefault());var t=$("li",n.currentTarget),r=$(n.target).parent(),i=t.index(r);n.keyCode==40&&i==t.length-1&&(this.searchKeywordInput.focus(),n.preventDefault());n.keyCode==38&&i==0&&(this.searchKeywordInput.focus(),n.preventDefault())},noSuggestions:function(){return this.state.suggestions.length==0?React.createElement("li",null,React.createElement("p",null,"No suggestions ...")):null},componentDidUpdate:function(){var n=this;this.suggestionsList.find(".clickie").on("click",function(t){n.chooseSuggestion(t)})},refs:[],suggestionRow:function(n,t){return React.createElement("li",{key:t,className:"clickie"},React.createElement("a",{href:"#"},n.value))},buttonContent:function(){return this.props.buttonText?this.props.buttonText:React.createElement("i",{className:"fa fa-search"})},placeHolderContent:function(){return this.props.placeHolderText?this.props.placeHolderText:""},getSuggestionBox:function(){return React.createElement("div",{className:"site-search"},React.createElement("form",{ref:"searchKeywordForm",action:this.props.formPostUrl,method:"get"},React.createElement("div",{className:"input-group"},React.createElement("input",{placeholder:this.placeHolderContent(),ref:"searchKeywordInput",onChange:this.changeKeyword,onKeyDown:this.searchKeywordInputKeyDown,onClick:this.toggleSearchSuggestions,type:"text",name:"Keyword",className:"form-control","aria-label":"search",value:this.state.currentKeyword,autoComplete:"off"}),React.createElement("div",{className:"input-group-btn"},React.createElement("button",{ref:"searchSuggestionsToggle",onClick:this.submitSearch,type:this.props.isMobile?"":"dropdown","data-toggle":"dropdown",className:"btn btn-default","aria-haspopup":"true"},this.buttonContent(),React.createElement("span",{className:"sr-only"},"Toggle Dropdown")),React.createElement("ul",{ref:"suggestionsList",onKeyDown:this.searchKeywordNavKeyDown,className:"dropdown-menu dropdown-menu-right"},this.noSuggestions(),_.map(this.state.suggestions,this.suggestionRow))))))},render:function(){return this.getSuggestionBox()}})