/* * easy-autocomplete * jQuery plugin for autocompletion * * @author Łukasz Pawełczak (http://github.com/pawelczak) * @version 1.0.2 * Copyright MIT License: https://github.com/pawelczak/easy-autocomplete/blob/master/LICENSE.txt */ var EasyAutocomplete=function(a){return a.Configuration=function(a){function b(){"xml"===a.dataType&&(a.getValue||(a.getValue=function(a){return $(a).text()}),a.list||(a.list={}),a.list.sort||(a.list.sort={}),a.list.sort.method=function(b,c){return b=a.getValue(b),c=a.getValue(c),c>b?-1:b>c?1:0},a.list.match||(a.list.match={}),a.list.match.method=function(b,c){return b=a.getValue(b),c=a.getValue(c),b===c?!0:!1})}function c(){function b(a,c){var d=a||{};for(var e in a)void 0!==c[e]&&null!==c[e]&&("object"!=typeof c[e]||c[e]instanceof Array?d[e]=c[e]:b(a[e],c[e]));return d}f=b(f,a)}function d(){if("list-required"!==f.url&&"function"!=typeof f.url){var a=f.url;f.url=function(){return a}}if("string"==typeof f.listLocation){var b=f.listLocation;f.listLocation=function(a){return a[b]}}if("string"==typeof f.getValue){var c=f.getValue;f.getValue=function(a){return a[c]}}}function e(a){return void 0!==f[a]&&null!==f[a]?!0:!1}var f={data:"list-required",url:"list-required",dataType:"json",listLocation:function(a){return a},xmlElementName:"",getValue:function(a){return a},autocompleteOff:!0,placeholder:!1,ajaxCallback:function(){},list:{sort:{enabled:!1,method:function(a,b){return a=f.getValue(a),b=f.getValue(b),b>a?-1:a>b?1:0}},maxNumberOfElements:6,match:{enabled:!1,caseSensitive:!1,method:function(a,b){return a=f.getValue(a),b=f.getValue(b),a===b?!0:!1}},showAnimation:{type:"normal",time:400,callback:function(){}},hideAnimation:{type:"normal",time:400,callback:function(){}}},highlightPhrase:!0,theme:"",cssClasses:""};b(),c(),d(),this.get=function(a){return f[a]},this.equals=function(a,b){return e(a)&&f[a]===b?!0:!1},this.checkDataUrlProperties=function(){return"list-required"===f.url&&"list-required"===f.data?!1:!0},this.checkRequiredProperties=function(){for(var a in f)if("required"===f[a])return logger.error("Option "+a+" must be defined"),!1;return!0}},a}(EasyAutocomplete||{}),EasyAutocomplete=function(a){return a.Logger=function(){this.error=function(a){console.log("ERROR: "+a)},this.warning=function(a){console.log("WARNING: "+a)}},a}(EasyAutocomplete||{}),EasyAutocomplete=function(a){return a.Constans=function(){var a={CONTAINER_CLASS:"easy-autocomplete-container",CONTAINER_ID:"eac-container-",WRAPPER_CSS_CLASS:"easy-autocomplete"};this.getValue=function(b){return a[b]}},a}(EasyAutocomplete||{}),EasyAutocomplete=function(a){return a.proccess=function(a,b,c){function d(b,c){var d=[],e="";if(a.get("list").match.enabled)for(var f=0,g=b.length;g>f;f+=1)e=a.get("getValue")(b[f]),a.get("list").match.caseSensitive||("string"==typeof e&&(e=e.toLowerCase()),c=c.toLowerCase()),e.search(c)>-1&&d.push(b[f]);else d=b;return d}function e(b){return b.length>a.get("list").maxNumberOfElements&&(b=b.slice(0,a.get("list").maxNumberOfElements)),b}function f(b){return a.get("list").sort.enabled&&b.sort(a.get("list").sort.method),b}var g=c;return b=d(b,g),b=e(b),b=f(b)},a}(EasyAutocomplete||{}),EasyAutocomplete=function(a){return a.Template=function(a){var b={basic:{type:"basic",method:function(a){return a}},description:{type:"description",fields:{description:"description"},method:function(a){return a+" - description"},cssClass:"eac-description"},iconLeft:{type:"iconLeft",fields:{icon:""},method:function(a){return a},cssClass:"eac-icon-left"},iconRight:{type:"iconRight",fields:{iconSrc:""},method:function(a){return a},cssClass:"eac-icon-right"},custom:{type:"custom",method:function(){}}},c=function(a){var c=a.fields;if("description"===a.type){var d=function(a,b){return a+" - "+b[c.description]+""};return d}if("iconRight"===a.type){var d="";return"string"==typeof c.iconSrc?d=function(a,b){return a+""}:"function"==typeof c.iconSrc&&(d=function(a,b){return a+""}),d}if("iconLeft"===a.type){var d="";return"string"==typeof c.iconSrc?d=function(a,b){return""+a}:"function"==typeof c.iconSrc&&(d=function(a,b){return""+a}),d}return"custom"===a.type?a.method:b.basic.method};prepareBuildMethod=function(a){return a&&a.type&&a.type&&b[a.type]?c(a):b.basic.method},templateClass=function(a){var c=function(){return""};return a&&a.type&&a.type&&b[a.type]?function(){var c=b[a.type].cssClass;return function(){return c}}():c},this.getTemplateClass=templateClass(a),this.build=prepareBuildMethod(a)},a}(EasyAutocomplete||{}),EasyAutocomplete=function(a){return a.main=function(b,c){function d(){return n.checkDataUrlProperties()?n.checkRequiredProperties()?(e(),void g()):void o.error("Will not work without mentioned properties."):void o.error("One of options variables 'data' or 'url' must be defined.")}function e(){function a(){var a=$("