try{(function(global,factory){"use strict";if(!global.document){throw new Error("kLib requires a window with a document");}else{factory(global);}})(typeof window!=="undefined"?window:this,function(window){"use strict";if(typeof window["klevu"]!=='undefined'){return window["klevu"];}
var kLib=function kLib(options){return kLib.pt.options(options);};kLib.pt=kLib.prototype={version:version,constructor:kLib};kLib.options=kLib.pt.options=function options(options){kLib.extend(true,settings,options);kLib.reInitialize();return this;};kLib.reInitialize=function(){if(settings.chains.initChain.list().length>0){settings.chains.initChain.setData(settings);settings.chains.initChain.fire();}
return this;};function coreBuild(){if(typeof klevu_apiKey!=="undefined"){kLib.settings.search={apiKey:klevu_apiKey};kLib.settings.analytics={apiKey:klevu_apiKey};}
var overrideSettings=getAllUrlParameters();if(overrideSettings.length>0){kLib.each(overrideSettings,function(key,elem){if(kLib.strStartsWith(elem.name,"klib_")){elem.name=elem.name.replace("klib_","").replace(new RegExp(/_/,"g"),".");setObjectPath(settings,elem.name,elem.value);}});}
kLib.interactive();kLib.ready();settings.chains.initChain=kLib.chain();};var version="2.6.7";var document=window.document;var objectTypes="Boolean Number String Function Array Date RegExp Object Error Symbol";var arr=[];var slice=arr.slice;var concat=arr.concat;var push=arr.push;var indexOf=arr.indexOf;var getProto=Object.getPrototypeOf;var class2type={};var toString=class2type.toString;var hasOwn=class2type.hasOwnProperty;var fnToString=hasOwn.toString;var ObjectFunctionString=fnToString.call(Object);var rtrim=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;var rnothtmlwhite=(/[^\x20\t\r\n\f]+/g);var rbracket=/\[\]$/;var r20=/%20/g;var rhash=/#.*$/;var rantiCache=/([?&])_=[^&]*/;var rheaders=/^(.*?):[ \t]*([^\r\n]*)$/mg;var rlocalProtocol=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/;var rprotocol=/^\/\//;var rnoContent=/^(?:GET|HEAD)$/;var rquery=(/\?/);var settings={url:{protocol:document.location.protocol,}};if(!String.prototype.startsWith){String.prototype.startsWith=function(search,pos){return this.substr(!pos||pos<0?0:+pos,search.length)===search;};}
if(!window.document.querySelectorAll){window.document.querySelectorAll=function(selectors){var style=window.document.createElement("style"),elements=[],element;window.document.documentElement.firstChild.appendChild(style);window.document._qsa=[];if(!style.styleSheet||typeof style.styleSheet.cssText==="undefined")return elements;style.styleSheet.cssText=selectors+"{x-qsa:expression(window.document._qsa && window.document._qsa.push(this))}";window.scrollBy(0,0);style.parentNode.removeChild(style);while(window.document._qsa.length){element=window.document._qsa.shift();element.style.removeAttribute("x-qsa");elements.push(element);}
window.document._qsa=null;return elements;};};if(!window.document.querySelector){window.document.querySelector=function(selectors){var elements=window.document.querySelectorAll(selectors);return(elements.length)?elements[0]:null;};};if(!Element.prototype.matches){Element.prototype.matches=Element.prototype.matchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector||Element.prototype.oMatchesSelector||Element.prototype.webkitMatchesSelector||function(s){var matches=(this.document||this.ownerDocument).querySelectorAll(s),i=matches.length;while(--i>=0&&matches.item(i)!==this){}
return i>-1;};};if(!Array.prototype.filter){Array.prototype.filter=function(func,thisArg){"use strict";if(!((typeof func==="Function"||typeof func==="function")&&this))
throw new TypeError();var len=this.length>>>0,res=new Array(len),t=this,c=0,i=-1;if(thisArg===undefined){while(++i!==len){if(i in this){if(func(t[i],i,t)){res[c++]=t[i];}}}}else{while(++i!==len){if(i in this){if(func.call(thisArg,t[i],i,t)){res[c++]=t[i];}}}}
res.length=c;return res;};}
if(!Array.prototype.forEach){Array.prototype.forEach=function(callback){var T,k;if(this===null){throw new TypeError("this is null or not defined");}
var O=Object(this);var len=O.length>>>0;if(typeof callback!=="function"){throw new TypeError(callback+" is not a function");}
if(arguments.length>1){T=arguments[1];}
k=0;while(k<len){var kValue;if(k in O){kValue=O[k];callback.call(T,kValue,k,O);}
k++;}};}
function checkForDataset(){if(!document.documentElement.dataset){return false;}
var el=document.createElement('div');el.setAttribute("data-a-b","c");return el.dataset&&el.dataset.aB=="c";}
if(!checkForDataset()){Object.defineProperty(Element.prototype,'dataset',{get:function(){var element=this;var attributes=this.attributes;var map={};for(var i=0;i<attributes.length;i++){var attribute=attributes[i];if(attribute&&attribute.name&&(/^data-\w[\w-]*$/).test(attribute.name)){var name=attribute.name;var value=attribute.value;var propName=name.substr(5).replace(/-./g,function(prop){return prop.charAt(1).toUpperCase();});Object.defineProperty(map,propName,{enumerable:true,get:function(){return this.value;}.bind({value:value||''}),set:function(name,value){if(typeof value!=='undefined'){this.setAttribute(name,value);}else{this.removeAttribute(name);}}.bind(element,name)});}}
return map;}});}
if(typeof NodeList.prototype.forEach!=="function"){NodeList.prototype.forEach=Array.prototype.forEach;}
if(typeof window.isNaN!=="function"){window.isNaN=function isNaN(value){var n=Number(value);return n!==n;};}
if(typeof Number.isNaN!=="function"){Number.isNaN=Number.isNaN||function isNaN(input){return typeof input==='number'&&input!==input;}}
function queryString(params){var queryString=Object.keys(params).map(function(key){return key+'='+params[key]}).join('&');return queryString;}
function strStartsWith(string,search,pos){return string.substr(!pos||pos<0?0:+pos,search.length)===search;};function isUndefined(obj){return(typeof(obj)==="undefined");}
function toBoolean(value){switch(kLib.type(value)){case'string':return(value==='true')||(value==='1');case'boolean':return!!value;case'number':return value===1;case'undefined':return false;default:return false;}}
function noOp(){}
function isWindow(obj){return isUndefined(obj)&&obj!==null&&obj===obj.window;}
function DOMEval(code,doc,node){doc=doc||document;var i;var script=doc.createElement("script");var preservedScriptAttributes={type:true,src:true,noModule:true};script.text=code;if(node){for(i in preservedScriptAttributes){if(node[i]){script[i]=node[i];}}}
doc.head.appendChild(script).parentNode.removeChild(script);}
function globalEval(code){DOMEval(code);}
function isFunction(obj){return typeof obj==="function"&&typeof obj.nodeType!=="number";}
function toType(obj){if(obj===null){return obj+"";}
return typeof obj==="object"||typeof obj==="function"?class2type[toString.call(obj)]||"object":typeof obj;}
function isPlainObject(obj){var proto,Ctor;if(!obj||toString.call(obj)!=="[object Object]"){return false;}
proto=getProto(obj);if(!proto){return true;}
Ctor=hasOwn.call(proto,"constructor")&&proto.constructor;return typeof Ctor==="function"&&fnToString.call(Ctor)===ObjectFunctionString;}
function isEmptyObject(obj){for(var prop in obj){if(obj.hasOwnProperty(prop))
return false;}
return true;}
function explodeObjectPath(path){path=path.replace(new RegExp("[\\]]",["g"]),"").split(new RegExp("[\\[\\.]",["g"]));return path;}
function getObjectPathValue(object,path,defaultVal){if(kLib.isUndefined(defaultVal))defaultVal=undefined;var key=path.shift();if(path.length===0){return(!isUndefined(object[key]))?object[key]:defaultVal;}
return(!isUndefined(object[key]))?getObjectPathValue(object[key],path,defaultVal):defaultVal;}
function getObjectPath(object,path,defaultVal){if(kLib.isUndefined(defaultVal))defaultVal=undefined;if(!isUndefined(object)&&isPlainObject(object)){path=explodeObjectPath(path);return getObjectPathValue(object,path,defaultVal);}}
function getInterfaceObjectPath(object,path,defaultVal){if(kLib.isUndefined(defaultVal))defaultVal=undefined;if(!isUndefined(object)){path=explodeObjectPath(path);return getObjectPathValue(object,path,defaultVal);}}
function setObjectPath(object,path,value){if(isUndefined(value))return object;path=explodeObjectPath(path);var index=-1,length=path.length,endIndex=length-1,nested=object;while(++index<length){var key=path[index];if(index===endIndex){nested[key]=value;}else if(isUndefined(nested[key])||nested[key]===null){nested[key]={};}
nested=nested[key];}
return object;}
function clean(obj){var propNames=Object.keys(obj);var functionLocal={check:function check(data){return data===null||data===undefined||data===[]||data==={}||data===false||data===0||data===""||((typeof data!=="number"&&typeof data!=="boolean")&&isEmptyObject(data));},filter:function filter(data){return!functionLocal.check(data);},sanitise:function sanitise(obj,propName){if(functionLocal.check(obj[propName])){delete obj[propName];return true;}
return false;}};for(var i=0;i<propNames.length;i++){var propName=propNames[i];if(!functionLocal.sanitise(obj,propName)){if(typeof obj[propName]==="object"){obj[propName]=clean(obj[propName]);if(isArrayLike(obj[propName])){obj[propName]=obj[propName].filter(functionLocal.filter);}
functionLocal.sanitise(obj,propName);}}}
return obj;}
function isEqualObj(value,other){var type=Object.prototype.toString.call(value);if(type!==Object.prototype.toString.call(other))return false;if(["[object Array]","[object Object]"].indexOf(type)<0)return false;var valueLen=type==="[object Array]"?value.length:Object.keys(value).length;var otherLen=type==="[object Array]"?other.length:Object.keys(other).length;if(valueLen!==otherLen)return false;var compare=function(item1,item2){var itemType=Object.prototype.toString.call(item1);if(["[object Array]","[object Object]"].indexOf(itemType)>=0){if(!isEqualObj(item1,item2))return false;}
else{if(itemType!==Object.prototype.toString.call(item2))return false;if(itemType==="[object Function]"){if(item1.toString()!==item2.toString())return false;}else{if(item1!==item2)return false;}}};if(type==="[object Array]"){for(var i=0;i<valueLen;i++){if(compare(value[i],other[i])===false)return false;}}else{for(var key in value){if(value.hasOwnProperty(key)){if(compare(value[key],other[key])===false)return false;}}}
return true;};function isArrayLike(obj){var length=!!obj&&"length"in obj&&obj.length,type=toType(obj);if(isFunction(obj)||isWindow(obj)){return false;}
return type==="array"||length===0||typeof length==="number"&&length>0&&(length-1)in obj;}
function inArray(elem,arr,i){return arr===null?-1:indexOf.call(arr,elem,i);}
function merge(first,second){var len=+second.length,j=0,i=first.length;for(;j<len;j++){first[i++]=second[j];}
first.length=i;return first;}
function makeArray(arr,results){var ret=results||[];if(arr!==null){if(isArrayLike(Object(arr))){merge(ret,typeof arr==="string"?[arr]:arr);}else{push.call(ret,arr);}}
return ret;}
function grep(elems,callback,invert){var callbackInverse,matches=[],i=0,length=elems.length,callbackExpect=!invert;for(;i<length;i++){callbackInverse=!callback(elems[i],i);if(callbackInverse!==callbackExpect){matches.push(elems[i]);}}
return matches;}
function map(elems,callback,arg){var length,value,i=0,ret=[];if(isArrayLike(elems)){length=elems.length;for(;i<length;i++){value=callback(elems[i],i,arg);if(value!==null){ret.push(value);}}}else{for(i in elems){value=callback(elems[i],i,arg);if(value!==null){ret.push(value);}}}
return concat.apply([],ret);}
function toArray(elem){return slice.call(elem);}
function toUniqueArray(array){if(!kLib.isArrayLike(array))return false;var unique=function unique(value,index,self){return self.indexOf(value)===index;};return array.filter(unique);}
function isNumeric(obj){var type=toType(obj);return(type==="number"||type==="string")&&!isNaN(obj-parseFloat(obj));}
function isString(obj){var type=toType(obj);return(type==="number"||type==="string");}
function trim(text){return text===null?"":(text+"").replace(rtrim,"");}
function each(obj,callback){var length,i=0;if(isArrayLike(obj)){length=obj.length;for(;i<length;i++){if(callback.call(obj[i],i,obj[i])===false){break;}}}else{for(i in obj){if(obj.hasOwnProperty(i)){if(callback.call(obj[i],i,obj[i])===false){break;}}}}
return obj;}
function eachReverse(obj,callback){var length,i=0;var keys=[];if(isArrayLike(obj)){length=obj.length;for(i=length-1;i>=0;i--){if(callback.call(obj[i],i,obj[i])===false){break;}}}else{for(i in obj){if(obj.hasOwnProperty(i)){keys.push(i);}}
eachReverse(keys,function(key,value){if(callback.call(obj[value],value,obj[value])===false){return false;}})}
return obj;}
function explodeOptions(options){var object={};each(options.match(rnothtmlwhite)||[],function(_,flag){object[flag]=true;});return object;}
if(typeof Symbol==="function"){kLib.pt[Symbol.iterator]=arr[Symbol.iterator];}
each(explodeOptions(objectTypes),function(i){class2type["[object "+i+"]"]=i.toLowerCase();});function b64EncodeUnicode(str){return window.btoa(window.encodeURIComponent(str).replace(/%([0-9A-F]{2})/g,function(match,p1){return String.fromCharCode(parseInt(p1,16));}));}
function b64DecodeUnicode(str){return window.decodeURIComponent(Array.prototype.map.call(window.atob(str),function(c){return"%"+("00"+c.charCodeAt(0).toString(16)).slice(-2);}).join(""));}
function getUrlParameter(sParam){var sPageURL=window.location.search.substring(1),sURLVariables=sPageURL.split("&"),sParameterName,i;for(i=0;i<sURLVariables.length;i++){sParameterName=sURLVariables[i].split("=");if(sParameterName[0]===sParam){try{return sParameterName[1]===undefined?false:decodeURIComponent(sParameterName[1]);}catch(e){sendReport(e,"UrlParam");logError(e);return false;}}}}
function getAllUrlParameters(){var sPageURL=window.location.search.substring(1),sURLVariables=sPageURL.split("&"),sParameterName,i,returnArray=[];for(i=0;i<sURLVariables.length;i++){sParameterName=sURLVariables[i].split("=");try{returnArray.push({name:sParameterName[0],value:sParameterName[1]===undefined?false:decodeURIComponent(sParameterName[1])});}catch(e){sendReport(e,"UrlParam");logError(e);}}
return returnArray;}
function getSetting(local,path,defaultVal,global){if(kLib.isUndefined(global))global={settings:kLib.settings};if(global===null)global={settings:kLib.settings};if(kLib.isUndefined(defaultVal))defaultVal=undefined;local={settings:local.settings};var localValue=kLib.getObjectPath(local,path);var globalValue=kLib.getObjectPath(global,path);if((!kLib.isUndefined(localValue))){if(isPlainObject(localValue)||Array.isArray(localValue)){return kLib.extend(true,{},kLib.extend(true,globalValue,localValue));}else{return localValue;}}else if(!kLib.isUndefined(globalValue)){return globalValue;}else{return defaultVal;}}
function getGlobalSetting(path,defaultVal){path="settings."+path;return getSetting({settings:{}},path,defaultVal,null);}
function setSetting(local,path,value,useGlobal){if(isUndefined(useGlobal))useGlobal=false;if(useGlobal){setObjectPath({settings:kLib.settings},path,value);}else{setObjectPath(local,path,value);}
return getSetting(local,path);}
function randomId(){function s4(){return Math.floor((1+Math.random())*0x10000).toString(16).substring(1);}
return s4()+s4()+"-"+s4()+"-"+s4()+"-"+s4()+"-"+s4()+s4()+s4();}
function randomFunctionName(){var name=randomId();return"f"+name.replace(new RegExp("-",'g'),"");}
function randomClass(){function s4(){return Math.floor((1+Math.random())*0x10000).toString(16).substring(1);}
return"kl"+s4()+s4()+s4();}
function hashCode(string){var hash=0,length=string.length,iterator=0;if(length>0)
while(iterator<length)
hash=(hash<<5)-hash+string.charCodeAt(iterator++)|0;return hash;};function buildParams(prefix,obj,add){var name;if(Array.isArray(obj)){kLib.each(obj,function(i,v){if(rbracket.test(prefix)){add(prefix,v);}else{buildParams(prefix+"["+(typeof v==="object"&&v!==null?i:"")+"]",v,add);}});}else if(toType(obj)==="object"){for(name in obj){buildParams(prefix+"["+name+"]",obj[name],add);}}else{add(prefix,obj);}}
kLib.param=function(a){var prefix,s=[],add=function(key,valueOrFunction){var value=isFunction(valueOrFunction)?valueOrFunction():valueOrFunction;s[s.length]=encodeURIComponent(key)+"="+
encodeURIComponent(value===null?"":value);};if(Array.isArray(a)||(a.version&&!kLib.isPlainObject(a))){kLib.each(a,function(){add(this.name,this.value);});}else{for(prefix in a){buildParams(prefix,a[prefix],add);}}
return s.join("&");};function parseXML(data){var xml;if(!data||typeof data!=="string"){return null;}
try{xml=(new window.DOMParser()).parseFromString(data,"text/xml");}catch(e){xml=undefined;}
if(!xml||xml.getElementsByTagName("parsererror").length){kLib.error("Invalid XML: "+data);}
return xml;}
function executeFunctionByName(functionName,context){var args=Array.prototype.slice.call(arguments,2);var namespaces=functionName.split(".");var func=namespaces.pop();for(var i=0;i<namespaces.length;i++){context=context[namespaces[i]];}
return context[func].apply(context,args);}
kLib.extend=kLib.pt.extend=function(){var options,name,src,copy,copyIsArray,clone,target=arguments[0]||{},i=1,length=arguments.length,deep=false;if(typeof target==="boolean"){deep=target;target=arguments[i]||{};i++;}
if(typeof target!=="object"&&!isFunction(target)){target={};}
if(i===length){target=this;i--;}
for(;i<length;i++){if((options=arguments[i])!==null){if(isPlainObject(options)&&options.hasOwnProperty("isKlevuChain")){target=kLib.chainClone(options);continue;}
for(name in options){src=target[name];copy=options[name];if(target===copy){continue;}
if(deep&&copy&&(kLib.isPlainObject(copy)||(copyIsArray=Array.isArray(copy)))){if(copyIsArray){copyIsArray=false;clone=src&&Array.isArray(src)?src:[];}else{clone=src&&kLib.isPlainObject(src)?src:{};}
if(copy.hasOwnProperty("isKlevuChain")){target[name]=kLib.chainClone(copy);}else{target[name]=kLib.extend(deep,clone,copy);}}else if(copy!==undefined){target[name]=copy;}}}}
return target;};kLib.extend({version:version,uid:"kLib-"+randomId(),class2type:class2type,settings:settings,type:toType,toBoolean:toBoolean,isFunction:isFunction,isWindow:isWindow,isUndefined:isUndefined,isPlainObject:isPlainObject,isEmptyObject:isEmptyObject,isEqualObj:isEqualObj,isNumeric:isNumeric,isString:isString,strStartsWith:strStartsWith,isArray:Array.isArray,isArrayLike:isArrayLike,inArray:inArray,makeArray:makeArray,toUniqueArray:toUniqueArray,parseJSON:JSON.parse,parseXML:parseXML,each:each,eachReverse:eachReverse,getObjectPath:getObjectPath,getObjectPathValue:getObjectPathValue,getInterfaceObjectPath:getInterfaceObjectPath,setObjectPath:setObjectPath,decode:b64DecodeUnicode,encode:b64EncodeUnicode,getUrlParameter:getUrlParameter,getSetting:getSetting,setSetting:setSetting,getGlobalSetting:getGlobalSetting,clean:clean,randomId:randomId,randomClass:randomClass,hashCode:hashCode,getAllUrlParameters:getAllUrlParameters,queryString:queryString,globalEval:globalEval,executeFunctionByName:executeFunctionByName,randomFunctionName:randomFunctionName});kLib.support={list:{},hooks:{},register:function(settings){if(kLib.isUndefined(settings.name))return false;if(kLib.isUndefined(settings.objectType)){let tempListName=settings.name.split(".");if(tempListName.length>1){settings.objectType=tempListName[0];settings.name=tempListName[1];}else{settings.objectType=settings.name;}}
if(kLib.isUndefined(settings.dependency))settings.dependency=[];if(kLib.isUndefined(settings.loaded))settings.loaded=true;if(kLib.isUndefined(settings.active))settings.active=false;kLib.setObjectPath(kLib.support.list,settings.name,{loaded:settings.loaded,active:settings.active,objectType:settings.objectType,dependency:settings.dependency});if(settings.objectType!==settings.name){kLib.setObjectPath(kLib.support,settings.objectType+"."+settings.name,true);}
kLib.setObjectPath(kLib.support,settings.name,true);if(kLib.support.isActive(settings.name)){kLib.eachReverse(kLib.support.hooks,function(nameList,executeList){let nameListTest=nameList.replaceAll('_','.');if(nameListTest.includes(settings.name)){if(kLib.support.test(nameList.split(","))){kLib.each(executeList,function(key,execute){execute();});delete kLib.support.hooks[nameList];}}});}},isLoaded:function(name){return kLib.getObjectPath(kLib.support.list,name+".loaded",false);},isActive:function(name,objectType){if(kLib.isUndefined(objectType)){let tempListName=name.split(".");if(tempListName.length>1){objectType=tempListName[0];name=tempListName[1];}else{objectType=name;}}
let baseCheck=kLib.getObjectPath(kLib.support.list,name+".active",false);let coreCheck=kLib.getObjectPath(kLib.support.list,"core."+name+".active",false);let reverseCoreCheck=kLib.getObjectPath(kLib.support.list,name.replace(/^(core\.)/,"")+".active",false);let objectTypeCheck=kLib.getObjectPath(kLib.support.list,objectType+"."+name+".active",false);return!!(baseCheck||coreCheck||reverseCoreCheck||objectTypeCheck);},test:function(nameList){nameList=nameList.sort();let executeScript=true;kLib.each(nameList,function(key,name){name=name.replaceAll('_','.');if(!kLib.support.isActive(name)){let nameList=name.split(".");if(nameList.length>1&&kLib.support.isActive(nameList[1],nameList[0])){}else{executeScript=false;}}});return executeScript;},hook:function(nameList,execute,nameOfExecute){if(kLib.isUndefined(nameOfExecute))nameOfExecute=kLib.randomId();if(kLib.support.test(nameList)){execute();}else{let objectToAdd={};objectToAdd[nameOfExecute]=execute;objectToAdd=kLib.extend(kLib.getObjectPath(kLib.support.hooks,nameList.join(",").replaceAll('.','_'),{}),objectToAdd);kLib.setObjectPath(kLib.support.hooks,nameList.join(",").replaceAll('.','_'),objectToAdd);}}};kLib.constructors={list:{},add:function(settings){if(kLib.isUndefined(settings.name))return false;if(kLib.isUndefined(settings.dependency))settings.dependency=[];if(kLib.isUndefined(settings.create))settings.create=function(){};if(kLib.isUndefined(settings.chains))settings.chains={};if(kLib.isUndefined(settings.loaded))settings.loaded=true;let nameToSelectBy=settings.name;kLib.setObjectPath(kLib.constructors.list,nameToSelectBy+".create",settings.create);kLib.setObjectPath(kLib.constructors.list,nameToSelectBy+".chains",settings.chains);kLib.setObjectPath(kLib.constructors.list,nameToSelectBy+".dependency",settings.dependency);kLib.setObjectPath(kLib.constructors.list,nameToSelectBy+".loaded",settings.loaded);},get:function(name){if(kLib.isUndefined(name))return false;return kLib.getObjectPath(kLib.constructors.list,name,false);},construct:function(name){if(kLib.isUndefined(name))return false;let execute=kLib.getObjectPath(kLib.constructors.list,name+".create",false)
return execute();},isLoaded:function(name){if(kLib.isUndefined(name))return false;return kLib.getObjectPath(kLib.constructors.list,name+".loaded",false);}};kLib.support.register({name:"constructors",objectType:"core",active:true});kLib.extend(true,settings,{console:{active:false,errorReporting:"stats.ksearchnet.com",level:1,type:{general:false,ajax:false,chain:false,translator:false,template:false,event:false,storage:false,assets:false}}});function sendImageReportToKlevu(m,code){new Image().src="\/\/"+settings.console.errorReporting+"\/"+'error-log?type=jsv2&c='+code+'&m='+encodeURIComponent(m);}
function sendReport(e,code){let message='{"error":"LOAD","extra": {"name":"'+e.name+'","line":"'+(e.lineNumber||e.line)+'","script":"'+(e.fileName||e.sourceURL||e.script)+'","stack":"'+(e.stackTrace||e.stack)+'","namespace":"kLib","message":"'+e.message+'"}}';sendImageReportToKlevu(message,code);}
function log(data){if(settings.console.active){console.log(data);}}
function logError(data){if(settings.console.level>=1){log(data);}}
function logWarning(data){if(settings.console.level>=2){log(data);}}
function logInfo(data){if(settings.console.level>=3){log(data);}}
function logDebug(data){if(settings.console.level>=4){log(data);}}
function error(msg){throw new Error(msg);}
kLib.extend({logError:logError,logWarning:logWarning,logInfo:logInfo,logDebug:logDebug,sendImageReportToKlevu:sendImageReportToKlevu});kLib.support.register({name:"log",objectType:"core",loaded:true,active:true,dependency:[]});kLib.extend(true,settings,{console:{active:false,errorReporting:"stats.ksearchnet.com",level:1,type:{general:false,ajax:false,chain:false,translator:false,template:false,event:false,storage:false,assets:false}}});function sendImageReportToKlevu(m,code){new Image().src="\/\/"+settings.console.errorReporting+"\/"+'error-log?type=jsv2&c='+code+'&m='+encodeURIComponent(m);}
function sendReport(e,code){let message='{"error":"LOAD","extra": {"name":"'+e.name+'","line":"'+(e.lineNumber||e.line)+'","script":"'+(e.fileName||e.sourceURL||e.script)+'","stack":"'+(e.stackTrace||e.stack)+'","namespace":"kLib","message":"'+e.message+'"}}';sendImageReportToKlevu(message,code);}
function log(data){if(settings.console.active){console.log(data);}}
function logError(data){if(settings.console.level>=1){log(data);}}
function logWarning(data){if(settings.console.level>=2){log(data);}}
function logInfo(data){if(settings.console.level>=3){log(data);}}
function logDebug(data){if(settings.console.level>=4){log(data);}}
function error(msg){throw new Error(msg);}
kLib.extend({logError:logError,logWarning:logWarning,logInfo:logInfo,logDebug:logDebug,sendImageReportToKlevu:sendImageReportToKlevu});kLib.support.register({name:"log",objectType:"core",loaded:true,active:true,dependency:[]});kLib.css=kLib.pt.css={rawData:function(css){try{this.data=b64DecodeUnicode(css);}catch(e){this.data="";sendReport(e,"CSS-Decode");return;}
this.insertReplace();},link:function(url,name){if(isUndefined(name))name="kLib-css";kLib.dom.helpers.removeElementFromDocument("kLib-css");kLib.dom.helpers.addElementToHead({content:url,type:"css-link",name:name});},data:null,origData:null,insertReplace:function(){if(this.data!==this.origData){kLib.dom.helpers.removeElementFromDocument("kLib-css");kLib.dom.helpers.addElementToHead({content:this.data,type:"css",name:"kLib-css"});this.origData=this.data;return true;}}};kLib.support.register({name:"css",objectType:"core",loaded:true,active:true,dependency:["core.dom"]});kLib.extend(true,settings,{chains:{}});kLib.extend({chain:function(receivedOptions){var baseOptions={stopOnFalse:false,list:[],fireList:[],queue:[],firingIndex:-1,firing:false,fired:false,parameters:{},scope:{},spacer:10,webhook:{run:false,name:false,object:false,scope:"all"}};var options=typeof receivedOptions==="string"?baseOptions:kLib.extend(true,baseOptions,receivedOptions);var memory;var fire=function(){options.fired=options.firing=true;if(options.webhook.run&&options.webhook.name&&options.webhook.object){let webhookScope=kLib.extend(true,{},options.webhook);webhookScope.action="before";kLib.event.webhook.runForScopeList({data:options.parameters,scope:options.scope,settings:webhookScope});}
for(;options.queue.length;options.firingIndex=-1){memory=options.queue.shift();while(++options.firingIndex<options.fireList.length){if(options.fireList[options.firingIndex].apply(memory[0],memory[1])===false&&options.stopOnFalse){options.firingIndex=options.fireList.length;memory=false;}}}
if(options.webhook.run&&options.webhook.name&&options.webhook.object){let webhookScope=kLib.extend(true,{},options.webhook);webhookScope.action="after";kLib.event.webhook.runForScopeList({data:options.parameters,scope:options.scope,settings:webhookScope});}
options.firing=false;};function regenerateFireList(){options.fireList=[];kLib.each(options.list,function(index,params){if(!isEmptyObject(params)&&isFunction(params.func))
options.fireList.push(params.func);});options.firingIndex=options.fireList.length;};var selfObj={list:function(){var returnList=[];kLib.each(options.list,function(i,data){if(!isEmptyObject(data)){returnList.push({name:data.name,position:i,function:data.func});}});return returnList;},indexOf:function(name){var index=-1;kLib.each(options.list,function(i,data){if(!isEmptyObject(data)&&data.name===name){index=i;return false;}});return index;},positionOf:function(name){var position=selfObj.indexOf(name);return(toType(position)!=="boolean")?position:false;},add:function(){if(options.list){(function add(args){kLib.each(args,function(_,arg){if(!isNumeric(arg.position)){arg.position=options.list.length+options.spacer;}
if(isFunction(arg.fire)){if(selfObj.indexOf(arg.name)!==-1){selfObj.remove({name:arg.name});}
var newObject={name:arg.name,func:arg.fire};if(isEmptyObject(options.list[arg.position])){options.list[arg.position]=newObject;}else{options.list.splice(arg.position,0,newObject);}}});})(arguments);regenerateFireList();}
return this;},addBefore:function(name,objectData){var position=selfObj.indexOf(name);if(position!==-1){objectData.position=position;selfObj.add(objectData);}
return this;},addAfter:function(name,objectData){var position=selfObj.indexOf(name);if(position!==-1){objectData.position=position+1;selfObj.add(objectData);}
return this;},remove:function(){kLib.each(arguments,function(_,arg){if(!isUndefined(arg.position)){if(!isEmptyObject(options.list[arg.position])){options.list.splice(arg.position,1,{});}}else if(!isUndefined(arg.name)){var position=selfObj.indexOf(arg.name);if(position>=0){options.list.splice(position,1,{});}}});regenerateFireList();return this;},move:function(){kLib.each(arguments,function(_,arg){if(!isUndefined(arg.name)){if(!isNumeric(arg.position)){if(arg.hasOwnProperty("before")){arg.position=selfObj.indexOf(arg.before);}else if(arg.hasOwnProperty("after")){arg.position=selfObj.indexOf(arg.after)+1;}}
var position=selfObj.indexOf(arg.name);if(position>=0){var clone=kLib.extend(true,{},options.list[position]);selfObj.remove({position:position});options.list.splice(arg.position,0,clone);regenerateFireList();}}});return this;},fireWith:function(context,args){args=args||[];args=[context,args.slice?args.slice():args];if(isUndefined(args[1][0])){if(selfObj.hasData()){args[1][0]=selfObj.getData();args[1].length=1;if(selfObj.hasScope()){args[1][1]=selfObj.getScope();args[1].length++;}}else{return this;}}else{options.parameters=args[1][0];if(!isUndefined(args[1][1])){options.scope=args[1][1];}}
options.queue.push(args);if(!options.firing){options.firingIndex=-1;fire();}
return this;},fire:function(){selfObj.fireWith(this,arguments);return this;},empty:function(){if(options.list){options.list=[];}
regenerateFireList();return this;},fired:function(){return options.fired;},stopOnFalse:function(stopOnFalse){options.stopOnFalse=stopOnFalse;return this;},hasData:function(){return(!isEmptyObject(options.parameters));},setData:function(data){options.parameters=data;options.fired=false;return this;},getData:function(){return options.parameters;},hasScope:function(){return(!isEmptyObject(options.scope));},setScope:function(scope){options.scope=scope;options.fired=false;let webhooks=kLib.getObjectPath(options,"scope.webhookSettings",false);if(webhooks){options.webhook=kLib.extend(true,options.webhook,webhooks);}
return this;},setWebhookSettings:function(webhookSettings){if(webhookSettings){options.webhook=kLib.extend(true,options.webhook,webhookSettings);}
return this;},getWebhookSettings:function(){return options.webhook;},getScope:function(){return options.scope;},regenerateFireList:regenerateFireList,getOptions:function(){return options;},options:options,isKlevuChain:true};return selfObj;},chainClone:function(chain){var newOptions={list:kLib.extend(true,[],chain.getOptions().list),parameters:kLib.extend(true,{},chain.getOptions().parameters),scope:kLib.extend(true,{},{}),stopOnFalse:kLib.extend(true,{},chain.getOptions().stopOnFalse),webhook:kLib.extend(true,{},chain.getOptions().webhook)};var localChain=kLib.chain(newOptions);localChain.regenerateFireList();return localChain;}});kLib.support.register({name:"chains",objectType:"core",loaded:true,active:true,dependency:["core.webhook"]});var nonce=Date.now();var prefilters={};var transports={};var allTypes="*/".concat("*");var originAnchor=document.createElement("a");originAnchor.href=location.href;function ajaxHandleResponses(s,klXHR,responses){var ct,type,finalDataType,firstDataType,contents=s.contents,dataTypes=s.dataTypes;while(dataTypes[0]==="*"){dataTypes.shift();if(ct===undefined){ct=s.mimeType||klXHR.getResponseHeader("Content-Type");}}
if(ct){for(type in contents){if(contents[type]&&contents[type].test(ct)){dataTypes.unshift(type);break;}}}
if(dataTypes[0]in responses){finalDataType=dataTypes[0];}else{for(type in responses){if(!dataTypes[0]||s.converters[type+" "+dataTypes[0]]){finalDataType=type;break;}
if(!firstDataType){firstDataType=type;}}
finalDataType=finalDataType||firstDataType;}
if(finalDataType){if(finalDataType!==dataTypes[0]){dataTypes.unshift(finalDataType);}
return responses[finalDataType];}}
function ajaxConvert(s,response,klXHR,isSuccess){var conv2,current,conv,tmp,prev,converters={},dataTypes=s.dataTypes.slice();if(dataTypes[1]){for(conv in s.converters){converters[conv.toLowerCase()]=s.converters[conv];}}
current=dataTypes.shift();while(current){if(s.responseFields[current]){klXHR[s.responseFields[current]]=response;}
if(!prev&&isSuccess&&s.dataFilter){response=s.dataFilter(response,s.dataType);}
prev=current;current=dataTypes.shift();if(current){if(current==="*"){current=prev;}else if(prev!=="*"&&prev!==current){conv=converters[prev+" "+current]||converters["* "+current];if(!conv){for(conv2 in converters){tmp=conv2.split(" ");if(tmp[1]===current){conv=converters[prev+" "+tmp[0]]||converters["* "+tmp[0]];if(conv){if(conv===true){conv=converters[conv2];}else if(converters[conv2]!==true){current=tmp[0];dataTypes.unshift(tmp[1]);}
break;}}}}
if(conv!==true){if(conv&&s.throws){response=conv(response);}else{try{response=conv(response);}catch(e){return{state:"parsererror",error:conv?e:"No conversion from "+prev+" to "+current};}}}}}}
return{state:"success",data:response};}
function ajaxExtend(target,src){var key,deep,flatOptions=kLib.ajaxSettings.flatOptions||{};for(key in src){if(src[key]!==undefined){(flatOptions[key]?target:(deep||(deep={})))[key]=src[key];}}
if(deep){kLib.extend(true,target,deep);}
return target;};function addToPrefiltersOrTransports(structure){return function(dataTypeExpression,func){if(typeof dataTypeExpression!=="string"){func=dataTypeExpression;dataTypeExpression="*";}
var dataType,i=0,dataTypes=dataTypeExpression.toLowerCase().match(rnothtmlwhite)||[];if(isFunction(func)){while((dataType=dataTypes[i++])){if(dataType[0]==="+"){dataType=dataType.slice(1)||"*";(structure[dataType]=structure[dataType]||[]).unshift(func);}else{(structure[dataType]=structure[dataType]||[]).push(func);}}}};}
function inspectPrefiltersOrTransports(structure,options,originalOptions,klXHR){var inspected={},seekingTransport=(structure===transports);function inspect(dataType){var selected;inspected[dataType]=true;kLib.each(structure[dataType]||[],function(_,prefilterOrFactory){var dataTypeOrTransport=prefilterOrFactory(options,originalOptions,klXHR);if(typeof dataTypeOrTransport==="string"&&!seekingTransport&&!inspected[dataTypeOrTransport]){options.dataTypes.unshift(dataTypeOrTransport);inspect(dataTypeOrTransport);return false;}else if(seekingTransport){return!(selected=dataTypeOrTransport);}});return selected;}
return inspect(options.dataTypes[0])||!inspected["*"]&&inspect("*");}
kLib.extend({lastModified:{},etag:{},ajaxSettings:{url:location.href,type:"GET",isLocal:rlocalProtocol.test(location.protocol),global:true,processData:true,async:true,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":allTypes,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":true,"text json":JSON.parse,"text xml":parseXML},flatOptions:{url:true,context:true}},ajaxSetup:function(target,settingsAjax){return settingsAjax?ajaxExtend(ajaxExtend(target,kLib.ajaxSettings),settingsAjax):ajaxExtend(kLib.ajaxSettings,target);},ajaxPrefilter:addToPrefiltersOrTransports(prefilters),ajaxTransport:addToPrefiltersOrTransports(transports),ajax:function(url,options){if(typeof url==="object"){options=url;url=undefined;}
options=options||{};var transport,cacheURL,responseHeadersString,responseHeaders,timeoutTimer,urlAnchor,completed,i,uncached,s=kLib.ajaxSetup({},options),callbackContext=s.context||s,statusCode=s.statusCode||{},requestHeaders={},requestHeadersNames={},strAbort="canceled",klXHR={readyState:0,callbacks:{},getResponseHeader:function(key){var match;if(completed){if(!responseHeaders){responseHeaders={};while((match=rheaders.exec(responseHeadersString))){responseHeaders[match[1].toLowerCase()]=match[2];}}
match=responseHeaders[key.toLowerCase()];}
return match==null?null:match;},getAllResponseHeaders:function(){return completed?responseHeadersString:null;},setRequestHeader:function(name,value){if(completed==null){name=requestHeadersNames[name.toLowerCase()]=requestHeadersNames[name.toLowerCase()]||name;requestHeaders[name]=value;}
return this;},overrideMimeType:function(type){if(completed==null){s.mimeType=type;}
return this;},statusCode:function(map){var code;if(map){if(completed){if(isFunction(map[klXHR.status])){map[klXHR.status](klXHR.responseObj);}}else{for(code in map){statusCode[code]=[statusCode[code],map[code]];}}}
return this;},abort:function(statusText){var finalText=statusText||strAbort;if(transport){transport.abort(finalText);}
done(0,finalText);return this;},requestDetails:s.requestDetails||{}};s.url=((url||s.url||location.href)+"").replace(rprotocol,location.protocol+"//");s.type=options.method||options.type||s.method||s.type;s.dataTypes=(s.dataType||"*").toLowerCase().match(rnothtmlwhite)||[""];if(s.crossDomain===null){urlAnchor=document.createElement("a");try{urlAnchor.href=s.url;urlAnchor.href=urlAnchor.href;s.crossDomain=originAnchor.protocol+"//"+originAnchor.host!==urlAnchor.protocol+"//"+urlAnchor.host;}catch(e){s.crossDomain=true;}}
if(s.data&&s.processData&&typeof s.data!=="string"){s.data=kLib.param(s.data);}
inspectPrefiltersOrTransports(prefilters,s,options,klXHR);if(completed){return klXHR;}
s.type=s.type.toUpperCase();s.hasContent=!rnoContent.test(s.type);cacheURL=s.url.replace(rhash,"");if(!s.hasContent){uncached=s.url.slice(cacheURL.length);if(s.data&&(s.processData||typeof s.data==="string")){cacheURL+=(rquery.test(cacheURL)?"&":"?")+s.data;delete s.data;}
if(s.cache===false){cacheURL=cacheURL.replace(rantiCache,"$1");uncached=(rquery.test(cacheURL)?"&":"?")+"_="+(nonce++)+uncached;}
s.url=cacheURL+uncached;}else if(s.data&&s.processData&&(s.contentType||"").indexOf("application/x-www-form-urlencoded")===0){s.data=s.data.replace(r20,"+");}
if(s.ifModified){if(kLib.lastModified[cacheURL]){klXHR.setRequestHeader("If-Modified-Since",kLib.lastModified[cacheURL]);}
if(kLib.etag[cacheURL]){klXHR.setRequestHeader("If-None-Match",kLib.etag[cacheURL]);}}
if(s.data&&s.hasContent&&s.contentType!==false||options.contentType){klXHR.setRequestHeader("Content-Type",s.contentType);}
klXHR.setRequestHeader("Accept",s.dataTypes[0]&&s.accepts[s.dataTypes[0]]?s.accepts[s.dataTypes[0]]+
(s.dataTypes[0]!=="*"?", "+allTypes+"; q=0.01":""):s.accepts["*"]);for(i in s.headers){klXHR.setRequestHeader(i,s.headers[i]);}
if(s.beforeSend&&(s.beforeSend.call(callbackContext,klXHR,s)===false||completed)){return klXHR.abort();}
strAbort="abort";klXHR.callbacks.done=s.done;klXHR.callbacks.success=s.success;klXHR.callbacks.fail=s.error;transport=inspectPrefiltersOrTransports(transports,s,options,klXHR);if(!transport){done(-1,"No Transport");}else{klXHR.readyState=1;if(completed){return klXHR;}
if(s.async&&s.timeout>0){timeoutTimer=window.setTimeout(function(){klXHR.abort("timeout");},s.timeout);}
try{completed=false;transport.send(requestHeaders,done);}catch(e){if(completed){throw e;}
done(-1,e);}}
function done(status,nativeStatusText,responses,headers){var isSuccess,success,error,response,modified,statusText=nativeStatusText;if(completed){return;}
completed=true;if(timeoutTimer){window.clearTimeout(timeoutTimer);}
transport=undefined;responseHeadersString=headers||"";klXHR.readyState=status>0?4:0;isSuccess=status>=200&&status<300||status===304;if(responses){response=ajaxHandleResponses(s,klXHR,responses);}
response=ajaxConvert(s,response,klXHR,isSuccess);if(isSuccess){if(s.ifModified){modified=klXHR.getResponseHeader("Last-Modified");if(modified){kLib.lastModified[cacheURL]=modified;}
modified=klXHR.getResponseHeader("etag");if(modified){kLib.etag[cacheURL]=modified;}}
if(status===204||s.type==="HEAD"){statusText="nocontent";}else if(status===304){statusText="notmodified";}else{statusText=response.state;success=response.data;error=response.error;isSuccess=!error;}}else{error=statusText;if(status||!statusText){statusText="error";if(status<0){status=0;}}}
klXHR.status=status;klXHR.statusText=(nativeStatusText||statusText)+"";klXHR.responseObj=response;klXHR.isSuccess=isSuccess;if(isSuccess){if(isFunction(klXHR.callbacks.success)){klXHR.callbacks.success(klXHR);}}else{if(isFunction(klXHR.callbacks.fail)){klXHR.callbacks.fail(klXHR);}}
klXHR.statusCode(statusCode);statusCode=undefined;if(isFunction(klXHR.callbacks.done)){klXHR.callbacks.done(klXHR);}}
return klXHR;},getJSON:function(url,data,callback){return kLib.get(url,data,callback,"json");},getScript:function(url,callback){return kLib.get(url,undefined,callback,"script");}});kLib.each(["get","post"],function(i,method){kLib[method]=function(url,data,callback,type){if(isFunction(data)){type=type||callback;callback=data;data=undefined;}
return kLib.ajax(kLib.extend({url:url,type:method,dataType:type,data:data,success:callback},kLib.isPlainObject(url)&&url));};});kLib.ajaxPrefilter(function(s){if(s.crossDomain){s.contents.script=false;}});kLib.ajaxTransport(function(options){var callback,errorCallback;if(kLib.support.isActive("cors")||xhrSupported&&!options.crossDomain){return{send:function(headers,complete){var i,xhr=options.xhr();xhr.open(options.type,options.url,options.async,options.username,options.password);if(options.xhrFields){for(i in options.xhrFields){xhr[i]=options.xhrFields[i];}}
if(options.mimeType&&xhr.overrideMimeType){xhr.overrideMimeType(options.mimeType);}
if(!options.crossDomain&&!headers["X-Requested-With"]){headers["X-Requested-With"]="XMLHttpRequest";}
for(i in headers){xhr.setRequestHeader(i,headers[i]);}
callback=function(type){return function(){if(callback){callback=errorCallback=xhr.onload=xhr.onerror=xhr.onabort=xhr.ontimeout=xhr.onreadystatechange=null;if(type==="abort"){xhr.abort();}else if(type==="error"){if(typeof xhr.status!=="number"){complete(0,"error");}else{complete(xhr.status,xhr.statusText);}}else{complete(xhrSuccessStatus[xhr.status]||xhr.status,xhr.statusText,(xhr.responseType||"text")!=="text"||typeof xhr.responseText!=="string"?{binary:xhr.response}:{text:xhr.responseText},xhr.getAllResponseHeaders());}}};};xhr.onload=callback();errorCallback=xhr.onerror=xhr.ontimeout=callback("error");if(xhr.onabort!==undefined){xhr.onabort=errorCallback;}else{xhr.onreadystatechange=function(){if(xhr.readyState===4){window.setTimeout(function(){if(callback){errorCallback();}});}};}
callback=callback("abort");try{xhr.send(options.hasContent&&options.data||null);}catch(e){if(callback){throw e;}}},abort:function(){if(callback){callback();}}};}});kLib.ajaxSetup({accepts:{script:"text/javascript, application/javascript, "+"application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(text){globalEval(text);return text;}}});kLib.ajaxPrefilter("script",function(s){if(s.cache===undefined){s.cache=false;}
if(s.crossDomain){s.type="GET";}});kLib.ajaxSettings.xhr=function(){try{return new window.XMLHttpRequest();}catch(e){}};var xhrSuccessStatus={0:200,1223:204};var xhrSupported=kLib.ajaxSettings.xhr();kLib.support.register({name:"cors",objectType:"core",loaded:true,active:!!xhrSupported&&("withCredentials"in xhrSupported),dependency:["core.ajax"]});kLib.support.register({name:"ajax",objectType:"core",loaded:true,active:xhrSupported=!!xhrSupported,dependency:[]});kLib.extend(true,settings,{fetchSettings:{url:location.href,method:"GET",processData:true,async:true,contentType:"application/x-www-form-urlencoded; charset=UTF-8",contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},success:function(){},done:function(){},error:function(){}}});kLib.fetch=kLib.pt.fetch=function(requestObject,requestDetails){requestObject=klevu.extend(true,klevu.extend(true,{},klevu.fetchSettings),requestObject);let tempHeaders={};if(!klevu.isUndefined(requestObject.mimeType)){tempHeaders={'Content-Type':requestObject.mimeType,};}
if(!kLib.isUndefined(requestObject.extraHeaders)){kLib.each(requestObject.extraHeaders,function(key,value){tempHeaders[key]=value;});}
tempHeaders=new Headers(tempHeaders);let settings={method:requestObject.method,headers:tempHeaders};if(requestObject.method.toLowerCase()==="get"){var url=new URL(requestObject.url);if(requestObject.data!==""){var params={q:requestObject.data};Object.keys(params).forEach(function(key,value){url.searchParams.append(value,params[value]);});}
requestObject.url=url.toString();}else{settings.body=requestObject.data}
if(requestObject.crossDomain)settings.mode='cors';let processor=function(res){if(res.ok){var processor=null;if(!klevu.isUndefined(requestObject.dataType)){processor=requestObject.dataType.toLowerCase();}else{if(res.headers.get("content-type")!=null){if(res.headers.get("content-type").indexOf("json")!==-1){processor="json";}else if(res.headers.get("content-type").indexOf("xml")!==-1){processor="xml";}}}
switch(processor){case"json":res.json().then(function(data){requestObject.success(data,requestDetails,res.status,res.ok);});break;case"xml":res.text().then(function(data){requestObject.success((new window.DOMParser()).parseFromString(data,"text/xml"),requestDetails,res.status,res.ok);});break;default:res.text().then(function(data){requestObject.success(data,requestDetails,res.status,res.ok);});}}else{requestObject.error(requestDetails,res.status,res.ok);}};let fallbackFetch=kLib.getGlobalSetting("fetchSettings.fallback",false);if(!fallbackFetch){let request=new Request(requestObject.url,settings);fetch(request).then(function(res){processor(res);},function(e){requestObject.error(requestDetails,"0",false);});}else{fetch(requestObject.url,settings).then(function(res){processor(res);},function(e){requestObject.error(requestDetails,"0",false);});}};kLib.support.register({name:"fetch",objectType:"core",loaded:true,active:true,dependency:[]});kLib.extend(true,settings,{request:{type:"FETCH",method:"GET",crossDomain:false,data:"",success:function(){},done:function(){},error:function(){}}});kLib.request=kLib.pt.request=function(requestObject,requestDetails){if(!isUndefined(requestObject)){requestObject=klevu.extend(true,klevu.extend(true,{},klevu.settings.request),requestObject);if(isUndefined(requestObject.url))return false;if(requestObject.type.toLowerCase()==="fetch"){delete requestObject["type"];klevu.fetch(requestObject,requestDetails);}else{delete requestObject["type"];kLib.setObjectPath(requestDetails,"context.requestDetails",{});kLib.setObjectPath(requestDetails,"context.requestObject",{});requestObject.requestDetails=requestDetails;klevu.ajax(requestObject);}}};kLib.get=kLib.pt.get=function(requestObject){requestObject.method="GET";kLib.request(requestObject);};kLib.post=kLib.pt.post=function(requestObject){requestObject.method="POST";kLib.request(requestObject);};kLib.support.register({name:"request",objectType:"core",loaded:true,active:true,dependency:["core.ajax","core.fetch"]});kLib.extend(true,settings,{assets:{support:["template","js","css"]}});var assetsProcessors={js:function(data,options){kLib.dom.helpers.addElementToHead({content:data,type:"js",name:"kfl-"+randomId()});},css:function(data,options){kLib.dom.helpers.addElementToHead({content:data,type:"css",name:"kfl-"+randomId()});},template:function(data,options){klevu.search[options.pbid].getScope().template.setTemplate(data,options.name,true);},}
kLib.assets=kLib.pt.assets={getFile:function(fileObject){if(!fileObject.hasOwnProperty("url"))return false;if(!fileObject.hasOwnProperty("type"))return false;if(!fileObject.hasOwnProperty("options"))fileObject.options={};fileObject.options.url=fileObject.url;fileObject.options.type=fileObject.type;switch(fileObject.options.type){case"css":fileObject.options.mimeType="text/css";break;case"js":fileObject.options.mimeType="text/javascript";break;case"template":fileObject.options.mimeType="text/plain";break;default:fileObject.options.mimeType="text/plain";break;}
var requestDetails={success:function(data,options,status,isSuccess){kLib.assets.process(data,options);if(options.hasOwnProperty("successCallback"))options.successCallback(options);},error:function(data,options,status,isSuccess){if(options.hasOwnProperty("errorCallback"))options.errorCallback(options);},options:fileObject.options};var requestObject={url:fileObject.url,type:"FETCH",method:"GET",mimeType:fileObject.options.mimeType,crossDomain:true};if(window.fetch){requestObject.success=function(data,requestDetails,status,isSuccess){requestDetails.success(data,requestDetails.options,status,isSuccess);};requestObject.error=function(requestDetails,status,isSuccess){requestDetails.error({},requestDetails.options,status,isSuccess);};}else{requestObject.type="AJAX";requestObject.success=function(klXHR){requestDetails.success(klXHR.responseObj.data,klXHR.requestDetails.options,klXHR.status,klXHR.isSuccess);};requestObject.error=function(klXHR){requestDetails.error({},klXHR.requestDetails.options,klXHR.status,klXHR.isSuccess);};}
kLib.request(requestObject,requestDetails);},process:function(data,options){if(!assetsProcessors.hasOwnProperty(options.type)){return false;}
assetsProcessors[options.type](data,options);},addProcessor:function(object){if(!object.hasOwnProperty("type"))return false;if(!object.hasOwnProperty("fire"))return false;assetsProcessors[object.type]=object.fire;},getProcessors:function(){return assetsProcessors;}};kLib.support.register({name:"assets",objectType:"core",loaded:true,active:true,dependency:["core.request","core.dom"]});var cacheObj={request:[],response:[],keys:0};kLib.cache=kLib.pt.cache=function(){var selfObj={getCache:function(req){var cacheKey=selfObj.getCacheKey(req);if(cacheKey>=0)return cacheObj.response[cacheKey];return false;},getCacheKey:function(req){var keyToReturn=-1;kLib.each(cacheObj.request,function(key,value){if(kLib.isEqualObj(req,value)){keyToReturn=key;return false;}});return keyToReturn;},hasCache:function(req){return(selfObj.getCacheKey(req)!==-1);},setCache:function(req,res){var cacheKey=selfObj.getCacheKey(req);if(cacheKey>=0){cacheObj.response[cacheKey]=res;}else{cacheObj.request[cacheObj.keys]=req;cacheObj.response[cacheObj.keys]=res;cacheObj.keys++;}
return true;},getAllCache:function(){return cacheObj;}};return selfObj;};kLib.support.register({name:"cache",objectType:"core",loaded:true,active:true,dependency:[]});var globalDictionaryRepo={};kLib.extend({globalDictionaryRepo:globalDictionaryRepo});kLib.dictionary=kLib.pt.dictionary=function(type){var localSettings={dictionaryMap:{},type:type||"translation",storageType:null,storage:null,cookies:[]};if(isUndefined(globalDictionaryRepo[localSettings.type])){globalDictionaryRepo[localSettings.type]={};}
function storageTest(objectName){var test="test";try{window[objectName].setItem(test,test);window[objectName].removeItem(test);return true;}catch(e){return false;}}
function buildKey(key){return"klv_"+localSettings.type+"_"+key;}
function decodesKey(key){return key.replace(buildKey(""),"");}
function checkKey(key){return strStartsWith(key,buildKey(""));}
function getAllStorage(){var i=0,output={},sKey;for(;sKey=localSettings.storage.key(i);i++){if(sKey==="undefined")break;var value=localSettings.storage.getItem(sKey);if(value!==null){if(checkKey(sKey))
output[decodesKey(sKey)]=value;}}
return output;}
function getStorage(){if(localSettings.storage!==null)return localSettings.storage;return false;};function getStorageType(){if(localSettings.storageType!==null)return localSettings.storageType;return false;};function hasStorage(){return(localSettings.storageType!==null);}
function mergeToStorage(){if(hasStorage()){var storageElements=getAllStorage();if(!kLib.dataProtection.dataCanBeTracked()){if((kLib.isUndefined(globalDictionaryRepo[localSettings.type].klvDataProtected)&&!kLib.isUndefined(storageElements.klvDataProtected)&&kLib.toBoolean(storageElements.klvDataProtected))||(!kLib.isUndefined(globalDictionaryRepo[localSettings.type].klvDataProtected)&&(kLib.toBoolean(globalDictionaryRepo[localSettings.type].klvDataProtected)))){return false;}}
each(storageElements,function(key,value){try{localSettings.storage.removeItem(buildKey(key));}catch(e){sendReport(e,"STORAGE-removeKey-"+buildKey(key));}});each(globalDictionaryRepo[localSettings.type],function(key,value){try{localSettings.storage.setItem(buildKey(key),value);}catch(e){sendReport(e,"STORAGE-addKey-"+buildKey(key));}});}}
function mergeFromStorage(){if(hasStorage()){var storageElements=getAllStorage();if(!kLib.dataProtection.dataCanBeTracked()){if((kLib.isUndefined(globalDictionaryRepo[localSettings.type].klvDataProtected)&&!kLib.isUndefined(storageElements.klvDataProtected)&&kLib.toBoolean(storageElements.klvDataProtected))||(!kLib.isUndefined(globalDictionaryRepo[localSettings.type].klvDataProtected)&&(kLib.toBoolean(globalDictionaryRepo[localSettings.type].klvDataProtected)))){return false;}}
globalDictionaryRepo[localSettings.type]=kLib.extend(true,globalDictionaryRepo[localSettings.type],storageElements);}}
var selfObj={getGlobal:function(){mergeFromStorage();return globalDictionaryRepo[localSettings.type];},mergeToGlobal:function(){globalDictionaryRepo[localSettings.type]=kLib.extend(true,globalDictionaryRepo[localSettings.type],localSettings.dictionaryMap);mergeToStorage();return this;},overrideGlobal:function(){globalDictionaryRepo[localSettings.type]=localSettings.dictionaryMap;mergeToStorage();return this;},mergeFromGlobal:function(){mergeFromStorage();localSettings.dictionaryMap=kLib.extend(true,localSettings.dictionaryMap,globalDictionaryRepo[localSettings.type]);return this;},setElements:function(elements){if(isArrayLike(elements)){if(elements.length>0){each(elements,function(key,value){selfObj.addElement(key,value);});}}else if(isPlainObject(elements)){each(elements,function(key,value){selfObj.addElement(key,value);});}
return this;},getElements:function(){return localSettings.dictionaryMap;},resetElements:function(){localSettings.dictionaryMap={};return this;},getElement:function(string){if(isUndefined(string))return"";if(!isUndefined(localSettings.dictionaryMap[string])&&!(localSettings.dictionaryMap[string]===null)){string=localSettings.dictionaryMap[string];}
return string;},addElement:function(valueDefault,valueOverride){localSettings.dictionaryMap[valueDefault]=valueOverride;return this;},removeElement:function(valueDefault){delete localSettings.dictionaryMap[valueDefault];return this;},getAllStorage:getAllStorage,setStorage:function(storage,fallback){if(isUndefined(fallback))fallback=false;try{var skip=false;if(storage==="local"&&storageTest("localStorage")){localSettings.storageType=storage;localSettings.storage=window["localStorage"];skip=true;}else if(fallback){storage="cookies";}
if(!skip){if(storage==="session"&&storageTest("sessionStorage")){localSettings.storageType=storage;localSettings.storage=window["sessionStorage"];}else if(fallback){storage="cookiesSession";}}
if(storage==="cookies"||storage==="cookiesSession"){localSettings.storageType=storage;localSettings.storage={getItem:function(sKey){if(!sKey||!this.hasOwnProperty(sKey)){return null;}
return decodeURI(document.cookie.replace(new RegExp("(?:^|.*;\\s*)"+encodeURI(sKey).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*((?:[^;](?!;))*[^;]?).*"),"$1"));},key:function(nKeyId){var keys=document.cookie.replace(/\s*\=(?:.(?!;))*$/,"").split(/\s*\=(?:[^;](?!;))*[^;]?;\s*/);var clone=kLib.extend(true,{},keys);each(clone,function(key,value){if(value.indexOf(buildKey(""))===-1){keys.splice(keys.indexOf(value),1);}});var key=decodeURI(keys[nKeyId]);return key;},setItem:function(sKey,sValue){if(!sKey){return;}
var dateString="";if(localSettings.storageType==="cookies"){var date=new Date();date.setTime(date.getTime()+(7*24*60*60*1000));dateString=" expires="+date.toUTCString()+";";}
document.cookie=encodeURI(sKey)+"="+encodeURI(sValue)+";"+dateString+" path=/";var lengthRegex=new RegExp(buildKey(""),["g"]);this.length=(document.cookie.match(lengthRegex)).length;},length:0,removeItem:function(sKey){if(!sKey||!this.hasOwnProperty(sKey)){return;}
document.cookie=encodeURI(sKey)+"=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";this.length--;},hasOwnProperty:function(sKey){return(new RegExp("(?:^|;\\s*)"+encodeURI(sKey).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=")).test(document.cookie);}};var lengthRegex=new RegExp(buildKey(""),["g"]);localSettings.storage.length=(document.cookie.match(lengthRegex)).length;}
if(hasStorage()){mergeFromStorage();}}catch(e){sendReport(e,"STORAGE-storageSet-"+storage);}},getStorage:getStorage,getStorageType:getStorageType,hasStorage:hasStorage,mergeFromStorage:mergeFromStorage,mergeToStorage:mergeToStorage,setDataProtection:function(klvDataProtected){selfObj.addElement("klvDataProtected",klvDataProtected);return this;}};return selfObj;};kLib.support.register({name:"dictionary",objectType:"core",loaded:true,active:true,dependency:["core.dataProtection"]});kLib.extend(true,settings,{currency:{precision:2,grouping:3,decimal:".",thousand:","}});kLib.currency=kLib.pt.currency=function(){var dictionaryObj=kLib.dictionary("currency");var selfObj={getGlobal:dictionaryObj.getGlobal,mergeToGlobal:dictionaryObj.mergeToGlobal,overrideGlobal:dictionaryObj.overrideGlobal,mergeFromGlobal:dictionaryObj.mergeFromGlobal,setCurrencys:function(currencyMap){if(isPlainObject(currencyMap)){each(currencyMap,function(key,value){selfObj.addCurrency(key,value);});}
return this;},getCurrencys:dictionaryObj.getElements,resetCurrencys:dictionaryObj.resetElements,getCurrency:function(string){var map={};if(isUndefined(string))return map;string=trim(string);var local=dictionaryObj.getElement(string);if(local!==string){map=local;}else{map={code:string,string:string,atEnd:true,format:"%s%s"};}
return map;},addCurrency:function(valueCode,valueMap){if(!valueMap.hasOwnProperty("format"))valueMap.format="%s%s";if(!valueMap.hasOwnProperty("atEnd"))valueMap.atEnd=false;if(!valueMap.hasOwnProperty("code"))valueMap.code=valueCode;if(!valueMap.hasOwnProperty("precision")){valueMap.precision=parseInt(settings.currency.precision);}else{valueMap.precision=parseInt(valueMap.precision);}
if(!valueMap.hasOwnProperty("thousand"))valueMap.thousand=settings.currency.thousand;if(!valueMap.hasOwnProperty("decimal"))valueMap.decimal=settings.currency.decimal;if(!valueMap.hasOwnProperty("grouping")){valueMap.grouping=parseInt(settings.currency.grouping);}else{valueMap.grouping=parseInt(valueMap.grouping);}
if(valueMap.hasOwnProperty("code")&&valueMap.hasOwnProperty("string"))
dictionaryObj.addElement(valueCode,valueMap);return this;},removeCurrency:dictionaryObj.removeElement,parse:function(str){var args=[].slice.call(arguments,1),i=0;return str.replace(/(%s)/g,function(){var returnArgument="";if(!isUndefined(args[i]))returnArgument=args[i];i++;return returnArgument;});},unformatPrice:function(price,decimal){price=price||0;if(typeof price!=="number"){decimal=decimal||settings.currency.decimal;var regex=new RegExp("[^0-9-"+decimal+"]",["g"]);price=parseFloat((""+price).replace(/\((?=\d+)(.*)\)/,"-$1").replace(regex,"").replace(decimal,"."));price=!isNaN(price)?price:0;}
return price;},formatPrice:function(price){var args=arguments;var opts={precision:settings.currency.precision,thousand:settings.currency.thousand,decimal:settings.currency.decimal,grouping:settings.currency.grouping};if(typeof args[1]!=="undefined"){opts=(isPlainObject(args[1])?kLib.extend(true,opts,args[1]):opts);}
price=selfObj.unformatPrice(price,opts.decimal);var negative=price<0?"-":"",base=parseInt((Number(Math.round(Number(selfObj.unformatPrice(Math.abs(price||0))+"e"+opts.precision))+"e-"+opts.precision).toFixed(opts.precision)),10)+"",mod=base.length>opts.grouping?base.length%opts.grouping:0;return negative+(mod?base.substr(0,mod)+opts.thousand:"")+base.substr(mod).replace(/(\d{3})(?=\d)/g,"$1"+opts.thousand)+(opts.precision?opts.decimal+(Number(Math.round(Number(selfObj.unformatPrice(Math.abs(price))+"e"+opts.precision))+"e-"+opts.precision).toFixed(opts.precision)).split(".")[1]:"");},processCurrency:function(code,price){var currency=selfObj.getCurrency(code);price=selfObj.formatPrice(price,currency);if(currency.atEnd){price=selfObj.parse.apply(null,[currency.format,price,currency.string]);}else{price=selfObj.parse.apply(null,[currency.format,currency.string,price]);}
return price;}};return selfObj;};kLib.support.register({name:"currency",objectType:"core",loaded:true,active:true,dependency:["core.dictionary"]});kLib.translator=kLib.pt.translator=function(){var currencyObj=false;var dictionaryObj=kLib.dictionary("translation");var selfObj={getGlobal:dictionaryObj.getGlobal,mergeToGlobal:dictionaryObj.mergeToGlobal,overrideGlobal:dictionaryObj.overrideGlobal,mergeFromGlobal:dictionaryObj.mergeFromGlobal,setTranslations:dictionaryObj.setElements,getTranslations:dictionaryObj.getElements,resetTranslations:dictionaryObj.resetElements,getTranslation:dictionaryObj.getElement,addTranslation:dictionaryObj.addElement,removeTranslation:dictionaryObj.removeElement,parse:function(str){var args=[].slice.call(arguments,1),i=0;return str.replace(/(%s)/g,function(){var returnArgument="";if(!isUndefined(args[i]))returnArgument=args[i];i++;return returnArgument;});},translate:function(string){string=selfObj.getTranslation(string);if(string.length===0)return string;if(isArrayLike(arguments)){if(arguments.length>1){var args=arguments;args[0]=string;string=selfObj.parse.apply(null,args);}}
return string;},getCurrencyObject:function(){if(currencyObj){return currencyObj;}else{currencyObj=kLib.currency();}
return currencyObj;}};return selfObj;};kLib.support.register({name:"translator",objectType:"core",loaded:true,active:true,dependency:["core.dictionary","core.currency"]});kLib.extend({template:function(){var templateSettings={templateList:{},templateName:{},helpers:{},data:{},translator:null,currency:null,webhook:{run:false,name:"template",object:false,scope:"all"}};function template(templateString,settingsTemplate){var templateSettingsGenerate={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var noMatch=/(.)^/;var escapeRegExp=/\\|'|\r|\n|\u2028|\u2029/g;var escapes={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"};var escapeChar=function(match){return"\\"+escapes[match];};settingsTemplate=kLib.extend({},settingsTemplate,templateSettingsGenerate);var matcher=new RegExp([(settingsTemplate.escape||noMatch).source,(settingsTemplate.interpolate||noMatch).source,(settingsTemplate.evaluate||noMatch).source].join("|")+"|$","g");var index=0;var source="__out+='";templateString.replace(matcher,function(match,escape,interpolate,evaluate,offset){source+=templateString.slice(index,offset).replace(escapeRegExp,escapeChar);index=offset+match.length;if(escape){source+="'+\n((__temp=("+escape+"))==null?'':encodeURIComponent(__temp))+\n'";}else if(interpolate){source+="'+\n((__temp=("+interpolate+"))==null?'':__temp)+\n'";}else if(evaluate){source+="';\n"+evaluate+"\n__out+='";}
return match;});source+="';\n";if(!settingsTemplate.variable)source="with(data||{}){\n"+source+"}\n";source="var __temp,__out='',__joiner=Array.prototype.join,"+"print=function(){__out+=__joiner.call(arguments,'');};\n"+
source+"return __out;\n";var render;try{render=new Function(settingsTemplate.variable||"data","dataLocal","helper","scope",source);}catch(e){e.source=source;sendReport(e,"TEMPLATE-renderError");throw e;}
var template=function(data,dataLocal,helper,scope){if(isUndefined(scope)){scope=selfObj;}
if(isUndefined(data)){if(scope.hasData()){data=templateSettings.data;}}
if(isUndefined(dataLocal)){dataLocal=data;}
if(isUndefined(helper)){helper=getHelpers();}
return render.call(this,data,dataLocal,helper,scope);};var argument=settingsTemplate.variable||"data";var argumentLocal="dataLocal";var helper="helper";var scope="scope";template.source="function("+argument+","+argumentLocal+", "+helper+", "+scope+"){\n"+source+"}";template.list=settingsTemplate.list;template.naming=settingsTemplate.name;return template;};function renderTemplate(name,scope,data,dataLocal,helper){if(isUndefined(scope)){scope=selfObj;}
if(data===undefined){if(scope.hasData()){data=scope.getTemplateSettings().data;}}
if(isUndefined(dataLocal)){dataLocal=data;}
if(isUndefined(helper)){helper=scope.getHelpers();}
let returnStr="";if(kLib.isUndefined(scope.getTemplateSettings().templateList[name])){return returnStr;}else{kLib.each(scope.getTemplateSettings().templateList[name],function(index,templateFunction){let templateName=templateFunction.naming;if(kLib.isFunction(templateFunction)){if(!klevu.isUndefined(klevu.getGlobalSetting("global.templateHints"))&&klevu.getGlobalSetting("global.templateHints")==='true'){returnStr+="<div style=' border: 1px solid red;'><span style='color: white;background-color: red;'>L: "+name+" T:"+templateName+"</span>"+templateFunction(data,dataLocal,helper,scope)+"</div>";}else{returnStr+=templateFunction(data,dataLocal,helper,scope);}}});return returnStr;}}
function getHelpers(){return templateSettings.helpers;}
function setHelper(name,functionSource){if(isFunction(functionSource)){templateSettings.helpers[name]=functionSource;}
return templateSettings.helpers;}
function initTranslator(){templateSettings.translator=kLib.translator();setHelper("translator",templateSettings.translator);templateSettings.translator.mergeFromGlobal();setHelper("translate",templateSettings.translator.translate);setHelper("addTranslation",templateSettings.translator.addTranslation);setHelper("getTranslation",templateSettings.translator.getTranslation);setHelper("removeTranslation",templateSettings.translator.removeTranslation);setHelper("setTranslations",templateSettings.translator.setTranslations);templateSettings.currency=templateSettings.translator.getCurrencyObject();templateSettings.currency.mergeFromGlobal();setHelper("processCurrency",templateSettings.currency.processCurrency);return templateSettings.translator;}
initTranslator();function getTranslator(){return templateSettings.translator;}
function translate(){return getTranslator().translate.apply(null,arguments);}
function buildUrl(uri,key,value){var i=uri.indexOf("#");uri=i===-1?uri:uri.substr(0,i);var separator=uri.indexOf("?")!==-1?"&":"?";var re=new RegExp("([?&])"+key+"=.*?(&|$)","i");var keyval={};keyval[key]=value;keyval=kLib.param(keyval);if(uri.match(re)){return uri.replace(re,"$1"+keyval+"$2");}else{return uri+separator+keyval;}}
setHelper("render",renderTemplate);setHelper("each",kLib.each);setHelper("buildUrl",buildUrl);setHelper("stripHtml",kLib.dom.helpers.stripHtml);setHelper("escapeHTML",kLib.dom.helpers.escapeHtml);var selfObj={getTemplateSettings:function(){return templateSettings;},setTemplateSettings:function(settings){templateSettings=settings;return templateSettings;},setTemplate:function(templateString,name,decoded,skipWebhook,list){let beforeTemplate,afterTemplate;if(kLib.isPlainObject(templateString)){if(!klevu.getObjectPath(templateString,"template",false)||!klevu.getObjectPath(templateString,"name",false)){return false;}
name=klevu.getObjectPath(templateString,"name",undefined);decoded=klevu.getObjectPath(templateString,"decoded",false);skipWebhook=klevu.getObjectPath(templateString,"skipWebhook",false);list=klevu.getObjectPath(templateString,"list",false);beforeTemplate=klevu.getObjectPath(templateString,"before",false);afterTemplate=klevu.getObjectPath(templateString,"after",false);templateString=klevu.getObjectPath(templateString,"template",undefined);}
if(templateString===undefined||name===undefined){return false;}
decoded=decoded||false;if(!decoded){try{templateString=b64DecodeUnicode(templateString);}catch(e){this.data="";sendReport(e,"TEMPLATE-templateDecode");return false;}}
if(!list)list=name;templateSettings.templateName[name]=template(templateString,{list:list,name:name});if(kLib.isUndefined(templateSettings.templateList[list])){templateSettings.templateList[list]=[];}
let templateFound=false;let deleteFound=false;if(templateSettings.templateList[list].length>0){if(beforeTemplate||afterTemplate){deleteFound=true;}
kLib.eachReverse(templateSettings.templateList[list],function(index,functionSource){if(functionSource.naming===name){if(deleteFound){templateSettings.templateList[list].splice(index,1);}else{templateFound=true;templateSettings.templateList[list][index]=templateSettings.templateName[name];}}});if(beforeTemplate||afterTemplate){kLib.eachReverse(templateSettings.templateList[list],function(index,functionSource){if(beforeTemplate&&!templateFound){if(functionSource.naming===beforeTemplate){templateFound=true;templateSettings.templateList[list].splice(index,0,templateSettings.templateName[name]);}}
if(afterTemplate&&!templateFound){if(functionSource.naming===afterTemplate){templateFound=true;templateSettings.templateList[list].splice(index+1,0,templateSettings.templateName[name]);}}});}}
if(!templateFound){templateSettings.templateList[list].push(templateSettings.templateName[name]);}
skipWebhook=skipWebhook||false;if(!skipWebhook){if(templateSettings.webhook.run&&templateSettings.webhook.name&&templateSettings.webhook.object){let webhookScope=kLib.extend(true,{},templateSettings.webhook);webhookScope.action="setTemplate";kLib.event.webhook.runForScopeList({data:{name:name,list:list},scope:selfObj,settings:webhookScope});}}
return true;},render:renderTemplate,list:function(){var returnList=[];kLib.each(templateSettings.templateName,function(i,data){if(!isEmptyObject(data)){returnList.push({name:data.naming,list:data.list,function:data.source});}});return returnList;},convertTemplate:function(htmlString){var div=document.createElement("div");div.innerHTML=trim(htmlString);div.className="klevuWrap";return div;},insertTemplate:function(node,element){node.appendChild(element);return node;},stripHtml:kLib.dom.helpers.stripHtml,setHelper:setHelper,getHelpers:getHelpers,translate:translate,getTranslator:getTranslator,initTranslator:initTranslator,hasData:function(){return(!isEmptyObject(templateSettings.data));},setData:function(data){templateSettings.data=data;return this;},getData:function(){return templateSettings.data;},setWebhookSettings:function(webhookSettings){if(webhookSettings){templateSettings.webhook=kLib.extend(true,templateSettings.webhook,webhookSettings);}
return this;},getWebhookSettings:function(){return templateSettings.webhook;}};return selfObj;},templateClone:function(source){var template=kLib.template();var localSettings=kLib.extend(true,{},source.getTemplateSettings());template.setTemplateSettings(localSettings);template.initTranslator();return template;}});kLib.support.register({name:"template",objectType:"core",loaded:true,active:true,dependency:["core.translator","core.currency","core.log","core.webhook"]});kLib.extend(true,settings,{events:{maxExecutions:100,defaultDelay:0,skipFirstRun:false}});var events={};kLib.extend({isReady:false,isInteractive:false});kLib.extend({event:{attach:function(target,event,callBack,useCapture){if(typeof addEventListener!=="undefined"){if(isUndefined(useCapture))useCapture=false;target.addEventListener(event,callBack,useCapture);}else{target.attachEvent("on"+event,callBack);}},detach:function(target,event,callBack,useCapture){if(typeof removeEventListener!=="undefined"){if(isUndefined(useCapture))useCapture=false;target.removeEventListener(event,callBack,useCapture);}else{target.detachEvent("on"+event,callBack);}},fireChain:function(klevuObject,chainName,scope,data,event){var chain=kLib.getObjectPath(klevuObject,chainName);if(kLib.isUndefined(chain)||chain.list().length===0)return;chain.setScope(scope);chain.setData(data);chain.fire();if(chain.getData().preventDefault)event.preventDefault();return event;}},});kLib.support.register({name:"event",objectType:"core",loaded:true,active:true,dependency:["core.chains"]});var startInterface={fireChainAndClear:function(chain){if(chain.list().length>0&&chain.hasData()){chain.fire();chain.empty();chain.setData({counter:0,list:[]});}},addToChain:function(chain,object){if(isFunction(object)){object={name:kLib.randomId(),fire:object};}else if(!isEmptyObject(object)){if(!object.name)object.name=kLib.randomId();}
if(object){if(isFunction(object.fire)){var internal=object.fire;object.fire=function(data,scope){internal.call(this,data.list[data.counter],scope);data.counter++;};};chain.add(object);var data=chain.getData();if(!object.data)object.data={};data.list.push(object.data);chain.setData(data);}},initChain:function(){var chain=kLib.chain();chain.setData({counter:0,list:[]});return chain;},events:{completedEvent:function(event){if(event.type==="load"||document.readyState==="complete"){startInterface.events.detachEvent();startInterface.interactiveFire();startInterface.readyFire();}else if(document.readyState==="interactive"){startInterface.interactiveFire();}},detachEvent:function(){if(document.addEventListener){document.removeEventListener("DOMContentLoaded",startInterface.events.completedEvent,false);window.removeEventListener("load",startInterface.events.completedEvent,false);}else{document.detachEvent("onreadystatechange",startInterface.events.completedEvent);window.detachEvent("onload",startInterface.events.completedEvent);}}},readyFire:function(){if(!document.body){return setTimeout(startInterface.readyFire);}
kLib.isInteractive=true;kLib.isReady=true;startInterface.fireChainAndClear(settings.chains.readyChain);},interactiveFire:function(){if(!document.body){return setTimeout(startInterface.interactiveFire);}
kLib.isInteractive=true;startInterface.fireChainAndClear(settings.chains.interactiveChain);},interactivePromise:function(object){if(document.readyState==="interactive")kLib.isInteractive=true;if(!settings.chains.interactiveChain){settings.chains.interactiveChain=startInterface.initChain();}
startInterface.addToChain(settings.chains.interactiveChain,object);if(kLib.isInteractive){startInterface.fireChainAndClear(settings.chains.interactiveChain);}},readyPromise:function(object){if(!settings.chains.readyChain){settings.chains.readyChain=startInterface.initChain();if(document.readyState==="complete"){setTimeout(startInterface.readyFire);}else if(document.addEventListener){document.addEventListener("DOMContentLoaded",startInterface.events.completedEvent,false);window.addEventListener("load",startInterface.events.completedEvent,false);}else{document.attachEvent("onreadystatechange",startInterface.events.completedEvent);window.attachEvent("onload",startInterface.events.completedEvent);var top=false;try{top=window.frameElement===null&&document.documentElement;}catch(e){}
if(top&&top.doScroll){(function doScrollCheck(){if(!kLib.isReady){try{top.doScroll("left");}catch(e){return setTimeout(doScrollCheck,50);}
startInterface.events.detachEvent();startInterface.readyFire();}})();}}}
startInterface.addToChain(settings.chains.readyChain,object);if(kLib.isReady){startInterface.fireChainAndClear(settings.chains.readyChain);}}};kLib.extend({ready:function(object){startInterface.readyPromise(object);},interactive:function(object){startInterface.interactivePromise(object);}});kLib.support.register({name:"ready",objectType:"core",loaded:true,active:true,dependency:["core.chains"]});kLib.support.register({name:"interactive",objectType:"core",loaded:true,active:true,dependency:["core.chains"]});kLib.extend({coreEvent:{build:function(object){object.maxCount=object.maxCount||settings.events.maxExecutions;object.delay=object.delay||settings.events.defaultDelay;object.skipFirstRun=object.skipFirstRun||settings.events.skipFirstRun;if(isUndefined(object.name)||isUndefined(object.fire)||!isFunction(object.fire))return false;events[object.name]={fire:object.fire,counter:0,delay:object.delay,maxCount:object.maxCount,skipFirstRun:object.skipFirstRun};kLib.coreEvent.promise(name);},attach:function(name,object){if(isUndefined(name)||isUndefined(events[name]))return false;kLib.coreEvent.promise(name,object);},promise:function(name,object){if(isUndefined(name)||isUndefined(events[name]))return false;if(!settings.chains[name+"Chain"]){settings.chains[name+"Chain"]=startInterface.initChain();setTimeout(kLib.coreEvent.fire.bind(kLib,name),events[name].delay);}
startInterface.addToChain(settings.chains[name+"Chain"],object);if(!events[name].skipFirstRun){if(events[name].fire.call(kLib)===true){kLib.coreEvent.fire(name);}}},fire:function(name){if(isUndefined(name)||isUndefined(events[name]))return false;if(events[name].counter>=events[name].maxCount){return false;}
events[name].counter++;if(events[name].fire.call(kLib)===true){startInterface.fireChainAndClear(settings.chains[name+"Chain"]);events[name].counter=0;}else{setTimeout(kLib.coreEvent.fire.bind(kLib,name),events[name].delay);}}}});kLib.support.register({name:"coreEvent",objectType:"core",loaded:true,active:true,dependency:["core.chains"]});kLib.extend(true,{event:{eventList:{build:function(options){if(!options.hasOwnProperty("name"))options.name="klv"+kLib.randomFunctionName();if(!options.hasOwnProperty("global"))options.global=false;function arrayObject(){let arr=Object.create(Array.prototype)
Object.defineProperty(arr,'length',{value:0,enumerable:false,writable:true,})
arr.chain=kLib.chain({stopOnFalse:true});for(key in arguments){arr[key]=arguments[key]
arr.length+=1}
arr.run=function(){let data={action:"run",element:this};let chain=this.chain;if(!kLib.isUndefined(chain)&&chain.list().length!==0){chain.setScope(this);chain.setData(data);chain.fire();}}
arr.remove=function(elementToRemove){const index=this.indexOf(elementToRemove);if(index>-1){this.splice(index,1);return true;}
return false;}
try{arr.push=function(element){this[this.length]=element
this.length++
this.run();return 1;}
arr.pop=function(){this.length--
const elementToRemove=this[this.length]
delete this[this.length]
return elementToRemove}
arr.filter=function(cb){let result=[];for(let index in this){if(this.hasOwnProperty(index)){const element=this[index]
if(cb(element,index)){result.push(element)}}}
return result}}catch(e){sendReport(e,"Array Object Creation");}
return arr}
let customEventList=arrayObject();kLib.event.eventList.list[options.name]=customEventList;if(options.global){let currentObject=!kLib.isUndefined(window[options.name])?window[options.name]:[];if(currentObject.length>0){kLib.each(currentObject,function(key,value){customEventList.push(value);});}
window[options.name]=customEventList;}
return customEventList;},getByName:function(name){if(kLib.getObjectPath(kLib.event.eventList.list,name,false)){return kLib.getObjectPath(kLib.event.eventList.list,name);}else{return kLib.event.eventList.build({name:name});}},hasByName:function(name){return kLib.getObjectPath(kLib.event.eventList.list,name,false);},list:{}}}});kLib.support.register({name:"eventList",objectType:"core",loaded:true,active:true,dependency:["core.chains"]});kLib.extend(true,{event:{webhook:{build:function(options){if(!options.hasOwnProperty("name"))options.name=kLib.randomFunctionName();if(!options.hasOwnProperty("object"))options.object="klevu";if(!options.hasOwnProperty("scope"))options.scope="all";if(!options.hasOwnProperty("action"))options.action="all";function buildWebhook(){let obj={};obj.chain=kLib.chain({stopOnFalse:false});obj.addListener=function(functionCode){let name=kLib.randomFunctionName();this.chain.add({name:name,fire:functionCode});return name;}
obj.removeListener=function(name){this.chain.remove({name:name});return true}
obj.run=function(data,scope){if(kLib.isUndefined(data)||kLib.isEmptyObject(data)){data={action:"run",element:this};}
if(kLib.isUndefined(scope)||kLib.isEmptyObject(scope)){scope=this;}
let chain=this.chain;if(!kLib.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope);chain.setData(data);chain.fire();}}
return obj}
let webhook=buildWebhook();kLib.setObjectPath(kLib.event.webhook.list,options.object+"."+options.name+"."+options.action+"."+options.scope,webhook);return webhook;},hasWebhook:function(options){if(!options.hasOwnProperty("name"))return false;if(!options.hasOwnProperty("object"))return false;if(!options.hasOwnProperty("scope"))return false;if(!options.hasOwnProperty("action"))return false;return!!kLib.getObjectPath(kLib.event.webhook.list,options.object+"."+options.name+"."+options.action+"."+options.scope,false);},getWebhook:function(options){if(kLib.event.webhook.hasWebhook(options)){return kLib.getObjectPath(kLib.event.webhook.list,options.object+"."+options.name+"."+options.action+"."+options.scope,false);}
return kLib.event.webhook.build(options);},attach:function(options){if(!options.hasOwnProperty("scope"))options.scope="all";if(!options.hasOwnProperty("fire"))options.fire=function(data,scope){};let scopes=options.scope.split(",");kLib.each(scopes,function(key,scope){let webhook=kLib.event.webhook.getWebhook({name:options.name,object:options.object,scope:scope.trim(),action:options.action});webhook.addListener(options.fire);});},runForScopeList:function(options){let scopeToRun=options.scope;let dataToRun=options.data;let settings=options.settings;var scopes=settings.scope.split(",");kLib.eachReverse(scopes,function(key,scope){settings.scope=scope;if(kLib.event.webhook.hasWebhook(settings)){let webhook=kLib.event.webhook.getWebhook(settings);webhook.run(dataToRun,scopeToRun);}});},buildEventList:function(){kLib.event.eventList.build({name:"_klvWebhook",global:true});kLib.event.eventList.getByName("_klvWebhook").chain.add({name:"moveToWebhook",fire:function(data,scope){if(data.element.length>0){let listToRemove=[];kLib.each(data.element,function(key,value){let elementToAdd={};let runAttach=true;if(kLib.getObjectPath(value,"name",false)){elementToAdd.name=kLib.getObjectPath(value,"name");}else{runAttach=false;}
if(kLib.getObjectPath(value,"object",false)){elementToAdd.object=kLib.getObjectPath(value,"object");}else{runAttach=false;}
if(kLib.getObjectPath(value,"scope",false)){elementToAdd.scope=kLib.getObjectPath(value,"scope");}
if(kLib.getObjectPath(value,"action",false)){elementToAdd.action=kLib.getObjectPath(value,"action");}else{runAttach=false;}
if(kLib.getObjectPath(value,"fire",false)){elementToAdd.fire=kLib.getObjectPath(value,"fire");}else{runAttach=false;}
if(kLib.event.webhook){if(runAttach){kLib.event.webhook.attach(elementToAdd);}
listToRemove.push(value);}});if(listToRemove.length>0){kLib.each(listToRemove,function(key,value){data.element.remove(value);});};}}});kLib.event.eventList.getByName("_klvWebhook").run();},list:{},helpers:{setWebhookSettingsForScope:function(settings,scope){if(settings){scope.webhookSettings=klevu.extend(true,scope.webhookSettings,settings);}
return scope;},getWebhookSettingsForScope:function(scope){return scope.webhookSettings;},fireEventForScope:function(data){let webhookSettings=klevu.extend(true,{},data.webhookSettings);webhookSettings.name=data.name;webhookSettings.action=data.action;klevu.event.webhook.runForScopeList({data:data.data,scope:data.scope,settings:webhookSettings});}},}}});kLib.extend(true,{modifyRequest:function modifyRequest(scope,entity,value,obj){let chain="chains.request.build",action="after";if(kLib.isUndefined(obj))obj="search";if(kLib.isUndefined(value))value="";if(kLib.isUndefined(scope))scope="all";if(typeof scope==='object'){try{chain=kLib.getObjectPath(scope,"chain",chain);action=kLib.getObjectPath(scope,"action",action);obj=kLib.getObjectPath(scope,"object",obj);if(!kLib.isUndefined(scope.callback)&&kLib.isFunction(scope.callback)){entity=kLib.getObjectPath(scope,"callback",entity);}else if(!kLib.isUndefined(scope.entity)&&kLib.isString(scope.entity)){entity=kLib.getObjectPath(scope,"entity",entity);value=kLib.getObjectPath(scope,"value",value);}else{return;}
scope=kLib.getObjectPath(scope,"scope","all");}catch(err){}}
if(kLib.isUndefined(entity)){entity=function(data,scope){};}else if(kLib.isString(entity)){var overrideSetting={path:entity,value:value};entity=function(data,scope){var originalOverrides=kLib.getObjectPath(data,'localOverrides.query.'+overrideSetting.path,undefined);if(!kLib.isUndefined(originalOverrides)&&typeof overrideSetting.value==='object'){var tempOverridesType={};if(overrideSetting.value.length){tempOverridesType=[];}
var mergedOverrides=klevu.extend(1,tempOverridesType,originalOverrides,overrideSetting.value);kLib.setObjectPath(data,'localOverrides.query.'+overrideSetting.path,mergedOverrides);}else{kLib.setObjectPath(data,'localOverrides.query.'+overrideSetting.path,overrideSetting.value);}}}
kLib.event.webhook.attach({object:obj,scope:scope,name:chain,action:action,fire:entity});},modifyResponse:function modifyResponse(scope,callback,obj,action,chain){if(kLib.isUndefined(obj))obj="search";if(kLib.isUndefined(callback))callback=function(data,scope){};if(kLib.isUndefined(scope))scope="all";if(kLib.isUndefined(chain))chain="chains.template.process.success";if(kLib.isUndefined(action))action="before";kLib.event.webhook.attach({object:obj,scope:scope,name:chain,action:action,fire:callback});},afterTemplateRender:function afterTemplateRender(scope,callback,chain,obj,action){if(kLib.isUndefined(obj))obj="search";if(kLib.isUndefined(callback))callback=function(data,scope){};if(kLib.isUndefined(scope))scope="all";if(kLib.isUndefined(chain))chain="chains.template.events";if(kLib.isUndefined(action))action="after";kLib.event.webhook.attach({object:obj,scope:scope,name:chain,action:action,fire:callback});},beforeActivation:function beforeActivation(scope,callback,action,obj,name){if(kLib.isUndefined(obj))obj="search";if(kLib.isUndefined(callback))callback=function(data,scope){};if(kLib.isUndefined(scope))scope="all";if(kLib.isUndefined(name))name="mainObject";if(kLib.isUndefined(action))action="beforeInit";kLib.event.webhook.attach({object:obj,scope:scope,name:name,action:action,fire:callback});}});kLib.event.webhook.buildEventList();kLib.support.register({name:"webhook",objectType:"core",loaded:true,active:true,dependency:["core.chains"]});kLib.extend({dom:{find:function(selector,node){if(isUndefined(node))node=window.document;if(kLib.isString(node)&&node!=="")node=window.document.getElementById(node);if(!kLib.dom.helpers.isHTMLNode(node)){node=window.document;}
if(!node.querySelectorAll)return document.querySelectorAll(node.id+" "+selector);return node.querySelectorAll(selector);},getFirst:function(selector,node){if(isUndefined(node))node=window.document;var result=kLib.dom.find(selector,node);if(result.length>0)return result[0];return result;},helpers:{isHTMLNode:function isNode(o){return(typeof Node==="object"?o instanceof Node:o&&typeof o==="object"&&typeof o.nodeType==="number"&&typeof o.nodeName==="string");},querySelectorAll:document.querySelectorAll,getClosest:function(node,selector){for(;node&&node!==document;node=node.parentNode){if(node.matches(selector))return node;}
return null;},addElementToHead:function addElementToHead(data){var element;if(isUndefined(data))return;if(data.type==="css"){element=document.createElement("style");element.type="text/css";element.id=data.name;if(element.styleSheet){element.styleSheet.cssText=data.content;}else{element.appendChild(document.createTextNode(data.content));}}else if(data.type==="js"){element=document.createElement("script");element.type="text/javascript";element.id=data.name;element.appendChild(document.createTextNode(data.content));}else if(data.type==="css-link"){element=document.createElement("link");element.setAttribute("rel","stylesheet");element.setAttribute("type","text/css");element.id=data.name;element.setAttribute("href",data.content);}
if(!isUndefined(element)){document.getElementsByTagName("head")[0].appendChild(element);}},removeElementFromDocument:function removeElementFromDocument(id){var elem=document.getElementById(id);if(!isUndefined(elem)&&elem)elem.parentNode.removeChild(elem);},addElementToParent:function(parent,child,options){if(isUndefined(parent)||parent===null)parent=window.document.body;var elem=document.createElement(child);for(var option in options){if(options.hasOwnProperty(option)){elem.setAttribute(option,options[option]);}}
parent.appendChild(elem);return elem;},getHTML:function getHTML(selector,node,offset){var listElement=kLib.dom.find(selector,node);if(isUndefined(offset))offset=0;if(!isNumeric(offset)&&isString(offset)&&offset!==""){switch(offset){case"first":offset=0;break;case"last":offset=listElement.length-1;break;default:offset=0;}}
if(isNumeric(offset))return kLib.dom.helpers.isHTMLNode(listElement[offset])?listElement[offset].innerHTML:"";return"";},convertHtmlToText:function convertHtmlToText(string){var klevuConvert=document.createElement('div');klevuConvert.innerHTML=string;string=klevuConvert.textContent;return string},stripHtml:function stripHtml(string){string=string.replace(/(<([^>]+)>)/ig,"");return string;},escapeHtml:function escapeHtml(string){if(string&&string.length){var entityMap={'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#39;','/':'&#x2F;','`':'&#x60;','=':'&#x3D;'};return String(string).replace(/[&<>"'`=\/]/g,function(s){return entityMap[s];});}else{return string;}}}}});kLib.support.register({name:"dom",objectType:"core",loaded:true,active:true,dependency:[]});kLib.time={timestamp:function(){return Math.floor(Date.now()/ 1000);},microTime:function(){return Math.floor(Date.now());}};kLib.support.register({name:"time",objectType:"core",loaded:true,active:true,dependency:[]});kLib.dataProtection=kLib.pt.dataProtection={consentSettings:kLib.dictionary("consent"),hasUseConsent:function(){return!kLib.isUndefined(kLib.getGlobalSetting("dataProtection.useConsent"));},getUseConsent:function(){return kLib.toBoolean(kLib.getGlobalSetting("dataProtection.useConsent",false));},getUseConsentStorage:function(){var useConsent=kLib.dataProtection.consentSettings.getElement("useConsent");if(useConsent==="useConsent")useConsent=false;return kLib.toBoolean(useConsent);},setUseConsent:function(useConsent,settings){if(kLib.isUndefined(settings))settings=kLib.settings;kLib.setObjectPath(settings,"dataProtection.useConsent",kLib.toBoolean(useConsent));kLib.dataProtection.consentSettings.addElement("useConsent",kLib.toBoolean(useConsent));kLib.dataProtection.saveConsentSettings();},hasConsentState:function(){return!kLib.isUndefined(kLib.getGlobalSetting("dataProtection.consentState"));},getConsentState:function(){return kLib.toBoolean(kLib.getGlobalSetting("dataProtection.consentState",false));},getConsentStateStorage:function(){var consentState=kLib.dataProtection.consentSettings.getElement("consentState");if(consentState==="consentState")consentState=false;return kLib.toBoolean(consentState);},setConsentState:function(consentState,settings){if(kLib.isUndefined(settings))settings=kLib.settings;if(kLib.toBoolean(consentState)!==false){kLib.setObjectPath(settings,"dataProtection.useConsent",kLib.toBoolean(consentState));}
kLib.dataProtection.consentSettings.addElement("consentState",kLib.toBoolean(consentState));kLib.dataProtection.saveConsentSettings();},dataCanBeTracked:function(){if(!kLib.dataProtection.hasUseConsent())return true;if(kLib.dataProtection.getUseConsent()){if(!kLib.dataProtection.hasConsentState())return false;return kLib.toBoolean(kLib.dataProtection.getConsentState());}
return true;},saveConsentSettings:function(){var consentSettings=kLib.dataProtection.consentSettings;consentSettings.addElement("useConsent",kLib.dataProtection.getUseConsent());consentSettings.addElement("consentState",kLib.dataProtection.getConsentState());consentSettings.mergeToGlobal();},loadConsentSettings:function(data){var consentSettings=kLib.dataProtection.consentSettings;consentSettings.setStorage("local");consentSettings.mergeFromGlobal();var useConsent=consentSettings.getElement("useConsent");if(useConsent==="useConsent")useConsent=kLib.dataProtection.getUseConsent();var consentState=consentSettings.getElement("consentState");if(consentState==="consentState")consentState=kLib.dataProtection.getConsentState();kLib.setObjectPath(data,"dataProtection.useConsent",kLib.toBoolean(useConsent));kLib.setObjectPath(data,"dataProtection.consentState",kLib.toBoolean(consentState));}}
kLib.support.register({name:"dataProtection",objectType:"core",loaded:true,active:true,dependency:["core.dictionary","core.chains"]});coreBuild();if(isUndefined(window["klevu"])){window["klevu"]=kLib;kLib.reInitialize();if(typeof window.klevuInit==="function"){klevuInit();}}else{kLib.reInitialize();}
kLib.support.register({name:"lib",objectType:"core",loaded:true,active:true,dependency:[]});return kLib;});}catch(e){new Image().src="\/\/stats.ksearchnet.com\/"+'error-log?type=jsv2&c=initError&m='+encodeURIComponent('{"error":"LOAD","extra": {"name":"'+e.name+'","line":"'+(e.lineNumber||e.line)+'","script":"'+(e.fileName||e.sourceURL||e.script)+'","stack":"'+(e.stackTrace||e.stack)+'","namespace":"kLib","message":"'+e.message+'"}}');console.log(e);};klevu.settings.chains.initChain.add({name:"dataProtectionLoad",fire:function(data,scope){if(!klevu.getObjectPath(data,"flags.dataProtection.loaded",false)){klevu.dataProtection.loadConsentSettings(data);klevu.setObjectPath(data,"flags.dataProtection.loaded",true);}}});klevu.settings.chains.initChain.add({name:"dataProtectionCheck",fire:function(data,scope){var useConsent=klevu.getObjectPath(data,"dataProtection.useConsent");if(!klevu.isUndefined(useConsent)&&klevu.toBoolean(useConsent)!==klevu.toBoolean(klevu.dataProtection.getUseConsentStorage()))
klevu.dataProtection.setUseConsent(useConsent,data);var consentState=klevu.getObjectPath(data,"dataProtection.consentState");if(!klevu.isUndefined(consentState)&&klevu.toBoolean(consentState)!==klevu.toBoolean(klevu.dataProtection.getConsentStateStorage()))
klevu.dataProtection.setConsentState(consentState,data);}});klevu({flags:{global:{libLoaded:true}}});klevu.interactive(function(){klevu({flags:{global:{libInteractive:true}}});});(function(klevu){klevu.support.hook(["core.constructors"],function(){if(!klevu.constructors.isLoaded("user")){klevu.constructors.add({name:"user",create:function(){let selfObj={settings:{dictionary:{user:klevu.dictionary("user"),},request:{},response:{},user:{apiKey:false,sessionId:false,sessionInfo:{connectorInfo:[]},segmentInfo:{segments:[],}},general:{scope:document.createElement("div"),apiKey:false,lastSend:false,connectorInfo:{},flags:{canSend:true,forceSend:false,isInit:false,isInitForce:false,isInSend:false}}},webhookSettings:{run:true,object:"user",scope:"all"},saveToDictionary:function(){if(this.settings.user.sessionId){this.settings.dictionary.user.addElement("sessionId",this.settings.user.sessionId);}
let sessionInfo=klevu.extend(true,{},this.settings.user.sessionInfo);delete sessionInfo.connectorInfo;this.settings.dictionary.user.addElement("sessionInfo",JSON.stringify(sessionInfo));this.settings.dictionary.user.addElement("connectorInfo",JSON.stringify(this.settings.general.connectorInfo));this.settings.dictionary.user.addElement("segmentInfo",JSON.stringify(this.settings.user.segmentInfo));this.settings.dictionary.user.addElement("segments",JSON.stringify(this.settings.user.segmentInfo.segments));this.settings.dictionary.user.addElement("lastSend",JSON.stringify(this.settings.general.lastSend));this.settings.dictionary.user.mergeToGlobal();},getAllSettings:function(){return this.settings;},getScope:function(){return this;},hasData:function(path){return!!klevu.getObjectPath(this.settings,path,false);},getData:function(path,defaultValue){if(klevu.isUndefined(defaultValue))defaultValue=false;return klevu.getObjectPath(this.settings,path,defaultValue);},setData:function(path,value){klevu.setObjectPath(this.settings,path,value);this.saveToDictionary();return this;},setApiKey:function(apiKey){klevu.setObjectPath(this.settings,"user.apiKey",apiKey);klevu.setObjectPath(this.settings,"general.apiKey",apiKey);let chain=this.chains.init;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(this);chain.setData(this.settings);chain.fire();}
return this;},getApiKey:function(){return this.settings.general.apiKey;},setWebhookSettings:function(webhookSettings){klevu.event.webhook.helpers.setWebhookSettingsForScope(webhookSettings,this);return this;},getWebhookSettings:function(){return klevu.event.webhook.helpers.getWebhookSettingsForScope(this);},addConnector:function(connectorName,connectorData){let connector=selfObj.getData("general.connectorInfo."+connectorName,false);let connectorChanged=false;if(connector){klevu.each(connectorData,function(key,value){if(klevu.isUndefined(connector[key])||connector[key]!=value){connectorChanged=true;}});}else{connectorChanged=true;}
selfObj.setData("general.connectorInfo."+connectorName,connectorData);if(connectorChanged)klevu.user.fetchSessionForce();},getSegments:function(){let segments=selfObj.getData("user.segmentInfo.segments",[]);if(segments.length===0){return false}
return segments;},getSessionId:function(){return selfObj.getData("user.sessionId",false);},fetchSession:function(){if(!selfObj.getApiKey()){return;}
if(!selfObj.getData("general.canSend",false)){return;}
klevu.event.webhook.helpers.fireEventForScope({webhookSettings:selfObj.webhookSettings,name:"fetchSession",action:"before",data:selfObj.getAllSettings(),scope:selfObj});let chain=selfObj.chains.request;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(selfObj);chain.setData(selfObj.settings);chain.fire();}},fetchSessionForce:function(){selfObj.setData("general.flags.forceSend",true);return selfObj.fetchSession();},chains:klevu.constructors.get("user").chains}
klevu.event.webhook.helpers.fireEventForScope({webhookSettings:selfObj.webhookSettings,name:"mainObject",action:"beforeBuild",data:selfObj.getAllSettings(),scope:selfObj});let chain=selfObj.chains.build;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(selfObj);chain.setData(selfObj.settings);chain.fire();}
klevu.event.webhook.helpers.fireEventForScope({webhookSettings:selfObj.webhookSettings,name:"mainObject",action:"afterBuild",data:selfObj.getAllSettings(),scope:selfObj});return selfObj;},chains:{build:klevu.chain({stopOnFalse:true,webhook:{name:"chains.build"}}),init:klevu.chain({stopOnFalse:true,webhook:{name:"chains.init"}}),request:klevu.chain({stopOnFalse:true,webhook:{name:"chains.request"}}),response:klevu.chain({stopOnFalse:true,webhook:{name:"chains.receive"}}),}});klevu.constructors.get("user").chains.init.add({name:"validateReInit",fire:function(data,scope){if(!data.general.flags.isInitForce&&data.general.flags.isInit){return false;}}});klevu.constructors.get("user").chains.init.add({name:"initDictionary",fire:function(data,scope){data.dictionary.user=klevu.dictionary("user_"+data.general.apiKey);data.dictionary.user.setDataProtection(true);data.dictionary.user.setStorage("local");data.dictionary.user.mergeFromGlobal();}});klevu.constructors.get("user").chains.init.add({name:"loadDictionaryData",fire:function(data,scope){data.user.sessionId=data.dictionary.user.getElement("sessionId")!=="sessionId"?data.dictionary.user.getElement("sessionId"):false;data.user.sessionInfo=data.dictionary.user.getElement("sessionInfo")!=="sessionInfo"?JSON.parse(data.dictionary.user.getElement("sessionInfo")):{connectorInfo:[]};data.general.connectorInfo=data.dictionary.user.getElement("connectorInfo")!=="connectorInfo"?JSON.parse(data.dictionary.user.getElement("connectorInfo")):{};data.user.segmentInfo.segments=data.dictionary.user.getElement("segments")!=="segments"?JSON.parse(data.dictionary.user.getElement("segments")):[];data.user.segmentInfo=data.dictionary.user.getElement("segmentInfo")!=="segmentInfo"?JSON.parse(data.dictionary.user.getElement("segmentInfo")):{segments:data.user.segmentInfo.segments};data.general.lastSend=data.dictionary.user.getElement("lastSend")!=="lastSend"?parseInt(data.dictionary.user.getElement("lastSend")):0;}});klevu.constructors.get("user").chains.init.add({name:"checkDataProtection",fire:function(data,scope){if(klevu.dataProtection.dataCanBeTracked()){scope.setData("general.canSend",true);}else{scope.setData("general.canSend",false);}}});klevu.constructors.get("user").chains.init.add({name:"setInitState",fire:function(data,scope){data.general.flags.isInit=true;}});klevu.constructors.get("user").chains.init.add({name:"fetchSession",fire:function(data,scope){scope.fetchSession();}});klevu.constructors.get("user").chains.request.add({name:"checkIfOutOfTimeout",fire:function(data,scope){let currentTime=klevu.time.timestamp();if((currentTime-parseInt(data.general.lastSend))<klevu.getGlobalSetting("user.sessionRefresh",300)){if(!data.general.flags.forceSend){klevu.logDebug("KLEVU - USER SESSION - Request is still valid");return false;}}}});klevu.constructors.get("user").chains.request.add({name:"validateIfOnlyOneSend",fire:function(data,scope){if(data.general.flags.isInSend){setTimeout(klevu.user.fetchSession,1000);return false;}
data.general.flags.isInSend=true;}});klevu.constructors.get("user").chains.request.add({name:"moveConnectorInfo",fire:function(data,scope){data.user.sessionInfo.connectorInfo=[];klevu.each(data.general.connectorInfo,function(key,value){data.user.sessionInfo.connectorInfo.push(value);});}});klevu.constructors.get("user").chains.request.add({name:"resetData",fire:function(data,scope){data.request={context:{forceSend:scope.settings.general.flags.forceSend}};if(window.fetch){data.request.method="FETCH";}else{data.request.method="AJAX";}
data.general.scope.userObject=scope;data.request.scope=data.general.scope;}});klevu.constructors.get("user").chains.request.add({name:"buildPayload",fire:function(data,scope){let payload=klevu.extend(true,{},data.user);klevu.setObjectPath(payload,"segmentInfo",{});data.request.context.requestObject={url:klevu.getGlobalSetting("url.userSession","https://visitor.service.ksearchnet.com/public/1.0/")+data.general.apiKey+"/session",type:data.request.method,method:"POST",mimeType:"application/json; charset=UTF-8",contentType:"application/json; charset=utf-8",dataType:"json",crossDomain:true,data:JSON.stringify(klevu.clean(payload)),success:function(){let data,requestDetails,status,isSuccess;if(arguments.length===1){data=arguments[0].responseObj.data;requestDetails=arguments[0].requestDetails;status=arguments[0].status;isSuccess=arguments[0].isSuccess;}else{data=arguments[0];requestDetails=arguments[1];status=arguments[2];isSuccess=arguments[3];}
var chain=klevu.getObjectPath(requestDetails.scope.userObject,"chains.response");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(requestDetails.scope.userObject);klevu.setObjectPath(requestDetails,"response.data",data);klevu.setObjectPath(requestDetails,"context.status",status);klevu.setObjectPath(requestDetails,"context.isSuccess",isSuccess);chain.setData(requestDetails);chain.fire();}},error:function(){let requestDetails,status,isSuccess;if(arguments.length===1){requestDetails=arguments[0].requestDetails;status=arguments[0].status;isSuccess=arguments[0].isSuccess;}else{requestDetails=arguments[0];status=arguments[1];isSuccess=arguments[2];}
var chain=klevu.getObjectPath(requestDetails.scope.userObject,"chains.response");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(requestDetails.scope.userObject);klevu.setObjectPath(requestDetails,"response.data",{});klevu.setObjectPath(requestDetails,"context.status",status);klevu.setObjectPath(requestDetails,"context.isSuccess",isSuccess);chain.setData(requestDetails);chain.fire();}}};data.request.context.requestDetails=klevu.extend(true,{},data.request);}});klevu.constructors.get("user").chains.request.add({name:"makeRequest",fire:function(data,scope){klevu.request(data.request.context.requestObject,data.request.context.requestDetails);}});klevu.constructors.get("user").chains.response.add({name:"checkResponseCode",fire:function(data,scope){if(!data.context.isSuccess){scope.settings.general.flags.isInSend=false;return false;}}});klevu.constructors.get("user").chains.response.add({name:"saveReturnData",fire:function(data,scope){if(!klevu.isUndefined(data.response.data.sessionId)){scope.setData("user.sessionId",data.response.data.sessionId);if(!klevu.isUndefined(data.response.data.segmentInfo)){scope.setData("user.segmentInfo",data.response.data.segmentInfo);}
if(!klevu.isUndefined(data.response.data.segmentInfo)&&!klevu.isUndefined(data.response.data.segmentInfo.ttl)){scope.setData("general.lastSend",(klevu.time.timestamp()-klevu.getGlobalSetting("user.sessionRefresh",300)+parseInt(data.response.data.segmentInfo.ttl)));}else{scope.setData("general.lastSend",klevu.time.timestamp());}}}});klevu.constructors.get("user").chains.response.add({name:"saveToDictionary",fire:function(data,scope){scope.saveToDictionary();}});klevu.constructors.get("user").chains.response.add({name:"markAsComplete",fire:function(data,scope){scope.settings.general.flags.isInSend=false;if(data.context.forceSend){scope.settings.general.flags.forceSend=false;}}});klevu.constructors.get("user").chains.response.add({name:"sendWebhookAfterSessionCall",fire:function(data,scope){klevu.event.webhook.helpers.fireEventForScope({webhookSettings:scope.webhookSettings,name:"fetchSession",action:"after",data:scope.getAllSettings(),scope:scope});}});}});klevu.support.hook(["user"],function(){klevu.settings.chains.initChain.add({name:"userSession",fire:function(data,scope){var apiKey=klevu.getGlobalSetting("search.apiKey",klevu.getGlobalSetting("recs.apiKey",klevu.getGlobalSetting("global.apiKey")));if(!klevu.isUndefined(apiKey)){var powerUp=klevu.getGlobalSetting("powerUp.userSession");if((!klevu.isUndefined(powerUp)&&powerUp===false))return;if(klevu.getObjectPath(data,"flags.userSession.build",false))return;klevu.setObjectPath(data,"flags.userSession.build",true);klevu.user.setApiKey(apiKey);}}});});if(!klevu.support.isActive("user")){klevu.extend({user:klevu.constructors.construct("user"),});klevu.support.register({name:"user",loaded:true,active:true,dependency:["core.lib"]});}
klevu.support.hook(["user"],function(){klevu.settings.chains.initChain.add({name:"userSession",fire:function(data,scope){var apiKey=klevu.getGlobalSetting("search.apiKey",klevu.getGlobalSetting("recs.apiKey",klevu.getGlobalSetting("global.apiKey")));if(!klevu.isUndefined(apiKey)){var powerUp=klevu.getGlobalSetting("powerUp.userSession");if((!klevu.isUndefined(powerUp)&&powerUp===false))return;if(klevu.getObjectPath(data,"flags.userSession.build",false))return;klevu.setObjectPath(data,"flags.userSession.build",true);klevu.user.setApiKey(apiKey);}}});});})(klevu);(function(klevu){var kmcInputs={markAllResourcesLoaded:function(){klevu.search.modules.kmcInputs.hasAllResourcesLoadedJson=true;if(typeof klevu_processKMCInputData==="function"){klevu_processKMCInputData();}
var options={kmc:{loaded:true},};klevu(options);},loadCallBack:function(data,options){var kmcDictionary=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcDictionary");var kmcDataLoaded=kmcDictionary.getElement(options.apiKey);if(!klevu.isUndefined(data.klevu_banner))data.klevu_banner=klevu.search.modules.kmcInputs.base.removeIneligibleBanners(data.klevu_banner);if(!klevu.isUndefined(data.klevu_autoCorrectMap))data.klevu_autoCorrectMap=klevu.search.modules.kmcInputs.base.sortAutocorrectMap(data.klevu_autoCorrectMap);if(kmcDataLoaded===options.apiKey){kmcDataLoaded=data;}else{kmcDataLoaded=klevu.extend(true,JSON.parse(kmcDataLoaded),data);}
kmcDataLoaded.timeOfLoad=klevu.time.timestamp();kmcDictionary.addElement(options.apiKey,JSON.stringify(kmcDataLoaded));kmcDictionary.overrideGlobal();if(klevu.search.modules.kmcInputs.loadCounter===options.totalToLoad){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData");if(klevu.isUndefined(kmcData)){klevu.search.modules.kmcInputs.kmcData=JSON.parse(kmcDictionary.getElement(options.apiKey));}
klevu.search.modules.kmcInputs.base.markAllResourcesLoaded();}},loadKmcData:function(apiKey){klevu.search.modules.kmcInputs.resourceLoadInitiatedJson=true;klevu.search.modules.kmcInputs.loadCounter=0;var kmcDictionary=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcDictionary");kmcDictionary.removeElement(apiKey);kmcDictionary.overrideGlobal();var kmcDataURL=klevu.getSetting(klevu.settings,"settings.url.kmcData");if(!kmcDataURL||!kmcDataURL.length){kmcDataURL="https://js.klevu.com/klevu-js-v1/klevu-js-api/";};var importScripts=[{id:apiKey,src:kmcDataURL+apiKey+".json",},{id:apiKey+"-banner",src:kmcDataURL+apiKey+"-banner.json",},{id:apiKey+"-maps",src:kmcDataURL+apiKey+"-maps.json",},];importScripts.forEach(function(scriptObj){var options={url:scriptObj.src,type:"json",mimeType:"application/json",apiKey:apiKey,totalToLoad:importScripts.length};var requestDetails={success:function(data,options,status,isSuccess){klevu.search.modules.kmcInputs.loadCounter++;klevu.search.modules.kmcInputs.base.loadCallBack(data,options);},error:function(data,options,status,isSuccess){klevu.search.modules.kmcInputs.loadCounter++;klevu.search.modules.kmcInputs.base.loadCallBack(data,options);},options:options};var requestObject={url:options.url,type:"FETCH",method:"GET",mimeType:options.mimeType,crossDomain:true};requestObject.success=function(data,requestDetails,status,isSuccess){requestDetails.success(data,requestDetails.options,status,isSuccess);};requestObject.error=function(requestDetails,status,isSuccess){requestDetails.error({},requestDetails.options,status,isSuccess);};klevu.request(requestObject,requestDetails);});},removeIneligibleBanners:function(klevu_banner){if(klevu_banner.length>0){var today=new Date,startDate,endDate,removeCurrent=false;today.setHours(0,0,0,0);for(var i=0;i<klevu_banner.length;i++){startDate=new Date(klevu_banner[i].startDate);removeCurrent=false;if('undefined'!==typeof klevu_banner[i].endDate&&klevu_banner[i].endDate){endDate=new Date(klevu_banner[i].endDate);removeCurrent=(startDate>today||endDate<today);}else{removeCurrent=(startDate>today);}
if(removeCurrent){klevu_banner.splice(i,1);i--;}}}
return klevu_banner;},sortAutocorrectMap:function(klevu_autoCorrectMap){var maxLength=0,i=0,len1=0,len2=0,temp,currLength=0,j=0;for(i=0,len1=klevu_autoCorrectMap.length;i<len1;i++){maxLength=klevu_autoCorrectMap[i].keyword.length;for(j=i+1,len2=klevu_autoCorrectMap.length;j<len2;j++){currLength=klevu_autoCorrectMap[j].keyword.length;if(maxLength<currLength){maxLength=currLength;temp=klevu_autoCorrectMap[i];klevu_autoCorrectMap[i]=klevu_autoCorrectMap[j];klevu_autoCorrectMap[j]=temp;}}}
return klevu_autoCorrectMap;},getDataPath:function(path){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData."+path);var windowData;if(window){windowData=klevu.getInterfaceObjectPath(window,path);}
return(!klevu.isUndefined(windowData))?windowData:kmcData;},getBannerList:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_banner",[]);return typeof klevu_banner!=="undefined"&&!klevu.isEmptyObject(klevu_banner)?klevu_banner:kmcData;},getKeywordUrlMap:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_keywordUrlMap",{});return typeof klevu_keywordUrlMap!=="undefined"&&!klevu.isEmptyObject(klevu_keywordUrlMap)?klevu_keywordUrlMap:kmcData;},getMaxNumberOfAutoSuggestions:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_maxSuggestionsToShow",5);return(typeof klevu_maxSuggestionsToShow!=="undefined"&&klevu_maxSuggestionsToShow)?klevu_maxSuggestionsToShow:kmcData;},getMaxNumberOfQuickSearchCategories:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_maxCategoriesToShow",3);return(typeof klevu_maxCategoriesToShow!=="undefined"&&klevu_maxCategoriesToShow)?klevu_maxCategoriesToShow:kmcData;},getMaxNumberOfProductSuggestions:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_productsToShowInSlimLayout",3);return(typeof klevu_productsToShowInSlimLayout!=="undefined")?klevu_productsToShowInSlimLayout:kmcData;},getColorSwatchesEnableValue:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_uc_userOptions.showProductSwatches",false);return typeof klevu_uc_userOptions!=="undefined"&&typeof klevu_uc_userOptions.showProductSwatches!=="undefined"?klevu_uc_userOptions.showProductSwatches:kmcData;},getFiltersEnableValue:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_filtersEnabled",true);return typeof klevu_filtersEnabled!=="undefined"?klevu_filtersEnabled:kmcData;},getLandingFilterPosition:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_uc_userOptions.landingFilterPosition","left");return typeof klevu_uc_userOptions!=="undefined"&&typeof klevu_uc_userOptions.landingFilterPosition!=="undefined"?klevu_uc_userOptions.landingFilterPosition:kmcData;},getFilterMultiSelectValue:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_multiSelectFilters",true);return typeof klevu_multiSelectFilters!=="undefined"?klevu_multiSelectFilters:kmcData;},getShowOutOfStockValue:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_showOutOfStock",false);return typeof klevu_showOutOfStock!=="undefined"?klevu_showOutOfStock:kmcData;},getOutOfStockCaptionValue:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_uc_userOptions.outOfStockCaption","");return typeof klevu_uc_userOptions!=="undefined"&&typeof klevu_uc_userOptions.outOfStockCaption!=="undefined"&&klevu_uc_userOptions.outOfStockCaption.length?klevu_uc_userOptions.outOfStockCaption:kmcData;},getShowPopularSearchesValue:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_showPopularSearches",false);return typeof klevu_showPopularSearches!=="undefined"?klevu_showPopularSearches:kmcData;},getShowRecentSearchesValue:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_showRecentSerches",false);return typeof klevu_showRecentSerches!=="undefined"?klevu_showRecentSerches:kmcData;},getWebstorePopularTermsValue:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_webstorePopularTerms",[]);return typeof klevu_webstorePopularTerms!=="undefined"&&klevu_webstorePopularTerms.length?klevu_webstorePopularTerms:kmcData;},getCmsEnabledValue:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_cmsEnabled",false);return typeof klevu_cmsEnabled!=="undefined"?klevu_cmsEnabled:kmcData;},getAddToCartEnableValue:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_addToCartEnabled",false);return typeof klevu_addToCartEnabled!=="undefined"?klevu_addToCartEnabled:kmcData;},getAddToCartButtonCaption:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_uc_userOptions.addToCartButton","Add to cart");return typeof klevu_uc_userOptions!=="undefined"&&typeof klevu_uc_userOptions.addToCartButton!=="undefined"?klevu_uc_userOptions.addToCartButton:kmcData;},getNoResultsFoundObject:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_uc_userOptions.noResultsOptions",{});return typeof klevu_uc_userOptions!=="undefined"&&typeof klevu_uc_userOptions.noResultsOptions!=="undefined"?klevu_uc_userOptions.noResultsOptions:kmcData;},getShowSearchOnLandingPageEnableValue:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_uc_userOptions.showSearchBoxOnLandingPage",false);return typeof klevu_uc_userOptions!=="undefined"&&typeof klevu_uc_userOptions.showSearchBoxOnLandingPage!=="undefined"?klevu_uc_userOptions.showSearchBoxOnLandingPage:kmcData;},getSkuOnPageEnableValue:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_showProductCode",false);return typeof klevu_showProductCode!=="undefined"&&typeof klevu_showProductCode==="boolean"?klevu_showProductCode:kmcData;},getKMCUserOptionsNoImageUrl:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_uc_userOptions.noImageUrl","/klevu-js-v1/img-1-1/place-holder.jpg");var isFullImageUrlProvided=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_uc_userOptions.isFullImageUrlProvided",false);if(!isFullImageUrlProvided){kmcData=klevu.settings.url.protocol+"//"+klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_userJavascriptDomain","js.klevu.com")+kmcData;}
return typeof klevu_uc_userOptions!=="undefined"&&typeof klevu_uc_userOptions.noImageUrl!=="undefined"?klevu_uc_userOptions.noImageUrl:kmcData;},getShowRolloverImageValue:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_uc_userOptions.showRolloverImage",false);return typeof klevu_uc_userOptions!=="undefined"&&typeof klevu_uc_userOptions.showRolloverImage!=="undefined"?klevu_uc_userOptions.showRolloverImage:kmcData;},getVatCaption:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_uc_userOptions.vatCaption",false);return typeof klevu_uc_userOptions!=="undefined"&&typeof klevu_uc_userOptions.vatCaption!=="undefined"?klevu_uc_userOptions.vatCaption:kmcData;},getShowPrices:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_showPrices",false);return typeof klevu_showPrices!=="undefined"&&typeof klevu_showPrices==="boolean"?klevu_showPrices:kmcData;},getShowPriceSlider:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_showPriceSlider",false);return typeof klevu_showPriceSlider!=="undefined"&&typeof klevu_showPriceSlider==="boolean"?klevu_showPriceSlider:kmcData;},getPriceIntervalValue:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_uc_userOptions.priceInterval",500);return typeof klevu_uc_userOptions!=="undefined"&&typeof klevu_uc_userOptions.priceInterval!=="undefined"?klevu_uc_userOptions.priceInterval:kmcData;},getFacetRangeFilterSettings:function(){var rangeFilterSettings=false;var isPriceEnable=klevu.search.modules.kmcInputs.base.getShowPrices();var isPriceSliderEnable=klevu.search.modules.kmcInputs.base.getShowPriceSlider();var priceFilterIntervalValue=klevu.search.modules.kmcInputs.base.getPriceIntervalValue();if(isPriceEnable){rangeFilterSettings={key:"klevu_price",};if(isPriceSliderEnable){rangeFilterSettings.minMax="true";}else{rangeFilterSettings.rangeInterval=priceFilterIntervalValue;}}
return rangeFilterSettings;},getPriceFormatterObject:function(productCurrency){var priceFormatterFinal={};var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_uc_userOptions.priceFormatter",undefined);var priceFormatter=typeof klevu_uc_userOptions!=="undefined"&&klevu_uc_userOptions.priceFormatter?klevu_uc_userOptions.priceFormatter:kmcData;if(typeof priceFormatter==="undefined"||typeof priceFormatter!="object"){if(typeof klevu_priceFormatters!=="undefined"&&klevu_priceFormatters[productCurrency]){priceFormatter=klevu_priceFormatters[productCurrency];}else{priceFormatterFinal={string:productCurrency,format:"%s %s",};return priceFormatterFinal;}}else{if(typeof klevu_priceFormatters!=="undefined"&&klevu_priceFormatters[productCurrency]){var matchedGlobalPriceFormatter=klevu_priceFormatters[productCurrency];priceFormatter=klevu.extend(true,matchedGlobalPriceFormatter,priceFormatter);}}
if(typeof priceFormatter.decimalPlaces!=="undefined"&&priceFormatter.decimalPlaces!==""){priceFormatterFinal.precision=priceFormatter.decimalPlaces;}
if(typeof priceFormatter.thousandSeparator!=="undefined"){priceFormatterFinal.thousand=priceFormatter.thousandSeparator;}
if(typeof priceFormatter.decimalSeparator!=="undefined"&&priceFormatter.decimalSeparator!==""){priceFormatterFinal.decimal=priceFormatter.decimalSeparator;}
if(typeof priceFormatter.currencySymbol!=="undefined"&&priceFormatter.currencySymbol!==""){priceFormatterFinal.string=priceFormatter.currencySymbol;}
if(typeof priceFormatter.appendCurrencyAtLast!=="undefined"&&priceFormatter.appendCurrencyAtLast!==""){priceFormatterFinal.atEnd=priceFormatter.appendCurrencyAtLast;}
if(typeof priceFormatter.format!=="undefined"&&priceFormatter.format!==""){priceFormatterFinal.format=priceFormatter.format;}else{priceFormatterFinal.format="%s %s";}
return priceFormatterFinal;},getEnablePersonalisationInSearch:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_uc_userOptions.enablePersonalisationInSearch",false);return typeof klevu_uc_userOptions!=="undefined"&&typeof klevu_uc_userOptions.enablePersonalisationInSearch!=="undefined"?klevu_uc_userOptions.enablePersonalisationInSearch:kmcData;},getEnablePersonalisationInCatNav:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_uc_userOptions.enablePersonalisationInCatNav",false);return typeof klevu_uc_userOptions!=="undefined"&&typeof klevu_uc_userOptions.enablePersonalisationInCatNav!=="undefined"?klevu_uc_userOptions.enablePersonalisationInCatNav:kmcData;},getShowRecentlyViewedItemsValue:function(){var recentlyViewedItemsObject={showRecentlyViewedItems:klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_uc_userOptions.showRecentlyViewedItems",false),showRecentlyViewedItemsLimit:klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_uc_userOptions.showRecentlyViewedItemsLimit",10),showRecentlyViewedItemsCaption:klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_uc_userOptions.showRecentlyViewedItemsCaption",""),};if(typeof klevu_uc_userOptions!=="undefined"){if(typeof klevu_uc_userOptions.showRecentlyViewedItems!=="undefined"){recentlyViewedItemsObject.showRecentlyViewedItems=klevu_uc_userOptions.showRecentlyViewedItems;}
if(typeof klevu_uc_userOptions.showRecentlyViewedItemsCaption!=="undefined"){recentlyViewedItemsObject.showRecentlyViewedItemsCaption=klevu_uc_userOptions.showRecentlyViewedItemsCaption;}
if(typeof klevu_uc_userOptions.showRecentlyViewedItemsLimit!=="undefined"){recentlyViewedItemsObject.showRecentlyViewedItemsLimit=klevu_uc_userOptions.showRecentlyViewedItemsLimit;}}
return recentlyViewedItemsObject;},getShowTrendingProductsValue:function(){var trendingProductsObject={showTrendingProducts:klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_uc_userOptions.showTrendingProducts",false),showTrendingProductsLimit:klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_uc_userOptions.showTrendingProductsLimit",10),showTrendingProductsCaption:klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_uc_userOptions.showTrendingProductsCaption",""),};if(typeof klevu_uc_userOptions!=="undefined"){if(typeof klevu_uc_userOptions.showTrendingProducts!=="undefined"){trendingProductsObject.showTrendingProducts=klevu_uc_userOptions.showTrendingProducts;}
if(typeof klevu_uc_userOptions.showTrendingProductsCaption!=="undefined"){trendingProductsObject.showTrendingProductsCaption=klevu_uc_userOptions.showTrendingProductsCaption;}
if(typeof klevu_uc_userOptions.showTrendingProductsLimit!=="undefined"){trendingProductsObject.showTrendingProductsLimit=klevu_uc_userOptions.showTrendingProductsLimit;}}
return trendingProductsObject;},getQuickSearchLayoutType:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_layoutType","slim");return(typeof klevu_layoutType!=="undefined"&&klevu_layoutType!=="")?klevu_layoutType:kmcData;},getQuickSearchLayoutView:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_layoutView","grid");return(typeof klevu_layoutView!=="undefined"&&klevu_layoutView!=="")?klevu_layoutView:kmcData;},isQuickFacetedLayoutFilterOnLeft:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_filtersOnLeft",true);return(typeof klevu_filtersOnLeft!=="undefined")?klevu_filtersOnLeft:kmcData;},showProductRatingQuick:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_uc_userOptions.showRatingsOnQuickSearches",true);return(typeof klevu_uc_userOptions!=="undefined"&&typeof klevu_uc_userOptions.showRatingsOnQuickSearches!=="undefined"?klevu_uc_userOptions.showRatingsOnQuickSearches:kmcData)},showProductRatingLanding:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_uc_userOptions.showRatingsOnSearchResultsLandingPage",true);return(typeof klevu_uc_userOptions!=="undefined"&&typeof klevu_uc_userOptions.showRatingsOnSearchResultsLandingPage!=="undefined"?klevu_uc_userOptions.showRatingsOnSearchResultsLandingPage:kmcData)},showProductRatingCatnav:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_uc_userOptions.showRatingsOnCategoryPage",true);return(typeof klevu_uc_userOptions!=="undefined"&&typeof klevu_uc_userOptions.showRatingsOnCategoryPage!=="undefined"?klevu_uc_userOptions.showRatingsOnCategoryPage:kmcData)},showProductRatingCountQuick:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_uc_userOptions.showRatingsCountOnQuickSearches",false);return(typeof klevu_uc_userOptions!=="undefined"&&typeof klevu_uc_userOptions.showRatingsCountOnQuickSearches!=="undefined"?klevu_uc_userOptions.showRatingsCountOnQuickSearches:kmcData)},showProductRatingCountLanding:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_uc_userOptions.showRatingsCountOnSearchResultsLandingPage",false);return(typeof klevu_uc_userOptions!=="undefined"&&typeof klevu_uc_userOptions.showRatingsCountOnSearchResultsLandingPage!=="undefined"?klevu_uc_userOptions.showRatingsCountOnSearchResultsLandingPage:kmcData)},showProductRatingCountCatnav:function(){var kmcData=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcData.klevu_uc_userOptions.showRatingsCountOnCategoryPage",false);return(typeof klevu_uc_userOptions!=="undefined"&&typeof klevu_uc_userOptions.showRatingsCountOnCategoryPage!=="undefined"?klevu_uc_userOptions.showRatingsCountOnCategoryPage:kmcData)}};klevu.extend(true,klevu,{search:{modules:{kmcInputs:{base:kmcInputs,build:true,hasAllResourcesLoadedJson:false,resourceLoadInitiatedJson:false}}}});var options={};klevu(options);klevu.support.register({name:"kmc",loaded:true,active:true,dependency:["core.lib"]});})(klevu);klevu.settings.chains.initChain.add({name:"kmcPowerUp",fire:function(data,scope){var apiKey=klevu.getGlobalSetting("search.apiKey",klevu.getGlobalSetting("global.apiKey"));if(!klevu.isUndefined(apiKey)){var powerUp=klevu.getGlobalSetting("powerUp.kmc");if((!klevu.isUndefined(powerUp)&&powerUp===false))return;var kmcLoaded=klevu.getObjectPath(klevu.search,"modules.kmcInputs.hasAllResourcesLoadedJson");if((!klevu.isUndefined(kmcLoaded)&&kmcLoaded===true))return;var kmcGlobalLoaded=klevu.getGlobalSetting("kmc.loaded");if((!klevu.isUndefined(kmcLoaded)&&kmcGlobalLoaded===true))return;if(!klevu.getObjectPath(data,"constants.COOKIE_KLEVU_RCP",false)){var apiKeyForCookie=apiKey.replace(new RegExp("-","g"),"_");klevu.setObjectPath(data,"constants.COOKIE_KLEVU_RCP","klevu_rcp_"+apiKeyForCookie);}
var kmcDictionary=klevu.getObjectPath(klevu.search,"modules.kmcInputs.kmcDictionary");if(klevu.isUndefined(kmcDictionary)){kmcDictionary=klevu.dictionary("kmcData");kmcDictionary.setStorage("local");kmcDictionary.mergeFromGlobal();klevu.setObjectPath(klevu.search,"modules.kmcInputs.kmcDictionary",kmcDictionary);}
var kmcData=kmcDictionary.getElement(apiKey);var kmcRefresh=true;if(apiKey!==kmcData){kmcData=JSON.parse(kmcData);var timestampExpiration=kmcData.timeOfLoad+parseInt(klevu.getGlobalSetting("kmc.invalidateInterval",600));if(timestampExpiration>klevu.time.timestamp()){kmcRefresh=false;}
klevu.setObjectPath(klevu.search,"modules.kmcInputs.kmcData",kmcData);}
if(kmcRefresh){var kmcLoading=klevu.getObjectPath(klevu.search,"modules.kmcInputs.resourceLoadInitiatedJson");if((klevu.isUndefined(kmcLoading)||kmcLoading===false)){klevu.search.modules.kmcInputs.base.loadKmcData(apiKey);}}else{klevu.search.modules.kmcInputs.base.markAllResourcesLoaded();}}}});(function(klevu){klevu.extend({searchEvents:{functions:{}}});klevu.extend(true,klevu.searchEvents,{general:{documentClick:function(event){event=event||window.event;if(klevu.isUndefined(event.target)||!klevu.isUndefined(event.target.kObject))return event;var data={event:event,preventDefault:false};klevu.event.fireChain(klevu.settings.chains,"documentClick",this,data,event);return event;},documentScroll:function(event){event=event||window.event;if(klevu.isUndefined(event.target)||!klevu.isUndefined(event.target.kObject))return event;var data={event:event,preventDefault:false};klevu.event.fireChain(klevu.settings.chains,"documentScroll",this,data,event);return event;}},functions:{bindAllExtraEvents:{name:"interactive-search-extra-events",fire:function(){klevu.event.detach(document,"click",klevu.searchEvents.general.documentClick);klevu.event.attach(document,"click",klevu.searchEvents.general.documentClick);var fullPageLayoutEnabled=klevu.getSetting(klevu.settings,"settings.search.fullPageLayoutEnabled",false);if(!klevu.isUndefined(fullPageLayoutEnabled)&&fullPageLayoutEnabled){klevu.settings.chains.documentScroll=klevu.chain({stopOnFalse:true});klevu.event.detach(window,"scroll",klevu.searchEvents.general.documentScroll);klevu.event.attach(window,"scroll",klevu.searchEvents.general.documentScroll);}}}}});klevu.extend(true,klevu.searchEvents,{box:{focus:function(event){event=event||window.event;this.kScope.data=this.kObject.resetData(this);this.kScope.data.context.keyCode=0;this.kScope.data.context.eventObject=event;this.kScope.data.context.event="focus";this.kScope.data.context.preventDefault=false;klevu.search.active=this.kObject;klevu.event.fireChain(this.kScope,"chains.events.focus",this,this.kScope.data,event);return event;},keyUp:function(event){event=event||window.event;this.kScope.data=this.kObject.resetData(this);this.kScope.data.context.keyCode=((event.keyCode)?event.keyCode:event.which);this.kScope.data.context.eventObject=event;this.kScope.data.context.event="keyUp";this.kScope.data.context.preventDefault=false;klevu.event.fireChain(this.kScope,"chains.events.keyUp",this,this.kScope.data,event);return event;},submit:function(event){event=event||window.event;this.kScope.data=this.kObject.resetData(this);this.kScope.data.context.keyCode=13;this.kScope.data.context.eventObject=event;this.kScope.data.context.event="submit";this.kScope.data.context.preventDefault=false;klevu.event.fireChain(this.kScope,"chains.events.submit",this,this.kScope.data,event);return event;}},functions:{bindAllSearchBoxes:{name:"interactive-search-boxes-activate",fire:function(){klevu.search.active=null;var searchBoxSelector=klevu.getSetting(klevu.settings,"settings.search.searchBoxSelector",klevu.randomId());var list=klevu.dom.find(searchBoxSelector);klevu.each(list,function(key,element){if(element.type==="text"||element.type==="search"||element.type==="input"){if(!klevu.isUndefined(element.kObject))return true;var search=klevu.searchObjectClone(klevu.search.base);search.setWebhookSettings({scope:"all,input,quick"});search.setElement(element);var searchBoxTarget=klevu.getSetting(klevu.settings,"settings.search.searchBoxTarget",false);if(!searchBoxTarget){klevu.dom.helpers.addElementToParent(null,"div",{id:element.kScope.id,"class":"klevu-fluid"});klevu.setSetting(element.kScope.settings,"settings.search.searchBoxTarget",document.getElementById(element.kScope.id));}
search.setTarget(klevu.getSetting(element.kScope.settings,"settings.search.searchBoxTarget",false));klevu.event.attach(search.getScope().element,"focus",klevu.searchEvents.box.focus,true);klevu.event.attach(search.getScope().element,"keyup",klevu.searchEvents.box.keyUp,true);klevu.event.attach(search.getScope().element,"paste",function(event){setTimeout(function(){klevu.searchEvents.box.keyUp.call(event.target,event);},10);},true);if(element.form){search.setLinkObjectsToElement(element.form);klevu.event.attach(search.getScope().element.form,"submit",klevu.searchEvents.box.submit,true);}
search.getScope().element.setAttribute("autocomplete","off");var maxLength=klevu.getSetting(element.kScope.settings,"settings.search.maxChars",128);search.getScope().element.setAttribute("maxlength",maxLength);if(klevu.isUndefined(klevu.search["quick"]))klevu.extend(true,klevu.search,{quick:search});klevu.search.extraSearchBox.push(search);return true;}});}}}});klevu.settings.chains.documentClick=klevu.chain({stopOnFalse:true});klevu.coreEvent.build({name:"buildSearch",fire:function(){if(!klevu.isInteractive||klevu.isUndefined(klevu.search)||klevu.isUndefined(klevu.search.build)||!klevu.getSetting(klevu.settings,"settings.localSettings",false)){return false;}
return true;}});klevu.coreEvent.attach("buildSearch",klevu.extend(true,{},klevu.searchEvents.functions.bindAllSearchBoxes));klevu.coreEvent.attach("buildSearch",klevu.extend(true,{},klevu.searchEvents.functions.bindAllExtraEvents));klevu.extend({searchObjectChains:{build:klevu.chain({stopOnFalse:true})},searchObjectBuild:function(){var localVariables={cache:klevu.cache(),settings:{},webhookSettings:{run:true,object:"search",scope:"all"}};klevu.setObjectPath(localVariables,"id",klevu.randomId());klevu.setObjectPath(localVariables,"template",klevu.template());localVariables.template.setWebhookSettings({run:localVariables.webhookSettings.run,object:localVariables.webhookSettings.object,scope:localVariables.webhookSettings.scope});function resetTranslator(){klevu.setObjectPath(localVariables,"translator",localVariables.template.getTranslator());klevu.setObjectPath(localVariables,"currency",localVariables.translator.getCurrencyObject());}
resetTranslator();klevu.setObjectPath(localVariables,"chains.actions.doSearch",klevu.chain({stopOnFalse:true,webhook:{name:"chains.actions.doSearch"}}));klevu.setObjectPath(localVariables,"chains.events.focus",klevu.chain({stopOnFalse:true,webhook:{name:"chains.events.focus"}}));klevu.setObjectPath(localVariables,"chains.events.keyUp",klevu.chain({stopOnFalse:true,webhook:{name:"chains.events.keyUp"}}));klevu.setObjectPath(localVariables,"chains.events.submit",klevu.chain({stopOnFalse:true,webhook:{name:"chains.events.submit"}}));klevu.setObjectPath(localVariables,"chains.processors.inputString",klevu.chain({stopOnFalse:true,webhook:{name:"chains.processors.inputString"}}));klevu.setObjectPath(localVariables,"chains.request.control",klevu.chain({stopOnFalse:true,webhook:{name:"chains.request.control"}}));klevu.setObjectPath(localVariables,"chains.request.build",klevu.chain({stopOnFalse:true,webhook:{name:"chains.request.build"}}));klevu.setObjectPath(localVariables,"chains.request.send",klevu.chain({stopOnFalse:true,webhook:{name:"chains.request.send"}}));klevu.setObjectPath(localVariables,"chains.request.ajax.send",klevu.chain({stopOnFalse:true,webhook:{name:"chains.request.ajax.send"}}));klevu.setObjectPath(localVariables,"chains.request.fetch.send",klevu.chain({stopOnFalse:true,webhook:{name:"chains.request.fetch.send"}}));klevu.setObjectPath(localVariables,"chains.response.success",klevu.chain({stopOnFalse:true,webhook:{name:"chains.response.success"}}));klevu.setObjectPath(localVariables,"chains.response.done",klevu.chain({stopOnFalse:true,webhook:{name:"chains.response.done"}}));klevu.setObjectPath(localVariables,"chains.response.fail",klevu.chain({stopOnFalse:true,webhook:{name:"chains.response.fail"}}));klevu.setObjectPath(localVariables,"chains.response.ajax.success",klevu.chain({stopOnFalse:true,webhook:{name:"chains.response.fail"}}));klevu.setObjectPath(localVariables,"chains.response.ajax.done",klevu.chain({stopOnFalse:true,webhook:{name:"chains.response.fail"}}));klevu.setObjectPath(localVariables,"chains.response.ajax.fail",klevu.chain({stopOnFalse:true,webhook:{name:"chains.response.fail"}}));klevu.setObjectPath(localVariables,"chains.template.process.success",klevu.chain({stopOnFalse:true,webhook:{name:"chains.template.process.success"}}));klevu.setObjectPath(localVariables,"chains.template.handleError",klevu.chain({stopOnFalse:true,webhook:{name:"chains.template.handleError"}}));klevu.setObjectPath(localVariables,"chains.template.render",klevu.chain({stopOnFalse:true,webhook:{name:"chains.template.render"}}));klevu.setObjectPath(localVariables,"chains.template.events",klevu.chain({stopOnFalse:true,webhook:{name:"chains.template.events"}}));function init(){}
function resetData(scope){var tempData=buildData();if(scope.kScope.data.context.termOriginal!==scope.kElem.value){scope.kScope.data.localOverrides=tempData.localOverrides;}
scope.kScope.data.context=tempData.context;scope.kScope.data.context.term=scope.kElem.value;scope.kScope.data.context.termOriginal=scope.kElem.value;scope.kScope.data.request.current=tempData.request.current;scope.kScope.data.response.current=tempData.response.current;scope.kScope.data.template.suggestions=tempData.template.suggestions;scope.kScope.data.template.query=tempData.template.query;scope.kScope.data.template.settings=scope.kScope.data.context;scope.kScope.data.request.settings.object={};scope.kScope.data.response.ajax.object={};scope.kScope.data.response.ajax.data={};scope.kScope.data.response.data={};scope.kScope.data.response.object={};scope.kScope.data.scope=null;return scope.kScope.data;}
function buildData(){var data={context:{landingUrl:null,term:null,termOriginal:null,keyCode:0,eventObject:null,event:null,eventAction:"",preventDefault:false,status:null,isSuccess:false,doRequest:true},request:{settings:{url:null,object:{}},last:{},current:{context:{},suggestions:[],recordQueries:[]}},response:{ajax:{object:{},data:{}},current:{meta:{},suggestionResults:[],queryResults:[]}},localOverrides:{suggestion:{},query:{}},template:{settings:null,suggestions:{},query:{}}};data.template.settings=data.context;return data;}
function setTarget(elem){klevu.setSetting(this.getScope().settings,"settings.search.searchBoxTarget",elem);elem.kObject=this;elem.kScope=this.getScope();elem.kElem=this.getScope().element.kElem;elem.classList.add("klevuTarget");elem.webhookSettings=this.getScope().webhookSettings;}
function setElement(elem){this.getScope().element=elem;elem.kObject=this;elem.kScope=this.getScope();elem.kElem=this.getScope().element;elem.webhookSettings=this.getScope().webhookSettings;}
function setLinkObjectsToElement(elem){elem.kObject=this;elem.kScope=this.getScope();elem.kElem=this.getScope().element;elem.webhookSettings=this.getScope().webhookSettings;}
localVariables.data=buildData();var chain=klevu.getObjectPath(klevu.searchObjectChains,"build");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(localVariables);chain.setData(localVariables.data);chain.fire();}
var selfObj={init:init,resetData:resetData,buildData:buildData,setTarget:setTarget,setElement:setElement,setLinkObjectsToElement:setLinkObjectsToElement,setScope:function(variables){localVariables=variables;return localVariables;},getScope:function(){return localVariables;},getCache:function(){return localVariables.cache;},setWebhookSettings:function(webhookSettings){if(webhookSettings){localVariables.webhookSettings=klevu.extend(true,localVariables.webhookSettings,webhookSettings);localVariables.template.setWebhookSettings({run:localVariables.webhookSettings.run,object:localVariables.webhookSettings.object,scope:localVariables.webhookSettings.scope});}
return this;},getWebhookSettings:function(){return localVariables.webhookSettings;},resetTranslator:resetTranslator};return selfObj;},searchObjectClone:function(source){var clone=klevu.searchObjectBuild();clone.setScope(klevu.extend(true,{},source.getScope()));clone.getScope().element=document.createElement("INPUT");clone.getScope().data=clone.buildData();clone.getScope().id=klevu.randomId();clone.getScope().template=klevu.templateClone(clone.getScope().template);clone.resetTranslator();clone.getScope().element.kObject=clone;clone.getScope().element.kScope=clone.getScope();clone.getScope().element.kElem=clone.getScope().element;clone.getScope().element.webhookSettings=clone.getScope().webhookSettings;return clone;}});var options={search:{searchBoxSelector:"input#klevu-search",searchBoxTarget:false,minChars:3,placeholder:"Search",showQuickOnEnter:false,fullPageLayoutEnabled:false,personalisation:false,redirects:[],map:{recordQuery:{"id":"","typeOfRequest":"","isFallbackQuery":false,"isBoostQuery":false,"settings":{"query":{"term":"","context":{"recentTerms":[],"recentObjects":[],"includeIds":[],"excludeIds":[]}},"typeOfRecords":["KLEVU_PRODUCT"],"groupBy":"","fields":[],"offset":0,"limit":0,"typeOfSearch":"","searchPrefs":[],"sort":"","priceFieldSuffix":"","fallbackWhenCountLessThan":0,"fallbackQueryId":"","personalisation":{"enablePersonalisation":false}},"filters":{"filtersToReturn":{"enabled":false,"options":{"order":"","limit":0,"minCount":0},"include":[],"exclude":[],"rangeFilterSettings":[{"key":"","minMax":false,"rangeInterval":0}]},"applyFilters":{"filters":[{"key":"","values":[],"settings":{"singleSelect":false}}]}},"boost":{"filters":[{"key":"","values":[],"weight":0}],"keywords":[{"phrase":"","weight":0}],"records":[{"id":"","weight":0}],"boostQueryId":""}},suggestions:{"id":"","query":"","typeOfRequest":"","limit":0,"includeFilters":false,"filterLimit":0,"applyFilters":[]}}}};klevu(options);klevu.support.register({name:"search",loaded:true,active:true,dependency:["core.lib"]});if(klevu.getObjectPath(klevu.support,"webhook",false)){klevu.event.webhook.attach({object:"search",scope:"all",name:"mainObject",action:"build",fire:function(data,scope){let scopeNames=klevu.getObjectPath(scope.kObject.getWebhookSettings(),"scope",false);if(scopeNames){scopeNames=scopeNames.split(",");let templates=klevu.getGlobalSetting("theme.setTemplates",false);if(templates){klevu.each(templates,function(key,template){let templateScopes=klevu.getObjectPath(template,"scope",false);if(templateScopes){templateScopes=templateScopes.split(",");klevu.each(templateScopes,function(index,templateScope){if(klevu.inArray(templateScope.trim(),scopeNames)!==-1){try{let before=klevu.getObjectPath(template,"listBefore",false);let after=klevu.getObjectPath(template,"listAfter",false);let list=klevu.getObjectPath(template,"list",template.name);if(before){before=before.split(":");if(klevu.isUndefined(before[1])||klevu.isEmptyObject(before[1])){list=before[0];before=before[0];}else{list=before[0];before=before[1];}}else{if(after){after=after.split(":");if(klevu.isUndefined(after[1])||klevu.isEmptyObject(after[1])){list=after[0];after=after[0];}else{list=after[0];after=after[1];}}}
scope.kScope.template.setTemplate({template:klevu.dom.helpers.getHTML(template.selector),name:template.name,decoded:true,list:list,before:before,after:after});}catch(err){}}});}});}}}});klevu.event.webhook.attach({object:"search",scope:"all",name:"mainObject",action:"build",fire:function(data,scope){let scopeNames=klevu.getObjectPath(scope.kObject.getWebhookSettings(),"scope",false);if(scopeNames){scopeNames=scopeNames.split(",");let helperLists=klevu.getGlobalSetting("theme.setHelpers",false);if(helperLists){klevu.each(helperLists,function(key,helperList){let helperScopes=key;if(helperScopes){helperScopes=helperScopes.split(",");klevu.each(helperScopes,function(index,helperScope){if(klevu.inArray(helperScope.trim(),scopeNames)!==-1){klevu.each(helperList,function(name,helper){scope.kScope.template.setHelper(name,helper);});}});}});}}}});}})(klevu);(function(klevu){var baseSearch=klevu.searchObjectBuild();baseSearch.getScope().chains.events.focus.add({name:"check-placeholder",fire:function(data,scope){var placeholder=klevu.getSetting(scope.kScope.settings,"settings.search.placeholder");if(data.context.term.toLowerCase()===placeholder.toLowerCase()){scope.value="";return false;}}});baseSearch.getScope().chains.events.keyUp.add({name:"isCharacterNotAllowed",fire:function(data,scope){if(((data.context.keyCode>=9&&data.context.keyCode<=45)||(data.context.keyCode>=91&&data.context.keyCode<=93)||(data.context.keyCode>=112&&data.context.keyCode<=123))&&data.context.keyCode!==13&&data.context.keyCode!==32){return false;}
if(data.context.eventObject!==null){if(!klevu.isUndefined(data.context.eventObject.ctrlKey)&&data.context.eventObject.ctrlKey===true)return false;if(!klevu.isUndefined(data.context.eventObject.altKey)&&data.context.eventObject.altKey===true)return false;}}});baseSearch.getScope().chains.events.keyUp.add({name:"scrollToTop",fire:function(data,scope){var fullPageLayoutEnabled=klevu.getSetting(scope.kScope.settings,"settings.search.fullPageLayoutEnabled",false);if(fullPageLayoutEnabled){document.body.scrollTop=document.documentElement.scrollTop=0;}}});baseSearch.getScope().chains.events.keyUp.add({name:"doSearch",fire:function(data,scope){var chain=klevu.getObjectPath(scope.kScope,"chains.actions.doSearch");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.kElem);chain.setData(data);chain.fire();}
scope.kScope.data=data;if(data.context.preventDefault===true)return false;}});baseSearch.getScope().chains.events.submit.add({name:"checkRedirect",fire:function(data,scope){var redirects=klevu.getSetting(scope.kScope.settings,"settings.search.redirects",{});if(redirects&&!klevu.isUndefined(data.context.term)){if(redirects.hasOwnProperty(data.context.term.trim().toLowerCase())){data.context.preventDefault=true;data.context.eventObject.preventDefault();document.location=redirects[data.context.term.trim().toLowerCase()];}}
if(data.context.preventDefault===true)return false;}});baseSearch.getScope().chains.events.submit.add({name:"doSearch",fire:function(data,scope){var chain=klevu.getObjectPath(scope.kScope,"chains.actions.doSearch");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.kElem);chain.setData(data);chain.fire();}
scope.kScope.data=data;if(data.context.preventDefault===true)return false;}});baseSearch.getScope().chains.actions.doSearch.add({name:"showQuickOnEnter",fire:function(data,scope){var showQuickOnEnter=klevu.getSetting(scope.kScope.settings,"settings.search.showQuickOnEnter",false);if(data.context.keyCode===13&&showQuickOnEnter){if(data.context.event==="submit"){data.context.eventObject.preventDefault();}}}});baseSearch.getScope().chains.actions.doSearch.add({name:"checkInput",fire:function(data,scope){var chain=klevu.getObjectPath(scope.kScope,"chains.processors.inputString");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.kElem);chain.setData(data);chain.fire();}
scope.kScope.data=data;if(data.context.preventDefault===true)return false;}});baseSearch.getScope().chains.actions.doSearch.add({name:"doRequest",fire:function(data,scope){data.context.doSearch=false;var chain=klevu.getObjectPath(scope.kScope,"chains.request.control");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.kElem);chain.setData(data);chain.fire();scope.kScope.data=data;}else{data.context.preventDefault=true;scope.kScope.data=data;return false;}}});baseSearch.getScope().chains.processors.inputString.add({name:"checkDefined",fire:function(data,scope){if(klevu.isUndefined(data.context.term)){data.context.preventDefault=true;var chain=klevu.getObjectPath(scope.kScope,"chains.template.handleError");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.kElem);chain.setData({section:"inputString",sector:"checkDefined"});chain.fire();}
return false;}}});baseSearch.getScope().chains.processors.inputString.add({name:"trim",fire:function(data,scope){data.context.term=data.context.term.replace(/\s{2,}/g," ").trim();}});baseSearch.getScope().chains.processors.inputString.add({name:"cleanDuplicatedSpaces",fire:function(data,scope){data.context.term=data.context.term.replace(/\s\s+/g," ");}});baseSearch.getScope().chains.processors.inputString.add({name:"checkLengthMin",fire:function(data,scope){var minLength=klevu.getSetting(scope.kScope.settings,"settings.search.minChars",0);if(data.context.term.length<minLength){var chain=klevu.getObjectPath(scope.kScope,"chains.template.handleError");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.kElem);chain.setData({section:"inputString",sector:"checkLength"});chain.fire();}
data.context.preventDefault=true;return false;}}});baseSearch.getScope().chains.processors.inputString.add({name:"checkLengthMax",fire:function(data,scope){var maxLength=klevu.getSetting(scope.kScope.settings,"settings.search.maxChars",128);if(data.context.term.length>maxLength){var chain=klevu.getObjectPath(scope.kScope,"chains.template.handleError");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.kElem);chain.setData({section:"inputString",sector:"checkLength"});chain.fire();}
data.context.preventDefault=true;return false;}}});baseSearch.getScope().chains.processors.inputString.add({name:"lowercase",fire:function(data,scope){data.context.term=data.context.term.toLowerCase();}});baseSearch.getScope().chains.processors.inputString.add({name:"checkPlaceholder",fire:function(data,scope){var placeholder=klevu.getSetting(scope.kScope.settings,"settings.search.placeholder","");if(data.context.term.toLowerCase()===placeholder.toLowerCase()){data.context.preventDefault=true;var chain=klevu.getObjectPath(scope.kScope,"chains.template.handleError");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.kElem);chain.setData({section:"inputString",sector:"checkPlaceholder"});chain.fire();}
return false;}}});baseSearch.getScope().chains.request.ajax.send.add({name:"sendRequest",fire:function(data,scope){if(data.context.eventAction!=="searchAjax")return;data.scope=scope;if(data.context.doSearch){data.context.requestObject={url:data.request.settings.url,type:"AJAX",method:"POST",mimeType:"application/json; charset=UTF-8",contentType:"application/json; charset=utf-8",dataType:"json",crossDomain:true,success:function(klXHR){var chain=klevu.getObjectPath(klXHR.requestDetails.scope.kScope,"chains.response.success");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(klXHR.requestDetails.scope.kElem);klevu.setObjectPath(klXHR.requestDetails,"response.data",klXHR.responseObj.data);klevu.setObjectPath(klXHR.requestDetails,"context.status",klXHR.status);klevu.setObjectPath(klXHR.requestDetails,"context.isSuccess",klXHR.isSuccess);chain.setData(klXHR.requestDetails);chain.fire();}},done:function(klXHR){var chain=klevu.getObjectPath(klXHR.requestDetails.scope.kScope,"chains.response.done");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(klXHR.requestDetails.scope.kElem);klevu.setObjectPath(klXHR.requestDetails,"response.data",klXHR.responseObj.data);klevu.setObjectPath(klXHR.requestDetails,"context.status",klXHR.status);klevu.setObjectPath(klXHR.requestDetails,"context.isSuccess",klXHR.isSuccess);chain.setData(klXHR.requestDetails);chain.fire();}},error:function(klXHR){var chain=klevu.getObjectPath(klXHR.requestDetails.scope.kScope,"chains.response.fail");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(klXHR.requestDetails.scope.kElem);klevu.setObjectPath(klXHR.requestDetails,"response.data",{});klevu.setObjectPath(klXHR.requestDetails,"context.status",klXHR.status);klevu.setObjectPath(klXHR.requestDetails,"context.isSuccess",klXHR.isSuccess);chain.setData(klXHR.requestDetails);chain.fire();}},data:JSON.stringify(data.request.settings.object),};data.context.requestDetails=klevu.extend(true,{},data);}else{}}});baseSearch.getScope().chains.request.fetch.send.add({name:"sendRequest",fire:function(data,scope){if(data.context.eventAction==="searchAjax")return;data.scope=scope;if(data.context.doSearch){data.context.requestObject={url:data.request.settings.url,type:"FETCH",method:"POST",mimeType:"application/json; charset=UTF-8",contentType:"application/json; charset=utf-8",dataType:"json",crossDomain:true,success:function(data,requestDetails,status,isSuccess){var chain=klevu.getObjectPath(requestDetails.scope.kScope,"chains.response.success");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(requestDetails.scope.kElem);klevu.setObjectPath(requestDetails,"response.data",data);klevu.setObjectPath(requestDetails,"context.status",status);klevu.setObjectPath(requestDetails,"context.isSuccess",isSuccess);chain.setData(requestDetails);chain.fire();}},error:function(requestDetails,status,isSuccess){var chain=klevu.getObjectPath(requestDetails.scope.kScope,"chains.response.fail");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(requestDetails.scope.kElem);klevu.setObjectPath(requestDetails,"response.data",{});klevu.setObjectPath(requestDetails,"context.status",status);klevu.setObjectPath(requestDetails,"context.isSuccess",isSuccess);chain.setData(requestDetails);chain.fire();}},data:JSON.stringify(data.request.settings.object),};data.context.requestDetails=klevu.extend(true,{},data);}else{}}});baseSearch.getScope().chains.request.control.add({name:"initRequest",fire:function(data,scope){data.context.doSearch=false;data.request.original={};var chain=klevu.getObjectPath(scope.kScope,"chains.request.build");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.kElem);chain.setData(data);chain.fire();scope.kScope.data=data;if(data.context.doSearch===false)return false;}else{data.context.preventDefault=true;scope.kScope.data=data;return false;}}});baseSearch.getScope().chains.request.control.add({name:"setLocalOverrides",fire:function(data,scope){var query=klevu.getObjectPath(data.localOverrides,"query");if(!klevu.isUndefined(query)){klevu.each(query,function(key,value){var objectToChange=data.request.current.recordQueries.filter(function(query){return query.id==key;});if(objectToChange.length>0)objectToChange=klevu.extend(true,objectToChange[0],value);});}}});baseSearch.getScope().chains.request.control.add({name:"storeOriginSuggestions",fire:function(data,scope){var reqSuggestions=klevu.getObjectPath(data,"request.current.suggestions");klevu.setObjectPath(data,"request.original.suggestions",klevu.extend([],reqSuggestions));}});baseSearch.getScope().chains.request.control.add({name:"storeOriginRecordQueries",fire:function(data,scope){var reqRecordQueries=klevu.getObjectPath(data,"request.current.recordQueries");klevu.setObjectPath(data,"request.original.recordQueries",klevu.extend([],reqRecordQueries));}});baseSearch.getScope().chains.request.control.add({name:"sanitiseRequestSuggestions",fire:function(data,scope){var requestObj=klevu.clean(data.request.current);data.response.current.suggestionResults=[];data.request.last.suggestionRequest={};var suggestion=klevu.getObjectPath(requestObj,"suggestions");data.request.original.suggestionResults=klevu.extend(true,{},suggestion);if(!klevu.isUndefined(suggestion)){klevu.each(suggestion,function(key,value){var cacheValue=scope.kScope.cache.getCache(value);if(cacheValue){data.response.current.suggestionResults.push(cacheValue);suggestion[key]={};}else{data.request.last.suggestionRequest[value.id]=value;}});}
data.request.settings.object=requestObj;}});baseSearch.getScope().chains.request.control.add({name:"sanitiseRequestQuery",fire:function(data,scope){var requestObj=klevu.clean(data.request.current);data.response.current.queryResults=[];data.request.last.queryRequest={};var query=klevu.getObjectPath(requestObj,"recordQueries");data.request.original.queryRequest=klevu.extend(true,{},query);if(!klevu.isUndefined(query)){var fallBackCount=0;klevu.each(query,function(key,value){var cacheValue=scope.kScope.cache.getCache(value);if(cacheValue){data.response.current.queryResults.push(cacheValue);query[key]={};}else{if(value.isFallbackQuery=="true"||value.isFallbackQuery===true){fallBackCount=fallBackCount+1;}
data.request.last.queryRequest[value.id]=value;}});requestObj=klevu.clean(requestObj);query=klevu.getObjectPath(requestObj,"recordQueries");if(!klevu.isUndefined(query)&&query.length===fallBackCount){klevu.setObjectPath(requestObj,"recordQueries",[]);}}
data.request.settings.object=requestObj;}});baseSearch.getScope().chains.request.control.add({name:"sanitiseRequestCheckIfAllCache",fire:function(data,scope){var requestObj=klevu.clean(data.request.current);data.request.settings.object=requestObj;if(klevu.isUndefined(requestObj.recordQueries)&&klevu.isUndefined(requestObj.suggestions)){data.context.isSuccess=true;data.context.doSearch=false;data.context.status=304;var chain=klevu.getObjectPath(scope.kScope,"chains.response.success");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.kElem);chain.setData(data);chain.fire();scope.kScope.data=data;if(data.context.doSearch===false)return false;}}}});baseSearch.getScope().chains.request.control.add({name:"generateURL",fire:function(data,scope){var searchUrl=klevu.getSetting(scope.kScope.settings,"settings.url.search",false);if(searchUrl){data.request.settings.url=searchUrl;}}});baseSearch.getScope().chains.request.control.add({name:"makeRequest",fire:function(data,scope){var chain=klevu.getObjectPath(scope.kScope,"chains.request.send");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.kElem);chain.setData(data);chain.fire();scope.kScope.data=data;return false;}}});baseSearch.getScope().chains.request.build.add({name:"buildMap",fire:function(data,scope){data.context.status=null;data.context.isSuccess=false;data.context.landingUrl=klevu.getSetting(scope.kScope.settings,"settings.url.landing",false);data.request.current.context.apiKeys=[klevu.getSetting(scope.kScope.settings,"settings.search.apiKey",klevu.getGlobalSetting("search.apiKey",klevu.getGlobalSetting("global.apiKey")))];data.request.requestObject={};}});baseSearch.getScope().chains.request.send.add({name:"checkFetch",fire:function(data,scope){if(window.fetch){data.context.eventAction="searchFetch";}else{data.context.eventAction="searchAjax";}}});baseSearch.getScope().chains.request.send.add({name:"requestTypeAjax",fire:function(data,scope){if(data.context.eventAction==="searchAjax"){var chain=klevu.getObjectPath(scope.kScope,"chains.request.ajax.send");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.kElem);chain.setData(data);chain.fire();scope.kScope.data=data;}}}});baseSearch.getScope().chains.request.send.add({name:"requestTypeFetch",fire:function(data,scope){if(data.context.eventAction!=="searchAjax"){var chain=klevu.getObjectPath(scope.kScope,"chains.request.fetch.send");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.kElem);chain.setData(data);chain.fire();scope.kScope.data=data;}}}});baseSearch.getScope().chains.request.send.add({name:"requestSend",fire:function(data,scope){klevu.request(data.context.requestObject,data.context.requestDetails);}});baseSearch.getScope().chains.response.success.add({name:"checkForSuccess",fire:function(data,scope){scope.kElem.data=data;if(data.context.isSuccess===false)return false;}});baseSearch.getScope().chains.response.success.add({name:"executeAjaxResponseProcessor",fire:function(data,scope){var chain=klevu.getObjectPath(scope.kScope,"chains.response.ajax.success");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.kElem);chain.setData(data);chain.fire();}
scope.kScope.data=data;}});baseSearch.getScope().chains.response.success.add({name:"addResponseDataSuggestion",fire:function(data,scope){var suggestion=klevu.getObjectPath(data.response.data,"suggestionResults");if(klevu.isUndefined(suggestion)){suggestion=[];}
if(suggestion.length>0){klevu.each(suggestion,function(key,value){if(!klevu.isUndefined(data.request.last.suggestionRequest[value.id])){scope.kScope.cache.setCache(data.request.last.suggestionRequest[value.id],value);}});}
data.response.current.suggestionResults=klevu.extend(true,data.response.current.suggestionResults,data.response.current.suggestionResults.concat(suggestion));}});baseSearch.getScope().chains.response.success.add({name:"addResponseDataQuery",fire:function(data,scope){var query=klevu.getObjectPath(data.response.data,"queryResults");if(klevu.isUndefined(query)){query=[];}
if(query.length>0){klevu.each(query,function(key,value){if(!klevu.isUndefined(data.request.last.queryRequest[value.id])){scope.kScope.cache.setCache(data.request.last.queryRequest[value.id],value);}});}
data.response.current.queryResults=klevu.extend(true,data.response.current.queryResults,data.response.current.queryResults.concat(query));}});baseSearch.getScope().chains.response.success.add({name:"processSuggestions",fire:function(data,scope){var suggestion=klevu.getObjectPath(data.response.current,"suggestionResults");if(!klevu.isUndefined(suggestion)){var suggestionProcessed={};klevu.each(suggestion,function(key,value){suggestionProcessed[value.id]=value.suggestions;});suggestion=suggestionProcessed;}else{suggestion={};}
data.template.suggestions=suggestion;scope.kScope.data=data;}});baseSearch.getScope().chains.response.success.add({name:"processQuery",fire:function(data,scope){var query=klevu.getObjectPath(data.response.current,"queryResults");if(!klevu.isUndefined(query)){var queryProcessed={};klevu.each(query,function(key,value){queryProcessed[value.id]={meta:value.meta,filters:value.filters,result:value.records};klevu.setObjectPath(data,"localOverrides.query."+value.id+".settings.typeOfSearch",value.meta.typeOfSearch);});query=queryProcessed;}else{query={};}
data.template.query=query;scope.kScope.data=data;}});baseSearch.getScope().chains.response.success.add({name:"executeTemplateResponseProcessor",fire:function(data,scope){var chain=klevu.getObjectPath(scope.kScope,"chains.template.process.success");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.kElem);chain.setData(data);chain.fire();}
scope.kScope.data=data;}});baseSearch.getScope().chains.response.success.add({name:"renderTemplate",fire:function(data,scope){var chain=klevu.getObjectPath(scope.kScope,"chains.template.render");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.kElem);chain.setData(data);chain.fire();}
scope.kScope.data=data;}});baseSearch.getScope().chains.response.success.add({name:"addEvents",fire:function(data,scope){var chain=klevu.getObjectPath(scope.kScope,"chains.template.events");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.kElem);chain.setData(data);chain.fire();}
scope.kScope.data=data;}});baseSearch.getScope().chains.template.handleError.add({name:"renderError",fire:function(data,scope){return false;}});var KlevuElement=document.createElement("INPUT");KlevuElement.value="*";KlevuElement.kObject=baseSearch;KlevuElement.kScope=KlevuElement.kObject.getScope();baseSearch.getScope().element=KlevuElement;KlevuElement.kElem=KlevuElement.kObject.getScope().element;klevu.extend(true,klevu,{search:{extraSearchBox:[],base:baseSearch,modules:{}}});var landing=klevu.searchObjectClone(baseSearch);landing.setWebhookSettings({scope:"all,full_page,landing"});klevu.extend(true,klevu.search,{landing:landing});klevu.search.build=true;})(klevu);(function(klevu){if(klevu.isUndefined(klevu.pageMeta)){klevu.extend({pageMeta:{}});klevu.extend(true,klevu.pageMeta,{settings:{"platform":{},"user":{},"page":{"pageType":"","category":{"categoryUrl":"","categoryAbsolutePath":"","categoryPath":"","categoryName":""},"search":{"searchTerm":"","searchUrl":"","typeOfQuery":""},"pagination":{"paginationStartsFrom":false,"totalRecords":false,"limit":false},"products":[]},"filters":{"active":[]}},build:function(){if(!klevu.isUndefined(window.klevu_page_meta)){klevu.pageMeta.update(klevu_page_meta,1);}
if(!klevu.isUndefined(window.klevu_meta)){klevu.pageMeta.update(klevu_meta,2);}
return klevu.pageMeta.getAll();},updateFromV1:function(data){klevu.pageMeta.setData("page.pageType",klevu.getObjectPath(data,"pageType",""));if(klevu.getObjectPath(data,"apiKey",false))klevu({global:{apiKey:klevu.getObjectPath(data,"apiKey")}});if(klevu.pageMeta.hasPageType()){switch(klevu.pageMeta.getPageType()){case"category":klevu.pageMeta.setData("page.category.categoryUrl",klevu.getObjectPath(data,"categoryUrl",""));klevu.pageMeta.setData("page.category.categoryName",klevu.getObjectPath(data,"categoryName",""));klevu.pageMeta.setData("page.products",klevu.getObjectPath(data,"categoryProducts",[]));break;case'pdp':let product={'itemName':klevu.getObjectPath(data,"itemName",""),'itemUrl':klevu.getObjectPath(data,"itemUrl",""),'itemId':klevu.getObjectPath(data,"itemId",""),'itemGroupId':klevu.getObjectPath(data,"itemGroupId",""),'itemSalePrice':klevu.getObjectPath(data,"itemSalePrice",0),'itemCurrency':klevu.getObjectPath(data,"itemCurrency","")};klevu.pageMeta.setData("page.products",[product]);break;case"cart":klevu.pageMeta.setData("page.products",klevu.getObjectPath(data,"cartRecords",[]));break;case'checkout':klevu.pageMeta.setData("page.products",klevu.getObjectPath(data,"orderItems",[]));break;default:}}},updateFromV2:function(data){},getAll:function(){return klevu.pageMeta.settings;},hasData:function(path){return!!klevu.getObjectPath(klevu.pageMeta.settings,path,false);},getData:function(path,defaultValue){if(klevu.isUndefined(defaultValue))defaultValue=false;return klevu.getObjectPath(klevu.pageMeta.settings,path,defaultValue);},setData:function(path,value){klevu.setObjectPath(klevu.pageMeta.settings,path,value);return klevu.pageMeta.settings;},hasPageType:function(){return klevu.pageMeta.hasData("page.pageType",false);},getPageType:function(){return klevu.pageMeta.getData("page.pageType",false);},getApiKey:function(){return klevu.getGlobalSetting("global.apiKey",klevu.getGlobalSetting("search.apiKey",klevu.getGlobalSetting("analytics.apiKey")))},getUserProfile:function(){return klevu.pageMeta.getData("user",false);},getItems:function(){if(klevu.pageMeta.hasData("page.products")){return klevu.pageMeta.getData("page.products",[])}
return[];},hasItems:function(){let products=klevu.pageMeta.getItems();return!!(!klevu.isUndefined(products)&&klevu.isArrayLike(products)&&products.length>0);},update:function(data,version){if(klevu.isUndefined(version))version=2;switch(version){case 2:klevu.pageMeta.updateFromV2(data);break;default:klevu.pageMeta.updateFromV1(data);break;}
var dataForChain={settings:klevu.pageMeta.getAll()};var chain=klevu.pageMeta.chains.events;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(this);chain.setData(dataForChain);chain.fire();}
return klevu.pageMeta.getAll();},send:function(){var data={settings:klevu.pageMeta.getAll()};var chain=klevu.pageMeta.chains.send;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(this);chain.setData(data);chain.fire();}},chains:{send:klevu.chain({stopOnFalse:true}),events:klevu.chain({stopOnFalse:true})}});}
klevu.support.register({name:"pageMeta",loaded:true,active:true,dependency:["core.lib"]});klevu.pageMeta.chains.events.add({name:"checkCheckout",fire:function(data,scope){if(klevu.pageMeta.getPageType()!=="checkout")return;if(klevu.pageMeta.hasItems()){var payload={"event_version":"1.0.0","event":"order_purchase","event_apikey":klevu.pageMeta.getApiKey(),"user_profile":klevu.pageMeta.getUserProfile(),"event_data":{"items":klevu.pageMeta.getItems()}}
var object={payload:payload,type:"collect",url:klevu.getGlobalSetting("url.analyticsCollect",false),key:"checkout_order_"+klevu.randomId(),override:true};window["_klvAnalyticsCollect"]=window["_klvAnalyticsCollect"]||[];window["_klvAnalyticsCollect"].push(object);}}});klevu.settings.chains.initChain.add({name:"pageMetaBuild",fire:function(data,scope){var powerUp=klevu.getGlobalSetting("powerUp.pageMeta");if((!klevu.isUndefined(powerUp)&&powerUp===false)||!klevu.isInteractive)return;if(klevu.getObjectPath(data,"flags.pageMeta.build",false))return;klevu.setObjectPath(data,"flags.pageMeta.build",true);klevu.pageMeta.build();}});})(klevu);(function(klevu){klevu.extend({analyticsEvents:{}});klevu.extend(true,klevu.analyticsEvents,{term:function(data,kObject){if(klevu.isEmptyObject(kObject))kObject=klevu.analytics.base;var kScope=kObject.getScope();kScope.data=kObject.resetData();kScope.data.context.eventAction="term";if(!klevu.isUndefined(data.callbacks)){kScope.data.request.analytics=data.toSend.payload;kScope.data.context.callbacks=data.callbacks;}else{kScope.data.request.analytics=data;kScope.data.context.callbacks=false;}
kScope.data.context.preventDefault=false;klevu.event.fireChain(kScope,"chains.events.term",kScope.element,kScope.data,null);return kObject;},click:function(data,kObject){if(klevu.isEmptyObject(kObject))kObject=klevu.analytics.base;var kScope=kObject.getScope();kScope.data=kObject.resetData();kScope.data.context.eventAction="click";if(!klevu.isUndefined(data.callbacks)){kScope.data.request.analytics=data.toSend.payload;kScope.data.context.callbacks=data.callbacks;}else{kScope.data.request.analytics=data;kScope.data.context.callbacks=false;}
kScope.data.request.analytics.klevu_type="clicked";kScope.data.context.preventDefault=false;klevu.event.fireChain(kScope,"chains.events.click",kScope.element,kScope.data,null);return kObject;},buy:function(data,kObject){if(klevu.isEmptyObject(kObject))kObject=klevu.analytics.base;var kScope=kObject.getScope();kScope.data=kObject.resetData();kScope.data.context.eventAction="buy";if(!klevu.isUndefined(data.callbacks)){kScope.data.request.analytics=data.toSend.payload;kScope.data.context.callbacks=data.callbacks;}else{kScope.data.request.analytics=data;kScope.data.context.callbacks=false;}
kScope.data.request.analytics.klevu_type="checkout";kScope.data.context.preventDefault=false;klevu.event.fireChain(kScope,"chains.events.buy",kScope.element,kScope.data,null);return kObject;},catclick:function(data,kObject){if(klevu.isEmptyObject(kObject))kObject=klevu.analytics.base;var kScope=kObject.getScope();kScope.data=kObject.resetData();kScope.data.context.eventAction="catclick";if(!klevu.isUndefined(data.callbacks)){kScope.data.request.analytics=data.toSend.payload;kScope.data.context.callbacks=data.callbacks;}else{kScope.data.request.analytics=data;kScope.data.context.callbacks=false;}
kScope.data.context.preventDefault=false;klevu.event.fireChain(kScope,"chains.events.catclick",kScope.element,kScope.data,null);return kObject;},catview:function(data,kObject){if(klevu.isEmptyObject(kObject))kObject=klevu.analytics.base;var kScope=kObject.getScope();kScope.data=kObject.resetData();kScope.data.context.eventAction="catview";if(!klevu.isUndefined(data.callbacks)){kScope.data.request.analytics=data.toSend.payload;kScope.data.context.callbacks=data.callbacks;}else{kScope.data.request.analytics=data;kScope.data.context.callbacks=false;}
kScope.data.context.preventDefault=false;klevu.event.fireChain(kScope,"chains.events.catview",kScope.element,kScope.data,null);return kObject;},collect:function(data){var kObject=klevu.analytics.base;var kScope=kObject.getScope();kScope.data=kObject.resetData();kScope.data.context.eventAction="collect";kScope.data.request.collect=data.toSend.payload;kScope.data.context.collectStorage=data.toSend;kScope.data.context.preventDefault=false;if(!klevu.isUndefined(data.callbacks)){kScope.data.context.callbacks=data.callbacks;}else{kScope.data.context.callbacks=false;}
klevu.event.fireChain(kScope,"chains.events.collect",kScope.element,kScope.data,null);return kObject;}});klevu.extend({analyticsObjectBuild:function(){var localVariables={settings:{}};klevu.setObjectPath(localVariables,"id",klevu.randomId());klevu.setObjectPath(localVariables,"chains.actions.doAnalytics",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.actions.finalise",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.events.term",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.events.click",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.events.buy",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.events.catview",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.events.catclick",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.events.collect",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.request.control",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.request.build",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.request.send",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.request.ajax.send",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.request.fetch.send",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.response.ajax.success",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.response.ajax.done",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.response.ajax.fail",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.response.success",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.response.done",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.response.fail",klevu.chain({stopOnFalse:true}));function init(selfObj){localVariables.element=document.createElement("input");localVariables.element.kObject=selfObj;localVariables.element.kScope=localVariables;localVariables.element.kElem=localVariables.element;}
function resetData(){var tempData=buildData();localVariables.data.context=tempData.context;localVariables.data.request=tempData.request;localVariables.data.response=tempData.response;localVariables.data.scope=null;return localVariables.data;}
function buildData(){var data={context:{event:null,eventAction:"",preventDefault:false,status:null,isSuccess:false,doRequest:true},request:{analytics:{}},response:{ajax:{object:{},data:{}},current:{}},scope:{}};return data;}
localVariables.data=buildData();var selfObj={init:init,resetData:resetData,buildData:buildData,setScope:function(variables){localVariables=variables;return localVariables;},getScope:function(){return localVariables;}};init(selfObj);return selfObj;}});var options={analytics:{url:{term:"n-search/search",click:"productTracking",buy:"productTracking",catclick:"categoryProductClickTracking",catview:"categoryProductViewTracking",collect:"collect"}},url:{analytics:klevu.settings.url.protocol+"//stats.klevu.com/analytics/",analyticsCat:klevu.settings.url.protocol+"//stats.ksearchnet.com/analytics/",analyticsCollect:klevu.settings.url.protocol+"//stats.ksearchnet.com/analytics/"}};klevu(options);klevu.support.register({name:"analytics.base",loaded:true,active:true,dependency:["core.lib"]});(function(klevu){function sendAnalyticsEventsFromStorage(dictionary,element){var autoSug=klevu.dictionary(dictionary);autoSug.setStorage("local");autoSug.mergeFromGlobal();var storedEvents=autoSug.getElement(element);if(storedEvents&&storedEvents!=element){storedEvents=JSON.parse(storedEvents);klevu.each(storedEvents,function(index,value){delete value.filters;if(element==klevu.analyticsUtil.base.storage.click){klevu.analyticsEvents.click(value);}else if(element==klevu.analyticsUtil.base.storage.categoryClick){}else{klevu.analyticsEvents.term(value);}});autoSug.addElement(element,"");autoSug.mergeToGlobal();}};var storageOptions={dictionary:"analytics-util",term:"termList",click:"clickList",categoryClick:"categoryClickList",collect:"analyticsEvents"};klevu.extend(true,klevu,{analyticsUtil:{base:{storage:storageOptions,sendAnalyticsEventsFromStorage:sendAnalyticsEventsFromStorage}}});})(klevu);})(klevu);(function(klevu){klevu.support.hook(["core.constructors"],function(){if(!klevu.constructors.isLoaded("analytics.collect")){klevu.constructors.add({name:"analytics.collect",create:function(){let settings={general:{apiKey:false,scope:document.createElement("div"),flags:{build:false,init:false},dictionary:{collect:"analyticsEvents"},supportedTypes:[]}};let selfObj={getDictionary:function(type){return this.getSetting("general.dictionary."+type,"analyticsEvents");},getDictionaryData:function(name,typeOfStorage){if(klevu.isUndefined(typeOfStorage))typeOfStorage=klevu.getGlobalSetting("core.dictionary.defaultStorageType","local");let dictionaryData=klevu.dictionary(name);dictionaryData.setStorage(typeOfStorage);dictionaryData.mergeFromGlobal();return dictionaryData;},chains:klevu.constructors.get("analytics.collect").chains,addSupportedType:function(typeObject){let supportedTypes=this.getSetting("general.supportedTypes",[]);supportedTypes.push(typeObject.name);this.setSetting("general.supportedTypes",supportedTypes);let chain=klevu.getObjectPath(this,"chains.sendType");if(!klevu.isUndefined(chain)){chain.add({name:"send"+typeObject.name,fire:typeObject.fire});}},sendAnalyticsEventsFromStorage:function(dictionary){var scope=this;if(klevu.isUndefined(dictionary))dictionary=this.getDictionary("collect");var dictionaryData=this.getDictionaryData(dictionary);var storedEvents=dictionaryData.getElements();klevu.each(storedEvents,function(key,value){dictionaryData.mergeFromGlobal();value=dictionaryData.getElement(key);value=JSON.parse(value);if(klevu.getObjectPath(value,"type")===undefined){scope.removeAnalyticsEventsFromStorage(dictionary,key);return;}
if("timestamp"in value){var currentTime=klevu.time.timestamp();if((currentTime-parseInt(value.timestamp))>klevu.getGlobalSetting("analytics.maxRetryTime",21600)){scope.removeAnalyticsEventsFromStorage(dictionary,key);return;}}
if(!scope.getSetting("general.supportedTypes",[]).includes(klevu.getObjectPath(value,"type"))){return;}
if(klevu.getObjectPath(value,"status","new")==="pending"){if((klevu.time.timestamp()-klevu.getObjectPath(value,"statusTime",klevu.time.timestamp()))<klevu.getGlobalSetting("analytics.maxStatusLockTime",30)){return;}else{scope.changeAnalyticsEventsStatus(dictionary,key,"new",true);}}
scope.changeAnalyticsEventsStatus(dictionary,key,"pending");var data={value:value,dictionary:dictionary,key:key};var chain=klevu.getObjectPath(scope,"chains.sendType");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope);chain.setData(data);chain.fire();}});},removeAnalyticsEventsFromStorage:function(dictionary,key){var dictionaryData=klevu.analytics.utility.getDictionaryData(dictionary);dictionaryData.removeElement(key);dictionaryData.overrideGlobal();},addAnalyticsEventsToStorage:function(analyticsEvent){var dictionary=!klevu.isUndefined(analyticsEvent.dictionary)?analyticsEvent.dictionary:this.getDictionary("collect");var dictionaryData=this.getDictionaryData(dictionary);analyticsEvent.timestamp=klevu.time.timestamp();if(dictionaryData.getElement(analyticsEvent.key)===analyticsEvent.key){if(klevu.isUndefined(analyticsEvent.status))analyticsEvent.status="new";dictionaryData.addElement(analyticsEvent.key,JSON.stringify(analyticsEvent));}else if((!klevu.isUndefined(analyticsEvent.override)&&analyticsEvent.override)){var analyticsKeyValue=dictionaryData.getElement(analyticsEvent.key);analyticsKeyValue=JSON.parse(analyticsKeyValue);if(!klevu.isUndefined(analyticsEvent.forced)&&analyticsEvent.forced){if(klevu.isUndefined(analyticsEvent.status))analyticsEvent.status="new";dictionaryData.addElement(analyticsEvent.key,JSON.stringify(analyticsEvent));}else{if(klevu.getObjectPath(analyticsKeyValue,"status","new")==="new"){dictionaryData.addElement(analyticsEvent.key,JSON.stringify(analyticsEvent));}else{if(klevu.isUndefined(analyticsEvent.status))analyticsEvent.status="new";dictionaryData.addElement(analyticsEvent.key+klevu.time.timestamp(),JSON.stringify(analyticsEvent));}}}
dictionaryData.mergeToGlobal();},changeAnalyticsEventsStatus:function(dictionary,key,status,forced){var dictionary=!klevu.isUndefined(dictionary)?dictionary:this.getDictionary("collect");if(klevu.isUndefined(forced))forced=false;var dictionaryData=this.getDictionaryData(dictionary);var jsonData=dictionaryData.getElement(key);jsonData=JSON.parse(jsonData);jsonData.status=status;jsonData.statusTime=klevu.time.timestamp();jsonData.key=key;jsonData.override=true;if(forced)jsonData.forced=forced;this.addAnalyticsEventsToStorage(jsonData);},hasAnalyticsEventByName:function(eventName,dictionary){dictionary=!klevu.isUndefined(dictionary)?dictionary:this.getDictionary("collect");let dictionaryData=this.getDictionaryData(dictionary);let jsonData=dictionaryData.getElement(eventName);return eventName!==jsonData;},getAnalyticsEventByName:function(eventName,dictionary){dictionary=!klevu.isUndefined(dictionary)?dictionary:this.getDictionary("collect");let dictionaryData=this.getDictionaryData(dictionary);let jsonData=dictionaryData.getElement(eventName);if(eventName!==jsonData){return JSON.parse(jsonData);}else{return{}}},setWebhookSettings:function(webhookSettings){klevu.event.webhook.helpers.setWebhookSettingsForScope(webhookSettings,this);return this;},getWebhookSettings:function(){return klevu.event.webhook.helpers.getWebhookSettingsForScope(this);},setApiKey:function(apiKey){this.setSetting("general.apiKey",apiKey);if(!this.getSetting("general.flags.init",false)){let chain=this.chains.init;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(this);chain.setData(this.getAllSettings());chain.fire();}}
return this;},getApiKey:function(){return this.getSetting("general.apiKey");},hasSetting:function(path){return!!klevu.getObjectPath(settings,path,false);},getSetting:function(path,defaultValue){if(klevu.isUndefined(defaultValue))defaultValue=false;return klevu.getObjectPath(settings,path,defaultValue);},setSetting:function(path,value){klevu.setObjectPath(settings,path,value);return this;},getAllSettings:function(){return settings;},webhookSettings:{run:true,object:"analytics",scope:"collect"},}
let chain=selfObj.chains.build;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(selfObj);chain.setData(selfObj.getAllSettings());chain.fire();}
return selfObj;},chains:{build:klevu.chain({stopOnFalse:true,webhook:{name:"chains.build"}}),init:klevu.chain({stopOnFalse:true,webhook:{name:"chains.init"}}),sendType:klevu.chain({stopOnFalse:true,webhook:{name:"chains.sendType"}}),analyticsClick:klevu.chain({stopOnFalse:true,webhook:{name:"chains.analyticsClick"}}),prodBuy:klevu.chain({stopOnFalse:true,webhook:{name:"chains.prodBuy"}}),prodClick:klevu.chain({stopOnFalse:true,webhook:{name:"chains.prodClick"}}),prodView:klevu.chain({stopOnFalse:true,webhook:{name:"chains.prodView"}}),catClick:klevu.chain({stopOnFalse:true,webhook:{name:"chains.catClick"}}),catView:klevu.chain({stopOnFalse:true,webhook:{name:"chains.catView"}}),recsClick:klevu.chain({stopOnFalse:true,webhook:{name:"chains.recsClick"}}),recsView:klevu.chain({stopOnFalse:true,webhook:{name:"chains.recsView"}}),}});klevu.constructors.get("analytics.collect").chains.build.add({name:"beforeBuild",fire:function(data,scope){klevu.event.webhook.helpers.fireEventForScope({webhookSettings:scope.webhookSettings,name:"mainObject",action:"beforeBuild",data:scope.getAllSettings(),scope:scope});}});klevu.constructors.get("analytics.collect").chains.build.add({name:"setBuildFlag",fire:function(data,scope){scope.setSetting("general.flags.build",true);}});klevu.constructors.get("analytics.collect").chains.build.add({name:"beforeBuild",fire:function(data,scope){klevu.event.webhook.helpers.fireEventForScope({webhookSettings:scope.webhookSettings,name:"mainObject",action:"afterBuild",data:scope.getAllSettings(),scope:scope});}});klevu.constructors.get("analytics.collect").chains.init.add({name:"addCollectSupportedType",fire:function(data,scope){scope.addSupportedType({name:"collect",fire:function(data,scope){if(data.value.type==="collect"){var callbacks=[];callbacks.push({fire:scope.removeAnalyticsEventsFromStorage,params:[data.dictionary,data.key]});klevu.analyticsEvents.collect({toSend:data.value,callbacks:callbacks});}}});}});klevu.constructors.get("analytics.collect").chains.init.add({name:"addTermSupportedType",fire:function(data,scope){scope.addSupportedType({name:"search_term",fire:function(data,scope){if(data.value.type==="search_term"){var callbacks=[];callbacks.push({fire:scope.removeAnalyticsEventsFromStorage,params:[data.dictionary,data.key]});klevu.analyticsEvents.term({toSend:data.value,callbacks:callbacks});}}});}});klevu.constructors.get("analytics.collect").chains.init.add({name:"addSearchClickSupportedType",fire:function(data,scope){scope.addSupportedType({name:"search_product_click",fire:function(data,scope){if(data.value.type==="search_product_click"){var callbacks=[];callbacks.push({fire:scope.removeAnalyticsEventsFromStorage,params:[data.dictionary,data.key]});klevu.analyticsEvents.click({toSend:data.value,callbacks:callbacks});}}});}});klevu.constructors.get("analytics.collect").chains.init.add({name:"addSeachBuySupportedType",fire:function(data,scope){scope.addSupportedType({name:"search_product_buy",fire:function(data,scope){if(data.value.type==="search_product_buy"){var callbacks=[];callbacks.push({fire:scope.removeAnalyticsEventsFromStorage,params:[data.dictionary,data.key]});klevu.analyticsEvents.buy({toSend:data.value,callbacks:callbacks});}}});}});klevu.constructors.get("analytics.collect").chains.init.add({name:"addCatnavClickSupportedType",fire:function(data,scope){scope.addSupportedType({name:"catnav_product_click",fire:function(data,scope){if(data.value.type==="catnav_product_click"){var callbacks=[];callbacks.push({fire:scope.removeAnalyticsEventsFromStorage,params:[data.dictionary,data.key]});klevu.analyticsEvents.catclick({toSend:data.value,callbacks:callbacks});}}});}});klevu.constructors.get("analytics.collect").chains.init.add({name:"addCatnavViewSupportedType",fire:function(data,scope){scope.addSupportedType({name:"catnav_view",fire:function(data,scope){if(data.value.type==="catnav_view"){var callbacks=[];callbacks.push({fire:scope.removeAnalyticsEventsFromStorage,params:[data.dictionary,data.key]});klevu.analyticsEvents.catview({toSend:data.value,callbacks:callbacks});}}});}});klevu.constructors.get("analytics.collect").chains.init.add({name:"initGlobalCollector",fire:function(data,scope){let apiKey=scope.getSetting("general.apiKey",false);if((!klevu.isUndefined(apiKey)&&apiKey!==false)){klevu.event.eventList.build({name:"_klvAnalyticsCollect",global:true});_klvAnalyticsCollect.chain.add({name:"moveToEvents",fire:function(data,scope){if(data.element.length>0){var listToRemove=[];klevu.each(data.element,function(key,value){var elementToAdd={type:klevu.getObjectPath(value,"type","custom"),url:klevu.getObjectPath(value,"url",false),apiKey:klevu.getObjectPath(value,"apiKey",klevu.getGlobalSetting("analytics.apiKey",klevu.getGlobalSetting("global.apiKey",false))),key:klevu.getObjectPath(value,"key","customEvent-"+klevu.randomId()),override:klevu.getObjectPath(value,"override",true),payload:klevu.getObjectPath(value,"payload",{}),}
elementToAdd.payload.apiKey=klevu.getObjectPath(value,"payload.apiKey",klevu.getGlobalSetting("analytics.apiKey",klevu.getGlobalSetting("global.apiKey",false)));klevu.analytics.utility.addAnalyticsEventsToStorage(elementToAdd);listToRemove.push(value);});if(listToRemove.length>0){klevu.each(listToRemove,function(key,value){data.element.remove(value);});klevu.analytics.utility.sendAnalyticsEventsFromStorage();};}}});_klvAnalyticsCollect.run();}}});klevu.constructors.get("analytics.collect").chains.init.add({name:"sendStoredEvents",fire:function(data,scope){scope.sendAnalyticsEventsFromStorage("analyticsEvents");}});klevu.constructors.get("analytics.collect").chains.init.add({name:"setInitFlag",fire:function(data,scope){scope.setSetting("general.flags.init",true);}});}});klevu.support.hook(["analytics.utility"],function(){klevu.settings.chains.initChain.add({name:"analyticsCollect",fire:function(data,scope){var apiKey=klevu.getGlobalSetting("analytics.apiKey",klevu.getGlobalSetting("search.apiKey",klevu.getGlobalSetting("global.apiKey")));if(!klevu.isUndefined(apiKey)){var powerUp=klevu.getGlobalSetting("powerUp.analyticsCollect");if((!klevu.isUndefined(powerUp)&&powerUp===false))return;if(klevu.getObjectPath(data,"flags.analyticsCollect.build",false))return;if(klevu.isUndefined(klevu.analytics)||klevu.isUndefined(klevu.analytics.build)||klevu.isUndefined(klevu.analytics.utility))return;klevu.setObjectPath(data,"flags.analyticsCollect.build",true);klevu.analytics.utility.setApiKey(apiKey);}}});});if(!klevu.support.isActive("analytics.utility")){klevu.extend(true,klevu,{analytics:{utility:klevu.constructors.construct("analytics.collect")}});klevu.support.register({name:"analytics.utility",loaded:true,active:true,dependency:["core.constructors","core.lib"]});}
klevu.support.hook(["analytics.utility"],function(){klevu.settings.chains.initChain.add({name:"analyticsCollect",fire:function(data,scope){var apiKey=klevu.getGlobalSetting("analytics.apiKey",klevu.getGlobalSetting("search.apiKey",klevu.getGlobalSetting("global.apiKey")));if(!klevu.isUndefined(apiKey)){var powerUp=klevu.getGlobalSetting("powerUp.analyticsCollect");if((!klevu.isUndefined(powerUp)&&powerUp===false))return;if(klevu.getObjectPath(data,"flags.analyticsCollect.build",false))return;if(klevu.isUndefined(klevu.analytics)||klevu.isUndefined(klevu.analytics.build)||klevu.isUndefined(klevu.analytics.utility))return;klevu.setObjectPath(data,"flags.analyticsCollect.build",true);klevu.analytics.utility.setApiKey(apiKey);}}});});})(klevu);(function(klevu){var baseAnalytics=klevu.analyticsObjectBuild();baseAnalytics.getScope().chains.events.term.add({name:"termRequestCheck",fire:function(data,scope){klevu.clean(data.request.analytics);var analytics=data.request.analytics;try{var hasError=false;var errorPrefix="";if(klevu.isUndefined(analytics.klevu_term)){hasError=true;errorPrefix="klevu_term";}else if(klevu.isUndefined(analytics.klevu_totalResults)){hasError=true;errorPrefix="klevu_totalResults";}else if(klevu.isUndefined(analytics.klevu_typeOfQuery)){hasError=true;errorPrefix="klevu_typeOfQuery";}
if(hasError){throw new Error(errorPrefix+" parameter is missing from the term analytics request!");}}catch(error){return false;}}});baseAnalytics.getScope().chains.events.term.add({name:"generateURL",fire:function(data,scope){var analyticsUrl=klevu.getSetting(scope.kScope.settings,"settings.url.analytics",false);if(analyticsUrl){data.context.url=analyticsUrl+klevu.getSetting(scope.kScope.settings,"settings.analytics.url.term",false);}else{return false;}}});baseAnalytics.getScope().chains.events.term.add({name:"addApiKey",fire:function(data,scope){data.request.analytics.klevu_apiKey=klevu.getSetting(scope.kScope.settings,"settings.analytics.apiKey",klevu.getGlobalSetting("analytics.apiKey",klevu.getGlobalSetting("global.apiKey")));}});baseAnalytics.getScope().chains.events.term.add({name:"doAnalytics",fire:function(data,scope){var chain=klevu.getObjectPath(scope.kScope,"chains.actions.doAnalytics");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.kElem);chain.setData(data);chain.fire();}
scope.kScope.data=data;if(data.context.preventDefault===true)return false;}});baseAnalytics.getScope().chains.events.click.add({name:"clickRequestCheck",fire:function(data,scope){klevu.clean(data.request.analytics);var analytics=data.request.analytics;try{var hasError=false;var errorPrefix="";if(klevu.isUndefined(analytics.klevu_keywords)){hasError=true;errorPrefix="klevu_keywords";}else if(klevu.isUndefined(analytics.klevu_productId)){hasError=true;errorPrefix="klevu_productId";}else if(klevu.isUndefined(analytics.klevu_productName)){hasError=true;errorPrefix="klevu_productName";}else if(klevu.isUndefined(analytics.klevu_productUrl)){hasError=true;errorPrefix="klevu_productUrl";}
if(hasError){throw new Error(errorPrefix+" parameter is missing from the click analytics request!");}}catch(error){return false;}}});baseAnalytics.getScope().chains.events.click.add({name:"generateURL",fire:function(data,scope){var analyticsUrl=klevu.getSetting(scope.kScope.settings,"settings.url.analytics",false);if(analyticsUrl){data.context.url=analyticsUrl+klevu.getSetting(scope.kScope.settings,"settings.analytics.url.click",false);}else{return false;}}});baseAnalytics.getScope().chains.events.click.add({name:"addApiKey",fire:function(data,scope){data.request.analytics.klevu_apiKey=klevu.getSetting(scope.kScope.settings,"settings.analytics.apiKey",klevu.getGlobalSetting("analytics.apiKey",klevu.getGlobalSetting("global.apiKey")));}});baseAnalytics.getScope().chains.events.click.add({name:"doAnalytics",fire:function(data,scope){var chain=klevu.getObjectPath(scope.kScope,"chains.actions.doAnalytics");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.kElem);chain.setData(data);chain.fire();}
scope.kScope.data=data;if(data.context.preventDefault===true)return false;}});baseAnalytics.getScope().chains.events.buy.add({name:"buyRequestCheck",fire:function(data,scope){klevu.clean(data.request.analytics);var analytics=data.request.analytics;try{var hasError=false;var errorPrefix="";if(klevu.isUndefined(analytics.klevu_productId)){hasError=true;errorPrefix="klevu_productId";}else if(klevu.isUndefined(analytics.klevu_unit)){hasError=true;errorPrefix="klevu_unit";}else if(klevu.isUndefined(analytics.klevu_salePrice)){hasError=true;errorPrefix="klevu_salePrice";}else if(klevu.isUndefined(analytics.klevu_currency)){hasError=true;errorPrefix="klevu_currency";}
if(hasError){throw new Error(errorPrefix+" parameter is missing from the buy analytics request!");}}catch(error){return false;}}});baseAnalytics.getScope().chains.events.buy.add({name:"generateURL",fire:function(data,scope){var analyticsUrl=klevu.getSetting(scope.kScope.settings,"settings.url.analytics",false);if(analyticsUrl){data.context.url=analyticsUrl+klevu.getSetting(scope.kScope.settings,"settings.analytics.url.buy",false);}else{return false;}}});baseAnalytics.getScope().chains.events.buy.add({name:"addApiKey",fire:function(data,scope){data.request.analytics.klevu_apiKey=klevu.getSetting(scope.kScope.settings,"settings.analytics.apiKey",klevu.getGlobalSetting("analytics.apiKey",klevu.getGlobalSetting("global.apiKey")));}});baseAnalytics.getScope().chains.events.buy.add({name:"doAnalytics",fire:function(data,scope){var chain=klevu.getObjectPath(scope.kScope,"chains.actions.doAnalytics");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.kElem);chain.setData(data);chain.fire();}
scope.kScope.data=data;if(data.context.preventDefault===true)return false;}});baseAnalytics.getScope().chains.events.catclick.add({name:"clickRequestCheck",fire:function(data,scope){klevu.clean(data.request.analytics);var analytics=data.request.analytics;try{var hasError=false;var errorPrefix="";if(klevu.isUndefined(analytics.klevu_categoryName)){hasError=true;errorPrefix="klevu_categoryName";}else if(klevu.isUndefined(analytics.klevu_categoryPath)){hasError=true;errorPrefix="klevu_categoryPath";}else if(klevu.isUndefined(analytics.klevu_productId)){hasError=true;errorPrefix="klevu_productId";}else if(klevu.isUndefined(analytics.klevu_productName)){hasError=true;errorPrefix="klevu_productName";}else if(klevu.isUndefined(analytics.klevu_productUrl)){hasError=true;errorPrefix="klevu_productUrl";}
if(hasError){throw new Error(errorPrefix+" parameter is missing from the click analytics request!");}}catch(error){return false;}}});baseAnalytics.getScope().chains.events.catclick.add({name:"generateURL",fire:function(data,scope){var analyticsUrl=klevu.getSetting(scope.kScope.settings,"settings.url.analyticsCat",false);if(analyticsUrl){data.context.url=analyticsUrl+klevu.getSetting(scope.kScope.settings,"settings.analytics.url.catclick",false);}else{return false;}}});baseAnalytics.getScope().chains.events.catclick.add({name:"addApiKey",fire:function(data,scope){data.request.analytics.klevu_apiKey=klevu.getSetting(scope.kScope.settings,"settings.analytics.apiKey",klevu.getGlobalSetting("analytics.apiKey",klevu.getGlobalSetting("global.apiKey")));}});baseAnalytics.getScope().chains.events.catclick.add({name:"doAnalytics",fire:function(data,scope){var chain=klevu.getObjectPath(scope.kScope,"chains.actions.doAnalytics");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.kElem);chain.setData(data);chain.fire();}
scope.kScope.data=data;if(data.context.preventDefault===true)return false;}});baseAnalytics.getScope().chains.events.catview.add({name:"viewRequestCheck",fire:function(data,scope){klevu.clean(data.request.analytics);var analytics=data.request.analytics;try{var hasError=false;var errorPrefix="";if(klevu.isUndefined(analytics.klevu_categoryName)){hasError=true;errorPrefix="klevu_categoryName";}else if(klevu.isUndefined(analytics.klevu_categoryPath)){hasError=true;errorPrefix="klevu_categoryPath";}else if(klevu.isUndefined(analytics.klevu_productIds)){hasError=true;errorPrefix="klevu_productIds";}
if(hasError){throw new Error(errorPrefix+" parameter is missing from the term analytics request!");}}catch(error){return false;}}});baseAnalytics.getScope().chains.events.catview.add({name:"generateURL",fire:function(data,scope){var analyticsUrl=klevu.getSetting(scope.kScope.settings,"settings.url.analyticsCat",false);if(analyticsUrl){data.context.url=analyticsUrl+klevu.getSetting(scope.kScope.settings,"settings.analytics.url.catview",false);}else{return false;}}});baseAnalytics.getScope().chains.events.catview.add({name:"addApiKey",fire:function(data,scope){data.request.analytics.klevu_apiKey=klevu.getSetting(scope.kScope.settings,"settings.analytics.apiKey",klevu.getGlobalSetting("analytics.apiKey",klevu.getGlobalSetting("global.apiKey")));}});baseAnalytics.getScope().chains.events.catview.add({name:"doAnalytics",fire:function(data,scope){var chain=klevu.getObjectPath(scope.kScope,"chains.actions.doAnalytics");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.kElem);chain.setData(data);chain.fire();}
scope.kScope.data=data;if(data.context.preventDefault===true)return false;}});baseAnalytics.getScope().chains.events.collect.add({name:"collectRequestClean",fire:function(data,scope){klevu.clean(data.request.collect);}});baseAnalytics.getScope().chains.events.collect.add({name:"generateURL",fire:function(data,scope){if(klevu.getObjectPath(scope.kScope,"data.context.collectStorage.url",false)){data.context.url=klevu.getObjectPath(scope.kScope,"data.context.collectStorage.url")+klevu.getSetting(scope.kScope.settings,"settings.analytics.url.collect",false);}else{var analyticsUrl=klevu.getSetting(scope.kScope.settings,"settings.url.analyticsCollect",false);if(analyticsUrl){data.context.url=analyticsUrl+klevu.getSetting(scope.kScope.settings,"settings.analytics.url.collect",false);}else{return false;}}}});baseAnalytics.getScope().chains.events.collect.add({name:"doAnalytics",fire:function(data,scope){var chain=klevu.getObjectPath(scope.kScope,"chains.actions.doAnalytics");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.kElem);chain.setData(data);chain.fire();}
scope.kScope.data=data;if(data.context.preventDefault===true)return false;}});baseAnalytics.getScope().chains.actions.doAnalytics.add({name:"doRequest",fire:function(data,scope){data.context.doRequest=false;var chain=klevu.getObjectPath(scope.kScope,"chains.request.control");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.kElem);chain.setData(data);chain.fire();scope.kScope.data=data;}else{data.context.preventDefault=true;scope.kScope.data=data;return false;}}});baseAnalytics.getScope().chains.request.ajax.send.add({name:"sendRequest",fire:function(data,scope){if(data.context.eventAction!=="analyticsAjaxV1")return;data.scope=scope;if(data.context.doRequest){klevu.ajax(data.context.url,{method:"GET",data:klevu.queryString(data.request.analytics),dataType:"xml",crossDomain:true,success:function(klXHR){var chain=klevu.getObjectPath(klXHR.requestDetails.scope.kScope,"chains.response.ajax.success");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(klXHR.requestDetails.scope.kElem);klXHR.requestDetails.response.ajax.object=klXHR;klXHR.requestDetails.response.ajax.data=klXHR.responseObj.data;klXHR.requestDetails.context.status=klXHR.status;klXHR.requestDetails.context.isSuccess=klXHR.isSuccess;chain.setData(klXHR.requestDetails);chain.fire();}},done:function(klXHR){var chain=klevu.getObjectPath(klXHR.requestDetails.scope.kScope,"chains.response.ajax.done");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(klXHR.requestDetails.scope.kElem);klXHR.requestDetails.response.ajax.object=klXHR;klXHR.requestDetails.response.ajax.data=klXHR.responseObj.data;klXHR.requestDetails.context.status=klXHR.status;klXHR.requestDetails.context.isSuccess=klXHR.isSuccess;chain.setData(klXHR.requestDetails);chain.fire();}},error:function(klXHR){var chain=klevu.getObjectPath(klXHR.requestDetails.scope.kScope,"chains.response.ajax.fail");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(klXHR.requestDetails.scope.kElem);klXHR.requestDetails.response.ajax.object=klXHR;klXHR.requestDetails.response.ajax.data={};klXHR.requestDetails.context.status=klXHR.status;klXHR.requestDetails.context.isSuccess=klXHR.isSuccess;chain.setData(klXHR.requestDetails);chain.fire();}},requestDetails:data});}else{}}});baseAnalytics.getScope().chains.request.fetch.send.add({name:"sendRequest",fire:function(data,scope){if(data.context.eventAction!=="analyticsFetchV1")return;data.scope=scope;data.context.requestObject={url:data.context.url,type:"FETCH",method:"POST",mimeType:"application/json; charset=UTF-8",contentType:"application/json; charset=utf-8",crossDomain:true,success:function(data,requestDetails,status,isSuccess){var chain=klevu.getObjectPath(requestDetails.scope.kScope,"chains.response.success");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(requestDetails.scope.kElem);klevu.setObjectPath(requestDetails,"response.data",data);klevu.setObjectPath(requestDetails,"context.status",status);klevu.setObjectPath(requestDetails,"context.isSuccess",isSuccess);chain.setData(requestDetails);chain.fire();}},error:function(requestDetails,status,isSuccess){var chain=klevu.getObjectPath(requestDetails.scope.kScope,"chains.response.fail");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(requestDetails.scope.kElem);klevu.setObjectPath(requestDetails,"response.data",{});klevu.setObjectPath(requestDetails,"context.status",status);klevu.setObjectPath(requestDetails,"context.isSuccess",isSuccess);chain.setData(requestDetails);chain.fire();}},data:"["+JSON.stringify(data.request.collect)+"]"};data.context.requestDetails=klevu.extend(true,{},data);}});baseAnalytics.getScope().chains.request.control.add({name:"initRequest",fire:function(data,scope){data.context.doRequest=false;var chain=klevu.getObjectPath(scope.kScope,"chains.request.build");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.kElem);chain.setData(data);chain.fire();scope.kScope.data=data;if(data.context.doRequest===false)return false;}else{data.context.preventDefault=true;scope.kScope.data=data;return false;}}});baseAnalytics.getScope().chains.request.control.add({name:"makeRequest",fire:function(data,scope){var chain=klevu.getObjectPath(scope.kScope,"chains.request.send");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.kElem);chain.setData(data);chain.fire();scope.kScope.data=data;return false;}}});baseAnalytics.getScope().chains.request.build.add({name:"buildMap",fire:function(data,scope){data.context.status=null;data.context.isSuccess=false;data.context.doRequest=true;}});baseAnalytics.getScope().chains.request.send.add({name:"requestTypeAjaxV1",fire:function(data,scope){if(data.context.eventAction==="term"||data.context.eventAction==="click"||data.context.eventAction==="buy"||data.context.eventAction==="catclick"||data.context.eventAction==="catview")
data.context.eventAction="analyticsAjaxV1";}});baseAnalytics.getScope().chains.request.send.add({name:"requestTypeFetchV1",fire:function(data,scope){if(data.context.eventAction==="collect")
data.context.eventAction="analyticsFetchV1";}});baseAnalytics.getScope().chains.request.send.addAfter("requestTypeAjaxV1",{name:"requestEncodeAjaxV1",fire:function(data,scope){if(data.context.eventAction==="analyticsAjaxV1"){var termData=data.request.analytics.klevu_term;if(termData){data.request.analytics.klevu_term=encodeURIComponent(termData);}
var keywordsData=data.request.analytics.klevu_keywords;if(keywordsData){data.request.analytics.klevu_keywords=encodeURIComponent(keywordsData);}}}});baseAnalytics.getScope().chains.request.send.add({name:"requestTypeAjaxSendV1",fire:function(data,scope){if(data.context.eventAction==="analyticsAjaxV1"){var chain=klevu.getObjectPath(scope.kScope,"chains.request.ajax.send");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.kElem);chain.setData(data);chain.fire();scope.kScope.data=data;return false;}}}});baseAnalytics.getScope().chains.request.send.add({name:"requestTypeFetchSendV1",fire:function(data,scope){if(data.context.eventAction==="analyticsFetchV1"){var chain=klevu.getObjectPath(scope.kScope,"chains.request.fetch.send");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.kElem);chain.setData(data);chain.fire();scope.kScope.data=data;}}}});baseAnalytics.getScope().chains.request.send.add({name:"requestSend",fire:function(data,scope){if(data.context.eventAction==="analyticsFetchV1"){klevu.request(data.context.requestObject,data.context.requestDetails);}}});baseAnalytics.getScope().chains.response.ajax.success.add({name:"checkForSuccess",fire:function(data,scope){scope.kScope.data=data;if(data.context.isSuccess===false){return false;}
data.response.current=data.response.ajax.data;}});baseAnalytics.getScope().chains.response.ajax.success.add({name:"removeFromDictionary",fire:function(data,scope){if(!klevu.isUndefined(data.context.callbacks)&&data.context.callbacks!==false){klevu.each(data.context.callbacks,function(key,callbackObject){callbackObject.fire.apply(this,callbackObject.params);});}}});baseAnalytics.getScope().chains.response.success.add({name:"checkForSuccess",fire:function(data,scope){scope.kScope.data=data;if(data.context.isSuccess===false){return false;}
data.response.current=data.response.ajax.data;}});baseAnalytics.getScope().chains.response.success.add({name:"removeFromDictionary",fire:function(data,scope){if(data.context.callbacks!==false){klevu.each(data.context.callbacks,function(key,callbackObject){callbackObject.fire.apply(this,callbackObject.params);});}}});baseAnalytics.getScope().chains.response.fail.add({name:"removeFromDictionary",fire:function(data,scope){if(data.context.callbacks!==false){klevu.each(data.context.callbacks,function(key,callbackObject){callbackObject.fire.apply(this,callbackObject.params);});}}});klevu.extend(true,klevu,{analytics:{base:baseAnalytics,build:true}});})(klevu);(function(klevu){klevu.support.hook(["core.constructors"],function(){if(!klevu.constructors.isLoaded("analytics.collector")){klevu.constructors.add({name:"analytics.collector",create:function(){let settings={events:{list:[],observers:{},types:[],counters:{}},general:{apiKey:false,scope:document.createElement("div"),eventTypeLimit:10,flags:{build:false,init:false}}};let selfObj={webhookSettings:{run:true,object:"analytics",scope:"collector"},getAllSettings:function(){return settings;},getScope:function(){return this;},addEvent:function(eventData){let chain=this.chains.addEvent;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(this);chain.setData(eventData);chain.fire();}},hasEventType(eventType){return klevu.inArray(eventType,this.getSetting("events.types",[]))>=0;},addEventType:function(eventType){if(klevu.inArray(eventType,this.getSetting("events.types",[]))<0){this.getAllSettings().events.types.push(eventType);if(!this.getSetting("events.observers."+eventType,false)){this.setSetting("events.observers."+eventType,{});}
this.setSetting("events.counters."+eventType,0);}},clearEventTypes:function(eventTypes,limit){let data={eventTypes:eventTypes,limit:limit}
let chain=this.chains.clearEvent;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(this);chain.setData(data);chain.fire();}},clearAllEvents:function(){let eventTypes=this.getSetting("events.types",[]);if(eventTypes.length>0){this.clearEventTypes(eventTypes,0);}},registerObserver:function(observerData){let chain=this.chains.registerObserver;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(this);chain.setData(observerData);chain.fire();}},runObserverForOldEvents:function(observerName,eventTypes){klevu.each(this.getSetting("events.list",[]),function(key,eventData){if(klevu.inArray(eventData.type,eventTypes)>=0){selfObj.runObserversForEvent(eventData,observerName);}});},runObserversForEvent:function(eventData,observerName){let data={eventData:eventData,observerName:observerName};let chain=this.chains.runObservers;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(this);chain.setData(data);chain.fire();}},setApiKey:function(apiKey){this.setSetting("general.apiKey",apiKey);if(!this.getSetting("general.flags.init",false)){let chain=this.chains.init;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(this);chain.setData(this.getAllSettings());chain.fire();}}
return this;},getApiKey:function(){return this.getSetting("general.apiKey");},setEventTypeLimit:function(limit){this.setSetting("general.eventTypeLimit",limit);return this;},setWebhookSettings:function(webhookSettings){klevu.event.webhook.helpers.setWebhookSettingsForScope(webhookSettings,this);return this;},getWebhookSettings:function(){return klevu.event.webhook.helpers.getWebhookSettingsForScope(this);},hasSetting:function(path){return!!klevu.getObjectPath(settings,path,false);},getSetting:function(path,defaultValue){if(klevu.isUndefined(defaultValue))defaultValue=false;return klevu.getObjectPath(settings,path,defaultValue);},setSetting:function(path,value){klevu.setObjectPath(settings,path,value);return this;},chains:klevu.constructors.get("analytics.collector").chains}
let chain=selfObj.chains.build;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(selfObj);chain.setData(selfObj.getAllSettings());chain.fire();}
return selfObj;},chains:{build:klevu.chain({stopOnFalse:true,webhook:{name:"chains.build"}}),init:klevu.chain({stopOnFalse:true,webhook:{name:"chains.init"}}),addEvent:klevu.chain({stopOnFalse:true,webhook:{name:"chains.addEvent"}}),clearEvent:klevu.chain({stopOnFalse:true,webhook:{name:"chains.clearEvent"}}),registerObserver:klevu.chain({stopOnFalse:true,webhook:{name:"chains.registerObserver"}}),runObservers:klevu.chain({stopOnFalse:true,webhook:{name:"chains.runObservers"}})}});klevu.constructors.get("analytics.collector").chains.build.add({name:"beforeBuild",fire:function(data,scope){klevu.event.webhook.helpers.fireEventForScope({webhookSettings:scope.webhookSettings,name:"mainObject",action:"beforeBuild",data:scope.getAllSettings(),scope:scope});}});klevu.constructors.get("analytics.collector").chains.build.add({name:"setBuildFlag",fire:function(data,scope){scope.setSetting("general.flags.build",true);}});klevu.constructors.get("analytics.collector").chains.build.add({name:"afterBuild",fire:function(data,scope){klevu.event.webhook.helpers.fireEventForScope({webhookSettings:scope.webhookSettings,name:"mainObject",action:"afterBuild",data:data,scope:scope});}});klevu.constructors.get("analytics.collector").chains.init.add({name:"initGlobalCollector",fire:function(data,scope){klevu.event.eventList.build({name:"_klvAnalyticsEvent",global:true});_klvAnalyticsEvent.chain.add({name:"moveToCollector",fire:function(data,scope){if(data.element.length>0){let listToRemove=[];klevu.each(data.element,function(key,value){if(!klevu.getObjectPath(value,"type",false)){return;}
let elementToAdd=klevu.extend(true,{},value);klevu.analytics.collector.addEvent(elementToAdd);listToRemove.push(value);});if(listToRemove.length>0){klevu.eachReverse(listToRemove,function(key,value){data.element.remove(value);});}}}});_klvAnalyticsEvent.run();}});klevu.constructors.get("analytics.collector").chains.init.add({name:"setInitFlag",fire:function(data,scope){scope.setSetting("general.flags.init",true);}});klevu.constructors.get("analytics.collector").chains.addEvent.add({name:"checkForEventType",fire:function(data,scope){if(!scope.hasEventType(data.type)){scope.addEventType(data.type);}}});klevu.constructors.get("analytics.collector").chains.addEvent.add({name:"beforeSaveEvent",fire:function(data,scope){klevu.event.webhook.helpers.fireEventForScope({webhookSettings:scope.webhookSettings,name:"addEvent",action:"before",data:data,scope:scope});}});klevu.constructors.get("analytics.collector").chains.addEvent.add({name:"addEventToList",fire:function(data,scope){scope.getSetting("events.list").push(data);let eventTypeLimit=scope.getSetting("general.eventTypeLimit");let counterOfEventType=scope.getSetting("events.counters."+data.type,0)+1;scope.setSetting("events.counters."+data.type,counterOfEventType);if(counterOfEventType>eventTypeLimit){scope.clearEventTypes(data.type,eventTypeLimit);}}});klevu.constructors.get("analytics.collector").chains.addEvent.add({name:"runObserversForEvent",fire:function(data,scope){scope.runObserversForEvent(data);}});klevu.constructors.get("analytics.collector").chains.addEvent.add({name:"afterSaveEvent",fire:function(data,scope){klevu.event.webhook.helpers.fireEventForScope({webhookSettings:scope.webhookSettings,name:"addEvent",action:"after",data:data,scope:scope});}});klevu.constructors.get("analytics.collector").chains.clearEvent.add({name:"clearEvent",fire:function(data,scope){if(klevu.isString(data.eventTypes)){if(data.eventTypes==="all"){data.eventTypes=scope.getSetting("events.types",[]);}else{data.eventTypes=[data.eventTypes];}}
let cleanupEventTypes=[];if(data.eventTypes.length===0){return true;}
klevu.each(data.eventTypes,function(key,eventType){let counter=scope.getSetting("events.counters."+eventType,false);if(counter&&counter>data.limit){cleanupEventTypes.push(eventType);}});if(cleanupEventTypes.length>0){let countersFound={};let eventList=scope.getSetting("events.list",[]);klevu.eachReverse(eventList,function(key,eventData){if(klevu.inArray(eventData.type,cleanupEventTypes)>=0){if(klevu.getObjectPath(countersFound,eventData.type,0)>=data.limit){eventList.splice(key,1);}else{klevu.setObjectPath(countersFound,eventData.type,klevu.getObjectPath(countersFound,eventData.type,0)+1);}}});klevu.each(countersFound,function(eventType,counter){scope.setSetting("events.counters."+eventType,counter);});scope.setSetting("events.list",eventList);return true;}
return true;}});klevu.constructors.get("analytics.collector").chains.registerObserver.add({name:"addObserver",fire:function(data,scope){if(klevu.isUndefined(data.name))data.name=klevu.randomFunctionName();if(klevu.isUndefined(data.processor)){return false;}
if(klevu.isUndefined(data.eventTypes)||!klevu.isArray(data.eventTypes)){return false;}
if(klevu.isUndefined(data.processOld))data.processOld=false;klevu.each(data.eventTypes,function(key,eventType){if(!scope.getSetting("events.observers."+eventType,false)){scope.setSetting("events.observers."+eventType,{});}
if(!scope.getSetting("events.observers."+eventType+"."+data.name,false)){scope.setSetting("events.observers."+eventType+"."+data.name,data.processor);}});if(data.processOld){scope.runObserverForOldEvents(data.name,data.eventTypes);}
return true;}});klevu.constructors.get("analytics.collector").chains.runObservers.add({name:"runObservers",fire:function(data,scope){let runProcessor=function(eventData,observerName){let processor=scope.getSetting("events.observers."+eventData.type+"."+observerName,false);if(processor){processor(eventData);return true;}
return false;}
if(klevu.isUndefined(data.observerName)){klevu.each(scope.getSetting("events.observers."+data.eventData.type,{}),function(key,name){runProcessor(data.eventData,key);});}else{return runProcessor(data.eventData,data.observerName);}}});}});klevu.support.hook(["analytics.collector"],function(){klevu.settings.chains.initChain.add({name:"analyticsCollector",fire:function(data,scope){var apiKey=klevu.getGlobalSetting("analytics.apiKey",klevu.getGlobalSetting("search.apiKey",klevu.getGlobalSetting("global.apiKey")));if(!klevu.isUndefined(apiKey)){var powerUp=klevu.getGlobalSetting("powerUp.analyticsCollector");if((!klevu.isUndefined(powerUp)&&powerUp===false))return;if(klevu.getObjectPath(data,"flags.analyticsCollector.build",false))return;klevu.setObjectPath(data,"flags.analyticsCollector.build",true);klevu.analytics.collector.setApiKey(apiKey);}}});});if(!klevu.support.isActive("analytics.collector")){klevu.extend(true,klevu,{analytics:{collector:klevu.constructors.construct("analytics.collector"),}});klevu.support.register({name:"analytics.collector",loaded:true,active:true,dependency:["core.constructors","core.lib"]});}
klevu.support.hook(["analytics.collector"],function(){klevu.settings.chains.initChain.add({name:"analyticsCollector",fire:function(data,scope){var apiKey=klevu.getGlobalSetting("analytics.apiKey",klevu.getGlobalSetting("search.apiKey",klevu.getGlobalSetting("global.apiKey")));if(!klevu.isUndefined(apiKey)){var powerUp=klevu.getGlobalSetting("powerUp.analyticsCollector");if((!klevu.isUndefined(powerUp)&&powerUp===false))return;if(klevu.getObjectPath(data,"flags.analyticsCollector.build",false))return;klevu.setObjectPath(data,"flags.analyticsCollector.build",true);klevu.analytics.collector.setApiKey(apiKey);}}});});})(klevu);(function(klevu){klevu.support.hook(["analytics.collector"],function(){if(!klevu.support.isActive("analytics.dataExtract")){klevu.extend(true,klevu.analytics,{dataExtract:{processors:{product:{"variantId":function(item){return(!(klevu.isUndefined(item.variantId))?item.variantId:item.id);},"itemGroupId":function(item){return((!(klevu.isUndefined(item.itemGroupId))&&(item.itemGroupId!==""))?item.itemGroupId:item.id);},"type":function(item){return item.typeOfRecord;},"position":function(item){return item.key;}}},addProcessor:function(type,attribute,functionToRun){let dataToMerge={};klevu.setObjectPath(dataToMerge,type+"."+attribute,functionToRun);klevu.extend(true,klevu.analytics.dataExtract.processors,dataToMerge);},getProcessor:function(type,attribute){let processor=new Function("item","return item['"+attribute+"'];");return klevu.getObjectPath(klevu.analytics.dataExtract.processors,type+"."+attribute,processor);},search:{product:function(product){let returnProduct={};let baseFields=["id","variantId","itemGroupId","name","salePrice","price","startPrice","toPrice","basePrice","currency","brand","category","klevu_category","position","url","sku","rating","typeOfRecord"]
baseFields=klevu.toUniqueArray(klevu.makeArray(klevu.getGlobalSetting("analytics.product.fields",[]),baseFields));klevu.each(baseFields,function(key,field){returnProduct[field]=klevu.analytics.dataExtract.getProcessor("product",field)(product);});return returnProduct;},item:function(item){let returnItem=false;switch(item.typeOfRecord){case"KLEVU_PRODUCT":returnItem=klevu.analytics.dataExtract.search.product(item);break;}
return returnItem;},queryFromScope:function(scope,queryName){let returnObject={foundRequest:false,foundResponse:false,request:{},response:{}}
if(klevu.isUndefined(queryName))queryName=klevu.getObjectPath(scope.data,"context.section",false);if(!queryName){return returnObject;}
var reqQueries=klevu.getObjectPath(scope.data,"request.current.recordQueries",false);if(!reqQueries){reqQueries=klevu.getObjectPath(scope.data,"request.original.recordQueries");}
if(reqQueries){let reqQueryObj=reqQueries.filter(function(obj){return obj.id===queryName;})[0];if(reqQueryObj){returnObject.foundRequest=true;returnObject.request=reqQueryObj;}}
var resQueries=klevu.getObjectPath(scope.data,"response.current.queryResults",false);if(resQueries){let resQueryObj=resQueries.filter(function(obj){return obj.id===queryName;})[0];if(resQueryObj){returnObject.foundResponse=true;returnObject.response=resQueryObj;}}
return returnObject;},itemsFromScope:function(scope){let queryData=klevu.analytics.dataExtract.search.queryFromScope(scope);let returnItems=[];if(queryData.foundResponse){let offset=klevu.getObjectPath(queryData,"response.meta.offset",0);klevu.each(klevu.getObjectPath(queryData,"response.records",[]),function(key,item){item.key=key+1;item.offset=offset;let itemProcessed=klevu.analytics.dataExtract.search.item(item);if(!!itemProcessed)returnItems.push(itemProcessed);});}
return returnItems;},itemByIdFromScope:function(productId,scope){let queryData=klevu.analytics.dataExtract.search.queryFromScope(scope);let returnItems=[];if(queryData.foundResponse){let offset=klevu.getObjectPath(queryData,"response.meta.offset",0);klevu.each(klevu.getObjectPath(queryData,"response.records",[]),function(key,item){item.key=key+1;item.offset=offset;if(item.id===productId){let itemProcessed=klevu.analytics.dataExtract.search.item(item);if(!!itemProcessed)returnItems.push(itemProcessed);}});}
return returnItems;},metaFromScope:function(scope){let analyticsMetaOptions={searchedTerm:klevu.getObjectPath(scope.data,"context.termOriginal",""),categoryName:"",categoryPath:"",pageNumber:"",pageStartsFrom:"",src:"",limit:"",sort:"",totalResults:"0",typeOfQuery:"WILDCARD_AND",isPersonalised:false};let queryData=klevu.analytics.dataExtract.search.queryFromScope(scope);if(queryData.foundRequest){analyticsMetaOptions.categoryName=klevu.getObjectPath(queryData.request,"settings.query.categoryPath","");analyticsMetaOptions.limit=klevu.getObjectPath(queryData.request,"settings.limit","");analyticsMetaOptions.sort=klevu.getObjectPath(queryData.request,"settings.sort","");analyticsMetaOptions.src="[[typeOfRecord:"+klevu.getObjectPath(queryData.request,"settings.typeOfRecords.0","KLEVU_PRODUCT")+"]]";analyticsMetaOptions.typeOfRecords=klevu.getObjectPath(queryData.request,"settings.typeOfRecords",["KLEVU_PRODUCT"]).join(",");if(analyticsMetaOptions.categoryName!==""){let abTestData=klevu.getObjectPath(klevu.extensions,"abTest.catnav."+analyticsMetaOptions.categoryName.toLowerCase(),false);if(abTestData){analyticsMetaOptions.abTestId=abTestData.abTestId;analyticsMetaOptions.abTestVariantId=abTestData.abTestVariantId;analyticsMetaOptions.abTestSource=abTestData.sourceId.toLowerCase();}
analyticsMetaOptions.categoryPath=analyticsMetaOptions.categoryName;analyticsMetaOptions.categoryName=analyticsMetaOptions.categoryName?analyticsMetaOptions.categoryName.split(";").pop():"";}
analyticsMetaOptions.isPersonalised=klevu.getObjectPath(queryData.request,"settings.personalisation.enablePersonalisation",false);}
if(queryData.foundResponse){analyticsMetaOptions.totalResults=klevu.getObjectPath(queryData.response,"meta.totalResultsFound","0");analyticsMetaOptions.typeOfQuery=klevu.getObjectPath(queryData.response,"meta.typeOfSearch","WILDCARD_AND");analyticsMetaOptions.pageNumber=Math.ceil(klevu.getObjectPath(queryData.response,"meta.offset",0)/ klevu.getObjectPath(queryData.response,"meta.noOfResults",1))+1;if(analyticsMetaOptions.categoryName!==""){analyticsMetaOptions.pageStartsFrom=klevu.getObjectPath(queryData.response,"meta.offset",0);}}
return analyticsMetaOptions;},filtersFromScope:function(scope){let queryData=klevu.analytics.dataExtract.search.queryFromScope(scope);let filters={activeFilters:false,activeFiltersString:"",allFilters:[]};if(queryData.foundResponse){filters.allFilters=klevu.getObjectPath(queryData.response,"filters",[]);let selectedFiltersStr="";let isAnyFilterSelected=false;klevu.each(filters.allFilters,function(key,filter){if(filter.type=="SLIDER"){if(filter.start!==null&&typeof filter.start!=="undefined"&&filter.end!==null&&typeof filter.end!=="undefined"){if(filter.start!=filter.min||filter.end!=filter.max){if(isAnyFilterSelected){selectedFiltersStr+=";;";}
isAnyFilterSelected=true;selectedFiltersStr+=filter.key+":"+filter.start+" - "+filter.end;}}}else{klevu.each(filter.options,function(key,option){if(option.selected){if(isAnyFilterSelected){selectedFiltersStr+=";;";}
isAnyFilterSelected=true;selectedFiltersStr+=filter.key+":"+option.name;}});}});selectedFiltersStr+="";if(isAnyFilterSelected){filters.activeFilters=true;filters.activeFiltersString=selectedFiltersStr;}}
return filters;}},general:{bannerClick:function(event_data){},}},});klevu.support.register({name:"analytics.dataExtract",loaded:true,active:true,dependency:["analytics.collector"]});}});})(klevu);(function(klevu){klevu.support.hook(["analytics.collector","analytics.utility"],function(){if(!klevu.support.isActive("analytics.processors")){klevu.extend(true,klevu.analytics,{processors:{helpers:{buildAnalyticsEvent:function(settings){let analyticsEvent={payload:settings.payload,type:settings.type,url:klevu.getGlobalSetting("url.analyticsCollect",'https://stats.ksearchnet.com/analytics/'),apiKey:klevu.getObjectPath(settings.eventSource,"apiKey",klevu.getGlobalSetting("search.apiKey",klevu.getGlobalSetting("global.apiKey"))),key:settings.type+"_"+klevu.getObjectPath(settings,"id",klevu.randomId())};return analyticsEvent;}},product:{helpers:{buildAnalyticsEvent:function(settings){let analyticsEvent={payload:settings.payload,type:settings.type,url:klevu.getGlobalSetting("url.analyticsCollect",'https://stats.ksearchnet.com/analytics/'),apiKey:klevu.getObjectPath(settings.eventSource,"apiKey",klevu.getGlobalSetting("search.apiKey",klevu.getGlobalSetting("global.apiKey"))),key:settings.type+"_"+settings.itemId};return analyticsEvent;}},click:function(eventSource){let settingsAnalytics={type:"product_click",eventSource:eventSource,payload:{},itemId:0}
let product=klevu.getObjectPath(eventSource,"data.items.0",{});let analyticsTermOptions={klevu_keywords:klevu.getObjectPath(eventSource,"data.meta.searchedTerm","*"),klevu_pageNumber:klevu.getObjectPath(eventSource,"data.meta.pageNumber",""),klevu_src:klevu.getObjectPath(eventSource,"data.meta.src",""),klevu_limit:klevu.getObjectPath(eventSource,"data.meta.limit",""),klevu_sort:klevu.getObjectPath(eventSource,"data.meta.sort",""),klevu_totalResults:klevu.getObjectPath(eventSource,"data.meta.totalResults","0"),klevu_typeOfQuery:klevu.getObjectPath(eventSource,"data.meta.typeOfQuery","WILDCARD_AND")};analyticsTermOptions.klevu_productId=klevu.getObjectPath(product,"id",0);if(klevu.getObjectPath(product,"itemGroupId",false)){analyticsTermOptions.klevu_productGroupId=klevu.getObjectPath(product,"itemGroupId",false);}
analyticsTermOptions.klevu_productVariantId=klevu.getObjectPath(product,"variantId",false);analyticsTermOptions.klevu_productName=klevu.getObjectPath(product,"name",false);analyticsTermOptions.klevu_productUrl=klevu.getObjectPath(product,"url",false);settingsAnalytics.id=klevu.getObjectPath(product,"id",0);let scopes=klevu.getObjectPath(eventSource,"scope","").split(",");let storedImpressionPayload;klevu.each(scopes,function(key,scope){switch(scope){case"quick":if(klevu.getObjectPath(eventSource,"data.filters.activeFilters",false)){analyticsTermOptions.klevu_keywords+=" [["+klevu.getObjectPath(eventSource,"data.filters.activeFiltersString","")+"]]";}
analyticsTermOptions.klevu_src=analyticsTermOptions.klevu_src.replace("]]",";;template:quick-search]]");settingsAnalytics.payload=analyticsTermOptions;settingsAnalytics.type="search_product_click";storedImpressionPayload=klevu.analytics.processors.helpers.buildAnalyticsEvent(settingsAnalytics);klevu.analytics.utility.addAnalyticsEventsToStorage(storedImpressionPayload);break;case"landing":analyticsTermOptions.klevu_src="[[typeOfRecord:"+klevu.getObjectPath(product,"typeOfRecord","KLEVU_PRODUCT")+";;template:landing]]";if(klevu.getObjectPath(eventSource,"data.filters.activeFilters",false)){analyticsTermOptions.klevu_keywords+=" [["+klevu.getObjectPath(eventSource,"data.filters.activeFiltersString","")+"]]";analyticsTermOptions.klevu_src=analyticsTermOptions.klevu_src.replace("]]",";;source:filters]]");}
settingsAnalytics.payload=analyticsTermOptions;settingsAnalytics.type="search_product_click";storedImpressionPayload=klevu.analytics.processors.helpers.buildAnalyticsEvent(settingsAnalytics);klevu.analytics.utility.addAnalyticsEventsToStorage(storedImpressionPayload);break;case"catnav":analyticsTermOptions.klevu_src="[[typeOfRecord:"+klevu.getObjectPath(product,"typeOfRecord","KLEVU_PRODUCT")+";;template:"+klevu.getObjectPath(eventSource,"data.meta.srcTemplateName","category")+"]]";if(klevu.getObjectPath(eventSource,"data.filters.activeFilters",false)){analyticsTermOptions.klevu_activeFilters=klevu.getObjectPath(eventSource,"data.filters.activeFiltersString","");analyticsTermOptions.klevu_src=analyticsTermOptions.klevu_src.replace("]]",";;source:filters]]");}
analyticsTermOptions.klevu_categoryName=klevu.getObjectPath(eventSource,"data.meta.categoryName","");analyticsTermOptions.klevu_categoryPath=klevu.getObjectPath(eventSource,"data.meta.categoryPath","");analyticsTermOptions.klevu_abTestId=klevu.getObjectPath(eventSource,"data.meta.abTestId","");analyticsTermOptions.klevu_abTestVariantId=klevu.getObjectPath(eventSource,"data.meta.abTestVariantId","");analyticsTermOptions.klevu_abTestSource=klevu.getObjectPath(eventSource,"data.meta.abTestSource","");let products=klevu.getObjectPath(eventSource,"data.originalItems",[]);if(products.length>0){let productIdsList=[];klevu.each(products,function(key,value){if(value.id){productIdsList.push(value.id);}});analyticsTermOptions.klevu_productIds=productIdsList.join(",");}
analyticsTermOptions.klevu_productRatings=klevu.getObjectPath(product,"rating",0)
analyticsTermOptions.klevu_productPosition=klevu.getObjectPath(eventSource,"data.meta.pageStartsFrom",0);analyticsTermOptions.klevu_salePrice=klevu.getObjectPath(product,"salePrice",0)
analyticsTermOptions.klevu_productSku=klevu.getObjectPath(product,"sku",false)
delete analyticsTermOptions.klevu_keywords;settingsAnalytics.payload=analyticsTermOptions;settingsAnalytics.type="catnav_product_click";storedImpressionPayload=klevu.analytics.processors.helpers.buildAnalyticsEvent(settingsAnalytics);klevu.analytics.utility.addAnalyticsEventsToStorage(storedImpressionPayload);break;}});},personalisedClick:function(eventSource){let settingsAnalytics={type:"personalised_product_click",eventSource:eventSource,payload:{},itemId:0}
let product=klevu.getObjectPath(eventSource,"data.items.0",{});let analyticsTermOptions={klevu_src:klevu.getObjectPath(eventSource,"data.meta.src",""),klevu_source:klevu.getObjectPath(eventSource,"data.meta.source",""),klevu_recentsearch:klevu.getObjectPath(eventSource,"data.meta.recentsearch","")};analyticsTermOptions.klevu_productId=klevu.getObjectPath(product,"id",0);if(klevu.getObjectPath(product,"itemGroupId",false)){analyticsTermOptions.klevu_productGroupId=klevu.getObjectPath(product,"itemGroupId",false);}
analyticsTermOptions.klevu_productVariantId=klevu.getObjectPath(product,"variantId",false);analyticsTermOptions.klevu_productName=klevu.getObjectPath(product,"name",false);analyticsTermOptions.klevu_productUrl=klevu.getObjectPath(product,"url",false);analyticsTermOptions.klevu_rank=klevu.getObjectPath(eventSource,"data.meta.rank","")
settingsAnalytics.id=klevu.getObjectPath(product,"id",0);let scopes=klevu.getObjectPath(eventSource,"scope","").split(",");let storedImpressionPayload;settingsAnalytics.payload=analyticsTermOptions;settingsAnalytics.type="personalised_product_click";storedImpressionPayload=klevu.analytics.processors.helpers.buildAnalyticsEvent(settingsAnalytics);klevu.analytics.utility.addAnalyticsEventsToStorage(storedImpressionPayload);klevu.each(scopes,function(key,scope){switch(scope){case"quick":break;case"landing":break;case"catnav":break;}});},view:function(eventSource){},buy:function(eventSource){},},search:{term:function(eventSource){let settingsAnalytics={type:"search_term",eventSource:eventSource,payload:{}}
let analyticsTermOptions={klevu_term:klevu.getObjectPath(eventSource,"data.meta.searchedTerm","*"),klevu_originalTerm:klevu.getObjectPath(eventSource,"data.meta.originalTerm",""),klevu_pageNumber:klevu.getObjectPath(eventSource,"data.meta.pageNumber",""),klevu_src:klevu.getObjectPath(eventSource,"data.meta.src",""),klevu_limit:klevu.getObjectPath(eventSource,"data.meta.limit",""),klevu_sort:klevu.getObjectPath(eventSource,"data.meta.sort",""),klevu_totalResults:klevu.getObjectPath(eventSource,"data.meta.totalResults","0"),klevu_typeOfQuery:klevu.getObjectPath(eventSource,"data.meta.typeOfQuery","WILDCARD_AND")};let isQuick=false;let scopes=klevu.getObjectPath(eventSource,"scope","").split(",");klevu.each(scopes,function(key,scope){switch(scope){case"quick":isQuick=true;if(klevu.getObjectPath(eventSource,"data.filters.activeFilters",false)){analyticsTermOptions.klevu_term+=" [["+klevu.getObjectPath(eventSource,"data.filters.activeFiltersString","")+"]]";}
analyticsTermOptions.klevu_src=analyticsTermOptions.klevu_src.replace("]]",";;template:quick-search]]");break;case"landing":analyticsTermOptions.klevu_src=analyticsTermOptions.klevu_src.replace("]]",";;template:landing]]");if(klevu.getObjectPath(eventSource,"data.filters.activeFilters",false)){analyticsTermOptions.klevu_term+=" [["+klevu.getObjectPath(eventSource,"data.filters.activeFiltersString","")+"]]";analyticsTermOptions.klevu_src=analyticsTermOptions.klevu_src.replace("]]",";;source:filters]]");}
break;}});settingsAnalytics.payload=analyticsTermOptions;let storedImpressionPayload=klevu.analytics.processors.helpers.buildAnalyticsEvent(settingsAnalytics);klevu.analytics.utility.addAnalyticsEventsToStorage(storedImpressionPayload);klevu.analytics.utility.sendAnalyticsEventsFromStorage();if(!klevu.isUndefined(klevu.analyticsUtil.base)&&klevu.isFunction(klevu.analyticsUtil.base.sendGaDataForTerm)&&isQuick&&!klevu.support.isActive("analytics.gtmProcessor")){klevu.analyticsUtil.base.sendGaDataForTerm(analyticsTermOptions);}},},catNav:{view:function(eventSource){let settingsAnalytics={type:"catnav_view",eventSource:eventSource,payload:{}}
let analyticsTermOptions={klevu_categoryName:klevu.getObjectPath(eventSource,"data.meta.categoryName",""),klevu_categoryPath:klevu.getObjectPath(eventSource,"data.meta.categoryPath",""),klevu_pageNumber:klevu.getObjectPath(eventSource,"data.meta.pageNumber",""),klevu_src:klevu.getObjectPath(eventSource,"data.meta.src",""),klevu_limit:klevu.getObjectPath(eventSource,"data.meta.limit",""),klevu_sort:klevu.getObjectPath(eventSource,"data.meta.sort",""),klevu_totalResults:klevu.getObjectPath(eventSource,"data.meta.totalResults","0"),klevu_typeOfQuery:klevu.getObjectPath(eventSource,"data.meta.typeOfQuery","WILDCARD_AND")};let products=klevu.getObjectPath(eventSource,"data.items",[]);if(products.length>0){let productIdsList=[];klevu.each(products,function(key,value){if(value.id){productIdsList.push(value.id);}});analyticsTermOptions.klevu_productIds=productIdsList.join(",");}
let scopes=klevu.getObjectPath(eventSource,"scope","").split(",");klevu.each(scopes,function(key,scope){switch(scope){case"catnav":analyticsTermOptions.klevu_src=analyticsTermOptions.klevu_src.replace("]]",";;template:category]]");if(klevu.getObjectPath(eventSource,"data.filters.activeFilters",false)){analyticsTermOptions.klevu_activeFilters=klevu.getObjectPath(eventSource,"data.filters.activeFiltersString","");analyticsTermOptions.klevu_src=analyticsTermOptions.klevu_src.replace("]]",";;source:filters]]");}
analyticsTermOptions.klevu_abTestId=klevu.getObjectPath(eventSource,"data.meta.abTestId","");analyticsTermOptions.klevu_abTestVariantId=klevu.getObjectPath(eventSource,"data.meta.abTestVariantId","");analyticsTermOptions.klevu_abTestSource=klevu.getObjectPath(eventSource,"data.meta.abTestSource","");break;}});settingsAnalytics.payload=analyticsTermOptions;let storedImpressionPayload=klevu.analytics.processors.helpers.buildAnalyticsEvent(settingsAnalytics);klevu.analytics.utility.addAnalyticsEventsToStorage(storedImpressionPayload);klevu.analytics.utility.sendAnalyticsEventsFromStorage();},},recs:{helpers:{convertEventItems:function(items){let convertedItems=[];klevu.each(items,function(key,item){convertedItems.push({"item_id":item.id,"item_name":item.name,"price":item.salePrice,"currency":item.currency,"item_brand":item.brand,"item_category":item.category,"item_variant_id":(!(klevu.isUndefined(item.variantId))?item.variantId:item.id),"item_group_id":((!(klevu.isUndefined(item.itemGroupId))&&(item.itemGroupId!==""))?item.itemGroupId:item.id),"index":(key+1),"quantity":1});});return convertedItems;},buildAnalyticsEventData:function(eventSource,items){return{"tags":klevu.getObjectPath(eventSource,"data.general.tags",[]),"list_id":klevu.getObjectPath(eventSource,"data.general.list_id",false),"list_name":klevu.getObjectPath(eventSource,"data.general.list_name",false),"list_logic":klevu.getObjectPath(eventSource,"data.general.list_logic",false),"spot_id":klevu.getObjectPath(eventSource,"data.general.spot_id",false),"spot_name":klevu.getObjectPath(eventSource,"data.general.spot_name",false),"segment_id":klevu.getObjectPath(eventSource,"data.general.segment_id",false),"segment_name":klevu.getObjectPath(eventSource,"data.general.segment_name",false),"action":klevu.getObjectPath(eventSource,"data.general.action",false),"items":items}},buildAnalyticsEvent:function(settings){let impressionPayload={"event":settings.type,"event_apikey":klevu.getObjectPath(settings.eventSource,"apiKey",false),"user_profile":klevu.getObjectPath(settings.eventSource,"user",{}),"event_data":klevu.analytics.processors.recs.helpers.buildAnalyticsEventData(settings.eventSource,settings.items)};let analyticsEvent={payload:impressionPayload,type:"collect",url:klevu.getGlobalSetting("url.analyticsCollect",'https://stats.ksearchnet.com/analytics/'),apiKey:klevu.getObjectPath(settings.eventSource,"apiKey",klevu.getGlobalSetting("search.apiKey",klevu.getGlobalSetting("global.apiKey"))),key:settings.type+"_"+klevu.getObjectPath(settings.eventSource,"data.general.recs_key",klevu.randomId()),override:true};return analyticsEvent;}},click:function(eventSource){let settingsAnalytics={type:"select_recs_list",eventSource:eventSource,items:[]}
let eventItems=klevu.getObjectPath(eventSource,"data.items",[]);if(eventItems&&eventItems.length){settingsAnalytics.items=klevu.analytics.processors.recs.helpers.convertEventItems(eventItems);}
if(klevu.analytics.utility.hasAnalyticsEventByName(settingsAnalytics.type+"_"+klevu.getObjectPath(eventSource,"data.general.recs_key",klevu.randomId()))){let storedClickObject=klevu.analytics.utility.getAnalyticsEventByName(settingsAnalytics.type+"_"+klevu.getObjectPath(event_data,"data.general.recs_key",klevu.randomId()));let storedClickedItems=klevu.getObjectPath(storedClickObject,"payload.items",[]);if(storedClickedItems.length>0){settingsAnalytics.items=klevu.toUniqueArray(klevu.makeArray(storedClickedItems,settingsAnalytics.items));}}
let storedImpressionPayload=klevu.analytics.processors.recs.helpers.buildAnalyticsEvent(settingsAnalytics);storedImpressionPayload.override=true;if(settingsAnalytics.items.length>0){klevu.analytics.utility.addAnalyticsEventsToStorage(storedImpressionPayload);}},view:function(eventSource){let settingsAnalytics={type:"view_recs_list",eventSource:eventSource,items:[]}
let eventItems=klevu.getObjectPath(eventSource,"data.items",[]);if(eventItems&&eventItems.length){settingsAnalytics.items=klevu.analytics.processors.recs.helpers.convertEventItems(eventItems);}
let storedImpressionPayload=klevu.analytics.processors.recs.helpers.buildAnalyticsEvent(settingsAnalytics);if(settingsAnalytics.items.length>0){klevu.analytics.utility.addAnalyticsEventsToStorage(storedImpressionPayload);}
if(settingsAnalytics.items.length>0){klevu.analytics.utility.sendAnalyticsEventsFromStorage();}},staticView:function(eventSource){let settingsAnalytics={type:"view_recs_list",eventSource:eventSource,static_content:[]}
let storedImpressionPayload=klevu.analytics.processors.recs.helpers.buildAnalyticsEvent(settingsAnalytics);let activeStaticContent=klevu.getObjectPath(eventSource,"data.activeStaticContent",[]);storedImpressionPayload.payload.event_data.static_content=activeStaticContent;if(storedImpressionPayload.payload.event_data.static_content.length){klevu.analytics.utility.addAnalyticsEventsToStorage(storedImpressionPayload);klevu.analytics.utility.sendAnalyticsEventsFromStorage();}},staticClick:function(eventSource){let settingsAnalytics={type:"select_recs_list",eventSource:eventSource,static_content:[]}
let storedImpressionPayload=klevu.analytics.processors.recs.helpers.buildAnalyticsEvent(settingsAnalytics);storedImpressionPayload.payload.event_data.static_content=klevu.getObjectPath(settingsAnalytics,"eventSource.data.staticContent",[]);klevu.analytics.utility.addAnalyticsEventsToStorage(storedImpressionPayload);}},general:{bannerClick:function(event_data){},}},});klevu.analytics.collector.registerObserver({name:"analytics",processOld:true,eventTypes:["recommendation_view"],processor:klevu.analytics.processors.recs.view});klevu.analytics.collector.registerObserver({name:"analytics",processOld:true,eventTypes:["recommendation_click"],processor:klevu.analytics.processors.recs.click});klevu.analytics.collector.registerObserver({name:"analytics",processOld:true,eventTypes:["search_term"],processor:klevu.analytics.processors.search.term});klevu.analytics.collector.registerObserver({name:"analytics",processOld:true,eventTypes:["search_catview"],processor:klevu.analytics.processors.catNav.view});klevu.analytics.collector.registerObserver({name:"analytics",processOld:true,eventTypes:["search_product_click"],processor:klevu.analytics.processors.product.click});klevu.analytics.collector.registerObserver({name:"analytics",processOld:true,eventTypes:["personalised_product_click"],processor:klevu.analytics.processors.product.personalisedClick});klevu.analytics.collector.registerObserver({name:"analytics",processOld:true,eventTypes:["recommendation_view_static"],processor:klevu.analytics.processors.recs.staticView});klevu.analytics.collector.registerObserver({name:"analytics",processOld:true,eventTypes:["recommendation_click_static"],processor:klevu.analytics.processors.recs.staticClick});klevu.support.register({name:"analytics.processors",loaded:true,active:true,dependency:["analytics.base","analytics.collector","analytics.extractor"]});}});})(klevu);(function(klevu){var kmcModulesLoader={listOfModules:klevu.chain({stopOnFalse:true}),addProcessors:function(){var processors=klevu.assets.getProcessors();if(klevu.isUndefined(processors.jsModule)){klevu.assets.addProcessor({type:"jsKmcModule",fire:function(data,options){klevu.extensions.kmcModulesLoader.loadCounter++;var processors=klevu.assets.getProcessors();var returns=processors.js(data,options);if(klevu.extensions.kmcModulesLoader.loadCounter===options.totalToLoad){klevu.extensions.kmcModulesLoader.resourcesLoaded=true;}
return returns;}});}},loadKmcModules:function(apiKey){klevu.extensions.kmcModulesLoader.addProcessors();klevu.extensions.kmcModulesLoader.resourceLoadInitiated=true;klevu.extensions.kmcModulesLoader.loadCounter=0;var scope={makeRequests:true};var data={scriptList:[],apiKey:apiKey,};var chain=klevu.extensions.kmcModulesLoader.listOfModules;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope);chain.setData(data);chain.fire();}
data.scriptList.forEach(function(scriptObj){klevu.assets.getFile({url:scriptObj.src,type:"jsKmcModule",totalToLoad:data.scriptList.length});});},build:true,resourcesLoaded:false,resourceLoadInitiated:false};klevu.extend(true,klevu,{extensions:{kmcModulesLoader:kmcModulesLoader,}});klevu.extensions.kmcModulesLoader.listOfModules.add({name:"klaviyoScript",fire:function(data,scope){var klaviyoEnabled=klevu.search.modules.kmcInputs.base.getDataPath("klevu_connectors.klaviyo.enabled",false);if(!klaviyoEnabled)return;var componentDomain=klevu.getGlobalSetting("url.componentUrl",false);var scriptToLoad={src:(componentDomain?componentDomain:"https://js.klevu.com/components/")+"klaviyo/v2/klaviyo.js"}
data.scriptList.push(scriptToLoad);}});klevu.extensions.kmcModulesLoader.listOfModules.add({name:"klaviyoUserScript",fire:function(data,scope){var klaviyoSegmentsEnabled=klevu.search.modules.kmcInputs.base.getDataPath("klevu_connectors.klaviyo.segmentEnabled",false);if(!klaviyoSegmentsEnabled)return;var componentDomain=klevu.getGlobalSetting("url.componentUrl",false);var scriptToLoad={src:(componentDomain?componentDomain:"https://js.klevu.com/components/")+"klaviyo/v2/segments.js"}
data.scriptList.push(scriptToLoad);}});klevu.extensions.kmcModulesLoader.listOfModules.add({name:"shopifyScript",fire:function(data,scope){var ShopifyEnabled=klevu.search.modules.kmcInputs.base.getDataPath("klevu_connectors.shopify.enabled",false);if(!klevu.isUndefined(window.Shopify))ShopifyEnabled=true;if(!ShopifyEnabled)return;var componentDomain=klevu.getGlobalSetting("url.componentUrl",false);var scriptToLoad={src:(componentDomain?componentDomain:"https://js.klevu.com/components/")+"shopify/v2/shopify.js"}
data.scriptList.push(scriptToLoad);}});klevu.extensions.kmcModulesLoader.listOfModules.add({name:"gtmScript",fire:function(data,scope){var gtmEnabled=klevu.search.modules.kmcInputs.base.getDataPath("klevu_connectors.gtm.enabled",false);if(!gtmEnabled)return;var componentDomain=klevu.getGlobalSetting("url.componentUrl",false);var scriptToLoad={src:(componentDomain?componentDomain:"https://js.klevu.com/components/")+"gtm/v2/gtm.js"}
data.scriptList.push(scriptToLoad);}});})(klevu);klevu.settings.chains.initChain.add({name:"kmcModulesLoaderKmcCheck",fire:function(data,scope){var powerUp=klevu.getGlobalSetting("powerUp.kmcModulesLoader");if((!klevu.isUndefined(powerUp)&&powerUp===false))return;var kmcGlobalLoaded=klevu.getGlobalSetting("kmc.loaded");if((!klevu.isUndefined(kmcGlobalLoaded)&&kmcGlobalLoaded===true)){klevu.setObjectPath(data,"powerUp.kmcModulesLoader",true);}}});klevu.settings.chains.initChain.add({name:"kmcModulesLoaderPowerUp",fire:function(data,scope){var apiKey=klevu.getGlobalSetting("search.apiKey",klevu.getGlobalSetting("global.apiKey"));if(!klevu.isUndefined(apiKey)){var powerUp=klevu.getGlobalSetting("powerUp.kmcModulesLoader");if((!klevu.isUndefined(powerUp)&&powerUp===false))return;if(powerUp!==true)return;klevu.setObjectPath(data,"powerUp.kmcModulesLoader",false);var kmcModulesLoader=klevu.getObjectPath(klevu.extensions,"kmcModulesLoader.resourcesLoaded");if((!klevu.isUndefined(kmcModulesLoader)&&kmcModulesLoader===true))return;klevu.extensions.kmcModulesLoader.loadKmcModules(apiKey);}}});(function(klevu){klevu.extend({moiEvents:{}});klevu.extend(true,klevu.moiEvents,{filters:{moiFiltersClick:function(value,scope){klevu.event.attach(value,"click",function(event){event=event||window.event;var data={elem:this,event:event};var chain=klevu.moiEvents.chains.filters.clickChain;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope);chain.setData(data);chain.fire();}});},},product:{moiProductIntent:function(value,scope){klevu.event.attach(value,"click",function(event){event=event||window.event;var data={elem:this,event:event};var chain=klevu.moiEvents.chains.product.intentChain;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope);chain.setData(data);chain.fire();}});},moiProductClick:function(value,scope){klevu.event.attach(value,"click",function(event){event=event||window.event;var data={elem:this,event:event};var chain=klevu.moiEvents.chains.product.clickChain;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope);chain.setData(data);chain.fire();}});},},menu:{moiMenuClick:function(value,scope){klevu.event.attach(value,"click",function(event){event=event||window.event;var data={elem:this,event:event};var chain=klevu.moiEvents.chains.menu.clickChain;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope);chain.setData(data);chain.fire();}});},toggleMoiMenu:function(event){event=event||window.event;event.preventDefault();if(this.classList.contains(klevu.getSetting(this.moiScope.settings,"settings.moi.activeClass"))){klevu.moiEvents.menu.closeMoiMenu(this);}else{klevu.moiEvents.menu.openMoiMenu(this);}},openMoiMenu:function(scope){var data={elem:this,};var chain=klevu.moiEvents.chains.menu.openChain;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope);chain.setData(data);chain.fire();}},closeMoiMenu:function(scope){var data={elem:this,};var chain=klevu.moiEvents.chains.menu.closeChain;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope);chain.setData(data);chain.fire();}}},buttons:{moiButtonsClick:function(value,scope){klevu.event.attach(value,"click",function(event){event=event||window.event;var data={elem:this,event:event};var chain=klevu.moiEvents.chains.menu.clickChain;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope);chain.setData(data);chain.fire();}});},},forms:{moiFormSubmit:function(value,scope){klevu.event.attach(value,"submit",function(event){event=event||window.event;var dataForChain={elem:this,event:event,};var chain=klevu.moiEvents.chains.forms.submitChain;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope);chain.setData(dataForChain);chain.fire();}});}},display:{fixView:function(scope){var chain=klevu.moiEvents.chains.display.fixViewChain;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope);chain.setData({resize:true});chain.fire();}},executeChain:function(chain,data,scope){let chainObject=klevu.getObjectPath(klevu.moiEvents,chain);if(!klevu.isUndefined(chainObject)&&chainObject.list().length!==0){chainObject.setScope(scope);chainObject.setData(data);chainObject.fire();}},scrollToBottom:function(event){let chatList=klevu.dom.getFirst(klevu.getSetting(klevu.getGlobalSetting("moi.box",klevu.moi.base).getScope().settings,"settings.moi.chatList")+"[data-chat='"+klevu.getGlobalSetting("moi.box",klevu.moi.base).getScope().mode.mode+"']",klevu.getGlobalSetting("moi.box",klevu.moi.base).getScope().target);let container=klevu.dom.helpers.getClosest(chatList,".ksMoiScrollableContent")
container.scrollTop=container.scrollHeight;},openMoi:function(event){event=event||window.event;let data={event:event,flags:{initHistoryOnOpen:true}};let scope=this.moiScope.element;klevu.moiEvents.display.executeChain("chains.navigation.openChain",data,scope);},forceOpenMoi:function(){let scope=klevu.getGlobalSetting("moi.container").moiScope.element;let data={flags:{initHistoryOnOpen:true,dispatchEventFocus:true,setState:true,setOverrideFocus:true,maximiseChat:true}};klevu.moiEvents.display.executeChain("chains.navigation.openChain",data,scope);},closeMoi:function(event){event=event||window.event;let data={event:event};let scope=this.moiScope.target;klevu.moiEvents.display.executeChain("chains.navigation.closeChain",data,scope);},forceCloseMoi:function(){let scope=klevu.getGlobalSetting("moi.container").moiScope.element;let data={flags:{setState:true,setOverrideFocus:true}};klevu.moiEvents.display.executeChain("chains.navigation.closeChain",data,scope);},safeCloseMoi:function(){let scope=klevu.getGlobalSetting("moi.container").moiScope.element;let data={flags:{setState:true}};klevu.moiEvents.display.executeChain("chains.navigation.closeChain",data,scope);},minimiseToggleChat:function(event){let scope=klevu.getGlobalSetting("moi.container").moiScope.element;let data={flags:{toggle:true}};klevu.moiEvents.display.executeChain("chains.navigation.toggleChain",data,scope);},minimiseChat:function(event){let scope=klevu.getGlobalSetting("moi.container").moiScope.element;let data={flags:{minimize:true}};klevu.moiEvents.display.executeChain("chains.navigation.toggleChain",data,scope);},maximiseChat:function(event){let scope=klevu.getGlobalSetting("moi.container").moiScope.element;let data={flags:{maximize:true}};klevu.moiEvents.display.executeChain("chains.navigation.toggleChain",data,scope);},activateChat:function(data,scope){var chain=klevu.moiEvents.chains.display.activateChatChain;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope);chain.setData(data);chain.fire();}},activateGeneralChat:function(){let scope=klevu.getGlobalSetting("moi.box",klevu.moi.base).getScope().target;let context={mode:"general"};klevu.moiEvents.display.activateChat(context,scope);}},overlay:{init:function(type,renderData,scope){renderData=klevu.extend(true,renderData,{settings:{imageLocation:klevu.getGlobalSetting("moi.imageLocation","https://js.klevu.com/components/moi/v2/images")}})
if(type=="product"){klevu.moiEvents.overlay.renderProduct(renderData,scope);if(!klevu.isUndefined(klevu.moiEvents.overlay.productShortDesc))klevu.moiEvents.overlay.productShortDesc(scope);}
if(type=="customerSupport"){klevu.moiEvents.overlay.renderCustomerSupport(renderData,scope);}
if(type=="feedback"){klevu.moiEvents.overlay.renderFeedback(renderData,scope);}
if(!klevu.isUndefined(klevu.moiEvents)&&!klevu.isUndefined(klevu.moiEvents.overlay))klevu.moiEvents.overlay.cancelLink(scope);if(!klevu.isUndefined(klevu.moiEvents)&&!klevu.isUndefined(klevu.moiEvents.overlay))klevu.moiEvents.overlay.show(scope);},renderProduct:function(renderData,scope){var productContent=klevu.dom.getFirst(klevu.getSetting(scope.moiScope.settings,"settings.moi.productBlockContent"),renderData);scope.moiScope.template.setData({product:renderData.dataset["id"]});var tpl=scope.moiScope.template.convertTemplate(scope.moiScope.template.render("productOverlay"));klevu.dom.getFirst(klevu.getSetting(scope.moiScope.settings,"settings.moi.overlayProductBlock"),tpl).innerHTML=productContent.innerHTML;klevu.dom.getFirst(klevu.getSetting(scope.moiScope.settings,"settings.moi.overlayContent"),scope.moiScope.target).innerHTML=tpl.innerHTML;klevu.each(klevu.dom.find(klevu.getSetting(scope.moiScope.settings,"settings.moi.productDirectLink"),klevu.dom.getFirst(klevu.getSetting(scope.moiScope.settings,"settings.moi.overlayContent"),scope.moiScope.target)),function(key,value){if(!klevu.isUndefined(klevu.moiEvents)&&!klevu.isUndefined(klevu.moiEvents.product))klevu.moiEvents.product.moiProductClick(value,scope);});},renderCustomerSupport:function(renderData,scope){scope.moiScope.template.setData(renderData);var tpl=scope.moiScope.template.convertTemplate(scope.moiScope.template.render("customerSupportOverlay"));klevu.dom.getFirst(klevu.getSetting(scope.moiScope.settings,"settings.moi.overlayContent"),scope.moiScope.target).innerHTML=tpl.innerHTML;klevu.each(klevu.dom.find(klevu.getSetting(scope.moiScope.settings,"settings.moi.overlayForm"),klevu.dom.getFirst(klevu.getSetting(scope.moiScope.settings,"settings.moi.overlayContent"),scope.moiScope.target)),function(key,value){if(!klevu.isUndefined(klevu.moiEvents)&&!klevu.isUndefined(klevu.moiEvents.forms))klevu.moiEvents.forms.moiFormSubmit(value,scope);});},renderFeedback:function(renderData,scope){scope.moiScope.template.setData(renderData);var tpl=scope.moiScope.template.convertTemplate(scope.moiScope.template.render("feedbackOverlay"));klevu.dom.getFirst(klevu.getSetting(scope.moiScope.settings,"settings.moi.overlayContent"),scope.moiScope.target).innerHTML=tpl.innerHTML;klevu.each(klevu.dom.find(klevu.getSetting(scope.moiScope.settings,"settings.moi.overlayForm"),klevu.dom.getFirst(klevu.getSetting(scope.moiScope.settings,"settings.moi.overlayContent"),scope.moiScope.target)),function(key,value){if(!klevu.isUndefined(klevu.moiEvents)&&!klevu.isUndefined(klevu.moiEvents.forms))klevu.moiEvents.forms.moiFormSubmit(value,scope);});},cancelLink:function(scope){klevu.each(klevu.dom.find(klevu.getSetting(scope.moiScope.settings,"settings.moi.overlayClose"),klevu.dom.getFirst(klevu.getSetting(scope.moiScope.settings,"settings.moi.overlay"),scope.moiScope.target)),function(key,value){klevu.event.attach(value,"click",function(event){event.preventDefault();if(!klevu.isUndefined(klevu.moiEvents)&&!klevu.isUndefined(klevu.moiEvents.overlay))klevu.moiEvents.overlay.hide(scope);});});},hide:function(scope){klevu.dom.getFirst(klevu.getSetting(scope.moiScope.settings,"settings.moi.overlay"),scope.moiScope.target).style.display="none";},show:function(scope){klevu.dom.getFirst(klevu.getSetting(scope.moiScope.settings,"settings.moi.overlay"),scope.moiScope.target).style.display="block";}},message:{openCloseExplain:function(value,scope){klevu.event.attach(value,"click",function(event){event=event||window.event;var data={elem:this,event:event};var chain=klevu.moiEvents.chains.message.toggleExplainChain;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope);chain.setData(data);chain.fire();}});},submitMessage:function(event){event=event||window.event;var dataForChain={elem:klevu.dom.getFirst(".ksMoiInputField[data-chat='"+this.moiScope.mode.mode+"']",this),event:event,};var chain=klevu.moiEvents.chains.message.submitMessageChain;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(this.moiScope.element);chain.setData(dataForChain);chain.fire();}},keyUp:function(event){event=event||window.event;var dataForChain={elem:this,event:event,};var chain=klevu.moiEvents.chains.message.keyUpChain;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(this.moiScope.element);chain.setData(dataForChain);chain.fire();}},},init:{setState:function(state){klevu({component:{moi:{state:state}}});klevu.moiEvents.init.saveStateToStorage(state);},setOverrideFocus:function(state){klevu({component:{moi:{overrideFocus:state}}});klevu.moiEvents.init.saveOverrideFocusToStorage(state);},getState:function(){return klevu.getGlobalSetting("component.moi.state",false);},getOverrideFocus:function(){return klevu.getGlobalSetting("component.moi.overrideFocus",false);},loadDataFromStorage:function(){var moiDictionary=klevu.dictionary("moiData");moiDictionary.setStorage("session");moiDictionary.mergeFromGlobal();return moiDictionary;},saveStateToStorage:function(state){var moiDictionary=klevu.moiEvents.init.loadDataFromStorage();moiDictionary.addElement("state",state);moiDictionary.overrideGlobal();},saveOverrideFocusToStorage:function(state){var moiDictionary=klevu.moiEvents.init.loadDataFromStorage();moiDictionary.addElement("overrideFocus",state);moiDictionary.overrideGlobal();},bindTyping:function(moiObject){var elementInput=moiObject.getScope().element;klevu.event.attach(elementInput,"focus",klevu.moiEvents.display.scrollToBottom,true);klevu.event.attach(elementInput,"blur",klevu.moiEvents.display.scrollToBottom,true);if(elementInput.form){elementInput.form.moiObject=moiObject;elementInput.form.moiScope=elementInput.form.moiObject.getScope();elementInput.form.moiElem=elementInput.form.moiObject.getScope().element;klevu.event.attach(moiObject.getScope().element.form,"submit",klevu.moiEvents.message.submitMessage,true);klevu.moiEvents.init.initChatHistory(moiObject,true);}},reInitCache:function(moiObject){var apiKey=klevu.getGlobalSetting("moi.apiKey",klevu.getGlobalSetting("global.apiKey"));moiObject.getScope().history=klevu.dictionary("moiCache_"+apiKey);moiObject.getScope().history.setStorage("session");moiObject.getScope().history.mergeFromGlobal();if(moiObject.getScope().history.getElement("sessionId")!=="sessionId")klevu.setSetting(moiObject.getScope().settings,"settings.moi.sessionId",moiObject.getScope().history.getElement("sessionId"));},initChatHistory:function(moiObject,isPageLoad){if(isPageLoad){if(!klevu.getSetting(moiObject.getScope().settings,"settings.moi.initOnPageLoad",false)||klevu.getGlobalSetting("flags.moi.initChat",false)){return false;}}else{if(klevu.getGlobalSetting("flags.moi.initChat",false)){return false;}}
klevu.moiEvents.init.reInitCache(moiObject);var moiHistory=moiObject.getScope().history.getElement("chat");if(moiHistory==="chat"){moiHistory=new Array();}else{moiHistory=JSON.parse(moiHistory);}
if(moiHistory.length===0){klevu.event.fireChain(moiObject.getScope().element.moiScope,"chains.events.send",moiObject.getScope().element,moiObject.getScope().element.moiScope.data,null);}else{var chain=klevu.getObjectPath(moiObject.getScope().element.moiScope,"chains.process.processLine");var chainMessage=klevu.getObjectPath(moiObject.getScope().element.moiScope,"chains.process.display");var chainMessageEvents=klevu.getObjectPath(moiObject.getScope().element.moiScope,"chains.process.events");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(moiObject.getScope().element);chainMessage.setScope(moiObject.getScope().element);chainMessageEvents.setScope(moiObject.getScope().element);klevu.each(moiHistory,function(key,value){if(value.type==="message"){var displayData=value.data;displayData.fromHistory=true;if(!klevu.isUndefined(chainMessage)&&chainMessage.list().length!==0){chainMessage.setData(displayData);chainMessage.fire();}
if(!klevu.isUndefined(chainMessageEvents)&&chainMessageEvents.list().length!==0){var eventData={eventType:"message",message:displayData.message,note:displayData.note,explain:displayData.explain,tpl:displayData.tpl};chainMessageEvents.setData(eventData);chainMessageEvents.fire();}}else if(value.type==="filter"||value.type==="products"){value.data.fromHistory=true;var lineData=value.data;chain.setData(lineData);chain.fire();}});}
var menuOptions=moiObject.getScope().history.getElement("menuOptions");if(menuOptions!=="menuOptions"){menuOptions=JSON.parse(menuOptions);menuOptions.line.fromHistory=true;var lineData=menuOptions;chain.setData(lineData);chain.fire();}
var genericOptions=moiObject.getScope().history.getElement("genericOptions");if(genericOptions!=="genericOptions"){genericOptions=JSON.parse(genericOptions);genericOptions.line.fromHistory=true;var lineData=genericOptions;chain.setData(lineData);chain.fire();}}
klevu({flags:{moi:{initChat:true}}});}}});klevu.extend(true,klevu.moiEvents,{chains:{filters:{clickChain:klevu.chain({stopOnFalse:true,webhook:{name:"chains.filters.click"}})},product:{intentChain:klevu.chain({stopOnFalse:true,webhook:{name:"chains.product.intent"}}),clickChain:klevu.chain({stopOnFalse:true,webhook:{name:"chains.product.click"}})},menu:{clickChain:klevu.chain({stopOnFalse:true,webhook:{name:"chains.menu.click"}}),openChain:klevu.chain({stopOnFalse:true,webhook:{name:"chains.menu.open"}}),closeChain:klevu.chain({stopOnFalse:true,webhook:{name:"chains.menu.close"}})},buttons:{clickChain:klevu.chain({stopOnFalse:true,webhook:{name:"chains.buttons.click"}})},forms:{submitChain:klevu.chain({stopOnFalse:true,webhook:{name:"chains.forms.submit"}})},display:{fixViewChain:klevu.chain({stopOnFalse:true,webhook:{name:"chains.display.fixView"}}),activateChatChain:klevu.chain({stopOnFalse:true,webhook:{name:"chains.display.activateChat"}}),},message:{toggleExplainChain:klevu.chain({stopOnFalse:true,webhook:{name:"chains.message.toggleExplain"}}),submitMessageChain:klevu.chain({stopOnFalse:true,webhook:{name:"chains.message.submitMessage"}}),keyUpChain:klevu.chain({stopOnFalse:true,webhook:{name:"chains.message.keyUp"}}),},navigation:{openChain:klevu.chain({stopOnFalse:true,webhook:{name:"chains.navigation.open"}}),closeChain:klevu.chain({stopOnFalse:true,webhook:{name:"chains.navigation.close"}}),toggleChain:klevu.chain({stopOnFalse:true,webhook:{name:"chains.navigation.toggle"}})}}});klevu.moiEvents.chains.message.toggleExplainChain.add({name:"preventDefaultSubmission",fire:function(data,scope){data.event.preventDefault();}});klevu.moiEvents.chains.message.toggleExplainChain.add({name:"preventDefaultSubmission",fire:function(data,scope){var parrent=klevu.dom.helpers.getClosest(data.elem,".kumoimsgContent");parrent.classList.toggle('kumoiExplainOpen');}});klevu.moiEvents.chains.filters.clickChain.add({name:"preventDefaultSubmission",fire:function(data,scope){data.event.preventDefault();}});klevu.moiEvents.chains.filters.clickChain.add({name:"activateFilter",fire:function(data,scope){data.elem.classList.toggle(klevu.getSetting(scope.moiScope.settings,"settings.moi.activeClass"));}});klevu.moiEvents.chains.filters.clickChain.add({name:"collectData",fire:function(data,scope){scope.moiScope.data=scope.moiObject.resetData();var filterValues=[];var filterNames=[];klevu.each(klevu.dom.find(klevu.getSetting(scope.moiScope.settings,"settings.moi.filterAction")+".active",klevu.dom.helpers.getClosest(data.elem,klevu.getSetting(scope.moiScope.settings,"settings.moi.filters"))),function(key,element){filterValues.push(element.dataset.value);filterNames.push(element.innerHTML);});scope.moiScope.data.request.filter.value=filterValues.join(";");if(!scope.moiScope.data.request.filter.value){scope.moiScope.data.request.message=klevu.dom.helpers.getClosest(data.elem,klevu.getSetting(scope.moiScope.settings,"settings.moi.filters")).dataset["chatEmpty"];}else{scope.moiScope.data.request.message=klevu.dom.helpers.getClosest(data.elem,klevu.getSetting(scope.moiScope.settings,"settings.moi.filters")).dataset["chat"].replace(klevu.getSetting(scope.moiScope.settings,"settings.moi.filterSearchReplace"),filterNames.join(klevu.getSetting(scope.moiScope.settings,"settings.moi.filterDelimiterWord")));}
scope.moiScope.data.context.preventDefault=false;}});klevu.moiEvents.chains.filters.clickChain.add({name:"printMessage",fire:function(data,scope){var displayData={displayType:"message",type:klevu.getSetting(scope.moiScope.settings,"settings.moi.rightClass"),message:scope.moiScope.data.request.message,tpl:null};klevu.event.fireChain(scope.moiScope,"chains.process.display",scope.moiScope.element,displayData,data.event);}});klevu.moiEvents.chains.filters.clickChain.add({name:"addLoading",fire:function(data,scope){var displayData={displayType:"loading",type:klevu.getSetting(scope.moiScope.settings,"settings.moi.leftClass"),message:"loading",tpl:null};klevu.event.fireChain(scope.moiScope,"chains.process.display",scope.moiScope.element,displayData,data.event);}});klevu.moiEvents.chains.filters.clickChain.add({name:"send",fire:function(data,scope){klevu.event.fireChain(scope.moiScope,"chains.events.send",scope.moiScope.element,scope.moiScope.data,data.event);}});klevu.moiEvents.chains.product.intentChain.add({name:"preverntDefaultSubmission",fire:function(data,scope){data.event.preventDefault();}});klevu.moiEvents.chains.product.intentChain.add({name:"quickviewIntent",fire:function(data,scope){if(data.elem.dataset["intent"]==="quick-view"){if(!klevu.isUndefined(klevu.moiEvents)&&!klevu.isUndefined(klevu.moiEvents.overlay))klevu.moiEvents.overlay.init("product",klevu.dom.helpers.getClosest(data.elem,klevu.getSetting(scope.moiScope.settings,"settings.moi.productBlock")),scope);return false;}}});klevu.moiEvents.chains.product.intentChain.add({name:"subChatIntent",fire:function(data,scope){if(data.elem.dataset["intent"]==="product-specific-question"){let context={mode:"product-specific-question",className:"Product",url:klevu.dom.getFirst(klevu.getSetting(scope.moiScope.settings,"settings.moi.productDirectLink"),klevu.dom.helpers.getClosest(data.elem,klevu.getSetting(scope.moiScope.settings,"settings.moi.productBlock"))).getAttribute('href'),id:klevu.dom.helpers.getClosest(data.elem,klevu.getSetting(scope.moiScope.settings,"settings.moi.productBlock")).dataset["id"],image:klevu.dom.getFirst(klevu.getSetting(scope.moiScope.settings,"settings.moi.productImage",".ksMoiProductImage"),klevu.dom.helpers.getClosest(data.elem,klevu.getSetting(scope.moiScope.settings,"settings.moi.productBlock"))).getAttribute('src'),name:klevu.dom.getFirst(klevu.getSetting(scope.moiScope.settings,"settings.moi.productName",".ksMoiProductName"),klevu.dom.helpers.getClosest(data.elem,klevu.getSetting(scope.moiScope.settings,"settings.moi.productBlock"))).innerHTML,price:klevu.dom.getFirst(klevu.getSetting(scope.moiScope.settings,"settings.moi.productPrice",".ksMoiProductPrice"),klevu.dom.helpers.getClosest(data.elem,klevu.getSetting(scope.moiScope.settings,"settings.moi.productBlock"))).innerHTML,title:data.elem.dataset["chat"]};klevu.moiEvents.display.activateChat(context,scope);return false;}}});klevu.moiEvents.chains.product.intentChain.add({name:"collectData",fire:function(data,scope){scope.moiScope.data=scope.moiObject.resetData();scope.moiScope.data.request.message=data.elem.dataset["chat"];var prodUrl=klevu.dom.getFirst(klevu.getSetting(scope.moiScope.settings,"settings.moi.productDirectLink"),klevu.dom.helpers.getClosest(data.elem,klevu.getSetting(scope.moiScope.settings,"settings.moi.productBlock")));var productBlock=klevu.dom.helpers.getClosest(data.elem,klevu.getSetting(scope.moiScope.settings,"settings.moi.productBlock"));scope.moiScope.data.request.product={id:productBlock.dataset["id"],intent:data.elem.dataset["intent"],context:{url:prodUrl.getAttribute('href')}};scope.moiScope.data.context.preventDefault=false;}});klevu.moiEvents.chains.product.intentChain.add({name:"printMessage",fire:function(data,scope){var displayData={displayType:"message",type:klevu.getSetting(scope.moiScope.settings,"settings.moi.rightClass"),message:scope.moiScope.data.request.message,tpl:null};klevu.event.fireChain(scope.moiScope,"chains.process.display",scope.moiScope.element,displayData,data.event);}});klevu.moiEvents.chains.product.intentChain.add({name:"addLoading",fire:function(data,scope){var displayData={displayType:"loading",type:klevu.getSetting(scope.moiScope.settings,"settings.moi.leftClass"),message:"loading",tpl:null};klevu.event.fireChain(scope.moiScope,"chains.process.display",scope.moiScope.element,displayData,data.event);}});klevu.moiEvents.chains.product.intentChain.add({name:"send",fire:function(data,scope){klevu.event.fireChain(scope.moiScope,"chains.events.send",scope.moiScope.element,scope.moiScope.data,data.event);}});klevu.moiEvents.chains.product.clickChain.add({name:"preverntDefaultSubmission",fire:function(data,scope){data.event.preventDefault();}});klevu.moiEvents.chains.product.clickChain.add({name:"collectData",fire:function(data,scope){scope.moiScope.data=scope.moiObject.resetData();var prodUrl=klevu.dom.getFirst(klevu.getSetting(scope.moiScope.settings,"settings.moi.productDirectLink"),klevu.dom.helpers.getClosest(data.elem,klevu.getSetting(scope.moiScope.settings,"settings.moi.productBlock")));var productBlock=klevu.dom.helpers.getClosest(data.elem,klevu.getSetting(scope.moiScope.settings,"settings.moi.productBlock"));scope.moiScope.data.request.product={id:productBlock.dataset["id"],intent:"redirect",context:{url:prodUrl.getAttribute('href')}};scope.moiScope.data.context.preventDefault=false;}});klevu.moiEvents.chains.product.clickChain.add({name:"overlayClose",fire:function(data,scope){if(!klevu.isUndefined(klevu.moiEvents)&&!klevu.isUndefined(klevu.moiEvents.overlay))klevu.moiEvents.overlay.hide(scope);}});klevu.moiEvents.chains.product.clickChain.add({name:"send",fire:function(data,scope){klevu.event.fireChain(scope.moiScope,"chains.events.send",scope.moiScope.element,scope.moiScope.data,data.event);}});klevu.moiEvents.chains.buttons.clickChain.add({name:"preverntDefaultSubmission",fire:function(data,scope){data.event.preventDefault();}});klevu.moiEvents.chains.buttons.clickChain.add({name:"collectData",fire:function(data,scope){scope.moiScope.data=scope.moiObject.resetData();scope.moiScope.data.request.message=data.elem.dataset["chat"];scope.moiScope.data.context.preventDefault=false;}});klevu.moiEvents.chains.buttons.clickChain.add({name:"printMessage",fire:function(data,scope){var displayData={displayType:"message",type:klevu.getSetting(scope.moiScope.settings,"settings.moi.rightClass"),message:scope.moiScope.data.request.message,tpl:null};klevu.event.fireChain(scope.moiScope,"chains.process.display",scope.moiScope.element,displayData,data.event);}});klevu.moiEvents.chains.buttons.clickChain.add({name:"message",fire:function(data,scope){if(data.elem.dataset.action==="message"){klevu.event.fireChain(scope.moiScope,"chains.events.send",scope.moiScope.element,scope.moiScope.data,data.event);}}});klevu.moiEvents.chains.buttons.clickChain.add({name:"clearChat",fire:function(data,scope){if(data.elem.dataset.action==="clearChat"){var chain=klevu.getObjectPath(scope.moiScope,"chains.process.actions");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.moiElem);var actionData={type:"clearChat",context:{value:true}};chain.setData(actionData);chain.fire();}}}});klevu.moiEvents.chains.forms.submitChain.add({name:"preverntDefaultSubmission",fire:function(data,scope){data.event.preventDefault();}});klevu.moiEvents.chains.forms.submitChain.add({name:"validation",fire:function(data,scope){var validationPass=true;klevu.each(klevu.dom.find(klevu.getSetting(scope.moiScope.settings,"settings.moi.overlayFormItem"),data.elem),function(key,item){item.classList.remove(klevu.getSetting(scope.moiScope.settings,"settings.moi.overlayFormInvalid"));if(item.dataset.validations!==""){var validations=item.dataset.validations.split("");klevu.each(validations,function(key,validation){switch(validation){case"R":if(item.value===""){item.classList.add(klevu.getSetting(scope.moiScope.settings,"settings.moi.overlayFormInvalid"));validationPass=false;}
break;case"N":if(!klevu.isNumeric(item.value)){item.classList.add(klevu.getSetting(scope.moiScope.settings,"settings.moi.overlayFormInvalid"));validationPass=false;}
break;case"E":var check=/\S+@\S+\.\S+/;if(!check.test(item.value)){item.classList.add(klevu.getSetting(scope.moiScope.settings,"settings.moi.overlayFormInvalid"));validationPass=false;}
break;default:break;}});}});if(!validationPass)return false;}});klevu.moiEvents.chains.forms.submitChain.add({name:"collectData",fire:function(data,scope){scope.moiScope.data=scope.moiObject.resetData();var formData={type:data.elem.dataset["type"],params:[]};klevu.each(klevu.dom.find(klevu.getSetting(scope.moiScope.settings,"settings.moi.overlayFormItem"),data.elem),function(key,item){var addElement=true;if(item.type=="radio"&&item.checked===false)addElement=false;if(addElement){formData.params.push({key:item.name,value:item.value});}});scope.moiScope.data.request.form=formData;scope.moiScope.data.context.preventDefault=false;}});klevu.moiEvents.chains.forms.submitChain.add({name:"closeOverlay",fire:function(data,scope){if(!klevu.isUndefined(klevu.moiEvents)&&!klevu.isUndefined(klevu.moiEvents.overlay))klevu.moiEvents.overlay.hide(scope);}});klevu.moiEvents.chains.forms.submitChain.add({name:"closeMoiMenu",fire:function(data,scope){if(!klevu.isUndefined(klevu.moiEvents)&&!klevu.isUndefined(klevu.moiEvents.menu))klevu.moiEvents.menu.closeMoiMenu(scope);}});klevu.moiEvents.chains.forms.submitChain.add({name:"send",fire:function(data,scope){klevu.event.fireChain(scope.moiScope,"chains.events.send",scope.moiScope.element,scope.moiScope.data,event);}});klevu.moiEvents.chains.menu.clickChain.add({name:"preverntDefaultSubmission",fire:function(data,scope){data.event.preventDefault();}});klevu.moiEvents.chains.menu.clickChain.add({name:"message",fire:function(data,scope){if(data.elem.dataset.action==="message"){scope.moiScope.data=scope.moiObject.resetData();scope.moiScope.data.request.message=data.elem.dataset["chat"];scope.moiScope.data.context.preventDefault=false;var displayData={displayType:"message",type:klevu.getSetting(scope.moiScope.settings,"settings.moi.rightClass"),message:scope.moiScope.data.request.message,tpl:null};klevu.event.fireChain(scope.moiScope,"chains.process.display",scope.moiScope.element,displayData,data.event);var displayDataLoading={displayType:"loading",type:klevu.getSetting(scope.moiScope.settings,"settings.moi.leftClass"),message:scope.moiScope.data.request.message,tpl:null};klevu.event.fireChain(scope.moiScope,"chains.process.display",scope.moiScope.element,displayDataLoading,data.event);klevu.event.fireChain(scope.moiScope,"chains.events.send",scope.moiScope.element,scope.moiScope.data,data.event);}}});klevu.moiEvents.chains.menu.clickChain.add({name:"clearChat",fire:function(data,scope){if(data.elem.dataset.action==="clearChat"){scope.moiScope.data=scope.moiObject.resetData();scope.moiScope.data.request.message=data.elem.dataset["chat"];var chain=klevu.getObjectPath(scope.moiScope,"chains.process.actions");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.moiElem);var actionData={type:"clearChat",context:{value:true}};chain.setData(actionData);chain.fire();}}}});klevu.moiEvents.chains.menu.clickChain.add({name:"customerSupport",fire:function(data,scope){if(data.elem.dataset.action==="customerSupport"){var options=JSON.parse(decodeURIComponent(data.elem.dataset.options));var dataToSend={chat:data.elem.dataset.chat,type:data.elem.dataset.action};if(klevu.isArray(options)&&options.length>0){klevu.each(options,function(index,line){if(line.key){dataToSend[line.key]={value:line.value,validations:line.validations,key:line.key}}});if(!klevu.isUndefined(klevu.moiEvents)&&!klevu.isUndefined(klevu.moiEvents.overlay))klevu.moiEvents.overlay.init("customerSupport",dataToSend,scope);}}}});klevu.moiEvents.chains.menu.clickChain.add({name:"feedback",fire:function(data,scope){if(data.elem.dataset.action==="feedback"){var options=JSON.parse(decodeURIComponent(data.elem.dataset.options));var dataToSend={chat:data.elem.dataset.chat,type:data.elem.dataset.action};if(klevu.isArray(options)&&options.length>0){klevu.each(options,function(index,line){if(line.key){dataToSend[line.key]={value:line.value,validations:line.validations,key:line.key}}});if(!klevu.isUndefined(klevu.moiEvents)&&!klevu.isUndefined(klevu.moiEvents.overlay))klevu.moiEvents.overlay.init("feedback",dataToSend,scope);}}}});klevu.moiEvents.chains.menu.clickChain.add({name:"closeMenu",fire:function(data,scope){if(data.elem.dataset.action!=="feedback"&&data.elem.dataset.action!=="customerSupport"){if(!klevu.isUndefined(klevu.moiEvents)&&!klevu.isUndefined(klevu.moiEvents.menu))klevu.moiEvents.menu.closeMoiMenu(scope);}}});klevu.moiEvents.chains.menu.openChain.add({name:"openMoiMenu",fire:function(data,scope){var element=klevu.dom.getFirst(klevu.getSetting(scope.moiScope.settings,"settings.moi.menuBox"),scope.moiScope.target);var clickItem=klevu.dom.getFirst(klevu.getSetting(scope.moiScope.settings,"settings.moi.menuBoxButton"),scope.moiScope.target);element.classList.add(klevu.getSetting(scope.moiScope.settings,"settings.moi.activeClass"));clickItem.classList.add(klevu.getSetting(scope.moiScope.settings,"settings.moi.activeClass"));}});klevu.moiEvents.chains.menu.closeChain.add({name:"closeMoiMenu",fire:function(data,scope){var element=klevu.dom.getFirst(klevu.getSetting(scope.moiScope.settings,"settings.moi.menuBox"),scope.moiScope.target);var clickItem=klevu.dom.getFirst(klevu.getSetting(scope.moiScope.settings,"settings.moi.menuBoxButton"),scope.moiScope.target);element.classList.remove(klevu.getSetting(scope.moiScope.settings,"settings.moi.activeClass"));clickItem.classList.remove(klevu.getSetting(scope.moiScope.settings,"settings.moi.activeClass"));}});klevu.moiEvents.chains.display.fixViewChain.add({name:"resizeChat",fire:function(data,scope){klevu.moiEvents.display.scrollToBottom();}});klevu.moiEvents.chains.display.activateChatChain.add({name:"toggleChat",fire:function(data,scope){klevu.each(klevu.dom.find(".ksMoiChatWraper",scope.target),function(key,element){element.classList.remove('active');});klevu.dom.getFirst(".ksMoiChatWraper[data-chat='"+data.mode+"']",scope.target).classList.add('active');}});klevu.moiEvents.chains.display.activateChatChain.add({name:"checkIfChatIsProduct",fire:function(data,scope){if(data.mode==="product-specific-question"){scope.moiScope.mode.url=data.url;scope.moiScope.mode.id=data.id;scope.moiScope.mode.mode=data.mode;scope.moiScope.template.setData(data);let tpl=scope.moiScope.template.convertTemplate(scope.moiScope.template.render("secondChatHeader"));klevu.dom.getFirst(".ksMoiChatWraper[data-chat='"+data.mode+"'] .kumoi"+data.className+"ChatHeader"+data.className,scope.target).innerHTML=tpl.innerHTML;let input=klevu.dom.getFirst(".ksMoiChatWraper[data-chat='"+data.mode+"'] .ksMoiInputField[data-chat='"+data.mode+"']",scope.target);input.placeholder=input.dataset.placeholder;klevu.dom.getFirst(".ksMoiChatWraper[data-chat='"+data.mode+"'] .kumoi"+data.className+"ChatHeaderTitle",scope.target).innerHTML=data.title;var targetElements=klevu.dom.find(klevu.getSetting(scope.moiScope.settings,"settings.moi.chatList")+"[data-chat='"+scope.moiScope.mode.mode+"']"+"> div",scope.moiScope.target);klevu.each(targetElements,function(key,elem){elem.parentNode.removeChild(elem);});}}});klevu.moiEvents.chains.display.activateChatChain.add({name:"checkIfChatIsGeneral",fire:function(data,scope){if(data.mode==="general"){delete scope.moiScope.mode.url;delete scope.moiScope.mode.id;scope.moiScope.mode.mode="general";}}});klevu.moiEvents.chains.message.submitMessageChain.add({name:"preverntDefaultSubmission",fire:function(data,scope){data.event.preventDefault();}});klevu.moiEvents.chains.message.submitMessageChain.add({name:"closeOverlay",fire:function(data,scope){if(!klevu.isUndefined(klevu.moiEvents)&&!klevu.isUndefined(klevu.moiEvents.overlay))klevu.moiEvents.overlay.hide(scope);}});klevu.moiEvents.chains.message.submitMessageChain.add({name:"checkForEmpty",fire:function(data,scope){if(data.elem.value==="")return false;}});klevu.moiEvents.chains.message.submitMessageChain.add({name:"collectData",fire:function(data,scope){scope.moiScope.data=scope.moiObject.resetData();scope.moiScope.data.request.message=data.elem.value;scope.moiScope.data.context.preventDefault=false;data.elem.value="";}});klevu.moiEvents.chains.message.submitMessageChain.add({name:"checkForMode",fire:function(data,scope){scope.moiScope.data.context.mode=data.elem.dataset.chat;if(scope.moiScope.data.context.mode==="product-specific-question"){scope.moiScope.data.context.id=scope.moiScope.mode.id;scope.moiScope.data.context.productUrl=scope.moiScope.mode.url;}}});klevu.moiEvents.chains.message.submitMessageChain.add({name:"printMessage",fire:function(data,scope){var displayData={displayType:"message",type:klevu.getSetting(scope.moiScope.settings,"settings.moi.rightClass"),message:scope.moiScope.data.request.message,tpl:null};klevu.event.fireChain(scope.moiScope,"chains.process.display",scope.moiScope.element,displayData,data.event);}});klevu.moiEvents.chains.message.submitMessageChain.add({name:"addLoading",fire:function(data,scope){var displayData={displayType:"loading",type:klevu.getSetting(scope.moiScope.settings,"settings.moi.leftClass"),message:"loading",tpl:null};klevu.event.fireChain(scope.moiScope,"chains.process.display",scope.moiScope.element,displayData,data.event);}});klevu.moiEvents.chains.message.submitMessageChain.add({name:"send",fire:function(data,scope){klevu.event.fireChain(scope.moiScope,"chains.events.send",scope.moiScope.element,scope.moiScope.data,data.event);}});klevu.moiEvents.chains.navigation.openChain.add({name:"eventPrevent",fire:function(data,scope){if(klevu.getObjectPath(data,"event",false)){data.event.preventDefault();}}});klevu.moiEvents.chains.navigation.openChain.add({name:"initChatHistory",fire:function(data,scope){if(klevu.getObjectPath(data,"flags.initHistoryOnOpen",true)){klevu.moiEvents.init.initChatHistory(scope.moiObject,false);}}});klevu.moiEvents.chains.navigation.openChain.add({name:"addActiveClass",fire:function(data,scope){scope.moiScope.target.classList.add(klevu.getSetting(scope.moiScope.settings,"settings.moi.activeClass"));}});klevu.moiEvents.chains.navigation.openChain.add({name:"fixView",fire:function(data,scope){if(klevu.getObjectPath(klevu.moiEvents,"display.fixView",false)){klevu.moiEvents.display.fixView(scope.moiScope.element);}}});klevu.moiEvents.chains.navigation.openChain.add({name:"dispatchEventFocus",fire:function(data,scope){if(klevu.getObjectPath(data,"flags.dispatchEventFocus",true)){let element=scope.moiScope.target;let eventType="onfocusin"in element?"focusin":"focus",bubbles="onfocusin"in element,event;if("createEvent"in document){event=document.createEvent("Event");event.initEvent(eventType,bubbles,true);}
else if("Event"in window){event=new Event(eventType,{bubbles:bubbles,cancelable:true});}
if(klevu.getSetting(scope.moiScope.settings,"settings.moi.focusOnActive",false)){klevu.dom.getFirst("#message",element).focus();klevu.dom.getFirst("#message",element).dispatchEvent(event);}}}});klevu.moiEvents.chains.navigation.openChain.add({name:"setState",fire:function(data,scope){if(klevu.getObjectPath(data,"flags.setState",true)){klevu.moiEvents.init.setState(true);}}});klevu.moiEvents.chains.navigation.openChain.add({name:"setOverrideFocus",fire:function(data,scope){if(klevu.getObjectPath(data,"flags.setOverrideFocus",true)){klevu.moiEvents.init.setOverrideFocus(true);}}});klevu.moiEvents.chains.navigation.openChain.add({name:"positionContainer",fire:function(data,scope){if(!klevu.isUndefined(scope.moiScope.activeQuick)&&klevu.getGlobalSetting("moi.displayInQuick",false)){var position,leftPosition,topPosition,searchBoxWidth,searchBoxHeight,screenWidth,screenHeight,minLtrWidth,halfScreen,divHeight;var getScreenWidth=function(){var doc=document,docBody=doc.body,docElem=doc.documentElement,win=window,viewportWidth=0,documentWidth,viewportHeight;if(typeof win.innerWidth!=='undefined'){viewportWidth=win.innerWidth;}
if(typeof(docBody.clientWidth)=='number'){documentWidth=docBody.clientWidth;}else if(typeof docElem!='undefined'&&typeof docElem.clientWidth!='undefined'&&docElem.clientWidth!=0){documentWidth=docElem.clientWidth;}else{documentWidth=doc.getElementsByTagName('body')[0].clientWidth}
return(documentWidth>=(viewportWidth-17))?documentWidth:viewportWidth;};var getScreenHeight=function(){var doc=document,docBody=doc.body,docElem=doc.documentElement,win=window,viewportWidth,viewportHeight;if(typeof win.innerHeight!=='undefined'){viewportHeight=win.innerHeight;}else if(typeof(docBody.clientHeight)=='number'){viewportHeight=docBody.clientHeight;}else if(typeof docElem!='undefined'&&typeof docElem.clientHeight!='undefined'&&docElem.clientHeight!=0){viewportHeight=docElem.clientHeight;}else{viewportHeight=doc.getElementsByTagName('body')[0].clientHeight}
return viewportHeight;};var getSearchBoxPosition=function(searchBox){var _x=0,_y=0,currEl=searchBox,style,position,doc=document,body=doc.body,fixedPosition=false,oldOffsetTop=0,win=window;while(currEl&&currEl.tagName.toLowerCase()!=='body'){if(!win.getComputedStyle){win.getComputedStyle=function(searchBox,pseudo){this.searchBox=searchBox;this.getPropertyValue=function(prop){var re=/(\-([a-z]){1})/g;if(prop==='float'){prop='styleFloat';}
if(re.test(prop)){prop=prop.replace(re,function(){return arguments[2].toUpperCase();});}
return searchBox.currentStyle[prop]?searchBox.currentStyle[prop]:null;}
return this;}}
style=win.getComputedStyle(currEl,null);if(style){position=style.getPropertyValue('position');if(position==='fixed'){fixedPosition=true;break;}else{currEl=currEl.parentNode;}}else{currEl=currEl.parentNode;}}
var change=1,scrollTop=(win.pageYOffset!==undefined)?win.pageYOffset:(doc.documentElement||body.parentNode||body).scrollTop;while(searchBox&&!isNaN(searchBox.offsetLeft)&&!isNaN(searchBox.offsetTop)){_x+=searchBox.offsetLeft-searchBox.scrollLeft;if(fixedPosition&&change===1){_y+=searchBox.offsetTop+scrollTop;change=0;}else{_y+=searchBox.offsetTop;}
searchBox=searchBox.offsetParent;}
return{top:_y,left:_x};};screenWidth=getScreenWidth();screenHeight=getScreenHeight();if(screenWidth<640)return;position=getSearchBoxPosition(scope.moiScope.activeQuick.kScope.element);topPosition=position.top;leftPosition=position.left;searchBoxWidth=scope.moiScope.activeQuick.kScope.element.offsetWidth;searchBoxHeight=scope.moiScope.activeQuick.kScope.element.offsetHeight;halfScreen=screenWidth / 2;minLtrWidth=searchBoxWidth;let divTop=searchBoxHeight+topPosition+'px';let divRight,divLeft;if(leftPosition+klevu.getGlobalSetting("moi.sizeOfChat",scope.moiScope.target.clientWidth)>=halfScreen){divRight=screenWidth-(leftPosition+searchBoxWidth)+'px';divLeft='auto';}else{divRight='auto';divLeft=leftPosition+'px';}
divHeight=Math.floor(screenHeight*0.8)+'px';var target=klevu.getSetting(scope.moiScope.settings,"settings.moi.containerTarget");klevu.dom.getFirst(".moiContainer",target).style="position:absolute;top:"+divTop+";left: "+divLeft+";right: "+divRight+";height:"+divHeight;}}});klevu.moiEvents.chains.navigation.openChain.add({name:"setToMaximise",fire:function(data,scope){if(klevu.getObjectPath(data,"flags.maximiseChat",true)&&klevu.getGlobalSetting("moi.displayInQuick",false)){klevu.moiEvents.display.maximiseChat();}}});klevu.moiEvents.chains.navigation.closeChain.add({name:"eventPrevent",fire:function(data,scope){if(!klevu.isUndefined(data.event)){data.event.preventDefault();}}});klevu.moiEvents.chains.navigation.closeChain.add({name:"removeActiveClass",fire:function(data,scope){scope.moiScope.target.classList.remove(klevu.getSetting(scope.moiScope.settings,"settings.moi.activeClass"));}});klevu.moiEvents.chains.navigation.closeChain.add({name:"setState",fire:function(data,scope){if(klevu.getObjectPath(data,"flags.setState",true)){klevu.moiEvents.init.setState(false);}}});klevu.moiEvents.chains.navigation.closeChain.add({name:"setOverrideFocus",fire:function(data,scope){if(klevu.getObjectPath(data,"flags.setOverrideFocus",true)){klevu.moiEvents.init.setOverrideFocus(false);}}});klevu.moiEvents.chains.navigation.closeChain.add({name:"tryToRefocus",fire:function(data,scope){if(!klevu.isUndefined(scope.moiScope.activeQuick)&&klevu.getGlobalSetting("moi.displayInQuick",false)){try{scope.moiScope.activeQuick.focus();}catch(e){}}}});klevu.moiEvents.chains.navigation.toggleChain.add({name:"checksForWindowSearch",fire:function(data,scope){if(!klevu.getGlobalSetting("moi.displayInQuick",false)){if(scope.moiScope.target.classList.contains("active")&&klevu.getObjectPath(data,"flags.toggle",false)){if(klevu.getObjectPath(data,"flags.toggle",false)){scope.moiScope.target.classList.toggle('moiMinimized');}else if(klevu.getObjectPath(data,"flags.maximize",false)){scope.moiScope.target.classList.remove('moiMinimized');}else if(klevu.getObjectPath(data,"flags.minimize",false)){scope.moiScope.target.classList.add('moiMinimized');}}}}});klevu.moiEvents.chains.navigation.toggleChain.add({name:"checksForInSearch",fire:function(data,scope){if(scope.moiScope.target.classList.contains("active")&&klevu.getGlobalSetting("moi.displayInQuick",false)){if(klevu.getObjectPath(data,"flags.minimize",false)){scope.moiScope.target.classList.remove('active');}
if(klevu.getObjectPath(data,"flags.maximize",false)){scope.moiScope.target.classList.add('active');}}}});klevu.extend({moiObjectBuild:function(){var localVariables={settings:{},webhookSettings:{run:true,object:"moi",scope:"all,base"}};klevu.setObjectPath(localVariables,"id",klevu.randomId());klevu.setObjectPath(localVariables,"history",klevu.dictionary("moiCache"));localVariables.history.setStorage("session");localVariables.history.mergeFromGlobal();klevu.setSetting(localVariables.settings,"settings.moi.lastMessage",(klevu.time.timestamp()-3600));if(localVariables.history.getElement("sessionId")!=="sessionId")klevu.setSetting(localVariables.settings,"settings.moi.sessionId",localVariables.history.getElement("sessionId"));klevu.setObjectPath(localVariables,"template",klevu.template());localVariables.template.setWebhookSettings({run:localVariables.webhookSettings.run,object:localVariables.webhookSettings.object,scope:localVariables.webhookSettings.scope});klevu.setObjectPath(localVariables,"chains.actions.doMoi",klevu.chain({stopOnFalse:true,webhook:{name:"chains.actions.doMoi"}}));klevu.setObjectPath(localVariables,"chains.actions.finalise",klevu.chain({stopOnFalse:true,webhook:{name:"chains.actions.finalise"}}));klevu.setObjectPath(localVariables,"chains.events.send",klevu.chain({stopOnFalse:true,webhook:{name:"chains.events.send"}}));klevu.setObjectPath(localVariables,"chains.request.control",klevu.chain({stopOnFalse:true,webhook:{name:"chains.request.control"}}));klevu.setObjectPath(localVariables,"chains.request.build",klevu.chain({stopOnFalse:true,webhook:{name:"chains.request.build"}}));klevu.setObjectPath(localVariables,"chains.request.send",klevu.chain({stopOnFalse:true,webhook:{name:"chains.request.send"}}));klevu.setObjectPath(localVariables,"chains.request.ajax.send",klevu.chain({stopOnFalse:true,webhook:{name:"chains.request.ajax.send"}}));klevu.setObjectPath(localVariables,"chains.request.fetch.send",klevu.chain({stopOnFalse:true,webhook:{name:"chains.request.fetch.send"}}));klevu.setObjectPath(localVariables,"chains.response.success",klevu.chain({stopOnFalse:true,webhook:{name:"chains.response.success"}}));klevu.setObjectPath(localVariables,"chains.response.done",klevu.chain({stopOnFalse:true,webhook:{name:"chains.response.done"}}));klevu.setObjectPath(localVariables,"chains.response.fail",klevu.chain({stopOnFalse:true,webhook:{name:"chains.response.fail"}}));klevu.setObjectPath(localVariables,"chains.process.display",klevu.chain({stopOnFalse:true,webhook:{name:"chains.process.display"}}));klevu.setObjectPath(localVariables,"chains.process.events",klevu.chain({stopOnFalse:true,webhook:{name:"chains.process.events"}}));klevu.setObjectPath(localVariables,"chains.process.processLine",klevu.chain({stopOnFalse:true,webhook:{name:"chains.process.processLine"}}));klevu.setObjectPath(localVariables,"chains.process.render",klevu.chain({stopOnFalse:true,webhook:{name:"chains.process.render"}}));klevu.setObjectPath(localVariables,"chains.process.actions",klevu.chain({stopOnFalse:true,webhook:{name:"chains.process.actions"}}));function init(selfObj){localVariables.element=document.createElement("input");localVariables.element.moiObject=selfObj;localVariables.element.moiScope=localVariables;localVariables.element.moiElem=localVariables.element;localVariables.element.webhookSettings=selfObj.getWebhookSettings();}
function resetData(){var tempData=buildData();localVariables.data.context=tempData.context;localVariables.data.request=tempData.request;localVariables.data.response=tempData.response;localVariables.data.scope=null;return localVariables.data;}
function buildData(){var data={context:{klevuApiKey:null,},request:{context:{sessionId:null,klevuApiKey:null},message:null,filter:{},product:{},form:{}},response:{current:{}},scope:{}};return data;}
localVariables.data=buildData();localVariables.mode={mode:"general"};var selfObj={init:init,resetData:resetData,buildData:buildData,setScope:function(variables){localVariables=variables;return localVariables;},getScope:function(){return localVariables;},setWebhookSettings:function(webhookSettings){if(webhookSettings){localVariables.webhookSettings=klevu.extend(true,localVariables.webhookSettings,webhookSettings);localVariables.template.setWebhookSettings({run:localVariables.webhookSettings.run,object:localVariables.webhookSettings.object,scope:localVariables.webhookSettings.scope});}
return this;},getWebhookSettings:function(){return localVariables.webhookSettings;}};init(selfObj);return selfObj;}});var options={moi:{dateDelay:900,redirectDelay:2000,focusOnActive:false,moiTarget:'.moiContainer',chatList:".ksMoiChatContent",inputBox:'#message',buttonsBox:'.moiButtons',activateButton:'.toggleMoi',menuBox:'.moiMenu',menuBoxButton:'.toggleMoiMenu',products:'div.moiProductSlider',productAction:'a.ksMoiProductAction',productBlock:'.moiProductBlock',productBlockContent:'.moiProductContent',productDirectLink:'a.ksMoiProductLink',productLink:'.moiProductlinks',productSlider:'.moiProductSlidesContainer',productSlide:'.moiSlides',productSliderArrow:'.moiSliderArrowNav',productSliderDots:'.moiSliderdot',filters:'div.kumoifilterList',filterAction:'a.kumoifiltername',buttonAction:'a.kumoifiltername',menuAction:'a.moi-menuOption',leftClass:'fromkumoi',rightClass:'fromUser',filterDelimiterWord:' and ',filterSearchReplace:"$VALUE$",overlay:'.kumoiOverlay',overlayContent:'.kumoiOverlayContent',overlayProductBlock:'.moiQuickViewProductBlock',overlayClose:'.kumoiOverlayClose',closeChat:'.Kumoi-Closeicon',cancelChat:'.ksMoiCancelIcon',minimiseChat:'.ksMoiMinimise',maximiseChat:'.kumoiLogoMinimized',overlayForm:'.moiQuickViewFormContent',overlayFormItem:'.moiQuickViewFormField',overlayFormError:'.moiQuickViewFormErrors',overlayFormInvalid:'invalid',overlayProductShortDesc:".moiProductShortDesc",overlayProductShortDescActive:"ksMoiOpenText",activeClass:'active',inactiveClass:'inactive',disabledClass:'disabled',}};klevu(options);klevu.support.register({name:"moi",loaded:true,active:true,dependency:["core.lib"]});klevu.extensions.kmcModulesLoader.listOfModules.add({name:"moiScript",fire:function(data,scope){var moiEnabled=klevu.search.modules.kmcInputs.base.getDataPath("klevu_moi.enabled",false);if(!moiEnabled)return;var moiTheme=klevu.getGlobalSetting("moi.theme",false);if(!moiTheme){var componentDomain=klevu.getGlobalSetting("url.componentUrl",false);var scriptToLoad={src:(componentDomain?componentDomain:"https://js.klevu.com/components/")+"moi/v2/moi.js"}
data.scriptList.push(scriptToLoad);}else{var scriptToLoad={src:moiTheme}
data.scriptList.push(scriptToLoad);}}});})(klevu);(function(klevu){var baseMoi=klevu.moiObjectBuild();baseMoi.getScope().chains.actions.doMoi.add({name:"doRequest",fire:function(data,scope){data.context.doRequest=false;var chain=klevu.getObjectPath(scope.moiScope,"chains.request.control");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.moiElem);chain.setData(data);chain.fire();scope.moiScope.data=data;}else{data.context.preventDefault=true;scope.moiScope.data=data;return false;}}});baseMoi.getScope().chains.events.send.add({name:"generateURL",fire:function(data,scope){var moiUrl=klevu.getSetting(scope.moiScope.settings,"settings.url.moi","//moi-ai.ksearchnet.com/chat/send");if(moiUrl){data.context.url=moiUrl;}else{return false;}}});baseMoi.getScope().chains.events.send.add({name:"addApiKey",fire:function(data,scope){var apiKey=klevu.getSetting(scope.moiScope.settings,"settings.moi.apiKey",klevu.getGlobalSetting("moi.apiKey",klevu.getGlobalSetting("global.apiKey")));if(!klevu.isUndefined(apiKey)){data.context.apiKey=apiKey;data.request.context.klevuApiKey=apiKey;}else{return false;}
var sessionKey=klevu.getSetting(scope.moiScope.settings,"settings.moi.sessionId",false);if(sessionKey){data.request.context.sessionId=sessionKey;}}});baseMoi.getScope().chains.events.send.add({name:"addExtraContextForProduct",fire:function(data,scope){if(data.context.mode==="product-specific-question"){data.request.context.url=data.context.productUrl;data.request.context.productId=data.context.id;data.request.context.mode=data.context.mode;}}});baseMoi.getScope().chains.events.send.add({name:"doMoi",fire:function(data,scope){var chain=klevu.getObjectPath(scope.moiScope,"chains.actions.doMoi");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.moiElem);chain.setData(data);chain.fire();}
scope.moiScope.data=data;if(data.context.preventDefault===true)return false;}});baseMoi.getScope().chains.request.ajax.send.add({name:"sendRequest",fire:function(data,scope){if(data.context.eventAction!=="moiAjaxV1")return;data.scope=scope;if(data.context.doRequest){klevu.ajax({url:data.context.url,dataType:'json',contentType:"application/json; charset=utf-8",type:"POST",data:JSON.stringify(data.request),crossDomain:true,success:function(klXHR){var chain=klevu.getObjectPath(klXHR.requestDetails.scope.moiScope,"chains.response.success");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(klXHR.requestDetails.scope.moiElem);klXHR.requestDetails.response=klXHR.responseObj.data.data;klXHR.requestDetails.context.status=klXHR.status;klXHR.requestDetails.context.isSuccess=klXHR.isSuccess;chain.setData(klXHR.requestDetails);chain.fire();}},done:function(klXHR){var chain=klevu.getObjectPath(klXHR.requestDetails.scope.moiScope,"chains.response.done");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(klXHR.requestDetails.scope.moiElem);klXHR.requestDetails.response=klXHR.responseObj.data.data;klXHR.requestDetails.context.status=klXHR.status;klXHR.requestDetails.context.isSuccess=klXHR.isSuccess;chain.setData(klXHR.requestDetails);chain.fire();}},error:function(klXHR){var chain=klevu.getObjectPath(klXHR.requestDetails.scope.moiScope,"chains.response.fail");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(klXHR.requestDetails.scope.moiElem);klXHR.requestDetails.response={};klXHR.requestDetails.context.status=klXHR.status;klXHR.requestDetails.context.isSuccess=klXHR.isSuccess;chain.setData(klXHR.requestDetails);chain.fire();}},requestDetails:data});}else{}}});baseMoi.getScope().chains.request.fetch.send.add({name:"sendRequest",fire:function(data,scope){if(data.context.eventAction!=="moiFetchV1")return;data.scope=scope;if(data.context.doRequest){klevu.request({url:data.context.url,type:"FETCH",method:"POST",dataType:'json',contentType:"application/json; charset=utf-8",mimeType:"application/json; charset=UTF-8",data:JSON.stringify(data.request),crossDomain:true,success:function(data,requestDetails,status,isSuccess){var chain=klevu.getObjectPath(requestDetails.scope.kScope,"chains.response.success");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(requestDetails.scope.kElem);klevu.setObjectPath(requestDetails,"response.data",data);klevu.setObjectPath(requestDetails,"context.status",status);klevu.setObjectPath(requestDetails,"context.isSuccess",isSuccess);chain.setData(requestDetails);chain.fire();}},done:function(data,requestDetails,status,isSuccess){var chain=klevu.getObjectPath(requestDetails.scope.kScope,"chains.response.done");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(requestDetails.scope.kElem);klevu.setObjectPath(requestDetails,"response.data",data);klevu.setObjectPath(requestDetails,"context.status",status);klevu.setObjectPath(requestDetails,"context.isSuccess",isSuccess);chain.setData(requestDetails);chain.fire();}},error:function(requestDetails,status,isSuccess){var chain=klevu.getObjectPath(requestDetails.scope.kScope,"chains.response.fail");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(requestDetails.scope.kElem);klevu.setObjectPath(requestDetails,"response.data",{});klevu.setObjectPath(requestDetails,"context.status",status);klevu.setObjectPath(requestDetails,"context.isSuccess",isSuccess);chain.setData(requestDetails);chain.fire();}},requestDetails:data},data);}else{}}});baseMoi.getScope().chains.request.control.add({name:"initRequest",fire:function(data,scope){data.context.doRequest=false;var chain=klevu.getObjectPath(scope.moiScope,"chains.request.build");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.moiElem);chain.setData(data);chain.fire();scope.moiScope.data=data;if(data.context.doRequest===false)return false;}else{data.context.preventDefault=true;scope.moiScope.data=data;return false;}}});baseMoi.getScope().chains.request.control.add({name:"sanitiseRequest",fire:function(data,scope){var requestObj=klevu.clean(data.request);data.request=requestObj;}});baseMoi.getScope().chains.request.control.add({name:"makeRequest",fire:function(data,scope){var chain=klevu.getObjectPath(scope.moiScope,"chains.request.send");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.moiElem);chain.setData(data);chain.fire();scope.moiScope.data=data;return false;}}});baseMoi.getScope().chains.request.build.add({name:"buildMap",fire:function(data,scope){data.context.status=null;data.context.isSuccess=false;data.context.doRequest=true;}});baseMoi.getScope().chains.request.send.add({name:"requestTypeAjaxV1",fire:function(data,scope){if(window.fetch){data.context.eventAction="moiFetchV1";}else{data.context.eventAction="moiAjaxV1";}
data.context.eventAction="moiAjaxV1";}});baseMoi.getScope().chains.request.send.add({name:"requestTypeAjaxSendV1",fire:function(data,scope){if(data.context.eventAction==="moiAjaxV1"){var chain=klevu.getObjectPath(scope.moiScope,"chains.request.ajax.send");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.moiElem);chain.setData(data);chain.fire();scope.moiScope.data=data;return false;}}}});baseMoi.getScope().chains.request.send.add({name:"requestTypeFetchSendV1",fire:function(data,scope){if(data.context.eventAction==="moiFetchV1"){var chain=klevu.getObjectPath(scope.moiScope,"chains.request.fetch.send");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.moiElem);chain.setData(data);chain.fire();scope.moiScope.data=data;return false;}}}});baseMoi.getScope().chains.response.success.add({name:"checkForSuccess",fire:function(data,scope){scope.moiScope.data=data;if(data.context.isSuccess===false){return false;}
data.response=data.response;}});baseMoi.getScope().chains.response.success.add({name:"removeLoading",fire:function(data,scope){if(typeof klevu.dom.getFirst(".loadingRow",scope.moiScope.target).innerHTML!=="undefined"){klevu.dom.helpers.getClosest(klevu.dom.getFirst(".loadingRow",scope.moiScope.target),".klevuWrap").remove()}}});baseMoi.getScope().chains.response.success.add({name:"processByType",fire:function(data,scope){var buttonsBox=klevu.dom.getFirst(".ksMoiChatWraper[data-chat='"+scope.moiScope.mode.mode+"'] "+klevu.getSetting(scope.moiScope.settings,"settings.moi.buttonsBox"),scope.moiScope.target);if(buttonsBox.nodeType==1){buttonsBox.innerHTML="";}
var menuBox=klevu.dom.getFirst(".ksMoiChatWraper[data-chat='"+scope.moiScope.mode.mode+"'] "+klevu.getSetting(scope.moiScope.settings,"settings.moi.menuBox"),scope.moiScope.target);if(menuBox.nodeType==1){menuBox.innerHTML="";}
klevu.each(data.response,function(index,line){if(typeof line==='object'){var chain=klevu.getObjectPath(scope.moiScope,"chains.process.processLine");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.moiElem);var lineData={line:line};chain.setData(lineData);chain.fire();}}});}});baseMoi.getScope().chains.process.actions.add({name:"clearChat",fire:function(data,scope){if(data.type==="clearChat"){if(data.context.value==true){var targetElements=klevu.dom.find(klevu.getSetting(scope.moiScope.settings,"settings.moi.chatList")+"[data-chat='"+scope.moiScope.mode.mode+"']"+"> div",scope.moiScope.target);klevu.each(targetElements,function(key,elem){elem.parentNode.removeChild(elem);});}}}});baseMoi.getScope().chains.process.actions.add({name:"redirectToUrl",fire:function(data,scope){if(data.type==="redirectToUrl"){if(data.context.link!==null){setTimeout(function(){window.location.href=data.context.link;},klevu.getSetting(scope.moiScope.settings,"settings.moi.redirectDelay",2000));}}}});baseMoi.getScope().chains.process.actions.add({name:"openMenu",fire:function(data,scope){if(data.type==="openMenu"){if(data.context.value==true){klevu.dom.getFirst(klevu.getSetting(scope.moiScope.settings,"settings.moi.menuBoxButton"),scope.moiScope.target).click();}}}});baseMoi.getScope().chains.process.actions.add({name:"closeChat",fire:function(data,scope){if(data.type==="closeChat"){if(data.context.value==true){klevu.dom.getFirst(klevu.getSetting(scope.moiScope.settings,"settings.moi.closeChat"),scope.moiScope.target).click();}}}});baseMoi.getScope().chains.process.actions.add({name:"purgeHistory",fire:function(data,scope){if(data.type==="purgeHistory"){if(data.context.value==="purgeHistory"){var moiHistory=scope.moiScope.history.getElement("chat");if(moiHistory==="chat"){moiHistory=new Array();}else{moiHistory=JSON.parse(moiHistory);}
moiHistory=moiHistory.slice(-2);scope.moiScope.history.addElement("chat",JSON.stringify(moiHistory));scope.moiScope.history.mergeToGlobal();var targetElements=klevu.dom.find(klevu.getSetting(scope.moiScope.settings,"settings.moi.chatList")+"[data-chat='"+scope.moiScope.mode.mode+"']"+"> div",scope.moiScope.target);var elementSize=targetElements.length;klevu.each(targetElements,function(key,elem){if((elementSize-2)>key){elem.parentNode.removeChild(elem);}});}}}});baseMoi.getScope().chains.process.display.add({name:"displayDate",fire:function(data,scope){if(data.displayType==="message"||data.displayType==="filter"||data.displayType==="product"){var lastMessage=klevu.getSetting(scope.moiScope.settings,"settings.moi.lastMessage",0);if(!("date"in data)){data.date=klevu.time.timestamp();}
klevu.setSetting(scope.moiScope.settings,"settings.moi.lastMessage",data.date);if((lastMessage+klevu.getSetting(scope.moiScope.settings,"settings.moi.dateDelay"))<(data.date)){var messageDate=new Date(data.date*1000);scope.moiScope.template.setData({message:messageDate.toLocaleDateString("default",{month:"short",day:"numeric",year:"numeric"})+" "+messageDate.toLocaleTimeString(),settings:{imageLocation:klevu.getGlobalSetting("moi.imageLocation","https://js.klevu.com/components/moi/v2/images")}});var renderData={type:"line",tpl:scope.moiScope.template.convertTemplate(scope.moiScope.template.render("date"))};var chain=klevu.getObjectPath(scope.moiScope,"chains.process.render");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.moiElem);chain.setData(renderData);chain.fire();}}}}});baseMoi.getScope().chains.process.display.add({name:"displayMessage",fire:function(data,scope){if(data.displayType==="message"){scope.moiScope.template.setData({className:data.type,message:data.message,note:data.note,explain:data.explain,settings:{imageLocation:klevu.getGlobalSetting("moi.imageLocation","https://js.klevu.com/components/moi/v2/images")}});var renderData={type:"line",tpl:scope.moiScope.template.convertTemplate(scope.moiScope.template.render("message"))};var chain=klevu.getObjectPath(scope.moiScope,"chains.process.render");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.moiElem);chain.setData(renderData);chain.fire();}
data.tpl=renderData.tpl;}}});baseMoi.getScope().chains.process.display.add({name:"displayLoading",fire:function(data,scope){if(data.displayType==="loading"){scope.moiScope.template.setData({className:data.type,message:data.message,settings:{imageLocation:klevu.getGlobalSetting("moi.imageLocation","https://js.klevu.com/components/moi/v2/images")}});var renderData={type:"line",tpl:scope.moiScope.template.convertTemplate(scope.moiScope.template.render("loading"))};var chain=klevu.getObjectPath(scope.moiScope,"chains.process.render");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.moiElem);chain.setData(renderData);chain.fire();}}}});baseMoi.getScope().chains.process.display.add({name:"displayFilters",fire:function(data,scope){if(data.displayType==="filter"){scope.moiScope.template.setData({className:klevu.getSetting(scope.moiScope.settings,"settings.moi.leftClass",false),message:data.filter.settings.label,options:data.filter.options,chatValue:data.filter.settings["chatFormat"],chatEmptyValue:data.filter.settings["chatFormatEmpty"],note:data.note,settings:{imageLocation:klevu.getGlobalSetting("moi.imageLocation","https://js.klevu.com/components/moi/v2/images")}});var renderData={type:"line",tpl:scope.moiScope.template.convertTemplate(scope.moiScope.template.render("filters"))};var chain=klevu.getObjectPath(scope.moiScope,"chains.process.render");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.moiElem);chain.setData(renderData);chain.fire();}
data.tpl=renderData.tpl;}}});baseMoi.getScope().chains.process.display.add({name:"displayProducts",fire:function(data,scope){if(data.displayType==="product"){scope.moiScope.template.setData({className:klevu.getSetting(scope.moiScope.settings,"settings.moi.leftClass",false),products:data.products,note:data.note,settings:{imageLocation:klevu.getGlobalSetting("moi.imageLocation","https://js.klevu.com/components/moi/v2/images")}});var renderData={type:"line",tpl:scope.moiScope.template.convertTemplate(scope.moiScope.template.render("product"))};var chain=klevu.getObjectPath(scope.moiScope,"chains.process.render");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.moiElem);chain.setData(renderData);chain.fire();}
data.tpl=renderData.tpl;}}});baseMoi.getScope().chains.process.display.add({name:"displayMenu",fire:function(data,scope){if(data.displayType==="menu"){scope.moiScope.template.setData({buttons:data.options,settings:{imageLocation:klevu.getGlobalSetting("moi.imageLocation","https://js.klevu.com/components/moi/v2/images")}});var renderData={type:"menu",optionCount:data.options.length,tpl:scope.moiScope.template.convertTemplate(scope.moiScope.template.render("menu"))};var chain=klevu.getObjectPath(scope.moiScope,"chains.process.render");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.moiElem);chain.setData(renderData);chain.fire();}
data.tpl=renderData.tpl;}}});baseMoi.getScope().chains.process.display.add({name:"displayButtons",fire:function(data,scope){if(data.displayType==="buttons"){scope.moiScope.template.setData({buttons:data.options,settings:{imageLocation:klevu.getGlobalSetting("moi.imageLocation","https://js.klevu.com/components/moi/v2/images")}});var renderData={type:"buttons",optionCount:data.options.length,tpl:scope.moiScope.template.convertTemplate(scope.moiScope.template.render("buttons"))};var chain=klevu.getObjectPath(scope.moiScope,"chains.process.render");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.moiElem);chain.setData(renderData);chain.fire();}
data.tpl=renderData.tpl;}}});baseMoi.getScope().chains.process.display.add({name:"saveHistory",fire:function(data,scope){if(data.fromHistory!==true){if(data.displayType==="message"&&scope.moiScope.mode.mode==="general"){var moiHistory=scope.moiScope.history.getElement("chat");if(moiHistory==="chat"){moiHistory=new Array();}else{moiHistory=JSON.parse(moiHistory);}
data.date=klevu.time.timestamp();moiHistory.push({type:"message",from:data.type,data:data});scope.moiScope.history.addElement("chat",JSON.stringify(moiHistory));scope.moiScope.history.mergeToGlobal();}}}});baseMoi.getScope().chains.process.events.add({name:"message",fire:function(data,scope){if(data.eventType==="message"){klevu.each(klevu.dom.find(klevu.getSetting(scope.moiScope.settings,"settings.moi.explainButton",".kumoiExplainButton"),data.tpl),function(key,value){if(!klevu.isUndefined(klevu.moiEvents)&&!klevu.isUndefined(klevu.moiEvents.message))
klevu.moiEvents.message.openCloseExplain(value,scope);});}}});baseMoi.getScope().chains.process.events.add({name:"filters",fire:function(data,scope){if(data.eventType==="filter"){klevu.each(klevu.dom.find(klevu.getSetting(scope.moiScope.settings,"settings.moi.filterAction"),data.tpl),function(key,value){if(!klevu.isUndefined(klevu.moiEvents)&&!klevu.isUndefined(klevu.moiEvents.filters))klevu.moiEvents.filters.moiFiltersClick(value,scope);});}}});baseMoi.getScope().chains.process.events.add({name:"products",fire:function(data,scope){if(data.eventType==="product"){klevu.each(klevu.dom.find(klevu.getSetting(scope.moiScope.settings,"settings.moi.productAction"),data.tpl),function(key,value){if(!klevu.isUndefined(klevu.moiEvents)&&!klevu.isUndefined(klevu.moiEvents.product))klevu.moiEvents.product.moiProductIntent(value,scope);});klevu.each(klevu.dom.find(klevu.getSetting(scope.moiScope.settings,"settings.moi.productDirectLink"),data.tpl),function(key,value){if(!klevu.isUndefined(klevu.moiEvents)&&!klevu.isUndefined(klevu.moiEvents.product))klevu.moiEvents.product.moiProductClick(value,scope);});}}});baseMoi.getScope().chains.process.events.add({name:"menu",fire:function(data,scope){if(data.eventType==="menu"){klevu.each(klevu.dom.find(klevu.getSetting(scope.moiScope.settings,"settings.moi.menuAction"),data.tpl),function(key,value){if(!klevu.isUndefined(klevu.moiEvents)&&!klevu.isUndefined(klevu.moiEvents.menu))klevu.moiEvents.menu.moiMenuClick(value,scope);});}}});baseMoi.getScope().chains.process.events.add({name:"buttons",fire:function(data,scope){if(data.eventType==="buttons"){klevu.each(klevu.dom.find(klevu.getSetting(scope.moiScope.settings,"settings.moi.buttonAction"),data.tpl),function(key,value){if(!klevu.isUndefined(klevu.moiEvents)&&!klevu.isUndefined(klevu.moiEvents.buttons))klevu.moiEvents.buttons.moiButtonsClick(value,scope);});}}});baseMoi.getScope().chains.process.render.add({name:"renderLine",fire:function(data,scope){if(data.type==="line"){var container=klevu.dom.getFirst(klevu.getSetting(scope.moiScope.settings,"settings.moi.chatList")+"[data-chat='"+scope.moiScope.mode.mode+"']",scope.moiScope.target);if(container.nodeType==1){container.appendChild(data.tpl);klevu.moiEvents.display.scrollToBottom();return true;}
return false;}}});baseMoi.getScope().chains.process.render.add({name:"renderMenu",fire:function(data,scope){if(data.type==="menu"){var menuBox=klevu.dom.getFirst(".ksMoiChatWraper[data-chat='"+scope.moiScope.mode.mode+"'] "+klevu.getSetting(scope.moiScope.settings,"settings.moi.menuBox"),scope.moiScope.target);var menuBoxButton=klevu.dom.getFirst(".ksMoiChatWraper[data-chat='"+scope.moiScope.mode.mode+"'] "+klevu.getSetting(scope.moiScope.settings,"settings.moi.menuBoxButton"),scope.moiScope.target);if(menuBox.nodeType==1){if(data.optionCount==0){menuBoxButton.classList.add(klevu.getSetting(scope.moiScope.settings,"settings.moi.disabledClass"));}else{menuBoxButton.classList.remove(klevu.getSetting(scope.moiScope.settings,"settings.moi.disabledClass"));}
menuBox.appendChild(data.tpl);data.tpl=menuBox;}}}});baseMoi.getScope().chains.process.render.add({name:"renderButtons",fire:function(data,scope){if(data.type==="buttons"){var buttonsBox=klevu.dom.getFirst(".ksMoiChatWraper[data-chat='"+scope.moiScope.mode.mode+"'] "+klevu.getSetting(scope.moiScope.settings,"settings.moi.buttonsBox"),scope.moiScope.target);if(buttonsBox.nodeType==1){if(data.optionCount>0){buttonsBox.classList.add(klevu.getSetting(scope.moiScope.settings,"settings.moi.activeClass"));}else{buttonsBox.classList.remove(klevu.getSetting(scope.moiScope.settings,"settings.moi.activeClass"));}
buttonsBox.appendChild(data.tpl);if(!klevu.isUndefined(klevu.moiEvents)&&!klevu.isUndefined(klevu.moiEvents.display)&&!klevu.isUndefined(klevu.moiEvents.display.fixView))klevu.moiEvents.display.fixView(scope);data.tpl=buttonsBox;}}}});baseMoi.getScope().chains.process.processLine.add({name:"initDate",fire:function(data,scope){if(!("date"in data.line))data.line.date=klevu.time.timestamp();}});baseMoi.getScope().chains.process.processLine.add({name:"context",fire:function(data,scope){if("context"in data.line){if(!klevu.isUndefined(data.line.context.sessionId)){klevu.setSetting(scope.moiScope.settings,"settings.moi.sessionId",data.line.context.sessionId);}}}});baseMoi.getScope().chains.process.processLine.add({name:"message",fire:function(data,scope){if("message"in data.line){if(data.line.message.type==="text"){var chain=klevu.getObjectPath(scope.moiScope,"chains.process.display");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.moiElem);var displayData={displayType:"message",type:klevu.getSetting(scope.moiScope.settings,"settings.moi.leftClass"),message:data.line.message.value,note:data.line.message.note,explain:data.line.message.explain,date:data.line.date,tpl:null};chain.setData(displayData);chain.fire();chain=klevu.getObjectPath(scope.moiScope,"chains.process.events");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.moiElem);var eventData={eventType:"message",message:data.line.message.value,note:data.line.message.note,explain:data.line.message.explain,tpl:displayData.tpl};chain.setData(eventData);chain.fire();}}}}}});baseMoi.getScope().chains.process.processLine.add({name:"filter",fire:function(data,scope){if("filter"in data.line){var chain=klevu.getObjectPath(scope.moiScope,"chains.process.display");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.moiElem);var displayData={displayType:"filter",filter:data.line.filter,note:data.line.filter.note,date:data.line.date,tpl:null};chain.setData(displayData);chain.fire();chain=klevu.getObjectPath(scope.moiScope,"chains.process.events");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.moiElem);var eventData={eventType:"filter",filter:data.line.filter,tpl:displayData.tpl};chain.setData(eventData);chain.fire();}}}}});baseMoi.getScope().chains.process.processLine.add({name:"products",fire:function(data,scope){if("productData"in data.line){var chain=klevu.getObjectPath(scope.moiScope,"chains.process.display");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.moiElem);var displayData={displayType:"product",products:data.line.productData.products,note:data.line.productData.note,date:data.line.date,tpl:null};chain.setData(displayData);chain.fire();chain=klevu.getObjectPath(scope.moiScope,"chains.process.events");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.moiElem);var eventData={eventType:"product",products:data.line.productData.products,tpl:displayData.tpl};chain.setData(eventData);chain.fire();}}}}});baseMoi.getScope().chains.process.processLine.add({name:"menu",fire:function(data,scope){if("menuOptions"in data.line){var chain=klevu.getObjectPath(scope.moiScope,"chains.process.display");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.moiElem);var displayData={displayType:"menu",options:data.line.menuOptions.options,tpl:null};chain.setData(displayData);chain.fire();chain=klevu.getObjectPath(scope.moiScope,"chains.process.events");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.moiElem);var eventData={eventType:"menu",options:data.line.menuOptions.options,tpl:displayData.tpl};chain.setData(eventData);chain.fire();}}}}});baseMoi.getScope().chains.process.processLine.add({name:"buttons",fire:function(data,scope){if("genericOptions"in data.line){var chain=klevu.getObjectPath(scope.moiScope,"chains.process.display");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.moiElem);var displayData={displayType:"buttons",options:data.line.genericOptions.options,tpl:null};chain.setData(displayData);chain.fire();chain=klevu.getObjectPath(scope.moiScope,"chains.process.events");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.moiElem);var eventData={eventType:"buttons",options:data.line.genericOptions.options,tpl:displayData.tpl};chain.setData(eventData);chain.fire();}}}}});baseMoi.getScope().chains.process.processLine.add({name:"actions",fire:function(data,scope){if("actions"in data.line){if(data.line.actions.actions.length){klevu.each(data.line.actions.actions,function(index,line){var chain=klevu.getObjectPath(scope.moiScope,"chains.process.actions");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.moiElem);var actionData={type:line.type,context:line.context};chain.setData(actionData);chain.fire();}});}}}});baseMoi.getScope().chains.process.processLine.add({name:"saveHistory",fire:function(data,scope){if(data.fromHistory!==true&&scope.moiScope.mode.mode==="general"){var moiHistory=scope.moiScope.history.getElement("chat");if(moiHistory==="chat"){moiHistory=new Array();}else{moiHistory=JSON.parse(moiHistory);}
if("context"in data.line){if(!klevu.isUndefined(data.line.context.sessionId)){scope.moiScope.history.addElement("sessionId",data.line.context.sessionId);}}
if("menuOptions"in data.line){scope.moiScope.history.addElement("menuOptions",JSON.stringify(data));}
if("genericOptions"in data.line){scope.moiScope.history.addElement("genericOptions",JSON.stringify(data));}
if("filter"in data.line){moiHistory.push({type:"filter",from:klevu.getSetting(scope.moiScope.settings,"settings.moi.leftClass"),data:data});}
if("productData"in data.line){moiHistory.push({type:"products",from:klevu.getSetting(scope.moiScope.settings,"settings.moi.leftClass"),data:data});}
if(moiHistory.length>klevu.getSetting(scope.moiScope.settings,"settings.moi.historySize",100))moiHistory.splice(0,10);scope.moiScope.history.addElement("chat",JSON.stringify(moiHistory));scope.moiScope.history.mergeToGlobal();}}});baseMoi.getScope().chains.process.processLine.add({name:"fadeInEffect",fire:function(data,scope){const intervalFadeIn="settings.moi.intervalFadeIn"
if(data.fromHistory!==true){function fadeInCheck(){const fromMoi=klevu.dom.getFirst(".fromkumoi:not(.moiFadeIn):not(.moiFromHistory)")
if(fromMoi.classList){fromMoi.classList.add("moiFadeIn");}else{clearInterval(klevu.getSetting(klevu.getGlobalSetting("moi.box",klevu.moi.base).getScope().settings,intervalFadeIn));klevu.setSetting(scope.moiScope.settings,intervalFadeIn,false);}}
if(!klevu.getSetting(scope.moiScope.settings,intervalFadeIn,false)){klevu.setSetting(scope.moiScope.settings,intervalFadeIn,setInterval(fadeInCheck,klevu.getGlobalSetting("moi.fadeInMessageDelay",300)));}}else{const chatRows=klevu.dom.find(".kumoichatRow")
if(chatRows.length>0){klevu.each(chatRows,function(key,row){row.classList.add("moiFromHistory");});}}}});klevu.moi={base:baseMoi};klevu.moi.build=true;})(klevu);(function(klevu){klevu.extend(true,klevu,{component:{nlp:{varsion:"1.0.0",utility:{sendAnnotationsRequest:function(data){data.type="annotations";klevu.component.nlp.utility.getByType(data);},getByType:function(settings){var chain=klevu.getObjectPath(klevu.component.nlp,"utility.chains.getByType");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope({});chain.setData(settings);chain.fire();}},chains:{getByType:klevu.chain({stopOnFalse:true})}}}}});klevu.support.register({name:"nlp",loaded:true,active:true,dependency:["core.lib"]});klevu.component.nlp.utility.chains.getByType.add({name:"getAnnotationsData",fire:function(data,scope){if(data.type==="annotations"){var apiKey=klevu.getObjectPath(data,"settings.apiKey",klevu.getGlobalSetting("search.apiKey",klevu.getGlobalSetting("global.apiKey",false)));if(!apiKey)return;var url=klevu.getObjectPath(data,"settings.url","https://nlp-services.ksearchnet.com/"+apiKey+"/annotations");if(klevu.isUndefined(data.data)||klevu.isUndefined(data.data.query)){return;}
if(klevu.isUndefined(data.data)||klevu.isUndefined(data.data.title)){return;}
if(klevu.isUndefined(data.data)||klevu.isUndefined(data.data.category)){return;}
if(klevu.isUndefined(data.data)||klevu.isUndefined(data.data.languageCode)){return;}
var options={url:url,data:{"query":encodeURIComponent(data.data.query),"title":encodeURIComponent(data.data.title),"category":encodeURIComponent(data.data.category),"languageCode":data.data.languageCode}};if(!klevu.isUndefined(data.callbacks)){options.callbacks=data.callbacks;}
var requestDetails={options:options,settings:data.settings,callbacks:{success:function(data,requestDetails,status,isSuccess){var params=[{status:status,isSuccess:isSuccess,requestDetails:requestDetails,data:data}];if(klevu.getObjectPath(requestDetails.options,"callbacks.success",[]).length>0){klevu.each(requestDetails.options.callbacks.success,function(key,callbackObject){callbackObject.fire.apply(this,params);});}},error:function(requestDetails,status,isSuccess){var params=[{status:status,isSuccess:isSuccess,requestDetails:requestDetails}];if(klevu.getObjectPath(requestDetails.options,"callbacks.error",[]).length>0){klevu.each(requestDetails.options.callbacks.error,function(key,callbackObject){callbackObject.fire.apply(this,params);});}}}};var requestObject={url:options.url+"?"+klevu.queryString(options.data),type:klevu.getGlobalSetting("component.nlp.annotations.sendMethod","FETCH"),method:"GET",crossDomain:true,mimeType:"application/json; charset=UTF-8",contentType:"application/json; charset=utf-8"};requestObject.success=requestDetails.callbacks.success;requestObject.error=requestDetails.callbacks.error;klevu.request(requestObject,requestDetails);}}});})(klevu);(function(klevu){var abTest={markAllResourcesLoaded:function(setOnPage){if(klevu.isUndefined(setOnPage))setOnPage=true;klevu.extensions.abTest.resourcesLoaded=true;if(typeof klevu_processABTestInputData==="function"){klevu_processABTestInputData();}
if(setOnPage)klevu.extensions.abTest.base.processData();},processData:function(){var apiKey=klevu.getGlobalSetting("search.apiKey",klevu.getGlobalSetting("global.apiKey"));var abTestDictionary=klevu.getObjectPath(klevu.extensions,"abTest.abtestDictionary");var abTestDataLoaded=JSON.parse(abTestDictionary.getElement(apiKey));var catNav={};if(!klevu.isEmptyObject(abTestDataLoaded["CAT_NAV"])){klevu.each(abTestDataLoaded["CAT_NAV"],function(key,value){catNav[value["sourceId"].toLowerCase()]=value;});}
klevu.extensions.abTest.catnav=catNav;},loadCallBack:function(data,options){var abTestDictionary=klevu.getObjectPath(klevu.extensions,"abTest.abtestDictionary");var abTestDataLoaded=abTestDictionary.getElement(options.apiKey);if(!klevu.isUndefined(data.assigned)&&data.assigned.length>0){data=data.assigned;var newData={"CAT_NAV":{},"RECS":{},"SEARCH":{}};klevu.each(data,function(key,value){value["clicked"]=false;value["send"]=false;switch(value["type"]){case"CAT_NAV":newData["CAT_NAV"][value["abTestId"]+value["sourceId"].toLowerCase()]=value;break;case"RECS":newData["RECS"][value["abTestId"]+value["sourceId"]]=value;break;case"SEARCH":newData["SEARCH"][value["abTestId"]+value["sourceId"]]=value;break;}});if(abTestDataLoaded===options.apiKey){abTestDataLoaded=newData;}else{abTestDataLoaded=JSON.parse(abTestDataLoaded);if(!klevu.isEmptyObject(abTestDataLoaded["CAT_NAV"])){klevu.each(abTestDataLoaded["CAT_NAV"],function(key,value){if(!klevu.isUndefined(value["clicked"])&&value["clicked"]===true&&!klevu.isUndefined(newData["CAT_NAV"][value["abTestId"]+value["sourceId"].toLowerCase()])){newData["CAT_NAV"][value["abTestId"]+value["sourceId"].toLowerCase()]["clicked"]=value["clicked"];newData["CAT_NAV"][value["abTestId"]+value["sourceId"].toLowerCase()]["abTestVariantId"]=value["abTestVariantId"];}
if(!klevu.isUndefined(value["send"])&&value["send"]===true&&!klevu.isUndefined(newData["CAT_NAV"][value["abTestId"]+value["sourceId"].toLowerCase()])){newData["CAT_NAV"][value["abTestId"]+value["sourceId"].toLowerCase()]["send"]=value["send"];}});}
if(!klevu.isEmptyObject(abTestDataLoaded["RECS"])){klevu.each(abTestDataLoaded["RECS"],function(key,value){if(!klevu.isUndefined(value["clicked"])&&value["clicked"]===true&&!klevu.isUndefined(newData["RECS"][value["abTestId"]+value["sourceId"]])){newData["RECS"][value["abTestId"]+value["sourceId"]]["clicked"]=value["clicked"];newData["RECS"][value["abTestId"]+value["sourceId"]]["abTestVariantId"]=value["abTestVariantId"];}
if(!klevu.isUndefined(value["send"])&&value["send"]===true&&!klevu.isUndefined(newData["RECS"][value["abTestId"]+value["sourceId"]])){newData["RECS"][value["abTestId"]+value["sourceId"]]["send"]=value["send"];}});}
if(!klevu.isEmptyObject(abTestDataLoaded["SEARCH"])){klevu.each(abTestDataLoaded["SEARCH"],function(key,value){if(!klevu.isUndefined(value["clicked"])&&value["clicked"]===true&&!klevu.isUndefined(newData["SEARCH"][value["abTestId"]+value["sourceId"]])){newData["SEARCH"][value["abTestId"]+value["sourceId"]]["clicked"]=value["clicked"];newData["SEARCH"][value["abTestId"]+value["sourceId"]]["abTestVariantId"]=value["abTestVariantId"];}
if(!klevu.isUndefined(value["send"])&&value["send"]===true&&!klevu.isUndefined(newData["SEARCH"][value["abTestId"]+value["sourceId"]])){newData["SEARCH"][value["abTestId"]+value["sourceId"]]["send"]=value["send"];}});}
abTestDataLoaded=newData;}}
abTestDataLoaded.timeOfLoad=klevu.time.timestamp();abTestDictionary.addElement(options.apiKey,JSON.stringify(abTestDataLoaded));abTestDictionary.overrideGlobal();if(klevu.extensions.abTest.loadCounter===options.totalToLoad){var abTestData=klevu.getObjectPath(klevu.extensions,"abTest.abTestData");if(klevu.isUndefined(abTestData)){klevu.extensions.abTest.abTestData=JSON.parse(abTestDictionary.getElement(options.apiKey));}
klevu.extensions.abTest.base.markAllResourcesLoaded(false);}},loadAbTestData:function(apiKey){klevu.extensions.abTest.resourceLoadInitiated=true;klevu.extensions.abTest.loadCounter=0;var abTestDataURL=klevu.search.modules.kmcInputs.base.getDataPath("klevu_apiDomain");if(klevu.isUndefined(abTestDataURL)){return;}
var importScripts=[{id:apiKey,src:"https://"+abTestDataURL+"/abtest/public/allocation/"+apiKey,}];importScripts.forEach(function(scriptObj){var options={url:scriptObj.src,type:"json",mimeType:"application/json",apiKey:apiKey,totalToLoad:importScripts.length};var requestDetails={success:function(data,options,status,isSuccess){klevu.extensions.abTest.loadCounter++;klevu.extensions.abTest.base.loadCallBack(data,options);},error:function(data,options,status,isSuccess){klevu.extensions.abTest.loadCounter++;klevu.extensions.abTest.base.loadCallBack(data,options);},options:options};var requestObject={url:options.url,type:"FETCH",method:"POST",mimeType:options.mimeType,crossDomain:true};requestObject.success=function(data,requestDetails,status,isSuccess){requestDetails.success(data,requestDetails.options,status,isSuccess);};requestObject.error=function(requestDetails,status,isSuccess){requestDetails.error({},requestDetails.options,status,isSuccess);};klevu.request(requestObject,requestDetails);});},getDataPath:function(path){var abTestData=klevu.getObjectPath(klevu.extensions,"abTest.abTestData."+path);var windowData;if(window){windowData=klevu.getInterfaceObjectPath(window,path);}
return(!klevu.isUndefined(windowData))?windowData:abTestData;},setClickedEvent:function(abTestString,type){var apiKey=klevu.getGlobalSetting("search.apiKey",klevu.getGlobalSetting("global.apiKey"));var abTestDictionary=klevu.getObjectPath(klevu.extensions,"abTest.abtestDictionary");var abTestDataLoaded=JSON.parse(abTestDictionary.getElement(apiKey));if(!klevu.isUndefined(abTestDataLoaded[type])&&!klevu.isEmptyObject(abTestDataLoaded[type])&&!klevu.isUndefined(abTestDataLoaded[type][abTestString])){abTestDataLoaded[type][abTestString]["clicked"]=true;abTestDictionary.addElement(apiKey,JSON.stringify(abTestDataLoaded));abTestDictionary.overrideGlobal();}},usageTrack:function(abTestString,type){var apiKey=klevu.getGlobalSetting("search.apiKey",klevu.getGlobalSetting("global.apiKey"));var abTestDictionary=klevu.getObjectPath(klevu.extensions,"abTest.abtestDictionary");var abTestDataLoaded=JSON.parse(abTestDictionary.getElement(apiKey));var dataToSend={};if(!klevu.isUndefined(abTestDataLoaded[type])&&!klevu.isEmptyObject(abTestDataLoaded[type])&&!klevu.isUndefined(abTestDataLoaded[type][abTestString])&&abTestDataLoaded[type][abTestString]["send"]===false&&abTestDataLoaded[type][abTestString]["clicked"]===true){dataToSend={"sourceId":abTestDataLoaded[type][abTestString]["sourceId"],"abTestId":abTestDataLoaded[type][abTestString]["abTestId"],"abTestVariantId":abTestDataLoaded[type][abTestString]["abTestVariantId"],"type":abTestDataLoaded[type][abTestString]["type"],};}else{return;}
var abTestDataURL=klevu.search.modules.kmcInputs.base.getDataPath("klevu_apiDomain");if(klevu.isUndefined(abTestDataURL)){return;}
var options={url:"https://"+abTestDataURL+"/abtest/public/usage/"+apiKey,type:"json",mimeType:"application/json",data:JSON.stringify(dataToSend),};var requestDetails={success:function(data,options,status,isSuccess){var apiKey=klevu.getGlobalSetting("search.apiKey",klevu.getGlobalSetting("global.apiKey"));var abTestDictionary=klevu.getObjectPath(klevu.extensions,"abTest.abtestDictionary");var abTestDataLoaded=JSON.parse(abTestDictionary.getElement(apiKey));var dataSend=JSON.parse(options.data);if(!klevu.isUndefined(abTestDataLoaded[dataSend.type])&&!klevu.isEmptyObject(abTestDataLoaded[dataSend.type])&&!klevu.isUndefined(abTestDataLoaded[dataSend.type][dataSend.abTestId+dataSend.sourceId.toLowerCase()])){if(parseInt(status)===204){delete abTestDataLoaded[dataSend.type][dataSend.abTestId+dataSend.sourceId.toLowerCase()];if(klevu.getObjectPath(klevu.extensions,"abTest.catnav."+(dataSend.sourceId.toLowerCase()),false)!==false){delete klevu.extensions.abTest.catnav[dataSend.sourceId.toLowerCase()];}}else{abTestDataLoaded[dataSend.type][dataSend.abTestId+dataSend.sourceId.toLowerCase()]["send"]=true;}
abTestDictionary.addElement(apiKey,JSON.stringify(abTestDataLoaded));abTestDictionary.overrideGlobal();}},error:function(data,options,status,isSuccess){},options:options};var requestObject={url:options.url,type:"FETCH",method:"POST",data:options.data,mimeType:options.mimeType,crossDomain:true};requestObject.success=function(data,requestDetails,status,isSuccess){requestDetails.success(data,requestDetails.options,status,isSuccess);};requestObject.error=function(requestDetails,status,isSuccess){requestDetails.error({},requestDetails.options,status,isSuccess);};klevu.request(requestObject,requestDetails);}};klevu.extend(true,klevu,{extensions:{abTest:{base:abTest,build:true,resourcesLoaded:false,resourceLoadInitiated:false}}});var options={};klevu(options);klevu.support.register({name:"abTest",loaded:true,active:true,dependency:["core.lib"]});})(klevu);klevu.settings.chains.initChain.add({name:"abTestKmcCheck",fire:function(data,scope){var powerUp=klevu.getGlobalSetting("powerUp.abTest");if((!klevu.isUndefined(powerUp)&&powerUp===false))return;var kmcGlobalLoaded=klevu.getGlobalSetting("kmc.loaded");if((!klevu.isUndefined(kmcGlobalLoaded)&&kmcGlobalLoaded===true)){var kmcAbFlag=klevu.search.modules.kmcInputs.base.getDataPath("klevu_abTestActive");if(typeof kmcAbFlag!=='undefined'&&(JSON.parse(kmcAbFlag)===true)){klevu.setObjectPath(data,"powerUp.abTest",true);}else{var abtestDictionary=klevu.dictionary("abTest");abtestDictionary.setStorage("local");abtestDictionary.overrideGlobal();}}}});klevu.settings.chains.initChain.add({name:"abTestPowerUp",fire:function(data,scope){var apiKey=klevu.getGlobalSetting("search.apiKey",klevu.getGlobalSetting("global.apiKey"));if(!klevu.isUndefined(apiKey)){var powerUp=klevu.getGlobalSetting("powerUp.abTest");if((!klevu.isUndefined(powerUp)&&powerUp===false))return;if(powerUp!==true)return;var abLoaded=klevu.getObjectPath(klevu.extensions,"abTest.resourcesLoaded");if((!klevu.isUndefined(abLoaded)&&abLoaded===true))return;var abtestDictionary=klevu.getObjectPath(klevu.extensions,"abTest.abtestDictionary");if(klevu.isUndefined(abtestDictionary)){abtestDictionary=klevu.dictionary("abTest");abtestDictionary.setStorage("local");abtestDictionary.mergeFromGlobal();klevu.setObjectPath(klevu.extensions,"abTest.abtestDictionary",abtestDictionary);}
var abTestData=abtestDictionary.getElement(apiKey);var abTestRefresh=true;if(apiKey!==abTestData){abTestData=JSON.parse(abTestData);var timestampExpiration=abTestData.timeOfLoad+parseInt(klevu.getGlobalSetting("abTest.invalidateInterval",1200));if(timestampExpiration>klevu.time.timestamp()){abTestRefresh=false;}else{klevu.extensions.abTest.base.processData();}
klevu.setObjectPath(klevu.extensions,"abTest.abTestData",abTestData);}
if(abTestRefresh){var abTestLoading=klevu.getObjectPath(klevu.extensions,"abTest.resourceLoadInitiated");if((klevu.isUndefined(abTestLoading)||abTestLoading===false)){klevu.extensions.abTest.base.loadAbTestData(apiKey);}}else{klevu.extensions.abTest.base.markAllResourcesLoaded();}}}});klevu.analytics.base.getScope().chains.events.catview.addBefore("viewRequestCheck",{name:"addABTest",fire:function(data,scope){var abTest=klevu.getObjectPath(data.request.analytics,"klevu_abTestId",false);var abTestSource=klevu.getObjectPath(data.request.analytics,"klevu_abTestSource",false);delete data.request.analytics['klevu_abTestSource'];if(abTest&&abTestSource){klevu.extensions.abTest.base.usageTrack(abTest+abTestSource,"CAT_NAV");}}});(function(klevu){var imageUpload={submit:function(settings){var chain=klevu.getObjectPath(klevu.modules,"imageUpload.base.chains.submitFormChain");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope({});chain.setData(settings);chain.fire();}},chains:{submitChain:klevu.chain({stopOnFalse:true}),submitFormChain:klevu.chain({stopOnFalse:true}),}};klevu.extend(true,klevu,{modules:{imageUpload:{base:imageUpload}}});klevu.modules.imageUpload.base.chains.submitChain.add({name:"submitController",fire:function(data,scope){var type=klevu.getObjectPath(data,"type","");switch(type){case"form":var chain=klevu.modules.imageUpload.base.submitFormChain;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope);chain.setData(data);chain.fire();}
break;default:break;}}});klevu.modules.imageUpload.base.chains.submitFormChain.add({name:"submitForm",fire:function(data,scope){var url=klevu.getGlobalSetting("url.imageUpload","https://api.ksearchnet.com/image/store/");var apiKey=klevu.getGlobalSetting("search.apiKey",klevu.getGlobalSetting("global.apiKey"));var options={url:url+apiKey,data:data};var requestDetails={options:options,callbacks:{success:function(data,requestDetails,status,isSuccess){var successCallback=klevu.getObjectPath(requestDetails.options,"data.callbacks.success",false);var scope=klevu.getObjectPath(requestDetails.options,"data.scope",false);data.status=status;data.isSuccess=isSuccess;if(successCallback&&scope&&!klevu.isUndefined(data.url)){var chainSuccess=klevu.getObjectPath(scope.kScope,successCallback);if(!klevu.isUndefined(chainSuccess)&&chainSuccess.list().length!==0){chainSuccess.setScope(scope.kElem);chainSuccess.setData(data);chainSuccess.fire();}}else{var errorCallback=klevu.getObjectPath(requestDetails.options,"data.callbacks.error",false);if(errorCallback&&scope){var chainError=klevu.getObjectPath(scope.kScope,errorCallback);if(!klevu.isUndefined(chainError)&&chainError.list().length!==0){chainError.setScope(scope.kElem);chainError.setData(data);chainError.fire();}}}},error:function(requestDetails,status,isSuccess){var errorCallback=klevu.getObjectPath(requestDetails.options,"data.callbacks.error",false);var scope=klevu.getObjectPath(requestDetails.options,"data.scope",false);data.status=status;data.isSuccess=isSuccess;if(errorCallback&&scope){var chainError=klevu.getObjectPath(scope.kScope,errorCallback);if(!klevu.isUndefined(chainError)&&chainError.list().length!==0){chainError.setScope(scope.kElem);chainError.setData(data);chainError.fire();}}}}};var formData=new FormData();formData.append('image',data.source.files[0]);var requestObject={url:options.url,type:"FETCH",method:"POST",crossDomain:true,processData:false,contentType:false,data:formData};requestObject.success=requestDetails.callbacks.success;requestObject.error=requestDetails.callbacks.error;klevu.request(requestObject,requestDetails);}});klevu.extend(true,klevu,{modules:{imageUpload:{build:true}}});var options={modules:{imageUpload:{build:true}}};klevu(options);klevu.support.register({name:"imageUpload",loaded:true,active:true,dependency:["core.lib"]});})(klevu);klevu.settings.chains.initChain.add({name:"imageUploadKmcCheck",fire:function(data,scope){var powerUp=klevu.getGlobalSetting("powerUp.imageUpload");if(!klevu.isUndefined(powerUp))return;var kmcGlobalLoaded=klevu.getGlobalSetting("kmc.loaded");if((!klevu.isUndefined(kmcGlobalLoaded)&&kmcGlobalLoaded===true)){var kmcImageSearchFlag=klevu.search.modules.kmcInputs.base.getDataPath("klevu_imageSearchActive");if(typeof kmcImageSearchFlag!=='undefined'&&(JSON.parse(kmcImageSearchFlag)===true)){if(typeof FormData==="function"&&window.fetch){klevu.setObjectPath(data,"powerUp.imageUpload",true);klevu.setObjectPath(data,"theme.modules.imageSearch.enable",true);return;}
klevu.setObjectPath(data,"powerUp.imageUpload",false);klevu.setObjectPath(data,"theme.modules.imageSearch.enable",false);}}}});(function(klevu){klevu.extend({pbEvents:{}});klevu.extend(true,klevu.pbEvents,{init:{build:{name:"init-pb",fire:function(){var data={elem:klevu.pb.base};var chain=klevu.pbEvents.init.buildChain;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(klevu.pb.base.getScope().element);chain.setData(data);chain.fire();}}},buildChain:klevu.chain({stopOnFalse:true})},request:{done:function(options){options.scope.pbObject.removeActiveFile();var filesLeft=klevu.getSetting(options.scope.pbScope.settings,"settings.pagebuild.activeFiles",0);if(filesLeft===0){klevu.event.fireChain(options.scope.pbScope,options.scope.pbScope.data.executeAfter,options.scope.pbScope.element,options.scope.pbScope.data,null);}}}});klevu.pbEvents.init.buildChain.add({name:"checkUrlOverides",fire:function(data,scope){var overrideSettings=klevu.getAllUrlParameters();if(overrideSettings.length>0){klevu.each(overrideSettings,function(key,elem){if(klevu.strStartsWith(elem.name,"klib_")){elem.name=elem.name.replace("klib_","").replace(new RegExp(/_/,"g"),".");klevu.setSetting(scope.pbScope.settings,"settings."+elem.name,elem.value);}});}}});klevu.pbEvents.init.buildChain.add({name:"powerUp",fire:function(data,scope){klevu.event.fireChain(scope.pbScope,"chains.coreLoad",scope.pbScope.element,scope.pbScope.data,null);}});klevu.coreEvent.build({name:"buildPb",fire:function(){return!(!klevu.getSetting(klevu.settings,"settings.pagebuild.activate",false)||!klevu.getSetting(klevu.settings,"settings.localSettings",false)||!klevu.getSetting(klevu.settings,"settings.powerUp.pageBuilder",false));}});klevu.coreEvent.attach("buildPb",klevu.extend(true,{},klevu.pbEvents.init.build));klevu.extend({pbObjectBuild:function(){var localVariables={settings:{}};klevu.setObjectPath(localVariables,"id",klevu.randomId());klevu.setObjectPath(localVariables,"chains.coreLoad",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.extraLoad",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.interactive",klevu.chain({stopOnFalse:true}));function init(selfObj){localVariables.element=document.createElement("div");localVariables.element.pbObject=selfObj;localVariables.element.pbScope=localVariables;localVariables.element.pbElem=localVariables.element;}
function buildData(){return{apiKey:false,pageId:false,version:false,url:false,executeAfter:false};}
localVariables.data=buildData();var selfObj={init:init,setScope:function(variables){localVariables=variables;return localVariables;},getScope:function(){return localVariables;},addActiveFile:function(){localVariables.settings.settings.pagebuild.activeFiles++;},removeActiveFile:function(){localVariables.settings.settings.pagebuild.activeFiles--;}};init(selfObj);return selfObj;},pbObjectClone:function(source){var clone=klevu.pbObjectBuild();clone.setScope(klevu.extend(true,{},source.getScope()));clone.getScope().id=klevu.randomId();return clone;}});var options={url:{pbSource:'//js.klevu.com/klevu-js-v2/pagebuilder/'},pagebuild:{active:false,version:"published",nocache:false,activeFiles:0},console:{type:{pb:false}}};klevu(options);})(klevu);(function(klevu){var basePb=klevu.pbObjectBuild();basePb.getScope().chains.coreLoad.add({name:"resetActiveFiles",fire:function(data,scope){var filesLeft=klevu.getSetting(scope.pbScope.settings,"settings.pagebuild.activeFiles",0);if(filesLeft>0){}
klevu.setSetting(scope.pbScope.settings,"settings.pagebuild.activeFiles",0);}});basePb.getScope().chains.coreLoad.add({name:"getPageId",fire:function(data,scope){data.pageId=klevu.getSetting(scope.pbScope.settings,"settings.pagebuild.pageId",false);if(!data.pageId){return false;}}});basePb.getScope().chains.coreLoad.add({name:"getApikey",fire:function(data,scope){data.apiKey=klevu.getSetting(scope.pbScope.settings,"settings.pagebuild.apiKey",klevu.getSetting(scope.pbScope.settings,"settings.search.apiKey",false));if(!data.apiKey){return false;}}});basePb.getScope().chains.coreLoad.add({name:"getVersion",fire:function(data,scope){data.version=klevu.getSetting(scope.pbScope.settings,"settings.pagebuild.version");if(!data.version){return false;}}});basePb.getScope().chains.coreLoad.add({name:"getHostUrl",fire:function(data,scope){data.url=klevu.settings.url.protocol+klevu.getSetting(scope.pbScope.settings,"settings.url.pbSource")+data.apiKey+"/"+data.pageId+"/"+data.version;}});basePb.getScope().chains.coreLoad.add({name:"getCache",fire:function(data,scope){data.nocache=klevu.getSetting(scope.pbScope.settings,"settings.pagebuild.nocache",false);if(data.nocache=='true'){var randomnumber=Math.floor(Math.random()*(1000000000-100000000+1))+100000000;data.nocache="?"+randomnumber;}else{data.nocache="";}}});basePb.getScope().chains.coreLoad.add({name:"setChainAfter",fire:function(data,scope){data.executeAfter="chains.extraLoad";}});basePb.getScope().chains.coreLoad.add({name:"loadJs",fire:function(data,scope){scope.pbObject.addActiveFile();klevu.assets.getFile({url:data.url+".js"+data.nocache,type:"js",options:{scope:scope,successCallback:klevu.pbEvents.request.done,errorCallback:klevu.pbEvents.request.done,}});}});basePb.getScope().chains.coreLoad.add({name:"loadCss",fire:function(data,scope){scope.pbObject.addActiveFile();klevu.assets.getFile({url:data.url+".css"+data.nocache,type:"css",options:{scope:scope,successCallback:klevu.pbEvents.request.done,errorCallback:klevu.pbEvents.request.done}});}});basePb.getScope().chains.extraLoad.add({name:"setChainAfter",fire:function(data,scope){data.executeAfter="chains.interactive";}});klevu.pb={base:basePb};klevu.pb.build=true;})(klevu);(function(klevu){klevu.extend(true,klevu,{recs:{events:{}}});klevu.extend(true,klevu.recs.events,{init:{build:{name:"init-recs",fire:function(){var data={elem:klevu.recs.base};var chain=klevu.recs.events.init.buildChain;if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(klevu.recs.base.getScope().element);chain.setData(data);chain.fire();}}},buildChain:klevu.chain({stopOnFalse:true})},request:{done:function(options){options.scope.recsObject.removeActiveFile();var filesLeft=klevu.getSetting(options.scope.recsScope.settings,"settings.recs.activeFiles",0);if(filesLeft===0){klevu.event.fireChain(options.scope.recsScope,options.scope.recsScope.data.powerUp.executeAfter,options.scope.recsScope.element,options.scope.recsScope.data,null);}}}});klevu.recs.events.init.buildChain.add({name:"checkUrlOverides",fire:function(data,scope){var overrideSettings=klevu.getAllUrlParameters();if(overrideSettings.length>0){klevu.each(overrideSettings,function(key,elem){if(klevu.strStartsWith(elem.name,"klib_")){elem.name=elem.name.replace("klib_","").replace(new RegExp(/_/,"g"),".");klevu.setSetting(scope.recsScope.settings,"settings."+elem.name,elem.value);}});}}});klevu.recs.events.init.buildChain.add({name:"powerUp",fire:function(data,scope){klevu.event.fireChain(scope.recsScope,"chains.core.coreLoad",scope.recsScope.element,scope.recsScope.data,null);}});klevu.coreEvent.build({name:"buildRecs",fire:function(){return!(!klevu.getSetting(klevu.settings,"settings.recs.activate",false));}});klevu.coreEvent.attach("buildRecs",klevu.extend(true,{},klevu.recs.events.init.build));klevu.extend(true,klevu,{recs:{list:[],build:function(){var localVariables={settings:{}};klevu.setObjectPath(localVariables,"id",klevu.randomId());klevu.setObjectPath(localVariables,"chains.core.coreLoad",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.core.extraLoad",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.core.interactive",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.actions.load",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.processors.settings",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.request.control",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.request.build",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.request.send",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.request.ajax.send",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.request.fetch.send",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.response.success",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.response.done",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.response.fail",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.response.ajax.success",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.response.ajax.done",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.response.ajax.fail",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.response.fetch.success",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.response.fetch.done",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.response.fetch.fail",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.search.control",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.type.staticContent",klevu.chain({stopOnFalse:true}));klevu.setObjectPath(localVariables,"chains.type.hideBanner",klevu.chain({stopOnFalse:true}));function init(selfObj,element){localVariables.element=element;localVariables.element.recsObject=selfObj;localVariables.element.recsScope=localVariables;localVariables.element.recsElem=localVariables.element;}
function buildData(){var data={powerUp:{apiKey:false,url:false,executeAfter:false,},context:{eventAction:"",preventDefault:false,status:null,isSuccess:false,apiKey:null,recId:null},request:{settings:{url:null}},response:{}};return data;}
localVariables.data=buildData();var selfObj={init:init,setScope:function(variables){localVariables=variables;return localVariables;},getScope:function(){return localVariables;},addActiveFile:function(){localVariables.settings.settings.recs.activeFiles++;},removeActiveFile:function(){localVariables.settings.settings.recs.activeFiles--;},powerUp:function(){var chain=klevu.getObjectPath(localVariables,"chains.actions.load");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(localVariables.element);chain.setData(localVariables.data);chain.fire();}}};return selfObj;},clone:function(settings){var source=klevu.recs.base;var clone=klevu.recs.build();clone.setScope(klevu.extend(true,{},source.getScope()));clone.init(clone,settings.element);klevu.setSetting(clone.getScope().element.recsScope.settings,"settings.recs.apiKey",settings.apiKey);klevu.setSetting(clone.getScope().element.recsScope.settings,"settings.recs.recId",settings.recId);clone.getScope().id=klevu.randomId();clone.getScope().searchObject=null;clone.getScope().kmcData=null;klevu.recs.list.push(clone);return clone;}}});var options={url:{recsSource:'//js.klevu.com/recs/',recsEndpoint:'//config-cdn.ksearchnet.com/recommendations/'},recs:{active:false,nocache:false,activeFiles:0},console:{type:{recs:false}}};klevu(options);})(klevu);(function(klevu){var baseRecs=klevu.recs.build();baseRecs.getScope().chains.core.coreLoad.add({name:"resetActiveFiles",fire:function(data,scope){var filesLeft=klevu.getSetting(scope.recsScope.settings,"settings.recs.activeFiles",0);if(filesLeft>0){}
klevu.setSetting(scope.recsScope.settings,"settings.recs.activeFiles",0);}});baseRecs.getScope().chains.core.coreLoad.add({name:"getApikey",fire:function(data,scope){data.apiKey=klevu.getSetting(scope.recsScope.settings,"settings.recs.apiKey",klevu.getSetting(scope.recsScope.settings,"settings.search.apiKey",klevu.getGlobalSetting("global.apiKey")));if(!data.apiKey){return false;}}});baseRecs.getScope().chains.core.coreLoad.add({name:"getHostUrl",fire:function(data,scope){data.url="https:"+klevu.getSetting(scope.recsScope.settings,"settings.url.recsSource")+data.apiKey+"/";}});baseRecs.getScope().chains.core.coreLoad.add({name:"getCache",fire:function(data,scope){data.nocache=klevu.getSetting(scope.recsScope.settings,"settings.recs.nocache",false);if(data.nocache=='true'){var randomnumber=Math.floor(Math.random()*(1000000000-100000000+1))+100000000;data.nocache="?"+randomnumber;}else{data.nocache="";}}});baseRecs.getScope().chains.core.coreLoad.add({name:"setChainAfter",fire:function(data,scope){data.powerUp.executeAfter="chains.core.extraLoad";}});baseRecs.getScope().chains.core.coreLoad.add({name:"loadJs",fire:function(data,scope){scope.recsObject.addActiveFile();klevu.assets.getFile({url:data.url+".js"+data.nocache,type:"js",options:{scope:scope,successCallback:klevu.recs.events.request.done,errorCallback:klevu.recs.events.request.done,}});}});baseRecs.getScope().chains.core.extraLoad.add({name:"setChainAfter",fire:function(data,scope){data.powerUp.executeAfter="chains.core.interactive";}});baseRecs.getScope().chains.actions.load.add({name:"checkSettings",fire:function(data,scope){var chain=klevu.getObjectPath(scope.recsScope,"chains.processors.settings");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.recsElem);chain.setData(data);chain.fire();}
scope.recsScope.data=data;if(data.context.preventDefault===true)return false;}});baseRecs.getScope().chains.actions.load.add({name:"doRequest",fire:function(data,scope){data.context.doCall=false;var chain=klevu.getObjectPath(scope.recsScope,"chains.request.control");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.recsElem);chain.setData(data);chain.fire();scope.recsScope.data=data;}else{data.context.preventDefault=true;scope.recsScope.data=data;return false;}}});baseRecs.getScope().chains.processors.settings.add({name:"checkDefinedApi",fire:function(data,scope){if(klevu.isUndefined(data.context.recId)){data.context.preventDefault=true;return false;}}});baseRecs.getScope().chains.request.ajax.send.add({name:"sendRequest",fire:function(data,scope){if(data.context.eventAction!=="recsAjax")return;data.scope=scope;if(data.context.doCall){data.context.requestObject={url:data.request.settings.url,type:"AJAX",method:"GET",mimeType:"application/json; charset=UTF-8",contentType:"application/json; charset=utf-8",dataType:"json",crossDomain:true,success:function(klXHR){var chain=klevu.getObjectPath(klXHR.requestDetails.scope.recsScope,"chains.response.success");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(klXHR.requestDetails.scope.recsElem);klevu.setObjectPath(klXHR.requestDetails,"response.data",klXHR.responseObj.data);klevu.setObjectPath(klXHR.requestDetails,"context.status",klXHR.status);klevu.setObjectPath(klXHR.requestDetails,"context.isSuccess",klXHR.isSuccess);chain.setData(klXHR.requestDetails);chain.fire();}},done:function(klXHR){var chain=klevu.getObjectPath(klXHR.requestDetails.scope.recsScope,"chains.response.done");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(klXHR.requestDetails.scope.recsElem);klevu.setObjectPath(klXHR.requestDetails,"response.data",klXHR.responseObj.data);klevu.setObjectPath(klXHR.requestDetails,"context.status",klXHR.status);klevu.setObjectPath(klXHR.requestDetails,"context.isSuccess",klXHR.isSuccess);chain.setData(klXHR.requestDetails);chain.fire();}},error:function(klXHR){var chain=klevu.getObjectPath(klXHR.requestDetails.scope.recsScope,"chains.response.fail");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(klXHR.requestDetails.scope.recsElem);klevu.setObjectPath(klXHR.requestDetails,"response.data",{});klevu.setObjectPath(klXHR.requestDetails,"context.status",klXHR.status);klevu.setObjectPath(klXHR.requestDetails,"context.isSuccess",klXHR.isSuccess);chain.setData(klXHR.requestDetails);chain.fire();}},data:"",};data.context.requestDetails=data;}else{}}});baseRecs.getScope().chains.request.fetch.send.add({name:"sendRequest",fire:function(data,scope){if(data.context.eventAction!=="recsFetch")return;data.scope=scope;if(data.context.doCall){data.context.requestObject={url:data.request.settings.url,type:"FETCH",method:"GET",mimeType:"application/json; charset=UTF-8",contentType:"application/json; charset=utf-8",dataType:"json",crossDomain:true,success:function(data,requestDetails,status,isSuccess){var chain=klevu.getObjectPath(requestDetails.scope.recsScope,"chains.response.success");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(requestDetails.scope.recsElem);klevu.setObjectPath(requestDetails,"response.data",data);klevu.setObjectPath(requestDetails,"context.status",status);klevu.setObjectPath(requestDetails,"context.isSuccess",isSuccess);chain.setData(requestDetails);chain.fire();}},error:function(requestDetails,status,isSuccess){var chain=klevu.getObjectPath(requestDetails.scope.recsScope,"chains.response.fail");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(requestDetails.scope.recsElem);klevu.setObjectPath(requestDetails,"response.data",{});klevu.setObjectPath(requestDetails,"context.status",status);klevu.setObjectPath(requestDetails,"context.isSuccess",isSuccess);chain.setData(requestDetails);chain.fire();}},data:"",};data.context.requestDetails=klevu.extend(true,{},data);}else{}}});baseRecs.getScope().chains.request.control.add({name:"initRequest",fire:function(data,scope){data.context.doCall=true;var chain=klevu.getObjectPath(scope.recsScope,"chains.request.build");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.recsElem);chain.setData(data);chain.fire();scope.recsScope.data=data;if(data.context.doCall===false)return false;}else{data.context.preventDefault=true;scope.recsScope.data=data;return false;}}});baseRecs.getScope().chains.request.control.add({name:"generateURL",fire:function(data,scope){var recsUrl=klevu.getSetting(scope.recsScope.settings,"settings.url.recsEndpoint",false);if(recsUrl){data.request.settings.url=klevu.settings.url.protocol+recsUrl+data.context.apiKey+"/settings/"+data.context.recId;}}});baseRecs.getScope().chains.request.control.add({name:"addQueryParamsToUrl",fire:function(data,scope){var recsUrl=klevu.getObjectPath(data.request,"settings.url",false);if(recsUrl){var queryParams=[];if(typeof klevu_page_meta!=="undefined"){if(klevu_page_meta.categoryName)queryParams.push("cp="+encodeURIComponent(klevu.dom.helpers.convertHtmlToText(klevu_page_meta.categoryName)));if(klevu_page_meta.itemGroupId)queryParams.push("gpid="+encodeURIComponent(klevu_page_meta.itemGroupId));if(klevu_page_meta.itemId)queryParams.push("pid="+encodeURIComponent(klevu_page_meta.itemId));}
if(klevu.user.getSegments())queryParams.push("sids="+encodeURIComponent(klevu.user.getSegments().join(",")));if(queryParams.length>0){recsUrl=recsUrl+"?"+queryParams.join('&');data.request.settings.url=recsUrl;}}}});baseRecs.getScope().chains.request.control.add({name:"makeRequest",fire:function(data,scope){var chain=klevu.getObjectPath(scope.recsScope,"chains.request.send");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.recsElem);chain.setData(data);chain.fire();scope.recsScope.data=data;return false;}}});baseRecs.getScope().chains.request.build.add({name:"buildMap",fire:function(data,scope){data.context.status=null;data.context.isSuccess=false;data.context.apiKey=klevu.getSetting(scope.recsScope.settings,"settings.recs.apiKey",klevu.getGlobalSetting("search.apiKey",klevu.getGlobalSetting("global.apiKey")));data.context.recId=klevu.getSetting(scope.recsScope.settings,"settings.recs.recId",null);data.request.requestObject={};}});baseRecs.getScope().chains.request.send.add({name:"checkFetch",fire:function(data,scope){if(window.fetch){data.context.eventAction="recsFetch";}else{data.context.eventAction="recsAjax";}}});baseRecs.getScope().chains.request.send.add({name:"requestTypeAjax",fire:function(data,scope){if(data.context.eventAction==="searchAjax"){var chain=klevu.getObjectPath(scope.recsScope,"chains.request.ajax.send");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.recsElem);chain.setData(data);chain.fire();scope.recsScope.data=data;}}}});baseRecs.getScope().chains.request.send.add({name:"requestTypeFetch",fire:function(data,scope){if(data.context.eventAction!=="searchAjax"){var chain=klevu.getObjectPath(scope.recsScope,"chains.request.fetch.send");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.recsElem);chain.setData(data);chain.fire();scope.recsScope.data=data;}}}});baseRecs.getScope().chains.request.send.add({name:"requestSend",fire:function(data,scope){klevu.request(data.context.requestObject,data.context.requestDetails);}});baseRecs.getScope().chains.response.success.add({name:"checkForSuccess",fire:function(data,scope){scope.recsElem.data=data;if(data.context.isSuccess===false)return false;}});baseRecs.getScope().chains.response.success.add({name:"executeAjaxResponseProcessor",fire:function(data,scope){if(data.context.eventAction==="recsAjax"){var chain=klevu.getObjectPath(scope.recsScope,"chains.response.ajax.success");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.recsElem);chain.setData(data);chain.fire();}
scope.recsScope.data=data;}}});baseRecs.getScope().chains.response.success.add({name:"executeFetchResponseProcessor",fire:function(data,scope){if(data.context.eventAction==="recsFetch"){var chain=klevu.getObjectPath(scope.recsScope,"chains.response.fetch.success");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.recsElem);chain.setData(data);chain.fire();}
scope.recsScope.data=data;}}});baseRecs.getScope().chains.response.success.add({name:"saveSettings",fire:function(data,scope){scope.recsScope.kmcData=klevu.getObjectPath(data.response,"data");}});baseRecs.getScope().chains.response.success.add({name:"checkForHideBanner",fire:function(data,scope){var action=klevu.getObjectPath(scope.recsScope,"kmcData.metadata.action",false);if(action==="HIDE_RECOMMENDATION"){var chain=klevu.getObjectPath(scope.recsScope,"chains.type.hideBanner");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.recsElem);chain.setData(data);chain.fire();}
return false;}}});baseRecs.getScope().chains.response.success.add({name:"checkForStaticContent",fire:function(data,scope){var action=klevu.getObjectPath(scope.recsScope,"kmcData.metadata.action",false);if(action==="STATIC_CONTENT"){var chain=klevu.getObjectPath(scope.recsScope,"chains.type.staticContent");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.recsElem);chain.setData(data);chain.fire();}
return false;}}});baseRecs.getScope().chains.response.success.add({name:"buildTheSearchObject",fire:function(data,scope){scope.recsScope.searchObject=klevu.searchObjectClone(klevu.search.base);scope.recsScope.searchObject.setWebhookSettings({scope:"all,block,recs"});}});baseRecs.getScope().chains.response.success.add({name:"executeSearchObjectPowerUp",fire:function(data,scope){var chain=klevu.getObjectPath(scope.recsScope,"chains.search.control");if(!klevu.isUndefined(chain)&&chain.list().length!==0){chain.setScope(scope.recsElem);chain.setData(data);chain.fire();}
scope.recsScope.data=data;}});klevu.extend(true,klevu,{recs:{base:baseRecs,baseBuild:true}});})(klevu);klevu.support.register({name:"recs",loaded:true,active:true,dependency:["core.lib","search"]});