/*! UIkit 2.15.0 | http://www.getuikit.com | (c) 2014 YOOtheme | MIT License */
!function(t){var e;jQuery&&UIkit&&(e=t(jQuery,UIkit)),"function"==typeof define&&define.amd&&define("uikit-autocomplete",["uikit"],function(){return e||t(jQuery,UIkit)})}(function(t,e){"use strict";var i;return e.component("autocomplete",{defaults:{minLength:3,param:"search",method:"post",delay:300,loadingClass:"@-loading",flipDropdown:!1,skipClass:"@-skip",hoverClass:"@-active",source:null,renderer:null,template:'
'},visible:!1,value:null,selected:null,boot:function(){e.$html.on("focus.autocomplete.uikit","[data-@-autocomplete]",function(){var t=e.$(this);if(!t.data("autocomplete")){e.autocomplete(t,e.Utils.options(t.attr("data-@-autocomplete")))}}),e.$html.on("click.autocomplete.uikit",function(t){i&&t.target!=i.input[0]&&i.hide()})},init:function(){var t=this,i=!1,s=e.Utils.debounce(function(){return i?i=!1:(t.handle(),void 0)},this.options.delay);this.dropdown=this.find(".@-dropdown"),this.template=this.find('script[type="text/autocomplete"]').html(),this.template=e.Utils.template(e.prefix(this.template||this.options.template)),this.input=this.find("input:first").attr("autocomplete","off"),this.dropdown.length||(this.dropdown=e.$('').appendTo(this.element)),this.options.flipDropdown&&this.dropdown.addClass(e.prefix("@-dropdown-flip")),this.input.on({keydown:function(e){if(e&&e.which&&!e.shiftKey)switch(e.which){case 13:i=!0,t.selected&&(e.preventDefault(),t.select());break;case 38:e.preventDefault(),t.pick("prev",!0);break;case 40:e.preventDefault(),t.pick("next",!0);break;case 27:case 9:t.hide()}},keyup:s}),this.dropdown.on("click",e.prefix(".@-autocomplete-results > *"),function(){t.select()}),this.dropdown.on("mouseover",e.prefix(".@-autocomplete-results > *"),function(){t.pick(e.$(this))}),this.triggercomplete=s},handle:function(){var t=this,e=this.value;return this.value=this.input.val(),this.value.lengthl-1?o.length-1:l-1)}else n=o["next"==t?"first":"last"]();n=e.$(n)}}else n=t;if(n&&n.length&&(this.selected=n,o.removeClass(this.options.hoverClass),this.selected.addClass(this.options.hoverClass),i)){var a=n.position().top,r=s.dropdown.scrollTop(),h=s.dropdown.height();(a>h||0>a)&&s.dropdown.scrollTop(r+a)}},select:function(){if(this.selected){var t=this.selected.data();this.trigger("select.uk.autocomplete",[t,this]),t.value&&this.input.val(t.value).trigger("change"),this.hide()}},show:function(){return this.visible?void 0:(this.visible=!0,this.element.addClass("@-open"),i=this,this)},hide:function(){return this.visible?(this.visible=!1,this.element.removeClass("@-open"),i===this&&(i=!1),this):void 0},request:function(){var e=this,i=function(t){t&&e.render(t),e.element.removeClass(e.options.loadingClass)};if(this.element.addClass(this.options.loadingClass),this.options.source){var s=this.options.source;switch(typeof this.options.source){case"function":this.options.source.apply(this,[i]);break;case"object":if(s.length){var o=[];s.forEach(function(t){t.value&&-1!=t.value.toLowerCase().indexOf(e.value.toLowerCase())&&o.push(t)}),i(o)}break;case"string":var n={};n[this.options.param]=this.value,t.ajax({url:this.options.source,data:n,type:this.options.method,dataType:"json"}).done(function(t){i(t||[])});break;default:i(null)}}else this.element.removeClass(e.options.loadingClass)},render:function(t){return this.dropdown.empty(),this.selected=!1,this.options.renderer?this.options.renderer.apply(this,[t]):t&&t.length&&(this.dropdown.append(this.template({items:t})),this.show(),this.trigger("show.uk.autocomplete")),this}}),e.autocomplete});