1var requirejs,require,define;(function(undef){var main,req,makeMap,handlers,defined={},waiting={},config={},defining={},hasOwn=Object.prototype.hasOwnProperty,aps=[].slice,jsSuffixRegExp=/\.js$/;function hasProp(obj,prop){return hasOwn.call(obj,prop)}function normalize(name,baseName){var nameParts,nameSegment,mapValue,foundMap,lastIndex,foundI,foundStarMap,starI,i,j,part,normalizedBaseParts,baseParts=baseName&&baseName.split("/"),map=config.map,starMap=map&&map["*"]||{};if(name){name=name.split("/");lastIndex=name.length-1;if(config.nodeIdCompat&&jsSuffixRegExp.test(name[lastIndex])){name[lastIndex]=name[lastIndex].replace(jsSuffixRegExp,"")}if(name[0].charAt(0)==="."&&baseParts){normalizedBaseParts=baseParts.slice(0,baseParts.length-1);name=normalizedBaseParts.concat(name)}for(i=0;i<name.length;i++){part=name[i];if(part==="."){name.splice(i,1);i-=1}else if(part===".."){if(i===0||i===1&&name[2]===".."||name[i-1]===".."){continue}else if(i>0){name.splice(i-1,2);i-=2}}}name=name.join("/")}if((baseParts||starMap)&&map){nameParts=name.split("/");for(i=nameParts.length;i>0;i-=1){nameSegment=nameParts.slice(0,i).join("/");if(baseParts){for(j=baseParts.length;j>0;j-=1){mapValue=map[baseParts.slice(0,j).join("/")];if(mapValue){mapValue=mapValue[nameSegment];if(mapValue){foundMap=mapValue;foundI=i;break}}}}if(foundMap){break}if(!foundStarMap&&starMap&&starMap[nameSegment]){foundStarMap=starMap[nameSegment];starI=i}}if(!foundMap&&foundStarMap){foundMap=foundStarMap;foundI=starI}if(foundMap){nameParts.splice(0,foundI,foundMap);name=nameParts.join("/")}}return name}function makeRequire(relName,forceSync){return function(){var args=aps.call(arguments,0);if(typeof args[0]!=="string"&&args.length===1){args.push(null)}return req.apply(undef,args.concat([relName,forceSync]))}}function makeNormalize(relName){return function(name){return normalize(name,relName)}}function makeLoad(depName){return function(value){defined[depName]=value}}function callDep(name){if(hasProp(waiting,name)){var args=waiting[name];delete waiting[name];defining[name]=true;main.apply(undef,args)}if(!hasProp(defined,name)&&!hasProp(defining,name)){throw new Error("No "+name)}return defined[name]}function splitPrefix(name){var prefix,index=name?name.indexOf("!"):-1;if(index>-1){prefix=name.substring(0,index);name=name.substring(index+1,name.length)}return[prefix,name]}function makeRelParts(relName){return relName?splitPrefix(relName):[]}makeMap=function(name,relParts){var plugin,parts=splitPrefix(name),prefix=parts[0],relResourceName=relParts[1];name=parts[1];if(prefix){prefix=normalize(prefix,relResourceName);plugin=callDep(prefix)}if(prefix){if(plugin&&plugin.normalize){name=plugin.normalize(name,makeNormalize(relResourceName))}else{name=normalize(name,relResourceName)}}else{name=normalize(name,relResourceName);parts=splitPrefix(name);prefix=parts[0];name=parts[1];if(prefix){plugin=callDep(prefix)}}return{f:prefix?prefix+"!"+name:name,n:name,pr:prefix,p:plugin}};function makeConfig(name){return function(){return config&&config.config&&config.config[name]||{}}}handlers={require:function(name){return makeRequire(name)},exports:function(name){var e=defined[name];if(typeof e!=="undefined"){return e}else{return defined[name]={}}},module:function(name){return{id:name,uri:"",exports:defined[name],config:makeConfig(name)}}};main=function(name,deps,callback,relName){var cjsModule,depName,ret,map,i,relParts,args=[],callbackType=typeof callback,usingExports;relName=relName||name;relParts=makeRelParts(relName);if(callbackType==="undefined"||callbackType==="function"){deps=!deps.length&&callback.length?["require","exports","module"]:deps;for(i=0;i<deps.length;i+=1){map=makeMap(deps[i],relParts);depName=map.f;if(depName==="require"){args[i]=handlers.require(name)}else if(depName==="exports"){args[i]=handlers.exports(name);usingExports=true}else if(depName==="module"){cjsModule=args[i]=handlers.module(name)}else if(hasProp(defined,depName)||hasProp(waiting,depName)||hasProp(defining,depName)){args[i]=callDep(depName)}else if(map.p){map.p.load(map.n,makeRequire(relName,true),makeLoad(depName),{});args[i]=defined[depName]}else{throw new Error(name+" missing "+depName)}}
1ret=callback?callback.apply(defined[name],args):undefined;if(name){if(cjsModule&&cjsModule.exports!==undef&&cjsModule.exports!==defined[name]){defined[name]=cjsModule.exports}else if(ret!==undef||!usingExports){defined[name]=ret}}}else if(name){defined[name]=callback}};requirejs=require=req=function(deps,callback,relName,forceSync,alt){if(typeof deps==="string"){if(handlers[deps]){return handlers[deps](callback)}return callDep(makeMap(deps,makeRelParts(callback)).f)}else if(!deps.splice){config=deps;if(config.deps){req(config.deps,config.callback)}if(!callback){return}if(callback.splice){deps=callback;callback=relName;relName=null}else{deps=undef}}callback=callback||function(){};if(typeof relName==="function"){relName=forceSync;forceSync=alt}if(forceSync){main(undef,deps,callback,relName)}else{setTimeout(function(){main(undef,deps,callback,relName)},4)}return req};req.config=function(cfg){return req(cfg)};requirejs._defined=defined;define=function(name,deps,callback){if(typeof name!=="string"){throw new Error("See almond README: incorrect module build, no module name")}if(!deps.splice){callback=deps;deps=[]}if(!hasProp(defined,name)&&!hasProp(waiting,name)){waiting[name]=[name,deps,callback]}};define.amd={jQuery:true}})();define("almond",function(){});define("utl/compatibility",[],function(){"use strict";if(!Object.clone){Object.clone=function(aObject){var object,indItem,objectLength,attr;if(aObject===null||"object"!==typeof aObject){return aObject}if(aObject instanceof Date){object=new Date;object.setTime(aObject.getTime());return object}if(aObject instanceof Array){object=[];for(indItem=0,objectLength=aObject.length;indItem<objectLength;indItem+=1){object[indItem]=Object.clone(aObject[indItem])}return object}if(aObject instanceof Object){object={};for(attr in aObject){if(aObject.hasOwnProperty(attr)){object[attr]=Object.clone(aObject[attr])}}return object}throw new Error("Cloning object failed due to unsupported data type")}}if(!Object.getPath){Object.getPath=function(aObject,aPath){var dataObj,pathTab,key;dataObj=aObject;pathTab=aPath.split(".");while(pathTab.length>1){key=pathTab.shift();if(!dataObj.hasOwnProperty(key)){return null}dataObj=dataObj[key]}return dataObj[pathTab.shift()]}}if(!Object.setPath){Object.setPath=function(aObject,aPath,aValue){var dataObj,pathTab,key;dataObj=aObject;pathTab=aPath.split(".");while(pathTab.length>1){key=pathTab.shift();if(!dataObj.hasOwnProperty(key)){dataObj[key]={}}dataObj=dataObj[key]}dataObj[pathTab.shift()]=aValue}}if(!Object.extend){Object.extend=function(aObject,aExtender){var key;if(!aObject){aObject={}}for(key in aExtender){if(aExtender.hasOwnProperty(key)){aObject[key]=aExtender[key]}}return aObject}}if(!Object.keys){Object.keys=function(){var hasOwnProperty,hasDontEnumBug,dontEnums,dontEnumsLength;hasOwnProperty=Object.prototype.hasOwnProperty;hasDontEnumBug=!{toString:null}.propertyIsEnumerable("toString");dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"];dontEnumsLength=dontEnums.length;return function(obj){if(typeof obj!=="function"&&(typeof obj!=="object"||obj===null)){throw new TypeError("Object.keys called on non-object")}var result,prop,i;result=[];for(prop in obj){if(hasOwnProperty.call(obj,prop)){result.push(prop)}}if(hasDontEnumBug){for(i=0;i<dontEnumsLength;i+=1){if(hasOwnProperty.call(obj,dontEnums[i])){result.push(dontEnums[i])}}}return result}}}if(!Array.prototype.indexOf){Array.prototype.indexOf=function(aSearchElement,aFromIndex){var k,O,len,n;if(this==null){throw new TypeError('"this" vaut null ou n est pas défini')}O=Object(this);len=O.length>>>0;if(len===0){return-1}n=+aFromIndex||0;if(Math.abs(n)===Infinity){n=0}if(n>=len){return-1}k=Math.max(n>=0?n:len-Math.abs(n),0);while(k<len){if(k in O&&O[k]===aSearchElement){return k}k+=1}return-1}}if(!Array.prototype.toObject){Array.prototype.toObject=function(aArray){var obj,indArray;obj={};for(indArray=0;indArray<aArray.length;indArray+=1){obj[aArray[indArray]]=null}return obj}}if(!Function.prototype.bind){Function.prototype.bind=function(aThisArg){var self,argumentTab;self=this;
1argumentTab=Array.prototype.slice.call(arguments,1);return function(){return self.apply(aThisArg,argumentTab.concat(Array.prototype.slice.call(arguments,0)))}}}if(!Date.prototype.getWeekNumber){Date.prototype.getWeekNumber=function(){const d=new Date(Date.UTC(this.getFullYear(),this.getMonth(),this.getDate()));const dayNum=d.getUTCDay()||7;d.setUTCDate(d.getUTCDate()+4-dayNum);const yearStart=new Date(Date.UTC(d.getUTCFullYear(),0,1));const weekNo=Math.ceil(((d-yearStart)/864e5+1)/7);return weekNo}}});define("utl/console",[],function(){"use strict";if(!window.console.builtin){window.console.builtin={error:window.console.error||window.console.log,warn:window.console.warn||window.console.log,info:window.console.info||window.console.log,log:window.console.log,debug:window.console.debug||window.console.log,none:function(){return}}}if(!window.console.setLogLevel){window.console.setLogLevel=function(aLogLevel){window.console.error=aLogLevel>0?window.console.builtin.error:window.console.builtin.none;window.console.warn=aLogLevel>1?window.console.builtin.warn:window.console.builtin.none;window.console.info=aLogLevel>2?window.console.builtin.info:window.console.builtin.none;window.console.log=aLogLevel>3?window.console.builtin.log:window.console.builtin.none;window.console.debug=aLogLevel>4?window.console.builtin.debug:window.console.builtin.none}}return window.console});!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1 -ajax,-ajax/jsonp,-ajax/load,-ajax/parseXML,-ajax/script,-ajax/var/location,-ajax/var/nonce,-ajax/var/rquery,-ajax/xhr,-manipulation/_evalUrl,-event/ajax,-effects,-effects/Tween,-effects/animatedSelector",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c<b?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:h,sort:c.sort,splice:c.splice},r.extend=r.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||r.isFunction(g)||(g={}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=Array.isArray(d)))?(e?(e=!1,f=c&&Array.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},r.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===r.type(a)},isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return!(!a||"[object Object]"!==k.call(a))&&(!(b=e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c&&m.call(c)===n))},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?j[k.call(a)]||"object":typeof a},globalEval:function(a){p(a)},camelCase:function(a){return a.replace(t,"ms-").replace(u,v)},each:function(a,b){var c,d=0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for(d in a)if(b.call(a[d],d,a[d])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(w(Object(a))?r.merge(c,"string"==typeof a?[a]:a):h.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:i.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,e,f=0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for(f in a)e=b(a[f],f,c),null!=e&&h.push(e);return g.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;if("string"==typeof b&&(c=a[b],b=a,a=c),r.isFunction(a))return d=f.call(arguments,2),e=function(){return a.apply(b||this,d.concat(f.call(arguments)))},e.guid=a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol&&(r.fn[Symbol.iterator]=c[Symbol.iterator]),r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){j["[object "+b+"]"]=b.toLowerCase()});function w(a){var b=!!a&&"length"in a&&a.length,c=r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*ne
vendor: 1,769 bytes, line 1
1w Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return c;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",M="\\["+K+"*("+L+")(?:"+K+"*([*^$|!~]?=)"+K+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+L+"))|)"+K+"*\\]",N=":("+L+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+M+")*)|.*)\\)|)",O=new RegExp(K+"+","g"),P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"�
vendor: 11,355 bytes, line 1
1":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do
1{if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-")}
vendor: 4,982 bytes, line 1
1while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c<b;c+=2)a.push(c);return a}),odd:pa(function(a,b){for(var c=1;c<b;c+=2)a.push(c);return a}),lt:pa(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=ma(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=na(b);function ra(){}ra.prototype=d.filters=d.pseudos,d.setFilters=new ra,g=ga.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){c&&!(e=Q.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?ga.error(a):z(a,i).slice(0)};function sa(a){for(var b=0,c=a.length,d="";b<c;b++)d+=a[b].value;return d}function ta(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=x++;return b.first?function(b,c,e){while(b=b[d])if(1===b.nodeType||g)return a(b,c,e);return!1}:function(b,c,i){var j,k,l,m=[w,h];if(i){while(b=b[d])if((1===b.nodeType||g)&&a(b,c,i))return!0}else while(b=b[d])if(1===b.nodeType||g)if(l=b[u]||(b[u]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===w&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}return!1}}function ua(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d<e;d++)ga(a,b[d],c);return c}function wa(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;h<i;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function xa(a,b,c,d,e,f){return d&&!d[u]&&(d=xa(d)),e&&!e[u]&&(e=xa(e,f)),ia(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||va(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:wa(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=wa(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i<f;i++)if(c=d.relative[a[i].type])m=[ta(ua(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;e<f;e++)if(d.relative[a[e].type])break;return xa(i>1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i<e&&ya(a.slice(i,e)),e<f&&ya(a=a.slice(e)),e<f&&sa(a))}m.push(c)}return ua(m)}function za(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>
vendor: 7,177 bytes, line 1
12&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b<d;b++)if(r.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;b<d;b++)r.find(a,e[b],c);return d>1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a<c;a++)if(r.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&r(a);if(!A.test(a))for(;d<e;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h<f.length)f[h].apply(c[0],c[1])===!1&&a.stopOnFalse&&(h=f.length,c=!1)}a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},j={add:function(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){r.each(b,function(b,c){r.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==r.type(c)&&d(c)})}(arguments),c&&!b&&i()),this},remove:function(){return r.each(arguments,function(a,b){var c;while((c=r.inArray(b,f,c))>-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},
vendor: 1,315 bytes, line 1
1catch:function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b<f)){if(a=d.apply(h,i),a===c.promise())throw new TypeError("Thenable self-resolution");j=a&&("object"==typeof a||"function"==typeof a)&&a.then,r.isFunction(j)?e?j.call(a,g(f,c,N,e),g(f,c,O,e)):(f++,j.call(a,g(f,c,N,e),g(f,c,O,e),g(f,c,N,c.notifyWith))):(d!==N&&(h=void 0,i=[a]),(e||c.resolveWith)(h,i))}},k=e?j:function(){try{j()}catch(a){r.Deferred.exceptionHook&&r.Deferred.exceptionHook(a,k.stackTrace),b+1>=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];
vendor: 14,289 bytes, line 1
1e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S),a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h<i;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},U=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function V(){this.expando=r.expando+V.uid++}V.uid=1,V.prototype={cache:function(a){var b=a[this.expando];return b||(b={},U(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[r.camelCase(b)]=c;else for(d in b)e[r.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){Array.isArray(b)?b=b.map(r.camelCase):(b=r.camelCase(b),b=b in d?[b]:b.match(L)||[]),c=b.length;while(c--)delete d[b[c]]}(void 0===b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!r.isEmptyObject(b)}};var W=new V,X=new V,Y=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function $(a){return"true"===a||"false"!==a&&("null"===a?null:a===+a+""?+a:Y.test(a)?JSON.parse(a):a)}function _(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Z,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c=$(c)}catch(e){}X.set(a,b,c)}else c=void 0;return c}r.extend({hasData:function(a){return X.hasData(a)||W.hasData(a)},data:function(a,b,c){return X.access(a,b,c)},removeData:function(a,b){X.remove(a,b)},_data:function(a,b,c){return W.access(a,b,c)},_removeData:function(a,b){W.remove(a,b)}}),r.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=X.get(f),1===f.nodeType&&!W.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),_(f,d,e[d])));W.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){X.set(this,a)}):T(this,function(b){var c;if(f&&void 0===b){if(c=X.get(f,a),void 0!==c)return c;if(c=_(f,a),void 0!==c)return c}else this.each(function(){X.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?r.queue(this[0],a):void 0===b?this:this.each(function(){var c=r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this.each(function(){r.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=W.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var aa=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ba=new RegExp("^(?:([+-])=|)("+aa+")([a-z%]*)$","i"),ca=["Top","Right","Bottom","Left"],da=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&r.contains(a.ownerDocument,a)&&"none"===r.css(a,"display")},ea=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};function fa(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return r.css(a,b,"")},i=h(),j=c&&c[3]||(r.cssNumber[b]?"":"px"),k=(r.cssNumber[b]||"px"!==j&&+i)&&ba.exec(r.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do{f=f||".5",k/=f,r.style(a,b,k+j)}while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}var ga={};function ha(a){var b,c=a.ownerDocument,d=a.nodeName,e=ga[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=r.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),ga[d]=e,e)}function ia(a,b){for(var c,d,e=[],f=0,g=a.length;f<g;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=W.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&da(d)&&(e[f]=ha(d))):"none"!==c&&(e[f]="none",W.set(d,"display",c)));for(f=0;f<g;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}r.fn.extend({show:function(){return ia(this,!0)},hide:function(){return ia(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){da(this)?r(this).show():r(this).hide()})}});var ja=/^(?:checkbox|radio)$/i,ka=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c<d;c++)W.set(a[c],"globalEval",!b||W.get(b[c],"globalEval"))}var pa=/<|&#?\w+;/;function qa(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;n<o;n++)if(f=a[n],f||0===f)if("object"===r.type(f))r.merge(m,f.nodeType?[f]:f);else if(pa.test(f)){g=g||l.appendChild(b.createElement("div")),h=(ka.exec(f)||["",""])[1].toLowerCase(),i=ma[h]||ma._default,g.innerHTML=i[1]+r.htmlPrefilter(f)+i[2],k=i[0];while(k--)g=g.lastChild;r.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));l.textContent="",n=0;while(f=m[n++])if(d&&r.inArray(f,d)>-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c<arguments.length;c++)i[c]=arguments[c];if(b.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,b)!==!1){h=r.event.handlers.call(this,b,j),c=0;while((f=h[c++])&&!b.isPropagationStopped()){b.currentTarget=f.elem,d=0;while((g=f.handlers[d++])&&!b.isImmediatePropagationStopped())b.rnamespace&&!b.rnamespace.test(g.namespace)||(b.handleObj=g,b.data=g.data,e=((r.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(b.result=e)===!1&&(b.preventDefault(),b.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,b),b.result}},handlers:function(a,b){var c,d,e,f,g,h=[],i=b.delegateCount,j=a.target;if(i&&j.nodeType&&!("click"===a.type&&a.button>=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c<i;c++)d=b[c],e=d.selector+" ",void 0===g[e]&&(g[e]=d.needsContext?r(e,this).index(j)>-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i<b.length&&h.push({elem:j,handlers:b.slice(i)}),h},addProp:function(a,b){Object.defineProperty(r.Event.prototype,a,{enumerable:!0,configurable:!0,get:r.isFunction(b)?function(){if(this.originalEvent)return b(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[a]},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[r.expando]?a:new r.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==xa()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===xa()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&B(this,"input"))return this.click(),!1},_default:function(a){return B(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},r.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},r.Event=function(a,b){return this instanceof r.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?va:wa,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&r.extend(this,b),this.timeStamp=a&&a.timeStamp||r.now(),void(this[r.expando]=!0)):new r.Event(a,b)},r.Event.prototype={constructor:r.Event,isDefaultPrevented:wa,isPropagationStopped:wa,isImmediatePropagationStopped:wa,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=va,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=va,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=va,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},r.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,char
vendor: 8,476 bytes, line 1
1:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&sa.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&ta.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},r.event.addProp),r.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){r.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||r.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),r.fn.extend({on:function(a,b,c,d){return ya(this,a,b,c,d)},one:function(a,b,c,d){return ya(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,r(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=wa),this.each(function(){r.event.remove(this,a,c,b)})}});var za=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/<script|<style|<link/i,Ba=/checked\s*(?:[^=]|=\s*.checked.)/i,Ca=/^true\/(.*)/,Da=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c<d;c++)r.event.add(b,e,j[e][c])}X.hasData(a)&&(h=X.access(a),i=r.extend({},h),X.set(b,i))}}function Ia(a,b){var c=b.nodeName.toLowerCase();"input"===c&&ja.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function Ja(a,b,c,d){b=g.apply([],b);var e,f,h,i,j,k,l=0,m=a.length,n=m-1,q=b[0],s=r.isFunction(q);if(s||m>1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l<m;l++)j=e,l!==n&&(j=r.clone(j,!0,!0),i&&r.merge(h,na(j,"script"))),c.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,r.map(h,Ga),l=0;l<i;l++)j=h[l],la.test(j.type||"")&&!W.access(j,"globalEval")&&r.contains(k,j)&&(j.src?r._evalUrl&&r._evalUrl(j.src):p(j.textContent.replace(Da,""),k))}return a}function Ka(a,b,c){for(var d,e=b?r.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||r.cleanData(na(d)),d.parentNode&&(c&&r.contains(d.ownerDocument,d)&&oa(na(d,"script")),d.parentNode.removeChild(d));return a}r.extend({htmlPrefilter:function(a){return a.replace(za,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d<e;d++)Ia(f[d],g[d]);if(b)if(c)for(f=f||na(a),g=g||na(h),d=0,e=f.length;d<e;d++)Ha(f[d],g[d]);else Ha(a,h);return g=na(h,"script"),g.length>0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c<d;c++)b=this[c]||{},1===b.nodeType&&(r.cleanData(na(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return Ja(this,arguments,function(b){var c=this.parentNode;r.inArray(this,a)<0&&(r.cleanData(na(this)),c&&c.replaceChild(b,this))},a)}}),r.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){r.fn[a]=function(a){for(var c,d=[],e=r(a),f=e.length-1,g=0;g<=f;g++)c=g===f?this:this.clone(!0),r(e[g])[b](c),h.apply(d,c.get());return this.pushStack(d)}});var La=/^margin/,Ma=new RegExp("^("+aa+")(?!px)[a-z%]+$","i"),Na=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(i){i.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",i.innerHTML="",ra.appendChild(h);var b=a.getComputedStyle(i);c="1%"!==b.top,g="2px"===b.marginLeft,e="4px"===b.width,i.style.marginRight="50%",f="4px"===b.marginRight,ra.removeChild(h),i=null}}var c,e,f,g,h=d.createElement("div"),i=d.createElement("div");i.style&&(i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",o.clearCloneStyle="content-box"===i.style.backgroundClip,h.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",h.appendChild(i),r.extend(o,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),e},pixelMarginRight:function(){return b(),f},reliableMarginLeft:function(){return b(),g}}))}();function Oa(a,b,c){var d,e,f,g,h=a.style;return c=c||Na(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||r.contains(a.ownerDocument,a)||(g=r.style(a,b)),!o.pixelMarginRight()&&Ma.test(g)&&La.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function Pa(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}var Qa=/^(none|table(?!-c[ea]).+)/,Ra=/^--/,Sa={position:"absolute",visibility:"hidden",display:"block"},Ta={letterSpacing:"0",fontWeight:"400"},Ua=["Webkit","Moz","ms"],Va=d.createElement("div").style;function Wa(a){if(a in Va)return a;var b=a[0].toUpperCase()+a.slice(1),c=Ua.length;while(c--)if(a=Ua[c]+b,a in Va)return a}function Xa(a){var b=r.cssProps[a];return b||(b=r.cssProps[a]=Wa(a)||a),b}function Ya(a,b,c){var d=ba.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function Za(a,b,c,d,e){var f,g=0;for(f=c===(d?"border":"content")?4:"width"===b?1:0;f<4;f+=2)"margin"===c&&(g+=r.css(a,c+ca[f],!0,e)),d?("content"===c&&(g-=r.css(a,"padding"+ca[f],!0,e)),"margin"!==c&&(g-=r.css(a,"border"+ca[f]+"Width",!0,e))):(g+=r.css(a,"padding"+ca[f],!0,e),"padding"!==c&&(g+=r.css(a,"border"+ca[f]+"Width",!0,e)));return g}function $a(a,b,c){var d,e=Na(a),f=Oa(a,b,e),g="border-box"===r.css(a,"boxSizing",!1,e);return Ma.test(f)?f:(d=g&&(o.boxSizingReliable()||f===a.style[b]),"auto"===f&&(f=a["offset"+b[0].toUpperCase()+b.slice(1)]),f=parseFloat(f)||0,f+Za(a,b,c||(g?"border":"content"),d,e)+"px")}r.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Oa(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{
vendor: 13,001 bytes, line 1
1float:"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=r.camelCase(b),i=Ra.test(b),j=a.style;return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:j[b]:(f=typeof c,"string"===f&&(e=ba.exec(c))&&e[1]&&(c=fa(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(r.cssNumber[h]?"":"px")),o.clearCloneStyle||""!==c||0!==b.indexOf("background")||(j[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i?j.setProperty(b,c):j[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=r.camelCase(b),i=Ra.test(b);return i||(b=Xa(h)),g=r.cssHooks[b]||r.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=Oa(a,b,d)),"normal"===e&&b in Ta&&(e=Ta[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),r.each(["height","width"],function(a,b){r.cssHooks[b]={get:function(a,c,d){if(c)return!Qa.test(r.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?$a(a,b,d):ea(a,Sa,function(){return $a(a,b,d)})},set:function(a,c,d){var e,f=d&&Na(a),g=d&&Za(a,b,d,"border-box"===r.css(a,"boxSizing",!1,f),f);return g&&(e=ba.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=r.css(a,b)),Ya(a,c,g)}}}),r.cssHooks.marginLeft=Pa(o.reliableMarginLeft,function(a,b){if(b)return(parseFloat(Oa(a,"marginLeft"))||a.getBoundingClientRect().left-ea(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px"}),r.each({margin:"",padding:"",border:"Width"},function(a,b){r.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];d<4;d++)e[a+ca[d]+b]=f[d]||f[d-2]||f[0];return e}},La.test(a)||(r.cssHooks[a+b].set=Ya)}),r.fn.extend({css:function(a,b){return T(this,function(a,b,c){var d,e,f={},g=0;if(Array.isArray(b)){for(d=Na(a),e=b.length;g<e;g++)f[b[g]]=r.css(a,b[g],!1,d);return f}return void 0!==c?r.style(a,b,c):r.css(a,b)},a,b,arguments.length>1)}}),r.fn.delay=function(b,c){return b=r.fx?r.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=d.createElement("input"),b=d.createElement("select"),c=b.appendChild(d.createElement("option"));a.type="checkbox",o.checkOn=""!==a.value,o.optSelected=c.selected,a=d.createElement("input"),a.value="t",a.type="radio",o.radioValue="t"===a.value}();var _a,ab=r.expr.attrHandle;r.fn.extend({attr:function(a,b){return T(this,r.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?_a:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),_a={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=ab[b]||r.find.attr;ab[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=ab[g],ab[g]=e,e=null!=c(a,b,d)?g:null,ab[g]=f),e}});var bb=/^(?:input|select|textarea|button)$/i,cb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function db(a){var b=a.match(L)||[];return b.join(" ")}function eb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,eb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=eb(c),d=1===c.nodeType&&" "+db(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=db(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,eb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=eb(c),d=1===c.nodeType&&" "+db(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=db(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,eb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=eb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+db(eb(c))+" ").indexOf(b)>-1)return!0;return!1}});var fb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(fb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:db(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d<i;d++)if(c=e[d],(c.selected||d===f)&&!c.disabled&&(!c.parentNode.disabled||!B(c.parentNode,"optgroup"))){if(b=r(c).val(),g)return b;h.push(b)}return h},set:function(a,b){var c,d,e=a.options,f=r.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=r.inArray(r.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var gb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!gb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,gb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var hb=/\[\]$/,ib=/\r?\n/g,jb=/^(?:submit|button|image|reset|file)$/i,kb=/^(?:input|select|textarea|keygen)/i;function lb(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||hb.test(a)?d(a,e):lb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)lb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)lb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&kb.test(this.nodeName)&&!jb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ib,"\r\n")}}):{name:b.name,value:c.replace(ib,"\r\n")}}).get()}}),r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},o.createHTMLDocument=function(){var a=d.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),r.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var e,f,g;return b||(o.createHTMLDocument?(b=d.implementation.createHTMLDocument(""),e=b.createElement("base"),e.href=d.location.href,b.head.appendChild(e)):b=d),f=C.exec(a),g=!c&&[],f?[b.createElement(f[1])]:(f=qa([a],b,g),g&&g.length&&r(g).remove(),r.merge([],f.childNodes))},r.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=r.css(a,"position"),l=r(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=r.css(a,"top"),i=r.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),r.isFunction(b)&&(b=b.call(a,c,r.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}}
1,r.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){r.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),b=f.ownerDocument,c=b.documentElement,e=b.defaultView,{top:d.top+e.pageYOffset-c.clientTop,left:d.left+e.pageXOffset-c.clientLeft}):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===r.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),B(a[0],"html")||(d=a.offset()),d={top:d.top+r.css(a[0],"borderTopWidth",!0),left:d.left+r.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-r.css(c,"marginTop",!0),left:b.left-d.left-r.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent;while(a&&"static"===r.css(a,"position"))a=a.offsetParent;return a||ra})}}),r.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;r.fn[a]=function(d){return T(this,function(a,d,e){var f;return r.isWindow(a)?f=a:9===a.nodeType&&(f=a.defaultView),void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),r.each(["top","left"],function(a,b){r.cssHooks[b]=Pa(o.pixelPosition,function(a,c){if(c)return c=Oa(a,b),Ma.test(c)?r(a).position()[b]+"px":c})}),r.each({Height:"height",Width:"width"},function(a,b){r.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){r.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return T(this,function(b,c,e){var f;return r.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?r.css(b,c,h):r.style(b,c,e,h)},b,g?e:void 0,g)}})}),r.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),r.holdReady=function(a){a?r.readyWait++:r.ready(!0)},r.isArray=Array.isArray,r.parseJSON=JSON.parse,r.nodeName=B,"function"==typeof define&&define.amd&&define("jquery",[],function(){return r});var mb=a.jQuery,nb=a.$;return r.noConflict=function(b){return a.$===r&&(a.$=nb),b&&a.jQuery===r&&(a.jQuery=mb),r},b||(a.jQuery=a.$=r),r});define("utl/common",["utl/console","jquery"],function(consoleObj,$){"use strict";window.filterBlogByTag=function(aTag){console.debug("Filtering content on tag "+aTag);if(aTag!=="all"){$(".tags_"+aTag).parent().parent().removeClass("d-none");$(".tags_"+aTag).parent().parent().addClass("d-flex");$(".tags_all").not(".tags_"+aTag).parent().parent().removeClass("d-flex");$(".tags_all").not(".tags_"+aTag).parent().parent().addClass("d-none")}else{$(".tags_all").parent().parent().removeClass("d-none");$(".tags_all").parent().parent().addClass("d-flex")}$(".badge_tag").removeClass("tag-primary");$(".badge_tag").addClass("tag-secondary");$(".badge_"+aTag).removeClass("tag-secondary");$(".badge_"+aTag).addClass("tag-primary")};window.filterTestimonialByTag=function(aTag){console.debug("Filtering content on tag "+aTag);if(aTag!=="all"){$(".tags_"+aTag).removeClass("d-none");$(".tags_"+aTag).addClass("d-flex");$(".tags_all").not(".tags_"+aTag).removeClass("d-flex");$(".tags_all").not(".tags_"+aTag).addClass("d-none")}else{$(".tags_all").removeClass("d-none");$(".tags_all").addClass("d-flex")}$(".badge_tag").removeClass("tag-primary");$(".badge_tag").addClass("tag-secondary");$(".badge_"+aTag).removeClass("tag-secondary");$(".badge_"+aTag).addClass("tag-primary")};return{}});define("utl/core",[],function(){"use strict";return{inherit:function(aChild,aParent){aChild.prototype=Object.create(aParent.prototype);aChild.prototype.constructor=aChild},require_p:function(aScriptTab){return new RSVP.Promise(function(resolve,reject){require(aScriptTab,function(){resolve.apply(null,arguments)},function(err){reject(err)})})},returnStatus:function(aCallback,aStatus,aData){var result;result={status:aStatus};if(aData){result.data=aData}if(aCallback){aCallback(result)}return result},queue:function(aFuncTab,aThisArg){var task,slice;
1slice=Array.prototype.slice;function next(){task=aFuncTab.shift();if(task){task.apply(aThisArg,[next].concat(slice.call(arguments,0)))}}next.apply(aThisArg,slice.call(arguments,2))},listenDomEvent:function(aDomElement,aEventId,aCallback){if(aDomElement.addEventListener){aDomElement.addEventListener(aEventId,aCallback,false)}else if(aDomElement.attachEvent){aDomElement.attachEvent("on"+aEventId,aCallback)}else{aDomElement["on"+aEventId]=aCallback}},detectScreenResize:function(aCallback){this.listenDomEvent(window,"resize",aCallback)},getScreenParameters:function(){var screenObj;screenObj={orientation:"landscape",width:window.innerWidth,height:window.innerHeight,pixelRatio:window.devicePixelRatio||1,deviceType:"large"};if(typeof window.screen.orientation==="object"){if(window.screen.orientation.type.indexOf("landscape")>=0){if(window.innerHeight>window.innerWidth){screenObj.orientation="portrait"}}else{if(window.innerWidth>window.innerHeight){screenObj.orientation="portrait"}}}else if(window.innerHeight>window.innerWidth){screenObj.orientation="portrait";screenObj.width=window.innerHeight;screenObj.height=window.innerWidth}if(screenObj.width<768){screenObj.deviceType="small"}else if(screenObj.width<992){screenObj.deviceType="medium"}else if(screenObj.width<1200){screenObj.deviceType="large"}return screenObj},isInternetExplorer:function(){if(!window.navigator.userAgent){return false}if(window.navigator.userAgent.indexOf("Edge")>-1||window.navigator.userAgent.match(/(MSIE)/i)||window.navigator.userAgent.match(/(Trident)/i)){return true}return false},startWaiting:function(aCallback){window.document.getElementById("WaitingScreen").style.display="block";if(aCallback){window.setTimeout(aCallback,100)}},stopWaiting:function(){window.document.getElementById("WaitingScreen").style.display="none"}}});define("text",["module"],function(module){"use strict";var text,fs,Cc,Ci,xpcIsWindows,progIds=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],xmlRegExp=/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,bodyRegExp=/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im,hasLocation=typeof location!=="undefined"&&location.href,defaultProtocol=hasLocation&&location.protocol&&location.protocol.replace(/\:/,""),defaultHostName=hasLocation&&location.hostname,defaultPort=hasLocation&&(location.port||undefined),buildMap={},masterConfig=module.config&&module.config()||{};function useDefault(value,defaultValue){return value===undefined||value===""?defaultValue:value}function isSamePort(protocol1,port1,protocol2,port2){if(port1===port2){return true}else if(protocol1===protocol2){if(protocol1==="http"){return useDefault(port1,"80")===useDefault(port2,"80")}else if(protocol1==="https"){return useDefault(port1,"443")===useDefault(port2,"443")}}return false}text={version:"2.0.15",strip:function(content){if(content){content=content.replace(xmlRegExp,"");var matches=content.match(bodyRegExp);if(matches){content=matches[1]}}else{content=""}return content},jsEscape:function(content){return content.replace(/(['\\])/g,"\\$1").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r").replace(/[\u2028]/g,"\\u2028").replace(/[\u2029]/g,"\\u2029")},createXhr:masterConfig.createXhr||function(){var xhr,i,progId;if(typeof XMLHttpRequest!=="undefined"){return new XMLHttpRequest}else if(typeof ActiveXObject!=="undefined"){for(i=0;i<3;i+=1){progId=progIds[i];try{xhr=new ActiveXObject(progId)}catch(e){}if(xhr){progIds=[progId];break}}}return xhr},parseName:function(name){var modName,ext,temp,strip=false,index=name.lastIndexOf("."),isRelative=name.indexOf("./")===0||name.indexOf("../")===0;if(index!==-1&&(!isRelative||index>1)){modName=name.substring(0,index);ext=name.substring(index+1)}else{modName=name}temp=ext||modName;index=temp.indexOf("!");if(index!==-1){strip=temp.substring(index+1)==="strip";temp=temp.substring(0,index);if(ext){ext=temp}else{modName=temp}}return{moduleName:modName,ext:ext,strip:strip}},xdRegExp:/^((\w+)\:)?\/\/([^\/\\]+)/,useXhr:function(url,protocol,hostname,port){var uProtocol,uHostName,uPort,match=text.xdRegExp.exec(url);if(!match){return true}uProtocol=match[2];uHostName=match[3];uHostName=uHostName.split(":");uPort=uHostName[1];uHostName=uHostName[0];return(!uProtocol||uProtocol===protocol)&&(!uHostName||uHostName.toLowerCase()===hostname.toLowerCase())&&(!uPort&&!uHostName||isSamePort(uProtocol,uPort,protocol,port))},finishLoad:function(name,strip,content,onLoad){content=strip?text.strip(content):content;if(masterConfig.isBuild){buildMap[name]=content}onLoad(content)},load:function(name,req,onLoad,config){if(config&&config.isBuild&&!config.inlineText){onLoad();return}masterConfig.isBuild=config&&config.isBuild;var parsed=text.parseName(name),nonStripName=parsed.moduleName+(parsed.ext?"."+parsed.ext:""),url=req.toUrl(nonStripName),useXhr=masterConfig.useXhr||text.useXhr;if(url.indexOf("empty:")===0){onLoad();return}if(!hasLocation||useXhr(url,defaultProtocol,defaultHostName,defaultPort)){text.get(url,function(content){text.finishLoad(name,parsed.strip,content,onLoad)},function(err){if(onLoad.error){onLoad.error(err)}})}else{req([nonStripName],function(content){text.finishLoad(parsed.moduleName+"."+parsed.ext,parsed.strip,content,onLoad)})}},write:function(pluginName,moduleName,write,config){if(buildMap.hasOwnProperty(moduleName)){var content=text.jsEscape(buildMap[moduleName]);write.asModule(pluginName+"!"+moduleName,"define(function () { return '"+content+"';});\n")}},writeFile:function(pluginName,moduleName,req,write,config){var parsed=text.parseName(moduleName),extPart=parsed.ext?"."+parsed.ext:"",nonStripName=parsed.moduleName+extPart,fileName=req.toUrl(parsed.moduleName+extPart)+".js";text.load(nonStripName,req,function(value){var textWrite=function(contents){return write(fileName,contents)};textWrite.asModule=function(moduleName,contents){return write.asModule(moduleName,fileName,contents)};text.write(pluginName,nonStripName,textWrite,config)},config)}};if(masterConfig.env==="node"||!masterConfig.env&&typeof process!=="undefined"&&process.versions&&!!process.versions.node&&!process.versions["node-webkit"]&&!process.versions["atom-shell"]){fs=require.nodeRequire("fs");text.get=function(url,callback,errback){try{var file=fs.readFileSync(url,"utf8");if(file[0]==="\ufeff"){file=file.substring(1)}callback(file)}catch(e){if(errback){errback(e)}}}}else if(masterConfig.env==="xhr"||!masterConfig.env&&text.createXhr()){text.get=function(url,callback,errback,headers){var xhr=text.createXhr(),header;xhr.open("GET",url,true);if(headers){for(header in headers){if(headers.hasOwnProperty(header)){xhr.setRequestHeader(header.toLowerCase(),headers[header])}}}if(masterConfig.onXhr){masterConfig.onXhr(xhr,url)}xhr.onreadystatechange=function(evt){var status,err;if(xhr.readyState===4){status=xhr.status||0;if(status>399&&status<600){err=new Error(url+" HTTP status: "+status);err.xhr=xhr;if(errback){errback(err)}}else{callback(xhr.responseText)}if(masterConfig.onXhrComplete){masterConfig.onXhrComplete(xhr,url)}}};xhr.send(null)}}else if(masterConfig.env==="rhino"||!masterConfig.env&&typeof Packages!=="undefined"&&typeof java!=="undefined"){text.get=function(url,callback){var stringBuffer,line,encoding="utf-8",file=new java.io.File
1(url),lineSeparator=java.lang.System.getProperty("line.separator"),input=new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream(file),encoding)),content="";try{stringBuffer=new java.lang.StringBuffer;line=input.readLine();if(line&&line.length()&&line.charAt(0)===65279){line=line.substring(1)}if(line!==null){stringBuffer.append(line)}while((line=input.readLine())!==null){stringBuffer.append(lineSeparator);stringBuffer.append(line)}content=String(stringBuffer.toString())}finally{input.close()}callback(content)}}else if(masterConfig.env==="xpconnect"||!masterConfig.env&&typeof Components!=="undefined"&&Components.classes&&Components.interfaces){Cc=Components.classes;Ci=Components.interfaces;Components.utils["import"]("resource://gre/modules/FileUtils.jsm");xpcIsWindows="@mozilla.org/windows-registry-key;1"in Cc;text.get=function(url,callback){var inStream,convertStream,fileObj,readData={};if(xpcIsWindows){url=url.replace(/\//g,"\\")}fileObj=new FileUtils.File(url);try{inStream=Cc["@mozilla.org/network/file-input-stream;1"].createInstance(Ci.nsIFileInputStream);inStream.init(fileObj,1,0,false);convertStream=Cc["@mozilla.org/intl/converter-input-stream;1"].createInstance(Ci.nsIConverterInputStream);convertStream.init(inStream,"utf-8",inStream.available(),Ci.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER);convertStream.readString(inStream.available(),readData);convertStream.close();inStream.close();callback(readData.value)}catch(e){throw new Error((fileObj&&fileObj.path||"")+": "+e)}}}return text});define("json",["text"],function(text){var CACHE_BUST_QUERY_PARAM="bust",CACHE_BUST_FLAG="!bust",jsonParse=typeof JSON!=="undefined"&&typeof JSON.parse==="function"?JSON.parse:function(val){return eval("("+val+")")},buildMap={};function cacheBust(url){url=url.replace(CACHE_BUST_FLAG,"");url+=url.indexOf("?")<0?"?":"&";return url+CACHE_BUST_QUERY_PARAM+"="+Math.round(2147483647*Math.random())}return{load:function(name,req,onLoad,config){if(config.isBuild&&(config.inlineJSON===false||name.indexOf(CACHE_BUST_QUERY_PARAM+"=")!==-1)||req.toUrl(name).indexOf("empty:")===0){onLoad(null)}else{text.get(req.toUrl(name),function(data){if(config.isBuild){buildMap[name]=data;onLoad(data)}else{onLoad(jsonParse(data))}},onLoad.error,{accept:"application/json"})}},normalize:function(name,normalize){if(name.indexOf(CACHE_BUST_FLAG)!==-1){name=cacheBust(name)}return normalize(name)},write:function(pluginName,moduleName,write){if(moduleName in buildMap){var content=buildMap[moduleName];write('define("'+pluginName+"!"+moduleName+'", function(){ return '+content+";});\n")}}}});define("json!cfg/siteConfig.json",function(){return{defaultCountry:"fr",shippingCountry:"",nonDeliveryCountryTab:["ca","kr","tw"],currency:"EUR",vatPercent:1.2,vatValue:20,htSuffix:" HT",ttcSuffix:" TTC",webServiceMode:"home",useReductionOnMany:true,useNewsletter:true,useTeqOff:true,useCrosser:true,websiteContact:"teqoff_sendContact",emailCheckUrl:"teqoff_checkemail",emailRegistrationUrl:"teqoff_registeremail",orderSwitchUrl:"teqoff_importweborder",orderRecordUrl:"teqoff_importweborder",orderCheckDepositUrl:"teqoff_orders",orderDepositUrl:"teqoff_importdeposit",orderCheckTip4SpecialUrl:"teqoff_orders",orderRecordTip4SpecialUrl:"teqoff_importtip4special",orderDeliveryUrl:"teqoff_expeditionsStatus",almaUrl:"https://www.teqoya.ovh/teqOff/files/alma.php",teqOff2BaseUrl:"https://www.teqoya.ovh/teqOff2",teqOff2ApiKey:"4b65c03cdb9a249e285a621e8997b205d6c46da8",stripeTest:"pk_test_y5c9lKFELUBfhOucDeN4AZbU",stripeLive:"pk_live_QzAtLd1hmO0MvenrQ7C9jQl4",stripeRedirectUrl:"teqoff_importstripeorder",useLeaveModal:false,useAqiReportModal:true,turnstileSiteKey:"0x4AAAAAAEFKev11RIAp3Nns",saltKey:"yd!vaKU0-r|GWjeD",saltUser:"nroyer",saltPassword:"Genius1414!"}});define("utl/webService",["utl/core","json!cfg/siteConfig.json"],function(coreObj,aSiteConfigObj){"use strict";var WebServiceClass=function(){if(aSiteConfigObj.webServiceMode==="spain"){this._defaultHeader={Accept:"*/*","Content-Type":"application/json; charset=UTF-8"}}else{this._defaultHeader={Accept:"*/*","Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"}}this._startDate=null};WebServiceClass.prototype._createRequest=function(){var request;if(window.XMLHttpRequest){request=new XMLHttpRequest;if(request.overrideMimeType){request.overrideMimeType("text/plain")}}else if(window.ActiveXObject){try{request=new ActiveXObject("Msxml2.XMLHTTP")}catch(err1){try{request=new ActiveXObject("Microsoft.XMLHTTP")}catch(err2){return null}}}return request};WebServiceClass.prototype._prepareRequest=function(aRequest,aUrl,aHeaders,aMode){var header;if(aMode==="GET"){aRequest.open("GET",aUrl,true)}else{aRequest.open("POST",aUrl,true)}if(aHeaders){for(header in aHeaders){if(aHeaders.hasOwnProperty(header)){aRequest.setRequestHeader(header,aHeaders[header])}}}for(header in this._defaultHeader){if(this._defaultHeader.hasOwnProperty(header)){if(!aHeaders||!aHeaders.hasOwnProperty(header)){aRequest.setRequestHeader(header,this._defaultHeader[header])}}}};WebServiceClass.prototype._processResponse=function(aCallback,aRequest){var result,parsedResponse;try{if(aRequest.responseText){parsedResponse=JSON.parse(aRequest.responseText)}else{parsedResponse=null}}
1catch(e){coreObj.returnStatus(aCallback,-1,{httpStatus:aRequest.status,httpData:aRequest.responseText});return}if(aRequest.status>=200&&aRequest.status<300){coreObj.returnStatus(aCallback,0,{httpStatus:aRequest.status,httpData:parsedResponse})}else{coreObj.returnStatus(aCallback,-1,{httpStatus:aRequest.status,httpData:parsedResponse})}};WebServiceClass.prototype.sendRequest=function(aCallback,aUrl,aMode,aData,aHeaderList){var request,body;request=this._createRequest();this._prepareRequest(request,aUrl,aHeaderList,aMode);request.onreadystatechange=function(){var endDate;if(request.readyState===4){endDate=new Date;console.debug("WebServiceClass: "+(endDate.getTime()-this._startDate.getTime())+"ms to process request '"+aMode+" "+aUrl);this._processResponse(aCallback,request)}}.bind(this);try{body=null;if(aMode!=="GET"){body=JSON.stringify(aData);console.debug("WebServiceClass: Using request body")}console.debug("WebServiceClass: Sending request HTTP '"+aMode+"' '"+aUrl+"'");this._startDate=new Date;request.send(body)}catch(err){console.error(err);coreObj.returnStatus(aCallback,-1)}};return WebServiceClass});define("data/dataProvider",["utl/core","utl/webService"],function(coreObj,WebServiceClass){"use strict";var DataProviderClass=function(){this._webServiceObj=new WebServiceClass};DataProviderClass.prototype.listBlogs=function(aCallback,aTags,aLanguage){coreObj.queue([function(aNext){var option;option="";if(window.location.search.indexOf("seo")>=0){option="&seo"}this._webServiceObj.sendRequest(aNext,window._internalBaseUrl+"/engine/processor.php?listBlogs&tags="+aTags+"&language="+aLanguage+option,"GET")},function(aNext,aResult){if(aResult.status===0){if(aResult.data.httpStatus===200){coreObj.returnStatus(aCallback,0,{tagTab:aResult.data.httpData.tagTab,blogTab:aResult.data.httpData.blogTab})}else{coreObj.returnStatus(aCallback,-1)}}else{coreObj.returnStatus(aCallback,-1)}}],this)};DataProviderClass.prototype.listMapItems=function(aCallback,aLanguage){coreObj.queue([function(aNext){var option;option="";if(window.location.search.indexOf("seo")>=0){option="&seo"}this._webServiceObj.sendRequest(aNext,window._internalBaseUrl+"/engine/processor.php?listMapItems&language="+aLanguage+option,"GET")},function(aNext,aResult){if(aResult.status===0){if(aResult.data.httpStatus===200){coreObj.returnStatus(aCallback,0,{headerTab:aResult.data.httpData.headerTab,footerTab:aResult.data.httpData.footerTab})}else{coreObj.returnStatus(aCallback,-1)}}else{coreObj.returnStatus(aCallback,-1)}}],this)};return DataProviderClass});define("utl/googlePlaces",[],function(){"use strict";var KEY="AIzaSyDXFsscaa4p-HDIOE7S3L73J44typ6BmUE";var _loaded=false;var _loading=false;var _queue=[];function load(onReady,onError){if(_loaded){if(onReady){onReady()}return}_queue.push({ok:onReady||null,err:onError||null});if(_loading){return}_loading=true;var cbName="_googlePlacesReady";window[cbName]=function(){_loaded=true;_loading=false;delete window[cbName];var q=_queue;_queue=[];q.forEach(function(item){if(item.ok){item.ok()}})};var s=document.createElement("script");s.async=true;s.src="https://maps.googleapis.com/maps/api/js?key="+KEY+"&libraries=places&loading=async&callback="+cbName;s.onerror=function(){_loading=false;delete window[cbName];var q=_queue;_queue=[];q.forEach(function(item){if(item.err){item.err()}})};document.head.appendChild(s)}function parseComponents(components){var r={num:"",route:"",zip:"",city:"",country:""};components.forEach(function(c){var t=c.types;if(t.indexOf("street_number")>=0){r.num=c.long_name}if(t.indexOf("route")>=0){r.route=c.long_name}if(t.indexOf("postal_code")>=0){r.zip=c.long_name}if(t.indexOf("locality")>=0){r.city=c.long_name}if(!r.city&&t.indexOf("postal_town")>=0){r.city=c.long_name}if(!r.city&&t.indexOf("administrative_area_level_2")>=0){r.city=c.long_name}if(t.indexOf("country")>=0){r.country=c.short_name.toLowerCase()}});return r}function applyAutocomplete(el,fields,onPlace){if(!el||!window.google||!window.google.maps||!window.google.maps.places){return}var ac=new window.google.maps.places.Autocomplete(el,{types:["address"],fields:fields});ac.addListener("place_changed",function(){var place=ac.getPlace();if(place){onPlace(place)}});return ac}return{enabled:!!KEY,load:load,parseComponents:parseComponents,applyAutocomplete:applyAutocomplete}});define("utl/humanCheck",["utl/webService","json!cfg/siteConfig.json"],function(WebServiceClass,aSiteConfigObj){"use strict";var humanCheckObj={_ticketTab:{},_pendingTab:{},_tokenTab:{},_widgetTab:{},_webServiceObj:null,_isLoadingTurnstile:false,_loadCallbackTab:[],_isHeadless:function(){return window.navigator.userAgent.indexOf("HeadlessChrome")>=0},_getSiteKey:function(){var host=window.location.hostname;if(host==="localhost"||host==="127.0.0.1"){return"1x00000000000000000000AA"}return aSiteConfigObj.turnstileSiteKey},_getLanguage:function(){var language=(window.document.documentElement.getAttribute("lang")||"").substr(0,2).toLowerCase();if(language==="zh"){return"zh-cn"}if(language){return language}return"auto"},_loadTurnstile:function(aCallback){var script;if(window.turnstile){aCallback();return}this._loadCallbackTab.push(aCallback);if(this._isLoadingTurnstile){return}this._isLoadingTurnstile=true;window.onloadTurnstileCallback=function(){var indCallback;for(indCallback=0;indCallback<this._loadCallbackTab.length;indCallback+=1){this._loadCallbackTab[indCallback]()}this._loadCallbackTab=[]}.bind(this);script=window.document.createElement("script");script.src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit&onload=onloadTurnstileCallback";script.async=true;script.defer=true;script.onerror=function(){console.error("HumanCheckClass: Unable to load the Turnstile API");this._isLoadingTurnstile=false;this._loadCallbackTab=[]}.bind(this);window.document.head.appendChild(script)},_renderWidget:function(aScope,aWidgetId){var siteKey=this._getSiteKey();if(!aWidgetId||!siteKey){return}if(!window.document.getElementById(aWidgetId)){return}if(this._widgetTab[aScope]){return}this._loadTurnstile(function(){this._widgetTab[aScope]=window.turnstile.render("#"+aWidgetId,{sitekey:siteKey,action:aScope,language:this._getLanguage(),"refresh-expired":"auto",appearance:"interaction-only",callback:function(aToken){this._tokenTab[aScope]=aToken}.bind(this),"expired-callback":function(){this._tokenTab[aScope]=null}.bind(this),"error-callback":function(aError){console.error("HumanCheckClass: Turnstile error '"+aError+"' on scope '"+aScope+"'");this._tokenTab[aScope]=null}.bind(this)})}.bind(this))},arm:function(aScope,aWidgetId){if(this._isHeadless()){return}this._renderWidget(aScope,aWidgetId);if(this._ticketTab[aScope]||this._pendingTab[aScope]){return}if(!this._webServiceObj){this._webServiceObj=new WebServiceClass}
1this._pendingTab[aScope]=true;this._webServiceObj.sendRequest(function(aResult){this._pendingTab[aScope]=false;if(aResult.status===0&&aResult.data.httpData&&aResult.data.httpData.ticket){this._ticketTab[aScope]=aResult.data.httpData.ticket}else{console.error("HumanCheckClass: Unable to retrieve a ticket for scope '"+aScope+"'")}}.bind(this),window._internalBaseUrl+"/engine/tools/humanCheck.php?ticket&scope="+aScope,"GET")},apply:function(aScope,aDataObj,aFieldId){var field;aDataObj.checkTicket=this._ticketTab[aScope]||"";aDataObj.checkTurnstile=this._tokenTab[aScope]||"";aDataObj.checkField="";if(aFieldId){field=window.document.getElementById(aFieldId);if(field){aDataObj.checkField=field.value}}this._ticketTab[aScope]=null;this._tokenTab[aScope]=null;return aDataObj},renew:function(aScope){if(this._widgetTab[aScope]&&window.turnstile){window.turnstile.reset(this._widgetTab[aScope])}this._tokenTab[aScope]=null;this.arm(aScope)}};return humanCheckObj});define("worker",["utl/core","utl/common","utl/webService","utl/googlePlaces","utl/humanCheck","json!cfg/siteConfig.json","jquery"],function(coreObj,commonObj,WebServiceClass,googlePlacesObj,humanCheckObj,aSiteConfigObj,$){"use strict";var WorkerClass=function(aDataProviderObj){this._dataProviderObj=aDataProviderObj;this._webServiceObj=new WebServiceClass;this._layerObj=null;this._headerScrollState=null;this._headerScrollCallback=null;this._headerResizeCallback=null;this._headerAnimationFrame=null;this._lazyloadImageCallback=null;this._animationCallback=null;this._lazyloadImageThrottleTimeout=null;this._lazyloadVideoCallback=null;this._lazyloadVideoThrottleTimeout=null;this._lazyloadItemCallback=null;this._lazyloadItemThrottleTimeout=null;this._processLeaveCriteriaCallback=this._processLeaveCriteria.bind(this)};WorkerClass.prototype.setLayer=function(aLayerObj){this._layerObj=aLayerObj};WorkerClass.prototype._processNewsletter=function(aEmailInputId,aModalId){var email,language,formatRegExp,action;language=$(window.document).find("html").attr("lang");email=$(aEmailInputId).val();formatRegExp=new RegExp(/\S+@\S+\.\S+/,"");if(email&&formatRegExp.test(email)){$(aEmailInputId).removeClass("is-invalid");action="klaviyoSubscription";coreObj.queue([function(aNext){this._webServiceObj.sendRequest(aNext,window._internalBaseUrl+"/engine/tools/newsletter.php?"+action,"POST",{email:email,lang:language.substr(0,2)})},function(aNext,aResult){console.error("WorkerClass: Newsletter subscription status "+JSON.stringify(aResult));aResult.status=0;this._setEmail(email);if(aEmailInputId==="#newsletterEmail"){this._layerObj.generateNewletterEvent("Footer",email)}else{this._layerObj.generateNewletterEvent("Pop-up",email)}if(aResult.status===0){$("#newsletterModal").modal("show")}else{$("#errorModal").modal("show");$("#errorModalPricing").hide();$("#errorModalMessage").show()}}],this)}else{$(aEmailInputId).addClass("is-invalid")}};WorkerClass.prototype._activateVideoFading=function(){if($(".video-fader").length>0){$(".video-fader").on("click",function(aEvent){var org,poster;aEvent.preventDefault();org=$("video_faded");if(org.length>0){poster=org[0].getAttribute("poster");org.replaceWith("<video poster='"+poster+"' controls=''>"+org.html()+"</video>")}$(".video-fading-out").hide();$(".video-fading-in").show();$(".video-fading-in").addClass("fade-in");$(".video-fading-in video")[0].play()})}};WorkerClass.prototype._activateNewsletter=function(){$("#newsletterSubscription").on("click",this._processNewsletter.bind(this,"#newsletterEmail",false));$("#blogNewsletterBtn").on("click",this._processNewsletter.bind(this,"#blogNewsletterEmail",false))};window._doAnimateNodes=function(aAnimationNode){aAnimationNode.classList.remove("animatable");aAnimationNode.classList.add("animated")};WorkerClass.prototype._animateNodes=function(aAnimationNodes){if(animationThrottleTimeout){clearTimeout(animationThrottleTimeout)}animationThrottleTimeout=setTimeout(function(){var scrollTop,indAnimation,animationNode;scrollTop=window.pageYOffset;for(indAnimation=0;indAnimation<aAnimationNodes.length;indAnimation+=1){animationNode=aAnimationNodes[indAnimation];if(animationNode.offsetTop<window.innerHeight+scrollTop){window._doAnimateNodes(animationNode)}}if(aAnimationNodes.length===0){document.removeEventListener("scroll",animationCallback);window.removeEventListener("resize",animationCallback);window.removeEventListener("orientationChange",animationCallback)}},20)};WorkerClass.prototype._deferAnimation=function(){var aAnimationNodes;if("IntersectionObserver"in window){aAnimationNodes=document.querySelectorAll(".animatable");var imageObserver=new IntersectionObserver(function(entries,observer){entries.forEac
1h(function(entry){if(entry.isIntersecting){var animationNode;animationNode=entry.target;window._doAnimateNodes(animationNode);imageObserver.unobserve(animationNode)}})},{threshold:.25});aAnimationNodes.forEach(function(image){imageObserver.observe(image)})}else{aAnimationNodes=document.querySelectorAll(".animatable");this._animationCallback=this._animateNodes.bind(this,aAnimationNodes);document.addEventListener("scroll",this._animationCallback);window.addEventListener("resize",this._animationCallback);window.addEventListener("orientationChange",this._animationCallback);this._animateNodes(aAnimationNodes)}};window._doloadImage=function(aLazyImage,aUseSafari){var nextImage;if(!aUseSafari||aLazyImage.type!=="image/webp"){aLazyImage.srcset=aLazyImage.dataset.srcset}nextImage=aLazyImage.nextElementSibling;if(nextImage){if(nextImage.tagName==="SOURCE"){if(nextImage.type!=="image/webp"){nextImage.srcset=nextImage.dataset.srcset}nextImage=nextImage.nextElementSibling}nextImage.src=nextImage.dataset.src;aLazyImage.parentElement.classList.remove("lazy")}};WorkerClass.prototype._lazyloadImage=function(lazyloadImages){if(this._lazyloadImageThrottleTimeout){clearTimeout(this._lazyloadImageThrottleTimeout)}this._lazyloadImageThrottleTimeout=setTimeout(function(){var scrollTop,indImg,lazyImage,nextImage;scrollTop=window.pageYOffset;for(indImg=0;indImg<lazyloadImages.length;indImg+=1){lazyImage=lazyloadImages[indImg];if(lazyImage.offsetTop<window.innerHeight+scrollTop){window._doloadImage(lazyImage,true)}}if(lazyloadImages.length===0){document.removeEventListener("scroll",this._lazyloadImageCallback);window.removeEventListener("resize",this._lazyloadImageCallback);window.removeEventListener("orientationChange",this._lazyloadImageCallback)}},20)};WorkerClass.prototype._deferImage=function(){var lazyloadImages,indImg,lazyImage,nextImage;if(window.location.hash.indexOf("#")>=0){lazyloadImages=document.querySelectorAll(".lazy > source");for(indImg=0;indImg<lazyloadImages.length;indImg+=1){window._doloadImage(lazyloadImages[indImg])}return}if("IntersectionObserver"in window){console.log("WorkerClass: Registering lazy loader on images based on IntersectionObserver");lazyloadImages=document.querySelectorAll(".lazy > source");var imageObserver=new IntersectionObserver(function(entries,observer){entries.forEach(function(entry){if(entry.isIntersecting){var lazyImage,nextImage;lazyImage=entry.target;window._doloadImage(lazyImage);imageObserver.unobserve(lazyImage)}})});lazyloadImages.forEach(function(image){imageObserver.observe(image)})}else{console.log("WorkerClass: Registering lazy loader on images based on old method");lazyloadImages=document.querySelectorAll(".lazy > source");this._lazyloadImageCallback=this._lazyloadImage.bind(this,lazyloadImages);document.addEventListener("scroll",this._lazyloadImageCallback);window.addEventListener("resize",this._lazyloadImageCallback);window.addEventListener("orientationChange",this._lazyloadImageCallback);this._lazyloadImage(lazyloadImages)}};WorkerClass.prototype._lazyloadVideo=function(lazyloadVideos){if(this._lazyloadVideoThrottleTimeout){clearTimeout(this._lazyloadVideoThrottleTimeout)}this._lazyloadVideoThrottleTimeout=setTimeout(function(){var scrollTop=window.pageYOffset;lazyloadVideos.forEach(function(lazyVideo){var parentVideo;if(lazyVideo.offsetTop<window.innerHeight+scrollTop){if(lazyVideo.tagName==="VIDEO"){parentVideo=lazyVideo;if(parentVideo.className.indexOf("lazy")>=0){parentVideo.classList.remove("lazy");lazyVideo=lazyVideo.children[0];lazyVideo.src=lazyVideo.dataset.src;parentVideo.load()}}else{lazyVideo.src=lazyVideo.dataset.src;lazyVideo.classList.remove("lazy")}}});if(lazyloadVideos.length===0){document.removeEventListener("scroll",this._lazyloadVideoCallback);window.removeEventListener("resize",this._lazyloadVideoCallback);window.removeEventListener("orientationChange",this._lazyloadVideoCallback)}},20)};WorkerClass.prototype._deferVideo=function(){var lazyloadVideos;if("IntersectionObserver"in window){console.log("WorkerClass: Registering lazy loader on videos based on IntersectionObserver");lazyloadVideos=document.querySelectorAll("iframe.lazy,video.lazy");var videoObserver=new IntersectionObserver(function(entries,observer){entries.forEac
1h(function(entry){if(entry.isIntersecting){var lazyVideo;entry.target.classList.remove("lazy");if(entry.target.tagName==="VIDEO"){lazyVideo=entry.target.children[0]}else{lazyVideo=entry.target}lazyVideo.src=lazyVideo.dataset.src;if(entry.target.tagName==="VIDEO"){entry.target.load()}videoObserver.unobserve(entry.target)}})});lazyloadVideos.forEach(function(image){videoObserver.observe(image)})}else{console.log("WorkerClass: Registering lazy loader on videos based on old method");lazyloadVideos=document.querySelectorAll("iframe.lazy,video.lazy");this._lazyloadVideoCallback=this._lazyloadVideo.bind(this,lazyloadVideos);document.addEventListener("scroll",this._lazyloadVideoCallback);window.addEventListener("resize",this._lazyloadVideoCallback);window.addEventListener("orientationChange",this._lazyloadVideoCallback);this._lazyloadVideo(lazyloadVideos)}};WorkerClass.prototype._lazyloadItem=function(lazyloadItems){if(this._lazyloadItemThrottleTimeout){clearTimeout(this._lazyloadItemThrottleTimeout)}this._lazyloadItemThrottleTimeout=setTimeout(function(){var scrollTop=window.pageYOffset;lazyloadItems.forEach(function(lazyItem){if($(lazyItem).offset().top+50<window.innerHeight+scrollTop){if(lazyItem.classList.contains("faded-out")){lazyItem.classList.remove("faded-out");lazyItem.classList.add("fade-in")}else{lazyItem.classList.remove("slider-left");lazyItem.classList.remove("slider-right");lazyItem.classList.add("slide-in")}}});if(lazyloadItems.length===0){document.removeEventListener("scroll",this._lazyloadItemCallback);window.removeEventListener("resize",this._lazyloadItemCallback);window.removeEventListener("orientationChange",this._lazyloadItemCallback)}},20)};WorkerClass.prototype._deferItem=function(){var lazyloadItems;if(false&&"IntersectionObserver"in window){console.log("WorkerClass: Registering lazy loader on items based on IntersectionObserver");lazyloadItems=document.querySelectorAll("div.slider-left, div.slider-right, div.faded-out");var itemObserver=new IntersectionObserver(function(entries,observer){entries.forEach(function(entry){if(entry.isIntersecting){var lazyItem=entry.target;if(lazyItem.classList.contains("faded-out")){lazyItem.classList.remove("faded-out");lazyItem.classList.add("fade-in")}else{lazyItem.classList.remove("slider-left");lazyItem.classList.remove("slider-right");lazyItem.classList.add("slide-in")}itemObserver.unobserve(lazyItem)}})});lazyloadItems.forEach(function(item){itemObserver.observe(item)})}else{console.log("WorkerClass: Registering lazy loader on items based on old method");lazyloadItems=document.querySelectorAll("div.slider-left, div.slider-right, div.faded-out");this._lazyloadItemCallback=this._lazyloadItem.bind(this,lazyloadItems);document.addEventListener("scroll",this._lazyloadItemCallback);window.addEventListener("resize",this._lazyloadItemCallback);window.addEventListener("orientationChange",this._lazyloadItemCallback);this._lazyloadItem(lazyloadItems)}};WorkerClass.prototype._deferThirdParty=function(){var that,pageId,base,script,version;that=this;pageId=window._internalPageId;version=window._internalJsVersion||window._internalScriptVersion;base=window._internalBaseUrl;if(base.charAt(base.length-1)!=="/"){base+="/"}var binaryPath=window._internalIsOptimized?"binary/":"dist/binary/";if(pageId==="cart"||pageId==="checkout"||pageId==="directaccess"||pageId==="loan"){script=document.createElement("script");script.src=base+binaryPath+"thirdparty-built.js"+(version?"?v="+version:"");script.onload=function(){require(["thirdParty/order","thirdParty/stripe","thirdParty/paypal","thirdParty/transfer","thirdParty/alma","thirdParty/deposit","thirdParty/delivery"],function(orderObj,StripeClass,PaypalClass,TransferClass,AlmaClass,DepositClass,DeliveryClass){that._layerObj.setOrderObj(orderObj);new StripeClass(orderObj);new PaypalClass(orderObj);new TransferClass(orderObj);new AlmaClass(orderObj);new DepositClass(orderObj);new DeliveryClass(orderObj)})};document.head.appendChild(script)}else if(pageId==="shop"){script=document.createElement("script");script.src=base+binaryPath+"thirdparty-built.js"+(version?"?v="+version:"");script.onload=function(){require(["thirdParty/shop","thirdParty/stripe","thirdParty/paypal","thirdParty/alma","thirdParty/deposit","thirdParty/delivery","libphonenumber"],function(shopObj,StripeClass,PaypalClass,AlmaClass,DepositClass,DeliveryClass){that._layerObj.setOrderObj(shopObj);shopObj.setPostRecordCallback(function(idOrders,destination){window.location=shopObj._baseUrl+"/"+(destination==="loan"?"loan/":"confirmation/")});new StripeClass(shopObj);new PaypalClass(shopObj);new AlmaClass(shopObj);new DepositClass(shopObj);new DeliveryClass(shopObj)})};document.head.appendChild(script)}else if(pageId==="delivery"){script=document.createElement("script");script.src=base+binaryPath+"thirdparty-built.js"+(version?"?v="+version:"");script.onload=function(){require(["thirdParty/order","thirdParty/delivery"],function(orderObj,DeliveryClass){that._layerObj.setOrderObj(orderObj);new DeliveryClass(orderObj)})};document.head.appendChild(script)}else if(pageId==="bilanaqi"||pageId==="reportaqi"){require(["thirdParty/order"],function(orderObj){that._layerObj.setOrderObj(orderObj)})}else{require(["thirdParty/shop"],function(shopObj){that._layerObj.setOrderObj(shopObj)})}};WorkerClass.prototype._getWorkerObject=function(){var workerStr,workerObj;workerStr=localStorage.getItem("teqoWeb_worker");if(!workerStr){return{hasAcceptedCookieLaw:false,countrySelectionTimer:0,useStatisticsCookie:true,useAdvertisingCookie
1:true}}workerObj=JSON.parse(workerStr);if(!workerObj.hasOwnProperty("useStatisticsCookie")){workerObj.useStatisticsCookie=true}if(!workerObj.hasOwnProperty("useAdvertisingCookie")){workerObj.useAdvertisingCookie=true}return workerObj};WorkerClass.prototype._setWorkerObject=function(aWorkerObj){localStorage.setItem("teqoWeb_worker",JSON.stringify(aWorkerObj))};WorkerClass.prototype._setupCookieLaw=function(){var workerObj,useStatisticsCookie,useAdvertisingCookie,hasChangeds;hasChangeds=false;workerObj=this._getWorkerObject();workerObj.hasAcceptedCookieLaw=true;useStatisticsCookie=workerObj.useStatisticsCookie;useAdvertisingCookie=workerObj.useAdvertisingCookie;workerObj.useStatisticsCookie=$("#preferencStatisticsSwitch").prop("checked");workerObj.useAdvertisingCookie=$("#preferenceAdvertisingSwitch").prop("checked");this._setWorkerObject(workerObj);$("#cookieManagement").hide();this._layerObj.generateCookieEvent(workerObj.useStatisticsCookie,workerObj.useAdvertisingCookie);if(useStatisticsCookie!==workerObj.useStatisticsCookie||useAdvertisingCookie!==workerObj.useAdvertisingCookie){console.error("WorkerClass: reloading page to apply cookie management change");window.location.reload()}};WorkerClass.prototype._manageCookieLaw=function(aEvent){var workerObj;aEvent.preventDefault();workerObj=this._getWorkerObject();$("#cookieLaw").hide();$("#cookieManagement").show();$("#cookieConfirmation").on("click",this._setupCookieLaw.bind(this));if(!workerObj.useStatisticsCookie){$("#preferencStatisticsSwitch").prop("checked",false)}else{$("#preferencStatisticsSwitch").prop("checked",true)}if(!workerObj.useAdvertisingCookie){$("#preferenceAdvertisingSwitch").prop("checked",false)}else{$("#preferenceAdvertisingSwitch").prop("checked",true)}};WorkerClass.prototype._registerCookieLaw=function(){var workerObj;workerObj=this._getWorkerObject();workerObj.hasAcceptedCookieLaw=true;workerObj.useStatisticsCookie=true;workerObj.useAdvertisingCookie=true;this._setWorkerObject(workerObj);$("#cookieLaw").hide();this._layerObj.generateCookieEvent(workerObj.useStatisticsCookie,workerObj.useAdvertisingCookie)};WorkerClass.prototype._activateCookieLaw=function(){$("#cookieButton").on("click",this._registerCookieLaw.bind(this));$("#cookiePreference").on("click",this._manageCookieLaw.bind(this))};WorkerClass.prototype._deferCookieLaw=function(){var workerObj;workerObj=this._getWorkerObject();if(!workerObj.hasAcceptedCookieLaw){window.registerCookieLaw=this._registerCookieLaw.bind(this);$("#cookieLaw").show();$("#cookieManagement").hide();this._activateCookieLaw()}$("#cookieFooter").on("click",this._manageCookieLaw.bind(this))};WorkerClass.prototype._getCartObject=function(){var cartStr,cartObj;cartStr=localStorage.getItem("teqoWeb_cart");if(!cartStr){cartObj={productTab:[],country:window._internalCountry.toLowerCase()};this._setCartObject(cartObj);this._setAddressObject(window._internalCountry.toLowerCase());console.debug("WorkerClass: [country-area] creating new cart object with current country "+window._internalCountry.toLowerCase());return cartObj}cartObj=JSON.parse(cartStr);return cartObj};WorkerClass.prototype._setCartObject=function(aCartObj){localStorage.setItem("teqoWeb_cart",JSON.stringify(aCartObj))};WorkerClass.prototype._getAddressObject=function(){var addressStr;addressStr=localStorage.getItem("teqoWeb_address");if(!addressStr){console.debug("WorkerClass: [country-area] creating new address object with country "+window._internalCountry);return{isShippingSpecific:false,isNewCustomer:true,billing:{firstname:"",lastname:"",company:"",street1:"",street2:"",code:"",town:"",country:window._internalCountry,email:"",phone:"",note:""},shipping:{firstname:"",lastname:"",company:"",street1:"",street2:"",code:"",town:"",country:window._internalCountry,email:"",phone:""}}}return JSON.parse(addressStr)};WorkerClass.prototype._setAddressObject=function(aCountry){var addressObj;addressObj=this._getAddressObject();addressObj.shipping.country=aCountry;console.debug("WorkerClass: [country-area] storing address object with country "+aCountry);localStorage.setItem("teqoWeb_address",JSON.stringify(addressObj))};WorkerClass.prototype._setEmail=function(aEmail){var addressObj;addressObj=this._getAddressObject();addressObj.shipping.email=aEmail;addressObj.billing.email=aEmail;localStorage.setItem("teqoWeb_address",JSON.stringify(addressObj));localStorage.setItem("teqoWeb_orderEmail",aEmail)};WorkerClass.prototype._processCountrySelection=function(){var workerObj,cartObj;workerObj=this._getWorkerObject();workerObj.countrySelectionTimer=Date.now();this._setWorkerObject(workerObj);if($("#countrySelectionModal").hasClass("show")){cartObj=this._getCartObject();cartObj.country=$("#countrySelectionShipping").val();console.info("WorkerClass: [country-area] Switching to shipping country "+cartObj.country);this._setCartObject(cartObj);this._setAddressObject(cartObj.country);window.location.reload()}$("#countrySelectionModal").modal("hide")};WorkerClass.prototype._isSelectableCountry=function(aCountryId){var indCountry;if(!window._internalCountryTab||window._internalCountryTab.length===0){console.warn("WorkerClass: [country-area] no country list available");return false}for(indCountry=0;indCountry<window._internalCountryTab.length;indCountry+=1){if(window._internalCountryTab[indCountry].iso===aCountryId){return true}}return false};WorkerClass.prototype._deferCountrySelection=function(){var cartObj,workerObj;cartObj=this._getCartObject();if(cartObj.country!==window._internalCountry.toLowerCase()){console.info("WorkerClass: [country-area] Real country "+window._internalCountry+" differs from the current one "+cartObj.country);workerObj=this._getWorkerObject();if(!this._isSelectableCountry(window._internalCountry.toLowerCase())){console.warn("WorkerClass: [country-area] "+window._internalCountry+" cannot be selected, keeping "+cartObj.country)}else if(Date.now()-workerObj.countrySelectionTimer>=9e5){$("#countrySelectionModal").modal("show");$("#countrySelectionShipping").val(window._internalCountry.toLowerCase());$("#countrySelectionValidation").on("click",this._processCountrySelection.bind(this));return}else{console.debug("WorkerClass: [country-area] skipping country modal due to last display time")}}console.info("WorkerClass: [country-area] Using current country "+cartObj.country);this._processCountrySelection()};WorkerClass.prototype._detectMobileMenu=function(){};WorkerClass.prototype._applyHeaderOffset=function(){var headerState,nextOffset;headerState=this._headerScrollState;if(!headerState){this._headerAnimationFrame=null;return}nextOffset=headerState.currentOffset+(headerState.targetOffset-headerState.currentOffset)*.12;if(Math.abs(headerState.targetOffset-nextOffset)<.5){nextOffset=headerState.targetOffset}headerState.currentOffset=nextOffset;headerState.node.style.transform="translate3d(0, -"+Math.ceil(nextOffset)+"px, 0)";if(Math.abs(headerState.targetOffset-nextOffset)>=.5){this._headerAnimationFrame=window.requestAnimationFrame(this._applyHeaderOffset.bind(this))}else{this._headerAnimationFrame=null}};WorkerClass.prototype._scheduleHeaderOffset=function(){if(!this._headerAnimationFrame){if(window.requestAnimationFrame){this._headerAnimationFrame=window.requestAnimationFrame(this._applyHeaderOffset.bind(this))}else{this._headerAnimationFrame=window.setTimeout(function(){this._headerAnimationFrame=null;this._applyHeaderOffset()}.bind(this),16)}}};WorkerClass.prototype._resetHeaderPosition=function(){if(!this._headerScrollState){return}this._headerScrollState.targetOffset=0;this._scheduleHeaderOffset()};WorkerClass.prototype._getHeaderHeight=function(){var headerNode;headerNode=this._headerScrollState?this._headerScrollState.node:null;if(!headerNode){return 0}return Math.ceil(headerNode.getBoundingClientRect().height||headerNode.offsetHeight||0)};WorkerClass.prototype._updateHeaderHeight=function(){if(!this._headerScrollState){return}this._headerScrollState.maxOffset=this._getHeaderHeight();if(this._headerScrollState.targetOffset>this._headerScrollState.maxOffset){this._headerScrollState.targetOffset=this._headerScrollState.maxOffset}if(this._headerScrollState.currentOffset>this._headerScrollState.maxOffset){this._headerScrollState.currentOffset=this._headerScrollState.maxOffset;this._headerScrollState.node.style.transform="translate3d(0, -"+this._headerScrollState.currentOffset+"px, 0)"}};WorkerClass.prototype._handleHeaderScroll=function(){var headerState,currentScrollY,deltaY,collapseRatio;headerState=this._headerScrollState;if(!headerState){return}this._updateHeaderHeight();currentScrollY=Math.max(window.pageYOffset||window.scrollY||0,0);deltaY=currentScrollY-headerState.lastScrollY;headerState.lastScrollY=currentScrollY;if(currentScrollY<=0){headerState.targetOffset=0;this._scheduleHeaderOffset();return}if(Math.abs(deltaY)<1){return}if($("#mySidenav").hasClass("show")){headerState.targetOffset=0;this._scheduleHeaderOffset();return}collapseRatio=deltaY>0?.28:.38;headerState.targetOffset=Math.min(headerState.maxOffset,Math.max(0,headerState.targetOffset+deltaY*collapseRatio));this._scheduleHeaderOffset()};WorkerClass.prototype._activateScrollHeader=function(){var headerNode;headerNode=document.querySelector(".js-site-header");if(!headerNode){return}this._headerScrollState={node:headerNode,currentOffset:0,targetOffset:0,maxOffset:Math.ceil(headerNode.getBoundingClientRect().height||headerNode.offsetHeight||0),lastScrollY:Math.max(window.pageYOffset||window.scrollY||0,0)};headerNode.classList.add("header-scroll-active");this._headerScrollCallback=this._handleHeaderScroll.bind(this);this._headerResizeCallback=this._updateHeaderHeight.bind(this);window.addEventListener("scroll",this._headerScrollCallback);window.addEventListener("resize",this._headerResizeCallback);window.addEventListener("orientationchange",this._headerResizeCallback);window.addEventListener("load",this._headerResizeCallback);$("#mySidenav").on("show.bs.collapse",this._resetHeaderPosition.bind(this));this._updateHeaderHeight();window.setTimeout(this._headerResizeCallback,250)};WorkerClass.prototype._deferGUA=function(){var script;if(window._internalGUA){script=document.createElement("script");script.onload=function(){window.dataLayer=window.dataLayer||[];function gtag(){window.dataLayer.push(arguments)}gtag("js",new Date);gtag("config",window._internalGUA)};
1script.src="https://www.googletagmanager.com/gtag/js?id="+window._internalGUA;document.head.appendChild(script)}};WorkerClass.prototype._doScroll=function(){if(window.location.hash&&window.location.hash.indexOf("cartStep")<0){window.setTimeout(window.scrolltoAnchor.bind(window,window.location.hash.substr(1)),500)}};WorkerClass.prototype.analysisStore=function(){var analysisStr,analysisObj,date;analysisStr=localStorage.getItem("teqoWeb_analysisObj");if(analysisStr){analysisObj=JSON.parse(analysisStr)}else{analysisObj={}}date=new Date;analysisObj[date.toISOString()]=window.location.pathname;localStorage.setItem("teqoWeb_analysisObj",JSON.stringify(analysisObj))};WorkerClass.prototype._checkAqiReport=function(aResult){humanCheckObj.renew("aqi");if(aResult.status!==0){$("#aqiReportPostalCode").addClass("is-invalid");$("#aqiReportCity").addClass("is-invalid");$("#aqiReportInvalid").show()}else{if(aResult.data.httpData.hasOwnProperty("data")&&aResult.data.httpData.data.isPartial){$("#aqiReportPartial").show()}else{$(".reportAqiInputForm").hide();$("#reportaqiThanks").show()}}};WorkerClass.prototype._initAqiModalAutocomplete=function(){googlePlacesObj.load(function(){googlePlacesObj.applyAutocomplete(document.getElementById("aqiReportAddress"),["address_components"],function(place){var r=googlePlacesObj.parseComponents(place.address_components);if(r.zip){$("#aqiReportPostalCode").val(r.zip)}if(r.city){$("#aqiReportCity").val(r.city)}if(r.country){$("#aqiReportCounty").val(r.country)}})})};WorkerClass.prototype._processAqiReport=function(){var email,postalCode,city,country,formatRegExp,navigationStr,navigationObj,language;$(".is-invalid").removeClass("is-invalid");$("#aqiReportInvalid").hide();$("#aqiReportPartial").hide();email=$("#aqiReportEmail").val();postalCode=$("#aqiReportPostalCode").val().trim();city=$("#aqiReportCity").val().trim();country=$("#aqiReportCounty").val();formatRegExp=new RegExp(/\S+@\S+\.\S+/,"");if(!email||!formatRegExp.test(email)||!postalCode||!city){if(!postalCode||!city){$("#aqiReportCity").addClass("is-invalid")}else{$("#aqiReportEmail").addClass("is-invalid")}$("#aqiReportInvalid").show()}else{navigationStr=localStorage.getItem("teqoWeb_navigationObj");if(navigationStr){navigationObj=JSON.parse(navigationStr);navigationObj.hasAqiReport=true;localStorage.setItem("teqoWeb_navigationObj",JSON.stringify(navigationObj))}console.info("Registering to AQI review for "+email+" on "+postalCode+" "+city+" "+country);language=$(window.document).find("html").attr("lang");this._webServiceObj.sendRequest(this._checkAqiReport.bind(this),window._internalBaseUrl+"/engine/tools/reportaqi2.php?registerAqiReview","POST",humanCheckObj.apply("aqi",{email:email,postalCode:postalCode,city:city,country:country,lang:language.substr(0,2)},"aqiReportFax"));this._setEmail(email);this._layerObj.generateAqiEvent(email)}};WorkerClass.prototype._armAqiReportModal=function(){var that=this,isEngaged=false,hasLeft=false,timerId;var _aqiEngagementDelay=45e3;var _aqiScrollRatio=.5;if(!aSiteConfigObj.useAqiReportModal||$("#aqiReportModal").length===0){return}function fireAqiReport(aIsLeaving){if(aIsLeaving){if(hasLeft){return}hasLeft=true;$(window.document).off("mouseout.aqiReport")}else{if(isEngaged){return}isEngaged=true;window.clearTimeout(timerId);$(window).off("scroll.aqiReport")}that._activateAqiReportModal()}function onAqiScroll(){var docObj=window.document.documentElement;var height=Math.max(1,docObj.scrollHeight-window.innerHeight);var offset=window.pageYOffset||docObj.scrollTop||0;if(offset/height>=_aqiScrollRatio){fireAqiReport(false)}}function onAqiLeave(aEvent){var from=aEvent.relatedTarget||aEvent.toElement;if((!from||from.nodeName==="HTML")&&aEvent.clientY<=0){fireAqiReport(true)}}timerId=window.setTimeout(function(){fireAqiReport(false)},_aqiEngagementDelay);$(window).on("scroll.aqiReport",onAqiScroll);$(window.document).on("mouseout.aqiReport",onAqiLeave)};WorkerClass.prototype._getNavigationObject=function(){var navigationStr=localStorage.getItem("teqoWeb_navigationObj");if(navigationStr){return JSON.parse(navigationStr)}return{hasAqiReport:false,nextAqiReport:0,lastAqiReport:0,hasDisplayed:false,nbVisit:0,lastStay:0,lastVisit:0,pagesTab:[]}};WorkerClass.prototype._setNavigationObject=function(aNavigationObj){localStorage.setItem("teqoWeb_navigationObj",JSON.stringify(aNavigationObj))};WorkerClass.prototype._activateAqiReportModal=function(){var navigationObj,ellapsed;var _aqiExcludedPages=["shop","loan","checkout"];var _aqiCookiePollDelay=2e3;
1var _aqiCookieMaxWait=2e4;if($("#aqiReportModal").hasClass("show")){return}if(aSiteConfigObj.useAqiReportModal&&$("#aqiReportModal").length>0&&_aqiExcludedPages.indexOf(window._internalPageId)<0){navigationObj=this._getNavigationObject();if(!navigationObj.hasOwnProperty("hasAqiReport")){navigationObj.hasAqiReport=false}if(!navigationObj.hasAqiReport&&!navigationObj.hasOwnProperty("nextAqiReport")){navigationObj.nextAqiReport=0}if(!navigationObj.hasOwnProperty("lastAqiReport")){navigationObj.lastAqiReport=0}if($("#cookieLaw").is(":visible")){if(this._aqiCookieWait===undefined){this._aqiCookieWait=0}if(this._aqiCookieWait<_aqiCookieMaxWait){this._aqiCookieWait+=_aqiCookiePollDelay;console.debug("WorkerClass: deferring AQI modal while the cookie banner is displayed");window.setTimeout(this._activateAqiReportModal.bind(this),_aqiCookiePollDelay);return}console.debug("WorkerClass: cookie banner left unanswered, displaying the AQI modal anyway")}if($("#countrySelectionModal").hasClass("show")){console.debug("WorkerClass: skipping AQI modal while the country modal is displayed");return}ellapsed=parseInt((Date.now()-navigationObj.lastAqiReport)/1e3,10);if(!navigationObj.hasAqiReport&&navigationObj.nextAqiReport<=0&&ellapsed>600){$("#aqiReportModal").modal("show");humanCheckObj.arm("aqi","aqiReportTurnstile");$("#aqiReportProposal").removeClass("show");$("#aqiReportInvalid").hide();$("#aqiReportPartial").hide();$("#aqiReportCounty").val(window._internalCountry.toLowerCase());$("#aqiReportSubmit").on("click",this._processAqiReport.bind(this));if(!this._aqiModalAutocompleteInited){this._aqiModalAutocompleteInited=true;this._initAqiModalAutocomplete()}navigationObj.nextAqiReport=5;navigationObj.lastAqiReport=Date.now();this._setNavigationObject(navigationObj)}else{navigationObj.nextAqiReport-=1;this._setNavigationObject(navigationObj)}}};WorkerClass.prototype._activateLeaveModal=function(){var navigationObj;if(aSiteConfigObj.useLeaveModal&&$("#leaveModal").length>0){$("#leaveModal").modal("show");$("#leaveSubscription").on("click",this._processNewsletter.bind(this,"#leaveEmail","#leaveModal"))}navigationObj={hasAqiReport:false,nextAqiReport:0,lastAqiReport:0,hasDisplayed:false,nbVisit:0,lastStay:0,lastVisit:0,pagesTab:[]};localStorage.setItem("teqoWeb_navigationObj",JSON.stringify(navigationObj))};WorkerClass.prototype._processLeaveCriteria=function(aEvent){var navigationStr,navigationObj,now,event,from;event=aEvent?aEvent:window.event;if(event){from=event.relatedTarget||event.toElement}if(!from||from.nodeName==="HTML"){navigationStr=localStorage.getItem("teqoWeb_navigationObj");if(!navigationStr){return}navigationObj=JSON.parse(navigationStr);now=parseInt(Date.now()/1e3,10);if(navigationObj.hasDisplayed||now-parseInt(navigationObj.lastVisit,10)<5){return}if(event){console.debug("WorkerClass: Leave popup invoked "+event.clientX+"/"+window.innerWidth+" - "+event.clientY+"/"+window.innerHeight)}else{console.debug("WorkerClass: Leave popup invoked on time out")}if(true||event.clientX<=0||event.clientX>=window.innerWidth||event.clientY<=0||event.clientY>=window.innerHeight){if(window.document.addEventListener){window.document.removeEventListener("mouseout",this._processLeaveCriteriaCallback)}else{window.document.detachEvent("onmouseout",this._processLeaveCriteriaCallback)}navigationObj.hasDisplayed=true;localStorage.setItem("teqoWeb_navigationObj",JSON.stringify(navigationObj));if(aSiteConfigObj.useLeaveModal&&$("#leaveModal").length>0){$("#leaveModal").modal("show");$("#leaveSubscription").on("click",this._processNewsletter.bind(this,"#leaveEmail","#leaveModal"))}}}};WorkerClass.prototype._updateLeaveCriteria=function(){var navigationStr,navigationObj,now,isStaying;navigationStr=localStorage.getItem("teqoWeb_navigationObj");if(navigationStr){navigationObj=JSON.parse(navigationStr)}else{navigationObj={hasAqiReport:false,nextAqiReport:0,lastAqiReport:0,hasDisplayed:false,nbVisit:0,lastStay:0,lastVisit:0,pagesTab:[]}}now=parseInt(Date.now()/1e3,10);if(aSiteConfigObj.useLeaveModal&&$("#leaveModal").length>0&&(!navigationObj.hasDisplayed||now-parseInt(navigationObj.lastVisit,10)>3600)){if(now-parseInt(navigationObj.lastStay,10)>600){navigationObj.lastStay=now;navigationObj.nbVisit=parseInt(navigationObj.nbVisit,10)+1}navigationObj.lastVisit=now;if(navigationObj.nbVisit>
11&&navigationObj.pagesTab.indexOf(window._internalPageId)<0){navigationObj.pagesTab.push(window._internalPageId)}console.debug("WorkerClass: Navigation history "+JSON.stringify(navigationObj));localStorage.setItem("teqoWeb_navigationObj",JSON.stringify(navigationObj));if(true||navigationObj.nbVisit>1&&navigationObj.pagesTab.length>=2){console.debug("WorkerClass: Activating popup detection due to navigation history");if(window.document.addEventListener){window.document.addEventListener("mouseout",this._processLeaveCriteriaCallback,false)}else{window.document.attachEvent("onmouseout",this._processLeaveCriteriaCallback)}}window.setTimeout(this._processLeaveCriteriaCallback,5e3)}};WorkerClass.prototype._applyBlogFiltering=function(){var hash;if(window.location.hash){hash=window.location.hash.substr(1);console.debug("WorkerClass: Hash "+hash+" detected on url for blog filtering");window.filterBlogByTag(hash)}};WorkerClass.prototype._applyTestimonialFiltering=function(){var hash;if(window.location.hash){hash=window.location.hash.substr(1);console.debug("WorkerClass: Hash "+hash+" detected on url for testimonial filtering");window.filterTestimonialByTag(hash)}};WorkerClass.prototype._scrollHeaderMessage=function(aMessageIndex,aStep){if(aStep===0){$("#headerShippingMessage_"+aMessageIndex).removeClass("fade-in");$("#headerShippingMessage_"+aMessageIndex).addClass("fade-out");window.setTimeout(this._scrollHeaderMessage.bind(this,aMessageIndex,1),1e3)}else{$("#headerShippingMessage_"+aMessageIndex).hide();aMessageIndex=(aMessageIndex+1)%4;if($("#headerShippingMessage_"+aMessageIndex).length<=0){aMessageIndex=0}$("#headerShippingMessage_"+aMessageIndex).show();$("#headerShippingMessage_"+aMessageIndex).removeClass("fade-out");$("#headerShippingMessage_"+aMessageIndex).addClass("fade-in");window.setTimeout(this._scrollHeaderMessage.bind(this,aMessageIndex,0),3e3)}};WorkerClass.prototype.run=function(aCallback,aIsDeploying){var headerHeight;console.info("WorkerClass: Worker is started");$.fn.normalizeHeight=function(){var maxHeight;maxHeight=Math.max.apply(null,$(this).children().map(function(){return $(this).height()}));if(maxHeight>120){$(this).css("height",maxHeight+"px")}return this};window.runSlideShow=function(){console.info("WorkerClass: Running slideshow");const slides=document.querySelectorAll(".home-slideshow-hero > li");let index=0;slides[index].classList.add("active");if(slides.length>1){setInterval(()=>{slides[index].classList.remove("active");index=(index+1)%slides.length;slides[index].classList.add("active")},4e3)}};window.prepareCarouselItem=function(){var items;if($("#homeProductCarousel").length>0){window.runSlideShow();items=document.querySelectorAll(".carousel .carousel-item");items.forEach(el=>{const minPerSlide=window.innerWidth>575?4:2;let next=el.nextElementSibling;for(var i=1;i<minPerSlide;i++){if(!next){next=items[0]}let cloneChild=next.cloneNode(true);el.appendChild(cloneChild.children[0]);next=next.nextElementSibling}})}else{console.info("WorkerClass: Skipping slideshow as not detected");$(".carousel-inner").normalizeHeight()}};if(!aIsDeploying){if(window._internalCountryGroup&&window._internalCountryGroup==="noSpecialOffer"){$(".specialOffer").hide()}this._updateLeaveCriteria();if($(".tag_filtering").length>0){this._applyBlogFiltering()}this._activateScrollHeader();if($(".testimonial_filtering").length>0){this._applyTestimonialFiltering()}if($("#headerShippingMessage").length>0){this._scrollHeaderMessage(2,1)}window._activateLeaveModal=this._activateLeaveModal.bind(this);window._activateAqiReportModal=this._activateAqiReportModal.bind(this);this._armAqiReportModal();this._deferCallback=function(){this._deferImage();this._deferAnimation();this._deferVideo();this._deferThirdParty();this._deferCookieLaw();this._deferCountrySelection();this._activateVideoFading();this._activateNewsletter();this._detectMobileMenu();this._doScroll()}.bind(this);window.scrolltoAnchor=function(aId){if($("#"+aId).length>0){if(!coreObj.isInternetExplorer()){window.scroll({top:parseInt($("#"+aId).offset().top-60,10),left:0,behavior:"smooth"})}else{window.document.body.scrollTop=parseInt($("#"+aId).offset().top-60,10)}}else{console.warn("WorkerClass: Skipping scrolltoAnchor tp "+aId+" as it is unknown")}return false};window.selectChristmasItem=function(aClassToShow){var indArg;for(indArg=1;indArg<arguments.length;indArg+=1){$("."+arguments[indArg]).removeClass("christmasActive")}$("."+aClassToShow).addClass("christmasActive");return false};window.selectCarouselItem=function(aClassToShow){var indArg;for(indArg=1;indArg<arguments.length;indArg+=1){$("."+arguments[indArg]).hide()}$("."+aClassToShow).show();return false};window.switchThumb=function(aThumbId){var slides,track,slideHeight,index;console.debug("WorkerClass: activating thumb "+aThumbId);$(".product-slider-thumbs").removeClass("active");$(".product-slider-thumbs-"+aThumbId).addClass("active");slides=document.querySelectorAll(".product-slider-images");track=document.querySelector(".product-slider-track");slideHeight=slides[0].offsetHeight;
1index=parseInt(aThumbId,10)-1;track.style.transform="translateY("+-index*slideHeight+"px)";return false};window.switchClass=function(aCommonClass,aClassToShow){console.debug("WorkerClass: Hiding class "+aCommonClass+" to show new class "+aClassToShow);$("."+aCommonClass).hide();$("."+aClassToShow).show();return false};window.activateClass=function(aCommonClass,aNodeToActivate){$("."+aCommonClass).removeClass("active");$(aNodeToActivate).addClass("active");return false};window.setProductName=function(aProductName,aProductCategory){if(aProductCategory){$("#orderProductColorName_"+aProductCategory).text(aProductName)}else{$("#orderProductColorName").text(aProductName)}return false};window.setProductClass=function(aClassToSet){var referenceValue;console.debug("WorkerClass: Setting product class to "+aClassToSet);referenceValue=$(".catalogReference."+aClassToSet).html();$(".catalogProductMain").each(function(){this.className=$.trim(this.className.replace(/\S+_catalogProduct(?=\s|$)/g,""))+" "+aClassToSet}).html(referenceValue);return false};window.setProductImage=function(aProductCategory,aColor){window.switchClass("product-color-image-"+aProductCategory,"product-color-image-"+aProductCategory+"-"+aColor);console.warn("WorkerClass: Setting orderProductType_"+aProductCategory+" to "+aProductCategory+"_"+aColor);$("#orderProductType_"+aProductCategory).val(aProductCategory+"_"+aColor);$(".product-color-swatch-"+aProductCategory).removeClass("active");$(".product-color-swatch-"+aProductCategory+"-"+aColor).addClass("active");return false};window.setPackImage=function(aPackCategory,aSubProduct,aColor){var color200,color450;$("#packColor_"+aPackCategory+"_"+aSubProduct).val(aColor);color200=$("#packColor_"+aPackCategory+"_teqair200").val();color450=$("#packColor_"+aPackCategory+"_teqair450").val();console.warn("WorkerClass: Setting pack "+aPackCategory+" image to teqair200_"+color200+"_teqair450_"+color450);window.switchClass("product-color-image-"+aPackCategory,"product-color-image-"+aPackCategory+"-teqair200_"+color200+"_teqair450_"+color450);return false};window.switchSelector=function(aCommonClass,aChangeOrigin,aSelector1,aSelector2){var value1,value2,indOption;$("."+aCommonClass).removeClass("order-2");$("."+aCommonClass).removeClass("order-3");$("."+aCommonClass).addClass("d-none");value1=$("#"+aSelector1).val();value2=$("#"+aSelector2).val();if(value1===value2){if(aChangeOrigin===1){indOption=0;while(value1===value2){value2=$("#"+aSelector2+" option")[indOption].value;indOption+=1}$("#"+aSelector2).val(value2)}else{indOption=0;while(value1===value2){value1=$("#"+aSelector1+" option")[indOption].value;indOption+=1}$("#"+aSelector1).val(value1)}}$("."+value1).addClass("order-2");$("."+value1).removeClass("d-none");$("."+value2).addClass("order-3");$("."+value2).removeClass("d-none");return false};window.initWheel=function(aWheelClass){var wheelNode,indRow,row;wheelNode=$("."+aWheelClass);row=$(".cartWheelWheel").html();for(indRow=0;indRow<28;indRow+=1){wheelNode.append(row)}};window.spinWheel=function(aWheelClass){var wheelNode,nbCard,position,rows,card,landingPosition,randomize,object,resetTo;wheelNode=$("."+aWheelClass);nbCard=9;position=Math.floor(Math.random()*nbCard);rows=12;card=50+3*2;landingPosition=rows*nbCard*card+position*card;object={x:Math.floor(Math.random()*50)/100,y:Math.floor(Math.random()*20)/100};wheelNode.css({"transition-timing-function":"cubic-bezier(0,"+object.x+","+object.y+",1)","transition-duration":"6s",transform:"translate3d(-"+landingPosition+"px, 0px, 0px)"});setTimeout(function(){wheelNode.css({"transition-timing-function":"","transition-duration":""});resetTo=-(position*card);wheelNode.css("transform","translate3d("+resetTo+"px, 0px, 0px)")},6*1e3)};if(window.document.readyState==="complete"){console.info("WorkerClass: Using ready event");window.prepareCarouselItem();this._deferCallback();if(aCallback){aCallback()}}else{console.info("WorkerClass: Using load event");window.document.onreadystatechange=function(){if(window.document.readyState==="complete"){console.info("WorkerClass: Let's go 1");window.prepareCarouselItem();$(this._deferCallback);if(aCallback){aCallback()}}}.bind(this)}}else{if(window.document.readyState==="complete"){console.info("WorkerClass: Using ready event");window.prepareCarouselItem();if(aCallback){aCallback()}}else{console.info("WorkerClass: Using load event");window.document.onreadystatechange=function(){if(window.document.readyState==="complete"){console.info("WorkerClass: Let's go 2");window.prepareCarouselItem();if(aCallback){aCallback()}}}.bind(this)}}};return WorkerClass});define("json!thirdParty/pricing.json",function(){return{comment:"Generated by pricing-json-build.js from TEQOYA_pricing_20260914.xlsx and colissimo-2026.json. Edit the workbook, not this file.",category:{airobs_01_month:{de:"AirObserver-Abonnement",fr:"Abonnement AirObserver",en:"AirObserver subscription",es:"AirObserver subscription",it:"Abbonamento AirObserver",zh:"订é
AirObserver"},airobs_01_test:{de:"Angebot Meine Luft testen",fr:"Offre Tester Mon Air",en:"Offer Test My Air",es:"Service Test My Air",it:"Prova la mia offerta d'aria",zh:"æµè¯æçç©ºæ°æ¥ä»·"},cyclo:{de:"ALANA",fr:"ALANA",en:"ALANA",es:"ALANA",it:"ALANA",zh:"ALANA"},e500_01_standard:{de:"E500",fr:"E500",en:"E500",es:"E500",it:"E500",zh:"E500"},e500_02_connected:{de:"E500 Verbunden",fr:"E500 Connecté",en:"E500 Connected",es:"E500 Connected",it:"E500 Online",zh:"E500 Connected"},e500_03_standard:{de:"Noctua",fr:"Noctua",en:"Noctua",es:"Noctua",it:"Noctua",zh:"Noctua"},e500_04_connected:{de:"Noctua Verbunden",fr:"Noctua Connecté",en:"Noctua Connected",es:"Noctua Connected",it:"Noctua Online",zh:"Noctua Connected"},e500_03_cap:{de:"Noctua Hut",fr:"Chapeau Noctua",en:"Noctua Cap",es:"
1Cappello Noctua",it:"Cappello Noctua",zh:"Noctua 帽"},pack_e500_02_connected_teqsensor_01_s1:{de:"Packung E500 & S1",fr:"Pack E500 & S1",en:"Pack E500 & S1",es:"Pack E500 & S1",it:"Confezione E500 e S1",zh:"E500ä¸S1å¥è£
"},pack_e500_04_connected_teqsensor_01_s1:{de:"Packung Noctua & S1",fr:"Pack Noctua & S1",en:"Pack Noctua & S1",es:"Pack Noctua & S1",it:"Confezione Noctua e S1",zh:"Noctuaä¸S1å¥è£
"},pack_duo_actif:{de:"Aktiv-Duo",fr:"Duo Actif",en:"Active Duo",es:"Duo Actif",it:"Duo Attivo",zh:"éè¡ååå¥è£
"},pack_duo_chambres:{de:"Schlafzimmer-Duo",fr:"Duo Chambres",en:"Bedroom Duo",es:"Duo Chambres",it:"Duo Camere",zh:"å§å®¤ååå¥è£
"},pack_duo_maison:{de:"Zuhause-Duo",fr:"Duo Maison",en:"Home Duo",es:"Duo Maison",it:"Duo Casa",zh:"å
¨å±ååå¥è£
"},pack_duo_plein_air:{de:"Outdoor-Duo",fr:"Duo Plein Air",en:"Outdoor Duo",es:"Duo Plein Air",it:"Duo Outdoor",zh:"大空é´ååå¥è£
"},pack_duo_boost:{de:"Boost-Duo",fr:"Duo Boost",en:"Boost Duo",es:"Duo Boost",it:"Duo Boost",zh:"强æååå¥è£
"},pack_teqair200_01_teqsensor_01_s1:{de:"T200 + S1",fr:"T200 + S1",en:"T200 + S1",es:"T200 + S1",it:"T200 + S1",zh:"T200 + S1"},pack_teqair450_01_teqsensor_01_s1:{de:"T450 + S1",fr:"T450 + S1",en:"T450 + S1",es:"T450 + S1",it:"T450 + S1",zh:"T450 + S1"},other_01_cleaning_kit:{de:"Reinigungsset",fr:"Outil de nettoyage",en:"Cleaning kit",es:"Cleaning kit",it:"Kit di pulizia",zh:"æ¸
æ´å¥è£
"},teqair100_01_darkgrey_car:{de:"Nomad",fr:"Nomad",en:"Nomad",es:"Nomad",it:"Nomad",zh:"Nomad"},teqair100_01_darkgrey_indoor:{de:"Nomad Indoor",fr:"Nomad Indoor",en:"Nomad Indoor",es:"Nomad Indoor",it:"Nomad Indoor",zh:"Nomad Indoor"},teqair100_01_wooden_foot:{de:"NomadenfuÃ",fr:"Pied du Nomad",en:"Nomad's foot",es:"Pie del Nomad",it:"Piedi del Nomad",zh:"Nomadçè"},teqair200_01_black:{de:"TeqAir200",fr:"TeqAir200",en:"TeqAir200",es:"TeqAir200",it:"TeqAir200",zh:"TeqAir200"},teqair200_01_blue:{de:"TeqAir200",fr:"TeqAir200",en:"TeqAir200",es:"TeqAir200",it:"TeqAir200",zh:"TeqAir200"},teqair200_01_darkgrey:{de:"TeqAir200",fr:"TeqAir200",en:"TeqAir200",es:"TeqAir200",it:"TeqAir200",zh:"TeqAir200"},teqair200_01_lightgrey:{de:"TeqAir200",fr:"TeqAir200",en:"TeqAir200",es:"TeqAir200",it:"TeqAir200",zh:"TeqAir200"},teqair200_01_pinkclay:{de:"TeqAir200",fr:"TeqAir200",en:"TeqAir200",es:"TeqAir200",it:"TeqAir200",zh:"TeqAir200"},teqair200_01_teqair450_pack:{de:"Packung T200 & T450",fr:"Pack T200 & T450",en:"Pack T200 & T450",es:"Pack T200 & T450",it:"Confezione T200 e T450",zh:"T200ä¸T450å¥è£
"},lavie_pack_blue:{de:"TeqAir200",fr:"TeqAir200",en:"TeqAir200",es:"TeqAir200",it:"TeqAir200",zh:"TeqAir200"},lavie_pack_darkgrey:{de:"TeqAir200",fr:"TeqAir200",en:"TeqAir200",es:"TeqAir200",it:"TeqAir200",zh:"TeqAir200"},lavie_pack_lightgrey:{de:"TeqAir200",fr:"TeqAir200",en:"TeqAir200",es:"TeqAir200",it:"TeqAir200",zh:"TeqAir200"},lavie_pack_pinkclay:{de:"TeqAir200",fr:"TeqAir200",en:"TeqAir200",es:"TeqAir200",it:"TeqAir200",zh:"TeqAir200"},teqair450_01_black:{de:"TeqAir450",fr:"TeqAir450",en:"TeqAir450",es:"TeqAir450",it:"TeqAir450",zh:"TeqAir450"},teqair450_01_darkgrey_hang:{de:"TeqAir450 Pro",fr:"TeqAir450 Pro",en:"TeqAir450 Pro",es:"TeqAir450 Pro",it:"TeqAir450 Pro",zh:"TeqAir450 Pro"},teqair450_01_lightgrey:{de:"TeqAir450",fr:"TeqAir450",en:"TeqAir450",es:"TeqAir450",it:"TeqAir450",zh:"TeqAir450"},teqair450_01_lightgrey_hang:{de:"TeqAir450 Pro",fr:"TeqAir450 Pro",en:"TeqAir450 Pro",es:"TeqAir450 Pro",it:"TeqAir450 Pro",zh:"TeqAir450 Pro"},teqsensor_01_s1:{de:"TEQOYA S1",fr:"TEQOYA S1",en:"TEQOYA S1",es:"TEQOYA S1",it:"TEQOYA S1",zh:"TEQOYA S1"},tip4_01_black:{de:"Tip4",fr:"Tip4",en:"Tip4",es:"Tip4",it:"Tip4",zh:"Tip4"},tip9_01_black:{de:"Tip9",fr:"Tip9",en:"Tip9",es:"Tip9",it:"Tip9",zh:"Tip9"},tip9_01_blue:{de:"Tip9",fr:"Tip9",en:"Tip9",es:"Tip9",it:"Tip9",zh:"Tip9"},tip9_01_grey:{de:"Tip9",fr:"Tip9",en:"Tip9",es:"Tip9",it:"Tip9",zh:"Tip9"},tip9_01_orange:{de:"Tip9",fr:"Tip9",en:"Tip9",es:"Tip9",it:"Tip9",zh:"Tip9"},tip9_01_pink:{de:"Tip9",fr:"Tip9",en:"Tip9",es:"Tip9",it:"Tip9",zh:"Tip9"},tip9_01_red:{de:"Tip9",fr:"Tip9",en:"Tip9",es:"Tip9",it:"Tip9",zh:"Tip9"},tip24_01_black_plain_short:{de:"Tip24",fr:"Tip24",en:"Tip24",es:"Tip24",it:"Tip24",zh:"Tip24"},tip24_01_black_ceiling:{de:"Tip24 Pro",fr:"Tip24 Pro",en:"Tip24 Pro",es:"Tip24 Pro",it:"Tip24 Pro",zh:"Tip24 Pro"},sensor_01_laser_egg_2:{de:"Laser Egg 2",fr:"Laser Egg 2",en:"Laser Egg 2",es:"Laser Egg 2",it:"Laser Egg 2",zh:"Laser Egg 2"},sensor_02_laser_egg_co2:{de:"Laser Egg CO2",fr:"Laser Egg CO2",en:"Laser Egg CO2",es:"Laser Egg CO2",it:"Laser Egg CO2",zh:"Laser Egg CO2"}},reference:{airobs_01_month:{de:"AirObserver-Abonnement",fr:"Abonnement AirObserver",en:"AirObserver subscription",es:"AirObserver subscription",it:"Abbonamento AirObserver",zh:"订é
AirObserver"},airobs_01_test:{de:"Angebot Meine Luft testen",fr:"Offre Tester Mon Air",en:"Offer Test My Air",es:"Offer Test My Air",it:"Prova la mia offerta d'aria",zh:"æµè¯æçç©ºæ°æ¥ä»·"},cyclo:{de:"ALANA",fr:"ALANA",en:"ALANA",es:"ALANA",it:"ALANA",zh:"ALANA"},e500_01_standard:{de:"E500",fr:"E500",en:"E500",es:"E500",it:"E500",zh:"E500"},e500_02_connected:{de:"E500 Verbunden",fr:"E500 Connecté",en:"E500 Connected",es:"E500 Connected",it:"E500 Online",zh:"E500 Connected"},e500_03_standard:{de:"Noctua",fr:"Noctua",en:"Noctua",es:"Noctua",it:"Noctua",zh:"Noctua"},e500_04_connected:{de:"Noctua Verbunden",fr:"Noctua Connecté",en:"Noctua Connected",es:"Noctua Connected",it:"Noctua Online",zh:"Noctua Connected"},e500_03_cap:{de:"Noctua Hut",fr:"Chapeau Noctua",en:"Noctua Cap",es:"
1Cappello Noctua",it:"Cappello Noctua",zh:"Noctua 帽"},pack_e500_02_connected_teqsensor_01_s1:{de:"Packung E500 & S1",fr:"Pack E500 & S1",en:"Pack E500 & S1",es:"Pack E500 & S1",it:"Confezione E500 e S1",zh:"E500ä¸S1å¥è£
"},pack_e500_04_connected_teqsensor_01_s1:{de:"Packung Noctua & S1",fr:"Pack Noctua & S1",en:"Pack Noctua & S1",es:"Pack Noctua & S1",it:"Confezione Noctua e S1",zh:"Noctuaä¸S1å¥è£
"},pack_duo_actif:{de:"Aktiv-Duo",fr:"Duo Actif",en:"Active Duo",es:"Duo Actif",it:"Duo Attivo",zh:"éè¡ååå¥è£
"},pack_duo_chambres:{de:"Schlafzimmer-Duo",fr:"Duo Chambres",en:"Bedroom Duo",es:"Duo Chambres",it:"Duo Camere",zh:"å§å®¤ååå¥è£
"},pack_duo_maison:{de:"Zuhause-Duo",fr:"Duo Maison",en:"Home Duo",es:"Duo Maison",it:"Duo Casa",zh:"å
¨å±ååå¥è£
"},pack_duo_plein_air:{de:"Outdoor-Duo",fr:"Duo Plein Air",en:"Outdoor Duo",es:"Duo Plein Air",it:"Duo Outdoor",zh:"大空é´ååå¥è£
"},pack_duo_boost:{de:"Boost-Duo",fr:"Duo Boost",en:"Boost Duo",es:"Duo Boost",it:"Duo Boost",zh:"强æååå¥è£
"},pack_teqair200_01_teqsensor_01_s1:{de:"T200 + S1",fr:"T200 + S1",en:"T200 + S1",es:"T200 + S1",it:"T200 + S1",zh:"T200 + S1"},pack_teqair450_01_teqsensor_01_s1:{de:"T450 + S1",fr:"T450 + S1",en:"T450 + S1",es:"T450 + S1",it:"T450 + S1",zh:"T450 + S1"},other_01_cleaning_kit:{de:"Reinigungsset",fr:"Outil de nettoyage",en:"Cleaning kit",es:"Cleaning kit",it:"Kit di pulizia",zh:"æ¸
æ´å¥è£
"},teqair100_01_darkgrey_car:{de:"TEQOYA Nomad",fr:"TEQOYA Nomad",en:"TEQOYA Nomad",es:"TEQOYA Nomad",it:"TEQOYA Nomad",zh:"TEQOYA Nomad"},teqair100_01_darkgrey_indoor:{de:"TEQOYA Nomad und y Innen Kit",fr:"TEQOYA Nomad & Kit table",en:"TEQOYA Nomad & Indoor Kit",es:"TEQOYA Nomad Kit de mesa",it:"TEQOYA Nomad e Kit da casa",zh:"TEQOYA Nomadéè¡å室å
å¥ä»¶"},teqair100_01_wooden_foot:{de:"Innen Kit",fr:"Kit table",en:"Indoor Kit",es:"Kit de mesa",it:"Kit da casa",zh:"室å
å¥ä»¶"},teqair200_01_black:{de:"TEQOYA T200 schwarz",fr:"TEQOYA T200 noir",en:"TEQOYA T200 dark",es:"TEQOYA T200 negro",it:"TEQOYA T200 nero",zh:"TEQOYA T200 é»è²"},teqair200_01_blue:{de:"TEQOYA T200 Blauer Ton",fr:"TEQOYA T200 argile bleue",en:"TEQOYA T200 blue clay",es:"TEQOYA T200 arcilla azul",it:"TEQOYA T200 argilla blu",zh:"TEQOYA T200 èç°è²"},teqair200_01_darkgrey:{de:"TEQOYA T200 Anthrazit",fr:"TEQOYA T200 anthracite",en:"TEQOYA T200 dark grey",es:"TEQOYA T200 antracita",it:"TEQOYA T200 antracite",zh:"TEQOYA T200 é»è²"},teqair200_01_lightgrey:{de:"TEQOYA T200 weiÃ",fr:"TEQOYA T200 blanc",en:"TEQOYA T200 white",es:"TEQOYA T200 blanco",it:"TEQOYA T200 bianco",zh:"TEQOYA T200 ç½è²"},teqair200_01_pinkclay:{de:"TEQOYA T200 Rosa Ton",fr:"TEQOYA T200 argile rose",en:"TEQOYA T200 pink clay",es:"TEQOYA T200 arcilla rosa",it:"TEQOYA T200 argilla rosa",zh:"TEQOYA T200 ç²çº¢è²çé»å"},teqair200_01_teqair450_pack:{de:"Packung T200 & T450",fr:"Pack T200 & T450",en:"Pack T200 & T450",es:"Pack T200 & T450",it:"Confezione T200 e T450",zh:"T200ä¸T450å¥è£
"},lavie_pack_blue:{de:"T200 x LA VIE Blauer Ton",fr:"T200 x LA VIE argile bleue",en:"T200 x LA VIE blue clay",es:"T200 x LA VIE arcilla azul",it:"T200 x LA VIE argilla blu",zh:"T200 x LA VIE èç°è²"},lavie_pack_darkgrey:{de:"T200 x LA VIE Anthrazit",fr:"T200 x LA VIE anthracite",en:"T200 x LA VIE dark grey",es:"T200 x LA VIE antracita",it:"T200 x LA VIE antracite",zh:"T200 x LA VIE é»è²"},lavie_pack_lightgrey:{de:"T200 x LA VIE weiÃ",fr:"T200 x LA VIE blanc",en:"T200 x LA VIE white",es:"T200 x LA VIE blanco",it:"T200 x LA VIE bianco",zh:"T200 x LA VIE ç½è²"},lavie_pack_pinkclay:{de:"T200 x LA VIE Rosa Ton",fr:"T200 x LA VIE argile rose",en:"T200 x LA VIE pink clay",es:"T200 x LA VIE arcilla rosa",it:"T200 x LA VIE argilla rosa",zh:"T200 x LA VIE ç²çº¢è²çé»å"},teqair450_01_black:{de:"TEQOYA T450 Anthrazit",fr:"TEQOYA T450 anthracite",en:"TEQOYA T450 dark grey",es:"TEQOYA T450 antracita",it:"TEQOYA T450 antracite",zh:"TEQOYA T450 é»è²"},teqair450_01_darkgrey_hang:{de:"TEQOYA T450 Deckenleuchte Anthrazit",fr:"TEQOYA T450 Plafonnier anthracite",en:"TEQOYA T450 Ceiling dark grey",es:"TEQOYA T450 Pro",it:"TEQOYA T450 Plafoniera antracite",zh:"TEQOYA T450 Ceiling é»è²"},teqair450_01_lightgrey:{de:"TEQOYA T450 WeiÃ",fr:"TEQOYA T450 blanc",en:"TEQOYA T450 white",es:"TEQOYA T450 blanco",it:"TEQOYA T450 bianco",zh:"TEQOYA T450 ç½è²"},teqair450_01_lightgrey_hang:{de:"TEQOYA T450 Deckenleuchte WeiÃ",fr:"TEQOYA T450 Plafonnier blanc",en:"TEQOYA T450 Ceiling white",es:"TEQOYA T450 Plafón blanco",it:"TEQOYA T450 Plafoniera bianco",zh:"TEQOYA T450 Ceiling ç½è²"},teqsensor_01_s1:{de:"TEQOYA S1",fr:"TEQOYA S1",en:"TEQOYA S1",es:"TEQOYA S1",it:"TEQOYA S1",zh:"TEQOYA S1"},tip4_01_black:{de:"Tip4 schwarz",fr:"Tip4 noir",en:"Tip4 black",es:"Tip4 negro",it:"Tip4 nero",zh:"Tip4 black"},tip9_01_black:{de:"Tip9 schwarz",fr:"Tip9 noir",en:"Tip9 black",es:"Tip9 negro",it:"Tip9 nero",zh:"Tip9 black"},tip9_01_blue:{de:"Tip9 blau",fr:"Tip9 bleu",en:"Tip9 blue",es:"Tip9 azul",it:"Tip9 blu",zh:"Tip9 blue"},tip9_01_grey:{de:"Tip9 grau",fr:"Tip9 gris",en:"Tip9 grey",es:"Tip9 gris",it:"Tip9 grigio",zh:"Tip9 grey"},tip9_01_orange:{de:"Tip9 orange",fr:"Tip9 orange",en:"Tip9 orange",es:"Tip9 naranja",it:"Tip9 arancione",zh:"Tip9 orange"},tip9_01_pink:{de:"Tip9 pink",fr:"Tip9 rose",en:"Tip9 pink",es:"Tip9 rosado",it:"Tip9 rosa",zh:"Tip9 pink"},tip9_01_red:{de:"Tip9 rot",fr:"Tip9 rouge",en:"Tip9 red",es:"Tip9 rojo",it:"Tip9 rosso",zh:"Tip9 red"},tip24_01_black_plain_short:{de:"Tip24 schwarz",fr:"Tip24 noir",en:"Tip24 black",es:"Tip24 negro",it:"Tip24 nero",zh:"Tip24 black"},tip24_01_black_ceiling:{de:"Tip24 Pro schwarz",fr:"Tip24 Pro noir",en:"Tip24 Pro black",es:"Tip24 Pro negro",it:"Tip24 Pro nero",zh:"Tip24 Pro black"},sensor_01_laser_egg_2:{de:"Laser Egg 2",fr:"Laser Egg 2",en:"Laser Egg 2",es:"Laser Egg 2",it:"Laser Egg 2",zh:"Laser Egg 2"},sensor_02_laser_egg_co2:{de:"Laser Egg CO2",fr:"Laser Egg CO2",en:"Laser Egg CO2",es:"Laser Egg CO2",it:"Laser Egg CO2",zh:"Laser Egg CO2"}},mapping:{airobs_01_month:"AirObs-01-month",airobs_01_test:"AirObs-01-test",alana:"Cyclo-01-alana-dual",cyclo:"Cyclo-01-white",e500_01_standard:"E500-01-standard",e500_02_connected:"E500-02-connected",e500_03_standard:"E500-03-standard",e500_04_connected:"E500-04-connected",e500_03_cap:"E500-03-cap",other_01_cleaning_kit:"OTHER-01-Cleaning-Kit",teqair100_01_darkgrey_car:"TeqAir100-01-darkgrey-car",teqair100_01_darkgrey_indoor:"TeqAir100-01-darkgrey-indoor",teqair100_01_wooden_foot:"TeqAir100-01-wooden-foot",teqair100_01_mokeup:"TeqAir100-01-mokeup",teqair200_01_black:"TeqAir200-01-black",teqair200_01_blue:"TeqAir200-01-bluegrey",teqair200_01_darkgrey:"TeqAir200-01-darkgrey",teqair200_01_lightgrey:"TeqAir200-01-lightgrey",teqair200_01_pinkclay:"TeqAir200-01-pinkclay",teqair200_01_beige:"TeqAir200-01-beige",teqair200_01_mokeup:"TeqAir200-01-mokeup",lavie_pack_blue:"lavie_pack_blue",lavie_pack_dar
1kgrey:"lavie_pack_darkgrey",lavie_pack_lightgrey:"lavie_pack_lightgrey",lavie_pack_pinkclay:"lavie_pack_pinkclay",teqair450_01_ceiling:"TeqAir450-01-ceiling",teqair450_01_black:"TeqAir450-01-darkgrey",teqair450_01_darkgrey_mix:"TeqAir450-01-darkgrey-mix",teqair450_01_darkgrey_hang:"TeqAir450-01-darkgrey-hang",teqair450_01_lightgrey:"TeqAir450-01-lightgrey",teqair450_01_lightgrey_mix:"TeqAir450-01-lightgrey-mix",teqair450_01_lightgrey_hang:"TeqAir450-01-lightgrey-hang",teqair450_01_mokeup:"TeqAir450-01-mokeup",teqsensor_01_s1:"TeqSensor-01-s1",tip4_01_black:"TIP4-01-black",tip4_01_mokeup:"TIP4-01-mokeup",tip9_01_black:"TIP9-01-black",tip9_01_blue:"TIP9-01-blue",tip9_01_fake_anycolor:"TIP9-01-fake-anycolor",tip9_01_green:"TIP9-01-green",tip9_01_grey:"TIP9-01-grey",tip9_01_orange:"TIP9-01-orange",tip9_01_pink:"TIP9-01-pink",tip9_01_red:"TIP9-01-red",tip24_01_black_plain_short:"TIP24-01-black-plain-short",tip24_01_black_coated_long:"TIP24-01-black-coated-long",tip24_01_black_coated_short:"TIP24-01-black-coated-short",tip24_01_black_ceiling:"TIP24-01-black-ceiling",sensor_01_laser_egg_2:"SENSOR-01-laser-egg-2",sensor_02_laser_egg_co2:"SENSOR-02-laser-egg-co2"},prefix:{airobs_01_month:"AirObs-01",airobs_01_test:"AirObs-01",cyclo:"Cyclo-01",e500_01_standard:"E500-01",e500_02_connected:"E500-02",e500_03_standard:"E500-03",e500_04_connected:"E500-04",e500_03_cap:"E500-03",other_01_cleaning_kit:"OTHER-01",teqair100_01_darkgrey_car:"TeqAir100-01",teqair100_01_darkgrey_indoor:"TeqAir100-01",teqair100_01_wooden_foot:"TeqAir100-01",teqair200_01_black:"TeqAir200-01",teqair200_01_blue:"TeqAir200-01",teqair200_01_darkgrey:"TeqAir200-01",teqair200_01_lightgrey:"TeqAir200-01",teqair200_01_pinkclay:"TeqAir200-01",lavie_pack_blue:"TeqAir200-01",lavie_pack_darkgrey:"TeqAir200-01",lavie_pack_lightgrey:"TeqAir200-01",lavie_pack_pinkclay:"TeqAir200-01",teqair450_01_black:"TeqAir450-01",teqair450_01_darkgrey_hang:"TeqAir450-01",teqair450_01_lightgrey:"TeqAir450-01",teqair450_01_lightgrey_hang:"TeqAir450-01",teqsensor_01_s1:"TeqSensor-01",tip4_01_black:"TIP4-01",tip9_01_black:"TIP9-01",tip9_01_blue:"TIP9-01",tip9_01_grey:"TIP9-01",tip9_01_orange:"TIP9-01",tip9_01_pink:"TIP9-01",tip9_01_red:"TIP9-01",tip24_01_black_plain_short:"TIP24-01",tip24_01_black_ceiling:"TIP24-01-PRO",sensor_01_laser_egg_2:"SENSOR-01",sensor_02_laser_egg_co2:"SENSOR-02"},type:{teqair100_01_darkgrey_car:"product",teqair100_01_darkgrey_indoor:"product",teqair200_01_black:"product",teqair200_01_blue:"product",teqair200_01_darkgrey:"product",teqair200_01_lightgrey:"product",teqair200_01_pinkclay:"product",teqair450_01_black:"product",teqair450_01_darkgrey_hang:"product",teqair450_01_lightgrey:"product",teqair450_01_lightgrey_hang:"product",e500_01_standard:"product",e500_02_connected:"product",e500_03_standard:"product",e500_04_connected:"product",teqsensor_01_s1:"sensor",teqair100_01_wooden_foot:"accessory",e500_03_cap:"accessory",other_01_cleaning_kit:"accessory"},weight:{teqair100_01_darkgrey_car:1,teqair100_01_darkgrey_indoor:1,teqair200_01_black:1,teqair200_01_blue:1,teqair200_01_darkgrey:1,teqair200_01_lightgrey:1,teqair200_01_pinkclay:1,teqair450_01_black:2,teqair450_01_darkgrey_hang:2,teqair450_01_lightgrey:2,teqair450_01_lightgrey_hang:2,e500_01_standard:5,e500_02_connected:5,e500_03_standard:5,e500_04_connected:5,teqsensor_01_s1:1,teqair100_01_wooden_foot:1,e500_03_cap:1,other_01_cleaning_kit:1,pack_duo_actif:2,pack_duo_chambres:2,pack_duo_maison:3,pack_duo_plein_air:4,pack_duo_boost:6,pack_teqair200_01_teqsensor_01_s1:2,pack_teqair450_01_teqsensor_01_s1:3,pack_e500_02_connected_teqsensor_01_s1:6,pack_e500_04_connected_teqsensor_01_s1:6},discontinued:["airobs_01_month","cyclo","teqair200_01_teqair450_pack","lavie_pack_blue","lavie_pack_darkgrey","lavie_pack_lightgrey","lavie_pack_pinkclay","tip4_01_black","tip9_01_black","tip9_01_blue","tip9_01_grey","tip9_01_orange","tip9_01_pink","tip9_01_red","tip24_01_black_plain_short","tip24_01_black_ceiling","sensor_01_laser_egg_2","sensor_02_laser_egg_co2","alana","teqair100_01_mokeup","teqair200_01_beige","teqair200_01_mokeup","teqair450_01_ceiling","teqair450_01_darkgrey_mix","teqair450_01_lightgrey_mix","teqair450_01_mokeup","tip4_01_mokeup","tip9_01_fake_anycolor","tip9_01_green","tip24_01_black_coated_long","tip24_01_black_coated_short"],pack:{comment:"Packs are cart products in their own right: priced, shipped and displayed as a single line. contentTab is the bill of materials, used only when the order is built (shop.js _buildPayment) and to derive the pack price under a coupon.",pack_duo_actif:{comment:"Nomad + T200",type:"product_pack",contentTab:[{choiceTab:["teqair100_01_darkgrey_car"],number:1},{choiceTab:["teqair200_01_blue","teqair200_01_lightgrey","teqair200_01_darkgrey","teqair200_01_pinkclay"],number:1}],discount:{fr:69,cee:69,row:59,china:109,tai:150,can:155}},pack_duo_chambres:{comment:"T200 + T200",type:"product_pack",contentTab:[{choiceTab:["teqair200_01_blue","teqair200_01_lightgrey","teqair200_01_darkgrey","teqair200_01_pinkclay"],number:1},{choiceTab:["teqair200_01_blue","teqair200_01_lightgrey","teqair200_01_darkgrey","teqair200_01_pinkclay"],number:1}],discount:{fr:99,cee:99,row:89,china:139,tai:220,can:215}},pack_duo_maison:{comment:"T200 + T450",type:"product_pack",contentTab:[{choiceTab:["teqair200_01_blue","teqair200_01_lightgrey","teqair200_01_darkgrey","teqair200_01_pinkclay"],number:1},{choiceTab:["teqair450_01_black","teqair450_01_lightgrey"],number:1}],discount:{fr:129,cee:129,row:119,china:189,tai:280,can:275}},pack_duo_plein_air:{comment:"T450 + T450",type:"product_pack",contentTab:[{choiceTab:["teqair450_01_lightgrey","teqair450_01_black"],number:1},{choiceTab:["teqair450_01_black","teqair450_01_lightgrey"],number:1}],discount:{fr:169,cee:169,row:149,china:249,tai:350,can:365}},pack_duo_boost:{comment:"E500 + T200",type:"product_pack",contentTab:[{choiceTab:["e500_01_standard","e500_02_connected","e500_03_standard","e500_04_connected"],number:1},{choiceTab:["teqair200_01_blue","teqair200_01_lightgrey","teqair200_01_darkgrey","teqair200_01_pinkclay"],number:1}],discount:{fr:149,cee:149,row:129,china:219,tai:320,can:325}},pack_teqair200_01_teqsensor_01_s1:{comment:"T200 + S1",type:"s1_pack",contentTab:[{choiceTab:["teqair200_01_blue","teqair200_01_lightgrey","teqair200_01_darkgrey","teqair200_01_pinkclay"],number:1},{productType:"teqsensor_01_s1",number:1}],discount:{fr:59,cee:59,row:79,china:89,tai:140,can:125}},pack_teqair450_01_teqsensor_01_s1:{comment:"T450 + S1",type:"s1_pack",contentTab:[{choiceTab:["teqair450_01_black","teqair450_01_lightgrey"],number:1},{productType:"teqsensor_01_s1",number:1}],discount:{fr:69,cee:69,row:89,china:99,tai:150,can:145}},pack_e500_02_connected_teqsensor_01_s1:{type:"s1_pack",contentTab:[{productType:"e500_02_connected",number:1},{productType:"teqsensor_01_s1",number:1}]},pack_e500_04_connected_teqsensor_01_s1:{type:"s1_pack",contentTab:[{productType:"e500_04_connected",number:1},{productType:"teqsensor_01_s1",number:1}]}},taxTab:{fr:20,mc:20,de:19,be:21,lu:17,nl:21,it:22,es:21,at:20,pt:23,ie:23,dk:25,ee:20,hu:27,lv:21,lt:21,pl:23,cz:21,sk:20,si:22,se:25,bg:20,cy:19,hr:25,fi:25.5,gr:24,mt:18,ro:19}
1,shipping:{comment:'Shipping is charged per cart line: a product or a pack ships at the Colissimo HT rate of its own weight (see "weight") in the delivery country; shop.js adds the VAT of that country, rounds each unit up to the next 0.10, then adds the lines up.',weightTab:[.5,1,2,3,4,5,6,7],countryTab:{fr:{name:"France",area:"fr",isFree:true,rateTab:[8.15,9.66,10.72,11.66,12.64,13.57,14.15,15.08]},mc:{name:"Monaco",area:"cee",isFree:false,rateTab:[8.15,9.66,10.72,11.66,12.64,13.57,14.15,15.08]},de:{name:"Allemagne",area:"cee",isFree:false,rateTab:[7.19,8.77,9.39,10.07,10.69,11.31,11.93,12.4]},be:{name:"Belgique",area:"cee",isFree:false,rateTab:[7.05,8.6,9.21,9.88,10.5,11.12,11.74,12.2]},lu:{name:"Luxembourg",area:"cee",isFree:false,rateTab:[8.21,10.02,10.73,11.5,12.21,12.91,13.61,14.14]},nl:{name:"Pays-bas",area:"cee",isFree:false,rateTab:[7.23,8.82,9.44,10.12,10.74,11.36,11.98,12.44]},it:{name:"Italie",area:"cee",isFree:false,rateTab:[8.13,10.35,11.57,12.33,12.95,13.57,14.19,14.65]},es:{name:"Espagne",area:"cee",isFree:false,rateTab:[8.09,10.29,11.52,12.27,12.89,13.51,14.13,14.59]},at:{name:"Autriche",area:"cee",isFree:false,rateTab:[9.43,11.99,13.41,14.29,15,15.7,16.4,16.93]},pt:{name:"Portugal",area:"cee",isFree:false,rateTab:[8.3,10.56,11.8,12.58,13.2,13.82,14.43,14.9]},ie:{name:"Irelande",area:"cee",isFree:false,rateTab:[9.43,11.99,13.41,14.29,15,15.7,16.4,16.93]},dk:{name:"Danemark",area:"cee",isFree:false,rateTab:[10.51,13.06,14.61,15.92,17.52,19.15,25.06,26.07]},ee:{name:"Estonie",area:"cee",isFree:false,rateTab:[10.51,13.06,14.61,15.92,17.52,19.15,25.06,26.07]},hu:{name:"Hongrie",area:"cee",isFree:false,rateTab:[10.51,13.06,14.61,15.92,17.52,19.15,25.06,26.07]},lv:{name:"Lettonie",area:"cee",isFree:false,rateTab:[10.51,13.06,14.61,15.92,17.52,19.15,25.06,26.07]},lt:{name:"Lituanie",area:"cee",isFree:false,rateTab:[10.51,13.06,14.61,15.92,17.52,19.15,25.06,26.07]},pl:{name:"Pologne",area:"cee",isFree:false,rateTab:[10.51,13.06,14.61,15.92,17.52,19.15,25.06,26.07]},cz:{name:"Tchèquie",area:"cee",isFree:false,rateTab:[10.51,13.06,14.61,15.92,17.52,19.15,25.06,26.07]},sk:{name:"Slovaquie",area:"cee",isFree:false,rateTab:[10.51,13.06,14.61,15.92,17.52,19.15,25.06,26.07]},si:{name:"Slovénie",area:"cee",isFree:false,rateTab:[10.51,13.06,14.61,15.92,17.52,19.15,25.06,26.07]},se:{name:"Suède",area:"cee",isFree:false,rateTab:[10.51,13.06,14.61,15.92,17.52,19.15,25.06,26.07]},bg:{name:"Bulgarie",area:"cee",isFree:false,rateTab:[12.31,15.06,16.58,18.18,20.33,24.58,27.81,31.68]},cy:{name:"Chypre",area:"cee",isFree:false,rateTab:[12.31,15.06,16.58,18.18,20.33,24.58,27.81,31.68]},hr:{name:"Croatie",area:"cee",isFree:false,rateTab:[12.31,15.06,16.58,18.18,20.33,24.58,27.81,31.68]},fi:{name:"Finlande",area:"cee",isFree:false,rateTab:[12.31,15.06,16.58,18.18,20.33,24.58,27.81,31.68]},gr:{name:"Grèce",area:"cee",isFree:false,rateTab:[12.31,15.06,16.58,18.18,20.33,24.58,27.81,31.68]},mt:{name:"Malte",area:"cee",isFree:false,rateTab:[12.31,15.06,16.58,18.18,20.33,24.58,27.81,31.68]},ro:{name:"Roumanie",area:"cee",isFree:false,rateTab:[12.31,15.06,16.58,18.18,20.33,24.58,27.81,31.68]},gb:{name:"Grande Bretagne",area:"row",isFree:false,rateTab:[8.26,10.5,11.75,12.51,13.13,13.75,14.37,14.84]},is:{name:"Islande",area:"row",isFree:false,rateTab:[12.31,15.06,16.58,18.18,20.33,24.58,27.81,31.68]},no:{name:"Norvège",area:"row",isFree:false,rateTab:[12.31,15.06,16.58,18.18,20.33,24.58,27.81,31.68]},dz:{name:"Algérie",area:"row",isFree:false,rateTab:[12.31,15.06,16.58,18.18,20.33,24.58,27.81,31.68]},ma:{name:"Maroc",area:"row",isFree:false,rateTab:[12.31,15.06,16.58,18.18,20.33,24.58,27.81,31.68]},tn:{name:"Tunisie",area:"row",isFree:false,rateTab:[12.31,15.06,16.58,18.18,20.33,24.58,27.81,31.68]},tr:{name:"Turquie",area:"row",isFree:false,rateTab:[12.31,15.06,16.58,18.18,20.33,24.58,27.81,31.68]},eg:{name:"Egypte",area:"row",isFree:false,rateTab:[12.31,15.06,16.58,18.18,20.33,24.58,27.81,31.68]},au:{name:"Australie",area:"row",isFree:false,rateTab:[24.23,26.79,36.73,46.66,53.49,57.09,72.98,83.98]},us:{name:"Etats-Unis",area:"row",isFree:false,rateTab:[23.39,25.86,35.47,45.06,51.64,55.12,70.46,81.46]},hk:{name:"Hong-Kong",area:"row",isFree:false,rateTab:[24.23,26.79,36.73,46.66,53.49,57.09,72.98,83.98]},in:{name:"Inde",area:"row",isFree:false,rateTab:[24.23,26.79,36.73,46.66,53.49,57.09,72.98,83.98]},il:{name:"Israel",area:"row",isFree:false,rateTab:[24.23,26.79,36.73,46.66,53.49,57.09,72.98,83.98]},jp:{name:"Japon",area:"row",isFree:false,rateTab:[24.23,26.79,36.73,46.66,53.49,57.09,72.98,83.98]},ru:{name:"Russie",area:"row",isFree:false,rateTab:[24.23,26.79,36.73,46.66,53.49,57.09,72.98,83.98]},sg:{name:"Singapour",area:"row",isFree:false,rateTab:[24.23,26.79,36.73,46.66,53.49,57.09,72.98,83.98]},th:{name:"Thaïlande",area:"row",isFree:false,rateTab:[24.23,26.79,36.73,46.66,53.49,57.09,72.98,83.98]},vn:{name:"Vietnam",area:"row",isFree:false,rateTab:[24.23,26.79,36.73,46.66,53.49,57.09,72.98,83.98]},ar:{name:"Argentine",area:"row",isFree:false,rateTab:[27.78,32.68,44.87,57.31,68.75,79.92,91.62,102.18]},br:{name:"Brésil",area:"row",isFree:false,rateTab:[27.78,32.68,44.87,57.31,68.75,79.92,91.62,102.18]},ci:{name:"Côte d'Ivoire",area:"row",isFree:false,rateTab:[27.78,32.68,44.87,57.31,68.75,79.92,91.62,102.18]},cl:{name:"Chili",area:"row",isFree:false,rateTab:[27.78,32.68,44.87,57.31,68.75,79.92,91.62,102.18]},cm:{name:"Cameroun",area:"row",isFree:false,rateTab:[27.78,32.68,44.87,57.31,68.75,79.92,91.62,102.18]},co:{name:"Colombie",area:"row",isFree:false,rateTab:[27.78,32.68,44.87,57.31,68.75,79.92,91.62,102.18]},id:{name:"Indonésie",area:"row",isFree:false,rateTab:[27.78,32.68,44.87,57.31,68.75,79.92,91.62,102.18]},jo:{name:"Jordanie",area:"row",isFree:false,rateTab:[27.78,32.68,44.87,57.31,68.75,79.92,91.62,102.18]}
1,kh:{name:"Cambodge",area:"row",isFree:false,rateTab:[27.78,32.68,44.87,57.31,68.75,79.92,91.62,102.18]},ky:{name:"Iles Caïmans",area:"row",isFree:false,rateTab:[27.78,32.68,44.87,57.31,68.75,79.92,91.62,102.18]},kz:{name:"Kazakhstan",area:"row",isFree:false,rateTab:[27.78,32.68,44.87,57.31,68.75,79.92,91.62,102.18]},lb:{name:"Liban",area:"row",isFree:false,rateTab:[27.78,32.68,44.87,57.31,68.75,79.92,91.62,102.18]},mu:{name:"Maurice",area:"row",isFree:false,rateTab:[27.78,32.68,44.87,57.31,68.75,79.92,91.62,102.18]},mx:{name:"Mexique",area:"row",isFree:false,rateTab:[27.78,32.68,44.87,57.31,68.75,79.92,91.62,102.18]},nz:{name:"Nouvelle Zélande",area:"row",isFree:false,rateTab:[27.78,32.68,44.87,57.31,68.75,79.92,91.62,102.18]},pa:{name:"Panama",area:"row",isFree:false,rateTab:[27.78,32.68,44.87,57.31,68.75,79.92,91.62,102.18]},pe:{name:"Pérou",area:"row",isFree:false,rateTab:[27.78,32.68,44.87,57.31,68.75,79.92,91.62,102.18]},ph:{name:"Philippines",area:"row",isFree:false,rateTab:[27.78,32.68,44.87,57.31,68.75,79.92,91.62,102.18]},sn:{name:"Sénégal",area:"row",isFree:false,rateTab:[27.78,32.68,44.87,57.31,68.75,79.92,91.62,102.18]},za:{name:"Afrique du Sud",area:"row",isFree:false,rateTab:[27.78,32.68,44.87,57.31,68.75,79.92,91.62,102.18]},my:{name:"Malaisie",area:"row",isFree:false,rateTab:[27.78,32.68,44.87,57.31,68.75,79.92,91.62,102.18]},ae:{name:"Emirat Arabes Unis",area:"row",isFree:false,rateTab:[27.78,32.68,44.87,57.31,68.75,79.92,91.62,102.18]},bh:{name:"Barhein",area:"row",isFree:false,rateTab:[27.78,32.68,44.87,57.31,68.75,79.92,91.62,102.18]},kw:{name:"Koweit",area:"row",isFree:false,rateTab:[27.78,32.68,44.87,57.31,68.75,79.92,91.62,102.18]},om:{name:"Oman",area:"row",isFree:false,rateTab:[27.78,32.68,44.87,57.31,68.75,79.92,91.62,102.18]},qa:{name:"Quatar",area:"row",isFree:false,rateTab:[27.78,32.68,44.87,57.31,68.75,79.92,91.62,102.18]},sa:{name:"Arabie Saoudite",area:"row",isFree:false,rateTab:[27.78,32.68,44.87,57.31,68.75,79.92,91.62,102.18]},gf:{name:"Guyane",area:"row",isFree:false,rateTab:[14.81,18.99,25.61,32.22,37.44,43.44,52.07,58.69]},gp:{name:"Guadeloupe",area:"row",isFree:false,rateTab:[14.81,18.99,25.61,32.22,37.44,43.44,52.07,58.69]},mq:{name:"Martinique",area:"row",isFree:false,rateTab:[14.81,18.99,25.61,32.22,37.44,43.44,52.07,58.69]},pm:{name:"St Pierre & Miquelon",area:"row",isFree:false,rateTab:[14.81,18.99,25.61,32.22,37.44,43.44,52.07,58.69]},re:{name:"La Réunion",area:"row",isFree:false,rateTab:[14.81,18.99,25.61,32.22,37.44,43.44,52.07,58.69]},yt:{name:"Mayotte",area:"row",isFree:false,rateTab:[14.81,18.99,25.61,32.22,37.44,43.44,52.07,58.69]},nc:{name:"Nouvelle Calédonie",area:"row",isFree:false,rateTab:[21.73,26.89,41.83,58.9,71.16,85.98,105.43,118.66]},pf:{name:"Polynésie",area:"row",isFree:false,rateTab:[21.73,26.89,41.83,58.9,71.16,85.98,105.43,118.66]},wf:{name:"Wallis & Futuna",area:"row",isFree:false,rateTab:[21.73,26.89,41.83,58.9,71.16,85.98,105.43,118.66]},cn:{name:"Chine",area:"china",isFree:false,rateTab:[15.31,16.92,23.2,29.48,33.8,36.07,46.11,53.23]},kr:{name:"Corée du Sud",area:"china",isFree:false,rateTab:[24.23,26.79,36.73,46.66,53.49,57.09,72.98,83.98]},tw:{name:"Taiwan",area:"tai",isFree:false,rateTab:[24.23,26.79,36.73,46.66,53.49,57.09,72.98,83.98]},ca:{name:"Canada",area:"can",isFree:false,rateTab:[24.23,26.79,36.73,46.66,53.49,57.09,72.98,83.98]}}},product:{fr:{reference:{comment:"Reference price used to detect promotion",startline:"",deadline:"",identifier:"Public",teqair100_01_darkgrey_car:199,teqair100_01_darkgrey_indoor:219,teqair200_01_black:399,teqair200_01_blue:399,teqair200_01_darkgrey:399,teqair200_01_lightgrey:399,teqair200_01_pinkclay:399,teqair450_01_black:589,teqair450_01_darkgrey_hang:589,teqair450_01_lightgrey:589,teqair450_01_lightgrey_hang:589,e500_01_standard:699,e500_02_connected:729,e500_03_standard:749,e500_04_connected:779,teqsensor_01_s1:159,teqair100_01_wooden_foot:29,e500_03_cap:49,other_01_cleaning_kit:7.5,airobs_01_test:24,pack_e500_02_connected_teqsensor_01_s1:888,pack_e500_04_connected_teqsensor_01_s1:938},standard:{comment:"Official public price (no coupon)",startline:"",deadline:"",identifier:"Public",teqair100_01_darkgrey_car:199,teqair100_01_darkgrey_indoor:219,teqair200_01_black:399,teqair200_01_blue:399,teqair200_01_darkgrey:399,teqair200_01_lightgrey:399,teqair200_01_pinkclay:399,teqair450_01_black:589,teqair450_01_darkgrey_hang:589,teqair450_01_lightgrey:589,teqair450_01_lightgrey_hang:589,e500_01_standard:699,e500_02_connected:729,e500_03_standard:749,e500_04_connected:779,teqsensor_01_s1:159,teqair100_01_wooden_foot:29,e500_03_cap:49,other_01_cleaning_kit:7.5,airobs_01_test:24,pack_e500_02_connected_teqsensor_01_s1:809,pack_e500_04_connected_teqsensor_01_s1:859}},cee:{reference:{comment:"Reference price used to detect promotion",startline:"",deadline:"",identifier:"Public",teqair100_01_darkgrey_car:199,teqair100_01_darkgrey_indoor:219,teqair200_01_black:399,teqair200_01_blue:399,teqair200_01_darkgrey:399,teqair200_01_lightgrey:399,teqair200_01_pinkclay:399,teqair450_01_black:589,teqair450_01_darkgrey_hang:589,teqair450_01_lightgrey:589,teqair450_01_lightgrey_hang:589,e500_01_standard:699,e500_02_connected:729,e500_03_standard:749,e500_04_connected:779,teqsensor_01_s1:159,teqair100_01_wooden_foot:29,e500_03_cap:49,other_01_cleaning_kit:7.5,airobs_01_test:24,pack_e500_02_connected_teqsensor_01_s1:888,pack_e500_04_connected_teqsensor_01_s1:938},standard:{comment:"Official public price (no coupon)",startline:"",deadline:"",identifier:"Public",teqair100_01_darkgrey_car:199,teqair100_01_darkgrey_indoor:219,teqair200_01_black:399,teqair200_01_blue:399,teqair200_01_darkgrey:399,teqair200_01_lightgrey:399,teqair200_01_pinkclay:399,teqair450_01_black:589,teqair450_01_darkgrey_hang:589,teqair450_01_lightgrey:589,teqair450_01_lightgrey_hang:589,e500_01_standard:699,e500_02_connected:729,e500_03_standard:749,e500_04_connected:779,teqsensor_01_s1:159,teqair100_01_wooden_foot:29,e500_03_cap:49,other_01_cleaning_kit:7.5,airobs_01_test:24,pack_e500_02_connected_teqsensor_01_s1:809,pack_e500_04_connected_teqsensor_01_s1:859}},row:{reference:{comment:"Reference price used to detect promotion",startline:"",deadline:"",identifier:"Public",teqair100_01_darkgrey_car:169,teqair100_01_darkgrey_indoor:189,teqair200_01_black:339,teqair200_01_blue:339,teqair200_01_darkgrey:339,teqair200_01_lightgrey:339,teqair200_01_pinkclay:339,teqair450_01_black:499,teqair450_01_darkgrey_hang:499,teqair450_01_lightgrey:499,teqair450_01_lightgrey_hang:499,e500_01_standard:589,e500_02_connected:609,e500_03_standard:629,e500_04_connected:649,teqsensor_01_s1:159,teqair100_01_wooden_foot:29,e500_03_cap:49,other_01_cleaning_kit:9,airobs_01_test:24,pack_e500_02_connected_teqsensor_01_s1:768,pack_e500_04_connected_teqsensor_01_s1:808},standard:{comment:"Official public price (no coupon)",startline:"",deadline:"",identifier:"Public",teqair100_01_darkgrey_car:169,teqair100_01_darkgrey_indoor:189,teqair200_01_black:339,teqair200_01_blue:339,teqair200_01_darkgrey:339,teqair200_01_lightgrey:339,teqair200_01_pinkclay:339,teqair450_01_black:499,teqair450_01_darkgrey_hang:499,teqair450_01_lightgrey:499,teqair450_01_lightgrey_hang:499,e500_01_standard:589,e500_02_connected:609,e500_03_standard:629,e500_04_connected:649,teqsensor_01_s1:159,teqair100_01_wooden_foot:29,e500_03_cap:49,other_01_cleaning_kit:9,airobs_01_test:24,pack_e500_02_connected_teqsensor_01_s1:679,pack_e500_04_connected_teqsensor_01_s1:719}},china:{reference:{comment:"Reference price used to detect promotion",startline:"",deadline:"",identifier:"Public",teqair100_01_darkgrey_car:289,teqair100_01_darkgrey_indoor:319,teqair200_01_black:569,teqair200_01_blue:569,teqair200_01_darkgrey:569,teqair200_01_lightgrey:569,teqair200_01_pinkclay:569,teqair450_01_black:839,teqair450_01_darkgrey_hang:839,teqair450_01_lightgrey:839,teqair450_01_lightgrey_hang:839,e500_01_standard:999,e500_02_connected:1039,e500_03_standard:1069,e500_04_connected:1109,teqsensor_01_s1:229,teqair100_01_wooden_foot:49,e500_03_cap:69,other_01_cleaning_kit:19,airobs_01_test:24,pack_e500_02_connected_teqsensor_01_s1:1268,pack_e500_04_connected_teqsensor_01_s1:1338},standard:{comment:"Official public price (no coupon)",startline:"",deadline:"",identifier:"Public",teqair100_01_darkgrey_car:289,teqair100_01_darkgrey_indoor:319,teqair200_01_black:569,teqair200_01_blue:569,teqair200_01_darkgrey:569,teqair200_01_lightgrey:569,teqair200_01_pinkclay:569,teqair450_01_black:839,teqair450_01_darkgrey_hang:839,teqair450_01_lightgrey:839,teqair450_01_lightgrey_hang:839,e500_01_standard:999,e500_02_connected:1039,e500_03_standard:1069,e500_04_connected:1109,teqsensor_01_s1:229,teqair100_01_wooden_foot:49,e500_03_cap:69,other_01_cleaning_kit:19,airobs_01_test:24,pack_e500_02_connected_teqsensor_01_s1:1149,pack_e500_04_connected_teqsensor_01_s1:1219}},tai:{reference:{comment:"Reference price used to detect promotion",startline:"",deadline:"",identifier:"Public",teqair100_01_darkgrey_car:420,teqair100_01_darkgrey_indoor:460,teqair200_01_black:840,teqair200_01_blue:840,teqair200_01_darkgrey:840,teqair200_01_lightgrey:840,teqair200_01_pinkclay:840,teqair450_01_black:1230,teqair450_01_darkgrey_hang:1230,teqair450_01_lightgrey:1230,teqair450_01_lightgrey_hang:1230,e500_01_standard:1460,e500_02_connected:1520,e500_03_standard:1570,e500_04_connected:1630,teqsensor_01_s1:340,teqair100_01_wooden_foot:70,e500_03_cap:110,other_01_cleaning_kit:20,airobs_01_test:24,pack_e500_02_connected_teqsensor_01_s1:1860,pack_e500_04_connected_teqsensor_01_s1:1970},standard:{comment:"Official public price (no coupon)",startline:"",deadline:"",identifier:"Public",teqair100_01_darkgrey_car:420,teqair100_01_darkgrey_indoor:460,teqair200_01_black:840,teqair200_01_blue:840,teqair200_01_darkgrey:840,teqair200_01_lightgrey:840,teqair200_01_pinkclay:840,teqair450_01_black:1230,teqair450_01_darkgrey_hang:1230,teqair450_01_lightgrey:1230,teqair450_01_lightgrey_hang:1230,e500_01_standard:1460,e500_02_connected:1520,e500_03_standard:1570,e500_04_connected:1630,teqsensor_01_s1:340,teqair100_01_wooden_foot:70,e500_03_cap:110,other_01_cleaning_kit:20,airobs_01_test:24,pack_e500_02_connected_teqsensor_01_s1:1690,pack_e500_04_connected_teqsensor_01_s1:1790}}
1,can:{reference:{comment:"Reference price used to detect promotion",startline:"",deadline:"",identifier:"Public",teqair100_01_darkgrey_car:435,teqair100_01_darkgrey_indoor:475,teqair200_01_black:865,teqair200_01_blue:865,teqair200_01_darkgrey:865,teqair200_01_lightgrey:865,teqair200_01_pinkclay:865,teqair450_01_black:1275,teqair450_01_darkgrey_hang:1275,teqair450_01_lightgrey:1275,teqair450_01_lightgrey_hang:1275,e500_01_standard:1515,e500_02_connected:1575,e500_03_standard:1625,e500_04_connected:1685,teqsensor_01_s1:345,teqair100_01_wooden_foot:65,e500_03_cap:105,other_01_cleaning_kit:15,airobs_01_test:24,pack_e500_02_connected_teqsensor_01_s1:1920,pack_e500_04_connected_teqsensor_01_s1:2030},standard:{comment:"Official public price (no coupon)",startline:"",deadline:"",identifier:"Public",teqair100_01_darkgrey_car:435,teqair100_01_darkgrey_indoor:475,teqair200_01_black:865,teqair200_01_blue:865,teqair200_01_darkgrey:865,teqair200_01_lightgrey:865,teqair200_01_pinkclay:865,teqair450_01_black:1275,teqair450_01_darkgrey_hang:1275,teqair450_01_lightgrey:1275,teqair450_01_lightgrey_hang:1275,e500_01_standard:1515,e500_02_connected:1575,e500_03_standard:1625,e500_04_connected:1685,teqsensor_01_s1:345,teqair100_01_wooden_foot:65,e500_03_cap:105,other_01_cleaning_kit:15,airobs_01_test:24,pack_e500_02_connected_teqsensor_01_s1:1755,pack_e500_04_connected_teqsensor_01_s1:1865}}},coupons:{theclosefamily:{comment:"Coupon specific to Teqoya for friends and family",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-theclosefamily",percent:20,category:"Code pour amis/familles de TEQOYA"},fidelity:{comment:"Coupon specific to Teqoya for friends and family",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-fidelity",percent:20,category:"Code en échange d'un avis Trustpilot"},adeline:{idDistributors:"Teqoya Mail",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-adeline",percent:10},emilien:{idDistributors:"Teqoya Mail",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-emilien",percent:10},etienne:{idDistributors:"Teqoya Mail",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-etienne",percent:10},fanny:{idDistributors:"Teqoya Mail",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-fanny",percent:10},isabelle:{idDistributors:"Teqoya Mail",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-isabelle",percent:10},olivier:{idDistributors:"Teqoya Mail",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-olivier",percent:10},pascal:{idDistributors:"Teqoya Mail",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-pascal",percent:10},airplus:{comment:"Coupon specific to Teqoya for recidivists (-15%)",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-airplus",percent:15,category:"Saisonniers"},annejulieyoga:{idDistributors:"Teqoya Mail",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-annejulieyoga",percent:10,category:"Influenceur"},couponteqoya:{comment:"Coupon specific to Teqoya for web site with coupons (-10%)",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-couponteqoya",percent:5,category:"Code réservé aux sites de coupons"},expat_abudhabi:{comment:"Coupon specific to Expat from AbuDhabi (-10%)",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-expat",percent:10,category:"Partenariat"},fires2026:{comment:"Coupon specific to Teqoya for NYC fire (-15%)",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-fires2026",percent:15,category:"Code pour amis/familles de TEQOYA"},incendies2026:{comment:"Coupon specific to Teqoya for Gironde fire (-15%)",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-incendies2026",percent:15,category:"Code pour amis/familles de TEQOYA"},lamatrescence2024:{comment:"Coupon specific to La Matrescence (-10%)",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-lamatrescence2024",percent:10,category:"Influenceur"},parrain:{comment:"Coupon specific to Teqoya for godfathers (-5%)",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-parrain",isGodFather:true,percent:5,category:"Parrainage"},promo10:{comment:"Coupon specific to Teqoya for new relations (-10%)",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-promo10",percent:10,category:"Code
1contact direct (mail/tél)"},privilegeplus:{comment:"Coupon specific to Teqoya for new relations (-15%)",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-privilegeplus",percent:15,category:"Code contact direct (mail/tél)"},barrylafraise2024:{comment:"Coupon specific to Influencer Jade Vital (-10%)",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-barrylafraise2024",percent:10,category:"Influenceur"},rosablume:{comment:"Coupon specific to Influencer RosaBlume (-10%)",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-rosablume",percent:10,category:"Influenceur"},annesophiedeckers:{comment:"Coupon specific to Teqoya for Anne-Sophie Deckers (-10%)",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-annesophiedeckers",percent:10,category:"Influenceur"},aqualys:{comment:"Coupon dedicated to Aqualys (-5%)",isTeqoya:false,commission:{prescriber:"Aqualys",godfather:"",comPrescriber:"15",comGodFather:""},startline:"",deadline:"",identifier:"WEB-aqualys",percent:5,category:"Prescripteur"},bienairoccitanie31:{comment:"Coupon dedicated to Noëmie Siellet (-5%)",isTeqoya:true,commission:{prescriber:"Noëmie Siellet",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-bienairoccitanie31",percent:5,category:"Prescripteur"},biocontact:{comment:"Coupon dedicated to BioContact (-10%)",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-biocontact",percent:10,category:"Partenariat"},christopheandre:{comment:"Coupon dedicated to Christophe André (-5%)",isTeqoya:true,commission:{prescriber:"Christophe André",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-christopheandre",percent:5,category:"Prescripteur"},damore5:{comment:"Coupon dedicated to Groupe d'amore (-5%)",isTeqoya:true,commission:{prescriber:"Groupe d Amore",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-damore5",percent:5,category:"Prescripteur"},deloze:{comment:"Coupon dedicated to distributor Christophe Deloze (-5%)",isTeqoya:true,commission:{prescriber:"Christophe Deloze",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-deloze",percent:5,category:"Distributeur"},dolispine:{comment:"Coupon specific to dolispine (-5%)",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-dolispine",percent:5,category:"Prescripteur"},emersum:{comment:"Coupon dedicated to Daniele Biscontini (-10%)",isTeqoya:false,commission:{prescriber:"Daniele Bisontini",godfather:"",comPrescriber:"20",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-emersum",percent:10,category:"Prescripteur"},emilie:{comment:"Coupon dedicated to Emilie Ergand (-5%)",isTeqoya:true,commission:{prescriber:"Emilie Ergand",godfather:"GeoBiom",comPrescriber:"15",comGodFather:"5",includeShipping:true},startline:"",deadline:"",identifier:"WEB-emilie",percent:5,category:"Prescripteur"},expat:{comment:"Coupon dedicated to UAE Expat (-15%)",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-expat",percent:15,category:"Partenariat"},feenaturosport:{comment:"Coupon specific to Laure Wieteska (-10%)",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-feenaturosport",percent:10,category:"Prescripteur"},geobienetre5:{comment:"Coupon specific to geobienetre (-5%)",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-geobienetre5",percent:5,category:"Distributeur"},geobiomex:{comment:"Coupon dedicated to GeoBiom (model discount)",commission:{prescriber:"GeoBiom",godfather:"",comPrescriber:"20",comGodFather:"0"},isTeqoya:false,startline:"",deadline:"",identifier:"WEB-geobiomex",percent:10,category:"Distributeur"},geobiomst:{comment:"Coupon dedicated to GeoBiom (model discount)",commission:{prescriber:"GeoBiom",godfather:"",comPrescriber:"20",comGodFather:"0"},isTeqoya:false,startline:"",deadline:"",identifier:"WEB-geobiomst",percent:10,category:"Distributeur"},harold5:{comment:"Coupon dedicated to Harold Knoll (-5%)",isTeqoya:true,commission:{prescriber:"Harold Knoll",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-harold5",percent:5,category:"Prescripteur"},heracles:{comment:"Coupon dedicated to distributor Oudin Frédéric (-10%)",isTeqoya:true,commission:{prescriber:"Oudin Frédéric",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-heracles",percent:10,category:"Prescripteur"},hygie:{comment:"Coupon dedicated to Hygie (-5%)",isTeqoya:true,commission:{prescriber:"Hygie",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-hygie",percent:5,category:"Prescripteur"},inalterra:{comment:"Coupon dedicated to Inalterra (-5%)",isTeqoya:true,commission:{prescriber:"Inalterra",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-inalterra",percent:5,category:"Prescripteur"},kipli:{comment:"Coupon specific to Teqoya for Kipli (-10%)",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-kipli",percent:10,category:"Partenariat"},lespetitsmiracles:{comment:"Coupon specific to Les Petits Miracles (-10%)",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-lespetitsmiracles",percent:10,category:"Prescripteur"},loic10:{comment:"Coupon dedicated to Bloger (-10%)",isTeqoya:false,startline:"",deadline:"",identifier:"WEB-loic10",percent:10,category:"Influenceur"},maeg:{comment:"Coupon specific to Teqoya for Maeg Osteopathe (-10%)",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-maeg",percent:10,category:"Prescripteur"},mars2026:{comment:"Coupon specific to Teqoya for spring 2026 (-10%)",isTeqoya:true,startline:"",deadline:"",identifier:"WEB-mars2026",percent:10,category:"Saisonniers"},mdve:{comment:"Coupon dedicated to Ferrand Olivier (-5%)",isTeqoya:true,commission:{prescriber:"Ferrand Olivier",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-mdve",percent:5,category:"Prescripteur"},michelematon:{comment:"Coupon dedicated to Michele Maton (-5%)",isTeqoya:true,commission:{prescriber:"Michele Maton",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-michelematon",percent:5,category:"Prescripteur"},naturo:{comment:"Coupon dedicated to Marie Laure Nageleisen (-5%)",isTeqoya:true,commission:{prescriber:"Marie Laure Nageleisen",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-naturo",percent:5,category:"Prescripteur"},naturocomte:{comment:"Coupon dedicated to Dalila Comte (-5%)",isTeqoya:true,commission:{prescriber:"Dalila Comte",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-naturocomte",percent:5,category:"Prescripteur"},nutrivore:{comment:"Coupon dedicated to Nutrivore (10%)",isTeqoya:false,commission:{prescriber:"Nutrivore",godfather:"",comPrescriber:"10",comGodFather:""},startline:"",deadline:"",identifier:"WEB-nutrivore",percent:10,category:"Prescripteur"},sebnaturo:{comment:"Coupon dedicated to Sebnaturo (-5%)",isTeqoya:true,commission:{prescriber:"Sebnaturo",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-sebnaturo",percent:5,category:"Prescripteur"},seva:{comment:"Coupon dedicated to Seva (-5%)",isTeqoya:true,commission:{prescriber:"Seva",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-seva",percent:5,category:"Prescripteur"},theyellowblog:{comment:"Coupon dedicated to The Yellow Blog (-5%)",isTeqoya:true,commission:{prescriber:"The Yellow Blog",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-theyellowblog",percent:5,category:"Influenceur"},waldluft5:{comment:"Coupon dedicated to Helge Feldmann (-5%)",isTeqoya:true,commission:{prescriber:"Helge Feldmann",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-waldluft5",percent:5,category:"Prescripteur"}}}});define("layer",["utl/core","utl/common","json!cfg/siteConfig.json","json!thirdParty/pricing.json","jquery"],function(coreObj,commonObj,aSiteConfigObj,aPricingObj,$){"use strict";var LayerClass=function(aMappingObj){this._mappingObj=aMappingObj;
1this._pricingObj=aPricingObj;this._orderObj=null;this._eventType="";this._cartObj=null;this._addressObj=null};LayerClass.prototype.hashString=function(aString){var lower;lower=aString.toLowerCase();return CryptoJS.SHA256(lower).toString()};LayerClass.prototype.formatAmount=function(aValue){return parseFloat(aValue).toFixed(2)};LayerClass.prototype.getLanguage=function(){var language;language=$(window.document).find("html").attr("lang");return language.substr(0,2).toUpperCase()};LayerClass.prototype.generateCookieEvent=function(aUseStatisticsCookie,aUseAdvertisingCookie){console.debug("LayerClass: generating cookie event ("+aUseStatisticsCookie+", "+aUseAdvertisingCookie+")");dataLayer.push({event:"consent_updated",statistics_status:aUseStatisticsCookie,adversiting_status:aUseAdvertisingCookie})};LayerClass.prototype.generateNewletterEvent=function(aSource,aEmail){var email,lang,listId;console.debug("LayerClass: generating newsletter event from "+aSource);email=this.hashString(aEmail);lang=this.getLanguage();if(lang==="FR"){if(aSource==="Checkout"){listId="XEyarK"}else{listId="V2Hs7W"}}else{if(aSource==="Checkout"){listId="VJ4tRM"}else{listId="SJw2x7"}}dataLayer.push({event:"subscribe_newsletter",list_id:listId,user_data:{email:email},feature_location:aSource})};LayerClass.prototype.generateAqiEvent=function(aEmail){var email,lang,listId;console.debug("LayerClass: generating AQI report event");email=this.hashString(aEmail);lang=this.getLanguage();if(lang==="FR"){listId="XbSMD3"}else{listId="TqkKP8"}dataLayer.push({event:"download_content",list_id:listId,user_data:{email:email},content_name:"Air Quality Report"})};LayerClass.prototype.checkPricing=function(aProductType){if(!this._pricingObj.category.hasOwnProperty(aProductType)){console.error("LayerClass: missing product "+aProductType+" in category")}else if(!this._pricingObj.category[aProductType].hasOwnProperty("en")){console.error("LayerClass: missing EN langiage in category for product "+aProductType)}if(!this._pricingObj.reference.hasOwnProperty(aProductType)){console.error("LayerClass: missing product "+aProductType+" in reference")}else if(!this._pricingObj.reference[aProductType].hasOwnProperty("en")){console.error("LayerClass: missing EN langiage in reference for product "+aProductType)}};LayerClass.prototype.generatePageEvent=function(){var lang,parent,pageType;console.debug("LayerClass: generating page event");lang=this.getLanguage();this._eventType="";if(window._internalSource==="blogs"){pageType="Blog"}else{parent=this._mappingObj[window._internalPageId].parent;if(parent==="products"){if(window._internalPageId==="catalog"){this._eventType="view_item_list";pageType="Catalog Page"}else{this._eventType="view_item";pageType="Product Page"}}else if(parent==="choose"){if(window._internalPageId.indexOf("room_")>=0){pageType="How to choose - Room"}else{pageType="How to choose - Use case"}}else if(parent==="professions"){pageType="Professionnal"}else if(parent==="technology"){pageType="Resources"}else if(parent==="about"){pageType="About"}else{if(window._internalPageId==="index"){this._eventType="view_item_list";pageType="Homepage"}else if(window._internalPageId==="cart"||window._internalPageId==="shop"){this._eventType="checkout_step";pageType="Checkout"}else if(window._internalPageId==="confirmation"){this._eventType="purchase";pageType="Order Confirmation Page"}else{pageType="Other"}}}console.debug("LayerClass: page "+pageType+" with language "+lang+" for "+window._internalPageId);dataLayer.push({event:"page_view",page_type:pageType,language:lang})};LayerClass.prototype.listCatalogProduct=function(){var catalogTab,productTab,indPrd,classTab,indClass,indCatalog,itemObj,className,isKnown,priceStr;catalogTab=[];productTab=$(".catalogProduct");for(indPrd=0;indPrd<productTab.length;indPrd+=1){classTab=productTab[indPrd].className.split(/\s+/);for(indClass=0;indClass<classTab.length;indClass+=1){if(classTab[indClass].indexOf("_catalogProduct")>=0){isKnown=false;className=classTab[indClass].substr(0,classTab[indClass].length-15);for(indCatalog=0;indCatalog<catalogTab.length;indCatalog+=1){if(catalogTab[indCatalog].item_id===className){isKnown=true;break}}this.checkPricing(className);if(!this._pricingObj.reference.hasOwnProperty(className)||!this._pricingObj.category.hasOwnProperty(className)){isKnown=true}if(!isKnown){priceStr=productTab[indPrd].innerHTML;if(priceStr[0]==="â¬"){priceStr=priceStr.substr(1)}itemObj={item_id:className,item_name:this._pricingObj.reference[className].en,index:catalogTab.length,item_category:this._pricingObj.category[className].en,price:this.formatAmou
1nt(priceStr),quantity:1};catalogTab.push(itemObj)}break}}}return catalogTab};LayerClass.prototype.generateProductListEvent=function(){var catalogTab;console.debug("LayerClass: generating product list event");dataLayer.push({ecommerce:null});catalogTab=this.listCatalogProduct();console.debug("LayerClass: reporting list "+JSON.stringify(catalogTab));dataLayer.push({event:"view_item_list",ecommerce:{items:catalogTab}})};LayerClass.prototype.generateProductPageEvent=function(){var catalogTab;console.debug("LayerClass: generating product page event");dataLayer.push({ecommerce:null});catalogTab=this.listCatalogProduct();console.debug("LayerClass: reporting product "+JSON.stringify(catalogTab));if(catalogTab.length<=0){return}dataLayer.push({event:"view_item",ecommerce:{currency:"EUR",value:this.formatAmount(catalogTab[0].price),items:catalogTab}})};LayerClass.prototype.generateCartEvent=function(aProductObj){var total;console.debug("LayerClass: generating cart event");dataLayer.push({ecommerce:null});this.checkPricing(aProductObj.productType);console.debug("LayerClass: adding "+aProductObj.quantity+" product(s) "+aProductObj.productType+" to cart");total=aProductObj.quantity*this._pricingObj.product.fr.reference[aProductObj.productType];dataLayer.push({event:"add_to_cart",ecommerce:{currency:"EUR",value:this.formatAmou
1nt(total),items:[{item_id:aProductObj.productType,item_name:this._pricingObj.reference[aProductObj.productType].en,index:0,item_category:this._pricingObj.category[aProductObj.productType].en,price:this.formatAmount(this._pricingObj.product.fr.reference[aProductObj.productType]),quantity:aProductObj.quantity}]}})};LayerClass.prototype.generateClearEvent=function(aProductObj){var total;console.debug("LayerClass: generating clear event");dataLayer.push({ecommerce:null});this.checkPricing(aProductObj.productType);console.debug("LayerClass: removing "+aProductObj.quantity+" product(s) "+aProductObj.productType+" from cart");total=aProductObj.quantity*this._pricingObj.product.fr.reference[aProductObj.productType];dataLayer.push({event:"remove_from_cart",ecommerce:{currency:"EUR",value:this.formatAmount(total),items:[{item_id:aProductObj.productType,item_name:this._pricingObj.reference[aProductObj.productType].en,index:0,item_category:this._pricingObj.category[aProductObj.productType].en,price:this.formatAmount(this._pricingObj.product.fr.reference[aProductObj.productType]),quantity:aProductObj.quantity}]}})};LayerClass.prototype.loadCartObj=function(aUseOrder){if(!this._cartObj){if(aUseOrder&&typeof this._orderObj._getOrderObject==="function"){this._cartObj=this._orderObj._getOrderObject()}else{this._cartObj=this._orderObj._getCartObject()}}return this._cartObj};LayerClass.prototype.loadAddressObj=function(){if(!this._addressObj){this._addressObj=this._orderObj._getAddressObject()}return this._addressObj};LayerClass.prototype.translateCartStep=function(aCartStep){var cartStep;switch(aCartStep){case 1:cartStep="Cart";break;case 2:cartStep="Informations";break;case 3:cartStep="Shipping tier";break;case 4:cartStep="Questions";break;case 5:cartStep="Payment";break;case 6:cartStep="Payment";break}return cartStep};LayerClass.prototype.getCartObj=function(aUseOrder){var cartObj,cartTab,indPrd,discount,itemObj;cartObj=this.loadCartObj(aUseOrder);cartTab=[];for(indPrd=0;indPrd<cartObj.productTab.length;indPrd+=1){this.checkPricing(cartObj.productTab[indPrd].productType);discount=cartObj.productTab[indPrd].referenceTtc*cartObj.productTab[indPrd].number-cartObj.productTab[indPrd].nbProductTtc;itemObj={item_id:cartObj.productTab[indPrd].productType,item_name:this._pricingObj.reference[cartObj.productTab[indPrd].productType].en,index:cartTab.length,item_category:this._pricingObj.category[cartObj.productTab[indPrd].productType].en,price:this.formatAmou
1nt(cartObj.productTab[indPrd].productTtc),discount:discount>1?this.formatAmount(discount):undefined,quantity:cartObj.productTab[indPrd].number};cartTab.push(itemObj)}return cartTab};LayerClass.prototype.getCartTotal=function(){var cartObj;cartObj=this.loadCartObj();return cartObj.ttlProductTtc};LayerClass.prototype.getCartCoupon=function(){var cartObj;cartObj=this.loadCartObj();return cartObj.coupon?cartObj.coupon:undefined};LayerClass.prototype.getAddressObj=function(){var addressObj,street,userObj;addressObj=this.loadAddressObj();if(addressObj.isShippingSpecific){if(addressObj.billing.street1&&addressObj.billing.street2){street=addressObj.billing.street1+" "+addressObj.billing.street2}else if(addressObj.billing.street1){street=addressObj.billing.street1}else if(addressObj.billing.street2){street=addressObj.billing.street2}else{street=undefined}userObj={firstname:addressObj.billing.firstname?this.hashString(addressObj.billing.firstname):undefined,lastname:addressObj.billing.lastname?this.hashString(addressObj.billing.lastname):undefined,company:addressObj.billing.company?addressObj.billing.company:undefined,street:street,zipcode:addressObj.billing.code?addressObj.billing.code:undefined,city:addressObj.billing.town?addressObj.billing.town:undefined,country:addressObj.billing.country.toUpperCase(),email:addressObj.billing.email?this.hashString(addressObj.billing.email):undefined,phone:addressObj.billing.phone?this.hashString(addressObj.billing.phone):undefined}}else{if(addressObj.shipping.street1&&addressObj.shipping.street2){street=addressObj.shipping.street1+" "+addressObj.shipping.street2}else if(addressObj.shipping.street1){street=addressObj.shipping.street1}else if(addressObj.shipping.street2){street=addressObj.shipping.street2}else{street=undefined}userObj={firstname:addressObj.shipping.firstname?this.hashString(addressObj.shipping.firstname):undefined,lastname:addressObj.shipping.lastname?this.hashString(addressObj.shipping.lastname):undefined,company:addressObj.shipping.company?addressObj.shipping.company:undefined,street:street,zipcode:addressObj.shipping.code?addressObj.shipping.code:undefined,city:addressObj.shipping.town?addressObj.shipping.town:undefined,country:addressObj.shipping.country.toUpperCase(),email:addressObj.shipping.email?this.hashString(addressObj.shipping.email):undefined,phone:addressObj.shipping.phone?this.hashString(addressObj.shipping.phone):undefined}}userObj.new_customer=addressObj.isNewCustomer;return userObj};LayerClass.prototype.getQuestionObj=function(){if(!this._orderObj.howKnown||!this._orderObj.shopreason||!this._orderObj.userage){if(this._orderObj._hasUserStatistics()){this._orderObj._setUserStatistics(this._orderObj)}}if(this._orderObj.howKnown&&this._orderObj.shopreason&&this._orderObj.userage){return{hear_about_us:this._orderObj.howKnown,reason_for_buying:this._orderObj.shopreason,age_range:this._orderObj.userage}}return undefined};LayerClass.prototype.getPurchaseObj=function(){var idOrders,paymentMethod,purchaseObj;purchaseObj={payment_type:undefined,transaction_id:undefined};idOrders=this._orderObj._getIdOrders();if(idOrders){purchaseObj.transaction_id=idOrders}paymentMethod=this._orderObj._getPaymentMethod();switch(paymentMethod){case"credit_card":purchaseObj.payment_type="Credit Card";break;case"stripe":purchaseObj.payment_type="Stripe";break;case"paypal":purchaseObj.payment_type="Paypal";break;case"alma":purchaseObj.payment_type="Alma";break;case"swikly":purchaseObj.payment_type="Swikly";break;case"bank_transfer":purchaseObj.payment_type="Bank Transfer";break;case"bank_check":purchaseObj.payment_type="Bank Check";break;case"cash_payment":purchaseObj.payment_type="Cash";break;default:purchaseObj.payment_type=undefined;break}return purchaseObj};LayerClass.prototype.generateCheckoutEvent=function(aCartStep,aData){var cartStep,cartTab,cartTotal,userObj,questionObj,ecommerceObj;console.debug("LayerClass: generating checkout step event");this._cartObj=null;this._addressObj=null;dataLayer.push({ecommerce:null});cartStep=this.translateCartStep(aCartStep);cartTab=this.getCartObj();cartTotal=this.getCartTotal();userObj=this.getAddressObj();questionObj=this.getQuestionObj();console.debug("LayerClass: processing checkout step "+cartStep);console.debug("LayerClass: reporting cart "+JSON.stringify(cartTab));console.debug("LayerClass: reporting user data "+JSON.stringify(userObj));if(questionObj){console.debug("LayerClass: reporting question responses "+JSON.stringify(questionObj))}
1ecommerceObj={currency:"EUR",value:this.formatAmount(cartTotal),items:cartTab};if(aData&&aData.shippingTier){ecommerceObj.shipping_tier=aData.shippingTier}if(aData&&aData.paymentType){ecommerceObj.payment_type=aData.paymentType}dataLayer.push({event:"checkout_step",step:cartStep,ecommerce:ecommerceObj,user_data:userObj,questions:questionObj})};LayerClass.prototype.generateConfirmationEvent=function(){var cartTab,cartTotal,cartCoupon,userObj,purchaseObj;console.debug("LayerClass: generating convirmation event");dataLayer.push({ecommerce:null});cartTab=this.getCartObj(true);if(cartTab.length<=0){console.debug("LayerClass: skipping event on empty cart");return}cartTotal=this.getCartTotal();cartCoupon=this.getCartCoupon();userObj=this.getAddressObj();purchaseObj=this.getPurchaseObj();console.debug("LayerClass: reporting cart "+JSON.stringify(cartTab));console.debug("LayerClass: reporting user data "+JSON.stringify(userObj));console.debug("LayerClass: reporting purchase data "+JSON.stringify(purchaseObj));dataLayer.push({event:"purchase",ecommerce:{currency:"EUR",value:this.formatAmou
1nt(cartTotal),transaction_id:purchaseObj.transaction_id,payment_type:purchaseObj.payment_type,coupon:cartCoupon,items:cartTab},user_data:userObj})};LayerClass.prototype.processOrderEvent=function(aReason,aData){if(aReason==="subscribe_newsletter"){this.generateNewletterEvent("Checkout",aData.email)}else if(aReason==="download_content"){this.generateAqiEvent(aData.email)}else if(aReason==="add_to_cart"){this.generateCartEvent(aData)}else if(aReason==="remove_from_cart"){this.generateClearEvent(aData)}else if(aReason==="checkout_step"){this.generateCheckoutEvent(aData.cartStep,aData)}};LayerClass.prototype.setOrderObj=function(aOrderObj){this._orderObj=aOrderObj;console.debug("LayerClass: registering listener");this._orderObj.setLayerListener(this.processOrderEvent.bind(this));if(this._eventType==="view_item_list"){this.generateProductListEvent()}else if(this._eventType==="view_item"){this.generateProductPageEvent()}else if(this._eventType==="checkout_step"){this.generateCheckoutEvent(1)}else if(this._eventType==="purchase"){this.generateConfirmationEvent()}};return LayerClass});define("json!pages/mapping.json",function(){return{about:{display:"header",isMenuLink:true,parent:"",order:7,tags:"",linkList:{de:"franzosische-firma-luftreiniger-ionisierer-ionisator",en:"french-company-air-purifiers-ionizers",fr:"societe-francaise-purificateur-air-ioniseurs",it:"french-societa-purificatori-ionizzatori",zh:"french-company-air-purifiers-ionizers"}},teqoya_pro:{display:"none",isMenuLink:false,parent:"",order:8,tags:"",linkList:{de:"https://teqoya.pro/en/",en:"https://teqoya.pro/en/",fr:"https://teqoya.pro/fr/",it:"https://teqoya.pro/en/",zh:""}},bilanaqi:{display:"header",isMenuLink:false,parent:"technology",order:1,tags:"",linkList:{de:"bilanaqi",en:"bilanaqi",fr:"bilanaqi",it:"bilanaqi",zh:""}},shop:{display:"none",isMenuLink:false,parent:"",order:0,tags:"",linkList:{de:"shop",en:"shop",es:"shop",fr:"shop",it:"shop",zh:"shop"}},cashdesk:{display:"none",isMenuLink:false,parent:"",order:0,tags:"",linkList:{de:"",en:"",fr:"cashdesk",it:"",zh:""}},catalog:{display:"header",isMenuLink:false,parent:"products",order:1,tags:"",linkList:{de:"catalog",en:"product/catalog",fr:"produit/catalog",it:"catalog",zh:"catalog"}},checkout:{display:"none",isMenuLink:false,parent:"",order:0,tags:"",linkList:{de:"checkout",en:"checkout",fr:"checkout",it:"checkout",zh:"checkout"}},choose:{display:"header",isMenuLink:true,parent:"",order:3,tags:"",linkList:{de:"wie-wahlt-man-teqoya-aus",en:"how-to-choose-teqoya",fr:"comment-choisir-teqoya",it:"come-scegliere",zh:""}},confirmation:{display:"none",isMenuLink:false,parent:"",order:0,tags:"",linkList:{de:"confirmation",en:"confirmation",fr:"confirmation",it:"confirmation",zh:"confirmation"}},contact:{display:"none",isMenuLink:false,parent:"",order:0,tags:"",linkList:{de:"contact",en:"contact",fr:"contact",it:"contact",zh:"contact"}},delivery:{display:"none",isMenuLink:false,parent:"",order:0,tags:"",linkList:{de:"",en:"delivery",fr:"delivery",it:"",zh:""}},design:{display:"none",isMenuLink:false,parent:"",order:0,tags:"",linkList:{de:"",en:"",fr:"design",it:"",zh:""}},directaccess:{display:"none",isMenuLink:false,parent:"",order:0,tags:"",linkList:{de:"",en:"directaccess",fr:"directaccess",it:"",zh:""}},e500:{display:"header",isMenuLink:false,parent:"products",order:4,tags:"",linkList:{de:"luftreiniger-mit-wiederverwendbarem-e500",en:"product/filterless-air-purifier-e500",fr:"produit/purificateur-air-sans-filtre-teqoya-e500",it:"purificatore-aria-con-filtro-riutilizzabile",zh:"filterless-air-purifier-e500"}},faq:{display:"header",isMenuLink:false,parent:"technology",order:3,tags:"",linkList:{de:"ubliche-fragen-ionisator",en:"faq-ionizers",fr:"questions-frequentes-ioniseurs",it:"domande-frequenti-ionizzatore",zh:"faq-ionizers"}},index:{display:"both",isMenuLink:true,parent:"",order:1,tags:"",linkList:{de:"index",en:"index",fr:"index",it:"index",zh:"index"}},journalist:{display:"none",isMenuLink:false,parent:"",order:0,tags:"",linkList:{de:"",en:"journalist",fr:"journalist",it:"",zh:""}},leaflet:{display:"footer",isMenuLink:false,parent:"",order:5,tags:"",linkList:{de:"",en:"",fr:"config/links/fr/Leaflet_TEQOYA_202409.pdf",it:"",zh:""}},loan:{display:"none",isMenuLink:false,parent:"",order:0,tags:"",linkList:{de:"loan",en:"loan",fr:"loan",it:"loan",zh:""}},magazine:{display:"header",isMenuLink:false,parent:"technology",order:2,tags:"magazine",linkList:{de:"magazin-luftqualitat",en:"magazine-air-quality",fr:"magazine-qualite-air",it:"rivista-air-qualita",zh:"magazine-air-quality"}},notfound:{display:"none",isMenuLink:false,parent:"",order:0,tags:"",linkList:{de:"notfound",en:"notfound",fr:"notfound",it:"notfound",zh:"notfound"}},partner:{display:"none",isMenuLink:false,parent:"",order:2,tags:"",linkList:{de:"teqoya-partner-luftreiniger-ionisierer-ionisator",en:"teqoya-partner-air-purifiers-ionizers",fr:"teqoya-partenaire-purificateur-air-ioniseurs",
1it:"teqoya-partner-purificatori-ionizzatori",zh:"teqoya-partner-air-purifiers-ionizers"}},privacy:{display:"footer",isMenuLink:false,parent:"",order:1,tags:"",linkList:{de:"datenschutz-bestimmungen",en:"privacy-policy",fr:"politique-confidentialite-teqoya",it:"politica-sulla-riservatezza",zh:"privacy-policy"}},pro_animaux:{display:"header",isMenuLink:false,parent:"professions",order:7,tags:"",linkList:{de:"profis/luftreiniger-tierarztpraxis-tierhandlung",en:"professionals/air-purifier-professional-pets",fr:"professionnels/purificateur-air-professionnel-animaux",it:"professionisti/purificatore-aria-clinica-veterinaria",zh:""}},pro_atelier_production:{display:"header",isMenuLink:false,parent:"professions",order:1,tags:"",linkList:{de:"profis/luftreiniger-werkstatt-produktion",en:"professionals/air-purifier-professional-workshop-production",fr:"professionnels/purificateur-air-professionnel-atelier-production",it:"professionisti/purificatore-aria-officina-produzione",zh:""}},pro_bien_etre:{display:"none",isMenuLink:false,parent:"professions",order:5,tags:"",linkList:{de:"profis/luftreiniger-wellness-negative-ionen",en:"professionals/air-purifier-professional-wellness",fr:"professionnels/purificateur-air-professionnel-bien-etre",it:"professionisti/purificatore-aria-benessere-ioni-negativi",zh:""}},pro_bureaux:{display:"none",isMenuLink:false,parent:"",order:0,tags:"",linkList:{de:"",en:"",fr:"purificateur-air-professionnel-bureau",it:"",zh:""}},pro_eaf:{display:"none",isMenuLink:false,parent:"",order:0,tags:"",linkList:{de:"",en:"",fr:"purificateur-air-professionnel-filtre-air-vmc",it:"",zh:""}},pro_enfance_senior:{display:"header",isMenuLink:false,parent:"professions",order:0,tags:"",linkList:{de:"profis/luftreiniger-kindergarten-seniorenheim",en:"professionals/air-purifier-professional-children-senior",fr:"professionnels/purificateur-air-professionnel-enfance-senior",it:"professionisti/purificatore-aria-asilo-nido-casa-riposo",zh:""}},pro_hotel_restaurant:{display:"none",isMenuLink:false,parent:"professions",order:4,tags:"",linkList:{de:"profis/luftreiniger-hotel-restaurant",en:"professionals/air-purifier-professional-hotel-restaurant",fr:"professionnels/purificateur-air-professionnel-hotel-restaurant",it:"professionisti/purificatore-aria-hotel-ristorante",zh:""}},pro_sante:{display:"header",isMenuLink:false,parent:"professions",order:6,tags:"",linkList:{de:"profis/luftreiniger-arztpraxis-gesundheitseinrichtung",en:"professionals/air-purifier-professional-health-professions",fr:"professionnels/purificateur-air-professionnel-professions-sante",it:"professionisti/purificatore-aria-studio-medico-sanita",zh:""}},pro_sport:{display:"header",isMenuLink:false,parent:"professions",order:2,tags:"",linkList:{de:"profis/luftreiniger-fitnessstudio-sporthalle",en:"professionals/professional-air-purifier-gym",fr:"professionnels/purificateur-air-professionnel-sport",it:"professionisti/purificatore-aria-palestra-impianti-sportivi",zh:""}},pro_transport:{display:"header",isMenuLink:false,parent:"professions",order:3,tags:"",linkList:{de:"profis/luftreiniger-transport-lkw-fahrer",en:"professionals/air-purifier-professional-transport",fr:"professionnels/purificateur-air-professionnel-transport",it:"professionisti/purificatore-aria-trasporto",zh:""}},products:{display:"header",isMenuLink:true,parent:"",order:2,tags:"",linkList:{de:"teqoya-luftreiniger-ionisator-sortiment",en:"teqoya-product-ionizer-range",fr:"gamme-purificateurs-air-teqoya",it:"gamma-depuratori-aria-teqoya",zh:"teqoya-product-range"}},professions:{display:"header",isMenuLink:true,parent:"",order:4,tags:"",linkList:{de:"luftreiniger-fuer-fachleute",en:"air-purifiers-professionals",fr:"purificateurs-air-professionnels",it:"purificatori-aria-professionisti",zh:""}},reportaqi:{display:"none",isMenuLink:false,parent:"",order:0,tags:"",linkList:{de:"",en:"reportaqi",fr:"reportaqi",it:"",zh:""}},room_bedroom:{display:"header",isMenuLink:false,parent:"choose",group:"room",order:7,tags:"",linkList:{de:"room/schlafzimmer",en:"room/bedroom",fr:"room/chambre",it:"room/cameradaletto",zh:""}}
1,room_kitchen:{display:"header",isMenuLink:false,parent:"choose",group:"room",order:10,tags:"",linkList:{de:"room/kuche",en:"room/kitchen",fr:"room/cuisine",it:"room/cucina",zh:""}},room_living:{display:"header",isMenuLink:false,parent:"choose",group:"room",order:9,tags:"",linkList:{de:"room/wohnzimmer",en:"room/living-room",fr:"room/salon",it:"room/salone",zh:""}},room_office:{display:"header",isMenuLink:false,parent:"choose",group:"room",order:8,tags:"",linkList:{de:"room/buro",en:"room/home-office",fr:"room/bureau",it:"room/ufficio",zh:""}},room_vehicle:{display:"header",isMenuLink:false,parent:"choose",group:"room",order:10,tags:"",linkList:{de:"room/fahrzeuge-und-reisen",en:"room/vehicle-and-travel",fr:"room/vehicules-et-voyages",it:"room/veicoli-e-viaggi",zh:""}},science:{display:"header",isMenuLink:false,isSticky:true,parent:"about",order:4,tags:"",linkList:{de:"ionisation-luftreiniger-negative-ionen",en:"ionisation-negative-ions",fr:"ionisation-air-ions-negatifs",it:"ionizzazione-purificatori-ioni-negativi",zh:"ionisation-negative-ions"}},sensor1:{display:"header",isMenuLink:false,parent:"products",order:6,tags:"",linkList:{de:"sensor-qualitats-luft",en:"product/sensor-quality-air",fr:"produit/capteur-qualite-air",it:"sensore-qualita-aria",zh:"sensor-quality-air"}},sitemap:{display:"footer",isMenuLink:false,parent:"",order:0,tags:"",linkList:{de:"teqoya-sitemap",en:"teqoya-sitemap",fr:"teqoya-sitemap",it:"teqoya-sitemap",zh:"teqoya-sitemap"}},sonesta:{display:"none",isMenuLink:false,parent:"",order:0,tags:"",linkList:{de:"",en:"air-purifier-hotel-teqoya-sonesta",fr:"",it:"",zh:""}},sponsorship:{display:"none",isMenuLink:false,parent:"",order:0,tags:"",linkList:{de:"",en:"",fr:"parrainage",it:"",zh:""}},technology:{display:"header",isMenuLink:true,parent:"",order:5,tags:"",linkList:{de:"ionisation-luftreiniger-negative-ionen",en:"ionisation-negative-ions",fr:"ionisation-air-ions-negatifs",it:"ionizzazione-purificatori-ioni-negativi",zh:"ionisation-negative-ions"}},teqair100:{display:"header",isMenuLink:false,parent:"products",order:5,tags:"",linkList:{de:"ionisator-autoluftreiniger-ionisator-mobil-teqoya-nomad",en:"product/air-purifier-car-ionizer-teqoya-nomad",fr:"produit/purificateur-air-ioniseur-voiture-teqoya-nomad",it:"ionizzatore-purificatore-aria-auto-teqoya-nomad",zh:"air-purifier-car-ionizer-teqoya-nomad"}},teqair200:{display:"header",isMenuLink:false,parent:"products",order:2,tags:"",linkList:{de:"ionisator-raumluftreiniger-ionisator-teqoya-200",en:"product/teqoya-200-air-purifier-ionizer-bedroom",fr:"produit/purificateur-air-chambre-ioniseur-teqoya-200",it:"ionizzatore-purificatore-aria-teqoya-200",zh:"teqoya-200-air-purifier-ionizer-bedroom"}},teqair450:{display:"header",isMenuLink:false,parent:"products",order:3,tags:"",linkList:{de:"ionisator-hausluftreiniger-ionisator-teqoya-450",en:"product/teqoya-450-home-air-purifier-ionizer",fr:"produit/purificateur-air-maison-ioniseur-teqoya-450",it:"domestico-purificatore-aria-ionizzatore-teqoya-450",zh:"teqoya-450-home-air-purifier-ionizer"}},teqoya:{display:"header",isMenuLink:false,isSticky:true,parent:"about",order:3,tags:"",linkList:{de:"franzosische-firma-luftreiniger-ionisierer",en:"french-company-air-purifiers-ionizers",fr:"societe-francaise-purificateur-air-ioniseurs",it:"french-societa-purificatori-ionizzatori",zh:"french-company-air-purifiers-ionizers"}},terms:{display:"footer",isMenuLink:false,parent:"",order:2,tags:"",linkList:{de:"config/links/en/Conditions_Generales_des_Ventes_en.pdf",en:"config/links/en/Conditions_Generales_des_Ventes_en.pdf",fr:"config/links/fr/Conditions_Generales_des_Ventes_fr.pdf",it:"config/links/en/Conditions_Generales_des_Ventes_en.pdf",zh:"config/links/en/Conditions_Generales_des_Ventes_en.pdf"}},testimonial:{display:"header",isMenuLink:false,parent:"about",order:3,tags:"",linkList:{de:"luftreiniger-ansicht-kunde",en:"air-purifier-review-customer",fr:"purificateur-air-avis-client",it:"purificatore-aria-vista-cliente",zh:"testimony-customers"}},tests:{display:"header",isMenuLink:false,isSticky:true,parent:"about",order:5,tags:"",linkList:{de:"eff
1izienz-tests-zertifikate-luftreiniger-teqoya",en:"air-purifier-test-efficiency",fr:"purificateur-air-efficacite",it:"prestazioni-test-certificati-purificatore-aria-teqoya",zh:"air-purifier-test-efficiency"}},usecase_asthma:{display:"header",isMenuLink:false,parent:"choose",group:"usecase",order:1,tags:"",linkList:{de:"usecase/asthma-und-allergien",en:"usecase/asthma-and-allergies",fr:"usecase/asthme-et-allergies",it:"usecase/asma-e-allergie",zh:""}},usecase_bacteria:{display:"header",isMenuLink:false,parent:"choose",group:"usecase",order:6,tags:"",linkList:{de:"usecase/schimmel-und-bakterien",en:"usecase/moisture-and-bacteria",fr:"usecase/moisissures-et-bacteries",it:"usecase/muffe-e-batteri",zh:""}},usecase_ions:{display:"none",isMenuLink:false,parent:"",group:"usecase",order:4,tags:"",linkList:{de:"",en:"usecase/negative-ions",fr:"usecase/ions-negatifs",it:"",zh:""}},usecase_odors:{display:"header",isMenuLink:false,parent:"choose",group:"usecase",order:3,tags:"",linkList:{de:"usecase/schlechter-geruch",en:"usecase/bad-odors",fr:"usecase/mauvaise-odeur",it:"usecase/cattivi-odori",zh:""}},usecase_pollution:{display:"header",isMenuLink:false,parent:"choose",group:"usecase",order:2,tags:"",linkList:{de:"usecase/luftverschmutzung",en:"usecase/air-pollution",fr:"usecase/pollution-air",it:"usecase/inquinamento-atmosferico",zh:""}},usecase_sleep:{display:"header",isMenuLink:false,parent:"choose",group:"usecase",order:5,tags:"",linkList:{de:"usecase/schlafqualitat",en:"usecase/sleep-quality",fr:"usecase/qualite-sommeil",it:"usecase/qualita-del-sonno",zh:""}},userguide:{display:"none",isMenuLink:false,parent:"",order:0,tags:"",linkList:{de:"",en:"user-guide-teqoya",fr:"guide-utilisateur-teqoya",it:"",zh:"user-guide-teqoya"}}}});define("json!blogs/mapping.json",function(){return{"20150601_bibliography":{tags:"magazine",linkList:{de:"ubersicht-gesundheitliche-vorteile-von-negativen-ionen",en:"research-review-health-benefits-of-negative-ions",fr:"revue-biblio-les-bienfaits-pour-la-sante-des-ions-negatifs",it:"",zh:"bibliography"}},"20150613_laboratory":{tags:"magazine",linkList:{de:"teqoya-luftreiniger-effizienz-labortest",en:"teqoya-air-purifiers-efficiency-tested-in-labs",fr:"performance-purificateurs-air-teqoya-test-laboratoire",it:"purificatori-aria-teqoya-efficienza-laboratorio",zh:"certam"}},"20150727_heat_factor":{tags:"magazine",linkList:{de:"luftschadstoff-faktor-warme",en:"air-pollution-the-heat-factor",fr:"pollution-de-lair-le-facteur-chaleur",it:"",zh:""}},"20150811_asthma_fight":{tags:"magazine",linkList:{de:"asthma-warum-nicht-einen-ionisator-teqoya-ausprobieren",en:"about-asthma-and-how-to-live-with-it",fr:"asthme-comment-vivre-avec-sans-prendre-de-risques",it:"",zh:""}},"20151214_stereotypes":{tags:"magazine",linkList:{de:"",en:"",fr:"5-idees-recues-pollution-air",it:"",zh:""}},"20160118_ionization_danger":{tags:"magazine",linkList:{de:"ionisation",en:"air-ionization-are-ionizer-air-purifiers-safe",fr:"ionisation-air-ions-negatifs-surs",it:"ionizzazione",zh:""}},"20160511_precautions":{tags:"magazine",linkList:{de:"",en:"air-pollution-are-we-too-careful",fr:"precautions-pollution-particules-ozone-sante",it:"",zh:""}},"20160519_car":{parent:"20200108_healthy_house",tags:"magazine",linkList:{de:"luftreiniger-auto-versteckte-luftverschmutzung",en:"car-pollution-diesel-health-air-purifier",fr:"voiture-sante-pollution-air-ioniseur-dioxyde-d-azote",it:"purificatore-aria-auto-inquinamento-nascosto",zh:""}},"20160524_wechat_asthma":{tags:"magazine",linkList:{de:"",en:"",fr:"",it:"",zh:"asthma-allergy-children"}},"20160531_sustainable_development":{tags:"magazine",linkList:{de:"",en:"sustainable-development-european-week-air-purifier-environment",fr:"semaine-developpement-durable-purification-de-lair",it:"",zh:""}},"20160608_hepa":{parent:"20180526_choix_purificateur",tags:"magazine",linkList:{de:"luftreiniger-hepa-effizienz-wartung-einschrankend",en:"hepa-filter-air-purifier-particles-pollution",fr:"purificateur-air-hepa-efficacite-entretien-contraignant",it:"purificatore-aria-hepa-efficienza-alta-manutenzione",zh:"hepa-filter-air-purifier-particles-pollution"}},"20160630_carbon_filters":{parent:"20180526_choix_purificateur",tags:"magazine",linkList:{de:"reinigung-luft-filter-kohle-aktiv-effizienz-schadstoffe",en:"activated-carbon-filter-a-few-basic-facts-to-sort-out-the-truth",fr:"purification-air-filtres-charbon-actif-efficacite-polluants",it:"filtro-carboni-attivi-aria-efficacia",zh:""}},"20160722_photocatalysis":{parent:"20180526_choix_purificateur",tags:"magazine",linkList:{de:"technologie-reinigung-luft-photokatalyse",en:"photocatalysis-air-purifier",fr:"technologie-purification-air-photocatalyse",it:"purificatore-aria-fotocatalisi",zh:""}},"20160918_pollution_risks":{tags:"magazine",linkList:{de:"",en:"",fr:"pollution-reelle-risque-sous-estime",it:"",zh:""}},"20160928_pollution_period":{tags:"magazine",linkList:{de:"",en:"",fr:"comprendre-episodes-de-pollution-qualite-air",it:"",zh:""}},"20161005_pollution_point":{tags:"magazine",linkList:{de:"",en:"",fr:"assises-de-air-pollution-sante",it:"",zh:""}},"20170103_pollution_alert":{tags:"magazine",linkList:{de:"",en:"december-2016-air-pollution-particles-record-levels",fr:"decembre-2016-pollution-aux-particules-records",it:"",zh:""}},"20170130_allergies":{tags:"magazine",linkList:{de:"",en:"",fr:"compte-rendu-de-la-matinale-sur-la-qualite-de-l-air-interieur-organisee-par-lassociation-des-allergologues",it:"",zh:""}},"20170227_plant":{parent:"20200108_healthy_house",tags:"magazine",linkList:{de:"",en:"beware-of-depolluting-plants",fr:"mefiez-vous-des-plantes-dites-depolluantes",it:"",zh:""}},"20170509_footprint":{tags:"magazine",linkList:{de:"der-okologische
1-fussabdruck-der-luftreinigung",en:"ecological-footprint-air-purification",fr:"lempreinte-ecologique-de-la-purification-de-lair",it:"impronta-carbonica-purificatore-aria",zh:""}},"20170520_skin":{tags:"magazine",linkList:{de:"",en:"air-pollution-is-harmful-to-your-skin",fr:"la-pollution-et-ses-dommages-sur-la-peau",it:"",zh:""}},"20170821_pollution_city":{tags:"magazine",linkList:{de:"",en:"",fr:"les-villes-les-plus-polluees",it:"",zh:""}},"20170904_beaumanoir":{tags:"magazine",linkList:{de:"",en:"group-beaumanoir-china-uses-teqoya-ionizers-clean-air",fr:"teqoya-purifie-lair-des-bureaux-du-groupe-beaumanoir-en-chine",it:"",zh:""}},"20170915_nature":{tags:"magazine",linkList:{de:"",en:"",fr:"ionisation-naturelle-bienfaits",it:"",zh:""}},"20171120_anses":{tags:"magazine",linkList:{de:"",en:"",fr:"anses-2017-efficacite-purificateurs-d-air",it:"",zh:""}},"20171207_polluants":{parent:"20200108_healthy_house",tags:"magazine",linkList:{de:"",en:"",fr:"pollution-air-interieur-comment-lutter-contre-les-polluants",it:"",zh:""}},"20180124_sondage_opinionway":{tags:"magazine",linkList:{de:"",en:"",fr:"qualite-de-lair-en-france",it:"",zh:""}},"20180323_microorganismes":{tags:"magazine",linkList:{de:"luftverschmutzung-intern-wie-man-mikroorganismen-bekampft",en:"indoor-air-pollution-how-fight-against-the-microorganisms",fr:"pollution-air-interieur-comment-lutter-contre-les-microorganismes",it:"",zh:""}},"20180328_cabinet_medical":{tags:"magazine",linkList:{de:"",en:"",fr:"comment-purifier-lair-de-votre-cabinet-medical",it:"",zh:""}},"20180329_airfrance_beaumanoir":{tags:"magazine",linkList:{de:"",en:"teqoya-air-ionization-technology-for-business",fr:"teqoya-technologie-de-ionisation-de-l-air-pour-les-entreprises",it:"",zh:"teqoya-air-ionization-technology-for-business"}},"20180526_choix_purificateur":{tags:"magazine",linkList:{de:"wahlen-sie-ihren-kompletten-luftreiniger",en:"which-is-the-best-air-purifier",fr:"choisir-son-purificateur-air-guide-complet",it:"scegli-il-tuo-depuratore-aria-guida-completa",zh:"which-is-the-best-air-purifier"}},"20180615_risques_sante":{tags:"magazine",linkList:{de:"luftverschmutzung-gesundheitsrisiken",en:"air-pollution-consequences-on-health",fr:"pollution-air-consequences-pour-la-sante",it:"inquinamento-atmosferico-rischi-salute",zh:""}},"20180703_ozone":{tags:"magazine",linkList:{de:"gefahr-pic-ozon",en:"climate-change-the-dangers-of-ozone",fr:"changement-climatique-pics-dozone",it:"",zh:""}},"20180711_bienetre":{tags:"magazine",linkList:{de:"",en:"",fr:"bien-etre-interieur-sain",it:"",zh:""}},"20180726_moisissure":{parent:"20200108_healthy_house",tags:"magazine",linkList:{de:"allergiker-schimmel",en:"mold-allergies",fr:"allergie-moisissure",it:"allergia-muffa",zh:""}},"20180809_bienfaits_ions":{tags:"magazine",linkList:{de:"vorteile-von-negativen-ionen",en:"benefits-of-negative-ion",fr:"les-bienfaits-des-ions-negatifs",it:"benefici-degli-ioni-negativi",zh:"benefits-of-negative-ion"}},"20180917_airpainting":{tags:"magazine",linkList:{de:"",en:"air-composition",fr:"composition-de-l-air",it:"",zh:""}},"20190622_allergies":{tags:"magazine",linkList:{de:"explosions-allergie-verschmutzung-problem",en:"explosion-allergies-pollution-issue",fr:"explosion-allergies-pollution-issue",it:"",zh:"explosion-allergies-pollution-issue"}},"20190916_climat":{tags:"magazine",linkList:{de:"globale-erwarmung-klima-verschmutzung",en:"air-pollution-and-climate-change",fr:"rechauffement-climatique-pollution",it:"riscaldamento-globale-clima-inquinamento",zh:"air-pollution-and-climate-change"}},"20191004_pollution_rouen":{tags:"magazine",linkList:{de:"",en:"",fr:"pollution-rouen-incendie",it:"",zh:""}},"20191009_comment_bien_dormir":{parent:"20200108_healthy_house",tags:"magazine",linkList:{de:"wie-zu-schlafen",en:"how-to-sleep-better",fr:"comment-bien-dormir",it:"come-dormire-meglio",zh:""}},"20191017_cigarettes_effects":{parent:"20200108_healthy_house",tags:"magazine",linkList:{de:"luftreiniger-zigarettenrauch-beseitigen",en:"air-purifier-cigarette",fr:"purificateur-air-cigarette",it:"purificatore-aria-fumo-sigaretta",zh:""}},"20191114_cat_allergy":{parent:"20200108_healthy_house",tags:"magazine",linkList:{de:"katzen-allergie-behandlung",en:"treatment-allergy-cat",fr:"traitement-allergie-chat",it:"allergia-gatto-trattamento",zh:""}},"20200108_healthy_house":{tags:"magazine",linkList:{de:"gesundes-haus",en:"healthy-home",fr:"maison-saine",it:"casa-sana",zh:"healthy-home"}}
1,"20200123_bad_odors":{parent:"20200108_healthy_house",tags:"magazine",linkList:{de:"ubelriechendes-heim",en:"bad-odor-home",fr:"mauvaises-odeurs-maison",it:"eliminare-cattivi-odori-casa",zh:""}},"20200127_baby_asthma":{parent:"20200108_healthy_house",tags:"magazine",linkList:{de:"asthma-bei-saeglingen-luftverschmutzung",en:"asthma-babies-and-air-pollution",fr:"asthme-nourrisson-qualite-air",it:"asma-neonati-inquinamento-aria",zh:"babies-asthma"}},"20200309_coronavirus":{tags:"magazine",linkList:{de:"luftreiniger-luft-virus-coronavirus",en:"purifier-air-virus-coronavirus",fr:"purificateur-air-virus-coronavirus",it:"purificatore-aria-virus-coronavirus",zh:"purifier-air-virus-coronavirus"}},"20200408_asthma_treatment_natural":{parent:"20200108_healthy_house",tags:"magazine",linkList:{de:"asthma-behandlung-naturlich",en:"home-remedies-for-asthma",fr:"asthme-traitement-naturel",it:"",zh:""}},"20200519_pollen_treatment_natural":{tags:"magazine",linkList:{de:"hausmittel-gegen-allergien",en:"home-remedies-for-allergies",fr:"pollen-traitement-naturel",it:"rimedi-naturali-allergie",zh:""}},"20200528_company":{tags:"magazine",linkList:{de:"",en:"company-purifier-air-teqoya",fr:"entreprise-purificateur-air-teqoya",it:"",zh:""}},"20200710_propagation_virus_air":{tags:"magazine",linkList:{de:"ausbreitung-virus-luft-dauer",en:"covid-19-is-the-coronavirus-airborne",fr:"propagation-virus-air-duree",it:"",zh:""}},"20200827_lutte_pollution_protection":{tags:"magazine",linkList:{de:"luftverschmutzung-reduzieren-7-tipps",en:"best-ways-to-reduce-air-pollution",fr:"comment-lutter-contre-pollution",it:"ridurre-inquinamento-aria-7-consigli",zh:""}},"20200925_pollutioncar":{tags:"magazine",linkList:{de:"",en:"days-without-cars-paris",fr:"journee-sans-voitures-paris",it:"",zh:""}},"20201007_essentialoils":{tags:"magazine",linkList:{de:"etherische-oele-luftreinigung",en:"oil-essential-purifier-air",fr:"huile-essentielle-pour-purifier-air",it:"oli-essenziali-purificare-aria",zh:""}},"20201116_humidificateur":{tags:"magazine",linkList:{de:"reiniger-luftbefeuchter-luftentfeuchter",en:"air-purifier-vs-humidifier",fr:"purificateur-humidificateur-deshumidificateur",it:"purificatore-aria-o-umidificatore",zh:""}},"20201212_ehpad":{tags:"magazine",linkList:{de:"",en:"equipment-air-purifier-nursinghome",fr:"equipement-purificateur-air-ehpad",it:"",zh:""}},"20210414_vraifaux_covid19":{tags:"magazine",linkList:{de:"effizienz-reiniger-covid-true-false",en:"efficiency-purifier-covid-true-false",fr:"efficacite-purificateur-covid-vrai-faux",it:"",zh:""}},"20210528_ecoresponsability":{tags:"magazine",linkList:{de:"okologische-verantwortung-umwelt",en:"TEQOYA-eco-friendly-air-purifiers",fr:"purificateur-dair-ecologique-TEQOYA",it:"eco-responsabilita",zh:"TEQOYA-eco-friendly-air-purifiers"}},"20210719_lutte_ville_pollution":{tags:"magazine",linkList:{de:"",en:"cities-control-pollution-air",fr:"villes-lutte-pollution-air",it:"",zh:""}},"20211207_air_ionizer":{tags:"magazine",linkList:{de:"ionisator-luft",en:"air-purifier-ionizer",fr:"ioniseur-air",it:"ionizzatore-aria",zh:"air-ionizer"}},"20220307_capteur_co2":{tags:"magazine",linkList:{de:"",en:"co2-monitor",fr:"capteur-co2",it:"",zh:""}},"20220307_portrait_louis":{tags:"magazine",linkList:{de:"",en:"louis-profile",fr:"portrait-louis",it:"",zh:"louis-profile"}},"20220315_campagne_presidentielle":{tags:"magazine",linkList:{de:"",en:"",fr:"campagne-presidentielle",it:"",zh:""}},"20220429_portrait_isa":{tags:"magazine",linkList:{de:"",en:"isa-profile",fr:"portrait-isa",it:"",zh:"isa-profile"}},"20220429_presidentielle_suite":{tags:"magazine",linkList:{de:"",en:"",fr:"presidentielle-suite",it:"",zh:""}},"20220512_site_ecoresponsable":{tags:"magazine",linkList:{de:"oko-verantwortliche-seite",en:"are-teqoya-air-purifiers-really-eco-friendly",fr:"site-eco-responsable",it:"sito-eco-responsabile",zh:"are-teqoya-air-purifiers-really-eco-friendly"}},"20220628_solar_impulse":{tags:"magazine",linkList:{de:"solar-impulse",en:"solar-impulse",fr:"solar-impulse",it:"solar-impulse",zh:"solar-impulse"}},"20220704_portrait_emilien":{tags:"magazine",linkList:{de:"",en:"emilien-profile",fr:"portrait-emilien",it:"",zh:"emilien-profile"}},"20220720_feux_gironde":{tags:"magazine",linkList:{de:"",en:"",fr:"pollution-feux-gironde",it:"",zh:""}},"20220901_saint_ouen":{tags:"magazine",linkList:{de:"umweltverschmutzung-schule-klassenzimmer-saint-ouen",en:"indo
1or-air-quality-and-health-in-schools",fr:"covid-19-qualite-de-lair-dans-les-ecoles",it:"inquinamento-aula-scolastica-saint-ouen",zh:"indoor-air-quality-and-health-in-schools"}},"20220916_worldwide":{tags:"magazine",linkList:{de:"teqoya-vertriebspartner-welt",en:"teqoya-distributor-world",fr:"teqoya-distributeur-monde",it:"teqoya-distributore-mondo",zh:"teqoya-distributor-world"}},"20221114_portrait_pascal":{tags:"magazine",linkList:{de:"",en:"pascal-profile",fr:"pascal-portrait",it:"",zh:"pascal-profile"}},"20221115_don_semeurs":{tags:"magazine",linkList:{de:"spende-samann",en:"donation-seeders",fr:"don-semeurs",it:"donazione-di-semina",zh:"donation-seeders"}},"20221116_carbon_footprint":{tags:"magazine",linkList:{de:"kohlenstoffbilanz",en:"carbon-footprint",fr:"empreinte-carbone",it:"impronta-vdi-carbonio",zh:"carbon-footprint"}},"20230123_solideo":{tags:"magazine",linkList:{de:"dorf-der-athleten",en:"athlete-village",fr:"village-des-athletes",it:"villaggio-degli-atleti",zh:""}},"20230207_portrait_olivier":{tags:"magazine",linkList:{de:"",en:"olivier-profile",fr:"olivier-portrait",it:"",zh:""}},"20230222_ventilation_distribuee":{tags:"magazine",linkList:{de:"",en:"air-ventilation-covid19",fr:"covid-19-purificateurs-dair-sont-ils-efficaces",it:"",zh:""}},"20230223_poussiere":{tags:"magazine",linkList:{de:"hausstaubmilben-luftreiniger-wirksam",en:"dust-mite-allergies",fr:"allergies-poussiere",it:"acari-polvere-purificatore-aria-aiuta",zh:""}},"20230303_alana_footprint":{tags:"magazine",linkList:{de:"",en:"carbon-footprint-calculation",fr:"calcul-empreinte-carbone",it:"",zh:""}},"20230327_dust":{tags:"magazine",linkList:{de:"luftreiniger-gegen-staub",en:"air-purifier-for-dust",fr:"purificateur-air-poussiere",it:"purificatore-aria-contro-polvere",zh:""}},"20230627_qvt":{tags:"magazine",linkList:{de:"bueroklima-luftqualitaet-produktivitaet",en:"quality-of-life-at-work-productivity-quality-air",fr:"qualite-de-vie-au-travail-productivite-qualite-air",it:"qualita-aria-ufficio-produttivita",zh:""}},"20230703_canada_fire":{tags:"magazine",linkList:{de:"",en:"air-pollution-fire-canada",fr:"air-pollution-fire-canada",it:"",zh:""}},"20230704_ebeniste_cyclo":{tags:"magazine",linkList:{de:"",en:"dust-wood-pollution",fr:"poussiere-bois-pollution",it:"",zh:""}},"20230804_toxicite_poussieres_bois":{tags:"magazine",linkList:{de:"",en:"",fr:"poussieres-toxiques-maladies-professionnelles-bois",it:"",zh:""}},"20230903_evolution_pollution_air_france":{tags:"magazine",linkList:{de:"",en:"",fr:"evolution-pollution-air-france",it:"",zh:""}},"20230930_batiment_performance":{tags:"magazine",linkList:{de:"",en:"",fr:"performance-energetique-batiment",it:"",zh:""}},"20231023_kitchen_smell":{tags:"magazine",linkList:{de:"kueche-gerueche-tipps-und-loesungen",en:"kitchen-smell",fr:"odeur-cuisine",it:"odori-cucina-consigli-soluzioni",zh:""}},"20231115_rhinite_allergique":{tags:"magazine",linkList:{de:"allergische-rhinitis-natuerliche-behandlung",en:"allergic-rhinitis-natural-treatment",fr:"rhinite-allergique",it:"rinite-allergica-trattamento-naturale",zh:""}},"20240112_measurement":{tags:"magazine",linkList:{de:"luftqualitaet-messen-sensoren-indikatoren",en:"air-quality-measurement",fr:"mesure-qualite-air",it:"misurare-qualita-aria-sensori-indicatori",zh:""}},"20240315_hospital_china":{tags:"magazine",linkList:{de:"",en:"medical-air-purifier",fr:"purificateur-air-medical",it:"",zh:""}},"20240403_interview_emilien":{tags:"magazine",linkList:{de:"",en:"fabrication-air-quality-monitor",fr:"fabrication-capteur-qualite-air",it:"",zh:""}},"20240619_acarien":{tags:"magazine",linkList:{de:"hausstaubmilben-allergie-luftreiniger",en:"air-purifier-mites",fr:"purificateur-air-acariens",it:"acari-allergia-purificatore-aria",zh:""}},"20241002_bronchiolite":{tags:"magazine",linkList:{de:"bronchiolitis-praevention",en:"bronchiolitis-prevention",fr:"prevention-bronchiolite",it:"prevenzione-bronchiolite",zh:""}},"20241114_purificateur_air_danger":{tags:"magazine",linkList:{de:"luftreiniger-gefahren",en:"air-purifier-danger",fr:"purificateur-air-danger",it:"rischi-purificatore-aria",zh:""}},"20241224_retro":{tags:"magazine",linkList:{de:"rueckblick-teqoya-10-jahre",en:"retrospective-teqoya-10-years",fr:"retrospective-teqoya-10-ans",it:"retrospettiva-teqoya-10-anni",zh:""}},"20250509_ehpad":{tags:"magazine",linkList:{de:"luftreiniger-pflegeheim",en:"air-purifier-nursing-home",fr:"purificateur-air-ehpad",it:"purificatore-aria-casa-di-cura",zh:""}},"20250715_feu_foret":{tags:"magazine",linkList:{de:"waldbrand-auswirkungen-atemwege",en:"forest-fire-impact-respiratory-health",fr:"feu-foret-impact-sante-respiratoire",it:"incendi-boschivi-salute-respiratoria",zh:""}},"20250722_purificateur_air_bebe":{tags:"magazine",linkList:{de:"luftreiniger-baby",en:"air-purifier-baby",fr:"purificateur-air-bebe",it:"purificatore-aria-bambino",zh:""}},"20250731_negative_ion_health":{tags:"magazine",linkList:{de:"",en:"",fr:"",it:"",zh:"negative-ion-health"}},"20251127_lavie":{tags:"magazine",linkList:{de:"",en:"partnership-teqoya-lavie",fr:"partenariat-teqoya-lavie",it:"",zh:""}},"20251202_kipli":{tags:"magazine",linkList:{de:"",en:"restful-sleep-bedding-indoor-air",fr:"sommeil-reparateur-literie-air-interieur",it:"",zh:""}},"20251223_comparaison_purificateur_ioniseur":{tags:"magazine",linkList:{de:"unterschied-luftreiniger-ionisator",en:"difference-air-purifier-ionizer",fr:"difference-purificateur-air-ioniseur",it:"differenza-purificatore-ionizzatore",zh:""}},"20260212_purificateur_air_pollen":{tags:"magazine",linkList:{de:"pollen-luftreiniger",en:"pollen-air-purifier",fr:"purificateur-air-pollen",it:"purificatore-aria-polline",zh:""}},"20260218_enfant_asthme":{tags:"magazine",linkList:{de:"asthma-bei-kindern-erkennen",en:"how-to-know-if-my-child-has-asthma",fr:"comment-savoir-si-mon-enfant-a-de-l-asthme",it:"come-sapere-se-mio-figlio-ha-lasma",zh:""}},"20260226_mauvaise_odeur_cuisine":{tags:"magazine",linkList:{de:"kueche-gerueche-beseitigen",en:"bad-odor-kitchen",fr:"mauvaise-odeur-cuisine",it:"cattivi-odori-cucina",zh:""}},"20260227_astuces_allergies":{tags:"magazine",linkList:{de:"tipps-pollenallergie",en:"pollen-allergies-tips",fr:"allergies-pollens-astuces",it:"consigli-allergie-polline",zh:""}},"20260303_pfas":{tags:"magazine",linkList:{de:"ewigkeitschemikalien-pfas",en:"forever-chemicals-pfas",fr:"pfas-polluants-eternels",it:"sostanze-chimiche-perenni-pfas",zh:""}},"20260304_pollen_poussiere_acariens":{tags:"magazine",linkList:{de:"allergie-symptome-pollen-milben-unterscheiden",en:"allergy-symptoms-pollen-dust-mites-how-to-distinguish",fr:"symptomes-allergie-pollen-poussiere-acariens-comment-distinguer",it:"sintomi-allergie-polline-acari-distinguere",zh:""}},"20260312_animaux_qualite_air":{tags:"magazine",linkList:{de:"tiere-hunde-katzen-luftqualitaet",en:"animals-dog-cat-air-quality",fr:"animaux-chien-chat-qualite-air",it:"animali-cani-gatti-qualita-aria",zh:""}},"20260320_apnee_du_sommeil":{tags:"magazine",linkList:{de:"schlafapnoe-ursachen-natuerliche-loesungen",en:"sleep_apnoea_causes_natural_solutions",fr:"apnee_du_sommeil_causes_solutions_naturelles",it:"apnea-notturna-cause-soluzioni-naturali",zh:""}},"20260325_ions_negatifs_sante":{tags:"magazine",linkList:{de:"negative-ionen-gesundheitsvorteile-wissenschaftlich-bewiesen",en:"negative-ions-health-benefits-scientifically-proven",fr:"ions-negatifs-sante-bienfaits-scientifiquement-prouves",it:"ioni-negativi-benefici-salute-provati",zh:""}},"20260326_asthme_ions_negatifs":{tags:"magazine",linkList:{de:"asthma-negative-ionen-natuerliche-loesung",en:"asthma-negative-ions-natural-solution",fr:"asthme-ions-negatifs-solution-naturelle",it:"asma-ioni-negativi-soluzione-naturale",zh:""}}
1,"20260331_allergies_ions_negatifs":{tags:"magazine",linkList:{de:"allergien-wie-negative-ionen-helfen",en:"allergies-air-purifier-how-negative-ions-help",fr:"allergies-purificateur-air-comment-ions-negatifs-aident",it:"allergie-purificatore-ioni-negativi",zh:""}},"20260408_menage_printemps":{tags:"magazine",linkList:{de:"fruehjahrsputz-tipps",en:"spring-cleaning-essential-steps-to-remember",fr:"menage-de-printemps-gestes-a-ne-pas-oublier",it:"pulizie-primaverili-consigli",zh:""}},"20260414_purificateur_air_allergie":{tags:"magazine",linkList:{de:"luftreiniger-bei-allergien-wirkt-er",en:"does-an-air-purifier-for-allergies-work",fr:"purificateur-air-allergie-est-ce-que-ca-marche",it:"purificatore-aria-per-allergie-funziona",zh:""}},"20260421_carte_pollens_france":{tags:"magazine",linkList:{de:"",en:"",fr:"carte-pollens-france-regions-plus-touches",it:"",zh:""}},"20260430_qualite_air_interieur_solutions_sans_filtre":{tags:"magazine",linkList:{de:"innenraumluft-loesungen-ohne-filter",en:"indoor-air-quality-solutions-without-filters",fr:"qualite-air-interieur-solutions-sans-filtre",it:"qualita-aria-interna-soluzioni-senza-filtri",zh:""}},"20260518_rapport_oqei_2025":{tags:"magazine",linkList:{de:"oqei-2025-bericht-innenraumluft-frankreich",en:"oqei-2025-report-indoor-air-quality-french-homes",fr:"rapport-oqei-2025-qualite-air-logements",it:"rapporto-oqei-2025-qualita-aria-interna",zh:""}},"20260526_purificateur_sans_filtre":{tags:"magazine",linkList:{de:"luftreiniger-ohne-filter",en:"air-purifier-without-filter",fr:"purificateur-air-sans-filtre-teqoya-e500",it:"purificatore-aria-senza-filtro",zh:""}},"20260630_purificateur_air_chambre":{tags:"magazine",linkList:{de:"luftreiniger-schlafzimmer",en:"bedroom-air-purifier",fr:"purificateur-air-chambre",it:"purificatore-aria-camera-da-letto",zh:""}},"20260703_purificateur_air_voiture":{tags:"magazine",linkList:{de:"autoluftreiniger",en:"car-air-purifier",fr:"purificateur-air-voiture",it:"purificatore-aria-auto",zh:""}},"20260723_purificateur_air_cuisine":{tags:"magazine",linkList:{de:"luftreiniger-kueche",en:"air-purifier-for-kitchen-cooking",fr:"purificateur-air-cuisine",it:"purificatore-aria-cucina",zh:""}}}});!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery")):"function"==typeof define&&define.amd?define("bootstrap",["exports","jquery"],e):e((t=t||self).bootstrap={},t.jQuery)}(this,function(t,e){"use strict";function n(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function i(t,e,i){return e&&n(t.prototype,e),i&&n(t,i),t}function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,i)}return n}function s(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?r(Object(n),!0).forEach(function(e){o(t,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}e=e&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e;function a(t){var n=this,i=!1;return e(this).one(l.TRANSITION_END,function(){i=!0}),setTimeout(function(){i||l.triggerTransitionEnd(n)},t),this}var l={TRANSITION_END:"bsTransitionEnd",getUID:function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},getSelectorFromElement:function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},getTransitionDurationFromElement:function(t){if(!t)return 0;var n=e(t).css("transition-duration"),i=e(t).css("transition-delay"),o=parseFloat(n),r=parseFloat(i);return o||r?(n=n.split(",")[0],i=i.split(",")[0],1e3*(parseFloat(n)+parseFloat(i))):0},reflow:function(t){return t.offsetHeight},triggerTransitionEnd:function(t){e(t).trigger("transitionend")},supportsTransitionEnd:function(){return Boolean("transitionend")},isElement:function(t){return(t[0]||t).nodeType},typeCheckConfig:function(t,e,n){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var o=n[i],r=e[i],s=r&&l.isElement(r)?"element":null===(a=r)||"undefined"==typeof a?""+a:{}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(o).test(s))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+s+'" but expected type "'+o+'".')}var a},findShadowRoot:function(t){if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){var e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?l.findShadowRoot(t.parentNode):null},jQueryDetection:function(){if("undefined"==typeof e)throw new TypeError("Bootstrap's JavaScript requires jQuery. jQuery must be included before Bootstrap's JavaScript.");var t=e.fn.jquery.split(" ")[0].split(".");if(t[0]<2&&t[1]<9||1===t[0]&&9===t[1]&&t[2]<1||t[0]>=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}};l.jQueryDetection(),e.fn.emulateTransitionEnd=a,e.event.special[l.TRANSITION_END]={bindType:"transitionend",delegateType:"transitionend",handle:function(t){if(e(t.target).is(this))return t.handleObj.handler.apply(this,arguments)}};var c="alert",u=e.fn[c],h=function(){function t(t){this._element=t}var n=t.prototype;return n.close=function(t){var e=this._element;t&&(e=this._getRootElement(t)),this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)}
1,n.dispose=function(){e.removeData(this._element,"bs.alert"),this._element=null},n._getRootElement=function(t){var n=l.getSelectorFromElement(t),i=!1;return n&&(i=document.querySelector(n)),i||(i=e(t).closest(".alert")[0]),i},n._triggerCloseEvent=function(t){var n=e.Event("close.bs.alert");return e(t).trigger(n),n},n._removeElement=function(t){var n=this;if(e(t).removeClass("show"),e(t).hasClass("fade")){var i=l.getTransitionDurationFromElement(t);e(t).one(l.TRANSITION_END,function(e){return n._destroyElement(t,e)}).emulateTransitionEnd(i)}else this._destroyElement(t)},n._destroyElement=function(t){e(t).detach().trigger("closed.bs.alert").remove()},t._jQueryInterface=function(n){return this.each(function(){var i=e(this),o=i.data("bs.alert");o||(o=new t(this),i.data("bs.alert",o)),"close"===n&&o[n](this)})},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},i(t,null,[{key:"VERSION",get:function(){return"4.5.0"}}]),t}();e(document).on("click.bs.alert.data-api",'[data-dismiss="alert"]',h._handleDismiss(new h)),e.fn[c]=h._jQueryInterface,e.fn[c].Constructor=h,e.fn[c].noConflict=function(){return e.fn[c]=u,h._jQueryInterface};var f=e.fn.button,d=function(){function t(t){this._element=t}var n=t.prototype;return n.toggle=function(){var t=!0,n=!0,i=e(this._element).closest('[data-toggle="buttons"]')[0];if(i){var o=this._element.querySelector('input:not([type="hidden"])');if(o){if("radio"===o.type)if(o.checked&&this._element.classList.contains("active"))t=!1;else{var r=i.querySelector(".active");r&&e(r).removeClass("active")}t&&("checkbox"!==o.type&&"radio"!==o.type||(o.checked=!this._element.classList.contains("active")),e(o).trigger("change")),o.focus(),n=!1}}this._element.hasAttribute("disabled")||this._element.classList.contains("disabled")||(n&&this._element.setAttribute("aria-pressed",!this._element.classList.contains("active")),t&&e(this._element).toggleClass("active"))},n.dispose=function(){e.removeData(this._element,"bs.button"),this._element=null},t._jQueryInterface=function(n){return this.each(function(){var i=e(this).data("bs.button");i||(i=new t(this),e(this).data("bs.button",i)),"toggle"===n&&i[n]()})},i(t,null,[{key:"VERSION",get:function(){return"4.5.0"}}]),t}();e(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(t){var n=t.target,i=n;if(e(n).hasClass("btn")||(n=e(n).closest(".btn")[0]),!n||n.hasAttribute("disabled")||n.classList.contains("disabled"))t.preventDefault();else{var o=n.querySelector('input:not([type="hidden"])');if(o&&(o.hasAttribute("disabled")||o.classList.contains("disabled")))return void t.preventDefault();"LABEL"===i.tagName&&o&&"checkbox"===o.type&&t.preventDefault(),d._jQueryInterface.call(e(n),"toggle")}}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(t){var n=e(t.target).closest(".btn")[0];e(n).toggleClass("focus",/^focus(in)?$/.test(t.type))}),e(window).on("load.bs.button.data-api",function(){for(var t=[].slice.call(document.querySelectorAll('[data-toggle="buttons"] .btn')),e=0,n=t.length;e<n;e++){var i=t[e],o=i.querySelector('input:not([type="hidden"])');o.checked||o.hasAttribute("checked")?i.classList.add("active"):i.classList.remove("active")}for(var r=0,s=(t=[].slice.call(document.querySelectorAll('[data-toggle="button"]'))).length;r<s;r++){var a=t[r];"true"===a.getAttribute("aria-pressed")?a.classList.add("active"):a.classList.remove("active")}}),e.fn.button=d._jQueryInterface,e.fn.button.Constructor=d,e.fn.button.noConflict=function(){return e.fn.button=f,d._jQueryInterface};var p="carousel",m=".bs.carousel",g=e.fn[p],v={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},_={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},b={TOUCH:"touch",PEN:"pen"},y=function(){function t(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=this._element.querySelector(".carousel-indicators"),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners()}var n=t.prototype;return n.next=function(){this._isSliding||this._slide("next")},n.nextWhenVisible=function(){!document.hidden&&e(this._element).is(":visible")&&"hidden"
1!==e(this._element).css("visibility")&&this.next()},n.prev=function(){this._isSliding||this._slide("prev")},n.pause=function(t){t||(this._isPaused=!0),this._element.querySelector(".carousel-item-next, .carousel-item-prev")&&(l.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},n.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},n.to=function(t){var n=this;this._activeElement=this._element.querySelector(".active.carousel-item");var i=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)e(this._element).one("slid.bs.carousel",function(){return n.to(t)});else{if(i===t)return this.pause(),void this.cycle();var o=t>i?"next":"prev";this._slide(o,this._items[t])}},n.dispose=function(){e(this._element).off(m),e.removeData(this._element,"bs.carousel"),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},n._getConfig=function(t){return t=s(s({},v),t),l.typeCheckConfig(p,t,_),t},n._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&this.prev(),e<0&&this.next()}},n._addEventListeners=function(){var t=this;this._config.keyboard&&e(this._element).on("keydown.bs.carousel",function(e){return t._keydown(e)}),"hover"===this._config.pause&&e(this._element).on("mouseenter.bs.carousel",function(e){return t.pause(e)}).on("mouseleave.bs.carousel",function(e){return t.cycle(e)}),this._config.touch&&this._addTouchEventListeners()},n._addTouchEventListeners=function(){var t=this;if(this._touchSupported){var n=function(e){t._pointerEvent&&b[e.originalEvent.pointerType.toUpperCase()]?t.touchStartX=e.originalEvent.clientX:t._pointerEvent||(t.touchStartX=e.originalEvent.touches[0].clientX)},i=function(e){t._pointerEvent&&b[e.originalEvent.pointerType.toUpperCase()]&&(t.touchDeltaX=e.originalEvent.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout(function(e){return t.cycle(e)},500+t._config.interval))};e(this._element.querySelectorAll(".carousel-item img")).on("dragstart.bs.carousel",function(t){return t.preventDefault()}),this._pointerEvent?(e(this._element).on("pointerdown.bs.carousel",function(t){return n(t)}),e(this._element).on("pointerup.bs.carousel",function(t){return i(t)}),this._element.classList.add("pointer-event")):(e(this._element).on("touchstart.bs.carousel",function(t){return n(t)}),e(this._element).on("touchmove.bs.carousel",function(e){return function(e){e.originalEvent.touches&&e.originalEvent.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.originalEvent.touches[0].clientX-t.touchStartX}(e)}),e(this._element).on("touchend.bs.carousel",function(t){return i(t)}))}},n._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},n._getItemIndex=function(t){return this._items=t&&t.parentNode?[].slice.call(t.parentNode.querySelectorAll(".carousel-item")):[],this._items.indexOf(t)},n._getItemByDirection=function(t,e){var n="next"===t,i="prev"===t,o=this._getItemIndex(e),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return e;var s=(o+("prev"===t?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},n._triggerSlideEvent=function(t,n){var i=this._getItemIndex(t),o=this._getItemIndex(this._element.querySelector(".active.carousel-item")),r=e.Event("slide.bs.carousel",{relatedTarget:t,direction:n,from:o,to:i});return e(this._element).trigger(r),r},n._setActiveIndicatorElement=function(t){if(this._indicatorsElement){var n=[].slice.call(this._indicatorsElement.querySelectorAll(".active"));e(n).removeClass("active");var i=this._indicatorsElement.children[this._getItemIndex(t)];i&&e(i).addClass("active")}},n._slide=function(t,n){var i,o,r,s=this,a=this._element.querySelector(".active.carousel-item"),c=this._getItemIndex(a),u=n||a&&this._getItemByDirection(t,a),h=this._getItemIndex(u),f=B
1oolean(this._interval);if("next"===t?(i="carousel-item-left",o="carousel-item-next",r="left"):(i="carousel-item-right",o="carousel-item-prev",r="right"),u&&e(u).hasClass("active"))this._isSliding=!1;else if(!this._triggerSlideEvent(u,r).isDefaultPrevented()&&a&&u){this._isSliding=!0,f&&this.pause(),this._setActiveIndicatorElement(u);var d=e.Event("slid.bs.carousel",{relatedTarget:u,direction:r,from:c,to:h});if(e(this._element).hasClass("slide")){e(u).addClass(o),l.reflow(u),e(a).addClass(i),e(u).addClass(i);var p=parseInt(u.getAttribute("data-interval"),10);p?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=p):this._config.interval=this._config.defaultInterval||this._config.interval;var m=l.getTransitionDurationFromElement(a);e(a).one(l.TRANSITION_END,function(){e(u).removeClass(i+" "+o).addClass("active"),e(a).removeClass("active "+o+" "+i),s._isSliding=!1,setTimeout(function(){return e(s._element).trigger(d)},0)}).emulateTransitionEnd(m)}else e(a).removeClass("active"),e(u).addClass("active"),this._isSliding=!1,e(this._element).trigger(d);f&&this.cycle()}},t._jQueryInterface=function(n){return this.each(function(){var i=e(this).data("bs.carousel"),o=s(s({},v),e(this).data());"object"==typeof n&&(o=s(s({},o),n));var r="string"==typeof n?n:o.slide;if(i||(i=new t(this,o),e(this).data("bs.carousel",i)),"number"==typeof n)i.to(n);else if("string"==typeof r){if("undefined"==typeof i[r])throw new TypeError('No method named "'+r+'"');i[r]()}else o.interval&&o.ride&&(i.pause(),i.cycle())})},t._dataApiClickHandler=function(n){var i=l.getSelectorFromElement(this);if(i){var o=e(i)[0];if(o&&e(o).hasClass("carousel")){var r=s(s({},e(o).data()),e(this).data()),a=this.getAttribute("data-slide-to");a&&(r.interval=!1),t._jQueryInterface.call(e(o),r),a&&e(o).data("bs.carousel").to(a),n.preventDefault()}}},i(t,null,[{key:"VERSION",get:function(){return"4.5.0"}},{key:"Default",get:function(){return v}}]),t}();e(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",y._dataApiClickHandler),e(window).on("load.bs.carousel.data-api",function(){for(var t=[].slice.call(document.querySelectorAll('[data-ride="carousel"]')),n=0,i=t.length;n<i;n++){var o=e(t[n]);y._jQueryInterface.call(o,o.data())}}),e.fn[p]=y._jQueryInterface,e.fn[p].Constructor=y,e.fn[p].noConflict=function(){return e.fn[p]=g,y._jQueryInterface};var w="collapse",E=e.fn[w],T={toggle:!0,parent:""},C={toggle:"boolean",parent:"(string|element)"},S=function(){function t(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=[].slice.call(document.querySelectorAll('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=[].slice.call(document.querySelectorAll('[data-toggle="collapse"]')),i=0,o=n.length;i<o;i++){var r=n[i],s=l.getSelectorFromElement(r),a=[].slice.call(document.querySelectorAll(s)).filter(function(e){return e===t});null!==s&&a.length>0&&(this._selector=s,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}var n=t.prototype;return n.toggle=function(){e(this._element).hasClass("show")?this.hide():this.show()},n.show=function(){var n,i,o=this;if(!this._isTransitioning&&!e(this._element).hasClass("show")&&(this._parent&&0===(n=[].slice.call(this._parent.querySelectorAll(".show, .collapsing")).filter(function(t){return"string"==typeof o._config.parent?t.getAttribute("data-parent")===o._config.parent:t.classList.contains("collapse")})).length&&(n=null),!(n&&(i=e(n).not(this._selector).data("bs.collapse"))&&i._isTransitioning))){var r=e.Event("show.bs.collapse");if(e(this._element).trigger(r),!r.isDefaultPrevented()){n&&(t._jQueryInterface.call(e(n).not(this._selector),"hide"),i||e(n).data("bs.collapse",null));var s=this._getDimension();e(this._element).removeClass("collapse").addClass("collapsing"),this._element.style[s]=0,this._triggerArray.length&&e(this._triggerArray).removeClass("collapsed").attr("aria-expanded",!0),this.setTransitioning(!0);var a="scroll"+(s[0].toUpperCase()+s.slice(1)),c=l.getTransitionDurationFromElement(this._element);e(this._element).one(l.TRANSITION_END,function(){e(o._element).removeClass("collapsing").addClass("collapse show"),o._element.style[s]="",o.setTransitioning(!1),e(o._element).trigger("shown.bs.collapse")}).emulateTransitionEnd(c),this._element.style[s]=this._element[a]+"px"}}},n.hide=function(){var t=this;if(!this._isTransitioning&&e(this._element).hasClass("show")){var n=e.Event("hide.bs.collapse");if(e(this._element).trigger(n),!n.isDefaultPrevented()){var i=this._getDimension();this._element.style[i]=this._element.getBoundingClientRect()[i]+"px",l.reflow(this._element),e(this._element).addClass("collapsing").removeClass("collapse show");var o=this._triggerArray.length;if(o>0)for(var r=0;r<o;r++){var s=this._triggerArray[r],a=l.getSelectorFromElement(s);if(null!==a)e([].slice.call(document.querySelectorAll(a))).hasClass("show")||e(s).addClass("collapsed").attr("aria-expanded",!1)}this.setTransitioning(!0);this._element.style[i]="";var c=l.getTransitionDurationFromElement(this._element);e(this._element).one(l.TRANSITION_END,function(){t.setTransitioning(!1),e(t._element).removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")}).emulateTransitionEnd(c)}}},n.setTransitioning=function(t){this._isTransitioning=t}
1,n.dispose=function(){e.removeData(this._element,"bs.collapse"),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},n._getConfig=function(t){return(t=s(s({},T),t)).toggle=Boolean(t.toggle),l.typeCheckConfig(w,t,C),t},n._getDimension=function(){return e(this._element).hasClass("width")?"width":"height"},n._getParent=function(){var n,i=this;l.isElement(this._config.parent)?(n=this._config.parent,"undefined"!=typeof this._config.parent.jquery&&(n=this._config.parent[0])):n=document.querySelector(this._config.parent);var o='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]',r=[].slice.call(n.querySelectorAll(o));return e(r).each(function(e,n){i._addAriaAndCollapsedClass(t._getTargetFromElement(n),[n])}),n},n._addAriaAndCollapsedClass=function(t,n){var i=e(t).hasClass("show");n.length&&e(n).toggleClass("collapsed",!i).attr("aria-expanded",i)},t._getTargetFromElement=function(t){var e=l.getSelectorFromElement(t);return e?document.querySelector(e):null},t._jQueryInterface=function(n){return this.each(function(){var i=e(this),o=i.data("bs.collapse"),r=s(s(s({},T),i.data()),"object"==typeof n&&n?n:{});if(!o&&r.toggle&&"string"==typeof n&&/show|hide/.test(n)&&(r.toggle=!1),o||(o=new t(this,r),i.data("bs.collapse",o)),"string"==typeof n){if("undefined"==typeof o[n])throw new TypeError('No method named "'+n+'"');o[n]()}})},i(t,null,[{key:"VERSION",get:function(){return"4.5.0"}},{key:"Default",get:function(){return T}}]),t}();e(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(t){"A"===t.currentTarget.tagName&&t.preventDefault();var n=e(this),i=l.getSelectorFromElement(this),o=[].slice.call(document.querySelectorAll(i));e(o).each(function(){var t=e(this),i=t.data("bs.collapse")?"toggle":n.data();S._jQueryInterface.call(t,i)})}),e.fn[w]=S._jQueryInterface,e.fn[w].Constructor=S,e.fn[w].noConflict=function(){return e.fn[w]=E,S._jQueryInterface};var D="undefined"!=typeof window&&"undefined"!=typeof document&&"undefined"!=typeof navigator,k=function(){for(var t=["Edge","Trident","Firefox"],e=0;e<t.length;e+=1)if(D&&navigator.userAgent.indexOf(t[e])>=0)return 1;return 0}();var N=D&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then(function(){e=!1,t()}))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout(function(){e=!1,t()},k))}};function O(t){return t&&"[object Function]"==={}.toString.call(t)}function A(t,e){if(1!==t.nodeType)return[];var n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function I(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function x(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=A(t),n=e.overflow,i=e.overflowX,o=e.overflowY;return/(auto|scroll|overlay)/.test(n+o+i)?t:x(I(t))}function j(t){return t&&t.referenceNode?t.referenceNode:t}var L=D&&!(!window.MSInputMethodContext||!document.documentMode),P=D&&/MSIE 10/.test(navigator.userAgent);function F(t){return 11===t?L:10===t?P:L||P}function R(t){if(!t)return document.documentElement;for(var e=F(10)?document.body:null,n=t.offsetParent||null;n===e&&t.nextElementSibling;)n=(t=t.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===A(n,"position")?R(n):n:t?t.ownerDocument.documentElement:document.documentElement}function M(t){return null!==t.parentNode?M(t.parentNode):t}function B(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?t:e,o=n?e:t,r=document.createRange();r.setStart(i,0),r.setEnd(o,0);var s,a,l=r.commonAncestorContainer;if(t!==l&&e!==l||i.contains(o))return"BODY"===(a=(s=l).nodeName)||"HTML"!==a&&R(s.firstElementChild)!==s?R(l):l;var c=M(t);return c.host?B(c.host,e):B(t,M(e).host)}function q(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top",n="top"===e?"scrollTop":"scrollLeft",i=t.nodeName;if("BODY"===i||"HTML"===i){var o=t.ownerDocument.documentElement,r=t.ownerDocument.scrollingElement||o;return r[n]}return t[n]}function H(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=q(e,"top"),o=q(e,"left"),r=n?-1:1;return t.top+=i*r,t.bottom+=i*r,t.left+=o*r,t.right+=o*r,t}function Q(t,e){var n="x"===e?"Left":"Top",i="Left"===n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"],10)+parseFloat(t["border"+i+"Width"],10)}function W(t,e,n,i){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],F(10)?parseInt(n["offset"+t])+parseInt(i["margin"+("Height"===t?"Top":"Left")])+parseInt(i["margin"+("Height"===t?"Bottom":"Right")]):0)}function U(t){var e=t.body,n=t.documentElement,i=F(10)&&getComputedStyle(n);return{height:W("Height",e,n,i),width:W("Width",e,n,i)}}var V=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},Y=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),z=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t},X=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t};function K(t){return X({},t,{right:t.left+t.width,bottom:t.top+t.height})}function G(t){var e={};try{if(F(10)){e=t.getBoundingClientRect();var n=q(t,"top"),i=q(t,"left");e.top+=n,e.left+=i,e.bottom+=n,e.right+=i}else e=t.getBoundingClientRect()}catch(t){}var o={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},r="HTML"===t.nodeName?U(t.ownerDocument):{},s=r.width||t.clientWidth||o.width,a=r.height||t.clientHeight||o.height,l=t.offsetWidth-s,c=t.offsetHeight-a;if(l||c){var u=A(t);l-=Q(u,"x"),c-=Q(u,"y"),o.width-=l,o.height-=c}return K(o)}function $(t,e){var n=arguments.length>
vendor: 5,927 bytes, line 1
12&&void 0!==arguments[2]&&arguments[2],i=F(10),o="HTML"===e.nodeName,r=G(t),s=G(e),a=x(t),l=A(e),c=parseFloat(l.borderTopWidth,10),u=parseFloat(l.borderLeftWidth,10);n&&o&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var h=K({top:r.top-s.top-c,left:r.left-s.left-u,width:r.width,height:r.height});if(h.marginTop=0,h.marginLeft=0,!i&&o){var f=parseFloat(l.marginTop,10),d=parseFloat(l.marginLeft,10);h.top-=c-f,h.bottom-=c-f,h.left-=u-d,h.right-=u-d,h.marginTop=f,h.marginLeft=d}return(i&&!n?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(h=H(h,e)),h}function J(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,i=$(t,n),o=Math.max(n.clientWidth,window.innerWidth||0),r=Math.max(n.clientHeight,window.innerHeight||0),s=e?0:q(n),a=e?0:q(n,"left"),l={top:s-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:o,height:r};return K(l)}function Z(t){var e=t.nodeName;if("BODY"===e||"HTML"===e)return!1;if("fixed"===A(t,"position"))return!0;var n=I(t);return!!n&&Z(n)}function tt(t){if(!t||!t.parentElement||F())return document.documentElement;for(var e=t.parentElement;e&&"none"===A(e,"transform");)e=e.parentElement;return e||document.documentElement}function et(t,e,n,i){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},s=o?tt(t):B(t,j(e));if("viewport"===i)r=J(s,o);else{var a=void 0;"scrollParent"===i?"BODY"===(a=x(I(e))).nodeName&&(a=t.ownerDocument.documentElement):a="window"===i?t.ownerDocument.documentElement:i;var l=$(a,s,o);if("HTML"!==a.nodeName||Z(s))r=l;else{var c=U(t.ownerDocument),u=c.height,h=c.width;r.top+=l.top-l.marginTop,r.bottom=u+l.top,r.left+=l.left-l.marginLeft,r.right=h+l.left}}var f="number"==typeof(n=n||0);return r.left+=f?n:n.left||0,r.top+=f?n:n.top||0,r.right-=f?n:n.right||0,r.bottom-=f?n:n.bottom||0,r}function nt(t){return t.width*t.height}function it(t,e,n,i,o){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var s=et(n,i,r,o),a={top:{width:s.width,height:e.top-s.top},right:{width:s.right-e.right,height:s.height},bottom:{width:s.width,height:s.bottom-e.bottom},left:{width:e.left-s.left,height:s.height}},l=Object.keys(a).map(function(t){return X({key:t},a[t],{area:nt(a[t])})}).sort(function(t,e){return e.area-t.area}),c=l.filter(function(t){var e=t.width,i=t.height;return e>=n.clientWidth&&i>=n.clientHeight}),u=c.length>0?c[0].key:l[0].key,h=t.split("-")[1];return u+(h?"-"+h:"")}function ot(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o=i?tt(e):B(e,j(n));return $(n,o,i)}function rt(t){var e=t.ownerDocument.defaultView.getComputedStyle(t),n=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),i=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:t.offsetWidth+i,height:t.offsetHeight+n}}function st(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,function(t){return e[t]})}function at(t,e,n){n=n.split("-")[0];var i=rt(t),o={width:i.width,height:i.height},r=-1!==["right","left"].indexOf(n),s=r?"top":"left",a=r?"left":"top",l=r?"height":"width",c=r?"width":"height";return o[s]=e[s]+e[l]/2-i[l]/2,o[a]=n===a?e[a]-i[c]:e[st(a)],o}function lt(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function ct(t,e,n){return(void 0===n?t:t.slice(0,function(t,e,n){if(Array.prototype.findIndex)return t.findIndex(function(t){return t[e]===n});var i=lt(t,function(t){return t[e]===n});return t.indexOf(i)}(t,"name",n))).forEach(function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=t.function||t.fn;t.enabled&&O(n)&&(e.offsets.popper=K(e.offsets.popper),e.offsets.reference=K(e.offsets.reference),e=n(e,t))}),e}function ut(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=ot(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=it(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=at(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=ct(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}function ht(t,e){return t.some(function(t){var n=t.name;return t.enabled&&n===e})}function ft(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),i=0;i<e.length;i++){var o=e[i],r=o?""+o+n:t;if("undefined"!=typeof document.body.style[r])return r}return null}function dt(){return this.state.isDestroyed=!0,ht(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[ft("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function pt(t){var e=t.ownerDocument;return e?e.defaultView:window}function mt(t,e,n,i){n.updateBound=i,pt(t).addEventListener("resize",n.updateBound,{passive:!0});var o=x(t);return function t(e,n,i,o){var r="BODY"===e.nodeName,s=r?e.ownerDocument.defaultView:e;s.addEventListener(n,i,{passive:!0}),r||t(x(s.parentNode),n,i,o),o.push(s)}(o,"scroll",n.updateBound,n.scrollParents),n.scrollElement=o,n.eventsEnabled=!0,n}function gt(){this.state.eventsEnabled||(this.state=mt(this.reference,this.options,this.state,this.scheduleUpdate))}function vt(){var t,e;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(t=this.reference,e=this.state,pt(t).removeEventListener("resize",e.updateBound),e.scrollParents.forEac
vendor: 4,239 bytes, line 1
1h(function(t){t.removeEventListener("scroll",e.updateBound)}),e.updateBound=null,e.scrollParents=[],e.scrollElement=null,e.eventsEnabled=!1,e))}function _t(t){return""!==t&&!isNaN(parseFloat(t))&&isFinite(t)}function bt(t,e){Object.keys(e).forEach(function(n){var i="";-1!==["width","height","top","right","bottom","left"].indexOf(n)&&_t(e[n])&&(i="px"),t.style[n]=e[n]+i})}var yt=D&&/Firefox/i.test(navigator.userAgent);function wt(t,e,n){var i=lt(t,function(t){return t.name===e}),o=!!i&&t.some(function(t){return t.name===n&&t.enabled&&t.order<i.order});if(!o){var r="`"+e+"`",s="`"+n+"`";console.warn(s+" modifier is required by "+r+" modifier in order to work, be sure to include it before "+r+"!")}return o}var Et=["auto-start","auto","auto-end","top-start","top","top-end","right-start","right","right-end","bottom-end","bottom","bottom-start","left-end","left","left-start"],Tt=Et.slice(3);function Ct(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=Tt.indexOf(t),i=Tt.slice(n+1).concat(Tt.slice(0,n));return e?i.reverse():i}var St="flip",Dt="clockwise",kt="counterclockwise";function Nt(t,e,n,i){var o=[0,0],r=-1!==["right","left"].indexOf(i),s=t.split(/(\+|\-)/).map(function(t){return t.trim()}),a=s.indexOf(lt(s,function(t){return-1!==t.search(/,|\s/)}));s[a]&&-1===s[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,c=-1!==a?[s.slice(0,a).concat([s[a].split(l)[0]]),[s[a].split(l)[1]].concat(s.slice(a+1))]:[s];return(c=c.map(function(t,i){var o=(1===i?!r:r)?"height":"width",s=!1;return t.reduce(function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,s=!0,t):s?(t[t.length-1]+=e,s=!1,t):t.concat(e)},[]).map(function(t){return function(t,e,n,i){var o=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+o[1],s=o[2];if(!r)return t;if(0===s.indexOf("%")){var a=void 0;switch(s){case"%p":a=n;break;case"%":case"%r":default:a=i}return K(a)[e]/100*r}if("vh"===s||"vw"===s){return("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*r}return r}(t,o,e,n)})})).forEach(function(t,e){t.forEach(function(n,i){_t(n)&&(o[e]+=n*("-"===t[i-1]?-1:1))})}),o}var Ot={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,n=e.split("-")[0],i=e.split("-")[1];if(i){var o=t.offsets,r=o.reference,s=o.popper,a=-1!==["bottom","top"].indexOf(n),l=a?"left":"top",c=a?"width":"height",u={start:z({},l,r[l]),end:z({},l,r[l]+r[c]-s[c])};t.offsets.popper=X({},s,u[i])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var n=e.offset,i=t.placement,o=t.offsets,r=o.popper,s=o.reference,a=i.split("-")[0],l=void 0;return l=_t(+n)?[+n,0]:Nt(n,r,s,a),"left"===a?(r.top+=l[0],r.left-=l[1]):"right"===a?(r.top+=l[0],r.left+=l[1]):"top"===a?(r.left+=l[0],r.top-=l[1]):"bottom"===a&&(r.left+=l[0],r.top+=l[1]),t.popper=r,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,e){var n=e.boundariesElement||R(t.instance.popper);t.instance.reference===n&&(n=R(n));var i=ft("transform"),o=t.instance.popper.style,r=o.top,s=o.left,a=o[i];o.top="",o.left="",o[i]="";var l=et(t.instance.popper,t.instance.reference,e.padding,n,t.positionFixed);o.top=r,o.left=s,o[i]=a,e.boundaries=l;var c=e.priority,u=t.offsets.popper,h={primary:function(t){var n=u[t];return u[t]<l[t]&&!e.escapeWithReference&&(n=Math.max(u[t],l[t])),z({},t,n)},secondary:function(t){var n="right"===t?"left":"top",i=u[n];return u[t]>l[t]&&!e.escapeWithReference&&(i=Math.min(u[n],l[t]-("right"===t?u.width:u.height))),z({},n,i)}};return c.forEach(function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";u=X({},u,h[e](t))}),t.offsets.popper=u,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,i=e.reference,o=t.placement.split("-")[0],r=Math.floor,s=-1!==["top","bottom"].indexOf(o),a=s?"right":"bottom",l=s?"left":"top",c=s?"width":"height";return n[a]<r(i[l])&&(t.offsets.popper[l]=r(i[l])-n[c]),n[l]>
vendor: 4,180 bytes, line 1
1r(i[a])&&(t.offsets.popper[l]=r(i[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!wt(t.instance.modifiers,"arrow","keepTogether"))return t;var i=e.element;if("string"==typeof i){if(!(i=t.instance.popper.querySelector(i)))return t}else if(!t.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var o=t.placement.split("-")[0],r=t.offsets,s=r.popper,a=r.reference,l=-1!==["left","right"].indexOf(o),c=l?"height":"width",u=l?"Top":"Left",h=u.toLowerCase(),f=l?"left":"top",d=l?"bottom":"right",p=rt(i)[c];a[d]-p<s[h]&&(t.offsets.popper[h]-=s[h]-(a[d]-p)),a[h]+p>s[d]&&(t.offsets.popper[h]+=a[h]+p-s[d]),t.offsets.popper=K(t.offsets.popper);var m=a[h]+a[c]/2-p/2,g=A(t.instance.popper),v=parseFloat(g["margin"+u],10),_=parseFloat(g["border"+u+"Width"],10),b=m-t.offsets.popper[h]-v-_;return b=Math.max(Math.min(s[c]-p,b),0),t.arrowElement=i,t.offsets.arrow=(z(n={},h,Math.round(b)),z(n,f,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(ht(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var n=et(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),i=t.placement.split("-")[0],o=st(i),r=t.placement.split("-")[1]||"",s=[];switch(e.behavior){case St:s=[i,o];break;case Dt:s=Ct(i);break;case kt:s=Ct(i,!0);break;default:s=e.behavior}return s.forEach(function(a,l){if(i!==a||s.length===l+1)return t;i=t.placement.split("-")[0],o=st(i);var c=t.offsets.popper,u=t.offsets.reference,h=Math.floor,f="left"===i&&h(c.right)>h(u.left)||"right"===i&&h(c.left)<h(u.right)||"top"===i&&h(c.bottom)>h(u.top)||"bottom"===i&&h(c.top)<h(u.bottom),d=h(c.left)<h(n.left),p=h(c.right)>h(n.right),m=h(c.top)<h(n.top),g=h(c.bottom)>h(n.bottom),v="left"===i&&d||"right"===i&&p||"top"===i&&m||"bottom"===i&&g,_=-1!==["top","bottom"].indexOf(i),b=!!e.flipVariations&&(_&&"start"===r&&d||_&&"end"===r&&p||!_&&"start"===r&&m||!_&&"end"===r&&g),y=!!e.flipVariationsByContent&&(_&&"start"===r&&p||_&&"end"===r&&d||!_&&"start"===r&&g||!_&&"end"===r&&m),w=b||y;(f||v||w)&&(t.flipped=!0,(f||v)&&(i=s[l+1]),w&&(r=function(t){return"end"===t?"start":"start"===t?"end":t}(r)),t.placement=i+(r?"-"+r:""),t.offsets.popper=X({},t.offsets.popper,at(t.instance.popper,t.offsets.reference,t.placement)),t=ct(t.instance.modifiers,t,"flip"))}),t},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,n=e.split("-")[0],i=t.offsets,o=i.popper,r=i.reference,s=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return o[s?"left":"top"]=r[n]-(a?o[s?"width":"height"]:0),t.placement=st(e),t.offsets.popper=K(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!wt(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=lt(t.instance.modifiers,function(t){return"preventOverflow"===t.name}).boundaries;if(e.bottom<n.top||e.left>n.right||e.top>n.bottom||e.right<n.left){if(!0===t.hide)return t;t.hide=!0,t.attributes["x-out-of-boundaries"]=""}else{if(!1===t.hide)return t;t.hide=!1,t.attributes["x-out-of-boundaries"]=!1}return t}},computeStyle:{order:850,enabled:!0,fn:function(t,e){var n=e.x,i=e.y,o=t.offsets.popper,r=lt(t.instance.modifiers,function(t){return"applyStyle"===t.name}).gpuAcceleration;void 0!==r&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var s=void 0!==r?r:e.gpuAcceleration,a=R(t.instance.popper),l=G(a),c={position:o.position},u=function(t,e){var n=t.offsets,i=n.popper,o=n.reference,r=Math.round,s=Math.floor,a=function(t){return t},l=r(o.width),c=r(i.width),u=-1!==["left","right"].indexOf(t.placement),h=-1!==t.placement.indexOf("-"),f=e?u||h||l%2==c%2?r:s:a,d=e?r:a;return{left:f(l%2==1&&c%2==1&&!h&&e?i.left-1:i.left),top:d(i.top),bottom:d(i.bottom),right:f(i.right)}}(t,window.devicePixelRatio<2||!yt),h="bottom"===n?"top":"bottom",f="right"===i?"left":"right",d=ft("transform"),p=void 0,m=void 0;if(m="bottom"===h?"HTML"===a.nodeName?-a.clientHeight+u.bottom:-l.he
1ight+u.bottom:u.top,p="right"===f?"HTML"===a.nodeName?-a.clientWidth+u.right:-l.width+u.right:u.left,s&&d)c[d]="translate3d("+p+"px, "+m+"px, 0)",c[h]=0,c[f]=0,c.willChange="transform";else{var g="bottom"===h?-1:1,v="right"===f?-1:1;c[h]=m*g,c[f]=p*v,c.willChange=h+", "+f}var _={"x-placement":t.placement};return t.attributes=X({},_,t.attributes),t.styles=X({},c,t.styles),t.arrowStyles=X({},t.offsets.arrow,t.arrowStyles),t},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(t){var e,n;return bt(t.instance.popper,t.styles),e=t.instance.popper,n=t.attributes,Object.keys(n).forEach(function(t){!1!==n[t]?e.setAttribute(t,n[t]):e.removeAttribute(t)}),t.arrowElement&&Object.keys(t.arrowStyles).length&&bt(t.arrowElement,t.arrowStyles),t},onLoad:function(t,e,n,i,o){var r=ot(o,e,t,n.positionFixed),s=it(n.placement,r,e,t,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return e.setAttribute("x-placement",s),bt(e,{position:n.positionFixed?"fixed":"absolute"}),n},gpuAcceleration:void 0}}},At=function(){function t(e,n){var i=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};V(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=N(this.update.bind(this)),this.options=X({},t.Defaults,o),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(X({},t.Defaults.modifiers,o.modifiers)).forEach(function(e){i.options.modifiers[e]=X({},t.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(t){return X({name:t},i.options.modifiers[t])}).sort(function(t,e){return t.order-e.order}),this.modifiers.forEach(function(t){t.enabled&&O(t.onLoad)&&t.onLoad(i.reference,i.popper,i.options,t,i.state)}),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return Y(t,[{key:"update",value:function(){return ut.call(this)}},{key:"destroy",value:function(){return dt.call(this)}},{key:"enableEventListeners",value:function(){return gt.call(this)}},{key:"disableEventListeners",value:function(){return vt.call(this)}}]),t}();At.Utils=("undefined"!=typeof window?window:global).PopperUtils,At.placements=Et,At.Defaults=Ot;var It="dropdown",xt=e.fn[It],jt=new RegExp("38|40|27"),Lt={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic",popperConfig:null},Pt={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"},Ft=function(){function t(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}var n=t.prototype;return n.toggle=function(){if(!this._element.disabled&&!e(this._element).hasClass("disabled")){var n=e(this._menu).hasClass("show");t._clearMenus(),n||this.show(!0)}},n.show=function(n){if(void 0===n&&(n=!1),!(this._element.disabled||e(this._element).hasClass("disabled")||e(this._menu).hasClass("show"))){var i={relatedTarget:this._element},o=e.Event("show.bs.dropdown",i),r=t._getParentFromElement(this._element);if(e(r).trigger(o),!o.isDefaultPrevented()){if(!this._inNavbar&&n){if("undefined"==typeof At)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org/)");var s=this._element;"parent"===this._config.reference?s=r:l.isElement(this._config.reference)&&(s=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(s=this._config.reference[0])),"scrollParent"!==this._config.boundary&&e(r).addClass("position-static"),this._popper=new At(s,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&0===e(r).closest(".navbar-nav").length&&e(document.body).children().on("mouseover",null,e.noop),this._element.focus(),this._element.setAttribute("aria-expanded",!0),e(this._menu).toggleClass("show"),e(r).toggleClass("show").trigger(e.Event("shown.bs.dropdown",i))}}},n.hide=function(){if(!this._element.disabled&&!e(this._element).hasClass("disabled")&&e(this._menu).hasClass("show")){var n={relatedTarget:this._element},i=e.Event("hide.bs.dropdown",n),o=t._getParentFromElement(this._element);e(o).trigger(i),i.isDefaultPrevented()||(this._popper&&this._popper.destroy(),e(this._menu).toggleClass("show"),e(o).toggleClass("show").trigger(e.Event("hidden.bs.dropdown",n)))}}
1,n.dispose=function(){e.removeData(this._element,"bs.dropdown"),e(this._element).off(".bs.dropdown"),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},n.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},n._addEventListeners=function(){var t=this;e(this._element).on("click.bs.dropdown",function(e){e.preventDefault(),e.stopPropagation(),t.toggle()})},n._getConfig=function(t){return t=s(s(s({},this.constructor.Default),e(this._element).data()),t),l.typeCheckConfig(It,t,this.constructor.DefaultType),t},n._getMenuElement=function(){if(!this._menu){var e=t._getParentFromElement(this._element);e&&(this._menu=e.querySelector(".dropdown-menu"))}return this._menu},n._getPlacement=function(){var t=e(this._element.parentNode),n="bottom-start";return t.hasClass("dropup")?n=e(this._menu).hasClass("dropdown-menu-right")?"top-end":"top-start":t.hasClass("dropright")?n="right-start":t.hasClass("dropleft")?n="left-start":e(this._menu).hasClass("dropdown-menu-right")&&(n="bottom-end"),n},n._detectNavbar=function(){return e(this._element).closest(".navbar").length>0},n._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=s(s({},e.offsets),t._config.offset(e.offsets,t._element)||{}),e}:e.offset=this._config.offset,e},n._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),s(s({},t),this._config.popperConfig)},t._jQueryInterface=function(n){return this.each(function(){var i=e(this).data("bs.dropdown");if(i||(i=new t(this,"object"==typeof n?n:null),e(this).data("bs.dropdown",i)),"string"==typeof n){if("undefined"==typeof i[n])throw new TypeError('No method named "'+n+'"');i[n]()}})},t._clearMenus=function(n){if(!n||3!==n.which&&("keyup"!==n.type||9===n.which))for(var i=[].slice.call(document.querySelectorAll('[data-toggle="dropdown"]')),o=0,r=i.length;o<r;o++){var s=t._getParentFromElement(i[o]),a=e(i[o]).data("bs.dropdown"),l={relatedTarget:i[o]};if(n&&"click"===n.type&&(l.clickEvent=n),a){var c=a._menu;if(e(s).hasClass("show")&&!(n&&("click"===n.type&&/input|textarea/i.test(n.target.tagName)||"keyup"===n.type&&9===n.which)&&e.contains(s,n.target))){var u=e.Event("hide.bs.dropdown",l);e(s).trigger(u),u.isDefaultPrevented()||("ontouchstart"in document.documentElement&&e(document.body).children().off("mouseover",null,e.noop),i[o].setAttribute("aria-expanded","false"),a._popper&&a._popper.destroy(),e(c).removeClass("show"),e(s).removeClass("show").trigger(e.Event("hidden.bs.dropdown",l)))}}}},t._getParentFromElement=function(t){var e,n=l.getSelectorFromElement(t);return n&&(e=document.querySelector(n)),e||t.parentNode},t._dataApiKeydownHandler=function(n){if(!(/input|textarea/i.test(n.target.tagName)?32===n.which||27!==n.which&&(40!==n.which&&38!==n.which||e(n.target).closest(".dropdown-menu").length):!jt.test(n.which))&&!this.disabled&&!e(this).hasClass("disabled")){var i=t._getParentFromElement(this),o=e(i).hasClass("show");if(o||27!==n.which){if(n.preventDefault(),n.stopPropagation(),!o||o&&(27===n.which||32===n.which))return 27===n.which&&e(i.querySelector('[data-toggle="dropdown"]')).trigger("focus"),void e(this).trigger("click");var r=[].slice.call(i.querySelectorAll(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)")).filter(function(t){return e(t).is(":visible")});if(0!==r.length){var s=r.indexOf(n.target);38===n.which&&s>0&&s--,40===n.which&&s<r.length-1&&s++,s<0&&(s=0),r[s].focus()}}}},i(t,null,[{key:"VERSION",get:function(){return"4.5.0"}},{key:"Default",get:function(){return Lt}},{key:"DefaultType",get:function(){return Pt}}]),t}();e(document).on("keydown.bs.dropdown.data-api",'[data-toggle="dropdown"]',Ft._dataApiKeydownHandler).on("keydown.bs.dropdown.data-api",".dropdown-menu",Ft._dataApiKeydownHandler).on("click.bs.dropdown.data-api keyup.bs.dropdown.data-api",Ft._clearMenus).on("click.bs.dropdown.data-api",'[data-toggle="dropdown"]',function(t){t.preventDefault(),t.stopPropagation(),Ft._jQueryInterface.call(e(this),"toggle")}).on("click.bs.dropdown.data-api",".dropdown form",function(t){t.stopPropagation()}),e.fn[It]=Ft._jQueryInterface,e.fn[It].Constructor=Ft,e.fn[It].noConflict=function(){return e.fn[It]=xt,Ft._jQueryInterface};var Rt=e.fn.modal,Mt={backdrop:!0,keyboard:!0,focus:!0,show:!0},Bt={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},qt=function(){function t(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=t.querySelector(".modal-dialog"),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0}var n=t.prototype;return n.toggle=function(t){return this._isShown?this.hide():this.show(t)},n.show=function(t){var n=this;if(!this._isShown&&!this._isTransitioning){e(this._element).hasClass("fade")&&(this._isTransitioning=!0);var i=e.Event("show.bs.modal",{relatedTarget:t});e(this._element).trigger(i),this._isShown||i.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),e(this._element).on("click.dismiss.bs.modal",'[data-dismiss="modal"]',function(t){return n.hide(t)}),e(this._dialog).on("mousedown.dismiss.bs.modal",function(){e(n._element).one("mouseup.dismiss.bs.modal",function(t){e(t.target).is(n._element)&&(n._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return n._showElement(t)}))}},n.hide=function(t){var n=this;if(t&&t.preventDefault(),this._isShown&&!this._isTransitioning){var i=e.Event("hide.bs.modal");if(e(this._element).trigger(i),this._isShown&&!i.isDefaultPrevented()){this._isShown=!1;var o=e(this._element).hasClass("fade");if(o&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),e(document).off("focusin.bs.modal"),e(this._element).removeClass("show"),e(this._element).off("
1click.dismiss.bs.modal"),e(this._dialog).off("mousedown.dismiss.bs.modal"),o){var r=l.getTransitionDurationFromElement(this._element);e(this._element).one(l.TRANSITION_END,function(t){return n._hideModal(t)}).emulateTransitionEnd(r)}else this._hideModal()}}},n.dispose=function(){[window,this._element,this._dialog].forEach(function(t){return e(t).off(".bs.modal")}),e(document).off("focusin.bs.modal"),e.removeData(this._element,"bs.modal"),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},n.handleUpdate=function(){this._adjustDialog()},n._getConfig=function(t){return t=s(s({},Mt),t),l.typeCheckConfig("modal",t,Bt),t},n._triggerBackdropTransition=function(){var t=this;if("static"===this._config.backdrop){var n=e.Event("hidePrevented.bs.modal");if(e(this._element).trigger(n),n.defaultPrevented)return;this._element.classList.add("modal-static");var i=l.getTransitionDurationFromElement(this._element);e(this._element).one(l.TRANSITION_END,function(){t._element.classList.remove("modal-static")}).emulateTransitionEnd(i),this._element.focus()}else this.hide()},n._showElement=function(t){var n=this,i=e(this._element).hasClass("fade"),o=this._dialog?this._dialog.querySelector(".modal-body"):null;this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),e(this._dialog).hasClass("modal-dialog-scrollable")&&o?o.scrollTop=0:this._element.scrollTop=0,i&&l.reflow(this._element),e(this._element).addClass("show"),this._config.focus&&this._enforceFocus();var r=e.Event("shown.bs.modal",{relatedTarget:t}),s=function(){n._config.focus&&n._element.focus(),n._isTransitioning=!1,e(n._element).trigger(r)};if(i){var a=l.getTransitionDurationFromElement(this._dialog);e(this._dialog).one(l.TRANSITION_END,s).emulateTransitionEnd(a)}else s()},n._enforceFocus=function(){var t=this;e(document).off("focusin.bs.modal").on("focusin.bs.modal",function(n){document!==n.target&&t._element!==n.target&&0===e(t._element).has(n.target).length&&t._element.focus()})},n._setEscapeEvent=function(){var t=this;this._isShown?e(this._element).on("keydown.dismiss.bs.modal",function(e){t._config.keyboard&&27===e.which?(e.preventDefault(),t.hide()):t._config.keyboard||27!==e.which||t._triggerBackdropTransition()}):this._isShown||e(this._element).off("keydown.dismiss.bs.modal")},n._setResizeEvent=function(){var t=this;this._isShown?e(window).on("resize.bs.modal",function(e){return t.handleUpdate(e)}):e(window).off("resize.bs.modal")},n._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._isTransitioning=!1,this._showBackdrop(function(){e(document.body).removeClass("modal-open"),t._resetAdjustments(),t._resetScrollbar(),e(t._element).trigger("hidden.bs.modal")})},n._removeBackdrop=function(){this._backdrop&&(e(this._backdrop).remove(),this._backdrop=null)},n._showBackdrop=function(t){var n=this,i=e(this._element).hasClass("fade")?"fade":"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",i&&this._backdrop.classList.add(i),e(this._backdrop).appendTo(document.body),e(this._element).on("click.dismiss.bs.modal",function(t){n._ignoreBackdropClick?n._ignoreBackdropClick=!1:t.target===t.currentTarget&&n._triggerBackdropTransition()}),i&&l.reflow(this._backdrop),e(this._backdrop).addClass("show"),!t)return;if(!i)return void t();var o=l.getTransitionDurationFromElement(this._backdrop);e(this._backdrop).one(l.TRANSITION_END,t).emulateTransitionEnd(o)}else if(!this._isShown&&this._backdrop){e(this._backdrop).removeClass("show");var r=function(){n._removeBackdrop(),t&&t()};if(e(this._element).hasClass("fade")){var s=l.getTransitionDurationFromElement(this._backdrop);e(this._backdrop).one(l.TRANSITION_END,r).emulateTransitionEnd(s)}else r()}else t&&t()},n._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},n._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},n._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=Math.round(t.left+t.right)<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},n._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){var n=[].slice.call(document.querySelectorAll(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top")),i=[].slice.call(document.querySelectorAll(".sticky-top"));e(n).each(function(n,i){var o=i.style.paddingRight,r=e(i).css("padding-right");e(i).data("padding-right",o).css("padding-right",parseFloat(r)+t._scrollbarWidth+"px")}),e(i).each(function(n,i){var o=i.style.marginRight,r=e(i).css("margin-right");e(i).data("margin-right",o).css("margin-right",parseFloat(r)-t._scrollbarWidth+"px")});var o=document.body.style.paddingRight,r=e(document.body).css("padding-right");e(document.body).data("padding-right",o).css("padding-right",parseFloat(r)+this._scrollbarWidth+"px")}e(document.body).addClass("modal-open")},n._resetScrollbar=function(){var t=[].slice.call(document.querySelectorAll(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top"));e(t).each(function(t,n){var i=e(n).data("padding-right");e(n).removeData("padding-right"),n.style.paddingRight=i||""});var n=[].slice.call(document.querySelectorAll(".sticky-top"));e(n).each(function(t,n){var i=e(n).data("margin-right");"undefined"!=typeof i&&e(n).css("margin-right",i).removeData("margin-right")});
1var i=e(document.body).data("padding-right");e(document.body).removeData("padding-right"),document.body.style.paddingRight=i||""},n._getScrollbarWidth=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},t._jQueryInterface=function(n,i){return this.each(function(){var o=e(this).data("bs.modal"),r=s(s(s({},Mt),e(this).data()),"object"==typeof n&&n?n:{});if(o||(o=new t(this,r),e(this).data("bs.modal",o)),"string"==typeof n){if("undefined"==typeof o[n])throw new TypeError('No method named "'+n+'"');o[n](i)}else r.show&&o.show(i)})},i(t,null,[{key:"VERSION",get:function(){return"4.5.0"}},{key:"Default",get:function(){return Mt}}]),t}();e(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(t){var n,i=this,o=l.getSelectorFromElement(this);o&&(n=document.querySelector(o));var r=e(n).data("bs.modal")?"toggle":s(s({},e(n).data()),e(this).data());"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault();var a=e(n).one("show.bs.modal",function(t){t.isDefaultPrevented()||a.one("hidden.bs.modal",function(){e(i).is(":visible")&&i.focus()})});qt._jQueryInterface.call(e(n),r,this)}),e.fn.modal=qt._jQueryInterface,e.fn.modal.Constructor=qt,e.fn.modal.noConflict=function(){return e.fn.modal=Rt,qt._jQueryInterface};var Ht=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],Qt={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},Wt=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi,Ut=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i;function Vt(t,e,n){if(0===t.length)return t;if(n&&"function"==typeof n)return n(t);for(var i=(new window.DOMParser).parseFromString(t,"text/html"),o=Object.keys(e),r=[].slice.call(i.body.querySelectorAll("*")),s=function(t,n){var i=r[t],s=i.nodeName.toLowerCase();if(-1===o.indexOf(i.nodeName.toLowerCase()))return i.parentNode.removeChild(i),"continue";var a=[].slice.call(i.attributes),l=[].concat(e["*"]||[],e[s]||[]);a.forEach(function(t){(function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===Ht.indexOf(n)||Boolean(t.nodeValue.match(Wt)||t.nodeValue.match(Ut));for(var i=e.filter(function(t){return t instanceof RegExp}),o=0,r=i.length;o<r;o++)if(n.match(i[o]))return!0;return!1})(t,l)||i.removeAttribute(t.nodeName)})},a=0,l=r.length;a<l;a++)s(a);return i.body.innerHTML}var Yt="tooltip",zt=e.fn[Yt],Xt=new RegExp("(^|\\s)bs-tooltip\\S+","g"),Kt=["sanitize","whiteList","sanitizeFn"],Gt={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object",popperConfig:"(null|object)"},$t={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Jt={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:Qt,popperConfig:null},Zt={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},te=function(){function t(t,e){if("undefined"==typeof At)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var n=t.prototype;return n.enable=function(){this._isEnabled=!0},n.disable=function(){this._isEnabled=!1},n.toggleEnabled=function(){this._isEnabled=!this._isEnabled},n.toggle=function(t){if(this._isEnabled)if(t){var n=this.constructor.DATA_KEY,i=e(t.currentTarget).data(n);i||(i=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(n,i)),i._activeTrigger.click=!i._activeTrigger.click,i._isWithActiveTrigger()?i._enter(null,i):i._leave(null,i)}else{if(e(this.getTipElement()).hasClass("show"))return void this._leave(null,this);this._enter(null,this)}},n.dispose=function(){clearTimeout(this._timeout),e.removeData(this.element,this.constructor.DATA_KEY),e(this.element).off(this.constructor.EVENT_KEY),e(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&e(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},n.show=function(){var t=this;if("none"===e(this.element).css("display"))throw new Error("Please use show on visible elements");var n=e.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){e(this.element).trigger(n);var i=l.findShadowRoot(this.element),o=e.contains(null!==i?i:this.element.ownerDocument.documentElement,this.element);if(n.isDefaultPrevented()||!o)return;var r=this.getTipElement(),s=l.getUID(this.constructor.NAME);r.setAttribute("id",s),this.element.setAttribute("aria-describedby",s),this.setContent(),this.config.animation&&e(r).addClass("fade");var a="function"==typeof this.config.placement?this.config.placement.call(this,r,this.element):this.config.placement,c=this._getAttachment(a);this.addAttachmentClass(c);var u=this._getContainer();e(r).data(this.constructor.DATA_KEY,this),e.contains(this.element.ownerDocument.documentElement,this.tip)||e(r).appendTo(u),e(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new At(this.element,r,this._getPopperConfig(c)),e(r).addClass("show"),"ontouchstart"in document.documentElement&&e(document.body).children().on("mouseover",null,e.noop);var h=function(){t.config.animation&&t._fixTransition();var n=t._hoverState;t._hoverState=null,e(t.element).trigger(t.constructor.Event.SHOWN),"out"===n&&t._leave(null,t)};if(e(this.tip).hasClass("fade")){var f=l.getTransitionDurationFromElement(this.tip);e(this.tip).one(l.TRANSITION_END,h).emulateTransitionEnd(f)}else h()}},n.hide=function(t){var n=this,i=this.getTipElement(),o=e.Event(this.constructor.Event.HIDE),r=function(){"show"!==n._hoverState&&i.parentNode&&i.parentNode.removeChild(i),n._cleanTipClass(),n.element.removeAttribute("aria-describedby"),e(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),t&&t()};
1if(e(this.element).trigger(o),!o.isDefaultPrevented()){if(e(i).removeClass("show"),"ontouchstart"in document.documentElement&&e(document.body).children().off("mouseover",null,e.noop),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,e(this.tip).hasClass("fade")){var s=l.getTransitionDurationFromElement(i);e(i).one(l.TRANSITION_END,r).emulateTransitionEnd(s)}else r();this._hoverState=""}},n.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},n.isWithContent=function(){return Boolean(this.getTitle())},n.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-tooltip-"+t)},n.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},n.setContent=function(){var t=this.getTipElement();this.setElementContent(e(t.querySelectorAll(".tooltip-inner")),this.getTitle()),e(t).removeClass("fade show")},n.setElementContent=function(t,n){"object"!=typeof n||!n.nodeType&&!n.jquery?this.config.html?(this.config.sanitize&&(n=Vt(n,this.config.whiteList,this.config.sanitizeFn)),t.html(n)):t.text(n):this.config.html?e(n).parent().is(t)||t.empty().append(n):t.text(e(n).text())},n.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},n._getPopperConfig=function(t){var e=this;return s(s({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}}),this.config.popperConfig)},n._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=s(s({},e.offsets),t.config.offset(e.offsets,t.element)||{}),e}:e.offset=this.config.offset,e},n._getContainer=function(){return!1===this.config.container?document.body:l.isElement(this.config.container)?e(this.config.container):e(document).find(this.config.container)},n._getAttachment=function(t){return $t[t.toUpperCase()]},n._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach(function(n){if("click"===n)e(t.element).on(t.constructor.Event.CLICK,t.config.selector,function(e){return t.toggle(e)});else if("manual"!==n){var i="hover"===n?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,o="hover"===n?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;e(t.element).on(i,t.config.selector,function(e){return t._enter(e)}).on(o,t.config.selector,function(e){return t._leave(e)})}}),this._hideModalHandler=function(){t.element&&t.hide()},e(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=s(s({},this.config),{},{trigger:"manual",selector:""}):this._fixTitle()},n._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},n._enter=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e(n.getTipElement()).hasClass("show")||"show"===n._hoverState?n._hoverState="show":(clearTimeout(n._timeout),n._hoverState="show",n.config.delay&&n.config.delay.show?n._timeout=setTimeout(function(){"show"===n._hoverState&&n.show()},n.config.delay.show):n.show())},n._leave=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusout"===t.type?"focus":"hover"]=!1),n._isWithActiveTrigger()||(clearTimeout(n._timeout),n._hoverState="out",n.config.delay&&n.config.delay.hide?n._timeout=setTimeout(function(){"out"===n._hoverState&&n.hide()},n.config.delay.hide):n.hide())},n._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},n._getConfig=function(t){var n=e(this.element).data();
1return Object.keys(n).forEach(function(t){-1!==Kt.indexOf(t)&&delete n[t]}),"number"==typeof(t=s(s(s({},this.constructor.Default),n),"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),l.typeCheckConfig(Yt,t,this.constructor.DefaultType),t.sanitize&&(t.template=Vt(t.template,t.whiteList,t.sanitizeFn)),t},n._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},n._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(Xt);null!==n&&n.length&&t.removeClass(n.join(""))},n._handlePopperPlacementChange=function(t){this.tip=t.instance.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},n._fixTransition=function(){var t=this.getTipElement(),n=this.config.animation;null===t.getAttribute("x-placement")&&(e(t).removeClass("fade"),this.config.animation=!1,this.hide(),this.show(),this.config.animation=n)},t._jQueryInterface=function(n){return this.each(function(){var i=e(this).data("bs.tooltip"),o="object"==typeof n&&n;if((i||!/dispose|hide/.test(n))&&(i||(i=new t(this,o),e(this).data("bs.tooltip",i)),"string"==typeof n)){if("undefined"==typeof i[n])throw new TypeError('No method named "'+n+'"');i[n]()}})},i(t,null,[{key:"VERSION",get:function(){return"4.5.0"}},{key:"Default",get:function(){return Jt}},{key:"NAME",get:function(){return Yt}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return Zt}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Gt}}]),t}();e.fn[Yt]=te._jQueryInterface,e.fn[Yt].Constructor=te,e.fn[Yt].noConflict=function(){return e.fn[Yt]=zt,te._jQueryInterface};var ee="popover",ne=e.fn[ee],ie=new RegExp("(^|\\s)bs-popover\\S+","g"),oe=s(s({},te.Default),{},{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),re=s(s({},te.DefaultType),{},{content:"(string|element|function)"}),se={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},ae=function(t){var n,o;function r(){return t.apply(this,arguments)||this}o=t,(n=r).prototype=Object.create(o.prototype),n.prototype.constructor=n,n.__proto__=o;var s=r.prototype;return s.isWithContent=function(){return this.getTitle()||this._getContent()},s.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-popover-"+t)},s.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},s.setContent=function(){var t=e(this.getTipElement());this.setElementContent(t.find(".popover-header"),this.getTitle());var n=this._getContent();"function"==typeof n&&(n=n.call(this.element)),this.setElementContent(t.find(".popover-body"),n),t.removeClass("fade show")},s._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},s._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(ie);null!==n&&n.length>0&&t.removeClass(n.join(""))},r._jQueryInterface=function(t){return this.each(function(){var n=e(this).data("bs.popover"),i="object"==typeof t?t:null;if((n||!/dispose|hide/.test(t))&&(n||(n=new r(this,i),e(this).data("bs.popover",n)),"string"==typeof t)){if("undefined"==typeof n[t])throw new TypeError('No method named "'+t+'"');n[t]()}})},i(r,null,[{key:"VERSION",get:function(){return"4.5.0"}},{key:"Default",get:function(){return oe}},{key:"NAME",get:function(){return ee}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return se}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return re}}]),r}(te);
1e.fn[ee]=ae._jQueryInterface,e.fn[ee].Constructor=ae,e.fn[ee].noConflict=function(){return e.fn[ee]=ne,ae._jQueryInterface};var le="scrollspy",ce=e.fn[le],ue={offset:10,method:"auto",target:""},he={offset:"number",method:"string",target:"(string|element)"},fe=function(){function t(t,n){var i=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(n),this._selector=this._config.target+" .nav-link,"+this._config.target+" .list-group-item,"+this._config.target+" .dropdown-item",this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,e(this._scrollElement).on("scroll.bs.scrollspy",function(t){return i._process(t)}),this.refresh(),this._process()}var n=t.prototype;return n.refresh=function(){var t=this,n=this._scrollElement===this._scrollElement.window?"offset":"position",i="auto"===this._config.method?n:this._config.method,o="position"===i?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map(function(t){var n,r=l.getSelectorFromElement(t);if(r&&(n=document.querySelector(r)),n){var s=n.getBoundingClientRect();if(s.width||s.height)return[e(n)[i]().top+o,r]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(e){t._offsets.push(e[0]),t._targets.push(e[1])})},n.dispose=function(){e.removeData(this._element,"bs.scrollspy"),e(this._scrollElement).off(".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},n._getConfig=function(t){if("string"!=typeof(t=s(s({},ue),"object"==typeof t&&t?t:{})).target&&l.isElement(t.target)){var n=e(t.target).attr("id");n||(n=l.getUID(le),e(t.target).attr("id",n)),t.target="#"+n}return l.typeCheckConfig(le,t,he),t},n._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},n._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},n._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},n._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t<this._offsets[o+1])&&this._activate(this._targets[o])}}},n._activate=function(t){this._activeTarget=t,this._clear();var n=this._selector.split(",").map(function(e){return e+'[data-target="'+t+'"],'+e+'[href="'+t+'"]'}),i=e([].slice.call(document.querySelectorAll(n.join(","))));i.hasClass("dropdown-item")?(i.closest(".dropdown").find(".dropdown-toggle").addClass("active"),i.addClass("active")):(i.addClass("active"),i.parents(".nav, .list-group").prev(".nav-link, .list-group-item").addClass("active"),i.parents(".nav, .list-group").prev(".nav-item").children(".nav-link").addClass("active")),e(this._scrollElement).trigger("activate.bs.scrollspy",{relatedTarget:t})},n._clear=function(){[].slice.call(document.querySelectorAll(this._selector)).filter(function(t){return t.classList.contains("active")}).forEach(function(t){return t.classList.remove("active")})},t._jQueryInterface=function(n){return this.each(function(){var i=e(this).data("bs.scrollspy");if(i||(i=new t(this,"object"==typeof n&&n),e(this).data("bs.scrollspy",i)),"string"==typeof n){if("undefined"==typeof i[n])throw new TypeError('No method named "'+n+'"');i[n]()}})},i(t,null,[{key:"VERSION",get:function(){return"4.5.0"}},{key:"Default",get:function(){return ue}}]),t}();e(window).on("load.bs.scrollspy.data-api",function(){for(var t=[].slice.call(document.querySelectorAll('[data-spy="scroll"]')),n=t.length;n--;){var i=e(t[n]);fe._jQueryInterface.call(i,i.data())}}),e.fn[le]=fe._jQueryInterface,e.fn[le].Constructor=fe,e.fn[le].noConflict=function(){return e.fn[le]=ce,fe._jQueryInterface};var de=e.fn.tab,pe=function(){function t(t){this._element=t}var n=t.prototype;return n.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&e(this._element).hasClass("active")||e(this._element).hasClass("disabled"))){var n,i,o=e(this._element).closest(".
1nav, .list-group")[0],r=l.getSelectorFromElement(this._element);if(o){var s="UL"===o.nodeName||"OL"===o.nodeName?"> li > .active":".active";i=(i=e.makeArray(e(o).find(s)))[i.length-1]}var a=e.Event("hide.bs.tab",{relatedTarget:this._element}),c=e.Event("show.bs.tab",{relatedTarget:i});if(i&&e(i).trigger(a),e(this._element).trigger(c),!c.isDefaultPrevented()&&!a.isDefaultPrevented()){r&&(n=document.querySelector(r)),this._activate(this._element,o);var u=function(){var n=e.Event("hidden.bs.tab",{relatedTarget:t._element}),o=e.Event("shown.bs.tab",{relatedTarget:i});e(i).trigger(n),e(t._element).trigger(o)};n?this._activate(n,n.parentNode,u):u()}}},n.dispose=function(){e.removeData(this._element,"bs.tab"),this._element=null},n._activate=function(t,n,i){var o=this,r=(!n||"UL"!==n.nodeName&&"OL"!==n.nodeName?e(n).children(".active"):e(n).find("> li > .active"))[0],s=i&&r&&e(r).hasClass("fade"),a=function(){return o._transitionComplete(t,r,i)};if(r&&s){var c=l.getTransitionDurationFromElement(r);e(r).removeClass("show").one(l.TRANSITION_END,a).emulateTransitionEnd(c)}else a()},n._transitionComplete=function(t,n,i){if(n){e(n).removeClass("active");var o=e(n.parentNode).find("> .dropdown-menu .active")[0];o&&e(o).removeClass("active"),"tab"===n.getAttribute("role")&&n.setAttribute("aria-selected",!1)}if(e(t).addClass("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),l.reflow(t),t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&e(t.parentNode).hasClass("dropdown-menu")){var r=e(t).closest(".dropdown")[0];if(r){var s=[].slice.call(r.querySelectorAll(".dropdown-toggle"));e(s).addClass("active")}t.setAttribute("aria-expanded",!0)}i&&i()},t._jQueryInterface=function(n){return this.each(function(){var i=e(this),o=i.data("bs.tab");if(o||(o=new t(this),i.data("bs.tab",o)),"string"==typeof n){if("undefined"==typeof o[n])throw new TypeError('No method named "'+n+'"');o[n]()}})},i(t,null,[{key:"VERSION",get:function(){return"4.5.0"}}]),t}();e(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',function(t){t.preventDefault(),pe._jQueryInterface.call(e(this),"show")}),e.fn.tab=pe._jQueryInterface,e.fn.tab.Constructor=pe,e.fn.tab.noConflict=function(){return e.fn.tab=de,pe._jQueryInterface};var me=e.fn.toast,ge={animation:"boolean",autohide:"boolean",delay:"number"},ve={animation:!0,autohide:!0,delay:500},_e=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}var n=t.prototype;return n.show=function(){var t=this,n=e.Event("show.bs.toast");if(e(this._element).trigger(n),!n.isDefaultPrevented()){this._config.animation&&this._element.classList.add("fade");var i=function(){t._element.classList.remove("showing"),t._element.classList.add("show"),e(t._element).trigger("shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout(function(){t.hide()},t._config.delay))};if(this._element.classList.remove("hide"),l.reflow(this._element),this._element.classList.add("showing"),this._config.animation){var o=l.getTransitionDurationFromElement(this._element);e(this._element).one(l.TRANSITION_END,i).emulateTransitionEnd(o)}else i()}},n.hide=function(){if(this._element.classList.contains("show")){var t=e.Event("hide.bs.toast");e(this._element).trigger(t),t.isDefaultPrevented()||this._close()}},n.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains("show")&&this._element.classList.remove("show"),e(this._element).off("click.dismiss.bs.toast"),e.removeData(this._element,"bs.toast"),this._element=null,this._config=null},n._getConfig=function(t){return t=s(s(s({},ve),e(this._element).data()),"object"==typeof t&&t?t:{}),l.typeCheckConfig("toast",t,this.constructor.DefaultType),t},n._setListeners=function(){var t=this;e(this._element).on("click.dismiss.bs.toast",'[data-dismiss="toast"]',function(){return t.hide()})},n._close=function(){var t=this,n=function(){t._element.classList.add("hide"),e(t._element).trigger("hidden.bs.toast")};if(this._element.classList.remove("show"),this._config.animation){var i=l.getTransitionDurationFromElement(this._element);e(this._element).one(l.TRANSITION_END,n).emulateTransitionEnd(i)}else n()},t._jQueryInterface=function(n){return this.each(function(){var i=e(this),o=i.data("bs.toast");if(o||(o=new t(this,"object"==typeof n&&n),i.data("bs.toast",o)),"string"==typeof n){if("undefined"==typeof o[n])throw new TypeError('No method n
1amed "'+n+'"');o[n](this)}})},i(t,null,[{key:"VERSION",get:function(){return"4.5.0"}},{key:"DefaultType",get:function(){return ge}},{key:"Default",get:function(){return ve}}]),t}();e.fn.toast=_e._jQueryInterface,e.fn.toast.Constructor=_e,e.fn.toast.noConflict=function(){return e.fn.toast=me,_e._jQueryInterface},t.Alert=h,t.Button=d,t.Carousel=y,t.Collapse=S,t.Dropdown=Ft,t.Modal=qt,t.Popover=ae,t.Scrollspy=fe,t.Tab=pe,t.Toast=_e,t.Tooltip=te,t.Util=l,Object.defineProperty(t,"__esModule",{value:!0})});!function(t){var r,n,e;!function(){var t={},o={};r=function(r,n,e){t[r]={deps:n,callback:e}},e=n=function(r){if(e._eak_seen=t,o[r])return o[r];if(o[r]={},!t[r])throw new Error("Could not find module "+r);for(var i,u=t[r],s=u.deps,a=u.callback,c=[],f=0,l=s.length;f<l;f++)"exports"===s[f]?c.push(i={}):c.push(n(function(t){if("."!==t.charAt(0))return t;for(var n=t.split("/"),e=r.split("/").slice(0,-1),o=0,i=n.length;o<i;o++){var u=n[o];if(".."===u)e.pop();else{if("."===u)continue;e.push(u)}}return e.join("/")}(s[f])));var p=a.apply(this,c);return o[r]=i||p}}(),r("rsvp/all",["./promise","exports"],function(t,r){"use strict";var n=t.default;r.default=function(t,r){return n.all(t,r)}}),r("rsvp/all_settled",["./promise","./utils","exports"],function(t,r,n){"use strict";function e(t){return{state:"fulfilled",value:t}}var o=t.default,i=r.isArray,u=r.isNonThenable;n.default=function(t,r){return new o(function(r,n){function s(t){return function(r){c(t,e(r))}}function a(t){return function(r){c(t,function(t){return{state:"rejected",reason:t}}(r))}}function c(t,n){p[t]=n,0==--l&&r(p)}if(!i(t))throw new TypeError("You must pass an array to allSettled.");var f,l=t.length;if(0!==l)for(var p=new Array(l),v=0;v<t.length;v++)f=t[v],u(f)?c(v,e(f)):o.cast(f).then(s(v),a(v));else r([])},r)}}),r("rsvp/asap",["exports"],function(t){"use strict";function r(){for(var t=0;t<i.length;t++){var r=i[t];(0,r[0])(r[1])}i=[]}t.default=function(t,r){1===i.push([t,r])&&n()};var n,e="undefined"!=typeof window?window:{},o=e.MutationObserver||e.WebKitMutationObserver,i=[];n="undefined"!=typeof process&&"[object process]"==={}.toString.call(process)?function(){process.nextTick(r)}:o?function(){var t=0,n=new o(r),e=document.createTextNode("");return n.observe(e,{characterData:!0}),function(){e.data=t=++t%2}}():function(){setTimeout(r,1)}}),r("rsvp/config",["./events","exports"],function(t,r){"use strict";var n={instrument:!1};t.default.mixin(n),r.config=n,r.configure=function(t,r){if("onerror"!==t)return 2!==arguments.length?n[t]:void(n[t]=r);n.on("error",r)}}),r("rsvp/defer",["./promise","exports"],function(t,r){"use strict";var n=t.default;r.default=function(t){var r={};return r.promise=new n(function(t,n){r.resolve=t,r.reject=n},t),r}}),r("rsvp/events",["exports"],function(t){"use strict";var r=function(t,r){for(var n=0,e=t.length;n<e;n++)if(t[n]===r)return n;return-1},n=function(t){var r=t._promiseCallbacks;return r||(r=t._promiseCallbacks={}),r};t.default={mixin:function(t){return t.on=this.on,t.off=this.off,t.trigger=this.trigger,t._promiseCallbacks=void 0,t},on:function(t,e){var o,i=n(this);(o=i[t])||(o=i[t]=[]),-1===r(o,e)&&o.push(e)},off:function(t,e){var o,i,u=n(this);e?(o=u[t],-1!==(i=r(o,e))&&o.splice(i,1)):u[t]=[]},trigger:function(t,r){var e;if(e=n(this)[t])for(var o=0;o<e.length;o++)(0,e[o])(r)}}}),r("rsvp/filter",["./all","./map","./utils","exports"],function(t,r,n,e){"use strict";var o=t.default,i=r.default,u=n.isFunction,s=n.isArray;e.default=function(t,r,n){if(!s(t))throw new TypeError("You must pass an array to filter.");if(!u(r))throw new TypeError("You must pass a function to filter's second argument.");return o(t,n).then(function(e){return i(t,r,n).then(function(t){var r,n=e.length,o=[];for(r=0;r<n;r++)t[r]&&o.push(e[r]);return o}
1)})}}),r("rsvp/hash",["./promise","./utils","exports"],function(t,r,n){"use strict";var e=t.default,o=r.isNonThenable,i=r.keysOf;n.default=function(t,r){return new e(function(r,n){function u(t){return function(n){f[t]=n,0==--p&&r(f)}}function s(t){p=0,n(t)}var a,c,f={},l=i(t),p=l.length;if(0!==p)for(var v=0;v<l.length;v++)c=l[v],a=t[c],o(a)?(f[c]=a,0==--p&&r(f)):e.cast(a).then(u(c),s);else r(f)})}}),r("rsvp/instrument",["./config","./utils","exports"],function(t,r,n){"use strict";var e=t.config,o=r.now;n.default=function(t,r,n){try{e.trigger(t,{guid:r._guidKey+r._id,eventName:t,detail:r._detail,childGuid:n&&r._guidKey+n._id,label:r._label,timeStamp:o(),stack:new Error(r._label).stack})}catch(t){setTimeout(function(){throw t},0)}}}),r("rsvp/map",["./promise","./all","./utils","exports"],function(t,r,n,e){"use strict";t.default;var o=r.default,i=n.isArray,u=n.isFunction;e.default=function(t,r,n){if(!i(t))throw new TypeError("You must pass an array to map.");if(!u(r))throw new TypeError("You must pass a function to map's second argument.");return o(t,n).then(function(t){var e,i=t.length,u=[];for(e=0;e<i;e++)u.push(r(t[e]));return o(u,n)})}}),r("rsvp/node",["./promise","exports"],function(t,r){"use strict";var n=t.default,e=Array.prototype.slice;r.default=function(t,r){return function(){var o=e.call(arguments),i=this||r;return new n(function(r,u){n.all(o).then(function(n){try{n.push(function(t,r){return function(n,o){n?r(n):arguments.length>2?t(e.call(arguments,1)):t(o)}}(r,u)),t.apply(i,n)}catch(t){u(t)}})})}}}),r("rsvp/promise",["./config","./events","./instrument","./utils","./promise/cast","./promise/all","./promise/race","./promise/resolve","./promise/reject","exports"],function(t,r,n,e,o,i,u,s,a,c){"use strict";function f(){}function l(t,r){if(!T(t))throw new TypeError("You must pass a resolver function as the first argument to the promise constructor");if(!(this instanceof l))throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object c
1onstructor cannot be called as a function.");this._id=F++,this._label=r,this._subscribers=[],g.instrument&&b("created",this),f!==t&&function(t,r){function n(t){w(r,t)}try{t(function(t){h(r,t)},n)}catch(t){n(t)}}(t,this)}function p(t,r){var n=t._subscribers,e=t._detail;g.instrument&&b(r===I?"fulfilled":"rejected",t);for(var o=0;o<n.length;o+=3)v(r,n[o],n[o+r],e);t._subscribers=null}function v(t,r,n,e){var o,i,u,s,a=T(n);if(a)try{o=n(e),u=!0}catch(t){s=!0,i=t}else o=e,u=!0;d(r,o)||(a&&u?h(r,o):s?w(r,i):t===I?h(r,o):t===M&&w(r,o))}function d(t,r){var n,e=null;try{if(t===r)throw new TypeError("A promises callback cannot return that same promise.");if(x(r)&&(e=r.then,T(e)))return e.call(r,function(e){if(n)return!0;n=!0,r!==e?h(t,e):m(t,e)},function(r){if(n)return!0;n=!0,w(t,r)},"derived from: "+(t._label||" unknown promise")),!0}catch(r){return!!n||(w(t,r),!0)}return!1}function h(t,r){t===r?m(t,r):d(t,r)||m(t,r)}function m(t,r){t._state===Y&&(t._state=P,t._detail=r,g.async(y,t))}function w(t,r){t._state===Y&&(t._state=P,t._detail=r,g.async(_,t))}function y(t){p(t,t._state=I)}function _(t){t._onerror&&t._onerror(t._detail),p(t,t._state=M)}var g=t.config,b=(r.default,n.default),x=e.objectOrFunction,T=e.isFunction,j=e.now,E=o.default,k=i.default,A=u.default,N=s.default,O=a.default,S="rsvp_"+j()+"-",F=0;c.default=l,l.cast=E,l.all=k,l.race=A,l.resolve=N,l.reject=O;var Y=void 0,P=0,I=1,M=2;l.prototype={constructor:l,_id:void 0,_guidKey:S,_label:void 0,_state:void 0,_detail:void 0,_subscribers:void 0,_onerror:function(t){g.trigger("error",t)},then:function(t,r,n){var e=this;this._onerror=null;var o=new this.constructor(f,n);if(this._state){var i=arguments;g.async(function(){v(e._state,o,i[e._state-1],e._detail)})}else!function(t,r,n,e){var o=t._subscribers,i=o.length;o[i]=r,o[i+I]=n,o[i+M]=e}(this,o,t,r);return g.instrument&&b("chained",e,o),o},catch:function(t,r){return this.then(null,t,r)},trap:function(t,r){return this.then(null,t,r)},finally:function(t,r){var n=this.constructor;return this.then(function(r){return n.cast(t()).then(function(){return r})},function(r){return n.cast(t()).then(function(){throw r})},r)}}}),r("rsvp/promise/all",["../utils","exports"],function(t,r){"use strict";var n=t.isArray,e=t.isNonThenable;r.default=function(t,r){var o=this;return new o(function(r,i){function u(t){return function(n){f[t]=n,0==--c&&r(f)}}function s(t){c=0,i(t)}if(!n(t))throw new TypeError("You must pass an array to all.");var a,c=t.length,f=new Array(c);if(0!==c)for(var l=0;l<t.length;l++)a=t[l],e(a)?(f[l]=a,0==--c&&r(f)):o.cast(a).then(u(l),s);else r(f)},r)}}),r("rsvp/promise/cast",["exports"],function(t){"use strict";t.default=function(t,r){return t&&"object"==typeof t&&t.constructor===this?t:new this(function(r){r(t)},r)}}),r("rsvp/promise/race",["../utils","exports"],function(t,r){"use strict";var n=t.isArray,e=(t.isFunction,t.isNonThenable);r.default=function(t,r){var o,i=this;return new i(function(r,u){function s(t){c&&(c=!1,r(t))}function a(t){c&&(c=!1,u(t))}if(!n(t))throw new TypeError("You must pass an array to race.");for(var c=!0,f=0;f<t.length;f++){if(o=t[f],e(o))return c=!1,void r(o);i.cast(o).then(s,a)}},r)}}),r("rsvp/promise/reject",["exports"],function(t){"use strict";t.default=function(t,r){return new this(function(r,n){n(t)},r)}}),r("rsvp/promise/resolve",["exports"],function(t){"use strict";t.default=function(t,r){return new this(function(r,n){r(t)},r)}}),r("rsvp/race",["./promise","exports"],function(t,r){"use strict";var n=t.default;r.default=function(t,r){return n.race(t,r)}}),r("rsvp/reject",["./promise","exports"],function(t,r){"use strict";var n=t.default;r.default=function(t,r){return n.reject(t,r)}}),r("rsvp/resolve",["./promise","exports"],function(t,r){"use strict";var n=t.default;r.default=function(t,r){return n.resolve(t,r)}}),r("rsvp/rethrow",["exports"],function(t){"use strict";t.default=function(t){throw setTimeout(function(){throw t}),t}}),r("rsvp/utils",["exports"],function(t){"use strict";function r(t){return"function"==typeof t||"object"==typeof t&&null!==t}t.objectOrFunction=r,t.isFunction=function(t){return"function"==typeof t},t.isNonThenable=function(t){return!r(t)},t.isArray=function(t){return"[object Array]"===Object.prototype.toString.call(t)};var n=Date.now||function(){return(new Date).getTime()};t.now=n;var e=Object.keys||function(t){var r=[];for(var n in t)r.push(n);return r};t.keysOf=e}),r("rsvp",["./rsvp/promise","./rsvp/events","./rsvp/node","./rsvp/all","./rsvp/all_settled","./rsvp/race","./rsvp/hash","./rsvp/rethrow","./rsvp/defer","./rsvp/config","./rsvp/map","./rsvp/resolve","./rsvp/reject","./rsvp/asap","./rsvp/filter","exports"],function(t,r,n,e,o,i,u,s,a,
1c,f,l,p,v,d,h){"use strict";function m(){k.on.apply(k,arguments)}var w=t.default,y=r.default,_=n.default,g=e.default,b=o.default,x=i.default,T=u.default,j=s.default,E=a.default,k=c.config,A=c.configure,N=f.default,O=l.default,S=p.default,F=v.default,Y=d.default;if(k.async=F,"undefined"!=typeof window&&"object"==typeof window.__PROMISE_INSTRUMENTATION__){var P=window.__PROMISE_INSTRUMENTATION__;A("instrument",!0);for(var I in P)P.hasOwnProperty(I)&&m(I,P[I])}h.Promise=w,h.EventTarget=y,h.all=g,h.allSettled=b,h.race=x,h.hash=T,h.rethrow=j,h.defer=E,h.denodeify=_,h.configure=A,h.on=m,h.off=function(){k.off.apply(k,arguments)},h.resolve=O,h.reject=S,h.async=function(t,r){k.async(t,r)},h.map=N,h.filter=Y}),t.RSVP=n("rsvp")}(window);define("rsvp",function(){});require(["utl/compatibility","utl/console","utl/common","utl/core","data/dataProvider","worker","layer","json!pages/mapping.json","json!blogs/mapping.json","bootstrap","rsvp"],function(compatibilityObj,console,common,coreObj,DataProviderClass,WorkerClass,LayerClass,aPageMappingObj,aBlogMappingObj){"use strict";var dataProviderObj,workerObj,layerObj,mappingObj;dataProviderObj=new DataProviderClass;workerObj=new WorkerClass(dataProviderObj);mappingObj=window._internalSource==="pages"?aPageMappingObj:aBlogMappingObj;layerObj=new LayerClass(mappingObj);workerObj.setLayer(layerObj);layerObj.generatePageEvent();workerObj.run()});define("require.js",function(){});define("utl/restService",["utl/core","utl/webService","json!cfg/siteConfig.json"],function(coreObj,WebServiceClass,aSiteConfigObj){"use strict";var RestServiceClass=function(aLocalUrl,aBaseUrl,aApiVersion,aFormat){var salt;this._localUrl=aLocalUrl;this._baseUrl=aBaseUrl;this._apiVersion=aApiVersion;this._format=aFormat;this._webServiceObj=new WebServiceClass;if(aSiteConfigObj.saltKey){salt=aSiteConfigObj.saltKey;this._saltedPassword=CryptoJS.SHA1(CryptoJS.SHA1(aSiteConfigObj.saltPassword).toString()+salt).toString()}};RestServiceClass.prototype._signUrl=function(aUrl,aUrlSeparator){var date,url,request,signOrg,sign;if(aSiteConfigObj.saltKey){date=new Date;url=aUrl+aUrlSeparator+"user="+aSiteConfigObj.saltUser+"×tamp="+date.getTime();request="GET:"+url;signOrg=CryptoJS.HmacSHA1(request,this._saltedPassword);sign=signOrg.toString();url=url+"&signature="+sign}else{url=aUrl}return url};RestServiceClass.prototype._buildUrl=function(aUseCrosser,aResource,aResourceId,aFieldTab,aFilterList,aSortList){var url,urlSeparator,paramSeparator,filter,filterString,sort,sortString;urlSeparator="?";if(aSiteConfigObj.webServiceMode==="spain"){url=this._baseUrl+"/"+aResource+(aResourceId?"/"+encodeURIComponent(aResourceId):"")}else if(aSiteConfigObj.webServiceMode==="switz"){if(aUseCrosser){url=this._localUrl+"/crosser.php?api="+aResource;urlSeparator="&"}else{url=this._localUrl+"/"+aResource;urlSeparator="&"}}else{if(aUseCrosser){url=this._localUrl+"/crosser.php?api="+aResource+(aResourceId?"/"+encodeURIComponent(aResourceId):"")+"."+this._format;urlSeparator="&"}else if(aSiteConfigObj.useTeqOff){url=this._baseUrl+"/"+this._apiVersion+"/"+aResource+(aResourceId?"/"+encodeURIComponent(aResourceId):"")+"."+this._format}else{url=this._baseUrl+"/"+aResource+(aResourceId?"/"+encodeURIComponent(aResourceId):"")}}paramSeparator="";filterString="";url+=urlSeparator+"token=web";urlSeparator="&";if(aFieldTab&&aFieldTab.length>0){url+=urlSeparator+"fields="+aFieldTab.join(",");urlSeparator="&"}if(aFilterList){for(filter in aFilterList){if(aFilterList.hasOwnProperty(filter)){if(aFilterList[filter]){filterString+=paramSeparator+filter+"="+encodeURIComponent(aFilterList[filter])}else{filterString+=paramSeparator+filter}paramSeparator="&"}}if(filterString){url+=urlSeparator+filterString;urlSeparator="&"}}paramSeparator="";sortString="";if(aSortList){sortString="sort=";for(sort in aSortList){if(aSortList.hasOwnProperty(sort)){if(aSortList[sort]>=0){sortString+=paramSeparator+sort}else{sortString+=paramSeparator+"-"+sort}paramSeparator=","}}if(sortString.length>5){url+=urlSeparator+sortString;urlSeparator="&"}}return this._signUrl(url,urlSeparator)};RestServiceClass.prototype.getWebServiceObj=function(){return this._webServiceObj};RestServiceClass.prototype.get=function(aCallback,aUseCrosser,aResource,aResourceId,aFieldTab,aFilterList,aSortList){var url;coreObj.queue([function(aNext){url=this._buildUrl(aUseCrosser,aResource,aResourceId,aFieldTab,aFilterList,aSortList);this._webServiceObj.sendRequest(aNext,url,"GET")},function(aNext,aResult){if(aResult.status===0){switch(aResult.data.httpStatus){case 200:coreObj.returnStatus(aCallback,0,{contentTab:aResult.data.httpData});break;case 206:coreObj.returnStatus(aCallback,0,{isPartial:true,contentTab:aResult.data.httpData});break;default:console.error("RestServiceClass: Unexpected status "+aResult.data.httpStatus+" on get request '"+url+"'");coreObj.returnStatus(aCallback,-1,aResult.data);break}}else{console.error("RestServiceClass: Error detected on request '"+url+"'");coreObj.returnStatus(aCallback,-1,aResult.data)}}],this)};RestServiceClass.prototype.add=function(aCallback,aUseCrosser,aResource,aData){var url;coreObj.queue([function(aNext){url=this._buildUrl(aUseCrosser,aResource,null);this._webServiceObj.sendRequest(aNext,url,"POST",aData)},function(aNext,aResult){if(aResult.status===0){switch(aResult.data.httpStatus){case 201:coreObj.returnStatus(aCallback,0,{contentTab:aResult.data.httpData});break;default:console.error("RestServiceClass: Unexpeceted status "+aResult.data.httpStatus+" on post request '"+url+"'");coreObj.returnStatus(aCallback,-1,aResult.data);break}}else{console.error("RestServiceClass: Error detected on request '"+url+"'");coreObj.returnStatus(aCallback,-1,aResult.data)}}],this)};return RestServiceClass});define("utl/waitingScreen",["jquery"],function($){"use strict";var WaitingScreenClass=function(){this._isSpinnerActivated=false};WaitingScreenClass.prototype.startWaiting=function(){if(!this._isSpinnerActivated){$(".waitingScreen").show();this._isSpinnerActivated=true}};WaitingScreenClass.prototype.stopWaiting=function(){if(this._isSpinnerActivated){$(".waitingScreen").hide();this._isSpinnerActivated=false}};return WaitingScreenClass});define("json!cfg/appConfig.json",function(){return{version:"0.0.10",date:"01/01/2017",logLevel:5,isAdminOptimized:false,server:{baseUrl:"http://localhost/teqOff/api",apiVersion:"v1"}}});define("json!thirdParty/old_pricing.json",function(){return{category:{airobs_01_month:{de:"AirObserver-Abonnement",fr:"Abonnement AirObserver",en:"AirObserver subscription",es:"AirObserver subscription",it:"Abbonamento AirObserver",zh:"订é
AirObserver"},airobs_01_test:{de:"Angebot Meine Luft testen",fr:"Offre Tester Mon Air",en:"Offer Test My Air",es:"Service Test My Air",it:"Prova la mia offerta d'aria",zh:"æµè¯æçç©ºæ°æ¥ä»·"},cyclo:{de:"ALANA",fr:"ALANA",en:"ALANA",es:"ALANA",it:"ALANA",zh:"ALANA"},e500_01_standard:{de:"E500",fr:"E500",en:"E500",es:"E500",it:"E500",zh:"E500"},e500_02_connected:{de:"E500 Verbunden",fr:"E500 Connecté",en:"E500 Connected",es:"E500 Connected",it:"E500 Online",zh:"E500 Connected"},e500_03_standard:{de:"Noctua",fr:"Noctua",en:"Noctua",es:"Noctua",it:"Noctua",zh:"Noctua"},e500_04_connected:{de:"Noctua Verbunden",fr:"Noctua Connecté",en:"Noctua Connected",es:"Noctua Connected",it:"Noctua Online",zh:"Noctua Connected"},e500_03_cap:{de:"Noctua Hut",fr:"Chapeau Noctua",en:"Noctua Cap",es:"
1Cappello Noctua",it:"Cappello Noctua",zh:"Noctua 帽"},pack_e500_02_connected_teqsensor_01_s1:{de:"Packung E500 & S1",fr:"Pack E500 & S1",en:"Pack E500 & S1",es:"Pack E500 & S1",it:"Confezione E500 e S1",zh:"E500ä¸S1å¥è£
"},pack_e500_04_connected_teqsensor_01_s1:{de:"Packung Noctua & S1",fr:"Pack Noctua & S1",en:"Pack Noctua & S1",es:"Pack Noctua & S1",it:"Confezione Noctua e S1",zh:"Noctuaä¸S1å¥è£
"},pack_duo_actif:{de:"Aktiv-Duo",fr:"Duo Actif",en:"Active Duo",es:"Duo Actif",it:"Duo Attivo",zh:"éè¡ååå¥è£
"},pack_duo_chambres:{de:"Schlafzimmer-Duo",fr:"Duo Chambres",en:"Bedroom Duo",es:"Duo Chambres",it:"Duo Camere",zh:"å§å®¤ååå¥è£
"},pack_duo_maison:{de:"Zuhause-Duo",fr:"Duo Maison",en:"Home Duo",es:"Duo Maison",it:"Duo Casa",zh:"å
¨å±ååå¥è£
"},pack_duo_plein_air:{de:"Outdoor-Duo",fr:"Duo Plein Air",en:"Outdoor Duo",es:"Duo Plein Air",it:"Duo Outdoor",zh:"大空é´ååå¥è£
"},pack_duo_boost:{de:"Boost-Duo",fr:"Duo Boost",en:"Boost Duo",es:"Duo Boost",it:"Duo Boost",zh:"强æååå¥è£
"},pack_teqair200_01_teqsensor_01_s1:{de:"T200 + S1",fr:"T200 + S1",en:"T200 + S1",es:"T200 + S1",it:"T200 + S1",zh:"T200 + S1"},pack_teqair450_01_teqsensor_01_s1:{de:"T450 + S1",fr:"T450 + S1",en:"T450 + S1",es:"T450 + S1",it:"T450 + S1",zh:"T450 + S1"},pack_e500_01_teqsensor_01_s1:{de:"E500 + S1",fr:"E500 + S1",en:"E500 + S1",es:"E500 + S1",it:"E500 + S1",zh:"E500 + S1"},other_01_cleaning_kit:{de:"Reinigungsset",fr:"Outil de nettoyage",en:"Cleaning kit",es:"Cleaning kit",it:"Kit di pulizia",zh:"æ¸
æ´å¥è£
"},teqair100_01_darkgrey_car:{de:"Nomad",fr:"Nomad",en:"Nomad",es:"Nomad",it:"Nomad",zh:"Nomad"},teqair100_01_darkgrey_indoor:{de:"Nomad Indoor",fr:"Nomad Indoor",en:"Nomad Indoor",es:"Nomad Indoor",it:"Nomad Indoor",zh:"Nomad Indoor"},teqair100_01_wooden_foot:{de:"NomadenfuÃ",fr:"Pied du Nomad",en:"Nomad's foot",es:"Pie del Nomad",it:"Piedi del Nomad",zh:"Nomadçè"},teqair200_01_black:{de:"TeqAir200",fr:"TeqAir200",en:"TeqAir200",es:"TeqAir200",it:"TeqAir200",zh:"TeqAir200"},teqair200_01_blue:{de:"TeqAir200",fr:"TeqAir200",en:"TeqAir200",es:"TeqAir200",it:"TeqAir200",zh:"TeqAir200"},teqair200_01_darkgrey:{de:"TeqAir200",fr:"TeqAir200",en:"TeqAir200",es:"TeqAir200",it:"TeqAir200",zh:"TeqAir200"},teqair200_01_lightgrey:{de:"TeqAir200",fr:"TeqAir200",en:"TeqAir200",es:"TeqAir200",it:"TeqAir200",zh:"TeqAir200"},teqair200_01_pinkclay:{de:"TeqAir200",fr:"TeqAir200",en:"TeqAir200",es:"TeqAir200",it:"TeqAir200",zh:"TeqAir200"},teqair200_01_teqair450_pack:{de:"Packung T200 & T450",fr:"Pack T200 & T450",en:"Pack T200 & T450",es:"Pack T200 & T450",it:"Confezione T200 e T450",zh:"T200ä¸T450å¥è£
"},lavie_pack_blue:{de:"TeqAir200",fr:"TeqAir200",en:"TeqAir200",es:"TeqAir200",it:"TeqAir200",zh:"TeqAir200"},lavie_pack_darkgrey:{de:"TeqAir200",fr:"TeqAir200",en:"TeqAir200",es:"TeqAir200",it:"TeqAir200",zh:"TeqAir200"},lavie_pack_lightgrey:{de:"TeqAir200",fr:"TeqAir200",en:"TeqAir200",es:"TeqAir200",it:"TeqAir200",zh:"TeqAir200"},lavie_pack_pinkclay:{de:"TeqAir200",fr:"TeqAir200",en:"TeqAir200",es:"TeqAir200",it:"TeqAir200",zh:"TeqAir200"},teqair450_01_black:{de:"TeqAir450",fr:"TeqAir450",en:"TeqAir450",es:"TeqAir450",it:"TeqAir450",zh:"TeqAir450"},teqair450_01_darkgrey_hang:{de:"TeqAir450 Pro",fr:"TeqAir450 Pro",en:"TeqAir450 Pro",es:"TeqAir450 Pro",it:"TeqAir450 Pro",zh:"TeqAir450 Pro"},teqair450_01_lightgrey:{de:"TeqAir450",fr:"TeqAir450",en:"TeqAir450",es:"TeqAir450",it:"TeqAir450",zh:"TeqAir450"},teqair450_01_lightgrey_hang:{de:"TeqAir450 Pro",fr:"TeqAir450 Pro",en:"TeqAir450 Pro",es:"TeqAir450 Pro",it:"TeqAir450 Pro",zh:"TeqAir450 Pro"},teqsensor_01_s1:{de:"TEQOYA S1",fr:"TEQOYA S1",en:"TEQOYA S1",es:"TEQOYA S1",it:"TEQOYA S1",zh:"TEQOYA S1"},tip4_01_black:{de:"Tip4",fr:"Tip4",en:"Tip4",es:"Tip4",it:"Tip4",zh:"Tip4"},tip9_01_black:{de:"Tip9",fr:"Tip9",en:"Tip9",es:"Tip9",it:"Tip9",zh:"Tip9"},tip9_01_blue:{de:"Tip9",fr:"Tip9",en:"Tip9",es:"Tip9",it:"Tip9",zh:"Tip9"},tip9_01_grey:{de:"Tip9",fr:"Tip9",en:"Tip9",es:"Tip9",it:"Tip9",zh:"Tip9"},tip9_01_orange:{de:"Tip9",fr:"Tip9",en:"Tip9",es:"Tip9",it:"Tip9",zh:"Tip9"},tip9_01_pink:{de:"Tip9",fr:"Tip9",en:"Tip9",es:"Tip9",it:"Tip9",zh:"Tip9"},tip9_01_red:{de:"Tip9",fr:"Tip9",en:"Tip9",es:"Tip9",it:"Tip9",zh:"Tip9"},tip24_01_black_plain_short:{de:"Tip24",fr:"Tip24",en:"Tip24",es:"Tip24",it:"Tip24",zh:"Tip24"},tip24_01_black_ceiling:{de:"Tip24 Pro",fr:"Tip24 Pro",en:"Tip24 Pro",es:"Tip24 Pro",it:"Tip24 Pro",zh:"Tip24 Pro"},sensor_01_laser_egg_2:{de:"Laser Egg 2",fr:"Laser Egg 2",en:"Laser Egg 2",es:"Laser Egg 2",it:"Laser Egg 2",zh:"Laser Egg 2"},sensor_02_laser_egg_co2:{de:"Laser Egg CO2",fr:"Laser Egg CO2",en:"Laser Egg CO2",es:"Laser Egg CO2",it:"Laser Egg CO2",zh:"Laser Egg CO2"}},reference:{airobs_01_month:{de:"AirObserver-Abonnement",fr:"Abonnement AirObserver",en:"AirObserver subscription",es:"AirObserver subscription",it:"Abbonamento AirObserver",zh:"订é
AirObserver"},airobs_01_test:{de:"Angebot Meine Luft testen",fr:"Offre Tester Mon Air",en:"Offer Test My Air",es:"Offer Test My Air",it:"Prova la mia offerta d'aria",zh:"æµè¯æçç©ºæ°æ¥ä»·"},cyclo:{de:"ALANA",fr:"ALANA",en:"ALANA",es:"ALANA",it:"ALANA",zh:"ALANA"},e500_01_standard:{de:"E500",fr:"E500",en:"E500",es:"E500",it:"E500",zh:"E500"},e500_02_connected:{de:"E500 Verbunden",fr:"E500 Connecté",en:"E500 Connected",es:"E500 Connected",it:"E500 Online",zh:"E500 Connected"},e500_03_standard:{de:"Noctua",fr:"Noctua",en:"Noctua",es:"Noctua",it:"Noctua",zh:"Noctua"},e500_04_connected:{de:"Noctua Verbunden",fr:"Noctua Connecté",en:"Noctua Connected",es:"Noctua Connected",it:"Noctua Online",zh:"Noctua Connected"},e500_03_cap:{de:"Noctua Hut",fr:"Chapeau Noctua",en:"Noctua Cap",es:"
1Cappello Noctua",it:"Cappello Noctua",zh:"Noctua 帽"},pack_e500_02_connected_teqsensor_01_s1:{de:"Packung E500 & S1",fr:"Pack E500 & S1",en:"Pack E500 & S1",es:"Pack E500 & S1",it:"Confezione E500 e S1",zh:"E500ä¸S1å¥è£
"},pack_e500_04_connected_teqsensor_01_s1:{de:"Packung Noctua & S1",fr:"Pack Noctua & S1",en:"Pack Noctua & S1",es:"Pack Noctua & S1",it:"Confezione Noctua e S1",zh:"Noctuaä¸S1å¥è£
"},pack_duo_actif:{de:"Aktiv-Duo",fr:"Duo Actif",en:"Active Duo",es:"Duo Actif",it:"Duo Attivo",zh:"éè¡ååå¥è£
"},pack_duo_chambres:{de:"Schlafzimmer-Duo",fr:"Duo Chambres",en:"Bedroom Duo",es:"Duo Chambres",it:"Duo Camere",zh:"å§å®¤ååå¥è£
"},pack_duo_maison:{de:"Zuhause-Duo",fr:"Duo Maison",en:"Home Duo",es:"Duo Maison",it:"Duo Casa",zh:"å
¨å±ååå¥è£
"},pack_duo_plein_air:{de:"Outdoor-Duo",fr:"Duo Plein Air",en:"Outdoor Duo",es:"Duo Plein Air",it:"Duo Outdoor",zh:"大空é´ååå¥è£
"},pack_duo_boost:{de:"Boost-Duo",fr:"Duo Boost",en:"Boost Duo",es:"Duo Boost",it:"Duo Boost",zh:"强æååå¥è£
"},pack_teqair200_01_teqsensor_01_s1:{de:"T200 + S1",fr:"T200 + S1",en:"T200 + S1",es:"T200 + S1",it:"T200 + S1",zh:"T200 + S1"},pack_teqair450_01_teqsensor_01_s1:{de:"T450 + S1",fr:"T450 + S1",en:"T450 + S1",es:"T450 + S1",it:"T450 + S1",zh:"T450 + S1"},pack_e500_01_teqsensor_01_s1:{de:"E500 + S1",fr:"E500 + S1",en:"E500 + S1",es:"E500 + S1",it:"E500 + S1",zh:"E500 + S1"},other_01_cleaning_kit:{de:"Reinigungsset",fr:"Outil de nettoyage",en:"Cleaning kit",es:"Cleaning kit",it:"Kit di pulizia",zh:"æ¸
æ´å¥è£
"},teqair100_01_darkgrey_car:{de:"TEQOYA Nomad",fr:"TEQOYA Nomad",en:"TEQOYA Nomad",es:"TEQOYA Nomad",it:"TEQOYA Nomad",zh:"TEQOYA Nomad"},teqair100_01_darkgrey_indoor:{de:"TEQOYA Nomad und y Innen Kit",fr:"TEQOYA Nomad & Kit table",en:"TEQOYA Nomad & Indoor Kit",es:"TEQOYA Nomad Kit de mesa",it:"TEQOYA Nomad e Kit da casa",zh:"TEQOYA Nomadéè¡å室å
å¥ä»¶"},teqair100_01_wooden_foot:{de:"Innen Kit",fr:"Kit table",en:"Indoor Kit",es:"Kit de mesa",it:"Kit da casa",zh:"室å
å¥ä»¶"},teqair200_01_black:{de:"TEQOYA T200 schwarz",fr:"TEQOYA T200 noir",en:"TEQOYA T200 dark",es:"TEQOYA T200 negro",it:"TEQOYA T200 nero",zh:"TEQOYA T200 é»è²"},teqair200_01_blue:{de:"TEQOYA T200 Blauer Ton",fr:"TEQOYA T200 argile bleue",en:"TEQOYA T200 blue clay",es:"TEQOYA T200 arcilla azul",it:"TEQOYA T200 argilla blu",zh:"TEQOYA T200 èç°è²"},teqair200_01_darkgrey:{de:"TEQOYA T200 Anthrazit",fr:"TEQOYA T200 anthracite",en:"TEQOYA T200 dark grey",es:"TEQOYA T200 antracita",it:"TEQOYA T200 antracite",zh:"TEQOYA T200 é»è²"},teqair200_01_lightgrey:{de:"TEQOYA T200 weiÃ",fr:"TEQOYA T200 blanc",en:"TEQOYA T200 white",es:"TEQOYA T200 blanco",it:"TEQOYA T200 bianco",zh:"TEQOYA T200 ç½è²"},teqair200_01_pinkclay:{de:"TEQOYA T200 Rosa Ton",fr:"TEQOYA T200 argile rose",en:"TEQOYA T200 pink clay",es:"TEQOYA T200 arcilla rosa",it:"TEQOYA T200 argilla rosa",zh:"TEQOYA T200 ç²çº¢è²çé»å"},teqair200_01_teqair450_pack:{de:"Packung T200 & T450",fr:"Pack T200 & T450",en:"Pack T200 & T450",es:"Pack T200 & T450",it:"Confezione T200 e T450",zh:"T200ä¸T450å¥è£
"},lavie_pack_blue:{de:"T200 x LA VIE Blauer Ton",fr:"T200 x LA VIE argile bleue",en:"T200 x LA VIE blue clay",es:"T200 x LA VIE arcilla azul",it:"T200 x LA VIE argilla blu",zh:"T200 x LA VIE èç°è²"},lavie_pack_darkgrey:{de:"T200 x LA VIE Anthrazit",fr:"T200 x LA VIE anthracite",en:"T200 x LA VIE dark grey",es:"T200 x LA VIE antracita",it:"T200 x LA VIE antracite",zh:"T200 x LA VIE é»è²"},lavie_pack_lightgrey:{de:"T200 x LA VIE weiÃ",fr:"T200 x LA VIE blanc",en:"T200 x LA VIE white",es:"T200 x LA VIE blanco",it:"T200 x LA VIE bianco",zh:"T200 x LA VIE ç½è²"},lavie_pack_pinkclay:{de:"T200 x LA VIE Rosa Ton",fr:"T200 x LA VIE argile rose",en:"T200 x LA VIE pink clay",es:"T200 x LA VIE arcilla rosa",it:"T200 x LA VIE argilla rosa",zh:"T200 x LA VIE ç²çº¢è²çé»å"},teqair450_01_black:{de:"TEQOYA T450 Anthrazit",fr:"TEQOYA T450 anthracite",en:"TEQOYA T450 dark grey",es:"TEQOYA T450 antracita",it:"TEQOYA T450 antracite",zh:"TEQOYA T450 é»è²"},teqair450_01_darkgrey_hang:{de:"TEQOYA T450 Deckenleuchte Anthrazit",fr:"TEQOYA T450 Plafonnier anthracite",en:"TEQOYA T450 Ceiling dark grey",es:"TEQOYA T450 Pro",it:"TEQOYA T450 Plafoniera antracite",zh:"TEQOYA T450 Ceiling é»è²"},teqair450_01_lightgrey:{de:"TEQOYA T450 WeiÃ",fr:"TEQOYA T450 blanc",en:"TEQOYA T450 white",es:"TEQOYA T450 blanco",it:"TEQOYA T450 bianco",zh:"TEQOYA T450 ç½è²"},teqair450_01_lightgrey_hang:{de:"TEQOYA T450 Deckenleuchte WeiÃ",fr:"TEQOYA T450 Plafonnier blanc",en:"TEQOYA T450 Ceiling white",es:"TEQOYA T450 Plafón blanco",it:"TEQOYA T450 Plafoniera bianco",zh:"TEQOYA T450 Ceiling ç½è²"},teqsensor_01_s1:{de:"TEQOYA S1",fr:"TEQOYA S1",en:"TEQOYA S1",es:"TEQOYA S1",it:"TEQOYA S1",zh:"TEQOYA S1"},tip4_01_black:{de:"Tip4 schwarz",fr:"Tip4 noir",en:"Tip4 black",es:"Tip4 negro",it:"Tip4 nero",zh:"Tip4 black"},tip9_01_black:{de:"Tip9 schwarz",fr:"Tip9 noir",en:"Tip9 black",es:"Tip9 negro",it:"Tip9 nero",zh:"Tip9 black"},tip9_01_blue:{de:"Tip9 blau",fr:"Tip9 bleu",en:"Tip9 blue",es:"Tip9 azul",it:"Tip9 blu",zh:"Tip9 blue"},tip9_01_grey:{de:"Tip9 grau",fr:"Tip9 gris",en:"Tip9 grey",es:"Tip9 gris",it:"Tip9 grigio",zh:"Tip9 grey"},tip9_01_orange:{de:"Tip9 orange",fr:"Tip9 orange",en:"Tip9 orange",es:"Tip9 naranja",it:"Tip9 arancione",zh:"Tip9 orange"},tip9_01_pink:{de:"Tip9 pink",fr:"Tip9 rose",en:"Tip9 pink",es:"Tip9 rosado",it:"Tip9 rosa",zh:"Tip9 pink"},tip9_01_red:{de:"Tip9 rot",fr:"Tip9 rouge",en:"Tip9 red",es:"Tip9 rojo",it:"Tip9 rosso",zh:"Tip9 red"},tip24_01_black_plain_short:{de:"Tip24 schwarz",fr:"Tip24 noir",en:"Tip24 black",es:"Tip24 negro",it:"Tip24 nero",zh:"Tip24 black"},tip24_01_black_ceiling:{de:"Tip24 Pro schwarz",fr:"Tip24 Pro noir",en:"Tip24 Pro black",es:"Tip24 Pro negro",it:"Tip24 Pro nero",zh:"Tip24 Pro black"},sensor_01_laser_egg_2:{de:"Laser Egg 2",fr:"Laser Egg 2",en:"Laser Egg 2",es:"Laser Egg 2",it:"Laser Egg 2",zh:"Laser Egg 2"},sensor_02_laser_egg_co2:{de:"Laser Egg CO2",fr:"Laser Egg CO2",en:"Laser Egg CO2",es:"Laser Egg CO2",it:"Laser Egg CO2",zh:"Laser Egg CO2"}},mapping:{airobs_01_month:"AirObs-01-month",airobs_01_test:"AirObs-01-test",alana:"Cyclo-01-alana-dual",cyclo:"Cyclo-01-white",e500_01_standard:"E500-01-standard",e500_02_connected:"E500-02-connected",e500_03_standard:"E500-03-standard",e500_04_connected:"E500-04-connected",e500_03_cap:"E500-03-cap",other_01_cleaning_kit:"OTHER-01-Cleaning-Kit",teqair100_01_darkgrey_car:"TeqAir100-01-darkgrey-car",teqair100_01_darkgrey_indoor:"TeqAir100-01-darkgrey-indoor",teqair100_01_wooden_foot:"TeqAir100-01-wooden-foot",teqair100_01_mokeup:"TeqAir100-01-mokeup",teqair200_01_black:"TeqAir200-01-black",teqair200_01_blue:"TeqAir200-01-bluegrey",teqair200_01_darkgrey:"TeqAir200-01-darkgrey",teqair200_01_lightgrey:"TeqAir200-01-lightgrey",teqair200_01_pinkclay:"TeqAir200-01-pinkclay",teqair200_01_beige:"TeqAir200-01-beige",teqair200_01_mokeup:"TeqAir200-01-mokeup",lavie_pack_blue:"lavie_pack_blue",lavie_pack_dar
1kgrey:"lavie_pack_darkgrey",lavie_pack_lightgrey:"lavie_pack_lightgrey",lavie_pack_pinkclay:"lavie_pack_pinkclay",teqair450_01_ceiling:"TeqAir450-01-ceiling",teqair450_01_black:"TeqAir450-01-darkgrey",teqair450_01_darkgrey_mix:"TeqAir450-01-darkgrey-mix",teqair450_01_darkgrey_hang:"TeqAir450-01-darkgrey-hang",teqair450_01_lightgrey:"TeqAir450-01-lightgrey",teqair450_01_lightgrey_mix:"TeqAir450-01-lightgrey-mix",teqair450_01_lightgrey_hang:"TeqAir450-01-lightgrey-hang",teqair450_01_mokeup:"TeqAir450-01-mokeup",teqsensor_01_s1:"TeqSensor-01-s1",tip4_01_black:"TIP4-01-black",tip4_01_mokeup:"TIP4-01-mokeup",tip9_01_black:"TIP9-01-black",tip9_01_blue:"TIP9-01-blue",tip9_01_fake_anycolor:"TIP9-01-fake-anycolor",tip9_01_green:"TIP9-01-green",tip9_01_grey:"TIP9-01-grey",tip9_01_orange:"TIP9-01-orange",tip9_01_pink:"TIP9-01-pink",tip9_01_red:"TIP9-01-red",tip24_01_black_plain_short:"TIP24-01-black-plain-short",tip24_01_black_coated_long:"TIP24-01-black-coated-long",tip24_01_black_coated_short:"TIP24-01-black-coated-short",tip24_01_black_ceiling:"TIP24-01-black-ceiling",sensor_01_laser_egg_2:"SENSOR-01-laser-egg-2",sensor_02_laser_egg_co2:"SENSOR-02-laser-egg-co2"},prefix:{airobs_01_month:"AirObs-01",airobs_01_test:"AirObs-01",cyclo:"Cyclo-01",e500_01_standard:"E500-01",e500_02_connected:"E500-02",e500_03_standard:"E500-03",e500_04_connected:"E500-04",e500_03_cap:"E500-03",other_01_cleaning_kit:"OTHER-01",teqair100_01_darkgrey_car:"TeqAir100-01",teqair100_01_darkgrey_indoor:"TeqAir100-01",teqair100_01_wooden_foot:"TeqAir100-01",teqair200_01_black:"TeqAir200-01",teqair200_01_blue:"TeqAir200-01",teqair200_01_darkgrey:"TeqAir200-01",teqair200_01_lightgrey:"TeqAir200-01",teqair200_01_pinkclay:"TeqAir200-01",lavie_pack_blue:"TeqAir200-01",lavie_pack_darkgrey:"TeqAir200-01",lavie_pack_lightgrey:"TeqAir200-01",lavie_pack_pinkclay:"TeqAir200-01",teqair450_01_black:"TeqAir450-01",teqair450_01_darkgrey_hang:"TeqAir450-01",teqair450_01_lightgrey:"TeqAir450-01",teqair450_01_lightgrey_hang:"TeqAir450-01",teqsensor_01_s1:"TeqSensor-01",tip4_01_black:"TIP4-01",tip9_01_black:"TIP9-01",tip9_01_blue:"TIP9-01",tip9_01_grey:"TIP9-01",tip9_01_orange:"TIP9-01",tip9_01_pink:"TIP9-01",tip9_01_red:"TIP9-01",tip24_01_black_plain_short:"TIP24-01",tip24_01_black_ceiling:"TIP24-01-PRO",sensor_01_laser_egg_2:"SENSOR-01",sensor_02_laser_egg_co2:"SENSOR-02"},pack:{comment:"Packs are cart products in their own right: priced, shipped and displayed as a single line. contentTab is the bill of materials, used only when the order is built (shop.js _buildPayment) and to derive the pack price under a coupon.",pack_e500_02_connected_teqsensor_01_s1:{contentTab:[{productType:"e500_02_connected",number:1},{productType:"teqsensor_01_s1",number:1}]},pack_e500_04_connected_teqsensor_01_s1:{contentTab:[{productType:"e500_04_connected",number:1},{productType:"teqsensor_01_s1",number:1}]},pack_duo_actif:{comment:"Nomad + T200",contentTab:[{choiceTab:["teqair100_01_darkgrey_car"],number:1},{choiceTab:["teqair200_01_blue","teqair200_01_lightgrey","teqair200_01_darkgrey","teqair200_01_pinkclay"],number:1}],discount:{fr:69,cee:69,row:49,china:99,tai:130,can:69}},pack_duo_chambres:{comment:"T200 + T200",contentTab:[{choiceTab:["teqair200_01_blue","teqair200_01_lightgrey","teqair200_01_darkgrey","teqair200_01_pinkclay"],number:1},{choiceTab:["teqair200_01_blue","teqair200_01_lightgrey","teqair200_01_darkgrey","teqair200_01_pinkclay"],number:1}],discount:{fr:99,cee:99,row:79,china:139,tai:190,can:99}},pack_duo_maison:{comment:"T200 + T450",contentTab:[{choiceTab:["teqair200_01_blue","teqair200_01_lightgrey","teqair200_01_darkgrey","teqair200_01_pinkclay"],number:1},{choiceTab:["teqair450_01_black","teqair450_01_lightgrey"],number:1}],discount:{fr:129,cee:129,row:109,china:179,tai:260,can:129}},pack_duo_plein_air:{comment:"T450 + T450",contentTab:[{choiceTab:["teqair450_01_lightgrey","teqair450_01_black"],number:1},{choiceTab:["teqair450_01_black","teqair450_01_lightgrey"],number:1}],discount:{fr:169,cee:169,row:139,china:239,tai:350,can:169}},pack_duo_boost:{comment:"E500 + T200",contentTab:[{choiceTab:["e500_01_standard","e500_02_connected","e500_03_standard","e500_04_connected"],number:1},{choiceTab:["teqair200_01_blue","teqair200_01_lightgrey","teqair200_01_darkgrey","teqair200_01_pinkclay"],number:1}],discount:{fr:149,cee:149,row:119,china:199,tai:300,can:149}},pack_teqair200_01_teqsensor_01_s1:{comment:"T200 + S1",contentTab:[{choiceTab:["teqair200_01_blue","teqair200_01_lightgrey","teqair200_01_darkgrey","teqair200_01_pinkclay"],number:1},{productType:"teqsensor_01_s1",number:1}],discount:99},pack_teqair450_01_teqsensor_01_s1:{comment:"T450 + S1",contentTab:[{choiceTab:["teqair450_01_black","teqair450_01_lightgrey"],number:1},{productType:"teqsensor_01_s1",number:1}],discount:99},pack_e500_01_teqsensor_01_s1:{comment:"E500 + S1",contentTab:[{choiceTab:["e500_01_standard","e500_02_connected","e500_03_standard","e500_04_connected"],number:1},{productType:"teqsensor_01_s1",number:1}],discount:99}},taxTab:{be:21,bg:20,cz:21,dk:25,de:19,ee:20,gr:24,es:21,fr:20,hr:25,ie:23,it:22,cy:19,lv:21,lt:21,lu:17,hu:27,mc:20,mt:18,nl:21,at:20,pl:23,pt:23,ro:19,si:22,sk:20,fi:25.5,se:25},shippingTab:[{countryTab:["fr"],comment:"French country (VAT) with shipping rate 0",area:"fr",hasTax:true,airobs_01_month:0,airobs_01_test:0,cyclo:0,e500_01_standard:0,e500_02_connected:0,e500_03_standard:0,e500_04_connected:0,pack_e500_02_connected_teqsensor_01_s1:0,pack_e500_04_connected_teqsensor_01_s1:0,e500_03_cap:0,other_01_cleaning_kit:0,teqair100_01_mokeup:0,teqair100_01_darkgrey_car:0,teqair100_01_darkgrey_indoor:0,teqair100_01_wooden_foot:0,teqair200_01_beige:0,teqair200_01_black:0,teqair200_01_blue:0,teqair200_01_darkgrey:0,teqair200_01_lightgrey:0,teqair200_01_pinkclay:0,teqair200_01_mokeup:0,lavie_pack_blue:0,lavie_pack_dar
1kgrey:0,lavie_pack_lightgrey:0,lavie_pack_pinkclay:0,teqair450_01_ceiling:0,teqair450_01_black:0,teqair450_01_darkgrey_mix:0,teqair450_01_darkgrey_hang:0,teqair450_01_lightgrey:0,teqair450_01_lightgrey_mix:0,teqair450_01_lightgrey_hang:0,teqair450_01_mokeup:0,teqsensor_01_s1:0,tip4_01_black:0,tip4_01_mokeup:0,tip9_01_black:0,tip9_01_blue:0,tip9_01_fake_anycolor:0,tip9_01_green:0,tip9_01_grey:0,tip9_01_orange:0,tip9_01_pink:0,tip9_01_red:0,tip24_01_black_plain_short:0,tip24_01_black_coated_long:0,tip24_01_black_coated_short:0,tip24_01_black_ceiling:0,sensor_01_laser_egg_2:0,sensor_02_laser_egg_co2:0},{countryTab:["lu","de","be","mc","nl"],comment:"CEE countries (VAT) with shipping rate 1",area:"cee",hasTax:true,airobs_01_month:0,airobs_01_test:0,cyclo:14.8,e500_01_standard:14.8,e500_02_connected:14.8,e500_03_standard:14.8,e500_04_connected:14.8,pack_e500_02_connected_teqsensor_01_s1:27,pack_e500_04_connected_teqsensor_01_s1:27,e500_03_cap:11.4,other_01_cleaning_kit:2,teqair100_01_mokeup:11.4,teqair100_01_darkgrey_car:11.4,teqair100_01_darkgrey_indoor:11.4,teqair100_01_wooden_foot:11.4,teqair200_01_beige:11.4,teqair200_01_black:11.4,teqair200_01_blue:11.4,teqair200_01_darkgrey:11.4,teqair200_01_lightgrey:11.4,teqair200_01_pinkclay:11.4,teqair200_01_mokeup:11.4,lavie_pack_blue:12.2,lavie_pack_darkgrey:12.2,lavie_pack_lightgrey:12.2,lavie_pack_pinkclay:12.2,teqair450_01_ceiling:12.2,teqair450_01_black:12.2,teqair450_01_darkgrey_mix:12.2,teqair450_01_darkgrey_hang:12.2,teqair450_01_lightgrey:12.2,teqair450_01_lightgrey_mix:12.2,teqair450_01_lightgrey_hang:12.2,teqair450_01_mokeup:12.2,teqsensor_01_s1:12.2,tip4_01_black:0,tip4_01_mokeup:0,tip9_01_black:5.3,tip9_01_blue:5.3,tip9_01_fake_anycolor:0,tip9_01_green:5.3,tip9_01_grey:5.3,tip9_01_orange:5.3,tip9_01_pink:5.3,tip9_01_red:5.3,tip24_01_black_plain_short:6.3,tip24_01_black_coated_long:6.3,tip24_01_black_coated_short:6.3,tip24_01_black_ceiling:6.3,sensor_01_laser_egg_2:5.3,sensor_02_laser_egg_co2:5.3},{countryTab:["mt","at","ee","sk","es","cz","lt","lv","it"],comment:"CEE countries (VAT) with shipping rate 2",area:"cee",hasTax:true,airobs_01_month:0,airobs_01_test:0,cyclo:18.1,e500_01_standard:18.1,e500_02_connected:18.1,e500_03_standard:18.1,e500_04_connected:18.1,pack_e500_02_connected_teqsensor_01_s1:31.8,pack_e500_04_connected_teqsensor_01_s1:31.8,e500_03_cap:13.7,other_01_cleaning_kit:2,teqair100_01_mokeup:13.7,teqair100_01_darkgrey_car:13.7,teqair100_01_darkgrey_indoor:13.7,teqair100_01_wooden_foot:13.7,teqair200_01_beige:13.7,teqair200_01_black:13.7,teqair200_01_blue:13.7,teqair200_01_darkgrey:13.7,teqair200_01_lightgrey:13.7,teqair200_01_pinkclay:13.7,teqair200_01_mokeup:13.7,lavie_pack_blue:15.3,lavie_pack_darkgrey:15.3,lavie_pack_lightgrey:15.3,lavie_pack_pinkclay:15.3,teqair450_01_ceiling:15.3,teqair450_01_black:15.3,teqair450_01_darkgrey_mix:15.3,teqair450_01_darkgrey_hang:15.3,teqair450_01_lightgrey:15.3,teqair450_01_lightgrey_mix:15.3,teqair450_01_lightgrey_hang:15.3,teqair450_01_mokeup:15.3,teqsensor_01_s1:13.7,tip4_01_black:0,tip4_01_mokeup:0,tip9_01_black:10.6,tip9_01_blue:10.6,tip9_01_fake_anycolor:0,tip9_01_green:10.6,tip9_01_grey:10.6,tip9_01_orange:10.6,tip9_01_pink:10.6,tip9_01_red:10.6,tip24_01_black_plain_short:13.9,tip24_01_black_coated_long:13.9,tip24_01_black_coated_short:13.9,tip24_01_black_ceiling:13.9,sensor_01_laser_egg_2:10.6,sensor_02_laser_egg_co2:10.6},{countryTab:["cy","ro","bg","si","ie","pt","pl"],comment:"CEE countries (VAT) with shipping rate 3",area:"cee",hasTax:true,airobs_01_month:0,airobs_01_test:0,cyclo:21.8,e500_01_standard:21.8,e500_02_connected:21.8,e500_03_standard:21.8,e500_04_connected:21.8,pack_e500_02_connected_teqsensor_01_s1:36.7,pack_e500_04_connected_teqsensor_01_s1:36.7,e500_03_cap:14.9,other_01_cleaning_kit:2,teqair100_01_mokeup:14.9,teqair100_01_darkgrey_car:14.9,teqair100_01_darkgrey_indoor:14.9,teqair100_01_wooden_foot:14.9,teqair200_01_beige:14.9,teqair200_01_black:14.9,teqair200_01_blue:14.9,teqair200_01_darkgrey:14.9,teqair200_01_lightgrey:14.9,teqair200_01_pinkclay:14.9,teqair200_01_mokeup:14.9,lavie_pack_blue:16.6,lavie_pack_dar
1kgrey:16.6,lavie_pack_lightgrey:16.6,lavie_pack_pinkclay:16.6,teqair450_01_ceiling:16.6,teqair450_01_black:16.6,teqair450_01_darkgrey_mix:16.6,teqair450_01_darkgrey_hang:16.6,teqair450_01_lightgrey:16.6,teqair450_01_lightgrey_mix:16.6,teqair450_01_lightgrey_hang:16.6,teqair450_01_mokeup:16.6,teqsensor_01_s1:14.9,tip4_01_black:0,tip4_01_mokeup:0,tip9_01_black:15.2,tip9_01_blue:15.2,tip9_01_fake_anycolor:0,tip9_01_green:15.2,tip9_01_grey:15.2,tip9_01_orange:15.2,tip9_01_pink:15.2,tip9_01_red:15.2,tip24_01_black_plain_short:20.1,tip24_01_black_coated_long:20.1,tip24_01_black_coated_short:20.1,tip24_01_black_ceiling:20.1,sensor_01_laser_egg_2:15.2,sensor_02_laser_egg_co2:15.2},{countryTab:["gr","dk","se","fi","hu","hr"],comment:"CEE countries (VAT) with shipping rate 4",area:"cee",hasTax:true,airobs_01_month:0,airobs_01_test:0,cyclo:28,e500_01_standard:28,e500_02_connected:28,e500_03_standard:28,e500_04_connected:28,pack_e500_02_connected_teqsensor_01_s1:45.2,pack_e500_04_connected_teqsensor_01_s1:45.2,e500_03_cap:17.2,other_01_cleaning_kit:2,teqair100_01_mokeup:17.2,teqair100_01_darkgrey_car:17.2,teqair100_01_darkgrey_indoor:17.2,teqair100_01_wooden_foot:17.2,teqair200_01_beige:17.2,teqair200_01_black:17.2,teqair200_01_blue:17.2,teqair200_01_darkgrey:17.2,teqair200_01_lightgrey:17.2,teqair200_01_pinkclay:17.2,teqair200_01_mokeup:17.2,lavie_pack_blue:18.9,lavie_pack_darkgrey:18.9,lavie_pack_lightgrey:18.9,lavie_pack_pinkclay:18.9,teqair450_01_ceiling:18.9,teqair450_01_black:18.9,teqair450_01_darkgrey_mix:18.9,teqair450_01_darkgrey_hang:18.9,teqair450_01_lightgrey:18.9,teqair450_01_lightgrey_mix:18.9,teqair450_01_lightgrey_hang:18.9,teqair450_01_mokeup:18.9,teqsensor_01_s1:17.2,tip4_01_black:0,tip4_01_mokeup:0,tip9_01_black:28,tip9_01_blue:28,tip9_01_fake_anycolor:0,tip9_01_green:28,tip9_01_grey:28,tip9_01_orange:28,tip9_01_pink:28,tip9_01_red:28,tip24_01_black_plain_short:38.6,tip24_01_black_coated_long:38.6,tip24_01_black_coated_short:38.6,tip24_01_black_ceiling:38.6,sensor_01_laser_egg_2:28,sensor_02_laser_egg_co2:28},{countryTab:["dz","gb","is","ma","no","tn","tr","eg"],comment:"ROW countries (no VAT) with shipping rate 1",area:"row",hasTax:false,airobs_01_month:0,airobs_01_test:0,cyclo:28,e500_01_standard:28,e500_02_connected:28,e500_03_standard:28,e500_04_connected:28,pack_e500_02_connected_teqsensor_01_s1:45.2,pack_e500_04_connected_teqsensor_01_s1:45.2,e500_03_cap:17.2,other_01_cleaning_kit:5,teqair100_01_mokeup:17.2,teqair100_01_darkgrey_car:17.2,teqair100_01_darkgrey_indoor:17.2,teqair100_01_wooden_foot:17.2,teqair200_01_beige:17.2,teqair200_01_black:17.2,teqair200_01_blue:17.2,teqair200_01_darkgrey:17.2,teqair200_01_lightgrey:17.2,teqair200_01_pinkclay:17.2,teqair200_01_mokeup:17.2,lavie_pack_blue:18.9,lavie_pack_darkgrey:18.9,lavie_pack_lightgrey:18.9,lavie_pack_pinkclay:18.9,teqair450_01_ceiling:18.9,teqair450_01_black:18.9,teqair450_01_darkgrey_mix:18.9,teqair450_01_darkgrey_hang:18.9,teqair450_01_lightgrey:18.9,teqair450_01_lightgrey_mix:18.9,teqair450_01_lightgrey_hang:18.9,teqair450_01_mokeup:18.9,teqsensor_01_s1:17.2,tip4_01_black:0,tip4_01_mokeup:0,tip9_01_black:5.4,tip9_01_blue:5.4,tip9_01_fake_anycolor:0,tip9_01_green:5.4,tip9_01_grey:5.4,tip9_01_orange:5.4,tip9_01_pink:5.4,tip9_01_red:5.4,tip24_01_black_plain_short:7.8,tip24_01_black_coated_long:7.8,tip24_01_black_coated_short:7.8,tip24_01_black_ceiling:7.8,sensor_01_laser_egg_2:5.4,sensor_02_laser_egg_co2:5.4},{countryTab:["au","hk","il","in","jp","ru","sg","th","us","vn"],comment:"ROW countries (no VAT) with shipping rate 2",area:"row",hasTax:false,airobs_01_month:0,airobs_01_test:0,cyclo:64.9,e500_01_standard:64.9,e500_02_connected:64.9,e500_03_standard:64.9,e500_04_connected:64.9,pack_e500_02_connected_teqsensor_01_s1:95.4,pack_e500_04_connected_teqsensor_01_s1:95.4,e500_03_cap:30.5,other_01_cleaning_kit:5,teqair100_01_mokeup:30.5,teqair100_01_darkgrey_car:30.5,teqair100_01_darkgrey_indoor:30.5,teqair100_01_wooden_foot:30.5,teqair200_01_beige:30.5,teqair200_01_black:30.5,teqair200_01_blue:30.5,teqair200_01_darkgrey:30.5,teqair200_01_lightgrey:30.5,teqair200_01_pinkclay:30.5,teqair200_01_mokeup:30.5,lavie_pack_blue:41.8,lavie_pack_dar
1kgrey:41.8,lavie_pack_lightgrey:41.8,lavie_pack_pinkclay:41.8,teqair450_01_ceiling:41.8,teqair450_01_black:41.8,teqair450_01_darkgrey_mix:41.8,teqair450_01_darkgrey_hang:41.8,teqair450_01_lightgrey:41.8,teqair450_01_lightgrey_mix:41.8,teqair450_01_lightgrey_hang:41.8,teqair450_01_mokeup:41.8,teqsensor_01_s1:30.5,tip4_01_black:0,tip4_01_mokeup:0,tip9_01_black:14.8,tip9_01_blue:14.8,tip9_01_fake_anycolor:0,tip9_01_green:14.8,tip9_01_grey:14.8,tip9_01_orange:14.8,tip9_01_pink:14.8,tip9_01_red:14.8,tip24_01_black_plain_short:25.1,tip24_01_black_coated_long:25.1,tip24_01_black_coated_short:25.1,tip24_01_black_ceiling:25.1,sensor_01_laser_egg_2:14.8,sensor_02_laser_egg_co2:14.8},{countryTab:["ar","br","ci","cl","cm","co","id","jo","kh","ky","kz","lb","mu","mx","my","nz","pa","pe","ph","sn","za","ae","bh","eg","kw","om","qa","sa"],comment:"ROW countries (no VAT) with shipping rate 3",area:"row",hasTax:false,airobs_01_month:0,airobs_01_test:0,cyclo:90.9,e500_01_standard:90.9,e500_02_connected:90.9,e500_03_standard:90.9,e500_04_connected:90.9,pack_e500_02_connected_teqsensor_01_s1:128.1,pack_e500_04_connected_teqsensor_01_s1:128.1,e500_03_cap:37.2,other_01_cleaning_kit:5,teqair100_01_mokeup:37.2,teqair100_01_darkgrey_car:37.2,teqair100_01_darkgrey_indoor:37.2,teqair100_01_wooden_foot:37.2,teqair200_01_beige:37.2,teqair200_01_black:37.2,teqair200_01_blue:37.2,teqair200_01_darkgrey:37.2,teqair200_01_lightgrey:37.2,teqair200_01_pinkclay:37.2,teqair200_01_mokeup:37.2,lavie_pack_blue:51,lavie_pack_darkgrey:51,lavie_pack_lightgrey:51,lavie_pack_pinkclay:51,teqair450_01_ceiling:51,teqair450_01_black:51,teqair450_01_darkgrey_mix:51,teqair450_01_darkgrey_hang:51,teqair450_01_lightgrey:51,teqair450_01_lightgrey_mix:51,teqair450_01_lightgrey_hang:51,teqair450_01_mokeup:51,teqsensor_01_s1:37.2,tip4_01_black:0,tip4_01_mokeup:0,tip9_01_black:20.5,tip9_01_blue:20.5,tip9_01_fake_anycolor:0,tip9_01_green:20.5,tip9_01_grey:20.5,tip9_01_orange:20.5,tip9_01_pink:20.5,tip9_01_red:20.5,tip24_01_black_plain_short:32.9,tip24_01_black_coated_long:32.9,tip24_01_black_coated_short:32.9,tip24_01_black_ceiling:32.9,sensor_01_laser_egg_2:20.5,sensor_02_laser_egg_co2:20.5},{countryTab:["gf","gp","mq","pm","re","yt"],comment:"DOM/TOM countries (no VAT) with shipping rate 1",area:"row",hasTax:false,airobs_01_month:0,airobs_01_test:0,cyclo:40.7,e500_01_standard:40.7,e500_02_connected:40.7,e500_03_standard:40.7,e500_04_connected:40.7,pack_e500_02_connected_teqsensor_01_s1:55,pack_e500_04_connected_teqsensor_01_s1:55,e500_03_cap:17.4,other_01_cleaning_kit:5,teqair100_01_mokeup:17.4,teqair100_01_darkgrey_car:17.4,teqair100_01_darkgrey_indoor:17.4,teqair100_01_wooden_foot:17.4,teqair200_01_beige:17.4,teqair200_01_black:17.4,teqair200_01_blue:17.4,teqair200_01_darkgrey:17.4,teqair200_01_lightgrey:17.4,teqair200_01_pinkclay:17.4,teqair200_01_mokeup:17.4,lavie_pack_blue:23.7,lavie_pack_darkgrey:23.7,lavie_pack_lightgrey:23.7,lavie_pack_pinkclay:23.7,teqair450_01_ceiling:23.7,teqair450_01_black:23.7,teqair450_01_darkgrey_mix:23.7,teqair450_01_darkgrey_hang:23.7,teqair450_01_lightgrey:23.7,teqair450_01_lightgrey_mix:23.7,teqair450_01_lightgrey_hang:23.7,teqair450_01_mokeup:17.4,teqsensor_01_s1:14.3,tip4_01_black:0,tip4_01_mokeup:0,tip9_01_black:4.3,tip9_01_blue:4.3,tip9_01_fake_anycolor:0,tip9_01_green:4.3,tip9_01_grey:4.3,tip9_01_orange:4.3,tip9_01_pink:4.3,tip9_01_red:4.3,tip24_01_black_plain_short:10.6,tip24_01_black_coated_long:10.6,tip24_01_black_coated_short:10.6,tip24_01_black_ceiling:10.6,sensor_01_laser_egg_2:4.3,sensor_02_laser_egg_co2:4.3},{countryTab:["nc","pf","wf"],comment:"DOM/TOM countries (no VAT) with shipping rate 2",area:"row",hasTax:false,airobs_01_month:0,airobs_01_test:0,cyclo:82.9,e500_01_standard:82.9,e500_02_connected:82.9,e500_03_standard:82.9,e500_04_connected:82.9,pack_e500_02_connected_teqsensor_01_s1:102.9,pack_e500_04_connected_teqsensor_01_s1:102.9,e500_03_cap:20,other_01_cleaning_kit:5,teqair100_01_mokeup:20,teqair100_01_darkgrey_car:20,teqair100_01_darkgrey_indoor:20,teqair100_01_wooden_foot:20,teqair200_01_beige:20,teqair200_01_black:20,teqair200_01_blue:20,teqair200_01_darkgrey:20,teqair200_01_lightgrey:20,teqair200_01_pinkclay:20,teqair200_01_mokeup:20,lav
1ie_pack_blue:37.5,lavie_pack_darkgrey:37.5,lavie_pack_lightgrey:37.5,lavie_pack_pinkclay:37.5,teqair450_01_ceiling:37.5,teqair450_01_black:37.5,teqair450_01_darkgrey_mix:37.5,teqair450_01_darkgrey_hang:37.5,teqair450_01_lightgrey:37.5,teqair450_01_lightgrey_mix:37.5,teqair450_01_lightgrey_hang:37.5,teqair450_01_mokeup:0,teqsensor_01_s1:20,tip4_01_black:0,tip4_01_mokeup:0,tip9_01_black:7.7,tip9_01_blue:7.7,tip9_01_fake_anycolor:0,tip9_01_green:7.7,tip9_01_grey:7.7,tip9_01_orange:7.7,tip9_01_pink:7.7,tip9_01_red:7.7,tip24_01_black_plain_short:22.9,tip24_01_black_coated_long:22.9,tip24_01_black_coated_short:22.9,tip24_01_black_ceiling:22.9,sensor_01_laser_egg_2:7.7,sensor_02_laser_egg_co2:7.7},{countryTab:["cn","kr"],comment:"Chinese countries (no VAT) managed by distributor",area:"china",hasTax:false,airobs_01_month:0,airobs_01_test:0,cyclo:63.3,e500_01_standard:63.3,e500_02_connected:63.3,e500_03_standard:63.3,e500_04_connected:63.3,pack_e500_02_connected_teqsensor_01_s1:93,pack_e500_04_connected_teqsensor_01_s1:93,e500_03_cap:29.7,other_01_cleaning_kit:5,teqair100_01_mokeup:29.7,teqair100_01_darkgrey_car:29.7,teqair100_01_darkgrey_indoor:29.7,teqair100_01_wooden_foot:29.7,teqair200_01_beige:29.7,teqair200_01_black:29.7,teqair200_01_blue:29.7,teqair200_01_darkgrey:29.7,teqair200_01_lightgrey:29.7,teqair200_01_pinkclay:29.7,teqair200_01_mokeup:29.7,lavie_pack_blue:40.8,lavie_pack_darkgrey:40.8,lavie_pack_lightgrey:40.8,lavie_pack_pinkclay:40.8,teqair450_01_ceiling:40.8,teqair450_01_black:40.8,teqair450_01_darkgrey_mix:40.8,teqair450_01_darkgrey_hang:40.8,teqair450_01_lightgrey:40.8,teqair450_01_lightgrey_mix:40.8,teqair450_01_lightgrey_hang:40.8,teqair450_01_mokeup:40.8,teqsensor_01_s1:29.7,tip4_01_black:0,tip4_01_mokeup:0,tip9_01_black:25.9,tip9_01_blue:25.9,tip9_01_fake_anycolor:0,tip9_01_green:25.9,tip9_01_grey:25.9,tip9_01_orange:25.9,tip9_01_pink:25.9,tip9_01_red:25.9,tip24_01_black_plain_short:35.5,tip24_01_black_coated_long:35.5,tip24_01_black_coated_short:35.5,tip24_01_black_ceiling:35.5,sensor_01_laser_egg_2:25.9,sensor_02_laser_egg_co2:25.9},{countryTab:["tw"],comment:"Taïwan countries (no VAT) managed by distributor",area:"tai",hasTax:false,airobs_01_month:0,airobs_01_test:0,cyclo:64.9,e500_01_standard:64.9,e500_02_connected:64.9,e500_03_standard:64.9,e500_04_connected:64.9,pack_e500_02_connected_teqsensor_01_s1:95.4,pack_e500_04_connected_teqsensor_01_s1:95.4,e500_03_cap:30.5,other_01_cleaning_kit:5,teqair100_01_mokeup:30.5,teqair100_01_darkgrey_car:30.5,teqair100_01_darkgrey_indoor:30.5,teqair100_01_wooden_foot:30.5,teqair200_01_beige:30.5,teqair200_01_black:30.5,teqair200_01_blue:30.5,teqair200_01_darkgrey:30.5,teqair200_01_lightgrey:30.5,teqair200_01_pinkclay:30.5,teqair200_01_mokeup:30.5,lavie_pack_blue:41.8,lavie_pack_darkgrey:41.8,lavie_pack_lightgrey:41.8,lavie_pack_pinkclay:41.8,teqair450_01_ceiling:41.8,teqair450_01_black:41.8,teqair450_01_darkgrey_mix:41.8,teqair450_01_darkgrey_hang:41.8,teqair450_01_lightgrey:41.8,teqair450_01_lightgrey_mix:41.8,teqair450_01_lightgrey_hang:41.8,teqair450_01_mokeup:41.8,teqsensor_01_s1:30.5,tip4_01_black:0,tip4_01_mokeup:0,tip9_01_black:25.9,tip9_01_blue:25.9,tip9_01_fake_anycolor:0,tip9_01_green:25.9,tip9_01_grey:25.9,tip9_01_orange:25.9,tip9_01_pink:25.9,tip9_01_red:25.9,tip24_01_black_plain_short:35.5,tip24_01_black_coated_long:35.5,tip24_01_black_coated_short:35.5,tip24_01_black_ceiling:35.5,sensor_01_laser_egg_2:25.9,sensor_02_laser_egg_co2:25.9},{countryTab:["ca"],comment:"Canada from ROW countries (no VAT) with shipping rate 2",area:"can",hasTax:false,airobs_01_month:0,airobs_01_test:0,cyclo:64.9,e500_01_standard:64.9,e500_02_connected:64.9,e500_03_standard:64.9,e500_04_connected:64.9,pack_e500_02_connected_teqsensor_01_s1:95.4,pack_e500_04_connected_teqsensor_01_s1:95.4,e500_03_cap:30.5,other_01_cleaning_kit:5,teqair100_01_mokeup:30.5,teqair100_01_darkgrey_car:30.5,teqair100_01_darkgrey_indoor:30.5,teqair100_01_wooden_foot:30.5,teqair200_01_beige:30.5,teqair200_01_black:30.5,teqair200_01_blue:30.5,teqair200_01_darkgrey:30.5,teqair200_01_lightgrey:30.5,teqair200_01_pinkclay:30.5,teqair200_01_mokeup:30.5,lavie_pack_blue:41.8,lavie_pack_dar
1kgrey:41.8,lavie_pack_lightgrey:41.8,lavie_pack_pinkclay:41.8,teqair450_01_ceiling:41.8,teqair450_01_black:41.8,teqair450_01_darkgrey_mix:41.8,teqair450_01_darkgrey_hang:41.8,teqair450_01_lightgrey:41.8,teqair450_01_lightgrey_mix:41.8,teqair450_01_lightgrey_hang:41.8,teqair450_01_mokeup:41.8,teqsensor_01_s1:30.5,tip4_01_black:0,tip4_01_mokeup:0,tip9_01_black:14.8,tip9_01_blue:14.8,tip9_01_fake_anycolor:0,tip9_01_green:14.8,tip9_01_grey:14.8,tip9_01_orange:14.8,tip9_01_pink:14.8,tip9_01_red:14.8,tip24_01_black_plain_short:25.1,tip24_01_black_coated_long:25.1,tip24_01_black_coated_short:25.1,tip24_01_black_ceiling:25.1,sensor_01_laser_egg_2:14.8,sensor_02_laser_egg_co2:14.8},{countryTab:["directaccess"],comment:"Specific entry dedicated to DirectAccess for shipping price in France",airobs_01_month:0,airobs_01_test:0,cyclo:9.1,e500_01_standard:9.1,e500_02_connected:9.1,e500_03_standard:9.1,e500_04_connected:9.1,pack_e500_02_connected_teqsensor_01_s1:17.24,pack_e500_04_connected_teqsensor_01_s1:17.24,e500_03_cap:2,other_01_cleaning_kit:2,teqair100_01_mokeup:0,teqair100_01_darkgrey_car:6.71,teqair100_01_darkgrey_indoor:6.71,teqair100_01_wooden_foot:6.71,teqair200_01_beige:8.14,teqair200_01_black:8.14,teqair200_01_blue:8.14,teqair200_01_darkgrey:8.14,teqair200_01_lightgrey:8.14,teqair200_01_pinkclay:8.14,teqair200_01_mokeup:0,lavie_pack_blue:9.13,lavie_pack_darkgrey:9.13,lavie_pack_lightgrey:9.13,lavie_pack_pinkclay:9.13,teqair450_01_ceiling:9.13,teqair450_01_black:9.13,teqair450_01_darkgrey_mix:9.13,teqair450_01_darkgrey_hang:9.13,teqair450_01_lightgrey:9.13,teqair450_01_lightgrey_mix:9.13,teqair450_01_lightgrey_hang:9.13,teqair450_01_mokeup:0,teqsensor_01_s1:8.14,tip4_01_black:0,tip4_01_mokeup:0,tip9_01_black:9.13,tip9_01_blue:9.13,tip9_01_fake_anycolor:0,tip9_01_green:9.13,tip9_01_grey:9.13,tip9_01_orange:9.13,tip9_01_pink:9.13,tip9_01_red:9.13,tip24_01_black_plain_short:14.52,tip24_01_black_coated_long:14.52,tip24_01_black_coated_short:14.52,tip24_01_black_ceiling:11.99,sensor_01_laser_egg_2:8.14,sensor_02_laser_egg_co2:8.14}],product:{fr:{reference:{comment:"Reference price used to detect promotion",startline:"",deadline:"",identifier:"Public",airobs_01_month:2,airobs_01_test:24,teqsensor_01_s1:159,cyclo:699,e500_01_standard:699,e500_02_connected:729,e500_03_standard:749,e500_04_connected:779,pack_e500_02_connected_teqsensor_01_s1:888,pack_e500_04_connected_teqsensor_01_s1:938,e500_03_cap:49,other_01_cleaning_kit:7.5,teqair100_01_darkgrey_car:199,teqair100_01_darkgrey_indoor:219,teqair100_01_wooden_foot:29,teqair200_01_black:399,teqair200_01_blue:399,teqair200_01_darkgrey:399,teqair200_01_lightgrey:399,teqair200_01_pinkclay:399,lavie_pack_blue:578,lavie_pack_darkgrey:578,lavie_pack_lightgrey:578,lavie_pack_pinkclay:578,teqair450_01_black:589,teqair450_01_darkgrey_hang:589,teqair450_01_lightgrey:589,teqair450_01_lightgrey_hang:589,tip4_01_black:0,tip9_01_black:428,tip9_01_blue:428,tip9_01_grey:428,tip9_01_orange:428,tip9_01_pink:428,tip9_01_red:428,tip24_01_black_plain_short:769,tip24_01_black_ceiling:799,sensor_01_laser_egg_2:149,sensor_02_laser_egg_co2:99},standard:{comment:"Official public price (no coupon)",startline:"",deadline:"",identifier:"Public",airobs_01_month:2,airobs_01_test:24,teqsensor_01_s1:159,cyclo:699,e500_01_standard:699,e500_02_connected:729,e500_03_standard:749,e500_04_connected:779,pack_e500_02_connected_teqsensor_01_s1:788,pack_e500_04_connected_teqsensor_01_s1:838,e500_03_cap:49,other_01_cleaning_kit:7.5,teqair100_01_darkgrey_car:199,teqair100_01_darkgrey_indoor:219,teqair100_01_wooden_foot:29,teqair200_01_black:399,teqair200_01_blue:399,teqair200_01_darkgrey:399,teqair200_01_lightgrey:399,teqair200_01_pinkclay:399,lavie_pack_blue:449,lavie_pack_darkgrey:449,lavie_pack_lightgrey:449,lavie_pack_pinkclay:449,teqair450_01_black:589,teqair450_01_darkgrey_hang:589,teqair450_01_lightgrey:589,teqair450_01_lightgrey_hang:589,tip4_01_black:0,tip9_01_black:428,tip9_01_blue:428,tip9_01_grey:428,tip9_01_orange:428,tip9_01_pink:428,tip9_01_red:428,tip24_01_black_plain_short:769,tip24_01_black_ceiling:799,sensor_01_laser_egg_2:149,sensor_02_laser_egg_co2:99}},cee:{reference:{comment:"Reference price used to detect promotion",startline:"",deadline:"",identifier:"Public",airobs_01_month:2,airobs_01_test:24,teqsensor_01_s1:159,cyclo:699,e500_01_standard:699,e500_02_connected:729,e500_03_standard:749,e500_04_connected:779,pack_e500_02_connected_teqsensor_01_s1:888,pack_e500_04_connected_teqsensor_01_s1:938,e500_03_cap:49,other_01_cleaning_kit:7.5,teqair100_01_darkgrey_car:199,teqair100_01_darkgrey_indoor:219,teqair100_01_wooden_foot:29,teqair200_01_black:399,teqair200_01_blue:399,teqair200_01_darkgrey:399,teqair200_01_lightgrey:399,teqair200_01_pinkclay:399,lavie_pack_blue:578,lavie_pack_dar
1kgrey:578,lavie_pack_lightgrey:578,lavie_pack_pinkclay:578,teqair450_01_black:589,teqair450_01_darkgrey_hang:589,teqair450_01_lightgrey:589,teqair450_01_lightgrey_hang:589,tip4_01_black:0,tip9_01_black:428,tip9_01_blue:428,tip9_01_grey:428,tip9_01_orange:428,tip9_01_pink:428,tip9_01_red:428,tip24_01_black_plain_short:769,tip24_01_black_ceiling:799,sensor_01_laser_egg_2:149,sensor_02_laser_egg_co2:99},standard:{comment:"Official public price (no coupon)",startline:"",deadline:"",identifier:"Public",airobs_01_month:2,airobs_01_test:24,teqsensor_01_s1:159,cyclo:699,e500_01_standard:699,e500_02_connected:729,e500_03_standard:749,e500_04_connected:779,pack_e500_02_connected_teqsensor_01_s1:788,pack_e500_04_connected_teqsensor_01_s1:838,e500_03_cap:49,other_01_cleaning_kit:7.5,teqair100_01_darkgrey_car:199,teqair100_01_darkgrey_indoor:219,teqair100_01_wooden_foot:29,teqair200_01_black:399,teqair200_01_blue:399,teqair200_01_darkgrey:399,teqair200_01_lightgrey:399,teqair200_01_pinkclay:399,lavie_pack_blue:449,lavie_pack_darkgrey:449,lavie_pack_lightgrey:449,lavie_pack_pinkclay:449,teqair450_01_black:589,teqair450_01_darkgrey_hang:589,teqair450_01_lightgrey:589,teqair450_01_lightgrey_hang:589,tip4_01_black:0,tip9_01_black:428,tip9_01_blue:428,tip9_01_grey:428,tip9_01_orange:428,tip9_01_pink:428,tip9_01_red:428,tip24_01_black_plain_short:769,tip24_01_black_ceiling:799,sensor_01_laser_egg_2:149,sensor_02_laser_egg_co2:99}},row:{reference:{comment:"Reference price used to detect promotion",startline:"",deadline:"",identifier:"Public",airobs_01_month:2,airobs_01_test:24,teqsensor_01_s1:159,cyclo:579,e500_01_standard:579,e500_02_connected:599,e500_03_standard:619,e500_04_connected:649,pack_e500_02_connected_teqsensor_01_s1:758,pack_e500_04_connected_teqsensor_01_s1:808,e500_03_cap:39,other_01_cleaning_kit:9,teqair100_01_darkgrey_car:159,teqair100_01_darkgrey_indoor:179,teqair100_01_wooden_foot:19,teqair200_01_black:329,teqair200_01_blue:329,teqair200_01_darkgrey:329,teqair200_01_lightgrey:329,teqair200_01_pinkclay:329,lavie_pack_blue:479,lavie_pack_darkgrey:479,lavie_pack_lightgrey:479,lavie_pack_pinkclay:479,teqair450_01_black:489,teqair450_01_darkgrey_hang:489,teqair450_01_lightgrey:489,teqair450_01_lightgrey_hang:489,tip4_01_black:0,tip9_01_black:428,tip9_01_blue:428,tip9_01_grey:428,tip9_01_orange:428,tip9_01_pink:428,tip9_01_red:428,tip24_01_black_plain_short:769,tip24_01_black_ceiling:799,sensor_01_laser_egg_2:149,sensor_02_laser_egg_co2:99},standard:{comment:"Official public price (no coupon)",startline:"",deadline:"",identifier:"Public",airobs_01_month:2,airobs_01_test:24,teqsensor_01_s1:159,cyclo:579,e500_01_standard:579,e500_02_connected:599,e500_03_standard:619,e500_04_connected:649,pack_e500_02_connected_teqsensor_01_s1:658,pack_e500_04_connected_teqsensor_01_s1:708,e500_03_cap:39,other_01_cleaning_kit:9,teqair100_01_darkgrey_car:159,teqair100_01_darkgrey_indoor:179,teqair100_01_wooden_foot:19,teqair200_01_black:329,teqair200_01_blue:329,teqair200_01_darkgrey:329,teqair200_01_lightgrey:329,teqair200_01_pinkclay:329,lavie_pack_blue:369,lavie_pack_darkgrey:369,lavie_pack_lightgrey:369,lavie_pack_pinkclay:369,teqair450_01_black:489,teqair450_01_darkgrey_hang:489,teqair450_01_lightgrey:489,teqair450_01_lightgrey_hang:489,tip4_01_black:0,tip9_01_black:428,tip9_01_blue:428,tip9_01_grey:428,tip9_01_orange:428,tip9_01_pink:428,tip9_01_red:428,tip24_01_black_plain_short:769,tip24_01_black_ceiling:799,sensor_01_laser_egg_2:149,sensor_02_laser_egg_co2:99}},china:{reference:{comment:"Reference price used to detect promotion",startline:"",deadline:"",identifier:"Public",airobs_01_month:2,airobs_01_test:24,teqsensor_01_s1:299,cyclo:979,e500_01_standard:979,e500_02_connected:1019,e500_03_standard:1049,e500_04_connected:1089,pack_e500_02_connected_teqsensor_01_s1:1318,pack_e500_04_connected_teqsensor_01_s1:1388,e500_03_cap:59,other_01_cleaning_kit:9,teqair100_01_darkgrey_car:279,teqair100_01_darkgrey_indoor:299,teqair100_01_wooden_foot:39,teqair200_01_black:559,teqair200_01_blue:559,teqair200_01_darkgrey:559,teqair200_01_lightgrey:559,teqair200_01_pinkclay:559,lavie_pack_blue:809,lavie_pack_dar
1kgrey:809,lavie_pack_lightgrey:809,lavie_pack_pinkclay:809,teqair450_01_black:829,teqair450_01_darkgrey_hang:829,teqair450_01_lightgrey:829,teqair450_01_lightgrey_hang:829,tip4_01_black:0,tip9_01_black:428,tip9_01_blue:428,tip9_01_grey:428,tip9_01_orange:428,tip9_01_pink:428,tip9_01_red:428,tip24_01_black_plain_short:769,tip24_01_black_ceiling:769,sensor_01_laser_egg_2:428,sensor_02_laser_egg_co2:428},standard:{comment:"Official public price (no coupon)",startline:"",deadline:"",identifier:"Public",airobs_01_month:2,airobs_01_test:24,teqsensor_01_s1:299,cyclo:979,e500_01_standard:979,e500_02_connected:1019,e500_03_standard:1049,e500_04_connected:1089,pack_e500_02_connected_teqsensor_01_s1:1218,pack_e500_04_connected_teqsensor_01_s1:1288,e500_03_cap:59,other_01_cleaning_kit:9,teqair100_01_darkgrey_car:279,teqair100_01_darkgrey_indoor:299,teqair100_01_wooden_foot:39,teqair200_01_black:559,teqair200_01_blue:559,teqair200_01_darkgrey:559,teqair200_01_lightgrey:559,teqair200_01_pinkclay:559,lavie_pack_blue:629,lavie_pack_darkgrey:629,lavie_pack_lightgrey:629,lavie_pack_pinkclay:629,teqair450_01_black:829,teqair450_01_darkgrey_hang:829,teqair450_01_lightgrey:829,teqair450_01_lightgrey_hang:829,tip4_01_black:0,tip9_01_black:428,tip9_01_blue:428,tip9_01_grey:428,tip9_01_orange:428,tip9_01_pink:428,tip9_01_red:428,tip24_01_black_plain_short:769,tip24_01_black_ceiling:769,sensor_01_laser_egg_2:428,sensor_02_laser_egg_co2:428}},tai:{reference:{comment:"Reference price used to detect promotion",startline:"",deadline:"",identifier:"Public",airobs_01_month:2,airobs_01_test:24,teqsensor_01_s1:320,cyclo:1440,e500_01_standard:1440,e500_02_connected:1500,e500_03_standard:1540,e500_04_connected:1610,pack_e500_02_connected_teqsensor_01_s1:1820,pack_e500_04_connected_teqsensor_01_s1:1930,e500_03_cap:90,other_01_cleaning_kit:20,teqair100_01_darkgrey_car:400,teqair100_01_darkgrey_indoor:450,teqair100_01_wooden_foot:50,teqair200_01_black:820,teqair200_01_blue:820,teqair200_01_darkgrey:820,teqair200_01_lightgrey:820,teqair200_01_pinkclay:820,lavie_pack_blue:1190,lavie_pack_darkgrey:1190,lavie_pack_lightgrey:1190,lavie_pack_pinkclay:1190,teqair450_01_black:1220,teqair450_01_darkgrey_hang:1220,teqair450_01_lightgrey:1220,teqair450_01_lightgrey_hang:1220,tip4_01_black:0,tip9_01_black:835,tip9_01_blue:835,tip9_01_grey:835,tip9_01_orange:835,tip9_01_pink:835,tip9_01_red:835,tip24_01_black_plain_short:1220,tip24_01_black_ceiling:1220,sensor_01_laser_egg_2:835,sensor_02_laser_egg_co2:835},standard:{comment:"Official public price (no coupon)",startline:"",deadline:"",identifier:"Public",airobs_01_month:2,airobs_01_test:24,teqsensor_01_s1:320,cyclo:1440,e500_01_standard:1440,e500_02_connected:1500,e500_03_standard:1540,e500_04_connected:1610,pack_e500_02_connected_teqsensor_01_s1:1720,pack_e500_04_connected_teqsensor_01_s1:1830,e500_03_cap:90,other_01_cleaning_kit:20,teqair100_01_darkgrey_car:400,teqair100_01_darkgrey_indoor:450,teqair100_01_wooden_foot:50,teqair200_01_black:820,teqair200_01_blue:820,teqair200_01_darkgrey:820,teqair200_01_lightgrey:820,teqair200_01_pinkclay:820,lavie_pack_blue:920,lavie_pack_darkgrey:920,lavie_pack_lightgrey:920,lavie_pack_pinkclay:920,teqair450_01_black:1220,teqair450_01_darkgrey_hang:1220,teqair450_01_lightgrey:1220,teqair450_01_lightgrey_hang:1220,tip4_01_black:0,tip9_01_black:835,tip9_01_blue:835,tip9_01_grey:835,tip9_01_orange:835,tip9_01_pink:835,tip9_01_red:835,tip24_01_black_plain_short:1220,tip24_01_black_ceiling:1220,sensor_01_laser_egg_2:835,sensor_02_laser_egg_co2:835}},can:{reference:{comment:"Reference price used to detect promotion",startline:"",deadline:"",identifier:"Public",airobs_01_month:2,airobs_01_test:24,teqsensor_01_s1:241,cyclo:1495,e500_01_standard:912,e500_02_connected:946,e500_03_standard:973,e500_04_connected:1034,pack_e500_02_connected_teqsensor_01_s1:1187,pack_e500_04_connected_teqsensor_01_s1:1275,e500_03_cap:40,other_01_cleaning_kit:15,teqair100_01_darkgrey_car:241,teqair100_01_darkgrey_indoor:262,teqair100_01_wooden_foot:21,teqair200_01_black:485,teqair200_01_blue:485,teqair200_01_darkgrey:485,teqair200_01_lightgrey:485,teqair200_01_pinkclay:485,lavie_pack_blue:479,lavie_pack_dar
1kgrey:479,lavie_pack_lightgrey:479,lavie_pack_pinkclay:479,teqair450_01_black:729,teqair450_01_darkgrey_hang:729,teqair450_01_lightgrey:729,teqair450_01_lightgrey_hang:729,tip4_01_black:0,tip9_01_black:428,tip9_01_blue:428,tip9_01_grey:428,tip9_01_orange:428,tip9_01_pink:428,tip9_01_red:428,tip24_01_black_plain_short:769,tip24_01_black_ceiling:799,sensor_01_laser_egg_2:149,sensor_02_laser_egg_co2:99},standard:{comment:"Official public price (no coupon)",startline:"",deadline:"",identifier:"Public",airobs_01_month:2,airobs_01_test:24,teqsensor_01_s1:241,cyclo:1495,e500_01_standard:912,e500_02_connected:946,e500_03_standard:973,e500_04_connected:1034,pack_e500_02_connected_teqsensor_01_s1:1087,pack_e500_04_connected_teqsensor_01_s1:1175,e500_03_cap:40,other_01_cleaning_kit:15,teqair100_01_darkgrey_car:241,teqair100_01_darkgrey_indoor:262,teqair100_01_wooden_foot:21,teqair200_01_black:485,teqair200_01_blue:485,teqair200_01_darkgrey:485,teqair200_01_lightgrey:485,teqair200_01_pinkclay:485,lavie_pack_blue:479,lavie_pack_darkgrey:479,lavie_pack_lightgrey:479,lavie_pack_pinkclay:479,teqair450_01_black:729,teqair450_01_darkgrey_hang:729,teqair450_01_lightgrey:729,teqair450_01_lightgrey_hang:729,tip4_01_black:0,tip9_01_black:428,tip9_01_blue:428,tip9_01_grey:428,tip9_01_orange:428,tip9_01_pink:428,tip9_01_red:428,tip24_01_black_plain_short:769,tip24_01_black_ceiling:799,sensor_01_laser_egg_2:149,sensor_02_laser_egg_co2:99}}},coupons:{theclosefamily:{comment:"Coupon specific to Teqoya for friends and family",isTeqoya:true,supportPack:false,startline:"",deadline:"",identifier:"WEB-theclosefamily",percent:20,category:"Code pour amis/familles de TEQOYA"},fidelity:{comment:"Coupon specific to Teqoya for friends and family",isTeqoya:true,supportPack:false,startline:"",deadline:"",identifier:"WEB-fidelity",percent:20,category:"Code en échange d'un avis Trustpilot"},adeline:{idDistributors:"Teqoya Mail",isTeqoya:true,supportPack:false,startline:"",deadline:"",identifier:"WEB-adeline",percent:10},emilien:{idDistributors:"Teqoya Mail",isTeqoya:true,supportPack:false,startline:"",deadline:"",identifier:"WEB-emilien",percent:10},etienne:{idDistributors:"Teqoya Mail",isTeqoya:true,supportPack:false,startline:"",deadline:"",identifier:"WEB-etienne",percent:10},fanny:{idDistributors:"Teqoya Mail",isTeqoya:true,supportPack:false,startline:"",deadline:"",identifier:"WEB-fanny",percent:10},isabelle:{idDistributors:"Teqoya Mail",isTeqoya:true,supportPack:false,startline:"",deadline:"",identifier:"WEB-isabelle",percent:10},olivier:{idDistributors:"Teqoya Mail",isTeqoya:true,supportPack:false,startline:"",deadline:"",identifier:"WEB-olivier",percent:10},pascal:{idDistributors:"Teqoya Mail",isTeqoya:true,supportPack:false,startline:"",deadline:"",identifier:"WEB-pascal",percent:10},airplus:{comment:"Coupon specific to Teqoya for recidivists (-15%)",isTeqoya:true,supportPack:true,startline:"",deadline:"",identifier:"WEB-airplus",percent:15,category:"Saisonniers"},annejulieyoga:{idDistributors:"Teqoya Mail",isTeqoya:true,supportPack:false,startline:"",deadline:"",identifier:"WEB-annejulieyoga",percent:10,category:"Influenceur"},couponteqoya:{comment:"Coupon specific to Teqoya for web site with coupons (-10%)",isTeqoya:true,supportPack:false,startline:"",deadline:"",identifier:"WEB-couponteqoya",percent:5,category:"Code réservé aux sites de coupons"},expat_abudhabi:{comment:"Coupon specific to Expat from AbuDhabi (-10%)",isTeqoya:true,supportPack:false,startline:"",deadline:"",identifier:"WEB-expat",percent:10,category:"Partenariat"},fires2026:{comment:"Coupon specific to Teqoya for NYC fire (-15%)",isTeqoya:true,supportPack:false,startline:"",deadline:"",identifier:"WEB-fires2026",percent:15,category:"Code pour amis/familles de TEQOYA"},incendies2026:{comment:"Coupon specific to Teqoya for Gironde fire (-15%)",isTeqoya:true,supportPack:false,startline:"",deadline:"",identifier:"WEB-incendies2026",percent:15,category:"Code pour amis/familles de TEQOYA"},lamatrescence2024:{comment:"Coupon specific to La Matrescence (-10%)",isTeqoya:true,supportPack:false,startline:"",deadline:"",identifier:"WEB-lamatrescence2024",percent:10,category:"Influenceur"},parrain:{comment:"Coupon specific to Teqoya for godfathers (-5%)",isTeqoya:true,supportPack:true,startline:"",deadline:"",identifier:"WEB-parrain",isGodFather:true,percent:5,category:"Parrainage"},promo10:{comment:"Coupon specific to Teqoya for new relations (-10%)",isTeqoya:true,supportPack:false,startline:"",deadline:"",identifier:"WEB-promo10",percent:10,category:"Code
1contact direct (mail/tél)"},privilegeplus:{comment:"Coupon specific to Teqoya for new relations (-15%)",isTeqoya:true,supportPack:false,startline:"",deadline:"",identifier:"WEB-privilegeplus",percent:15,category:"Code contact direct (mail/tél)"},barrylafraise2024:{comment:"Coupon specific to Influencer Jade Vital (-10%)",isTeqoya:true,supportPack:false,startline:"",deadline:"",identifier:"WEB-barrylafraise2024",percent:10,category:"Influenceur"},rosablume:{comment:"Coupon specific to Influencer RosaBlume (-10%)",isTeqoya:true,supportPack:false,startline:"",deadline:"",identifier:"WEB-rosablume",percent:10,category:"Influenceur"},annesophiedeckers:{comment:"Coupon specific to Teqoya for Anne-Sophie Deckers (-10%)",isTeqoya:true,supportPack:true,startline:"",deadline:"",identifier:"WEB-annesophiedeckers",percent:10,category:"Influenceur"},aqualys:{comment:"Coupon dedicated to Aqualys (-5%)",isTeqoya:false,supportPack:false,commission:{prescriber:"Aqualys",godfather:"",comPrescriber:"15",comGodFather:""},startline:"",deadline:"",identifier:"WEB-aqualys",percent:5,category:"Prescripteur"}
1,bienairoccitanie31:{comment:"Coupon dedicated to Noëmie Siellet (-5%)",isTeqoya:true,supportPack:true,commission:{prescriber:"Noëmie Siellet",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-bienairoccitanie31",percent:5,category:"Prescripteur"},biocontact:{comment:"Coupon dedicated to BioContact (-10%)",isTeqoya:true,supportPack:false,startline:"",deadline:"",identifier:"WEB-biocontact",percent:10,category:"Partenariat"},christopheandre:{comment:"Coupon dedicated to Christophe André (-5%)",isTeqoya:true,supportPack:true,commission:{prescriber:"Christophe André",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-christopheandre",percent:5,category:"Prescripteur"},damore5:{comment:"Coupon dedicated to Groupe d'amore (-5%)",isTeqoya:true,supportPack:true,commission:{prescriber:"Groupe d Amore",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-damore5",percent:5,category:"Prescripteur"},deloze:{comment:"Coupon dedicated to distributor Christophe Deloze (-5%)",isTeqoya:true,supportPack:true,commission:{prescriber:"Christophe Deloze",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-deloze",percent:5,category:"Distributeur"},dolispine:{comment:"Coupon specific to dolispine (-5%)",isTeqoya:true,supportPack:true,startline:"",deadline:"",identifier:"WEB-dolispine",percent:5,category:"Prescripteur"},emersum:{comment:"Coupon dedicated to Daniele Biscontini (-10%)",isTeqoya:false,supportPack:false,commission:{prescriber:"Daniele Bisontini",godfather:"",comPrescriber:"20",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-emersum",percent:10,category:"Prescripteur"},emilie:{comment:"Coupon dedicated to Emilie Ergand (-5%)",isTeqoya:true,supportPack:true,commission:{prescriber:"Emilie Ergand",godfather:"GeoBiom",comPrescriber:"15",comGodFather:"5",includeShipping:true},startline:"",deadline:"",identifier:"WEB-emilie",percent:5,category:"Prescripteur"},expat:{comment:"Coupon dedicated to UAE Expat (-15%)",isTeqoya:true,supportPack:false,startline:"",deadline:"",identifier:"WEB-expat",percent:15,category:"Partenariat"},feenaturosport:{comment:"Coupon specific to Laure Wieteska (-10%)",isTeqoya:true,supportPack:false,startline:"",deadline:"",identifier:"WEB-feenaturosport",percent:10,category:"Prescripteur"},geobienetre5:{comment:"Coupon specific to geobienetre (-5%)",isTeqoya:true,supportPack:true,startline:"",deadline:"",identifier:"WEB-geobienetre5",percent:5,category:"Distributeur"},geobiomex:{comment:"Coupon dedicated to GeoBiom (model discount)",commission:{prescriber:"GeoBiom",godfather:"",comPrescriber:"20",comGodFather:"0"},isTeqoya:false,supportPack:false,startline:"",deadline:"",identifier:"WEB-geobiomex",percent:10,category:"Distributeur"},geobiomst:{comment:"Coupon dedicated to GeoBiom (model discount)",commission:{prescriber:"GeoBiom",godfather:"",comPrescriber:"20",comGodFather:"0"},isTeqoya:false,supportPack:false,startline:"",deadline:"",identifier:"WEB-geobiomst",percent:10,category:"Distributeur"},harold5:{comment:"Coupon dedicated to Harold Knoll (-5%)",isTeqoya:true,supportPack:true,commission:{prescriber:"Harold Knoll",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-harold5",percent:5,category:"Prescripteur"},heracles:{comment:"Coupon dedicated to distributor Oudin Frédéric (-10%)",isTeqoya:true,supportPack:false,commission:{prescriber:"Oudin Frédéric",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-heracles",percent:10,category:"Prescripteur"},hygie:{comment:"Coupon dedicated to Hygie (-5%)",isTeqoya:true,supportPack:true,commission:{prescriber:"Hygie",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-hygie",percent:5,category:"Prescripteur"},inalterra:{comment:"Coupon dedicated to Inalterra (-5%)",isTeqoya:true,supportPack:true,commission:{prescriber:"Inalterra",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-inalterra",percent:5,category:"Prescripteur"},kipli:{comment:"Coupon specific to Teqoya for Kipli (-10%)",isTeqoya:true,supportPack:true,startline:"",deadline:"",identifier:"WEB-kipli",percent:10,category:"Partenariat"},lespetitsmiracles:{comment:"Coupon specific to Les Petits Miracles (-10%)",isTeqoya:true,supportPack:false,startline:"",deadline:"",identifier:"WEB-lespetitsmiracles",percent:10,category:"Prescripteur"},loic10:{comment:"Coupon dedicated to Bloger (-10%)",isTeqoya:false,supportPack:false,startline:"",deadline:"",identifier:"WEB-loic10",percent:10,category:"Influenceur"},maeg:{comment:"Coupon specific to Teqoya for Maeg Osteopathe (-10%)",isTeqoya:true,supportPack:false,startline:"",deadline:"",identifier:"WEB-maeg",percent:10,category:"Prescripteur"},mars2026:{comment:"Coupon specific to Teqoya for spring 2026 (-10%)",isTeqoya:true,supportPack:false,startline:"",deadline:"",identifier:"WEB-mars2026",percent:10,category:"Saisonniers"},mdve:{comment:"Coupon dedicated to Ferrand Olivier (-5%)",isTeqoya:true,supportPack:true,commission:{prescriber:"Ferrand Olivier",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-mdve",percent:5,category:"Prescripteur"},michelematon:{comment:"Coupon dedicated to Michele Maton (-5%)",isTeqoya:true,supportPack:true,commission:{prescriber:"Michele Maton",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-michelematon",percent:5,category:"Prescripteur"},naturo:{comment:"Coupon dedicated to Marie Laure Nageleisen (-5%)",isTeqoya:true,supportPack:true,commission:{prescriber:"Marie Laure Nageleisen",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-naturo",percent:5,category:"Prescripteur"},naturocomte:{comment:"Coupon dedicated to Dalila Comte (-5%)",isTeqoya:true,supportPack:true,commission:{prescriber:"Dalila Comte",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-naturocomte",percent:5,category:"Prescripteur"},nutrivore:{comment:"Coupon dedicated to Nutrivore (10%)",isTeqoya:false,supportPack:false,commission:{prescriber:"Nutrivore",godfather:"",comPrescriber:"10",comGodFather:""},startline:"",deadline:"",identifier:"WEB-nutrivore",percent:10,category:"Prescripteur"},sebnaturo:{comment:"Coupon dedicated to Sebnaturo (-5%)",isTeqoya:true,supportPack:true,commission:{prescriber:"Sebnaturo",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-sebnaturo",percent:5,category:"Prescripteur"},seva:{comment:"Coupon dedicated to Seva (-5%)",isTeqoya:true,supportPack:true,commission:{prescriber:"Seva",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-seva",percent:5,category:"Prescripteur"},theyellowblog:{comment:"Coupon dedicated to The Yellow Blog (-5%)",isTeqoya:true,supportPack:true,commission:{prescriber:"The Yellow Blog",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-theyellowblog",percent:5,category:"Influenceur"},waldluft5:{comment:"Coupon dedicated to Helge Feldmann (-5%)",isTeqoya:true,supportPack:true,commission:{prescriber:"Helge Feldmann",godfather:"",comPrescriber:"15",comGodFather:"",includeShipping:true},startline:"",deadline:"",identifier:"WEB-waldluft5",percent:5,category:"Prescripteur"}}}});define("thirdParty/order",["utl/core","utl/restService","utl/webService","utl/waitingScreen","utl/googlePlaces","utl/humanCheck","json!cfg/siteConfig.json","json!cfg/appConfig.json","json!thirdParty/old_pricing.json","jquery"],function(coreObj,RestServiceClass,WebServiceClass,WaitingScreenClass,googlePlacesObj,humanCheckObj,aSiteConfigObj,aAppConfig,aPricingObj,$){"use strict";var orderObj,OrderClass=function(){this._restServiceObj=null;this._webServiceObj=null;this._waitingScreen=null;this._pricingObj=Object.clone(aPricingObj);this._pricingShip=-1;this._pricingArea="";this._language=$(window.document).find("html").attr("lang");this._lang=this._language.substr(0,2);this._baseUrl=window._internalBaseUrl+"/"+this._lang;this._layerListener=null;this._setPricing();if($("#orderVatReference").length>0){this._setPricingAsDirectAccess()}else{this._setPricingAsStandard()}if($("#orderProductCashMode").length>0){this._setPricingAsCashDesk()}this._supportMany=aSiteConfigObj.useReductionOnMany;this._postRecordCallback=null;this._leaveWithProductQuantityCallback=this._leaveWithProductQuantity.bind(this);this._cartStep=-1;this._useDpd=true;this._useKlaviyo=false;this.pickupMapObj=null};OrderClass.prototype.setLayerListener=function(aLayerListener){this._layerListener=aLayerListener};OrderClass.prototype._normalizeNumber=function(aNumber){return parseFloat(aNumber.toFixed(2))};OrderClass.prototype._doSetPricingAsDirectAccess=function(aResult){var couponList,indDirect,indShipping,coupon,couponLower,productType;if(aResult.status===0){console.info("OrderClass: Updating pricing based on directaccess.json");for(indDirect=0;indDirect<this._pricingObj.shippingTab.length;
1indDirect+=1){if(this._pricingObj.shippingTab[indDirect].countryTab.indexOf("directaccess")>=0){break}}for(indShipping=0;indShipping<this._pricingObj.shippingTab.length;indShipping+=1){if(this._pricingObj.shippingTab[indShipping].countryTab.indexOf("fr")>=0){for(productType in this._pricingObj.shippingTab[indDirect]){if(this._pricingObj.shippingTab[indDirect].hasOwnProperty(productType)){if(typeof this._pricingObj.shippingTab[indDirect][productType]==="number"){this._pricingObj.shippingTab[indShipping][productType]=this._pricingObj.shippingTab[indDirect][productType]*1.2;this._pricingObj.product.reference[productType]-=this._pricingObj.shippingTab[indShipping][productType];this._pricingObj.product.standard[productType]-=this._pricingObj.shippingTab[indShipping][productType]}}}break}}couponList=aResult.data.httpData;this._pricingObj.coupons={};for(coupon in couponList){if(couponList.hasOwnProperty(coupon)){couponLower=coupon.toLowerCase();this._pricingObj.coupons[couponLower]=Object.clone(couponList[coupon]);this._pricingObj.product[couponLower]=Object.clone(couponList[coupon]);for(productType in this._pricingObj.mapping){if(this._pricingObj.mapping.hasOwnProperty(productType)){if(couponList[coupon].hasOwnProperty(productType)&&couponList[coupon][productType]){this._pricingObj.product[couponLower][productType]=couponList[coupon][productType]*1.2}else if(this._pricingObj.product.cee.standard.hasOwnProperty(productType)){this._pricingObj.product[couponLower][productType]=this._pricingObj.product.cee.standard[productType]}}}}}this._dumpCartItem()}};OrderClass.prototype._setPricingAsDirectAccess=function(){var webServiceObj;console.info("OrderClass: Loading directaccess.json");this._restServiceObj=new RestServiceClass(window._internalBaseUrl,aAppConfig.server.baseUrl,aAppConfig.server.apiVersion,"json");webServiceObj=this._restServiceObj.getWebServiceObj();webServiceObj.sendRequest(this._doSetPricingAsDirectAccess.bind(this),window._internalBaseUrl+"/engine/thirdParty/directaccess.json?"+Date.now(),"GET",null)};OrderClass.prototype._setPricingAsCashDesk=function(){var productType;console.info("OrderClass: Enforcing CashDesk pricing");for(productType in this._pricingObj.product.standard){if(this._pricingObj.product.standard.hasOwnProperty(productType)){if(productType.indexOf("teqair100_01_darkgrey_car")>=0){this._pricingObj.product.standard[productType]=169}else if(productType.indexOf("teqair100_01_darkgrey_indoor")>=0){this._pricingObj.product.standard[productType]=198}else if(productType.indexOf("teqair100_01_wooden_foot")>=0){this._pricingObj.product.standard[productType]=29}else if(productType.indexOf("teqair200_01")>=0){this._pricingObj.product.standard[productType]=322}else if(productType.indexOf("teqair450_01")>=0){this._pricingObj.product.standard[productType]=467}else if(productType.indexOf("cyclo")>=0){this._pricingObj.product.standard[productType]=484}else if(productType.indexOf("sensor_02_laser_egg_co2")>=0){this._pricingObj.product.standard[productType]=99}}}};OrderClass.prototype._setPricingAsStandard=function(){var couponList,coupon,couponLower,percent,productType;console.info("OrderClass: Computing coupons for pricing area "+this._pricingArea);couponList=this._pricingObj.coupons;this._pricingObj.coupons={};for(coupon in couponList){if(couponList.hasOwnProperty(coupon)){couponLower=coupon.toLowerCase();this._pricingObj.coupons[couponLower]=Object.clone(couponList[coupon]);this._pricingObj.product[couponLower]=Object.clone(couponList[coupon]);if(couponList[coupon].hasOwnProperty("percent")&&couponList[coupon].percent){percent=(100-parseFloat(couponList[coupon].percent))/100}else{percent=1}for(productType in this._pricingObj.mapping){if(this._pricingObj.mapping.hasOwnProperty(productType)){if(!couponList[coupon].hasOwnProperty(productType)){if(this._pricingObj.product[this._pricingArea].standard.hasOwnProperty(productType)){this._pricingObj.product[couponLower][productType]=this._pricingObj.product[this._pricingArea].reference[productType]*percent}}else{this._pricingObj.product[couponLower][productType]=couponList[coupon][productType]}}}}}};OrderClass.prototype._setPricing=function(){var cartObj,indShip,area;cartObj=this._getCartObject();window._internalCountry=cartObj.country;this._htSuffix=aSiteConfigObj.htSuffix;this._ttcSuffix=aSiteConfigObj.ttcSuffix;this._pricingObj.product.reference=null;this._pricingObj.product.standard=null;for(indShip=0;indShip<this._pricingObj.shippingTab.length;indShip+=1){if(this._pricingObj.shippingTab[indShip].countryTab.indexOf(cartObj.country)>=0){console.info("OrderClass: applying pricing for country "+cartObj.country+" as '"+this._pricingObj.shippingTab[indShip].comment+"'");area=this._pricingObj.shippingTab[indShip].area;this._pricingShip=indShip;this._pricingArea=area;console.info("OrderClass: [country-area] Pricing area is "+this._pricingArea);this._pricingObj.product.reference=this._pricingObj.product[area].reference;this._pricingObj.product.standard=this._pricingObj.product[area].standard;if(this._pricingObj.shippingTab[indShip].hasTax){if(this._ttcSuffix===" TTC"&&this._lang!=="fr"){this._ttcSuffix=" incl. VAT"}}else{this._ttcSuffix="";this._htSuffix=""}break}}if(indShip>=this._pricingObj.shippingTab.length){cartObj.country="fr";this._setCartObject(cartObj);this._setPricing()}};OrderClass.prototype._getPricingArea=function(aCountryId){var indShip;for(indShip=0;indShip<this._pricingObj.shippingTab.length;indShip+=1){if(this._pricingObj.shippingTab[indShip].countryTab.indexOf(aCountryId)>=0){return this._pricingObj.shippingTab[indShip].area}}};OrderClass.prototype._updateCatalogPrices=function(){this._getProductCatalog("e500_01_standard");this._getProductCatalog("e500_02_connected");this._getProductCatalog("e500_03_standard");this._getProductCatalog("e500_04_connected");this._getProductCatalog("e500_03_cap");this._getProductCatalog("other_01_cleaning_kit");this._getProductCatalog("teqair100_01_darkgrey_car");this._getProductCatalog("teqair100_01_darkgrey_indoor");this._getProductCatalog("teqair100_01_wooden_foot");this._getProductCatalog("teqair200_01_black");this._getProductCatalog("teqair200_01_blue");this._getProductCatalog("teqair200_01_darkgrey");this._getProductCatalog("teqair200_01_lightgrey");this._getProductCatalog("teqair200_01_pinkclay");this._getProductCatalog("lavie_pack_blue");
1this._getProductCatalog("lavie_pack_darkgrey");this._getProductCatalog("lavie_pack_lightgrey");this._getProductCatalog("lavie_pack_pinkclay");this._getProductCatalog("teqair450_01_black");this._getProductCatalog("teqair450_01_darkgrey_hang");this._getProductCatalog("teqair450_01_lightgrey");this._getProductCatalog("teqair450_01_lightgrey_hang");this._getProductCatalog("teqsensor_01_s1");this._getProductCatalog("airobs_01_month");this._getProductCatalog("airobs_01_test");this._getProductCatalog("tip4_01_black");this._getProductCatalog("tip9_01_black");this._getProductCatalog("tip9_01_blue");this._getProductCatalog("tip9_01_grey");this._getProductCatalog("tip9_01_orange");this._getProductCatalog("tip9_01_pink");this._getProductCatalog("tip9_01_red");this._getProductCatalog("tip24_01_black_plain_short");this._getProductCatalog("tip24_01_black_ceiling");this._getProductCatalog("sensor_02_laser_egg_co2");this._getProductChristmas("teqair200_01_black","teqair200_01_black");this._getProductChristmas("teqair200_01_black","teqair450_01_black");this._getProductPack("pack_e500_02_connected_teqsensor_01_s1");this._getProductPack("pack_e500_04_connected_teqsensor_01_s1")};OrderClass.prototype._toCamcelCase=function(aString){if(aString){return aString.replace(/\w\S*/g,function(txt){return txt.charAt(0).toUpperCase()+txt.substr(1).toLowerCase()})}return aString};OrderClass.prototype._convertAmount=function(aValue){var amount;amount=aValue.toLocaleString(this._language,{style:"currency",currency:aSiteConfigObj.currency,minimumFractionDigits:2,maximumFractionDigits:2});return amount.split(decodeURIComponent("%C2%A0")).join(" ")};OrderClass.prototype._displayAmount=function(aValue){var amount;if(parseInt(aValue,10)!==parseFloat(aValue)){return this._convertAmount(aValue)}amount=aValue.toLocaleString(this._language,{style:"currency",currency:aSiteConfigObj.currency,minimumFractionDigits:0,maximumFractionDigits:0});return amount.split(decodeURIComponent("%C2%A0")).join(" ")};OrderClass.prototype._getProductCategory=function(aProductType){return this._pricingObj.category[aProductType][this._lang]};OrderClass.prototype._getProductName=function(aProductType){console.debug("Loading name of product "+aProductType);return this._pricingObj.reference[aProductType][this._lang]};OrderClass.prototype._processCartStep=function(){var cartStep,cartPage,stepItemTab,indItem,addressObj,cartObj;cartObj=this._getCartObject();addressObj=this._getAddressObject();cartPage=1;cartStep=1;if(window.location.hash.indexOf("cartStep2")>=0){cartPage=2;cartStep=2}else if(window.location.hash.indexOf("cartStep3")>=0){cartPage=3;cartStep=2}else if(window.location.hash.indexOf("cartStep4")>=0){cartPage=4;cartStep=2}else if(window.location.hash.indexOf("cartStep5")>=0){cartPage=5;cartStep=3}else if(window.location.hash.indexOf("cartStep6")>=0){cartPage=6;cartStep=4}if(cartObj.productTab.length<=0){cartPage=1;cartStep=1}else if(cartPage>2&&!addressObj.shipping.email){cartPage=2;cartStep=2}else if(cartPage>3&&!addressObj.shipping.phone){cartPage=3;cartStep=2}this._cartStep=cartPage;console.debug("OrderClass: Processing cart step "+cartPage);if(this._layerListener){this._layerListener("checkout_step",{cartStep:cartPage})}if(this._cartStep>1){$(".additionalDiscount").hide();this._processTmaCoupon(null,false)}else{$(".additionalDiscount").show();this._processTmaCoupon(null,true);window.initWheel("cartWheelWheel")}if(this._cartStep<2){$(".noWaitingShipping").hide();$(".waitingShipping").show()}else{$(".noWaitingShipping").show();$(".waitingShipping").hide()}stepItemTab=$(".stepProgressBar li");for(indItem=0;indItem<stepItemTab.length;indItem+=1){if(indItem<cartStep){stepItemTab[indItem].className="active"}else{stepItemTab[indItem].className=""}}$("#cartStep1").hide();$("#cartStep2").hide();$("#cartStep3").hide();$("#cartStep4").hide();$("#cartStep5").hide();$("#cartStep6").hide();$("#cartStep"+cartPage).show();if(cartPage===1){$(".cartStepBack").hide();$("#sensorOption").on("change",orderObj._processSensorToCart.bind(orderObj,"sensor_02_laser_egg_co2"));$("#email_registration").val(addressObj.billing.email);$("#email_registration").on("input",orderObj._checkEmail.bind(orderObj));
1orderObj._dumpCartItem()}else if(cartPage===2){$(".cartStepBack").show();this._checkZapptaxCoupon();$(".is-invalid").removeClass("is-invalid");this._restoreAddress();$("#country_shipping").change(this._registerCountry.bind(this));orderObj._dumpCartItem()}else if(cartPage===3){$(".cartStepNext").show();if(this._useDpd&&addressObj.shipping.country==="fr"){$("#orderShippingStandard").parent().hide();$("#orderShippingDpd").parent().show();$("#orderShippingDpd").on("click",this._togglePickup.bind(this,0));$("#orderShippingDpd").prop("checked",true);$("#orderShippingPickup").parent().show();$("#orderShippingPickup").on("click",this._togglePickup.bind(this,1));cartObj.shippingService="DPD_Standard";this._setCartObject(cartObj)}else{$("#orderShippingStandard").parent().show();$("#orderShippingStandard").prop("checked",true);$("#orderShippingDpd").parent().hide();$("#orderShippingPickup").parent().hide();cartObj.shippingService="Colissimo";this._setCartObject(cartObj)}}else if(cartPage===4){$(".cartStepNext").show();orderObj._dumpCartItem()}else if(cartPage===5){$(".cartStepNext").hide();$("#newsletter").prop("checked",true);$("#orderTerms").prop("checked",false);if(orderObj._hasTestMyAirOnlyInCart()){$("#orderTerms").on("click",this._doValidateAddress.bind(this,"#checkoutTestMyAir"));$("#sensorWarning2").show();$("#termsTestMyAir").show()}else{$("#orderTerms").on("click",this._doValidateAddress.bind(this,"#checkoutPayment"));if(orderObj._hasSensorInCart()){$("#sensorWarning2").show()}else{$("#sensorWarning2").hide()}$("#termsTestMyAir").hide()}window.orderProductAmount=this._normalizeNumber(cartObj.totalTtc);window.orderProductLang=this._lang;window.orderProductLanguage=this._language;window.orderProductEmail=this._getEmail()}document.body.scrollTop=0;document.documentElement.scrollTop=0};OrderClass.prototype._identifyCartCoupon=function(aCoupon){var pos,len,multiOffer,val;pos=aCoupon.indexOf("#");if(pos>=0){len=pos+2+parseInt(aCoupon[pos+1],10);if(aCoupon.length===len){multiOffer=aCoupon.substr(0,pos+2);if(this._pricingObj.product.hasOwnProperty(multiOffer)&&this._pricingObj.product[multiOffer].isMultiOffer){val=parseInt(aCoupon.substr(pos+2),10);if(val>0&&val<this._pricingObj.product[multiOffer].isMultiOffer){console.debug("OrderClass: Using multi offer coupon "+multiOffer+" for coupon "+aCoupon);return multiOffer}}}}return aCoupon.toLowerCase()};OrderClass.prototype._setCartCoupon=function(aCoupon){var cartObj,coupon;cartObj=this._getCartObject();coupon=this._identifyCartCoupon(aCoupon);if(this._pricingObj.coupons.hasOwnProperty(coupon)){console.debug("OrderClass: Applying coupon '"+aCoupon+"'");cartObj.coupon=aCoupon;this._setCartObject(cartObj);this._dumpCartItem();this._enumCartItem();return true}console.debug("OrderClass: Discarding invalid coupon '"+aCoupon+"'");cartObj.coupon="";this._setCartObject(cartObj);this._dumpCartItem();this._enumCartItem();return false};OrderClass.prototype._setGodFather=function(aGodFather){var cartObj;cartObj=this._getCartObject();console.debug("OrderClass: Setting god father with value '"+aGodFather+"'");cartObj.godFather=aGodFather;this._setCartObject(cartObj);this._dumpCartItem();this._enumCartItem()};OrderClass.prototype._hasGodFatherChanged=function(aGodFather){var cartObj;cartObj=this._getCartObject();if(cartObj.godFather!==aGodFather){return true}console.debug("OrderClass: God father "+aGodFather+" already known");return false};OrderClass.prototype._isGodFather=function(aCoupon){if(this._pricingObj.product.hasOwnProperty(aCoupon)){if(this._pricingObj.product[aCoupon].hasOwnProperty("isGodFather")){return this._pricingObj.product[aCoupon].isGodFather}}return false};OrderClass.prototype._isTeqoya=function(aCoupon){var coupon;coupon=this._identifyCartCoupon(aCoupon);if(this._pricingObj.coupons.hasOwnProperty(coupon)){if(this._pricingObj.coupons[coupon].hasOwnProperty("isTeqoya")){return this._pricingObj.coupons[coupon].isTeqoya}}return false};OrderClass.prototype._isPackage=function(aCoupon){var cartObj,indProduct,toBeAdded;return false;if(this._pricingObj.product.hasOwnProperty(aCoupon)){if(this._pricingObj.product[aCoupon].hasOwnProperty("isPackage")){if(this._pricingObj.product[aCoupon].hasOwnProperty("packageTab")){cartObj=this._getCartObject();toBeAdded=false;for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){if(this._pricingObj.product[aCoupon].packageTab.indexOf(cartObj.productTab[indProduct].productType)>=0){toBeAdded=true;break}}if(toBeAdded){for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){if(cartObj.productTab[indProduct].productType===this._pricingObj.product[aCoupon].isPackage){return true}}this._addCartItem(this._pricingObj.product[aCoupon].isPackage,1,true);return true}this._removeCartItem(this._pricingObj.product[aCoupon].isPackage,1,true);return false}else{this._addCartItem(this._pricingObj.product[aCoupon].isPackage,1,true);return true}}}return false};OrderClass.prototype._checkPackage=function(){var cartObj;cartObj=this._getCartObject();return this._isPackage(cartObj.coupon)};OrderClass.prototype._dumpCartCoupon=function(){var cartObj,pos,coupon;cartObj=this._getCartObject();if(cartObj.coupon){pos=cartObj.coupon.indexOf("#");if(pos>=0){coupon=cartObj.coupon.substr(0,pos+2)}else{coupon=cartObj.coupon}if(this._pricingObj.coupons.hasOwnProperty(coupon)){$("#orderCoupon").val(cartObj.coupon)}}if(cartObj.godFather){$("#orderGodFather").val(cartObj.godFather)}};OrderClass.prototype._getUnitPrice=function(aProductType,aCoupon,aGodFather,aSuperGodfather){var date,dateStr,coupon,value,indProduct;date=new Date;dateStr=date.toJSON().substr(0,10);if(aCoupon&&!(aSuperGodfather&&aProductType!=="airobs_01_test")){coupon=this._identifyCartCoupon(aCoupon);if(this._pricingObj.coupons.hasOwnProperty(coupon)){if(this._pricingObj.product[coupon].hasOwnProperty(aProductType)){if(!this._pricingObj.product[coupon].startline||dateStr>=this._pricingObj.product[coupon].startline){if(!this._pricingObj.product[coupon].deadline||dateStr<=this._pricingObj.product[coupon].deadline){console.debug("OrderClass: Using price "+this._pricingObj.product[coupon][aProductType]+" for coupon "+aCoupon+" on product "+aProductType);value=this._pricingObj.product[coupon][aProductType];return{hasReduction:true,limit:0,standard:this._pricingObj.product.standard[aProductType],coupon:aCoupon,productCategory:this._pricingObj.prefix[aProductType],pricing:this._pricingObj.prefix[aProductType]+"-FRA-I-"+this._pricingObj.product[coupon].identifier,value:value,reference:this._pricingObj.product.reference[aProductType]}}else{console.debug("OrderClass: Skipping coupon "+aCoupon+" on product "+aProductType+" as it is outdated since "+this._pricingObj.product[coupon].deadline)}}else{console.debug("OrderClass: Skipping coupon "+aCoupon+" on product "+aProductType+" as it is outdated before "+this._pricingObj.product[coupon].startline)}}console.warn("OrderClass: No price for coupon "+aCoupon+" on product "+aProductType)}}console.debug("OrderClass: Using price "+this._pricingObj.product.standard[aProductType]+"â¬"+this._ttcSuffix+" for offer standard on product "+aProductType);value=this._pricingObj.product.standard[aProductType];
1if(aSuperGodfather&&aProductType!=="airobs_01_test"){value=value*.85;console.debug("OrderClass: Applying SUPER god father reduction from "+this._pricingObj.product.standard[aProductType]+" to "+value)}else if(aGodFather&&aProductType!=="airobs_01_test"){value=value*.95;console.debug("OrderClass: Applying god father reduction from "+this._pricingObj.product.standard[aProductType]+" to "+value)}return{hasReduction:true,limit:0,standard:this._pricingObj.product.standard[aProductType],coupon:"standard",productCategory:this._pricingObj.prefix[aProductType],pricing:this._pricingObj.prefix[aProductType]+"-FRA-I-"+this._pricingObj.product.standard.identifier,value:value,reference:this._pricingObj.product.reference[aProductType]}};OrderClass.prototype._getCommissionPrice=function(aCoupon){var coupon;if(aCoupon){coupon=this._identifyCartCoupon(aCoupon);if(this._pricingObj.coupons.hasOwnProperty(coupon)){if(this._pricingObj.product[coupon].hasOwnProperty("commission")&&this._pricingObj.product[coupon].commission){return this._pricingObj.product[coupon].commission}}}return null};OrderClass.prototype._getTaxRate=function(aCountry){var cartObj;if(this._pricingObj.taxTab.hasOwnProperty(aCountry)){cartObj=this._getCartObject();if(cartObj.hasOwnProperty("tvaReference")&&cartObj.tvaReference){console.debug("OrderClass: no tax rate on country "+aCountry+" due to TVA number "+cartObj.tvaReference);return 0}console.debug("OrderClass: tax rate set to "+this._pricingObj.taxTab[aCountry]+"% on country "+aCountry);return this._pricingObj.taxTab[aCountry]}console.debug("OrderClass: no tax rate for country "+aCountry);return 0};OrderClass.prototype._hasTax=function(aCountry){var taxRate;taxRate=this._getTaxRate(aCountry);if(taxRate>0){return true}return false};OrderClass.prototype._getShippingPrice=function(aProductType,aCountry,aHasSensor){var taxRate,price;taxRate=this._getTaxRate(aCountry);if(aCountry!=="fr"){price=this._pricingObj.shippingTab[this._pricingShip][aProductType]*((100+taxRate)/100)}else{price=this._pricingObj.shippingTab[this._pricingShip][aProductType]}console.debug("OrderClass: Shipping price is "+price+"⬠for country "+aCountry+" with tax "+taxRate+" and product "+aProductType);return price};OrderClass.prototype._getOrgPrice=function(aPriceObj,aProductType,aHasTax,aHasSensor,aCountry){var ship,original,percent,discount,exp;if(aProductType==="airobs_01_test"){aPriceObj.standard=0;aPriceObj.value=0;aPriceObj.reference=0}else if((aProductType==="sensor_01_laser_egg_2"||aProductType==="sensor_02_laser_egg_co2")&&aHasSensor){aPriceObj.standard=0;aPriceObj.value=0;aPriceObj.reference=0}if(aSiteConfigObj.webServiceMode==="switz"||this._pricingObj.useSpecialPrice){aPriceObj.standardOrg=aPriceObj.standard;aPriceObj.valueOrg=aPriceObj.value;aPriceObj.referenceOrg=aPriceObj.reference}else{aPriceObj.standardOrg=aPriceObj.standard;aPriceObj.valueOrg=aPriceObj.value;aPriceObj.referenceOrg=aPriceObj.reference}console.debug("OrderClass: Reference product price without shipping is "+aPriceObj.referenceOrg+"â¬"+this._ttcSuffix+" from "+aPriceObj.reference+"â¬"+this._ttcSuffix+" for product "+aProductType)};OrderClass.prototype._setIdOrders=function(aIdOrders,aOrderAmount,aPaymentMethod,aCoupon,aHasPreOrder){var date;date=new Date;localStorage.setItem("teqoWeb_idOrders",aIdOrders);localStorage.setItem("teqoWeb_orderAmount",aOrderAmount);localStorage.setItem("teqoWeb_paymentMethod",aPaymentMethod);localStorage.setItem("teqoWeb_paymentCoupon",aCoupon);localStorage.setItem("teqoWeb_paymentPreOrder",aHasPreOrder);localStorage.setItem("teqoWeb_orderDate",date.getTime())};OrderClass.prototype._getIdOrders=function(){var date,ref;ref=localStorage.getItem("teqoWeb_orderDate");if(ref){date=new Date;if(date.getTime()-ref>72e5){localStorage.setItem("teqoWeb_orderDate","")}else{return localStorage.getItem("teqoWeb_idOrders")}}return null};OrderClass.prototype._getOrderAmount=function(){return localStorage.getItem("teqoWeb_orderAmount")};OrderClass.prototype._getPaymentMethod=function(){return localStorage.getItem("teqoWeb_paymentMethod")};OrderClass.prototype._getPaymentCoupon=function(){return localStorage.getItem("teqoWeb_paymentCoupon")};OrderClass.prototype._setOrderEmail=function(aEmail){localStorage.setItem("teqoWeb_orderEmail",aEmail)};OrderClass.prototype._getOrderEmail=function(){return localStorage.getItem("teqoWeb_orderEmail")};OrderClass.prototype._getPaymentPreOrder=function(){var paymentPreOrder;paymentPreOrder=localStorage.getItem("teqoWeb_paymentPreOrder");if(typeof paymentPreOrder==="string"){if(paymentPreOrder==="true"){return true}return false}return paymentPreOrder};OrderClass.prototype._expandPackTab=function(aProductTab){var packObj,expandedTab,indProduct,indContent,indExisting,contentTab,productType,number;packObj=this._pricingObj.pack;if(!packObj){return aProductTab}expandedTab=[];for(indProduct=0;indProduct<aProductTab.length;indProduct+=1){contentTab=packObj.hasOwnProperty(aProductTab[indProduct].productType)?packObj[aProductTab[indProduct].productType].contentTab:null;if(!contentTab){expandedTab.push(aProductTab[indProduct])}else{console.warn("OrderClass: expanding pack "+aProductTab[indProduct].productType+" into
1its components");for(indContent=0;indContent<contentTab.length;indContent+=1){productType=contentTab[indContent].productType;if(!productType){productType=(aProductTab[indProduct].contentTab||[])[indContent];if(contentTab[indContent].choiceTab.indexOf(productType)<0){productType=contentTab[indContent].choiceTab[0]}}number=(contentTab[indContent].number||1)*aProductTab[indProduct].number;for(indExisting=0;indExisting<expandedTab.length;indExisting+=1){if(expandedTab[indExisting].productType===productType){expandedTab[indExisting].number+=number;break}}if(indExisting>=expandedTab.length){expandedTab.push({productType:productType,number:number})}}}}return expandedTab};OrderClass.prototype._dropWithdrawnProduct=function(aProductTab){var withdrawnTab,keptTab,indProduct;withdrawnTab=["cyclo","alana"];keptTab=[];for(indProduct=0;indProduct<aProductTab.length;indProduct+=1){if(withdrawnTab.indexOf(aProductTab[indProduct].productType)<0){keptTab.push(aProductTab[indProduct])}else{console.warn("OrderClass: dropping product no longer on sale: "+aProductTab[indProduct].productType)}}return keptTab};OrderClass.prototype._getCartObject=function(){var cartStr,cartObj;cartStr=localStorage.getItem("teqoWeb_cart");if(!cartStr){console.error("OrderClass: initiating pricing for country "+window._internalCountry.toLowerCase());return{productTab:[],country:window._internalCountry.toLowerCase(),shippingService:"Colissimo",shippingId:-1}}cartObj=JSON.parse(cartStr);cartObj.productTab=this._expandPackTab(cartObj.productTab);cartObj.productTab=this._dropWithdrawnProduct(cartObj.productTab);return cartObj};OrderClass.prototype._setCartObject=function(aCartObj){localStorage.setItem("teqoWeb_cart",JSON.stringify(aCartObj))};OrderClass.prototype._resetCartObject=function(aCartObj){var cartObj;cartObj=this._getCartObject();localStorage.setItem("teqoWeb_order",JSON.stringify(cartObj));localStorage.setItem("teqoWeb_cart","")};OrderClass.prototype._getOrderObject=function(){var cartStr;cartStr=localStorage.getItem("teqoWeb_order");return JSON.parse(cartStr)};OrderClass.prototype._countCartItem=function(){var cartObj,indProduct,productNb;cartObj=this._getCartObject();productNb=0;for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){productNb+=cartObj.productTab[indProduct].number}return productNb};OrderClass.prototype._dumpCartCountry=function(){var cartObj;cartObj=this._getCartObject();if(aSiteConfigObj.shippingCountry){cartObj.country=aSiteConfigObj.shippingCountry;this._setCartObject(cartObj)}if(cartObj.country){$("#orderProductCountry").val(cartObj.country)}};OrderClass.prototype._addCartItem=function(aProductType,aNumber,aSkipPackage){var cartObj,indProduct;cartObj=this._getCartObject();for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){if(cartObj.productTab[indProduct].productType===aProductType){if(aProductType==="airobs_01_test"){cartObj.productTab[indProduct].number=1}else{cartObj.productTab[indProduct].number+=aNumber;this._layerListener("add_to_cart",{productType:cartObj.productTab[indProduct].productType,quantity:aNumber})}console.debug("OrderClass: Setting "+cartObj.productTab[indProduct].number+" product "+aProductType+" in cart");break}}if(indProduct>=cartObj.productTab.length){console.debug("OrderClass: Setting "+aNumber+" product "+aProductType+" in cart");indProduct=cartObj.productTab.length;cartObj.productTab.push({productType:aProductType,number:aNumber});this._layerListener("add_to_cart",{productType:cartObj.productTab[indProduct].productType,quantity:aNumber})}this._setCartObject(cartObj);this._updateProductQuantity();if(!aSkipPackage){this._checkPackage()}};OrderClass.prototype._setCartItem=function(aProductType,aNumber,aSkipPackage){var cartObj,indProduct;cartObj=this._getCartObject();for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){if(cartObj.productTab[indProduct].productType===aProductType){console.debug("OrderClass: setting "+aNumber+" product "+aProductType+" in cart");if(cartObj.productTab[aIndProduct].number>aNumber){this._layerListener("remove_from_cart",{productType:cartObj.productTab[indProduct].productType,quantity:cartObj.productTab[aIndProduct].number-aNumber})}else{this._layerListener("add_to_cart",{productType:cartObj.productTab[indProduct].productType,quantity:aNumber-cartObj.productTab[aIndProduct].number})}cartObj.productTab[indProduct].number=aNumber;break}}if(indProduct>=cartObj.productTab.length){console.debug("OrderClass: setting "+aNumber+" product "+aProductType+" in cart");cartObj.productTab.push({productType:aProductType,number:aNumber});this._layerListener("add_to_cart",{productType:cartObj.productTab[indProduct].productType,quantity:aNumber})}this._setCartObject(cartObj);this._updateProductQuantity();if(!aSkipPackage){this._checkPackage()}};OrderClass.prototype._updateCartItem=function(aIndProduct,aNumber){var cartObj;cartObj=this._getCartObject();if(aNumber>0){console.debug("OrderClass: setting "+aNumber+" product "+cartObj.productTab[aIndProduct].productType+" in cart");if(cartObj.productTab[aIndProduct].number>aNumber){this._layerListener("remove_from_cart",{productType:cartObj.productTab[aIndProduct].productType,quantity:cartObj.productTab[aIndProduct].number-aNumber})}else{this._layerListener("add_to_cart",{productType:cartObj.productTab[aIndProduct].productType,quantity:aNumber-cartObj.productTab[aIndProduct].number})}cartObj.productTab[aIndProduct].number=aNumber}else{console.debug("OrderClass: removing product "+cartObj.productTab[aIndProduct].productType+" from cart");this._layerListener("remove_from_cart",{productType:cartObj.productTab[aIndProduct].productType,quantity:cartObj.productTab[aIndProduct].number});cartObj.productTab.splice(aIndProduct,1)}this._setCartObject(cartObj);this._updateProductQuantity()};OrderClass.prototype._setCartCash=function(aProductType,aValue){var cartObj,indProduct;cartObj=this._getCartObject();for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){if(cartObj.productTab[indProduct].productType===aProductType){console.debug("OrderClass: setting sale price "+aValue+" to product "+aProductType+" in cart");cartObj.productTab[indProduct].saleTtc=aValue;break}}this._setCartObject(cartObj)};OrderClass.prototype._reportSaleOnCash=function(aValue){var cartObj,indProduct,nbProduct,referenceTtc,saleTtc;cartObj=this._getCartObject();nbProduct=0;referenceTtc=0;for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){nbProduct+=cartObj.productTab[indProduct].number;referenceTtc+=cartObj.productTab[indProduct].number*(cartObj.productTab[indProduct].productTtc+cartObj.productTab[indProduct].shippingTtc)}if(aValue){saleTtc=(referenceTtc-aValue)/nbProduct}else{saleTtc=0}for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){cartObj.productTab[indProduct].saleTtc=saleTtc}this._setCartObject(cartObj)};OrderClass.prototype._removeCartItem=function(aProductType,aNumber,aSkipPackage){var cartObj,indProduct;cartObj=this._getCartObject();for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){if(cartObj.productTab[indProduct].productType===aProductType){if(cartObj.productTab[indProduct].number>aNumber){this._layerListener("remove_from_cart",{productType:cartObj.productTab[indProduct].productType,quantity:cartObj.productTab[indProduct].number-aNumber});cartObj.productTab[indProduct].number-=aNumber;console.debug("OrderClass: setting "+cartObj.productTab[indProduct].number+" product "+aProductType+" in cart")}else{this._layerListener("remove_from_cart",{productType:cartObj.productTab[indProduct].productType,quantity:cartObj.productTab[indProduct].number});console.debug("OrderClass: removing product "+aProductType+" from cart");cartObj.productTab.splice(indProduct,1)}break}}this._setCartObject(cartObj);this._updateProductQuantity();if(!aSkipPackage){this._checkPackage()}};OrderClass.prototype._listCartItem=function(){var cartObj,cartStr,sum,shipping,indProduct,productStr,priceObj,unit,real,total,hasTax;cartObj=this._getCartObject();cartStr="";for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){if(cartStr.length>0){cartStr+="<br />"}productStr=this._getProductName(cartObj.productTab[indProduct].productType);cartStr+=cartObj.productTab[indProduct].number+" "+productStr}$("#orderProductList").html(cartStr);$("#orderProductSubtotal").html(this._convertAmount(cartObj.ttlReferenceHt)+this._htSuffix
1);if(cartObj.ttlReferenceHt>0&&cartObj.ttlProductHt!==cartObj.ttlReferenceHt){$("#orderProductDiscountInput").show()}else{$("#orderProductDiscountInput").hide()}$("#orderProductDiscount").html("-"+this._convertAmount(cartObj.ttlReferenceTtc-cartObj.ttlProductTtc)+this._ttcSuffix);if(cartObj.ttlTaxRate>0){$("#orderProductTaxes").parent().show();$("#orderProductTaxRate").html(" ("+cartObj.ttlTaxRate+"%)");$("#orderProductTaxes").html(this._convertAmount(cartObj.ttlProductTva));if(cartObj.ttlShippingTtc>0){$("#orderProductShipping").show();$(".frenchShipping").hide();$("#orderProductShipping").html(this._convertAmount(cartObj.ttlShippingTtc)+this._ttcSuffix)}else{$("#orderProductShipping").hide();$(".frenchShipping").show()}$("#orderproductTotal").html(this._convertAmount(cartObj.totalTtc)+this._ttcSuffix)}else{$("#orderProductTaxes").parent().hide();if(cartObj.ttlShippingTtc>0){$("#orderProductShipping").show();$(".frenchShipping").hide();$("#orderProductShipping").html(this._convertAmount(cartObj.ttlShippingTtc)+this._htSuffix)}else{$("#orderProductShipping").hide();$(".frenchShipping").show()}$("#orderproductTotal").html(this._convertAmount(cartObj.totalTtc)+this._htSuffix)}window.orderProductAmount=this._normalizeNumber(cartObj.totalTtc);window.orderProductLang=this._lang;window.orderProductLanguage=this._language;window.orderProductEmail=this._getEmail()};OrderClass.prototype._packDetect=function(aProductTab,aHasSensor){var packObj,nbTeqAir200,nbTeqAir450,nbTeqAir100,nbDiscount,packTeqAir100,packDiscount,mxPack,indProduct,refTeqAir450,refTeqAir100,refDiscount,removeItem,indPack;packObj={indRef:[],valueOrg:0,referenceOrg:[],filteredProduct:0,hasPackAndProductWithNoPack:false,nbTeqAir200:0,nbTeqAir450:0};return packObj;if($("#packNoel").length>0){nbTeqAir200=0;nbTeqAir450=0;nbTeqAir100=0;nbDiscount=0;refTeqAir450=[];refTeqAir100=[];refDiscount=[];for(indProduct=0;indProduct<aProductTab.length;indProduct+=1){if(aProductTab[indProduct].productType.indexOf("teqair200_01")>=0){nbTeqAir200+=aProductTab[indProduct].number}else if(aProductTab[indProduct].productType.indexOf("teqair450_01")>=0){nbTeqAir450+=aProductTab[indProduct].number}else if(aProductTab[indProduct].productType==="teqair100_01_darkgrey_car"){nbTeqAir100+=aProductTab[indProduct].number;refTeqAir100.push(indProduct)}else if(aProductTab[indProduct].productType==="discount_christmas_2020"){nbDiscount+=aProductTab[indProduct].number;refDiscount.push(indProduct)}}console.debug("OrderClass: checking special pack with T200 "+nbTeqAir200+", T450 "+nbTeqAir450+", Nomad "+nbTeqAir100+", Discount "+nbDiscount);packTeqAir100=0;packDiscount=0;if(nbTeqAir200>=1&&nbTeqAir450>=1&&nbTeqAir100>=1){mxPack=nbTeqAir200;
1if(mxPack>nbTeqAir450){mxPack=nbTeqAir450}if(mxPack>nbTeqAir100){mxPack=nbTeqAir100}nbTeqAir200-=mxPack;nbTeqAir450-=mxPack;nbTeqAir100-=mxPack;packTeqAir100+=mxPack;packObj.nbTeqAir200+=mxPack;packObj.nbTeqAir450+=mxPack}if(nbTeqAir200>=2&&nbTeqAir100>=1){mxPack=parseInt(nbTeqAir200/2,10);if(mxPack>nbTeqAir100){mxPack=nbTeqAir100}nbTeqAir200-=2*mxPack;nbTeqAir100-=mxPack;packTeqAir100+=mxPack;packObj.nbTeqAir200+=2*mxPack}if(packTeqAir100>0||packDiscount>0){console.warn("OrderClass: Special pack has been detected ("+packTeqAir100+" Nomad & "+packDiscount+" Discount with remaining "+nbTeqAir100+" Nomad & "+nbDiscount+" Discount)");if(nbTeqAir100>0||nbTeqAir200>0||nbTeqAir450>0){console.warn("OrderClass: Product has been detected in addition to special pack");packObj.hasPackAndProductWithNoPack=true}}removeItem=-1;if(packTeqAir100>0&&nbTeqAir100>0){if(refTeqAir100.length===1){refTeqAir100.push(aProductTab.length);aProductTab.push(Object.clone(aProductTab[refTeqAir100[0]]))}aProductTab[refTeqAir100[0]].number=nbTeqAir100;aProductTab[refTeqAir100[1]].number=packTeqAir100;packObj.indRef.push(refTeqAir100[1]);packObj.referenceOrg.push(199)}else if(packTeqAir100>0){aProductTab[refTeqAir100[0]].number=packTeqAir100;if(refTeqAir100.length===2){aProductTab[refTeqAir100[1]].number=0;removeItem=refTeqAir100[1]}packObj.indRef.push(refTeqAir100[0]);packObj.referenceOrg.push(199)}else if(nbTeqAir100>0){aProductTab[refTeqAir100[0]].number=nbTeqAir100;if(refTeqAir100.length===2){aProductTab[refTeqAir100[1]].number=0;removeItem=refTeqAir100[1]}}else{if(refTeqAir100.length>0){aProductTab[refTeqAir100[0]].number=0;removeItem=refTeqAir100[0]}}if(removeItem>=0){if(refTeqAir100.length>0&&refTeqAir100[0]>removeItem){refTeqAir100[0]-=1}if(refTeqAir100.length>1&&refTeqAir100[1]>removeItem){refTeqAir100[1]-=1}aProductTab.splice(removeItem,1);for(indPack=0;indPack<packObj.indRef.length;indPack+=1){if(packObj.indRef[indPack]>removeItem){packObj.indRef[indPack]-=1}}}removeItem=-1;if(packDiscount>0){aProductTab[refDiscount[0]].number=packDiscount;nbDiscount=0;packObj.indRef.push(refDiscount[0]);packObj.referenceOrg.push(0);packObj.valueOrg=-50}else if(nbDiscount>0){removeItem=refDiscount[0]}if(removeItem>=0){if(refTeqAir100.length>0&&refTeqAir100[0]>removeItem){refTeqAir100[0]-=1}if(refTeqAir100.length>1&&refTeqAir100[1]>removeItem){refTeqAir100[1]-=1}aProductTab.splice(removeItem,1);for(indPack=0;indPack<packObj.indRef.length;indPack+=1){if(packObj.indRef[indPack]>removeItem){packObj.indRef[indPack]-=1}}}}return packObj};OrderClass.prototype._packManageCoupon=function(aPackObj,aCartObj){var coupon;if(aCartObj.coupon&&aPackObj.indRef.length>0){coupon=this._identifyCartCoupon(aCartObj.coupon);if(this._pricingObj.coupons.hasOwnProperty(coupon)){if(this._pricingObj.product[coupon].hasOwnProperty("supportPack")&&this._pricingObj.product[coupon].supportPack){return}}console.warn("OrderClass: Removing coupon not compatible with special pack");$("#orderCoupon").addClass("is-invalid");aCartObj.coupon="";this._setCartObject(aCartObj)}};OrderClass.prototype._dumpCartItem=function(){var cartObj,cartStr,nbSensor,nbS1,nbE500,nbNoctua,nbT200,hasTMA,hasSensor,nbProduct,nbProductButNomad,isCandidate,nbPackS1,sum,shipping,indProduct,indProduct2,productStr,priceObj,unit,sale,real,ref,total,indNumber,hasTax,taxRate,taxValue,referenceHt,productHt,saleTtc,referenceTtc,productTtc,nbProductHt,nbProductTtc,ttlSaleTtc,ttlProductTva,ttlReferenceHt,ttlProductHt,ttlReferenceTtc,ttlProductTtc,shippingTtc,ttlShippingTtc,packObj,indPack;cartStr="";nbSensor=0;nbS1=0;nbE500=0;nbNoctua=0;nbT200=0;nbPackS1=0;hasTMA=false;hasSensor=false;nbProduct=0;nbProductButNomad=0;isCandidate=false;ttlReferenceHt=0;ttlReferenceTtc=0;ttlProductHt=0;ttlProductTtc=0;ttlShippingTtc=0;ttlProductTva=0;ttlSaleTtc=0;cartObj=this._getCartObject();for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){if($("#sensorOption").length>0&&$("#sensorOption").is(":checked")&&(cartObj.productTab[indProduct].productType==="sensor_01_laser_egg_2"||cartObj.productTab[indProduct].productType==="sensor_02_laser_egg_co2")){}else if(cartObj.productTab[indProduct].productType==="airobs_01_test"||cartObj.productTab[indProduct].productType==="airobs_01_month"){}else{if(cartObj.productTab[indProduct].productType!=="teqair100_01_wooden_foot"&&cartObj.productTab[indProduct].productType!=="other_01_cleaning_kit"){nbProduct+=cartObj.productTab[indProduct].number;if(cartObj.productTab[indProduct].productType!=="teqsensor_01_s1"&&cartObj.productTab[indProduct].productType!=="teqair100_01_darkgrey_car"&&cartObj.productTab[indProduct].productType!=="teqair100_01_darkgrey_indoor"){nbProductButNomad+=cartObj.productTab[indProduct].number}}if(cartObj.productTab[indProduct].productType==="e500_02_connected"){nbE500+=cartObj.productTab[indProduct].number}if(cartObj.productTab[indProduct].productType==="e500_04_connected"){nbNoctua+=cartObj.productTab[indProduct].number}if(cartObj.productTab[indProduct].productType==="teqsensor_01_s1"){nbS1+=cartObj.productTab[indProduct].number}}}if(nbS1>0&&(nbE500>0||nbNoctua>0||nbT200>0)){if(nbS1>0&&nbNoctua>0){if(nbS1>nbNoctua){nbPackS1+=nbNoctua;nbS1-=nbNoctua;nbNoctua=0}else{nbPackS1+=nbS1;nbNoctua-=nbS1;nbS1=0}if(nbProduct-nbS1-nbNoctua>0){isCandidate=true}}if(nbS1>0&&nbE500>0){if(nbS1>nbE500){nbPackS1+=nbE500;nbS1-=nbE500;nbE500=0}else{nbPackS1+=nbS1;nbE500-=nbS1;nbS1=0}if(nbProduct-nbS1-nbE500>0){isCandidate=true}}if(nbS1>0&&nbT200>0){if(nbS1>nbT200){nbPackS1+=nbT200;nbS1-=nbT200;nbT200=0}else{nbPackS1+=nbS1;nbT200-=nbS1;nbS1=0}if(nbProduct-nbS1-nbT200>0){isCandidate=true}}}else{nbPackS1=0;if(nbProduct>1){isCandidate=true}}for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){if(cartObj.productTab[indProduct].productType==="teqsensor_01_s1"||cartObj.productTab[indProduct].productType==="sensor_01_laser_egg_2"||c
1artObj.productTab[indProduct].productType==="sensor_02_laser_egg_co2"){if($("#sensorOption").length>0&&$("#sensorOption").is(":checked")){nbSensor+=1}else if(cartObj.productTab[indProduct].productType==="teqsensor_01_s1"){hasSensor=true}}else if(cartObj.productTab[indProduct].productType==="airobs_01_test"){hasTMA=true;hasSensor=true}}if(nbProductButNomad<1||hasSensor){$("#sensoCalling").hide()}else{$("#sensoCalling").show();$("#airobs_01_test_addToCartButton").prop("checked",false)}if(nbSensor>0||hasTMA){$("#sensorWarning").show()}else{$("#sensorWarning").hide()}packObj=this._packDetect(cartObj.productTab,nbSensor);this._packManageCoupon(packObj,cartObj);console.error("T200 "+packObj.nbTeqAir200+" - T450 "+packObj.nbTeqAir450);indProduct2=cartObj.productTab.length;for(indProduct=0;indProduct<indProduct2;indProduct+=1){cartObj.productTab[indProduct].nbPacked=0;if(packObj.nbTeqAir200>0&&cartObj.productTab[indProduct].productType.indexOf("teqair200_01")>=0){if(packObj.nbTeqAir200>cartObj.productTab[indProduct].number){cartObj.productTab[indProduct].nbPacked=cartObj.productTab[indProduct].number;packObj.nbTeqAir200-=cartObj.productTab[indProduct].number}else{cartObj.productTab[indProduct].nbPacked=packObj.nbTeqAir200;packObj.nbTeqAir200=0}}if(packObj.nbTeqAir450>0&&cartObj.productTab[indProduct].productType.indexOf("teqair450_01")>=0){if(packObj.nbTeqAir450>cartObj.productTab[indProduct].number){cartObj.productTab[indProduct].nbPacked=cartObj.productTab[indProduct].number;packObj.nbTeqAir450-=cartObj.productTab[indProduct].number}else{cartObj.productTab[indProduct].nbPacked=packObj.nbTeqAir450;packObj.nbTeqAir450=0}}}taxRate=this._getTaxRate(cartObj.country);hasTax=this._hasTax(cartObj.country);for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){productStr=this._getProductName(cartObj.productTab[indProduct].productType);priceObj=this._getUnitPrice(cartObj.productTab[indProduct].productType,cartObj.coupon,cartObj.godFather,this._isSuperGodfather(cartObj.godFather));this._getOrgPrice(priceObj,cartObj.productTab[indProduct].productType,hasTax,nbSensor,cartObj.country);indPack=packObj.indRef.indexOf(indProduct);if($("#orderVatReference").length>0){referenceTtc=priceObj.valueOrg;productTtc=priceObj.valueOrg}else if(indPack<0){referenceTtc=priceObj.referenceOrg;if(cartObj.productTab[indProduct].nbPacked>0){productTtc=(cartObj.productTab[indProduct].nbPacked*priceObj.referenceOrg+(cartObj.productTab[indProduct].number-cartObj.productTab[indProduct].nbPacked)*priceObj.valueOrg)/cartObj.productTab[indProduct].number}else{productTtc=priceObj.valueOrg}}else{referenceTtc=packObj.referenceOrg[indPack];productTtc=packObj.valueOrg}saleTtc=0;console.debug("OrderClass: with defaut tax product price is "+productTtc+"â¬"+this._ttcSuffix+" with reference "+referenceTtc+"â¬"+this._ttcSuffix);if(false&&hasTax){taxValue=(100+taxRate)/100;referenceHt=referenceTtc/aSiteConfigObj.vatPercent;productHt=productTtc/aSiteConfigObj.vatPercent;console.debug("OrderClass: with no tax product price is "+productHt+"⬠HT with reference "+referenceHt+"⬠HT");if(aSiteConfigObj.vatPercent!==taxValue){referenceTtc=referenceHt*taxValue;productTtc=productHt*taxValue;console.debug("OrderClass: switching from VAT "+aSiteConfigObj.vatPercent+" to "+taxValue);console.debug("OrderClass: with specific tax product price is "+productTtc+"â¬"+this._ttcSuffix+" with reference "+referenceTtc+"â¬"+this._ttcSuffix)}}else if($("#orderVatReference").length>0){taxValue=(100+taxRate)/100;referenceHt=referenceTtc/aSiteConfigObj.vatPercent;productHt=productTtc/aSiteConfigObj.vatPercent;if(!taxRate){referenceTtc=referenceHt;productTtc=productHt}console.debug("OrderClass: with no tax product price is "+productHt+"⬠HT with reference "+referenceHt+"⬠HT")}else{referenceHt=referenceTtc;productHt=productTtc}if($("#orderProductCashMode").length>0&&cartObj.productTab[indProduct].hasOwnProperty("saleTtc")&&cartObj.productTab[indProduct].saleTtc){saleTtc=cartObj.productTab[indProduct].saleTtc;ttlSaleTtc+=saleTtc*cartObj.productTab[indProduct].number;nbProductTtc=(productTtc-saleTtc)*cartObj.productTab[indProduct].number;ttlProductTtc+=(productTtc-saleTtc)*cartObj.productTab[indProduct].number}else{if(priceObj.limit){nbProductTtc=productTtc*priceObj.limit+priceObj.standardOrg*(cartObj.productTab[indProduct].number-priceObj.limit);ttlProductTtc+=productTtc*priceObj.limit+priceObj.standardOrg*(cartObj.productTab[indProduct].number-priceObj.limit)}else{nbProductTtc=productTtc*cartObj.productTab[indProduct].number;ttlProductTtc+=productTtc*cartObj.productTab[indProduct].number}}if(isCandidate&&productTtc>0&&(cartObj.productTab[indProduct].productType==="e500_02_connected"||cartObj.productTab[indProduct].productType==="e500_04_connected")){if(cartObj.productTab[indProduct].productType==="e500_04_connected"&&nbNoctua>0){sum=nbProductTtc;unit=nbProductTtc/cartObj.productTab[indProduct].number;nbProductTtc=nbNoctua*unit*.9;nbProductTtc+=(cartObj.productTab[indProduct].number-nbNoctua)*unit;ttlProductTtc-=sum-nbProductTtc}if(cartObj.productTab[indProduct].productType==="e500_02_connected"&&nbE500>0){sum=nbProductTtc;unit=nbProductTtc/cartObj.productTab[indProduct].number;nbProductTtc=nbE500*unit*.9;nbProductTtc+=(cartObj.productTab[indProduct].number-nbE500)*unit;ttlProductTtc-=sum-nbProductTtc}productTtc=nbProductTtc/cartObj.productTab[indProduct].number;nbProduct+=cartObj.productTab[indProduct].number}else if(false&&isCandidate&&productTtc>0&&(cartObj.productTab[indProduct].productType==="teqair200_01_blue"||cartObj.productTab[indProduct].productType==="teqair200_01_darkgrey"||cartObj.productTab[indProduct].productType==="teqair200_01_lightgrey"||cartObj.productTab[indProduct].productType==="teqair200_01_pinkclay")){if(nbT200>0){sum=nbProductTtc;unit=nbProductTtc/cartObj.productTab[indProduct].number;if(nbT200>cartObj.productTab[indProduct].number){nbProductTtc=cartObj.productTab[indProduct].number*unit*.9}else{nbProductTtc=nbT200*unit*.9;nbProductTtc+=(cartObj.productTab[indProduct].number-nbT200)*unit}nbT200-=cartObj.productTab[indProduct].number;ttlProductTtc-=sum-nbProductTtc}productTtc=nbProductTtc/cartObj.productTab[indProduct].number;nbProduct+=cartObj.productTab[indProduct].number}else if(isCandidate&&productTtc>0&&cartObj.productTab[indProduct].productType==="teqsensor_01_s1"){if(nbS1>0){sum=nbProductTtc;unit=nbProductTtc/cartObj.productTab[indProduct].number;nbProductTtc=nbS1*unit*.9;nbProductTtc+=(cartObj.productTab[indProduct].number-nbS1)*unit;ttlProductTtc-=sum-nbProductTtc}productTtc=nbProductTtc/cartObj.productTab[indProduct].number;nbProduct+=cartObj.productTab[indProduct].number}else if(isCandidate&&productTtc>0&&cartObj.productTab[indProduct].productType!=="teqsensor_01_s1"){if(cartObj.productTab[indProduct].productType!=="teqair100_01_wooden_foot"&&cartObj.productTab[indProduct].productType!=="other_01_cleaning_kit"){console.debug("OrderClass: Applying 10% reduction on "+cartObj.productTab[indProduct].number+" products "+cartObj.productTab[indProduct].productType+" with price "+nbProductTtc+" as "+(ttlProductTtc-.1*nbProductTtc));ttlProductTtc-=.1*nbProductTtc;nbProductTtc-=.1*nbProductTtc;productTtc=nbProductTtc/cartObj.productTab[indProduct].number;nbProduct+=cartObj.productTab[indProduct].number}}if(cartObj.productTab[indProduct].productType==="teqsensor_01_s1"&&nbPackS1>0){console.debug("OrderClass: According 100⬠due to several products with teqsensor_01_s1");ttlProductTtc-=nbPackS1*100;nbProductTtc-=nbPackS1*100;productTtc=nbProductTtc/cartObj.productTab[indProduct].number;nbProduct+=cartObj.productTab[indProduct].number}if(this._hasUserStatistics()){console.debug("OrderClass: According additional -2% due to answer to howknown");productTtc-=productTtc*2/100;nbProductTtc-=nbProductTtc*2/100;if(indProduct===cartObj.productTab.length-1){ttlProductTtc-=ttlProductTtc*2/100}}ttlReferenceTtc+=referenceTtc*cartObj.productTab[indProduct].number;if(false&&hasTax){nbProductHt=nbProductTtc/taxValue;ttlReferenceHt=ttlReferenceTtc/taxValue;ttlProductHt=ttlProductTtc/taxValue}else if($("#orderVatReference").length>0){nbProductHt=nbProductTtc/taxValue;ttlReferenceHt=ttlReferenceTtc/taxValue;ttlProductHt=ttlProductTtc/taxValue}else{nbProductHt=nbProductTtc;ttlReferenceHt=ttlReferenceTtc;ttlProductHt=ttlProductTtc}if(this._cartStep>=2&&indPack<0||$("#orderVatReference").length>0){shippingTtc=this._getShippingPrice(cartObj.productTab[indProduct].productType,cartObj.country,nbSensor);
1if(false&&hasTax){shippingTtc=shippingTtc/aSiteConfigObj.vatPercent*taxValue}}else{shippingTtc=0}ttlShippingTtc+=shippingTtc*cartObj.productTab[indProduct].number;cartStr+="<tr><td id='orderProductName"+indProduct+"'>"+productStr+(indPack>=0?" (free)":"")+"</td>";if(cartObj.productTab[indProduct].productType!=="airobs_01_test"&&cartObj.productTab[indProduct].productType!=="sensor_01_laser_egg_2"&&cartObj.productTab[indProduct].productType!=="sensor_02_laser_egg_co2"){cartStr+="<td class='py-2'><input type='number' pattern='[0-9]*' class='form-control py-1' id='orderProductQuantity"+indProduct+"' value='"+cartObj.productTab[indProduct].number+"' min='0' onchange=\"javascript:updateFromCart('"+cartObj.productTab[indProduct].productType+"', "+indProduct+')"></td>'}else{cartStr+="<td class='py-2'><input type='number' pattern='[0-9]*' class='form-control py-1' id='orderProductQuantity"+indProduct+"' value='"+cartObj.productTab[indProduct].number+"' min='0' disabled=''></td>"}if($("#orderVatReference").length>0){cartStr+="<td id='orderProductHt"+indProduct+"'>"+this._convertAmount(referenceHt*cartObj.productTab[indProduct].number)+"</td>"}cartStr+="<td><span id='orderProductRemove"+indProduct+"' class='clickable' onclick=\"javascript:removeFromCart('"+cartObj.productTab[indProduct].productType+"',"+cartObj.productTab[indProduct].number+")\"><i class='fa fa-times' aria-hidden='true'></i></span></td></tr>";cartObj.productTab[indProduct].referenceTtc=referenceTtc;cartObj.productTab[indProduct].productTtc=productTtc;cartObj.productTab[indProduct].nbProductTtc=nbProductTtc;cartObj.productTab[indProduct].shippingTtc=shippingTtc}if(!cartStr){cartStr="<tr><td colspan='5'> </td></tr>"}ttlProductTva=this._normalizeNumber(ttlReferenceTtc-ttlReferenceHt);$("#orderCartList").html(cartStr);if(false&&ttlReferenceHt>0&&ttlProductHt!==ttlReferenceHt){$("#orderProductSubtotal").html("<small><s>"+this._convertAmount(ttlReferenceHt)+"</s></small> "+this._convertAmount(ttlProductHt)+this._htSuffix);$("#orderProductDiscount").html(this._convertAmount(ttlReferenceHt-ttlProductHt)+"");if(hasTax){$("#orderProductTaxRate").html(" ("+taxRate+"%)")}else{$("#orderProductTaxRate").html("")}$("#orderProductTaxes").html(this._convertAmount(ttlProductTva)+"");$("#orderProductShipping").html(this._convertAmount(ttlShippingTtc)+this._ttcSuffix);$("#orderproductTotal").html("<small><s>"+this._convertAmount(ttlReferenceTtc+ttlShippingTtc)+"</s></small> "+this._convertAmount(ttlProductTtc+ttlShippingTtc)+this._ttcSuffix)}else{if($("#orderVatReference").length>0){$("#orderProductSubtotal").html(this._convertAmount(ttlReferenceHt)+this._htSuffix)}else{$("#orderProductSubtotal").html(this._convertAmount(ttlReferenceHt)+(hasTax?this._ttcSuffix:this._htSuffix))}if($("#orderCashPrice").length>0){}else if(ttlReferenceTtc>0&&ttlProductTtc!==ttlReferenceTtc){$("#orderProductDiscountInput").show()}else{$("#orderProductDiscountInput").hide()}$("#orderProductDiscount").html("-"+this._convertAmount(ttlReferenceTtc-ttlProductTtc)+this._ttcSuffix);if(false&&hasTax){$("#orderProductTaxes").parent().show();$("#orderProductTaxRate").html(" ("+taxRate+"%)");$("#orderProductTaxes").html(this._convertAmount(ttlProductTva)+"");this._showShipping(ttlShippingTtc);if(ttlShippingTtc>0){$(".frenchShipping").hide();$(".unfrenchShipping").show();$("#orderProductShipping").html(this._convertAmount(ttlShippingTtc)+this._ttcSuffix)}else{$(".unfrenchShipping").hide();$(".frenchShipping").show()}if($("#orderProductCashMode").length>0){$("#orderproductTotal").val(ttlProductTtc+ttlShippingTtc)}else{$("#orderproductTotal").html("<strong>"+this._convertAmount(ttlProductTtc+ttlShippingTtc)+this._ttcSuffix+"</strong>")}}else if($("#orderVatReference").length>0){$("#orderProductTaxes").parent().show();$("#orderProductTaxRate").html(" ("+taxRate+"%)");$("#orderProductTaxes").html(this._convertAmount(ttlProductTva)+"");if(ttlShippingTtc>0){$(".frenchShipping").hide();$(".unfrenchShipping").show();$("#orderProductShipping").html(this._convertAmount(ttlShippingTtc)+this._ttcSuffix)}else{$(".unfrenchShipping").hide();$(".frenchShipping").show()}if($("#orderProductCashMode").length>0){$("#orderproductTotal").val(ttlProductTtc+ttlShippingTtc)}else{$("#orderproductTotal").html("<strong>"+this._convertAmount(ttlProductTtc+ttlShippingTtc)+this._ttcSuffix+"</strong>")}}else{$("#orderProductTaxes").parent().hide();if(ttlShippingTtc>0){$(".frenchShipping").hide();$(".unfrenchShipping").show();$("#orderProductShipping").html(this._convertAmount(ttlShippingTtc)+(hasTax?this._ttcSuffix:this._htSuffix
1))}else{$(".unfrenchShipping").hide();$(".frenchShipping").show()}if($("#orderProductCashMode").length>0){$("#orderproductTotal").val(ttlProductTtc+ttlShippingTtc)}else{$("#orderproductTotal").html("<strong>"+this._convertAmount(ttlProductTtc+ttlShippingTtc)+(hasTax?this._ttcSuffix:this._htSuffix)+"</strong>")}}}cartObj.ttlTaxRate=taxRate;cartObj.ttlReferenceHt=ttlReferenceHt/((100+taxRate)/100);cartObj.ttlProductHt=ttlProductHt/((100+taxRate)/100);cartObj.ttlReferenceTtc=ttlReferenceTtc;cartObj.ttlProductTtc=ttlProductTtc;cartObj.ttlProductTva=ttlProductTtc-cartObj.ttlProductHt;cartObj.ttlShippingTtc=ttlShippingTtc;cartObj.totalTtc=this._normalizeNumber(ttlProductTtc+ttlShippingTtc);this._setCartObject(cartObj)};OrderClass.prototype._enumCartItem=function(){var cartObj,cartStr,indProduct,productStr,packObj,indPack,discount,hasS1,hasE500Standard,hasNoctuaStandard;console.error("OrderClass: Updating enum cart list");if($("#orderCartEnum").length>0){if($("#orderCartSelect").length>0){$(".orderProductSelect").hide()}cartObj=this._getCartObject();packObj=this._packDetect(cartObj.productTab,false);this._packManageCoupon(packObj,cartObj);console.error("T200 "+packObj.nbTeqAir200+" - T450 "+packObj.nbTeqAir450);cartStr="";hasS1=false;hasE500Standard=false;hasNoctuaStandard=false;for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){productStr=this._getProductName(cartObj.productTab[indProduct].productType);indPack=packObj.indRef.indexOf(indProduct);if(indPack>=0){if(this._lang==="fr"){productStr+=" (gratuit)"}else{productStr+=" (free)"}}cartStr+="<tr>";cartStr+="<td>"+cartObj.productTab[indProduct].number+"</td>";cartStr+="<td>"+productStr+"</td>";cartStr+="</tr>";if($("#orderCartSelect").length>0){if(indPack>=0){$("."+cartObj.productTab[indProduct].productType+"_select"+"_christmas").show();$("#orderProductQuantity_"+cartObj.productTab[indProduct].productType+"_christmas").val(cartObj.productTab[indProduct].number)}else{$("."+cartObj.productTab[indProduct].productType+"_select").show();$("#orderProductQuantity_"+cartObj.productTab[indProduct].productType).val(cartObj.productTab[indProduct].number);if(cartObj.productTab[indProduct].referenceTtc>cartObj.productTab[indProduct].productTtc){discount=(cartObj.productTab[indProduct].referenceTtc-cartObj.productTab[indProduct].productTtc)*cartObj.productTab[indProduct].number;$("#orderProductDiscount_"+cartObj.productTab[indProduct].productType).html("(-"+this._convertAmount(discount)+")")}else{$("#orderProductDiscount_"+cartObj.productTab[indProduct].productType).html("")}}$("#airobs_01_test_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"airobs_01_test"))}if(cartObj.productTab[indProduct].productType==="teqsensor_01_s1"){hasS1=true}if(cartObj.productTab[indProduct].productType==="e500_01_standard"){hasE500Standard=true}if(cartObj.productTab[indProduct].productType==="e500_03_standard"){hasNoctuaStandard=true}}$("#orderCartEnum").html(cartStr);if(hasS1&&hasNoctuaStandard){$("#orderProductConnected2Warning").show()}else{$("#orderProductConnected2Warning").hide()}if(hasS1&&hasE500Standard){$("#orderProductConnectedWarning").show()}else{$("#orderProductConnectedWarning").hide()}}};OrderClass.prototype._leaveWithProductQuantity=function(aEvent){var navigationStr,navigationObj,event,from;navigationStr=localStorage.getItem("teqoWeb_navigationObj");if(!navigationStr){if(window.document.addEventListener){window.document.removeEventListener("mouseout",this._leaveWithProductQuantityCallback)}else{window.document.detachEvent("onmouseout",this._leaveWithProductQuantityCallback)}return}navigationObj=JSON.parse(navigationStr);if(navigationObj.hasDisplayed){if(window.document.addEventListener){window.document.removeEventListener("mouseout",this._leaveWithProductQuantityCallback)}else{window.document.detachEvent("onmouseout",this._leaveWithProductQuantityCallback)}return}event=aEvent?aEvent:window.event;from=event.relatedTarget||event.toElement;if(!from||from.nodeName==="HTML"){console.debug("Leave popup invoked "+event.clientX+"/"+window.innerWidth+" - "+event.clientY+"/"+window.innerHeight);if(event.clientX<=0||event.clientX>
1=window.innerWidth||event.clientY<=0||event.clientY>=window.innerHeight){if(window.document.addEventListener){window.document.removeEventListener("mouseout",this._leaveWithProductQuantityCallback)}else{window.document.detachEvent("onmouseout",this._leaveWithProductQuantityCallback)}navigationObj.hasDisplayed=true;localStorage.setItem("teqoWeb_navigationObj",JSON.stringify(navigationObj));if($("#leaveModal").length>0){$("#leaveModal").modal("show")}}}};OrderClass.prototype._updateProductQuantity=function(){var cartObj,quantity,indProduct,navigationStr,navigationObj;cartObj=this._getCartObject();quantity=0;for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){quantity+=cartObj.productTab[indProduct].number}if(quantity>0){$(".productQuantity").html(quantity);$(".productQuantity").show()}else{$(".productQuantity").hide()}};OrderClass.prototype._getProductPrice=function(aProductType,aQuantity){var priceObj,total;priceObj=this._getUnitPrice(aProductType,"","");if(priceObj.limit){total=priceObj.value*priceObj.limit+priceObj.standard*(aQuantity-priceObj.limit)}else{total=priceObj.value*aQuantity}if(priceObj.value!==priceObj.reference){$("#orderProductPrice").html("<small><s>"+this._convertAmount(priceObj.reference*aQuantity)+"</s></small> "+this._convertAmount(total)+this._ttcSuffix);$(".productPrice").html("<small><s>"+this._convertAmount(priceObj.reference*aQuantity)+"</s></small> "+this._convertAmount(total)+this._ttcSuffix)}else{$("#orderProductPrice").html(this._convertAmount(total)+this._ttcSuffix);$(".productPrice").html(this._convertAmount(total)+this._ttcSuffix)}};OrderClass.prototype._getProductCatalog=function(aProductType){var priceObj,reference,value;if($("."+aProductType+"_catalogProduct").length>0){priceObj=this._getUnitPrice(aProductType,"","");if(this._pricingObj.useSpecialPrice){value=priceObj.value/1.2;reference=priceObj.reference/1.2;if(priceObj.value!==priceObj.reference){$("."+aProductType+"_catalogProduct").html("<small><s>"+this._convertAmount(reference)+"</s></small> "+this._convertAmount(value)+this._htSuffix)}else{$("."+aProductType+"_catalogProduct").html(this._convertAmount(value)+this._htSuffix)}}else{if(false){if(priceObj.value!==priceObj.reference){$("."+aProductType+"_catalogProduct").html("<small><s>"+this._convertAmount(priceObj.reference)+"</s></small> "+this._convertAmount(priceObj.value)+this._ttcSuffix)}else{$("."+aProductType+"_catalogProduct").html(this._convertAmount(priceObj.value)+this._ttcSuffix)}}else{if(priceObj.value!==priceObj.reference){$("."+aProductType+"_catalogProduct").html("<small><s>"+this._displayAmount(priceObj.reference)+"</s></small> "+this._displayAmount(priceObj.value))}else{$("."+aProductType+"_catalogProduct").html(this._displayAmount(priceObj.value))}}}}};OrderClass.prototype._getProductChristmas=function(aProductType1,aProductType2){var priceObj1,priceObj2,priceObj3,reference,value;if($("."+aProductType2+"_catalogChristmas").length>0){priceObj1=this._getUnitPrice(aProductType1,"","");priceObj2=this._getUnitPrice(aProductType2,"","");priceObj3=this._getUnitPrice("teqair100_01_darkgrey_car","","");reference=priceObj1.reference+priceObj2.reference+priceObj3.reference;value=priceObj1.reference+priceObj2.reference;$("."+aProductType2+"_catalogChristmas").html("<small><s>"+this._convertAmount(reference)+"</s></small> "+this._convertAmount(value)+this._ttcSuffix)}};OrderClass.prototype._getProductPack=function(aPackName){var priceObj1,priceObj2,reference,value;if(aPackName==="pack_e500_02_connected_teqsensor_01_s1"){priceObj1=this._getUnitPrice("e500_02_connected","","");priceObj2=this._getUnitPrice("teqsensor_01_s1","","");reference=priceObj1.reference+priceObj2.reference;value=priceObj1.reference+priceObj2.reference-100;$("."+aPackName+"_catalogProduct").html("<small><s>"+this._convertAmount(reference)+"</s></small> "+this._convertAmount(value)+this._ttcSuffix)}else if(aPackName==="pack_e500_04_connected_teqsensor_01_s1"){priceObj1=this._getUnitPrice("e500_04_connected","","");priceObj2=this._getUnitPrice("teqsensor_01_s1","","");reference=priceObj1.reference+priceObj2.reference;value=priceObj1.reference+priceObj2.reference-100;$("."+aPackName+"_catalogProduct").html("<small><s>"+this._convertAmount(reference)+"</s></small> "+this._convertAmount(value)+this._ttcSuffix)}else if(aPackName==="teqair200_01_s1_pack_blue"){priceObj1=this._getUnitPrice("teqair200_01_blue","","");priceObj2=this._getUnitPrice("teqsensor_01_s1","","");reference=priceObj1.reference+priceObj2.reference;value=priceObj1.reference+priceObj2.reference-100;$("."+"teqair200_01_s1_pack"+"_catalogProduct").html("<small><s>"+this._convertAmount(reference)+"</s></small> "+this._convertAmount(value)+this._ttcSuffix)}
1else if(aPackName==="teqair200_01_s1_pack_darkgrey"){priceObj1=this._getUnitPrice("teqair200_01_darkgrey","","");priceObj2=this._getUnitPrice("teqsensor_01_s1","","");reference=priceObj1.reference+priceObj2.reference;value=priceObj1.reference+priceObj2.reference-100;$("."+"teqair200_01_s1_pack"+"_catalogProduct").html("<small><s>"+this._convertAmount(reference)+"</s></small> "+this._convertAmount(value)+this._ttcSuffix)}else if(aPackName==="teqair200_01_s1_pack_lightgrey"){priceObj1=this._getUnitPrice("teqair200_01_lightgrey","","");priceObj2=this._getUnitPrice("teqsensor_01_s1","","");reference=priceObj1.reference+priceObj2.reference;value=priceObj1.reference+priceObj2.reference-100;$("."+"teqair200_01_s1_pack"+"_catalogProduct").html("<small><s>"+this._convertAmount(reference)+"</s></small> "+this._convertAmount(value)+this._ttcSuffix)}else if(aPackName==="teqair200_01_s1_pack_pinkclay"){priceObj1=this._getUnitPrice("teqair200_01_pinkclay","","");priceObj2=this._getUnitPrice("teqsensor_01_s1","","");reference=priceObj1.reference+priceObj2.reference;value=priceObj1.reference+priceObj2.reference-100;$("."+"teqair200_01_s1_pack"+"_catalogProduct").html("<small><s>"+this._convertAmount(reference)+"</s></small> "+this._convertAmount(value)+this._ttcSuffix)}};OrderClass.prototype._getAddressObject=function(){var addressStr;addressStr=localStorage.getItem("teqoWeb_address");if(!addressStr){return{isShippingSpecific:false,isNewCustomer:true,billing:{firstname:"",lastname:"",company:"",street1:"",street2:"",code:"",town:"",country:window._internalCountry,email:"",phone:"",note:""},shipping:{firstname:"",lastname:"",company:"",street1:"",street2:"",code:"",town:"",country:window._internalCountry,email:"",phone:""}}}return JSON.parse(addressStr)};OrderClass.prototype._setAddressObject=function(aAddressObj){localStorage.setItem("teqoWeb_address",JSON.stringify(aAddressObj))};OrderClass.prototype._resetAddress=function(){localStorage.setItem("teqoWeb_address","")};OrderClass.prototype._setEmail=function(aEmail,aCheckIfNew){var addressObj,email,hasUpdatedAddress,addressTab,nameTab;addressObj=this._getAddressObject();if(!aEmail){if(addressObj.isShippingSpecific){email=addressObj.billing.email}else{email=addressObj.shipping.email}}else{email=aEmail}if(aEmail){localStorage.setItem("teqoWeb_orderEmail",aEmail)}if(aCheckIfNew){coreObj.queue([function(aNext){this._restServiceObj.add(aNext,aSiteConfigObj.useCrosser,aSiteConfigObj.emailRegistrationUrl,{email:email})},function(aNext,aResult){if(!aResult.data.hasOwnProperty("contentTab")){aResult.data.contentTab={}}if(!aResult.data.contentTab.hasOwnProperty("orderTab")){aResult.data.contentTab.orderTab=[]}console.debug("OrderClass: "+aResult.data.contentTab.orderTab.length+" orders found for email "+email);addressObj.isNewCustomer=aResult.data.contentTab.orderTab.length>0?false:true;if(aEmail){addressObj.shipping.email=aEmail;addressObj.billing.email=aEmail;console.debug("OrderClass: setting user email "+aEmail);hasUpdatedAddress=false;if(aResult.data.contentTab.orderTab.length>0){if(!addressObj.shipping.lastname&&!addressObj.shipping.code&&!addressObj.shipping.town){addressTab=aResult.data.contentTab.orderTab[0].billingAddressBody.split("\n");if(addressTab.length>0){nameTab=addressTab[0].split(" ")}else{nameTab=[]}if(addressObj.isShippingSpecific){addressObj.billing.firstname=nameTab.length>0?nameTab.shift():"";addressObj.billing.lastname=nameTab.length>0?nameTab.shift():"";addressObj.billing.company=nameTab.length>0?nameTab.join(" "):"";addressObj.billing.street1=addressTab.length>1?addressTab[1]:"";addressObj.billing.street2=addressTab.length>2?addressTab[2]:"";addressObj.billing.code=aResult.data.contentTab.orderTab[0].billingCode;addressObj.billing.town=aResult.data.contentTab.orderTab[0].billingTown;addressObj.billing.phone=aResult.data.contentTab.orderTab[0].billingDeliveryPhone}else{addressObj.shipping.firstname=nameTab.length>0?nameTab.shift():"";addressObj.shipping.lastname=nameTab.length>0?nameTab.shift():"";addressObj.shipping.company=nameTab.length>0?nameTab.join(" "):"";addressObj.shipping.street1=addressTab.length>1?addressTab[1]:"";addressObj.shipping.street2=addressTab.length>2?addressTab[2]:"";addressObj.shipping.code=aResult.data.contentTab.orderTab[0].billingCode;addressObj.shipping.town=aResult.data.contentTab.orderTab[0].billingTown;addressObj.shipping.phone=aResult.data.contentTab.orderTab[0].billingDeliveryPhone}
1hasUpdatedAddress=true}}}this._setAddressObject(addressObj);if($("#shippingBlock").length>0){if(hasUpdatedAddress){this._restoreAddress()}else if(aEmail){$("#email_shipping").val(aEmail);$("#email_billing").val(aEmail)}}}],this)}else{if(aEmail){addressObj.shipping.email=aEmail;addressObj.billing.email=aEmail;console.debug("OrderClass: setting user email "+aEmail);this._setAddressObject(addressObj)}}};OrderClass.prototype._getEmail=function(){var addressObj;addressObj=this._getAddressObject();if(!addressObj.isShippingSpecific){if(addressObj.billing.email){return addressObj.billing.email}}return addressObj.shipping.email};OrderClass.prototype._checkAddress=function(aUseSingleAddress){var isValid,addressObj,param,omMapping,om,cp;omMapping={973:"gf",971:"gp",988:"nc",972:"mq",987:"pf",975:"pm",974:"re",986:"wf",976:"yt"};$("#country_shipping").removeClass("is-invalid");isValid=true;addressObj=this._getAddressObject();if(!addressObj.shipping.lastname&&!addressObj.shipping.company){$("#lastname_shipping").addClass("is-invalid");$("#company_shipping").addClass("is-invalid");isValid=false}else{$("#lastname_shipping").removeClass("is-invalid");$("#company_shipping").removeClass("is-invalid")}if(!addressObj.shipping.street1){$("#street1_shipping").addClass("is-invalid");isValid=false}else{$("#street1_shipping").removeClass("is-invalid")}if(!addressObj.shipping.code){$("#code_shipping").addClass("is-invalid");isValid=false}else{if(addressObj.shipping.country==="fr"){if(addressObj.shipping.code.length!==5){$("#code_shipping").addClass("is-invalid");isValid=false}else{$("#code_shipping").removeClass("is-invalid")}}else{$("#code_shipping").removeClass("is-invalid")}}if(!addressObj.shipping.town){$("#town_shipping").addClass("is-invalid");isValid=false}else{$("#town_shipping").removeClass("is-invalid")}if(!addressObj.shipping.phone){$("#phone_shipping").addClass("is-invalid");isValid=false}else{$("#phone_shipping").removeClass("is-invalid")}if(isValid){if(addressObj.shipping.country==="fr"){for(om in omMapping){if(omMapping.hasOwnProperty(om)){if(parseInt(om,10)===parseInt(parseInt(addressObj.shipping.code,10)/100,10)){$("#country_shipping").addClass("is-invalid");isValid=false;break}}}}}if(addressObj.isShippingSpecific&&!aUseSingleAddress){if(!addressObj.billing.lastname&&!addressObj.billing.company){$("#lastname_billing").addClass("is-invalid");$("#company_billing").addClass("is-invalid");isValid=false}else{$("#lastname_billing").removeClass("is-invalid");$("#company_billing").removeClass("is-invalid")}if(!addressObj.billing.street1){$("#street1_billing").addClass("is-invalid");isValid=false}else{$("#street1_billing").removeClass("is-invalid")}if(!addressObj.billing.code){$("#code_billing").addClass("is-invalid");isValid=false}else{if(addressObj.billing.country==="fr"){if(addressObj.billing.code.length!==5){$("#code_billing").addClass("is-invalid");isValid=false}else{$("#code_billing").removeClass("is-invalid")}}else{$("#code_billing").removeClass("is-invalid")}}if(!addressObj.billing.town){$("#town_billing").addClass("is-invalid");isValid=false}else{$("#town_billing").removeClass("is-invalid")}if(isValid){if(addressObj.billing.country==="fr"){for(om in omMapping){if(omMapping.hasOwnProperty(om)){if(parseInt(om,10)===parseInt(parseInt(addressObj.shipping.code,10)/100,10)){$("#country_billing").addClass("is-invalid");isValid=false;break}}}}}}return isValid};OrderClass.prototype._hasAddressContent=function(aUseSingleAddress){var addressObj;addressObj=this._getAddressObject();if(addressObj.shipping.lastname||addressObj.shipping.company){return true}if(addressObj.shipping.street1){return true}if(addressObj.shipping.code){return true}if(addressObj.shipping.town){return true}if(addressObj.shipping.phone){return true}if(addressObj.shipping.email){return true}return false};OrderClass.prototype._dumpAddress=function(){var addressObj,param;addressObj=this._getAddressObject();if(addressObj.isShippingSpecific){$("#orderShippingSpecific").prop("checked",false);$("#billingBlock").addClass("show")}else{$("#orderShippingSpecific").prop("checked",true);$("#billingBlock").removeClass("show")}for(param in addressObj.billing){if(addressObj.billing.hasOwnProperty(param)){if(addressObj.billing[param]){$("#"+param+"_billing").val(addressObj.billing[param])}}}for(param in addressObj.shipping){if(addressObj.shipping.hasOwnProperty(param)){if(addressObj.shipping[param]){$("#"+param+"_shipping").val(addressObj.shipping[param])}}}if(addressObj.shipping.country==="fr"){$(".frenchShipping").show();$(".unfrenchShipping").hide()}else{$(".frenchShipping").hide();$(".unfrenchShipping").show()}};OrderClass.prototype._isSuperGodfather=function(aEmail){var userEmail;userEmail=$("#email_registration").val();if(aEmail&&userEmail&&aEmail===userEmail){return true}return false};OrderClass.prototype._validateGodfather=function(aResult){if(aResult&&aResult.status===0&&aResult.data.httpStatus===200){$("#orderGodFather").removeClass("is-invalid");
1this._dumpCartItem();return}$("#orderGodFather").addClass("is-invalid");this._setGodFather("");this._dumpCartItem()};OrderClass.prototype._processZapptaxCoupon=function(aIsToBeDisplayed){if(aIsToBeDisplayed){$(".zapptaxCouponOption").removeClass("d-none");$(".zapptaxCouponOption").addClass("d-block")}else{$(".zapptaxCouponOption").removeClass("d-block");$(".zapptaxCouponOption").addClass("d-none")}};OrderClass.prototype._checkZapptaxCoupon=function(aIsToBeDisplayed){var cartObj;cartObj=this._getCartObject();if(cartObj.coupon==="expat"){this._processZapptaxCoupon(true)}};OrderClass.prototype._processTmaCoupon=function(aCoupon,aIsToBeDisplayed){var coupon,cartObj;if(aIsToBeDisplayed){cartObj=this._getCartObject();if(!aCoupon){if(cartObj.coupon!=="testermonair"&&cartObj.coupon!=="testermonair_nos1"&&cartObj.coupon!=="testermonair_s1"){$(".tmaCouponOption").removeClass("d-table-row");$(".tmaCouponOption").addClass("d-none");return}coupon="testermonair"}else{coupon=aCoupon}$("#tmaCouponOption1").prop("checked",true);cartObj.coupon=coupon;this._setCartObject(cartObj)}else{$(".tmaCouponOption").removeClass("d-table-row");$(".tmaCouponOption").addClass("d-none")}};OrderClass.prototype._registerTmaCoupon=function(){var cartObj;cartObj=this._getCartObject();if(cartObj.coupon==="testermonair"){if($("#tmaCouponOption2").prop("checked")){cartObj.coupon="testermonair_s1"}else{cartObj.coupon="testermonair_nos1"}this._setCartObject(cartObj)}};OrderClass.prototype._processCoupon=function(){var coupon,couponLower,godFather,isValid,formatRegExp;if($("#orderVatReference").length>0){this._resetAddress()}this._processZapptaxCoupon(false);this._processTmaCoupon("testermonair",false);coupon=$("#orderCoupon").val().trim();if(coupon){couponLower=coupon.toLowerCase();if(couponLower==="expat"){this._processZapptaxCoupon(true)}if(couponLower==="testermonair"){$("#orderCoupon").removeClass("is-invalid");this._processTmaCoupon("testermonair",true)}else{isValid=this._setCartCoupon(couponLower);if(isValid){this._isPackage(couponLower);$("#orderCoupon").removeClass("is-invalid");if($("#orderVatReference").length>0){this._fillAddress(couponLower)}}else{$("#orderCoupon").addClass("is-invalid")}}}else{$("#orderCoupon").val("");$("#orderCoupon").removeClass("is-invalid");this._setCartCoupon("")}godFather=$("#orderGodFather").val().trim();if(godFather){if(this._hasGodFatherChanged(godFather)){console.info("OrderClass: Checking godfather email "+godFather);formatRegExp=new RegExp(/\S+@\S+\.\S+/,"");if(formatRegExp.test(godFather)){this._setGodFather(godFather);var teqOff2Url=window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"?"http://localhost/teqOff2":aSiteConfigObj.teqOff2BaseUrl;this._webServiceObj.sendRequest(this._validateGodfather.bind(this),teqOff2Url+"/api/v2/webUtil.php","POST",{email:godFather});return}this._setGodFather("")}}else{this._setGodFather("");$("#orderGodFather").val("");$("#orderGodFather").removeClass("is-invalid")}this._dumpCartItem()};OrderClass.prototype._processVAT=function(){var value,tvaReference,cartObj,motif;value=$("#orderVatReference").val();console.debug("OrderClass: Setting TVA reference '"+value+"' from orderVatReference");$("#orderVatReference").removeClass("is-invalid");if(value){motif=/^(RO\d{2,10}|GB\d{5}|(ATU|DK|FI|HU|LU|MT|CZ|SI)\d{8}|IE[A-Z\d]{8}|(DE|BG|EE|EL|LT|BE0|PT|CZ)\d{9}|CY\d{8}[A-Z]|(ES|GB)[A-Z\d]{9}|(BE0|PL|SK|CZ)\d{10}|(FR|IT|LV)\d{11}|(LT|SE)\d{12}|(NL|GB)[A-Z\d]{12})$/;if(!motif.test(value)){$("#orderVatReference").addClass("is-invalid");tvaReference=null}else{tvaReference=value}}else{tvaReference=null}cartObj=this._getCartObject();cartObj.tvaReference=tvaReference;this._setCartObject(cartObj);this._dumpCartItem()};OrderClass.prototype._processCountry=function(){var value,cartObj,areaOrg,areaNew,addressObj;value=$("#orderProductCountry").val();console.debug("OrderClass: Setting country '"+value+"' from orderProductCountry");cartObj=this._getCartObject();areaOrg=this._getPricingArea(cartObj.country);areaNew=this._getPricingArea(value);cartObj.country=value;this._setCartObject(cartObj);addressObj=this._getAddressObject();addressObj.shipping.country=value;this._setAddressObject(addressObj);if(areaOrg!==areaNew){console.warn("OrderClass: Switching from area "+areaOrg+" to area "+areaNew);window.location.reload()}this._setPricing(value);
1this._dumpCartItem();if($("#orderVatReference").length>0){$("#country_shipping").val(addressObj.shipping.country)}else{if(addressObj.shipping.country==="fr"){$(".frenchShipping").show();$(".unfrenchShipping").hide()}else{$(".frenchShipping").hide();$(".unfrenchShipping").show()}}};OrderClass.prototype._logEvent=function(aEventType,aOrderObj,aIdOrders,aCountry){var eventObj,email,webServiceObj;if(aSiteConfigObj.webServiceMode==="home"){eventObj={};if(aOrderObj){email="";if(aOrderObj.billing&&aOrderObj.billing.email){email=aOrderObj.billing.email}else if(aOrderObj.shipping.email){email=aOrderObj.shipping.email}eventObj.email=email}if(aIdOrders){eventObj.idOrders=aIdOrders}if(aCountry){eventObj.country=aCountry}webServiceObj=this._restServiceObj.getWebServiceObj();webServiceObj.sendRequest(null,window._internalBaseUrl+"/events.php?"+aEventType,"POST",eventObj)}};OrderClass.prototype._switchTocheckout=function(){var coupon,couponLower,cartObj;coupon=$("#orderCoupon").val().trim();couponLower=coupon.toLowerCase();this._processCountry();cartObj=this._getCartObject();if((coupon||cartObj.coupon)&&couponLower!==cartObj.coupon&&cartObj.coupon!=="_offer_lasereggtip9"){$("#orderCoupon").addClass("is-invalid");return}if(cartObj.productTab.length>0){window.location=this._baseUrl+"/checkout/"}};OrderClass.prototype._switchToconfirmation=function(){var cartObj,orderObj,isValid,isPartial,paymentMethod,coupon,hasPreOrder,orderAmount;if($("#orderProductCashMode").length>0){window.updateSaleOnCash()}orderAmount=0;cartObj=this._getCartObject();$("#orderTermsValidation").hide();if(cartObj.productTab.length>0){this._collectAddress();isValid=this._checkAddress(true);isPartial=this._hasAddressContent();if(!isValid&&isPartial){console.debug("OrderClass: Address is not valid but partial");$("#orderTermsValidation").show();return}if($("#orderShippingDirect").is(":checked")||isValid){this._waitingScreen.startWaiting();if(!isValid){console.debug("OrderClass: Resetting address");this._resetAddress()}coreObj.queue([function(aNext){var email,action,webServiceObj,indProduct;if($("#newsletter").is(":checked")){email=this._getEmail();if(email){console.info("OrderClass: Registering "+email+" to newsletter");action="newsletterSubscription";action="klaviyoOptin";webServiceObj=this._restServiceObj.getWebServiceObj();webServiceObj.sendRequest(null,window._internalBaseUrl+"/engine/tools/newsletter.php?"+action,"POST",{email:email,lang:this._lang});orderObj._layerListener("subscribe_newsletter",{email:email})}}console.info("OrderClass: Recording order");paymentMethod=$("#orderProductCashMode").val();orderObj=this._buildPayment(paymentMethod,"","waiting",0);orderObj.idDistributors="Teqoya Exhibit";orderObj.shippingDirect=true;if($("#cashdesk_user").length>0){orderObj.idUsers=$("#cashdesk_user").val()}delete orderObj.billing;coupon=orderObj.coupon;if($("#orderShippingDirect").is(":checked")){orderObj.isShipped=true}hasPreOrder=false;for(indProduct=0;indProduct<orderObj.productTab.length;indProduct+=1){if(orderObj.productTab[indProduct].productType==="TeqAir450-01-black"){hasPreOrder=true;break}}orderObj=this._setUserStatistics(orderObj);orderAmount=orderObj.amount;this._restServiceObj.add(aNext,aSiteConfigObj.useCrosser,aSiteConfigObj.orderSwitchUrl,orderObj)},function(aNext,aResult){console.info("OrderClass: teqOff result "+JSON.stringify(aResult));if(aResult.status===0){this._setIdOrders(aResult.data.contentTab[0].idOrders,orderAmount,paymentMethod,coupon,hasPreOrder);this._resetCartObject();this._logEvent("order",orderObj,aResult.data.contentTab[0].idOrders);this._waitingScreen.stopWaiting();window.location=this._baseUrl+"/confirmation/"}this._waitingScreen.stopWaiting()}],this)}else{console.debug("OrderClass: No address while not shipping direct");$("#orderTermsValidation").show();return}}};OrderClass.prototype._cancelconfirmation=function(){localStorage.clear();window.location.reload()};OrderClass.prototype._processAddToCart=function(aProductType){this._addCartItem(aProductType,1);this._checkSensorInCart();this._checkNeedForPromo();if($("#orderCartList").length>0||$("#orderCartSelect").length>
10){this._dumpCartItem();this._enumCartItem()}};OrderClass.prototype._processAddChristmas=function(aPackageType){var color,offer;console.debug("OrderClass: Adding christmas package "+aPackageType);if(aPackageType==="packageNoel_01_addToCartButton"){this._processAddToCart("teqair100_01_darkgrey_car");if($(".christmas01_blue").hasClass("christmasActive")){this._processAddToCart("teqair200_01_blue")}else if($(".christmas01_black").hasClass("christmasActive")){this._processAddToCart("teqair200_01_black")}else if($(".christmas01_darkgrey").hasClass("christmasActive")){this._processAddToCart("teqair200_01_darkgrey")}else if($(".christmas01_lightgrey").hasClass("christmasActive")){this._processAddToCart("teqair200_01_lightgrey")}else if($(".christmas01_pinkclay").hasClass("christmasActive")){this._processAddToCart("teqair200_01_pinkclay")}if($(".christmas02_blue").hasClass("christmasActive")){this._processAddToCart("teqair200_01_blue")}else if($(".christmas02_black").hasClass("christmasActive")){this._processAddToCart("teqair200_01_black")}else if($(".christmas02_darkgrey").hasClass("christmasActive")){this._processAddToCart("teqair200_01_darkgrey")}else if($(".christmas02_lightgrey").hasClass("christmasActive")){this._processAddToCart("teqair200_01_lightgrey")}else if($(".christmas02_pinkclay").hasClass("christmasActive")){this._processAddToCart("teqair200_01_pinkclay")}$("#cartModal").modal("show")}else if(aPackageType==="packageNoel_02_addToCartButton"){this._processAddToCart("teqair100_01_darkgrey_car");if($(".christmas03_blue").hasClass("christmasActive")){this._processAddToCart("teqair200_01_blue")}else if($(".christmas03_black").hasClass("christmasActive")){this._processAddToCart("teqair200_01_black")}else if($(".christmas03_darkgrey").hasClass("christmasActive")){this._processAddToCart("teqair200_01_darkgrey")}else if($(".christmas03_lightgrey").hasClass("christmasActive")){this._processAddToCart("teqair200_01_lightgrey")}else if($(".christmas03_pinkclay").hasClass("christmasActive")){this._processAddToCart("teqair200_01_pinkclay")}if($(".christmas04_darkgrey").hasClass("christmasActive")){this._processAddToCart("teqair450_01_black")}else if($(".christmas04_lightgrey").hasClass("christmasActive")){this._processAddToCart("teqair450_01_lightgrey")}$("#cartModal").modal("show")}};OrderClass.prototype._hasProductInCart=function(aProductType){var cartObj,indProduct;cartObj=this._getCartObject();for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){if(cartObj.productTab[indProduct].productType===aProductType){return true}}return false};OrderClass.prototype._hasTestMyAirOnlyInCart=function(){var cartObj,nbProduct,hasTestMyAir,indProduct;cartObj=this._getCartObject();nbProduct=0;hasTestMyAir=false;for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){if(cartObj.productTab[indProduct].productType==="airobs_01_test"||cartObj.productTab[indProduct].productType==="airobs_01_month"){hasTestMyAir=true}else{nbProduct+=cartObj.productTab[indProduct].number}}if(hasTestMyAir&&nbProduct<=0){return true}return false};OrderClass.prototype._hasSensorInCart=function(){var cartObj,indProduct;cartObj=this._getCartObject();for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){if((cartObj.productTab[indProduct].productType==="teqsensor_01_s1"||cartObj.productTab[indProduct].productType==="sensor_01_laser_egg_2"||cartObj.productTab[indProduct].productType==="sensor_02_laser_egg_co2")&&cartObj.productTab[indProduct].referenceTtc<=0){return true}}return false};OrderClass.prototype._checkNeedForPromo=function(){var cartObj,indProduct;if($("#orderCartNoSelectNoPromo").length>0){cartObj=this._getCartObject();for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){if(cartObj.productTab[indProduct].productType.indexOf("tip4_01")<0&&cartObj.productTab[indProduct].productType.indexOf("sensor_0")<0&&cartObj.productTab[indProduct].productType!=="teqair100_01_wooden_foot"&&cartObj.productTab[indProduct].productType!=="other_01_cleaning_kit"&&cartObj.productTab[indProduct].productType!=="airobs_01_month"&&cartObj.productTab[indProduct].productType!=="airobs_01_test"){$("#orderCartNoSelectNoPromo").hide();$("#orderCartNoSelectPromo").show();return}}$("#orderCartNoSelectNoPromo").show();$("#orderCartNoSelectPromo").hide()}};OrderClass.prototype._checkSensorInCart=function(){var cartObj,indProduct,hasProduct,hasManySensor,indSensor;if($("#sensorOption").length>0){cartObj=this._getCartObject();hasProduct=false;hasManySensor=false;indSensor=-1;for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){if(cartObj.productTab[indProduct].productType.indexOf("tip4_01")<0&&cartObj.productTab[indProduct].productType.indexOf("sensor_0")<0&&cartObj.productTab[indProduct].productType!=="teqair100_01_wooden_foot"&&cartObj.productTab[indProduct].productType!=="other_01_cleaning_kit"&&cartObj.productTab[indProduct].productType!=="airobs_01_month"&&cartObj.productTab[indProduct].productType!=="airobs_01_test"){hasProduct=true}if(cartObj.productTab[indProduct].productType.indexOf("sensor_0")>=0&&cartObj.productTab[indProduct].number>1){hasManySensor=true}if(cartObj.productTab[indProduct].productType.indexOf("sensor_0")>=0){hasManySensor=true}}if(hasProduct&&hasManySensor){$("#sensorOption").prop("disabled",fal
1se);$("#sensorOptionText").removeClass("text-disabled");$("#sensorOption").prop("checked",true)}else if(hasProduct){$("#sensorOption").prop("disabled",false);$("#sensorOptionText").removeClass("text-disabled");$("#sensorOption").prop("checked",false)}else{$("#sensorOption").prop("disabled",true);$("#sensorOptionText").addClass("text-disabled");$("#sensorOption").prop("checked",false)}}};OrderClass.prototype._processSensorToCart=function(){if($("#sensorOption").is(":checked")){if(this._hasProductInCart("sensor_02_laser_egg_co2")===false){this._processAddToCart("sensor_02_laser_egg_co2");this._checkSensorInCart()}this._dumpCartItem();this._enumCartItem()}else{window.removeFromCart("sensor_01_laser_egg_2",1);window.removeFromCart("sensor_02_laser_egg_co2",1);window.removeFromCart("teqsensor_01_s1",1)}};OrderClass.prototype._updateFromProduct=function(){var productCategory,productType,quantity;productCategory=$("#orderProductType").val();if($("#orderProductColor").length>0){productType=productCategory+"_"+$("#orderProductColor").val()}else{productType=productCategory}quantity=parseInt($("#orderProductQuantity").val(),10);if(quantity<1){$("#orderProductQuantity").val(1);quantity=1}this._getProductPrice(productType,quantity);return false};OrderClass.prototype._addProductToCart=function(aSuffix){var productCategory,productType,quantity;if(aSuffix){productCategory=$("#orderProductType_"+aSuffix).val();if($("#orderProductColor_"+aSuffix).length>0){productType=productCategory+"_"+$("#orderProductColor_"+aSuffix).val()}else{productType=productCategory}quantity=parseInt($("#orderProductQuantity_"+aSuffix).val(),10)}else{productCategory=$("#orderProductType").val();if($("#orderProductColor").length>0){productType=productCategory+"_"+$("#orderProductColor").val()}else{productType=productCategory}quantity=parseInt($("#orderProductQuantity").val(),10)}this._addCartItem(productType,quantity);if(aSuffix){if($("#orderOfferCheck_"+aSuffix).is(":checked")||$("#orderOfferCheck_"+aSuffix).val()==="on"){this._addCartItem($("#orderOfferProductType_"+aSuffix).val(),1)}}else{if($("#orderOfferCheck").is(":checked")){this._addCartItem($("#orderOfferProductType").val(),1)}}window.location=this._baseUrl+"/shop/";return false};OrderClass.prototype._insertProductToCart=function(aProductType){console.debug("OrderClass: Adding product type "+aProductType+" to cart");this._addCartItem(aProductType,1);$("#cartModal").modal("show");$(".productType_cartModal").hide();$("."+aProductType+"_cartModal").show();return false};OrderClass.prototype._insertProductCategoryToCart=function(aProductCategory){var productType,orgType,additionalType;productType=$("#orderProductType_"+aProductCategory).val();orgType=productType;if(productType==="teqsensor_01_month"){productType="airobs_01_month"}else if(productType==="teqsensor_01_s1_month"){productType="teqsensor_01_s1";additionalType="airobs_01_month"}else if(productType==="airobs_01_test"){productType="airobs_01_test"}else if(productType==="e500_01_connected"){productType="e500_02_connected"}else if(productType==="pack_e500_02_connected_teqsensor_01_s1"){productType="e500_02_connected";additionalType="teqsensor_01_s1"}else if(productType==="pack_e500_04_connected_teqsensor_01_s1"){productType="e500_04_connected";additionalType="teqsensor_01_s1"}else if(productType==="teqair200_01_s1_pack_blue"){productType="teqair200_01_blue";additionalType="teqsensor_01_s1"}else if(productType==="teqair200_01_s1_pack_darkgrey"){productType="teqair200_01_darkgrey";additionalType="teqsensor_01_s1"}else if(productType==="teqair200_01_s1_pack_lightgrey"){productType="teqair200_01_lightgrey";additionalType="teqsensor_01_s1"}else if(productType==="teqair200_01_s1_pack_pinkclay"){productType="teqair200_01_pinkclay";additionalType="teqsensor_01_s1"}else if(aProductCategory==="teqair450_01_hang"){productType=productType.replace("_hang","");productType+="_hang"}console.debug("OrderClass: Adding product type "+productType+" to cart");this._addCartItem(productType,1);if(additionalType){this._addCartItem(additionalType,1)}$("#cartModal").modal("show");$(".productType_cartModal").hide();if(orgType==="pack_e500_02_connected_teqsensor_01_s1"){$(".pack_e500_02_connected_teqsensor_01_s1_cartModal").show()}else if(orgType==="pack_e500_04_connected_teqsensor_01_s1"){$(".pack_e500_04_connected_teqsensor_01_s1_cartModal").show()}else if(orgType==="teqair200_01_s1_pack_blue"){$(".teqair200_01_s1_pack_blue_cartModal").show()}
1else if(orgType==="teqair200_01_s1_pack_darkgrey"){$(".teqair200_01_s1_pack_darkgrey_cartModal").show()}else if(orgType==="teqair200_01_s1_pack_lightgrey"){$(".teqair200_01_s1_pack_lightgrey_cartModal").show()}else if(orgType==="teqair200_01_s1_pack_pinkclay"){$(".teqair200_01_s1_pack_pinkclay_cartModal").show()}else{$("."+productType+"_cartModal").show()}return false};OrderClass.prototype._switchToCart=function(aProductCategory){var productCategory,productType;if(!aProductCategory||typeof aProductCategory!=="string"){productCategory=$("#orderProductCategory").val()}else{productCategory=$("#orderProductCategory_"+aProductCategory).val()}if(productCategory==="teqair200_01"){productType="teqair200_01_blue";if($("#orderProductColor_lightgrey").prop("checked")){productType="teqair200_01_lightgrey"}if($("#orderProductColor_darkgrey").prop("checked")){productType="teqair200_01_darkgrey"}if($("#orderProductColor_blue").prop("checked")){productType="teqair200_01_blue"}if($("#orderProductColor_pinkclay").prop("checked")){productType="teqair200_01_pinkclay"}if($("#orderProductColor_black").prop("checked")){productType="teqair200_01_black"}this._addCartItem(productType,1);window.location=this._baseUrl+"/shop/";return false}if(productCategory==="teqair450_01"){productType="teqair450_01_black";if($("#orderProductColor_darkgrey").prop("checked")){productType="teqair450_01_black"}if($("#orderProductColor_lightgrey").prop("checked")){productType="teqair450_01_lightgrey"}if($("#orderProductColor_lightgrey_hang").prop("checked")){productType="teqair450_01_lightgrey_hang"}if($("#orderProductColor_darkgrey_hang").prop("checked")){productType="teqair450_01_darkgrey_hang"}this._addCartItem(productType,1);window.location=this._baseUrl+"/shop/";return false}if(productCategory==="teqair100_01"){productType="teqair100_01_darkgrey_car";if($("#orderProductColor_lightgrey").prop("checked")){productType="teqair100_01_darkgrey_indoor"}if($("#orderProductColor_darkgrey").prop("checked")){productType="teqair100_01_darkgrey_car"}this._addCartItem(productType,1);window.location=this._baseUrl+"/shop/";return false}if(productCategory==="e500_01"){productType="e500_01_standard";if($("#orderProductColor_lightgrey").prop("checked")){productType="e500_02_connected"}if($("#orderProductColor_darkgrey").prop("checked")){productType="e500_01_standard"}if($("#orderProductColor_blue").prop("checked")){productType="e500_03_standard"}if($("#orderProductColor_pinkclay").prop("checked")){productType="e500_04_connected"}this._addCartItem(productType,1);window.location=this._baseUrl+"/shop/";return false}if(productCategory==="teqsensor_01"){this._addCartItem("teqsensor_01_s1",1);window.location=this._baseUrl+"/shop/";return false}};OrderClass.prototype._registerCountry=function(){var value,addressObj,cartObj,areaOrg,areaNew;value=$("#country_shipping").val();console.debug("OrderClass: Setting shipping country to '"+value+"'");cartObj=this._getCartObject();areaOrg=this._getPricingArea(cartObj.country);areaNew=this._getPricingArea(value);cartObj.country=value;this._setCartObject(cartObj);$("#orderProductCountry").val(cartObj.country);addressObj=this._getAddressObject();addressObj.shipping.country=value;if(!addressObj.isShippingSpecific){addressObj.billing.country=value}this._setAddressObject(addressObj);if(areaOrg!==areaNew){console.warn("OrderClass: Switching from area "+areaOrg+" to area "+areaNew);window.location.reload()}if(addressObj.shipping.country==="fr"){$(".frenchShipping").show();$(".unfrenchShipping").hide()}else{$(".frenchShipping").hide();$(".unfrenchShipping").show()}this._setPricing();this._dumpCartItem()};OrderClass.prototype._resetAddress=function(){return;$("#company_shipping").val("");$("#lastname_shipping").val("");$("#firstname_shipping").val("");$("#street1_shipping").val("");$("#street2_shipping").val("");$("#code_shipping").val("");$("#town_shipping").val("");$("#country_shipping").val("");$("#email_shipping").val("");$("#phone_shipping").val("");$("#note_shipping").val("");$("#company_billing").val("");$("#lastname_billing").val("");$("#firstname_billing").val("");$("#street1_billing").val("");$("#street2_billing").val("");$("#code_billing").val("");$("#town_billing").val("");$("#country_billing").val("");$("#email_billing").val("");$("#phone_billing").val("");$("#note_billing").val("");$("#orderShippingSpecific").prop("checked",true);$("#billingBlock").collapse("hide")};OrderClass.prototype._fillAddress=function(aCoupon){var shippingObj,billingObj,nameTab,streetTab;if(this._pricingObj.product[aCoupon].hasOwnProperty("idDistributors")&&this._pricingObj.product[aCoupon].idDistributors){coreObj.queue([function(aNext){var webServiceObj;this._waitingScreen.startWaiting();webServiceObj=this._restServiceObj.getWebServiceObj();webServiceObj.sendRequest(aNext,window._internalBaseUrl+"/engine/tools/directaccess.php?distributor","POST",{idDistributors:this._pricingObj.product[aCoupon].idDistributors})},function(aNext,aResult){var result,groupAddress;console.info("OrderClass: distributor's details "+JSON.stringify(aResult));
1if(aResult.status===0){this._waitingScreen.stopWaiting();this._resetAddress();if(aResult.data.httpData.length>=1){result=aResult.data.httpData[0];if(result.useAddress==="shippingAndBilling"){if(result.shippingIdAddress===result.billingIdAddress){console.debug("OrderClass: using distributor's address for both shipping and billing with the same address");$("#orderShippingSpecific").prop("checked",true);$("#billingBlock").collapse("hide")}else{console.debug("OrderClass: using distributor's address for both shipping and billing with different address");$("#orderShippingSpecific").prop("checked",false);$("#billingBlock").collapse("show")}}else if(result.useAddress==="billingOnly"){console.debug("OrderClass: using distributor's address for billing only");$("#orderShippingSpecific").prop("checked",false);$("#billingBlock").collapse("show")}else{console.debug("OrderClass: no use of distributor's address");return}if(result.useAddress==="shippingAndBilling"){streetTab=result.shippingAddressBody.split("\n");$("#lastname_shipping").val(streetTab.shift());if(streetTab.length===1){$("#street1_shipping").val(streetTab[0])}else if(streetTab.length>1){$("#street1_shipping").val(streetTab[0]);$("#street2_shipping").val(streetTab[1])}$("#code_shipping").val(result.shippingCode);$("#town_shipping").val(result.shippingTown);$("#country_shipping").val(result.shippingCountry);$("#email_shipping").val(result.shippingEmail||"");$("#phone_shipping").val(result.shippingDeliveryPhone||"");$("#note_shipping").val(result.shippingAddressNote||"")}streetTab=result.billingAddressBody.split("\n");$("#lastname_billing").val(streetTab.shift());if(streetTab.length===1){$("#street1_billing").val(streetTab[0])}else if(streetTab.length>1){$("#street1_billing").val(streetTab[0]);$("#street2_billing").val(streetTab[1])}$("#code_billing").val(result.billingCode);$("#town_billing").val(result.billingTown);$("#country_billing").val(result.billingCountry);$("#email_billing").val(result.billingEmail||"");$("#phone_billing").val(result.billingDeliveryPhone||"")}}}],this)}};OrderClass.prototype._restoreAddress=function(){var addressObj;console.debug("OrderClass: Setting form with address");addressObj=this._getAddressObject();if(addressObj.isShippingSpecific){$("#orderShippingSpecific").prop("checked",false)}else{$("#orderShippingSpecific").prop("checked",true)}$("#firstname_shipping").val(addressObj.shipping.firstname);$("#lastname_shipping").val(addressObj.shipping.lastname);$("#company_shipping").val(addressObj.shipping.company);$("#street1_shipping").val(addressObj.shipping.street1);$("#street2_shipping").val(addressObj.shipping.street2);$("#code_shipping").val(addressObj.shipping.code);$("#town_shipping").val(addressObj.shipping.town);$("#country_shipping").val(addressObj.shipping.country);$("#email_shipping").val(addressObj.shipping.email);$("#phone_shipping").val(addressObj.shipping.phone);$("#note_shipping").val(addressObj.shipping.note);if(addressObj.isShippingSpecific){$("#firstname_billing").val(addressObj.billing.firstname);$("#lastname_billing").val(addressObj.billing.lastname);$("#company_billing").val(addressObj.billing.company);$("#street1_billing").val(addressObj.billing.street1);$("#street2_billing").val(addressObj.billing.street2);$("#code_billing").val(addressObj.billing.code);$("#town_billing").val(addressObj.billing.town);$("#country_billing").val(addressObj.billing.country);$("#email_billing").val(addressObj.billing.email);$("#phone_billing").val(addressObj.billing.phone)}else{$("#email_billing").val(addressObj.shipping.email);$("#country_billing").val(addressObj.billing.country)}};OrderClass.prototype._collectAddress=function(){var addressObj,orgEmail,cartObj;console.debug("OrderClass: Setting address from form");addressObj=this._getAddressObject();if(!addressObj.isShippingSpecific){orgEmail=addressObj.billing.email}else{orgEmail=addressObj.shipping.email}addressObj.isShippingSpecific=$("#orderShippingSpecific").is(":checked")?false:true;addressObj.shipping.firstname=this._toCamcelCase($("#firstname_shipping").val());addressObj.shipping.lastname=this._toCamcelCase($("#lastname_shipping").val());
1addressObj.shipping.company=this._toCamcelCase($("#company_shipping").val());addressObj.shipping.street1=this._toCamcelCase($("#street1_shipping").val());addressObj.shipping.street2=this._toCamcelCase($("#street2_shipping").val());addressObj.shipping.code=$("#code_shipping").val();addressObj.shipping.town=this._toCamcelCase($("#town_shipping").val());addressObj.shipping.country=$("#country_shipping").val();addressObj.shipping.email=$("#email_shipping").val();addressObj.shipping.phone=$("#phone_shipping").val();addressObj.shipping.note=$("#note_shipping").val();if(addressObj.isShippingSpecific){addressObj.billing.firstname=this._toCamcelCase($("#firstname_billing").val());addressObj.billing.lastname=this._toCamcelCase($("#lastname_billing").val());addressObj.billing.company=this._toCamcelCase($("#company_billing").val());addressObj.billing.street1=this._toCamcelCase($("#street1_billing").val());addressObj.billing.street2=this._toCamcelCase($("#street2_billing").val());addressObj.billing.code=$("#code_billing").val();addressObj.billing.town=this._toCamcelCase($("#town_billing").val());addressObj.billing.country=$("#country_billing").val();addressObj.billing.email=$("#email_billing").val();addressObj.billing.phone=$("#phone_billing").val()}else{addressObj.billing.country=$("#country_shipping").val()}if(!addressObj.shipping.country){console.warn("OrderClass: Enforcing empty shipping country to '"+aSiteConfigObj.defaultCountry+"'");addressObj.shipping.country=aSiteConfigObj.defaultCountry;$("#country_shipping").val(addressObj.shipping.country)}if(!addressObj.billing.country){console.warn("OrderClass: Enforcing empty billing country to '"+aSiteConfigObj.defaultCountry+"'");addressObj.billing.country=aSiteConfigObj.defaultCountry;$("#country_billing").val(addressObj.billing.country)}this._setAddressObject(addressObj);if(addressObj.isShippingSpecific){if(addressObj.billing.email!==orgEmail){this._setEmail(null,true)}}else{if(addressObj.shipping.email!==orgEmail){this._setEmail(null,true)}}cartObj=this._getCartObject();cartObj.country=addressObj.shipping.country;this._setCartObject(cartObj);window.orderProductEmail=this._getEmail()};OrderClass.prototype._doValidateAddress=function(aPaymentBlockId){var cartObj,addressObj;$("#checkoutError").hide();if($("#orderTerms").is(":checked")){$("#orderTerms").prop("checked",true);$("#orderTermsValidation").hide();if($(".instalmentItem").length>0){addressObj=this._getAddressObject();if(addressObj.isShippingSpecific&&addressObj.billing.country!=="fr"&&addressObj.billing.country!=="gf"){$(".instalmentItem").parent().hide()}else if(!addressObj.isShippingSpecific&&addressObj.shipping.country!=="fr"&&addressObj.shipping.country!=="gf"){$(".instalmentItem").parent().hide()}else{$(".instalmentItem").parent().show()}}if(this._buildPayment()){$(aPaymentBlockId).addClass("show");return true}}else{$("#orderTerms").prop("checked",false);$("#checkoutPayment").removeClass("show");$("#checkoutTestMyAir").removeClass("show")}};OrderClass.prototype._validateAddress=function(){var isValid,cartObj,addressObj;$("#checkoutError").hide();if($("#orderTerms").is(":checked")){this._collectAddress();isValid=this._checkAddress();if(!isValid){$("#orderTerms").prop("checked",false);$("#orderTermsValidation").show();$("#checkoutPayment").removeClass("show")}else{$("#orderTerms").prop("checked",true);$("#orderTermsValidation").hide();if($("#orderVatReference").length>0){cartObj=this._getCartObject();window.orderProductAmount=this._normalizeNumber(cartObj.totalTtc)}if($(".instalmentItem").length>0){addressObj=this._getAddressObject();if(addressObj.isShippingSpecific&&addressObj.billing.country!=="fr"&&addressObj.billing.country!=="gf"){$(".instalmentItem").parent().hide()}else if(!addressObj.isShippingSpecific&&addressObj.shipping.country!=="fr"&&addressObj.shipping.country!=="gf"){$(".instalmentItem").parent().hide()}else{$(".instalmentItem").parent().show()}}if(this._buildPayment()){$("#checkoutPayment").addClass("show");return true}}}else{$("#orderTerms").prop("checked",false);$("#checkoutPayment").removeClass("show")}return false};OrderClass.prototype._validateProductAndAddress=function(){var cartObj;$("#checkoutError").hide();cartObj=this._getCartObject();if(cartObj.productTab.length>
10){return this._validateAddress()}else{$("#orderTerms").prop("checked",false);$("#orderTermsValidation").show();$("#checkoutPayment").removeClass("show")}};OrderClass.prototype._buildPayment=function(aPaymentMethod,aTransactionId,aTransactionState,aTransactionPercent,aIsSensor){var cartObj,addressObj,shippingDirect,commissionObj,idDistributors,orderObj,name,nameSep,indProduct,priceObj,pricing,unit,sum,shipping;cartObj=this._getCartObject();addressObj=this._getAddressObject();if($("#orderShippingDirect").is(":checked")){shippingDirect=true}else{shippingDirect=false}name="";nameSep="";if(addressObj.shipping.firstname){name+=nameSep+addressObj.shipping.firstname;nameSep=" "}if(addressObj.shipping.lastname){name+=nameSep+addressObj.shipping.lastname;nameSep=" "}if(addressObj.shipping.company){name+=nameSep+addressObj.shipping.company;nameSep=" "}commissionObj=this._getCommissionPrice(cartObj.coupon);idDistributors="Teqoya Web";if($("#orderVatReference").length>0){if(this._pricingObj.coupons[cartObj.coupon]&&this._pricingObj.product[cartObj.coupon].hasOwnProperty("idDistributors")&&this._pricingObj.product[cartObj.coupon].idDistributors){idDistributors=this._pricingObj.product[cartObj.coupon].idDistributors}else{idDistributors="Teqoya Mail"}}orderObj={idDistributors:idDistributors,paymentMethod:aPaymentMethod,transactionId:aTransactionId,transactionMode:"direct",transactionState:aTransactionState,transactionPercent:aTransactionPercent,tvaReference:cartObj.tvaReference||"",importUrl:"",coupon:cartObj.coupon,commission:commissionObj,amount:window.orderProductAmount,godFather:cartObj.godFather,productTab:[],shippingDirect:shippingDirect,shippingService:cartObj.shippingService,shippingId:cartObj.shippingId,shipping:{nameOriginal:name,streetOriginal:addressObj.shipping.street1+(addressObj.shipping.street2?"\n"+addressObj.shipping.street2:""),code:addressObj.shipping.code,town:addressObj.shipping.town,country:addressObj.shipping.country,deliveryPhone:addressObj.shipping.phone,email:addressObj.shipping.email,addressNote:addressObj.shipping.note}};if(aSiteConfigObj.webServiceMode==="switz"){if(window.location.href.indexOf("/fr/")>=0){orderObj.language="français"}else if(window.location.href.indexOf("/de/")>=0){orderObj.language="deutsche"}else{orderObj.language="english"}}if(addressObj.isShippingSpecific){name="";nameSep="";if(addressObj.billing.firstname){name+=nameSep+addressObj.billing.firstname;nameSep=" "}if(addressObj.billing.lastname){name+=nameSep+addressObj.billing.lastname;nameSep=" "}if(addressObj.billing.company){name+=nameSep+addressObj.billing.company;nameSep=" "}orderObj.billing={nameOriginal:name,streetOriginal:addressObj.billing.street1+(addressObj.billing.street2?"\n"+addressObj.billing.street2:""),code:addressObj.billing.code,town:addressObj.billing.town,country:addressObj.billing.country,deliveryPhone:addressObj.billing.phone,email:addressObj.billing.email}}for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){if(aIsSensor&&cartObj.productTab[indProduct].productType!=="teqsensor_01_s1"&&cartObj.productTab[indProduct].productType!=="sensor_01_laser_egg_2"&&cartObj.productTab[indProduct].productType!=="sensor_02_laser_egg_co2"){continue}if(!aIsSensor&&(cartObj.productTab[indProduct].productType==="teqsensor_01_s1"||cartObj.productTab[indProduct].productType==="sensor_01_laser_egg_2"||cartObj.productTab[indProduct].productType==="sensor_02_laser_egg_co2")&&cartObj.productTab[indProduct].referenceTtc<=0){continue}if(cartObj.productTab[indProduct].productType==="airobs_01_test"){continue}priceObj=this._getUnitPrice(cartObj.productTab[indProduct].productType,cartObj.coupon,cartObj.godFather,this._isSuperGodfather(cartObj.godFather));shipping=this._getShippingPrice(cartObj.productTab[indProduct].productType,cartObj.country);if(priceObj.limit){orderObj.productTab.push({productType:this._pricingObj.mapping[cartObj.productTab[indProduct].productType],productCategory:priceObj.productCategory,number:priceObj.limit,pricing:pricing,unit:this._pricingObj.product.standard[cartObj.productTab[indProduct].productType],subtotal:sum,shipping:shipping,total:sum+shipping,mode:"excluded",tax:cartObj.ttlTaxRate});if(cartObj.productTab[indProduct].number-priceObj.limit>0){sum=this._pricingObj.product.standard[cartObj.productTab[indProduct].productType];orderObj.productTab.push({productType:this._pricingObj.mapping[cartObj.productTab[indProduct].productType],productCategory:priceObj.productCategory,number:cartObj.productTab[indProduct].number-priceObj.limit,pricing:priceObj.originalPricing,unit:this._pricingObj.product.standard[cartObj.productTab[indProduct].productType],subtotal:sum,shipping:shipping,total:sum+shipping,mode:"excluded",tax:cartObj.ttlTaxRate})}}else if($("#orderProductCashMode").length>0){orderObj.productTab.push({productType:this._pricingObj.mapping[cartObj.productTab[indProduct].productType],productCategory:this._pricingObj.prefix[cartObj.productTab[indProduct].productType],number:cartObj.productTab[indProduct].number,pricing:"",unit:cartObj.productTab[indProduct].referenceTtc,subtotal:cartObj.productTab[indProduct].productTtc-cartObj.productTab[indProduct].saleTtc,shipping:cartObj.productTab[indProduct].shippingTtc,total:cartObj.productTab[indProduct].productTtc-cartObj.productTab[indProduct].saleTtc+cartObj.productTab[indProduct].shippingTtc,mode:"excluded",tax:cartObj.ttlTaxRate})}else{orderObj.productTab.push({productType:this._pricingObj.mapping[cartObj.productTab[indProduct].productType],productCategory:this._pricingObj.prefix[cartObj.productTab[indProduct].productType],number:cartObj.productTab[indProduct].number,pricing:"",unit:cartObj.productTab[indProduct].referenceTtc,subtotal:cartObj.productTab[indProduct].productTtc,shipping:cartObj.productTab[indProduct].shippingTtc,total:cartObj.productTab[indProduct].productTtc+cartObj.productTab[indProduct].shippingTtc,mode:"excluded",tax:cartObj.ttlTaxRate})}}return orderObj};OrderClass.prototype.recordPayment=function(aPaymentMethod,aTransactionId,aTransactionState,aTransactionPercent){var coupon,hasPreOrder,orderObj,orderAmount;$("#checkoutError").hide();
1coreObj.queue([function(aNext){var email,action,webServiceObj,indProduct;this._waitingScreen.startWaiting();if($("#newsletter").is(":checked")){email=this._getEmail();if(email){console.info("OrderClass: Registering "+email+" to newsletter");action="newsletterSubscription";action="klaviyoOptin";webServiceObj=this._restServiceObj.getWebServiceObj();webServiceObj.sendRequest(null,window._internalBaseUrl+"/engine/tools/newsletter.php?"+action,"POST",{email:email,lang:this._lang});this._layerListener("subscribe_newsletter",{email:email})}}console.info("OrderClass: Recording order");orderObj=this._buildPayment(aPaymentMethod,aTransactionId,aTransactionState,aTransactionPercent,false);coupon=orderObj.coupon;hasPreOrder=false;for(indProduct=0;indProduct<orderObj.productTab.length;indProduct+=1){if(orderObj.productTab[indProduct].productType==="TeqAir450-01-black"){hasPreOrder=true;break}}orderObj=this._setUserStatistics(orderObj);orderAmount=orderObj.amount;this._registerKlaviyoEvent("orderOrdered");this._restServiceObj.add(aNext,aSiteConfigObj.useCrosser,aSiteConfigObj.orderRecordUrl,orderObj)},function(aNext,aResult){var cartObj,indProduct,hasSensor;console.info("OrderClass: teqOff result "+JSON.stringify(aResult));if(aResult.status===0){cartObj=this._getCartObject();hasSensor=false;for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){if(cartObj.productTab[indProduct].productType==="airobs_01_test"||cartObj.productTab[indProduct].productType==="sensor_01_laser_egg_2"||cartObj.productTab[indProduct].productType==="sensor_02_laser_egg_co2"){hasSensor=true;break}}if(hasSensor){this._setIdOrders(aResult.data.contentTab[0].idOrders,orderAmount,aPaymentMethod,coupon,hasPreOrder);this._logEvent("order",orderObj,aResult.data.contentTab[0].idOrders);if(this._postRecordCallback){this._postRecordCallback(aResult.data.contentTab[0].idOrders,"loan",orderObj)}else{window.location=this._baseUrl+"/loan/"}}else{this._setIdOrders(aResult.data.contentTab[0].idOrders,orderAmount,aPaymentMethod,coupon,hasPreOrder);this._logEvent("order",orderObj,aResult.data.contentTab[0].idOrders);if(this._postRecordCallback){this._postRecordCallback(aResult.data.contentTab[0].idOrders,"confirmation",orderObj)}else{window.location=this._baseUrl+"/confirmation/"}}}else{$("#checkoutError").show()}this._waitingScreen.stopWaiting()}],this)};OrderClass.prototype.setPostRecordCallback=function(aCallback){this._postRecordCallback=aCallback};OrderClass.prototype.checkDeposit=function(aCallback){var idOrders;if($("#orderProductLoan").css("display")==="block"){idOrders=$("#orderProductIdentifier").val();aCallback();return}$("#deposit-order-identifier").removeClass("is-invalid");idOrders=$.trim($("#deposit-order-identifier").val());if(!idOrders){$("#deposit-order-identifier").addClass("is-invalid");this._waitingScreen.stopWaiting();return}coreObj.queue([function(aNext){this._restServiceObj.get(aNext,aSiteConfigObj.useCrosser,aSiteConfigObj.orderCheckDepositUrl,idOrders,[],{},{})},function(aNext,aResult){if(aResult.status===0&&aResult.data.contentTab.length>0){this._setIdOrders(idOrders,0,"unknown","",false);aCallback()}else{$("#deposit-order-identifier").addClass("is-invalid");this._waitingScreen.stopWaiting()}}],this)};OrderClass.prototype.prepareDeposit=function(aCallback){var idOrders,orderAmount;$("#checkoutError").hide();coreObj.queue([function(aNext){var email,action,webServiceObj,indProduct;this._waitingScreen.startWaiting();if($("#newsletter").is(":checked")){email=this._getEmail();if(email){console.info("OrderClass: Registering "+email+" to newsletter");action="newsletterSubscription";action="klaviyoOptin";webServiceObj=this._restServiceObj.getWebServiceObj();webServiceObj.sendRequest(null,window._internalBaseUrl+"/engine/tools/newsletter.php?"+action,"POST",{email:email,lang:this._lang});this._layerListener("subscribe_newsletter",{email:email})}}console.info("OrderClass: Recording order");orderObj=this._buildPayment("swikly","unknown","waiting",0,false);orderObj=this._setUserStatistics(orderObj);orderAmount=orderObj.amount;this._restServiceObj.add(aNext,aSiteConfigObj.useCrosser,aSiteConfigObj.orderRecordUrl,orderObj)},function(aNext,aResult){console.info("OrderClass: teqOff result "+JSON.stringify(aResult));if(aResult.status===0){this._setIdOrders(aResult.data.contentTab[0].idOrders,orderAmount,"swikly","",false);this._logEvent("order",orderObj,aResult.data.contentTab[0].idOrders);this._restServiceObj.get(aNext,aSiteConfigObj.useCrosser,aSiteConfigObj.orderCheckDepositUrl,aResult.data.contentTab[0].idOrders,[],{},{})}else{$("#checkoutError").show()}
1this._waitingScreen.stopWaiting()},function(aNext,aResult){if(aResult.status===0&&aResult.data.contentTab.length>0){aCallback()}else{$("#deposit-order-identifier").addClass("is-invalid");this._waitingScreen.stopWaiting()}}],this)};OrderClass.prototype.recordDeposit=function(aPaymentMethod,aTransactionId,aTransactionState,aTransactionPercent,usedForTestMyAir){if($("#tip4SpecialOrder").length>0){this.recordTip4Special(aPaymentMethod,aTransactionId,aTransactionState,aTransactionPercent);return}$("#loanError").hide();coreObj.queue([function(aNext){var email,webServiceObj,orderObj;this._waitingScreen.startWaiting();orderObj={idOrders:this._getIdOrders(),productType:"TeqSensor-01-s1",pricings:"TeqSensor-01-ANY-loan",productTypeSup:"AirObs-01-test",pricingsSup:usedForTestMyAir?"AirObs-01-ANY":"AirObs-01-ANY-Free",paymentMethod:aPaymentMethod,transactionId:aTransactionId,transactionMode:"direct",transactionState:aTransactionState,transactionPercent:aTransactionPercent,usedForTestMyAir:usedForTestMyAir};this._restServiceObj.add(aNext,aSiteConfigObj.useCrosser,aSiteConfigObj.orderDepositUrl,orderObj)},function(aNext,aResult){console.info("OrderClass: teqOff result "+JSON.stringify(aResult));if(aResult.status===0){this._resetCartObject();if(this._postRecordCallback){this._postRecordCallback(aResult.data.contentTab[0].idOrders,aResult.data.contentTab[0].user,"confirmation")}else{window.location=this._baseUrl+"/confirmation/"}}else{$("#loanError").show()}this._waitingScreen.stopWaiting()}],this)};OrderClass.prototype.checkTip4Special=function(aCallback){var idOrders;$("#tip4Special-order-identifier").removeClass("is-invalid");idOrders=$("#tip4Special-order-identifier").val();if(!idOrders){$("#tip4Special-order-identifier").addClass("is-invalid");return}coreObj.queue([function(aNext){this._restServiceObj.get(aNext,aSiteConfigObj.useCrosser,aSiteConfigObj.orderCheckTip4SpecialUrl,idOrders,[],{},{})},function(aNext,aResult){if(aResult.status===0&&aResult.data.contentTab.length>0){this._setIdOrders(idOrders,0,"unknown","");aCallback()}else{$("#tip4Special-order-identifier").addClass("is-invalid")}}],this)};OrderClass.prototype.recordTip4Special=function(aPaymentMethod,aTransactionId,aTransactionState,aTransactionPercent){$("#tip4SpecialError").hide();coreObj.queue([function(aNext){var email,webServiceObj,orderObj;this._waitingScreen.startWaiting();orderObj={idOrders:this._getIdOrders(),productType:"TIP4-01-black",pricings:"TIP4-01-FRA-I-WEB-noel2018-special",amount:99,paymentMethod:aPaymentMethod,transactionId:aTransactionId,transactionMode:"direct",transactionState:aTransactionState,transactionPercent:aTransactionPercent};this._restServiceObj.add(aNext,aSiteConfigObj.useCrosser,aSiteConfigObj.orderRecordTip4SpecialUrl,orderObj)},function(aNext,aResult){console.info("OrderClass: teqOff result "+JSON.stringify(aResult));if(aResult.status===0){this._resetCartObject();this._waitingScreen.stopWaiting();window.location=this._baseUrl+"/confirmation/"}else{$("#loanError").show()}this._waitingScreen.stopWaiting()}],this)};OrderClass.prototype._checkEmail=function(aEvent){var email,formatRegExp;email=$("#email_registration").val();email=email.toLowerCase().trim();console.info("OrderClass: checking email address "+email);formatRegExp=new RegExp(/\S+@\S+\.\S+/,"");if(email&&formatRegExp.test(email)){$("#email_registration").removeClass("is-invalid");$("#email_registration").val(email);return true}$("#email_registration").addClass("is-invalid");return false};OrderClass.prototype._registerEmail=function(aEmailInputId){var email,language,formatRegExp;email=$("#"+aEmailInputId).val();language=$(window.document).find("html").attr("lang").substr(0,2);if(language!=="fr"){language="en"}console.info("OrderClass: registering email address "+email);formatRegExp=new RegExp(/\S+@\S+\.\S+/,"");if(email&&formatRegExp.test(email)){this._setOrderEmail(email);$("#"+aEmailInputId).removeClass("is-invalid");this._registerKlaviyoEmail();this._setEmail(email,true);return true}$("#"+aEmailInputId).addClass("is-invalid");return false};OrderClass.prototype._doRegisterKlaviyoEmail=function(){console.info("OrderClass: pushing Klaviyo event orderStarted");klaviyo.push(["track","orderStarted"])};OrderClass.prototype._registerKlaviyoEmail=function(){var addressObj;if(this._useKlaviyo&&typeof klaviyo!=="undefined"){console.info("OrderClass: registering email address on Klaviyo");addressObj=this._getAddressObject();
1klaviyo.identify({email:addressObj.billing.email,language:$(window.document).find("html").attr("lang").substr(0,2)},this._doRegisterKlaviyoEmail.bind(this))}};OrderClass.prototype._doRegisterKlaviyoCart=function(){var cartObj,productObj,indProduct;if(this._useKlaviyo&&typeof klaviyo!=="undefined"){cartObj=this._getCartObject();productObj={};for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){productObj[cartObj.productTab[indProduct].productType]=cartObj.productTab[indProduct].number}console.info("OrderClass: pushing Klaviyo event orderCart");klaviyo.push(["track","orderCart",productObj])}};OrderClass.prototype._registerKlaviyoAddress=function(){var addressObj,dataObj;if(this._useKlaviyo&&typeof klaviyo!=="undefined"){console.info("OrderClass: registering billing user on Klaviyo");addressObj=this._getAddressObject();if(!addressObj.isShippingSpecific){dataObj=addressObj.shipping}else if(addressObj.hasOwnProperty("billing")){dataObj=addressObj.billing}else{dataObj=addressObj.shipping}klaviyo.identify({$first_name:dataObj.firstname,$last_name:dataObj.lastname,$phone_number:dataObj.phone,firstname:dataObj.firstname,lastname:dataObj.lastname,phone:dataObj.phone},this._doRegisterKlaviyoCart.bind(this))}};OrderClass.prototype._registerKlaviyoEvent=function(aEvent){if(this._useKlaviyo&&typeof klaviyo!=="undefined"){console.info("OrderClass: pushing Klaviyo event "+aEvent);klaviyo.push(["track",aEvent])}};OrderClass.prototype._hasUserStatistics=function(aOrderObj){if($("#howKnown_shipping").length>0&&$("#howKnown_shipping").val()!=="unset"){if($("#shopreason_shipping").length>0&&$("#shopreason_shipping").val()!=="unset"){if($("#userage_shipping").length>0&&$("#userage_shipping").val()!=="unset"){console.info("OrderClass: User has provided statistics");$("#howKnown_reduction").show();return true}}}$("#howKnown_reduction").hide();return false};OrderClass.prototype._setUserStatistics=function(aOrderObj){aOrderObj.howKnown="";aOrderObj.shopreason="";aOrderObj.userage="";if($("#howKnown_shipping").length>0&&$("#howKnown_shipping").val()!=="unset"){aOrderObj.howKnown=$("#howKnown_shipping").val()}if($("#shopreason_shipping").length>0&&$("#shopreason_shipping").val()!=="unset"){aOrderObj.shopreason=$("#shopreason_shipping").val()}if($("#userage_shipping").length>0&&$("#userage_shipping").val()!=="unset"){aOrderObj.userage=$("#userage_shipping").val()}console.info("OrderClass: User statistics are ("+aOrderObj.howKnown+", "+aOrderObj.shopreason+", "+aOrderObj.userage+")");return aOrderObj};OrderClass.prototype._selectPickup=function(aPickupId){var cartObj;cartObj=this._getCartObject();cartObj.shippingId=aPickupId;this._setCartObject(cartObj)};OrderClass.prototype.showPickupMap=function(aCoordTab){var indCoord,latitude,longitude,iconObj,markerObj;if(aCoordTab.length>0&&typeof window.L!=="undefined"){$("#shippingPickupMap").show();this.pickupMapObj=L.map("shippingPickupMap",{scrollWheelZoom:false}).setView([aCoordTab[0].latitude,aCoordTab[0].longitude],14);L.tileLayer("https://tile.openstreetmap.org/{z}/{x}/{y}.png",{attribution:'© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',minZoom:8,maxZoom:22}).addTo(this.pickupMapObj);this._selectPickup(aCoordTab[0].id);for(indCoord=0;indCoord<aCoordTab.length;indCoord+=1){latitude=parseFloat(aCoordTab[indCoord].latitude);longitude=parseFloat(aCoordTab[indCoord].longitude);iconObj=L.icon({iconUrl:"../../config/icons/marker-icon-green.png",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[0,-25]});markerObj=L.marker([latitude,longitude],{icon:iconObj});this.pickupMapObj.addLayer(markerObj);markerObj.bindPopup(aCoordTab[indCoord].name);$("#dpdItem_"+indCoord).on("click",this._selectPickup.bind(this,aCoordTab[indCoord].id))}}};OrderClass.prototype.hidePickupMap=function(){if(this.pickupMapObj){this.pickupMapObj.remove()}this.pickupMapObj=null;$("#shippingPickupMap").hide()};OrderClass.prototype._togglePickup=function(aState){var cartObj;cartObj=this._getCartObject();if(aState){coreObj.queue([function(aNext){var addressObj,webServiceObj;console.debug("Retrieving DPD pickup addresses");addressObj=this._getAddressObject();webServiceObj=this._restServiceObj.getWebServiceObj();webServiceObj.sendRequest(aNext,window._internalBaseUrl+"/engine/tools/dpd.php","POST",{address:addressObj.shipping.street1+addressObj.shipping.street2,postalCode:addressObj.shipping.code,city:addressObj.shipping.town,country:addressObj.shipping.country})},function(aNext,aResult){if(aResult.hasOwnProperty("data")&&aResult.data&&aResult.data.hasOwnProperty("httpData")&&aResult.data.httpData&&aResult.data.httpData.hasOwnProperty("html")&&aResult.data.httpData.html){console.error("Displaying list of pickup addresses");$("#shippingPickupList").html(aResult.data.httpData.html);$("#shippingPickupList").show();cartObj.shippingService="DPD_Pickup";this._setCartObject(cartObj);this.showPickupMap(aResult.data.httpData.coordTab)}else{console.error("No pickup addresses found")}}],this)}else{$("#shippingPickupList").hide();this.hidePickupMap();cartObj.shippingService="DPD_Standard";this._setCartObject(cartObj)}};OrderClass.prototype._processContact=function(){var isValid,name,email,message,nameRegExp,emailRegExp;isValid=true;name=$("#contactName").val();email=$("#contactEmail").val();message=$("#contactMessage").val();if(name||email||message){if(name){$("#contactName").removeClass("is-invalid")}else{isValid=false;$("#contactName").addClass("is-invalid")}emailRegExp=new RegExp(/\S+@\S+\.\S+/,"");if(email&&emailRegExp.test(email)){$("#contactEmail").removeClass("is-invalid")}else{isValid=false;$("#contactEmail").addClass("is-invalid")}if(message){$("#contactMessage").removeClass("is-invalid")}else{isValid=false;$("#contactMessage").addClass("is-invalid")}if(isValid){if(!this._restServiceObj){this._restServiceObj=new RestServiceClass(window._internalBaseUrl,aAppConfig.server.baseUrl,aAppConfig.server.apiVersion,"json")}coreObj.queue([function(aNext){this._restServiceObj.add(aNext,aSiteConfigObj.useCrosser,aSiteConfigObj.websiteContact,{name:name,email:email,message:message})},function(aNext,aResult){console.error("OrderClass: Contact message status "+JSON.stringify(aResult));if(aResult.status===0){$("#contactModal").modal("show")}
1else{$("#errorModal").modal("show");$("#errorModalPricing").hide();$("#errorModalMessage").show()}}],this)}}};OrderClass.prototype._checkAqiReview=function(aResult){humanCheckObj.renew("aqi");if(aResult.status!==0){$("#reportaqiPostalCode").addClass("is-invalid");$("#reportaqiCity").addClass("is-invalid")}else{if(aResult.data.httpData.hasOwnProperty("data")&&aResult.data.httpData.data.isPartial){$("#reportaqiPartial").show()}else{$(".reportaqiThanks").show()}}};OrderClass.prototype._registerAqiReview=function(){var country,postalCode,city,email,uriTab,indUri,paramTab;$(".is-invalid").removeClass("is-invalid");$("#reportaqiPartial").hide();$(".reportaqiThanks").hide();country=$("#reportaqiCountry").val();postalCode=$("#reportaqiPostalCode").val().trim();city=$("#reportaqiCity").val().trim();if(!postalCode){$("#reportaqiPostalCode").addClass("is-invalid");console.debug("OrderClass: Missing or invalid postal code");return}if(!city){$("#reportaqiCity").addClass("is-invalid");console.debug("OrderClass: Missing or invalid city");return}email="";uriTab=window.location.search.substr(1).split("&");for(indUri=0;indUri<uriTab.length;indUri+=1){paramTab=uriTab[indUri].split("=");if(paramTab.length===2){if(paramTab[0]==="email"){email=decodeURIComponent(paramTab[1])}}}if(email){this._webServiceObj=new WebServiceClass;console.info("Registering to AQI review for "+email+" on "+postalCode+" "+city+" "+country);this._webServiceObj.sendRequest(this._checkAqiReview.bind(this),window._internalBaseUrl+"/engine/tools/reportaqi2.php?registerAqiReview","POST",humanCheckObj.apply("aqi",{email:email,postalCode:postalCode,city:city,country:country,lang:this._lang,lat:this._aqiLat,lng:this._aqiLng},"reportaqiFax"));this._setEmail(email,false);this._layerListener("download_content",{email:email})}else{console.debug("OrderClass: Missing email in url")}};OrderClass.prototype._checkAqiBilan=function(aResult){humanCheckObj.renew("aqi");if(aResult.status!==0){$("#bilanaqiPostalCode").addClass("is-invalid");$("#bilanaqiCity").addClass("is-invalid")}else{if(aResult.data.httpData.hasOwnProperty("data")&&aResult.data.httpData.data.isPartial){$("#bilanaqiPartial").show()}else{$(".bilanaqiThanks").show()}}};OrderClass.prototype._registerAqiBilan=function(){var country,postalCode,city,email;$(".is-invalid").removeClass("is-invalid");$("#bilanaqiPartial").hide();$(".bilanaqiThanks").hide();email=$("#bilanaqiEmail").val();country=$("#bilanaqiCountry").val();postalCode=$("#bilanaqiPostalCode").val().trim();city=$("#bilanaqiCity").val().trim();if(!email){$("#bilanaqiEmail").addClass("is-invalid");console.debug("OrderClass: Missing or invalid email");return}if(!postalCode){$("#bilanaqiPostalCode").addClass("is-invalid");console.debug("OrderClass: Missing or invalid postal code");return}if(!city){$("#bilanaqiCity").addClass("is-invalid");console.debug("OrderClass: Missing or invalid city");return}if(!$("#bilanaqiTerms").is(":checked")){$("#bilanaqiTerms").addClass("is-invalid");console.debug("OrderClass: Missing terms consentment");return}this._webServiceObj=new WebServiceClass;console.info("Registering to AQI review for "+email+" on "+postalCode+" "+city+" "+country);this._webServiceObj.sendRequest(this._checkAqiBilan.bind(this),window._internalBaseUrl+"/engine/tools/reportaqi2.php?registerAqiReview","POST",humanCheckObj.apply("aqi",{email:email,postalCode:postalCode,city:city,country:country,lang:this._lang,lat:this._aqiLat,lng:this._aqiLng},"bilanaqiFax"));this._setEmail(email,false);this._layerListener("download_content",{email:email})};orderObj=new OrderClass;if($("#orderProductList").length>0){orderObj._dumpAddress();orderObj._listCartItem();$("#newsletter").prop("checked",true)}if($("#orderProductCashMode").length>0){orderObj._restServiceObj=new RestServiceClass(window._internalBaseUrl,aAppConfig.server.baseUrl,aAppConfig.server.apiVersion,"json");orderObj._waitingScreen=new WaitingScreenClass;$("#newsletter").prop("checked",true);$("#orderShippingDirect").prop("checked",true)}if($("#orderCartList").length>0||$("#orderCartSelect").length>0){orderObj._webServiceObj=new WebServiceClass;if($("#orderVatReference").length>0){orderObj._setCartCoupon("")}orderObj._dumpCartCoupon();orderObj._dumpCartCountry();orderObj._checkSensorInCart();orderObj._checkNeedForPromo();
1orderObj._dumpCartItem();if($("#orderVatReference").length<=0){$(window).on("hashchange",{},function(aEvent){orderObj._processCartStep()});orderObj._processCartStep()}if($("#orderVatReference").length>0){$("#airobs_01_test_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"airobs_01_test"));$("#e500_01_standard_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"e500_01_standard"));$("#e500_02_connected_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"e500_02_connected"));$("#e500_03_standard_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"e500_03_standard"));$("#e500_04_connected_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"e500_04_connected"));$("#e500_03_cap_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"e500_03_cap"));$("#other_01_cleaning_kit_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"other_01_cleaning_kit"));$("#teqair100_01_darkgrey_car_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"teqair100_01_darkgrey_car"));$("#teqair100_01_darkgrey_indoor_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"teqair100_01_darkgrey_indoor"));$("#teqair100_01_wooden_foot_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"teqair100_01_wooden_foot"));$("#teqair200_01_black_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"teqair200_01_black"));$("#teqair200_01_blue_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"teqair200_01_blue"));$("#teqair200_01_darkgrey_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"teqair200_01_darkgrey"));$("#teqair200_01_lightgrey_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"teqair200_01_lightgrey"));$("#teqair200_01_pinkclay_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"teqair200_01_pinkclay"));$("#teqair450_01_black_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"teqair450_01_black"));$("#teqair450_01_darkgrey_hang_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"teqair450_01_darkgrey_hang"));$("#teqair450_01_lightgrey_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"teqair450_01_lightgrey"));$("#teqair450_01_lightgrey_hang_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"teqair450_01_lightgrey_hang"));$("#teqsensor_01_s1_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"teqsensor_01_s1"));$("#teqsensor_01_s1_offer_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"teqsensor_01_s1"));$("#tip4_01_black_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"tip4_01_black"));$("#tip9_01_black_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"tip9_01_black"));$("#tip9_01_blue_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"tip9_01_blue"));$("#tip9_01_grey_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"tip9_01_grey"));$("#tip9_01_orange_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"tip9_01_orange"));$("#tip9_01_pink_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"tip9_01_pink"));$("#tip9_01_red_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"tip9_01_red"));$("#tip24_01_black_plain_short_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"tip24_01_black_plain_short"));$("#tip24_01_black_ceiling_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"tip24_01_black_ceiling"));$("#sensor_01_laser_egg_2_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"sensor_01_laser_egg_2"));$("#sensor_01_laser_egg_2_offer_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"sensor_01_laser_egg_2"));$("#sensor_02_laser_egg_co2_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"sensor_02_laser_egg_co2"));$("#sensor_02_laser_egg_co2_offer_addToCartButton").on("click",orderObj._processAddToCart.bind(orderObj,"sensor_02_laser_egg_co2"));if($("#packageNoel_01_addToCartButton").length>0){$("#packageNoel_01_addToCartButton").on("click",orderObj._processAddChristmas.bind(orderObj,"packageNoel_01_addToCartButton"))}if($("#packageNoel_02_addToCartButton").length>0){$("#packageNoel_02_addToCartButton").on("click",orderObj._processAddChristmas.bind(orderObj,"packageNoel_02_addToCartButton"))}$("#sensorOption").on("change",orderObj._processSensorToCart.bind(orderObj,"teqsensor_01_s1"))}}if($("#orderCartEnum").length>
10){orderObj._enumCartItem()}if($("#orderProductPrice").length>0||$(".productPrice").length>0){$("#orderProductColor").change(orderObj._updateFromProduct.bind(orderObj));$("#orderProductQuantity").change(orderObj._updateFromProduct.bind(orderObj));$("#cartButton").on("click",orderObj._addProductToCart.bind(orderObj,""));$("#cartButton_xs").on("click",orderObj._addProductToCart.bind(orderObj,""));orderObj._updateFromProduct()}if($(".catalogProduct").length>0){$("#catalogButton").on("click",orderObj._switchToCart.bind(orderObj))}if($("#catalogButton_teqair100_01").length>0){$("#catalogButton_teqair100_01").on("click",orderObj._switchToCart.bind(orderObj,"teqair100_01"))}if($("#catalogButton_teqair200_01").length>0){$("#catalogButton_teqair200_01").on("click",orderObj._switchToCart.bind(orderObj,"teqair200_01"))}if($("#catalogButton_teqair450_01").length>0){$("#catalogButton_teqair450_01").on("click",orderObj._switchToCart.bind(orderObj,"teqair450_01"))}$(".default-check").each(function(){this.checked=true});if($("#orderProductCatalog").length>0){$("#teqair100_01_cartButton").on("click",orderObj._insertProductCategoryToCart.bind(orderObj,"teqair100_01"));$("#teqair100_01_kit_cartButton").on("click",orderObj._insertProductCategoryToCart.bind(orderObj,"teqair100_01_kit"));$("#teqair200_01_cartButton").on("click",orderObj._insertProductCategoryToCart.bind(orderObj,"teqair200_01"));$("#teqair450_01_cartButton").on("click",orderObj._insertProductCategoryToCart.bind(orderObj,"teqair450_01"));$("#teqair450_01_hang_cartButton").on("click",orderObj._insertProductCategoryToCart.bind(orderObj,"teqair450_01_hang"));$("#airobs_01_test_cartButton").on("click",orderObj._insertProductCategoryToCart.bind(orderObj,"airobs_01"));$("#e500_01_cartButton").on("click",orderObj._insertProductCategoryToCart.bind(orderObj,"e500_01"));$("#pack_e500_02_connected_teqsensor_01_s1_cartButton").on("click",orderObj._insertProductCategoryToCart.bind(orderObj,"pack_e500_02_connected_teqsensor_01_s1"));$("#pack_e500_04_connected_teqsensor_01_s1_cartButton").on("click",orderObj._insertProductCategoryToCart.bind(orderObj,"pack_e500_04_connected_teqsensor_01_s1"));$("#teqsensor_01_cartButton").on("click",orderObj._insertProductToCart.bind(orderObj,"teqsensor_01_s1"));$("#e500_01_standard_cartButton").on("click",orderObj._insertProductToCart.bind(orderObj,"e500_01_standard"));$("#e500_01_standard_cartLink").on("click",orderObj._insertProductToCart.bind(orderObj,"e500_01_standard"));$("#e500_02_connected_cartButton").on("click",orderObj._insertProductToCart.bind(orderObj,"e500_02_connected"));$("#e500_02_connected_cartLink").on("click",orderObj._insertProductToCart.bind(orderObj,"e500_02_connected"));$("#e500_03_standard_cartButton").on("click",orderObj._insertProductToCart.bind(orderObj,"e500_03_standard"));$("#e500_03_standard_cartLink").on("click",orderObj._insertProductToCart.bind(orderObj,"e500_03_standard"));$("#e500_04_connected_cartButton").on("click",orderObj._insertProductToCart.bind(orderObj,"e500_04_connected"));$("#e500_04_connected_cartLink").on("click",orderObj._insertProductToCart.bind(orderObj,"e500_04_connected"));$("#e500_03_cap_cartButton").on("click",orderObj._insertProductToCart.bind(orderObj,"e500_03_cap"));$("#e500_03_cap_cartLink").on("click",orderObj._insertProductToCart.bind(orderObj,"e500_03_cap"));$("#other_01_cleaning_kit_cartButton").on("click",orderObj._insertProductToCart.bind(orderObj,"other_01_cleaning_kit"));$("#other_01_cleaning_kit_cartLink").on("click",orderObj._insertProductToCart.bind(orderObj,"other_01_cleaning_kit"));$("#teqair100_01_darkgrey_car_cartButton").on("click",orderObj._insertProductToCart.bind(orderObj,"teqair100_01_darkgrey_car"));$("#teqair100_01_darkgrey_car_cartLink").on("click",orderObj._insertProductToCart.bind(orderObj,"teqair100_01_darkgrey_car"));$("#teqair100_01_darkgrey_indoor_cartButton").on("click",orderObj._insertProductToCart.bind(orderObj,"teqair100_01_darkgrey_indoor"));$("#teqair100_01_darkgrey_indoor_cartLink").on("click",orderObj._insertProductToCart.bind(orderObj,"teqair100_01_darkgrey_indoor"));$("#teqair100_01_wooden_foot_cartButton").on("click",orderObj._insertProductToCart.bind(orderObj,"teqair100_01_wooden_foot"));$("#teqair100_01_wooden_foot_cartLink").on("click",orderObj._insertProductToCart.bind(orderObj,"teqair100_01_wooden_foot"));$("#teqair200_01_black_cartButton").on("click",orderObj._insertProductToCart.bind(orderObj,"teqair200_01_black"));$("#teqair200_01_black_cartLink").on("click",orderObj._insertProductToCart.bind(orderObj,"teqair200_01_black"));$("#teqair200_01_blue_cartButton").on("click",orderObj._insertProductToCart.bind(orderObj,"teqair200_01_blue"));$("#teqair200_01_blue_cartLink").on("click",orderObj._insertProductToCart.bind(orderObj,"teqair200_01_blue"));$("#teqair200_01_darkgrey_cartButton").on("click",orderObj._insertProductToCart.bind(orderObj,"teqair200_01_darkgrey"));$("#teqair200_01_darkgrey_cartLink").on("click",orderObj._insertProductToCart.bind(orderObj,"teqair200_01_darkgrey"));$("#teqair200_01_lightgrey_cartButton").on("click",orderObj._insertProductToCart.bind(orderObj,"teqair200_01_lightgrey"));$("#teqair200_01_lightgrey_cartLink").on("click",orderObj._insertProductToCart.bind(orderObj,"teqair200_01_lightgrey"));$("#teqair200_01_pinkclay_cartButton").on("click",orderObj._insertProductToCart.bind(orderObj,"teqair200_01_pinkclay"));$("#teqair200_01_pinkclay_cartLink").on("click",orderObj._insertProductToCart.bind(orderObj,"teqair200_01_pinkclay"));$("#teqair200_01_s1_pack_cartButton").on("click",orderObj._insertProductCategoryToCart.bind(orderObj,"teqair200_01_s1_pack"));$("#teqair200_01_s1_pack_blue_cartButton").on("click",orderObj._insertProductCategoryToCart.bind(orderObj,"teqair200_01_s1_pack_blue"));
1$("#teqair200_01_s1_pack_darkgrey_cartButton").on("click",orderObj._insertProductCategoryToCart.bind(orderObj,"teqair200_01_s1_pack_darkgrey"));$("#teqair200_01_s1_pack_lightgrey_cartButton").on("click",orderObj._insertProductCategoryToCart.bind(orderObj,"teqair200_01_s1_pack_lightgrey"));$("#teqair200_01_s1_pack_pinkclay_cartButton").on("click",orderObj._insertProductCategoryToCart.bind(orderObj,"teqair200_01_s1_pack_pinkclay"));$("#lavie_pack_cartButton").on("click",orderObj._insertProductCategoryToCart.bind(orderObj,"lavie_pack"));$("#teqair450_01_black_cartButton").on("click",orderObj._insertProductToCart.bind(orderObj,"teqair450_01_black"));$("#teqair450_01_black_cartLink").on("click",orderObj._insertProductToCart.bind(orderObj,"teqair450_01_black"));$("#teqair450_01_darkgrey_hang_cartButton").on("click",orderObj._insertProductToCart.bind(orderObj,"teqair450_01_darkgrey_hang"));$("#teqair450_01_darkgrey_hang_cartLink").on("click",orderObj._insertProductToCart.bind(orderObj,"teqair450_01_darkgrey_hang"));$("#teqair450_01_lightgrey_cartButton").on("click",orderObj._insertProductToCart.bind(orderObj,"teqair450_01_lightgrey"));$("#teqair450_01_lightgrey_cartLink").on("click",orderObj._insertProductToCart.bind(orderObj,"teqair450_01_lightgrey"));$("#teqair450_01_lightgrey_hang_cartButton").on("click",orderObj._insertProductToCart.bind(orderObj,"teqair450_01_lightgrey_hang"));$("#teqair450_01_lightgrey_hang_cartLink").on("click",orderObj._insertProductToCart.bind(orderObj,"teqair450_01_lightgrey_hang"));$("#tip4_01_black_cartButton").on("click",orderObj._insertProductToCart.bind(orderObj,"tip4_01_black"));$("#tip4_01_black_cartLink").on("click",orderObj._insertProductToCart.bind(orderObj,"tip4_01_black"));$("#tip9_01_black_cartButton").on("click",orderObj._insertProductToCart.bind(orderObj,"tip9_01_black"));$("#tip9_01_black_cartLink").on("click",orderObj._insertProductToCart.bind(orderObj,"tip9_01_black"));$("#tip24_01_black_plain_short_cartButton").on("click",orderObj._insertProductToCart.bind(orderObj,"tip24_01_black_plain_short"));$("#tip24_01_black_plain_short_cartLink").on("click",orderObj._insertProductToCart.bind(orderObj,"tip24_01_black_plain_short"));$("#tip24_01_black_ceiling_cartButton").on("click",orderObj._insertProductToCart.bind(orderObj,"tip24_01_black_ceiling"));$("#tip24_01_black_ceiling_cartLink").on("click",orderObj._insertProductToCart.bind(orderObj,"tip24_01_black_ceiling"));$("#sensor_02_laser_egg_co2_cartButton").on("click",orderObj._insertProductToCart.bind(orderObj,"sensor_02_laser_egg_co2"));if($("#packageNoel_01_addToCartButton").length>0){$("#packageNoel_01_addToCartButton").on("click",orderObj._processAddChristmas.bind(orderObj,"packageNoel_01_addToCartButton"))}if($("#packageNoel_02_addToCartButton").length>0){$("#packageNoel_02_addToCartButton").on("click",orderObj._processAddChristmas.bind(orderObj,"packageNoel_02_addToCartButton"))}}if($("#orderProductOffer").length>0){$("#teqsensor_01_s1_cartButton").on("click",orderObj._addProductToCart.bind(orderObj,"teqsensor_01_s1"));$("#teqsensor_01_s1_cartButton").on("click",orderObj._addProductToCart.bind(orderObj,"teqsensor_01_s1"));$("#tip9_01_black_cartButton").on("click",orderObj._addProductToCart.bind(orderObj,"tip9_01_black"));$("#tip24_01_black_plain_short_cartButton").on("click",orderObj._addProductToCart.bind(orderObj,"tip24_01_black_plain_short"))}if($("#orderCartList").length>0||$("#orderCartSelect").length>0){$("#orderCoupon").on("input",orderObj._processCoupon.bind(orderObj));$("#couponButton").on("click",orderObj._processCoupon.bind(orderObj));$("#orderGodFather").on("change",orderObj._processCoupon.bind(orderObj));$("#godfatherButton").on("click",orderObj._processCoupon.bind(orderObj));$("#orderProductCountry").change(orderObj._processCountry.bind(orderObj));$("#switchTocheckout").on("click",orderObj._switchTocheckout.bind(orderObj));$("#switchToconfirmation").on("click",orderObj._switchToconfirmation.bind(orderObj));$("#cancelconfirmation").on("click",orderObj._cancelconfirmation.bind(orderObj));if($("#orderShippingDirect").length>0){$("#orderShippingDirect").change(orderObj._dumpCartItem.bind(orderObj))}window.orderProductLanguage=$(window.document).find("html").attr("lang");window.orderProductLang=window.orderProductLanguage.substr(0,2);orderObj._waitingScreen=new WaitingScreenClass;orderObj._restServiceObj=new RestServiceClass(window._internalBaseUrl,aAppConfig.server.baseUrl,aAppConfig.server.apiVersion,"json");window.updateFromCart=function(aProductType){var cartObj,indProduct,quantity;cartObj=this._getCartObject();for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){if(cartObj.productTab[indProduct].productType===aProductType){break}}quantity=parseInt($("#orderProductQuantity_"+aProductType).val(),10);this._updateCartItem(indProduct,quantity);this._checkSensorInCart();this._checkNeedForPromo();
1this._dumpCartItem();this._enumCartItem()}.bind(orderObj);window.updateWithCash=function(aProductType,aIndProduct){var value;value=parseInt($("#orderProductCash"+aIndProduct).val()||0,10);this._setCartCash(aProductType,value);this._dumpCartItem()}.bind(orderObj);window.updateSaleOnCash=function(){var value;value=parseInt($("#orderproductTotal").val()||0,10);this._reportSaleOnCash(value);this._dumpCartItem()}.bind(orderObj);window.resetSaleOnCash=function(){this._reportSaleOnCash(0);this._dumpCartItem()}.bind(orderObj);window.removeFromCart=function(aProductType,aQuantity){this._removeCartItem(aProductType,aQuantity);if($("#sensorOption").length>0&&(aProductType==="teqsensor_01_s1"||aProductType==="sensor_01_laser_egg_2"||aProductType==="sensor_02_laser_egg_co2")&&$("#sensorOption").is(":checked")){$("#sensorOption").prop("checked",false)}this._checkSensorInCart();this._checkNeedForPromo();this._dumpCartItem();this._enumCartItem()}.bind(orderObj);window.updateUserStatistics=function(){console.log("Updating user statistics");this._dumpCartItem();this._enumCartItem()}.bind(orderObj);window.backCartStep=function(){console.log("Moving back from cart step "+this._cartStep);window.location=window.location.href.replace("cartStep"+this._cartStep,"cartStep"+(this._cartStep-1))}.bind(orderObj);window.switchCartStep=function(){var cartObj;console.log("Switching from cart step "+this._cartStep);if(this._cartStep===1){cartObj=this._getCartObject();if(cartObj.productTab.length>0){if(this._registerEmail("email_registration")){if(window.location.href.indexOf("cartStep1")>=0){window.location=window.location.href.replace("cartStep"+this._cartStep,"cartStep"+(this._cartStep+1))}else{window.location=window.location.href+"#cartStep2"}}}}else if(this._cartStep===2){$(".is-invalid").removeClass("is-invalid");this._collectAddress();if(this._checkAddress(true)){this._registerKlaviyoAddress();window.location=window.location.href.replace("cartStep"+this._cartStep,"cartStep"+(this._cartStep+1))}}else if(this._cartStep===3){window.location=window.location.href.replace("cartStep"+this._cartStep,"cartStep"+(this._cartStep+1))}else if(this._cartStep===4){window.location=window.location.href.replace("cartStep"+this._cartStep,"cartStep"+(this._cartStep+1))}}.bind(orderObj)}if($("#orderProductCashMode").length>0){$("#orderproductTotalBtn").on("click",window.updateSaleOnCash);$("#orderproductResetBtn").on("click",window.resetSaleOnCash)}if($("#orderProductList").length>0){orderObj._restServiceObj=new RestServiceClass(window._internalBaseUrl,aAppConfig.server.baseUrl,aAppConfig.server.apiVersion,"json");orderObj._waitingScreen=new WaitingScreenClass;$("#country_shipping").change(orderObj._registerCountry.bind(orderObj));$("#orderTerms").on("click",orderObj._validateAddress.bind(orderObj));if(orderObj._hasSensorInCart()){$("#sensorWarning").show()}else{$("#sensorWarning").hide()}window.orderProductLanguage=$(window.document).find("html").attr("lang");window.orderProductLang=window.orderProductLanguage.substr(0,2)}if($(".catalogProduct").length>0){orderObj._updateCatalogPrices()}if($("#orderProductIdentifier").length>0){if($("#orderProductLoan").length>0){window.orderProductAmount=99;window.orderProductLanguage=$(window.document).find("html").attr("lang");window.orderProductLang=window.orderProductLanguage.substr(0,2);window.orderProductEmail="";orderObj._restServiceObj=new RestServiceClass(window._internalBaseUrl,aAppConfig.server.baseUrl,aAppConfig.server.apiVersion,"json");orderObj._waitingScreen=new WaitingScreenClass;if(orderObj._getIdOrders()){$("#orderProductIdentifier").html(orderObj._getIdOrders());$("#orderProductLoan").show();$("#orderPostLoan").hide();window.orderProductEmail=orderObj._getEmail()}else{$("#orderProductLoan").hide();$("#orderPostLoan").show()}}else{orderObj._resetCartObject();$("#orderProductIdentifier").html(orderObj._getIdOrders());if(orderObj._getPaymentMethod()==="bank_transfer"){$("#orderProductTransfer").show()}else if(orderObj._getPaymentMethod()==="alma"){orderObj._webServiceObj=new WebServiceClass;if(window.location.search.indexOf("pid")>=0){console.info("Reporting payment success on Alma");orderObj._webServiceObj.sendRequest(null,aSiteConfigObj.almaUrl+window.location.search,"GET")}}if($("#orderSpainConfirmation").length>0){$("#orderSpainConfirmation").attr("src","https://tbs.tradedoubler.com/report?organization=2263949&event=403201&orderNumber="+orderObj._getIdOrders()+"&orderValue="+orderObj._getOrderAmount()+"¤cy=EUR")}}}if($("#orderDeliveryStatus").length>0){orderObj._restServiceObj=new RestServiceClass(window._internalBaseUrl,aAppConfig.server.baseUrl,aAppConfig.server.apiVersion,"json");orderObj._waitingScreen=new WaitingScreenClass}
1if($("#tip4SpecialOrder").length>0){window.orderProductAmount=99;window.orderProductLanguage=$(window.document).find("html").attr("lang");window.orderProductLang=window.orderProductLanguage.substr(0,2);window.orderProductEmail="";orderObj._restServiceObj=new RestServiceClass(window._internalBaseUrl,aAppConfig.server.baseUrl,aAppConfig.server.apiVersion,"json");orderObj._waitingScreen=new WaitingScreenClass}if($("#orderVatReference").length>0){window.applyVatReference=function(){var value;value=parseInt($("#orderproductTotal").val()||0,10);this._reportSaleOnCash(value);this._dumpCartItem()}.bind(orderObj);window.resetVatReference=function(){this._reportSaleOnCash(0);this._dumpCartItem()}.bind(orderObj);window.orderProductLanguage=$(window.document).find("html").attr("lang");window.orderProductLang=window.orderProductLanguage.substr(0,2);orderObj._waitingScreen=new WaitingScreenClass;$("#country_shipping").change(orderObj._registerCountry.bind(orderObj));$("#orderTerms").on("click",orderObj._validateProductAndAddress.bind(orderObj));$("#orderVatReferenceApplyBtn").on("click",orderObj._processVAT.bind(orderObj));if(orderObj._countCartItem()<=0){console.debug("OrderClass: Enforcing a default product in cart");orderObj._addCartItem("teqair200_01_blue",1)}orderObj._dumpCartItem();orderObj._dumpAddress();orderObj._listCartItem()}if($("#reportaqiButton").length>0||$("#bilanaqiButton").length>0){var _aqiCartCountry="";try{_aqiCartCountry=(JSON.parse(localStorage.getItem("teqoWeb_cart")||"{}")||{}).country||""}catch(e){}orderObj._aqiLat=null;orderObj._aqiLng=null;var _initAqiAutocomplete=function(addressId,postalCodeId,cityId,countryId){googlePlacesObj.load(function(){googlePlacesObj.applyAutocomplete(document.getElementById(addressId),["address_components","geometry"],function(place){var r=googlePlacesObj.parseComponents(place.address_components);if(r.zip){$("#"+postalCodeId).val(r.zip)}if(r.city){$("#"+cityId).val(r.city)}if(r.country){$("#"+countryId).val(r.country)}if(place.geometry&&place.geometry.location){orderObj._aqiLat=place.geometry.location.lat();orderObj._aqiLng=place.geometry.location.lng()}})})};if($("#reportaqiButton").length>0){humanCheckObj.arm("aqi","reportaqiTurnstile");$("#reportaqiCountry").val(_aqiCartCountry||(window._internalCountry||"").toLowerCase());_initAqiAutocomplete("reportaqiAddress","reportaqiPostalCode","reportaqiCity","reportaqiCountry");$("#reportaqiButton").on("click",orderObj._registerAqiReview.bind(orderObj))}if($("#bilanaqiButton").length>0){humanCheckObj.arm("aqi","bilanaqiTurnstile");$("#bilanaqiCountry").val(_aqiCartCountry||(window._internalCountry||"").toLowerCase());_initAqiAutocomplete("bilanaqiAddress","bilanaqiPostalCode","bilanaqiCity","bilanaqiCountry");$("#bilanaqiButton").on("click",orderObj._registerAqiBilan.bind(orderObj))}}if($("#contactButton").length>0){$("#contactButton").on("click",orderObj._processContact.bind(orderObj))}orderObj._updateProductQuantity();if(window.location.href.indexOf("error=241")>=0){$("#checkoutError").show()}else if(window.location.href.indexOf("error=242")>=0){$("#loanError").show()}return orderObj});define("thirdParty/shop",["utl/core","utl/restService","utl/webService","utl/waitingScreen","utl/googlePlaces","utl/humanCheck","json!cfg/siteConfig.json","json!cfg/appConfig.json","json!thirdParty/pricing.json","jquery"],function(coreObj,RestServiceClass,WebServiceClass,WaitingScreenClass,googlePlacesObj,humanCheckObj,aSiteConfigObj,aAppConfig,aPricingObj,$){"use strict";var i18n={fr:{title:"Votre panier",empty:"Votre panier est vide",catalogLink:"Voir tous nos produits",pay:"Valider et payer",continueShopping:"Continuer mes achats",discountMsg_multi:"Remise multi-produits : -10% sur vos purificateurs d'air",discountMsg_packExtra:"Offre pack : -15% sur le purificateur d'air ajouté à votre pack",discountMsg_godfather:"Parrainage : -5% sur vos purificateurs d'air et vos packs",discountMsg_loyalty:"Fidélité : -15% sur vos purificateurs d'air et vos packs",discountMsg_coupon:"Code {code} : -{percent}%, non cumulable avec les autres remises",discountMsg_couponNotCumulative:"Le co
1de {code} ne se cumule pas avec vos autres remises : la plus avantageuse est appliquée",discountMsg_couponNotEligible:"Le code {code} ne s'applique à aucun article de votre panier",discountMsg_noDiscountItems:"Les accessoires, le capteur S1 et les packs S1 ne bénéficient d'aucune remise",s1UpsellMsg:"Passez à la combinaison idéale pour un contrôle complet de votre air",s1UpsellButton:"Ajouter S1",packBoostMsg:"15% de réduction sur tout purificateur d'air supplémentaire !",packBoostLinkText:"purificateur d'air supplémentaire",packIncentiveMsg:"Ajoutez un 2ème purificateur pour profiter de -10% ou bénéficiez de nos offres packs !",packIncentiveLinkText:"offres packs",packIncentiveLinkText2:"2ème purificateur",connectedWarning:"Vous avez choisi le {std}. Pour piloter votre purificateur avec votre capteur {s1}, optez pour le {connected}.",sensorLoanMsg:"Capteur S1 : caution de 149⬠(Swikly)",sensorLoanOption:"Bénéficiez du prêt gratuit du capteur S1 pendant 1 mois",sensorLoanLinkText:"capteur S1",country:"Pays de livraison",shippingFree:"Livraison offerte",shipping:"Livraison",total:"Total",subtotal:"Produits",discount:"Remise",coupon:"Code promo",couponApply:"Appliquer",customsNotice:"Les taxes et droits de douane éventuels sont à la charge du destinataire.",godfather:"Email parrain",godfatherApply:"Valider",contact:"Contact",email:"Email",newsletter:"Je m'informe sur la qualité de l'air, les développements de TEQOYA, et je profite des promotions exclusives.",shippingAddress:"Adresse de livraison",billingAddress:"Adresse de facturation",sameAddress:"Utiliser cette adresse comme adresse de facturation",deliveryMode:"Mode de livraison",payment:"Paiement",firstname:"Prénom *",lastname:"Nom *",company:"Société (optionnel)",street1:"Adresse *",street2:"Complément d'adresse",code:"Code postal *",town:"Ville *",countryLabel:"Pays *",phone:"Téléphone *",note:"Note de Livraison",terms:'J\'accepte les <a href="/fr/terms/" target="_blank">conditions générales de vente</a>',checkoutError:"Une erreur est survenue. Veuillez réessayer.",requiredField:"Champ requis",paidError:"Votre paiement a bien été accepté, mais l'enregistrement de votre commande a échoué. Ne payez pas une seconde fois : contactez-nous en indiquant la référence",checkRequiredFields:"Veuillez vérifier que vous avez renseigné tous les champs obligatoires.",invalidEmail:"Email invalide",colissimo:"Colissimo (standard)",dpd:"DPD Relais colis",dpdStandard:"DPD Domicile",deliveryDelay:"Délai : 2-5 jours ouvrés",dpdPickupLoading:"Chargement des relais...",dpdPickupError:"Impossible de charger les relais",dpdPickupRequired:"Veuillez sélectionner un relais colis",dpdPickupNoAddress:"Veuillez d'abord saisir votre adresse",payByCard:"Payer par carte",payByPaypal:"PayPal",payByAlma:"Payer en 3x sans frais",walletsAvailable:"Apple Pay et Google Pay disponibles",priceNotReady:"Le montant de votre commande est en cours de calcul, merci de réessayer dans un instant.",payByTransfer:"Virement bancaire",securedPayment:"Paiement sécurisé",orderSummaryTitle:"Résumé de la commande",returningCustomer:"Heureux de vous retrouver !",discountQuestion:"Avez-vous un code de réduction ?",condShipping:"Livraison DPD",condReturn:"Remboursement",almaLearnMore:"En savoir plus",almaDetails:"TEQOYA vous permet de payer en 3 fois via Alma (disponible en France et Guadeloupe, panier entre 100⬠et 2 500â¬)."},en:{title:"Your cart",empty:"Your cart is empty",catalogLink:"View all our products",pay:"Confirm & pay",continueShopping:"Continue shopping",discountMsg_multi:"Multi-product discount: -10% on your air purifiers",discountMsg_packExtra:"Pack offer: -15% on the air purifier added to your pack",discountMsg_godfather:"Referral: -5% on your air purifiers and packs",discountMsg_loyalty:"Loyalty: -15% on your air purifiers and packs",discountMsg_coupon:"Code {code}: -{percent}%, cannot be combined with other discounts",discountMsg_couponNotCumulative:"Code {code} cannot be combined with your other discounts: the better one is applied",discountMsg_couponNotEligible:"Code {code}
1 does not apply to any item in your cart",discountMsg_noDiscountItems:"Accessories, the S1 sensor and S1 packs are not eligible for any discount",s1UpsellMsg:"Step up to the ideal combination for full control of your air",s1UpsellButton:"Add S1",packBoostMsg:"15% off any additional air purifier!",packBoostLinkText:"additional air purifier",packIncentiveMsg:"Add a 2nd purifier to get -10%, or enjoy our pack offers!",packIncentiveLinkText:"pack offers",packIncentiveLinkText2:"2nd purifier",connectedWarning:"You chose the {std}. To control your purifier with your {s1} sensor, choose the {connected} version.",sensorLoanMsg:"S1 sensor: â¬149 deposit (Swikly)",sensorLoanOption:"Free S1 sensor loan included (â¬149 deposit via Swikly)",sensorLoanLinkText:"S1 sensor",country:"Delivery country",shippingFree:"Free shipping",shipping:"Shipping",total:"Total",subtotal:"Products",discount:"Discount",coupon:"Coupon code",couponApply:"Apply",customsNotice:"Any taxes and customs duties are to be paid by the receiver.",godfather:"Referral email",godfatherApply:"Apply",contact:"Contact",email:"Email",newsletter:"Subscribe to newsletter",shippingAddress:"Shipping address",billingAddress:"Billing address",sameAddress:"Use this address as the billing address",deliveryMode:"Delivery method",payment:"Payment",firstname:"First name *",lastname:"Last name *",company:"Company (optional)",street1:"Address *",street2:"Additional address information (optional)",code:"Zip code *",town:"City *",countryLabel:"Country *",phone:"Phone *",note:"Note (optional)",terms:'I agree to the <a href="/en/terms/" target="_blank">terms and conditions</a>',checkoutError:"An error occurred. Please try again.",requiredField:"Required field",paidError:"Your payment went through, but recording your order failed. Do not pay again: please contact us quoting reference",checkRequiredFields:"Please check that you have filled in the required fields.",invalidEmail:"Invalid email",colissimo:"Colissimo (standard)",dpd:"DPD Pickup point",dpdStandard:"DPD Home delivery",deliveryDelay:"Delivery time: 5-10 working days",dpdPickupLoading:"Loading relay points...",dpdPickupError:"Could not load relay points",dpdPickupRequired:"Please select a relay point",dpdPickupNoAddress:"Please fill in your address first",payByCard:"Pay by card",payByPaypal:"PayPal",payByAlma:"Pay in 3 installments",walletsAvailable:"Apple Pay and Google Pay available",priceNotReady:"Your order total is still being calculated, please try again in a moment.",payByTransfer:"Bank transfer",securedPayment:"Secured payment",orderSummaryTitle:"Order summary",returningCustomer:"Welcome back!",discountQuestion:"Do you have a discount code?",condShipping:"DPD Delivery",condReturn:"Money back",almaLearnMore:"Learn more",almaDetail
1s:"TEQOYA allows you to pay in 3 installments via Alma (available in France and Guadeloupe, basket between â¬100 and â¬2,500)."},de:{title:"Ihr Warenkorb",empty:"Ihr Warenkorb ist leer",catalogLink:"Alle Produkte ansehen",pay:"Bestätigen & zahlen",continueShopping:"Weiter einkaufen",discountMsg_multi:"Mehrproduktrabatt: -10% auf Ihre Luftreiniger",discountMsg_packExtra:"Paketangebot: -15% auf den zu Ihrem Paket hinzugefügten Luftreiniger",discountMsg_godfather:"Empfehlung: -5% auf Ihre Luftreiniger und Pakete",discountMsg_loyalty:"Treuerabatt: -15% auf Ihre Luftreiniger und Pakete",discountMsg_coupon:"Code {code}: -{percent}%, nicht mit anderen Rabatten kombinierbar",discountMsg_couponNotCumulative:"Der Code {code} ist nicht mit Ihren anderen Rabatten kombinierbar: Der günstigere Rabatt wird angewendet",discountMsg_couponNotEligible:"Der Code {code} gilt für keinen Artikel in Ihrem Warenkorb",discountMsg_noDiscountItems:"Zubehör, der S1-Sensor und die S1-Pakete sind von allen Rabatten ausgenommen",s1UpsellMsg:"Wechseln Sie zur idealen Kombination für die vollständige Kontrolle Ihrer Luft",s1UpsellButton:"S1 hinzufügen",packBoostMsg:"15% Rabatt auf jeden zusätzlichen Luftreiniger!",packBoostLinkText:"zusätzlichen Luftreiniger",packIncentiveMsg:"Fügen Sie einen 2. Luftreiniger hinzu und erhalten Sie -10%, oder profitieren Sie von unseren Paketangeboten!",packIncentiveLinkText:"Paketangeboten",packIncentiveLinkText2:"2. Luftreiniger",connectedWarning:"Sie haben die {std} gewählt. Um Ihren Luftreiniger mit dem Sensor {s1} zu steuern, wählen Sie die Version {connected}.",sensorLoanMsg:"S1-Sensor: 149⬠Kaution (Swikly)",sensorLoanOption:"Kostenloses S1-Sensor-Leihgerät inklusive (149 ⬠Kaution via Swikly)",sensorLoanLinkText:"S1-Sensor-Leihgerät",country:"Lieferland",shippingFree:"Kostenloser Versand",shipping:"Versand",total:"Gesamt",subtotal:"Produkte",discount:"Rabatt",coupon:"Gutscheincode",couponApply:"Anwenden",customsNotice:"Alle Steuern und Zölle sind vom Empfänger zu zahlen.",godfather:"Empfehlungs-E-Mail",godfatherApply:"Anwenden",contact:"Kontakt",email:"E-Mail",newsletter:"Newsletter abonnieren",shippingAddress:"Lieferadresse",billingAddress:"Rechnungsadresse",sameAddress:"Gleiche Rechnungsadresse",deliveryMode:"Lieferart",payment:"Zahlung",firstname:"Vorname *",lastname:"Nachname *",company:"Firma (optional)",street1:"Adresse *",street2:"Zusatzangaben zur Adresse (optional)",code:"Postleitzahl *",town:"Stadt *",countryLabel:"Land *",phone:"Telefon *",note:"Hinweis (optional)",terms:'Ich akzeptiere die <a href="/de/terms/" target="_blank">AGB</a>',checkoutError:"Fehler bei der Bearbeitung.",requiredField:"Pflichtfeld",paidError:"Ihre Zahlung wurde angenommen, aber Ihre Bestellung konnte nicht gespeichert werden. Bitte zahlen Sie nicht erneut, sondern kontaktieren Sie uns unter Angabe der Referenz",checkRequiredFields:"Bitte überprüfen Sie, ob alle Pflichtfelder ausgefüllt sind.",invalidEmail:"Ungültige E-Mail",colissimo:"Colissimo",dpd:"DPD Paketshop",dpdStandard:"DPD Hauszustellung",deliveryDelay:"Lieferfrist: 5-10 Werktage",dpdPickupLoading:"Paketshops werden geladen...",dpdPickupError:"Paketshops konnten nicht geladen werden",dpdPickupRequired:"Bitte wählen Sie einen Paketshop",dpdPickupNoAddress:"Bitte zuerst Adresse eingeben",payByCard:"Per Karte bezahlen",payByPaypal:"PayPal",payByAlma:"In 3 Raten bezahlen",walletsAvailable:"Apple Pay und Google Pay verfügbar",priceNotReady:"Ihr Bestellbetrag wird noch berechnet, bitte versuchen Sie es gleich erneut.",payByTransfer:"Per Ãberweisung",securedPayment:"Sicheres bezahlen",orderSummaryTitle:"Bestellübersicht",returningCustomer:"Schön, Sie wiederzusehen!",discountQuestion:"Haben Sie einen Rabattcode?",condShipping:"DPD-Lieferung",condReturn:"Rückgabe",almaLearnMore:"Mehr erfahren",almaDetails:"TEQOYA ermöglicht Ihnen die Zahlung in 3 Raten über Alma (verfügbar in Frankreich und Guadeloupe, Warenkorb zwischen 100⬠und 2.500â¬)."},es:{title:"Su carrito",empty:"Su carrito está vacÃo",catalogLink:"Ver todos nuestros productos",pay:"Confirmar y pagar",continueShopping:"Seguir comprando",discountMsg_multi:"Descuento multiproducto: -10% en sus purificadores de aire",discountMsg_packExtra:"Oferta pack: -15% en el purificador de aire añadido a su pack",discountMsg_godfather:"Apadrinamiento: -5% en sus purificadores de aire y packs",discountMsg_loyalty:"Fidelidad: -15% en sus purificadores de aire y packs",discountMsg_coupon:"Código {code}: -{percent}%, no acumulable con otros descuentos",discountMsg_couponNotCumulative:"El código {code} no es acumulable con sus otros descuentos: se aplica el más ventajoso",discountMsg_couponNotEligible:"El código {code} no se aplica a ningún artÃculo de su carrito",discountMsg_noDiscountItems:"Los accesorios, el sensor S1 y los packs S1 no tienen ningún descuento",s1UpsellMsg:"Pase a la combinación ideal para un control completo de su aire",s1UpsellButton:"Añadir S1",packBoostMsg:"¡15% de descuento en cualquier purificador de aire adicional!",packBoostLinkText:"purificador de aire adicional",packIncentiveMsg:"¡Añade un 2º purificador para obtener un -10% o aprovecha nuestras ofertas de packs!",packIncentiveLinkText:"ofertas de packs",packIncentiveLinkText2:"2º purificador",connectedWarning:"Ha elegido el {std}. Para controlar su purificador con el sensor {s1}, elija el {connected}.",sensorLoanMsg:"Sensor S1: depósito de 149⬠(Swikly)",sensorLoanOption:"Préstamo gratuito de sensor S1 incluido (depósito de 149 ⬠via Swikly)",sensorLoanLinkText:"sensor S1",country:"PaÃ
1s de envÃo",shippingFree:"EnvÃo gratuito",shipping:"EnvÃo",total:"Total",subtotal:"Productos",discount:"Descuento",coupon:"Código de cupón",couponApply:"Aplicar",customsNotice:"Los impuestos y derechos de aduana eventuales corren a cargo del destinatario.",godfather:"Email de referencia",godfatherApply:"Aplicar",contact:"Contacto",email:"Email",newsletter:"Suscribirse al boletÃn",shippingAddress:"Dirección de envÃo",billingAddress:"Dirección de facturación",sameAddress:"Diese Adresse als Rechnungsadresse verwenden",deliveryMode:"Método de entrega",payment:"Pago",firstname:"Nombre *",lastname:"Apellidos *",company:"Empresa (opcional)",street1:"Dirección *",street2:"Información adicional de la dirección (opcional)",code:"Código postal *",town:"Ciudad *",countryLabel:"PaÃs *",phone:"Teléfono *",note:"Nota (opcional)",terms:'Acepto los <a href="/es/terms/" target="_blank">términos y condiciones</a>',checkoutError:"Error al procesar su pedido.",requiredField:"Campo requerido",paidError:"Su pago se ha aceptado, pero no se ha podido registrar su pedido. No pague de nuevo: contáctenos indicando la referencia",checkRequiredFields:"Compruebe que ha rellenado todos los campos obligatorios.",invalidEmail:"Email inválido",colissimo:"Colissimo",dpd:"DPD Punto de recogida",dpdStandard:"DPD Domicilio",deliveryDelay:"Plazo: 5-10 dÃas hábiles",dpdPickupLoading:"Cargando puntos...",dpdPickupError:"No se pudieron cargar los puntos",dpdPickupRequired:"Por favor seleccione un punto de recogida",dpdPickupNoAddress:"Por favor introduzca su dirección primero",payByCard:"Pagar con tarjeta",payByPaypal:"PayPal",payByAlma:"Pagar en 3 cuotas",walletsAvailable:"Apple Pay y Google Pay disponibles",priceNotReady:"El importe de su pedido se está calculando, inténtelo de nuevo en un momento.",payByTransfer:"Transferencia bancaria",securedPayment:"Pago seguro",orderSummaryTitle:"Resumen del pedido",returningCustomer:"¡Bienvenido de nuevo!",discountQuestion:"¿Tiene un código de descuento?",condShipping:"EnvÃo DPD",condReturn:"Devolución",almaLearnMore:"Más información",almaDetails:"TEQOYA le permite pagar en 3 cuotas a través de Alma (disponible en Francia y Guadalupe, cesta entre 100⬠y 2.500â¬)."},it:{title:"Il tuo carrello",empty:"Il tuo carrello è vuoto",catalogLink:"Vedi tutti i prodotti",pay:"Conferma e paga",continueShopping:"Continua gli acquisti",discountMsg_multi:"Sconto multiprodotto: -10% sui tuoi purificatori d'aria",discountMsg_packExtra:"Offerta pack: -15% sul purificatore d'aria aggiunto al tuo pack",discountMsg_godfather:"Presentazione: -5% sui tuoi purificatori d'aria e pack",discountMsg_loyalty:"Fedeltà : -15% sui tuoi purificatori d'aria e pack",discountMsg_coupon:"Codice {code}: -{percent}%, non cumulabile con altri sconti",discountMsg_couponNotCumulative:"Il codice {code} non è cumulabile con i tuoi altri sconti: viene applicato il più vantaggioso",discountMsg_couponNotEligible:"Il codice {code} non si applica a nessun articolo del carrello",discountMsg_noDiscountItems:"Accessori, sensore S1 e pack S1 non beneficiano di alcuno sconto",s1UpsellMsg:"Passa alla combinazione ideale per un controllo completo della tua aria",s1UpsellButton:"Aggiungi S1",packBoostMsg:"15% di sconto su ogni purificatore d'aria aggiuntivo!",packBoostLinkText:"purificatore d'aria aggiuntivo",packIncentiveMsg:"Aggiungi un 2° purificatore per ottenere il -10% o approfitta delle nostre offerte pack!",packIncentiveLinkText:"offerte pack",packIncentiveLinkText2:"2° purificatore",connectedWarning:"Ha scelto il {std}. Per controllare il purificatore con il sensore {s1}, scelga il {connected}.",sensorLoanMsg:"Sensore S1: deposito di 149⬠(Swikly)",sensorLoanOption:"Prestito gratuito del sensore S1 incluso (deposito di 149 ⬠via Swikly)",sensorLoanLinkText:"sensore S1",country:"Paese di spedizione",shippingFree:"Spedizione gratuita",shipping:"Spedizione",total:"Totale",subtotal:"Prodotti",discount:"Sconto",coupon:"Codice coupon",couponApply:"Applica",customsNotice:"Eventuali tasse e dazi doganali sono a carico del destinatario.",godfather:"Email referente",godfatherApply:"Applica",contact:"Contatto",email:"Email",newsletter:"Iscriviti alla newsletter",shippingAddress:"Indirizzo di spedizione",billingAddress:"Indirizzo di fatturazione",s
1ameAddress:"Utilizza questo indirizzo come indirizzo di fatturazione",deliveryMode:"Modalità di consegna",payment:"Pagamento",firstname:"Nome *",lastname:"Cognome *",company:"Azienda (opzionale)",street1:"Indirizzo *",street2:"Indirizzo aggiuntivo (opzionale)",code:"CAP *",town:"Città *",countryLabel:"Paese *",phone:"Telefono *",note:"Nota (opzionale)",terms:'Accetto i <a href="/it/terms/" target="_blank">termini e condizioni</a>',checkoutError:"Errore nell'elaborazione dell'ordine.",requiredField:"Campo obbligatorio",paidError:"Il pagamento è andato a buon fine, ma la registrazione dell'ordine non è riuscita. Non pagare una seconda volta: contattaci indicando il riferimento",checkRequiredFields:"Verificare di aver compilato tutti i campi obbligatori.",invalidEmail:"Email non valida",colissimo:"Colissimo",dpd:"DPD Punto ritiro",dpdStandard:"DPD Domicilio",deliveryDelay:"Tempi: 5-10 giorni lavorativi",dpdPickupLoading:"Caricamento punti...",dpdPickupError:"Impossibile caricare i punti",dpdPickupRequired:"Selezionare un punto di ritiro",dpdPickupNoAddress:"Inserire prima l'indirizzo",payByCard:"Paga con carta",payByPaypal:"PayPal",payByAlma:"Paga in 3 rate",walletsAvailable:"Apple Pay e Google Pay disponibili",priceNotReady:"L'importo del tuo ordine è in fase di calcolo, riprova tra un istante.",payByTransfer:"Bonifico bancario",securedPayment:"Pagamento sicuro",orderSummaryTitle:"Riepilogo ordine",returningCustomer:"Bentornato!",discountQuestion:"Ha un codice sconto?",condShipping:"Spedizione DPD",condReturn:"Reso",almaLearnMore:"Scopri di più",almaDetail
1s:"TEQOYA ti permette di pagare in 3 rate tramite Alma (disponibile in Francia e Guadalupa, carrello tra 100⬠e 2.500â¬)."},zh:{title:"æ¨çè´ç©è½¦",empty:"æ¨çè´ç©è½¦æ¯ç©ºç",catalogLink:"æ¥çææäº§å",pay:"确认并æ¯ä»",continueShopping:"ç»§ç»è´ç©",discountMsg_multi:"å¤ä»¶ä¼æ ï¼ç©ºæ°ååå¨äº«å-10%ææ£",discountMsg_packExtra:"å¥è£
伿 ï¼æ·»å å°å¥è£
ä¸ç空æ°ååå¨äº«å-15%ææ£",discountMsg_godfather:"æ¨è伿 ï¼ç©ºæ°ååå¨åå¥è£
享å-5%ææ£",discountMsg_loyalty:"è客æ·ä¼æ ï¼ç©ºæ°ååå¨åå¥è£
享å-15%ææ£",discountMsg_coupon:"伿 ç {code}ï¼-{percent}%ï¼ä¸å¯ä¸å
¶ä»ä¼æ åæ¶ä½¿ç¨",discountMsg_couponNotCumulative:"伿 ç {code} ä¸å¯ä¸æ¨çå
¶ä»ä¼æ åæ¶ä½¿ç¨ï¼å·²ä¸ºæ¨åºç¨æ´ä¼æ çææ£",discountMsg_couponNotEligible:"伿 ç {code} ä¸éç¨äºè´ç©è½¦ä¸çä»»ä½åå",discountMsg_noDiscountItems:"é
ä»¶ãS1ä¼ æå¨åS1å¥è£
ä¸åä¸ä»»ä½ä¼æ ",s1UpsellMsg:"å级è³çæ³ç»åï¼å
¨é¢ææ§æ¨ç空æ°",s1UpsellButton:"æ·»å S1",packBoostMsg:"ä»»æé¢å¤ç©ºæ°ååå¨å¯äº«15%ææ£ï¼",packBoostLinkText:"é¢å¤ç©ºæ°ååå¨",packIncentiveMsg:"æ·»å 第2å°ååå¨å¯äº«-10%ææ£ï¼æäº«åæä»¬çå¥è£
伿 ï¼",packIncentiveLinkText:"å¥è£
伿 ",packIncentiveLinkText2:"第2å°ååå¨",connectedWarning:"æ¨éæ©äº{std}ãå¦æå¸æä½¿ç¨{s1}ä¼ æå¨æ§å¶ååå¨ï¼è¯·éæ©{connected}çæ¬ã",sensorLoanMsg:"S1ä¼ æå¨ï¼149欧å
æ¼éï¼Swiklyï¼",sensorLoanOption:"å
è´¹åç¨S1ä¼ æå¨ï¼éè¿Swiklyæ¯ä»149欧å
æ¼éï¼",sensorLoanLinkText:"S1ä¼ æå¨",country:"éè´§å½å®¶",shippingFree:"å
è´¹é
é",shipping:"è¿è´¹",total:"æ»è®¡",subtotal:"产å",discount:"ææ£",coupon:"伿 ç ",couponApply:"åºç¨",customsNotice:"ç¨æ¶åå
³ç¨é½ç±æ¶ä»¶äººæ¯ä»ã",godfather:"æ¨è人é®ç®±",godfatherApply:"åºç¨",contact:"èç³»æ¹å¼",email:"çµåé®ä»¶",newsletter:"订é
æ°é»é讯",shippingAddress:"æ¶è´§å°å",billingAddress:"è´¦åå°å",sameAddress:"å°æ¤å°å设为账åå°å",deliveryMode:"é
éæ¹å¼",payment:"仿¬¾",firstname:"å *",lastname:"å§ *",company:"å
¬å¸ï¼å¯éï¼",street1:"å°å *",street2:"è¡¥å
å°åï¼å¯éï¼",code:"鮿¿ç¼ç *",town:"åå¸ *",countryLabel:"å½å®¶ *",phone:"çµè¯ *",note:"夿³¨ï¼å¯éï¼",terms:'ææ¥å<a href="/zh/terms/" target="_blank">æ¡æ¬¾åæ¡ä»¶</a>',checkoutError:"å¤çæ¨çè®¢åæ¶åçé误ã",requiredField:"å¿
å¡«åæ®µ",paidError:"æ¨ç仿¬¾å·²æåï¼ä½è®¢åè®°å½å¤±è´¥ã请å¿éå¤ä»æ¬¾ï¼è¯·èç³»æä»¬å¹¶æä¾ä»¥ä¸è®¢åå·ï¼",checkRequiredFields:"请确认æ¨å·²å¡«åææå¿
å¡«åæ®µã",invalidEmail:"æ æççµåé®ä»¶",colissimo:"Colissimo",dpd:"DPD åä»¶ç¹",dpdStandard:"DPD å¿«éå°å®¶",deliveryDelay:"é
éæ¶é´ï¼5-10ä¸ªå·¥ä½æ¥",dpdPickupLoading:"å è½½åä»¶ç¹...",dpdPickupError:"æ æ³å è½½åä»¶ç¹",dpdPickupRequired:"è¯·éæ©ä¸ä¸ªåä»¶ç¹",dpdPickupNoAddress:"请å
填忍çå°å",payByCard:"é¶è¡å¡æ¯ä»",payByPaypal:"PayPal",payByAlma:"3æåæä»æ¬¾",walletsAvailable:"æ¯æ Apple Pay å Google Pay",priceNotReady:"订åé颿£å¨è®¡ç®ä¸ï¼è¯·ç¨ååè¯ã",payByTransfer:"é¶è¡è½¬è´¦",securedPayment:"å®å
¨æ¯ä»",orderSummaryTitle:"订åæè¦",returningCustomer:"欢è¿åæ¥ï¼",discountQuestion:"æ¨æææ£ç åï¼",condShipping:"DPDé
é",condReturn:"鿬¾",almaLearnMore:"äºè§£æ´å¤",almaDetail
1s:"TEQOYAå
许æ¨éè¿Almaå3æä»æ¬¾ï¼éç¨äºæ³å½åçå¾·ç½æ®ï¼è´ç©è½¦éé¢å¨100â¬è³2,500â¬ä¹é´ï¼ã"}};var productImageMap={teqair200_01_lightgrey:"cart_teqair200_lightgrey.png",teqair200_01_darkgrey:"cart_teqair200_darkgrey.png",teqair200_01_pinkclay:"cart_teqair200_pink.png",teqair200_01_blue:"cart_teqair200_blue.png",teqair200_01_black:"cart_teqair200_lightgrey.png",lavie_pack_blue:"cart_pack_lavie_blue.png",lavie_pack_darkgrey:"cart_pack_lavie_darkgrey.png",lavie_pack_lightgrey:"cart_pack_lavie_lightgrey.png",lavie_pack_pinkclay:"cart_pack_lavie_pinkclay.png",teqair450_01_black:"cart_teqair450_darkgrey.png",teqair450_01_lightgrey:"cart_teqair450_lightgrey.png",teqair450_01_darkgrey_hang:"cart_teqair450_darkgrey_hang.png",teqair450_01_lightgrey_hang:"cart_teqair450_lightgrey_hang.png",teqair100_01_darkgrey_car:"cart_teqair100_nomad.png",teqair100_01_darkgrey_indoor:"cart_teqair100_nomad_kit.png",teqair100_01_wooden_foot:"cart_teqair100_kit.png",e500_01_standard:"cart_e500_standard.png",e500_02_connected:"cart_e500_connected.png",e500_03_standard:"cart_noctua_standard.png",e500_04_connected:"cart_noctua_connected.png",e500_03_cap:"cart_noctua_cap.png",sensor_02_laser_egg_co2:"cart_laser_egg_co2.png",teqsensor_01_s1:"cart_teqsensor_01_s1.png",pack_e500_02_connected_teqsensor_01_s1:"cart_e500_01_s1.png",airobs_01_month:"cart_airobs_01_month.png",airobs_01_test:"cart_airobs_01_test.png",other_01_cleaning_kit:"cart_other_01_cleaning_kit.png"};var colissimoOnlyProductTab=["e500_01_standard","e500_02_connected","e500_03_standard","e500_04_connected"];var withdrawnProductTab=["cyclo","alana"];var packCoupon="promo10";var productVariantTab={e500_01:{dimensionTab:["sound","connectivity"],baseTab:["standard","classic"],typeTab:{"standard|classic":"e500_01_standard","standard|connected":"e500_02_connected","silent|classic":"e500_03_standard","silent|connected":"e500_04_connected"}},pack_e500_connected_teqsensor_01_s1:{dimensionTab:["sound"],baseTab:["standard"],typeTab:{standard:"pack_e500_02_connected_teqsensor_01_s1",silent:"pack_e500_04_connected_teqsensor_01_s1"}}};var variantThumbTab={e500_01:{e500_01_standard:1,e500_02_connected:5,e500_03_standard:6,e500_04_connected:5}};var variantScopeTab=[{scope:"e500_01",category:"e500_01"},{scope:"pack_duo_boost_0",category:"e500_01"},{scope:"pack_e500_connected_teqsensor_01_s1",category:"pack_e500_connected_teqsensor_01_s1"}];var ShopClass=function(){this._restServiceObj=null;this._webServiceObj=null;this._waitingScreen=null;this._pricingObj=Object.clone(aPricingObj);this._pricingArea="";this._language=$(window.document).find("html").attr("lang")||"fr-FR";this._lang=this._language.substr(0,2);this._baseUrl=window._internalBaseUrl+"/"+this._lang;this._catalogPath={fr:"produit/catalog/",en:"product/catalog/",de:"catalog/",es:"catalog/",it:"catalog/",zh:"catalog/"}[this._lang]||"catalog/";this._sensor1Path={fr:"produit/capteur-qualite-air/",en:"product/sensor-quality-air/",de:"sensor-qualitats-luft/",es:"product/sensor-quality-air/",it:"sensore-qualita-aria/",zh:"sensor-quality-air/"}[this._lang]||"sensor-quality-air/";this._e500Path={fr:"produit/purificateur-air-sans-filtre-teqoya-e500/",en:"product/filterless-air-purifier-e500/",de:"luftreiniger-mit-wiederverwendbarem-e500/",es:"product/filterless-air-purifier-e500/",it:"purificatore-aria-con-filtro-riutilizzabile/",zh:"filterless-air-purifier-e500/"}[this._lang]||"product/filterless-air-purifier-e500/";this._layerListener=null;this._postRecordCallback=null;this._supportMany=aSiteConfigObj.useReductionOnMany;this._htSuffix=aSiteConfigObj.htSuffix;this._ttcSuffix=aSiteConfigObj.ttcSuffix;this._t=i18n[this._lang]||i18n.en;this._colissimoOnly=null;this._setPricing();this._setPricingAsStandard()};ShopClass.prototype.setLayerListener=function(aLayerListener){this._layerListener=aLayerListener};ShopClass.prototype._normalizeNumber=function(aNumber){return parseFloat(aNumber.toFixed(2))};ShopClass.prototype._convertAmount=function(aValue){var amount=aValue.toLocaleString(this._language,{style:"currency",currency:aSiteConfigObj.currency,minimumFractionDigits:2,maximumFractionDigits:2});return amount.split(decodeURIComponent("%C2%A0")).join(" ")};ShopClass.prototype._displayAmount=function(aValue){if(parseInt(aValue,10)!==parseFloat(aValue)){return this._convertAmount(aValue)}
1var amount=aValue.toLocaleString(this._language,{style:"currency",currency:aSiteConfigObj.currency,minimumFractionDigits:0,maximumFractionDigits:0});return amount.split(decodeURIComponent("%C2%A0")).join(" ")};ShopClass.prototype._toCamelCase=function(aString){if(aString){return aString.replace(/\w\S*/g,function(txt){return txt.charAt(0).toUpperCase()+txt.substr(1).toLowerCase()})}return aString};ShopClass.prototype._normalizePhone=function(aPhone){return(aPhone||"").replace(/[^\d+]/g,"")};ShopClass.prototype._getTaxRate=function(aCountry){var cartObj;if(this._pricingObj.taxTab.hasOwnProperty(aCountry)){cartObj=this._getCartObject();if(cartObj.hasOwnProperty("tvaReference")&&cartObj.tvaReference){return 0}return this._pricingObj.taxTab[aCountry]}return 0};ShopClass.prototype._hasTax=function(aCountry){return this._getTaxRate(aCountry)>0};ShopClass.prototype._identifyCartCoupon=function(aCoupon){var pos,len,multiOffer,val;pos=aCoupon.indexOf("#");if(pos>=0){len=pos+2+parseInt(aCoupon[pos+1],10);if(aCoupon.length===len){multiOffer=aCoupon.substr(0,pos+2);if(this._pricingObj.product.hasOwnProperty(multiOffer)&&this._pricingObj.product[multiOffer].isMultiOffer){val=parseInt(aCoupon.substr(pos+2),10);if(val>0&&val<this._pricingObj.product[multiOffer].isMultiOffer){return multiOffer}}}}return aCoupon.toLowerCase()};ShopClass.prototype._isSuperGodfather=function(aCoupon){if(!aCoupon){return false}if(this._pricingObj.product.hasOwnProperty(aCoupon)){if(this._pricingObj.product[aCoupon].hasOwnProperty("isGodFather")){return this._pricingObj.product[aCoupon].isGodFather==="super"}}return false};ShopClass.prototype._getCountryPricing=function(aCountryId){var countryTab=this._pricingObj.shipping.countryTab;return countryTab.hasOwnProperty(aCountryId)?countryTab[aCountryId]:null};ShopClass.prototype._getPricingArea=function(aCountryId){var countryObj=this._getCountryPricing(aCountryId);return countryObj?countryObj.area:null};ShopClass.prototype._getProductName=function(aProductType){if(this._pricingObj.reference&&this._pricingObj.reference[aProductType]){return this._pricingObj.reference[aProductType][this._lang]||this._pricingObj.reference[aProductType].en||aProductType}return aProductType};ShopClass.prototype._getProductImage=function(aProductType,aContentTab){var filename=productImageMap[aProductType],content;if(filename){return window._internalBaseUrl+"/config/images/"+filename}content=this._resolvePackContent(aProductType,aContentTab);if(content){return this._getProductImage(content[0].productType)}return""};ShopClass.prototype._getPackImageTab=function(aProductType,aContentTab){var content=this._resolvePackContent(aProductType,aContentTab),imageTab=[],indContent,indUnit;if(!content){return null}for(indContent=0;indContent<content.length;indContent+=1){for(indUnit=0;indUnit<content[indContent].number;indUnit+=1){imageTab.push(window._internalBaseUrl+"/config/images/pack_"+content[indContent].productType+".jpg")}}return imageTab};ShopClass.prototype._getPackContent=function(aProductType){var packObj=this._pricingObj.pack;if(packObj&&packObj.hasOwnProperty(aProductType)&&packObj[aProductType].contentTab){return packObj[aProductType].contentTab}return null};ShopClass.prototype._isPack=function(aProductType){return this._getPackContent(aProductType)!==null};ShopClass.prototype._isPurifier=function(aProductType){return aProductType.indexOf("teqair100_01_darkgrey")===0||aProductType.indexOf("teqair200_01_")===0||aProductType.indexOf("teqair450_01_")===0||aProductType.indexOf("e500_0")===0&&aProductType!=="e500_03_cap"};ShopClass.prototype._resolvePackContent=function(aProductType,aContentTab){var contentTab=this._getPackContent(aProductType),resolvedTab=[],indContent,slot,chosen;if(!contentTab){return null}for(indContent=0;indContent<contentTab.length;indContent+=1){slot=contentTab[indContent];if(slot.productType){chosen=slot.productType}else{chosen=aContentTab&&aContentTab[indContent]||"";if(slot.choiceTab.indexOf(chosen)<0){chosen=slot.choiceTab[0]}}resolvedTab.push({productType:chosen,number:slot.number||1})}return resolvedTab};ShopClass.prototype._getPackDefaultTab=function(aProductType){var resolvedTab=this._resolvePackContent(aProductType,null),defaultTab=[],indContent;if(!resolvedTab){return null}for(indContent=0;indContent<resolvedTab.length;indContent+=1){defaultTab.push(resolvedTab[indContent].productType)}return defaultTab};ShopClass.prototype._getPackDiscount=function(aProductType){var packObj=this._pricingObj.pack[aProductType],discount;if(!packObj||packObj.discount===undefined){return 0}discount=packObj.discount;if(typeof discount==="number"){return discount}return discount[this._pricingArea]||0};
1ShopClass.prototype._hasExplicitPackPrice=function(aProductType){return!!this._pricingObj.product.standard&&typeof this._pricingObj.product.standard[aProductType]==="number"};ShopClass.prototype._expandProductTab=function(aProductTab){var expandedTab=[],indProduct,indContent,content;for(indProduct=0;indProduct<aProductTab.length;indProduct+=1){content=this._resolvePackContent(aProductTab[indProduct].productType,aProductTab[indProduct].contentTab);if(!content){expandedTab.push({productType:aProductTab[indProduct].productType,number:aProductTab[indProduct].number})}else{for(indContent=0;indContent<content.length;indContent+=1){expandedTab.push({productType:content[indContent].productType,number:content[indContent].number*aProductTab[indProduct].number})}}}return expandedTab};ShopClass.prototype._getExpandedProductTab=function(){return this._expandProductTab(this._getCartObject().productTab)};ShopClass.prototype._setPricing=function(){var cartObj,countryObj;cartObj=this._getCartObject();countryObj=this._getCountryPricing(cartObj.country);if(!countryObj){cartObj.country="fr";this._setCartObject(cartObj);countryObj=this._getCountryPricing("fr")}window._internalCountry=cartObj.country;this._htSuffix=aSiteConfigObj.htSuffix;this._ttcSuffix=aSiteConfigObj.ttcSuffix;this._pricingArea=countryObj.area;this._pricingObj.product.reference=this._pricingObj.product[countryObj.area].reference;this._pricingObj.product.standard=this._pricingObj.product[countryObj.area].standard;if(!(this._pricingObj.taxTab[cartObj.country]>0)){this._ttcSuffix="";this._htSuffix=""}else if(this._ttcSuffix===" TTC"&&this._lang!=="fr"){this._ttcSuffix=" incl. VAT"}};ShopClass.prototype._setPricingAsStandard=function(){var couponList,coupon,couponLower;couponList=this._pricingObj.coupons;this._pricingObj.coupons={};for(coupon in couponList){if(couponList.hasOwnProperty(coupon)){couponLower=coupon.toLowerCase();this._pricingObj.coupons[couponLower]=Object.clone(couponList[coupon]);this._pricingObj.product[couponLower]=Object.clone(couponList[coupon])}}};ShopClass.prototype._getProductKind=function(aProductType){if(this._isPack(aProductType)){return this._pricingObj.pack[aProductType].type||""}return this._pricingObj.type[aProductType]||""};ShopClass.prototype._isCouponAllowed=function(aProductType,aCouponKey){var kind=this._getProductKind(aProductType);return kind==="product"||kind==="product_pack"&&aCouponKey===packCoupon};ShopClass.prototype._isRateAllowed=function(aProductType){var kind=this._getProductKind(aProductType);return kind==="product"||kind==="product_pack"};ShopClass.prototype._getDerivedPackPrice=function(aProductType,aContentTab){var resolvedTab,indContent,productType,reference=0,standard=0;resolvedTab=this._resolvePackContent(aProductType,aContentTab);for(indContent=0;indContent<resolvedTab.length;indContent+=1){productType=resolvedTab[indContent].productType;reference+=this._pricingObj.product.reference[productType]*resolvedTab[indContent].number;standard+=this._pricingObj.product.standard[productType]*resolvedTab[indContent].number}return{reference:reference,standard:Math.max(0,standard-this._getPackDiscount(aProductType))}};ShopClass.prototype._getUnitPrice=function(aProductType,aCoupon,aGodFather,aSuperGodfather,aContentTab){var standard,reference,value,packPrice,couponKey,couponObj,dateStr,identifier,usedCoupon,prefix;if(this._isPack(aProductType)&&!this._hasExplicitPackPrice(aProductType)){packPrice=this._getDerivedPackPrice(aProductType,aContentTab);standard=packPrice.standard;reference=packPrice.reference}else{standard=this._pricingObj.product.standard[aProductType];reference=this._pricingObj.product.reference[aProductType]}value=standard;usedCoupon="standard";identifier=this._pricingObj.product.standard.identifier||"std";if(aCoupon){couponKey=this._identifyCartCoupon(aCoupon);couponObj=this._pricingObj.coupons[couponKey];dateStr=(new Date).toJSON().substr(0,10);if(couponObj&&this._isCouponAllowed(aProductType,couponKey)&&(!couponObj.startline||dateStr>=couponObj.startline)&&(!couponObj.deadline||dateStr<=couponObj.deadline)){value=standard*(100-(parseFloat(couponObj.percent)||0))/100;usedCoupon=aCoupon;identifier=couponObj.identifier}}else if((aSuperGodfather||aGodFather)&&this._isRateAllowed(aProductType)){value=standard*(aSuperGodfather?.85:.95)}prefix=this._pricingObj.prefix[aProductType]||"";return{hasReduction:true,limit:0,standard:standard,coupon:usedCoupon,productCategory:prefix,pricing:prefix?prefix+"-FRA-I-"+identifier:"",value:value,reference:reference}};ShopClass.prototype._getShippingTtc=function(aProductType,aCountry){var countryObj=this._getCountryPricing(aCountry),weightTab=this._pricingObj.shipping.weightTab,weight=this._pricingObj.weight[aProductType],indWeight,ttc;if(!countryObj||countryObj.isFree||!weight){return 0}for(indWeight=0;indWeight<weightTab.length;indWeight+=1){if(weight<=weightTab[indWeight]){ttc=countryObj.rateTab[indWeight]*(100+this._getTaxRate(aCountry))/100;return Math.ceil(Math.round(ttc*1e6)/1e5)/10}}return 0};ShopClass.prototype._hasLoanPurifier=function(aProductTab){var expandedTab=this._expandProductTab(aProductTab),indProduct,type;for(indProduct=0;indProduct<expandedTab.length;indProduct+=1){type=expandedTab[indProduct].productType;if(this._isPurifier(type)&&type.indexOf("teqair100_01_")!==0){return true}}return false};ShopClass.prototype._getOrgPrice=function(aPriceObj,aProductType,aHasSensor,aHasPurifier){if(aProductType==="airobs_01_test"){if(aHasPurifier){aPriceObj.standard=0;aPriceObj.value=0;aPriceObj.reference=0}}else if((aProductType==="sensor_01_laser_egg_2"||aProductType==="sensor_02_laser_egg_co2")&&aHasSensor){aPriceObj.standard=0;aPriceObj.value=0;aPriceObj.reference=0}aPriceObj.standardOrg=aPriceObj.standard;aPriceObj.valueOrg=aPriceObj.value;aPriceObj.referenceOrg=aPriceObj.reference};ShopClass.prototype._getCommissionPrice=function(aCoupon){var coupon;
1if(aCoupon){coupon=this._identifyCartCoupon(aCoupon);if(this._pricingObj.coupons.hasOwnProperty(coupon)){if(this._pricingObj.product[coupon].hasOwnProperty("commission")&&this._pricingObj.product[coupon].commission){return this._pricingObj.product[coupon].commission}}}return null};ShopClass.prototype._isSellableProduct=function(aProductType){if(withdrawnProductTab.indexOf(aProductType)>=0){return false}if((this._pricingObj.discontinued||[]).indexOf(aProductType)>=0){return false}if(this._isPack(aProductType)){return true}return!!this._pricingObj.product.standard&&typeof this._pricingObj.product.standard[aProductType]==="number"};ShopClass.prototype._dropUnsellableProduct=function(aProductTab){var keptTab=[],indProduct;for(indProduct=0;indProduct<aProductTab.length;indProduct+=1){if(this._isSellableProduct(aProductTab[indProduct].productType)){keptTab.push(aProductTab[indProduct])}else{console.warn("ShopClass: dropping product no longer on sale: "+aProductTab[indProduct].productType)}}return keptTab};ShopClass.prototype._getCartObject=function(){var cartStr=localStorage.getItem("teqoWeb_cart"),cartObj;if(!cartStr){return{productTab:[],country:window._internalCountry.toLowerCase(),shippingService:"Colissimo",shippingId:-1}}cartObj=JSON.parse(cartStr);cartObj.productTab=this._dropUnsellableProduct(cartObj.productTab);cartObj.productTab=this._dropLoanWithSensor(cartObj.productTab);return cartObj};ShopClass.prototype._dropLoanWithSensor=function(aProductTab){var expandedTab=this._expandProductTab(aProductTab),hasS1=false,keptTab=[],indProduct;for(indProduct=0;indProduct<expandedTab.length;indProduct+=1){if(expandedTab[indProduct].productType==="teqsensor_01_s1"){hasS1=true}}if(!hasS1){return aProductTab}for(indProduct=0;indProduct<aProductTab.length;indProduct+=1){if(aProductTab[indProduct].productType!=="airobs_01_test"){keptTab.push(aProductTab[indProduct])}}return keptTab};ShopClass.prototype._setCartObject=function(aCartObj){localStorage.setItem("teqoWeb_cart",JSON.stringify(aCartObj))};ShopClass.prototype._resetCartObject=function(){var cartObj=this._getCartObject();if(cartObj.productTab.length>0){localStorage.setItem("teqoWeb_order",JSON.stringify(cartObj));localStorage.setItem("teqoWeb_cart","")}};ShopClass.prototype._getOrderObject=function(){if(!this._getIdOrders()){return{productTab:[]}}var cartObj=this._getCartObject();if(cartObj.productTab.length>0){return cartObj}var orderStr=localStorage.getItem("teqoWeb_order");return orderStr?JSON.parse(orderStr):cartObj};ShopClass.prototype._countCartItem=function(){var cartObj=this._getCartObject(),indProduct,productNb=0;for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){productNb+=cartObj.productTab[indProduct].number}return productNb};ShopClass.prototype._cartRequiresColissimo=function(){var productTab=this._getExpandedProductTab(),indProduct;for(indProduct=0;indProduct<productTab.length;indProduct+=1){if(colissimoOnlyProductTab.indexOf(productTab[indProduct].productType)>=0){return true}}return false};ShopClass.prototype._isSameCartLine=function(aCartLine,aProductType,aContentTab){var lineTab,wantTab,indContent;if(aCartLine.productType!==aProductType){return false}if(!this._isPack(aProductType)){return true}lineTab=this._resolvePackContent(aProductType,aCartLine.contentTab);wantTab=this._resolvePackContent(aProductType,aContentTab);for(indContent=0;indContent<lineTab.length;indContent+=1){if(lineTab[indContent].productType!==wantTab[indContent].productType){return false}}return true};ShopClass.prototype._addCartItem=function(aProductType,aNumber,aContentTab){var cartObj=this._getCartObject(),indProduct,cartLine;if(!this._isSellableProduct(aProductType)){console.error("ShopClass: refusing to add product no longer on sale: "+aProductType);return}for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){if(this._isSameCartLine(cartObj.productTab[indProduct],aProductType,aContentTab)){if(aProductType==="airobs_01_test"){cartObj.productTab[indProduct].number=1}else{cartObj.productTab[indProduct].number+=aNumber;if(this._layerListener){this._layerListener("add_to_cart",{productType:aProductType,quantity:aNumber})}}this._setCartObject(cartObj);this._updateProductQuantity();return}}cartLine={productType:aProductType,number:aNumber};
1if(this._isPack(aProductType)){cartLine.contentTab=this._getPackDefaultTab(aProductType);if(aContentTab){cartLine.contentTab=this._resolvePackContent(aProductType,aContentTab).map(function(aContent){return aContent.productType})}}cartObj.productTab.push(cartLine);if(this._layerListener){this._layerListener("add_to_cart",{productType:aProductType,quantity:aNumber})}this._setCartObject(cartObj);this._updateProductQuantity()};ShopClass.prototype._removeCartItem=function(aProductType,aNumber){var cartObj=this._getCartObject(),indProduct;for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){if(cartObj.productTab[indProduct].productType===aProductType){if(cartObj.productTab[indProduct].number>aNumber){if(this._layerListener){this._layerListener("remove_from_cart",{productType:aProductType,quantity:aNumber})}cartObj.productTab[indProduct].number-=aNumber}else{if(this._layerListener){this._layerListener("remove_from_cart",{productType:aProductType,quantity:cartObj.productTab[indProduct].number})}cartObj.productTab.splice(indProduct,1)}break}}this._setCartObject(cartObj);this._updateProductQuantity()};ShopClass.prototype._updateCartItem=function(aIndProduct,aNumber){var cartObj=this._getCartObject();if(aNumber>0){if(cartObj.productTab[aIndProduct].number>aNumber){if(this._layerListener){this._layerListener("remove_from_cart",{productType:cartObj.productTab[aIndProduct].productType,quantity:cartObj.productTab[aIndProduct].number-aNumber})}}else{if(this._layerListener){this._layerListener("add_to_cart",{productType:cartObj.productTab[aIndProduct].productType,quantity:aNumber-cartObj.productTab[aIndProduct].number})}}cartObj.productTab[aIndProduct].number=aNumber}else{if(this._layerListener){this._layerListener("remove_from_cart",{productType:cartObj.productTab[aIndProduct].productType,quantity:cartObj.productTab[aIndProduct].number})}cartObj.productTab.splice(aIndProduct,1)}this._setCartObject(cartObj);this._updateProductQuantity()};ShopClass.prototype._getAddressObject=function(){var addressStr=localStorage.getItem("teqoWeb_address");if(!addressStr){return{isShippingSpecific:false,isNewCustomer:true,billing:{firstname:"",lastname:"",company:"",street1:"",street2:"",code:"",town:"",country:window._internalCountry,email:"",phone:"",note:""},shipping:{firstname:"",lastname:"",company:"",street1:"",street2:"",code:"",town:"",country:window._internalCountry,email:"",phone:"",note:""}}}return JSON.parse(addressStr)};ShopClass.prototype._setAddressObject=function(aAddressObj){localStorage.setItem("teqoWeb_address",JSON.stringify(aAddressObj))};ShopClass.prototype._getEmail=function(){var addressObj=this._getAddressObject();if(!addressObj.isShippingSpecific&&addressObj.billing.email){return addressObj.billing.email}return addressObj.shipping.email};ShopClass.prototype._setEmail=function(aEmail){var addressObj=this._getAddressObject();if(aEmail){addressObj.shipping.email=aEmail;addressObj.billing.email=aEmail;this._setAddressObject(addressObj)}};ShopClass.prototype._setOrderEmail=function(aEmail){localStorage.setItem("teqoWeb_orderEmail",aEmail)};ShopClass.prototype._setIdOrders=function(aIdOrders,aOrderAmount,aPaymentMethod,aCoupon,aHasPreOrder){localStorage.setItem("teqoWeb_idOrders",aIdOrders);localStorage.setItem("teqoWeb_orderAmount",aOrderAmount);localStorage.setItem("teqoWeb_paymentMethod",aPaymentMethod);localStorage.setItem("teqoWeb_paymentCoupon",aCoupon);localStorage.setItem("teqoWeb_paymentPreOrder",aHasPreOrder);localStorage.setItem("teqoWeb_orderDate",(new Date).getTime())};ShopClass.prototype._getIdOrders=function(){var ref=localStorage.getItem("teqoWeb_orderDate");if(ref){if((new Date).getTime()-ref>72e5){localStorage.setItem("teqoWeb_orderDate","")}else{return localStorage.getItem("teqoWeb_idOrders")}}return null};ShopClass.prototype._getOrderAmount=function(){return localStorage.getItem("teqoWeb_orderAmount")};ShopClass.prototype._getPaymentMethod=function(){return localStorage.getItem("teqoWeb_paymentMethod")};ShopClass.prototype._getPaymentCoupon=function(){return localStorage.getItem("teqoWeb_paymentCoupon")};ShopClass.prototype._hasUserStatistics=function(){return $("#howKnown_shipping").length>0&&$("#howKnown_shipping").val()!=="unset"&&$("#shopreason_shipping").length>0&&$("#shopreason_shipping").val()!=="unset"&&$("#userage_shipping").length>0&&$("#userage_shipping").val()!=="unset"};ShopClass.prototype._setUserStatistics=function(aOrderObj){aOrderObj.howKnown=$("#howKnown_shipping").length>0&&$("#howKnown_shipping").val()!=="unset"?$("#howKnown_shipping").val():"";aOrderObj.shopreason=$("#shopreason_shipping").length>0&&$("#shopreason_shipping").val()!=="unset"?$("#shopreason_shipping").val():"";aOrderObj.userage=$("#userage_shipping").length>0&&$("#userage_shipping").val()!=="unset"?$("#userage_shipping").val():"";return aOrderObj};ShopClass.prototype._priceCartLines=function(aCartObj,aCoupon,aGodFather,aSuperGodfather,aProductRate){var lineTab=[],total=0,indProduct,p,priceObj,nbProductTtc;var hasPurifier=this._hasLoanPurifier(aCartObj.productTab);for(indProduct=0;indProduct<aCartObj.productTab.length;indProduct+=1){p=aCartObj.productTab[indProduct];priceObj=this._getUnitPrice(p.productType,aCoupon,aGodFather,aSuperGodfather,p.contentTab);this._getOrgPrice(priceObj,p.productType,false,hasPurifier);nbProductTtc=priceObj.valueOrg*p.number;if(this._getProductKind(p.productType)==="product"){nbProductTtc=nbProductTtc*aProductRate}lineTab.push({priceObj:priceObj,nbProductTtc:nbProductTtc});total+=nbProductTtc}return{lineTab:lineTab,total:total}};ShopClass.prototype._computeCartPrices=function(aIncludeShipping){var cartObj,expandedTab,nbS1,isCandidate,hasSensor,hasTMA,nbE500Std,nbNoctuaStd,nbConnected,nbForDiscount,nbE500,hasPurifierPack,productRate,withoutCouponObj,withCouponObj,isCouponApplied,pricedObj,isSuperGodfather,hasRateLine,hasNoDiscountLine,kind,couponObj,discountMsgTab,nbProduct,nbProductButNomad,taxRate,hasTax,taxValue,indProduct,priceObj,referenceTtc,productTtc,shippingTtc,nbProductTtc,ttlReferenceTtc,ttlProductTtc,ttlShippingTtc,ttlReferenceHt,ttlProductHt,ttlProductTva,products,p;cartObj=this._getCartObject();expandedTab=this._expandProductTab(cartObj.productTab);nbS1=0;nbForDiscount=0;nbE500Std=0;nbNoctuaStd=0;nbConnected=0;nbE500=0;hasPurifierPack=false;hasTMA=false;hasSensor=false;nbProduct=0;nbProductButNomad=0;isCandidate=false;ttlReferenceTtc=0;ttlProductTtc=0;ttlShippingTtc=0;hasRateLine=false;hasNoDiscountLine=false;for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){p=cartObj.productTab[indProduct];kind=this._getProductKind(p.productType);if(kind==="product"){nbProduct+=p.number}if(kind==="product_pack"){hasPurifierPack=true}if(this._isRateAllowed(p.productType)){hasRateLine=true}else{hasNoDiscountLine=true}}for(indProduct=0;indProduct<expandedTab.length;indProduct+=1){p=expandedTab[indProduct];
1if(p.productType==="airobs_01_test"){hasTMA=true;hasSensor=true;continue}if(p.productType==="airobs_01_month"){continue}if(p.productType!=="teqair100_01_wooden_foot"&&p.productType!=="other_01_cleaning_kit"&&p.productType!=="teqsensor_01_s1"&&p.productType!=="teqair100_01_darkgrey_car"&&p.productType!=="teqair100_01_darkgrey_indoor"){nbProductButNomad+=p.number}if(p.productType.indexOf("e500_0")===0&&p.productType!=="e500_03_cap"){nbE500+=p.number}if(p.productType==="e500_01_standard"){nbE500Std+=p.number}if(p.productType==="e500_03_standard"){nbNoctuaStd+=p.number}if(p.productType==="e500_02_connected"||p.productType==="e500_04_connected"){nbConnected+=p.number}if(p.productType==="teqsensor_01_s1"){nbS1+=p.number;hasSensor=true}if(p.productType==="sensor_01_laser_egg_2"||p.productType==="sensor_02_laser_egg_co2"){hasSensor=true}}nbForDiscount=nbProduct;taxRate=this._getTaxRate(cartObj.country);hasTax=this._hasTax(cartObj.country);taxValue=(100+taxRate)/100;productRate=hasPurifierPack?.85:nbProduct>1?.9:1;isSuperGodfather=cartObj.loyalty||this._isSuperGodfather(cartObj.godFather);withoutCouponObj=this._priceCartLines(cartObj,"",cartObj.godFather,isSuperGodfather,productRate);withCouponObj=cartObj.coupon?this._priceCartLines(cartObj,cartObj.coupon,"",false,1):null;isCouponApplied=!!withCouponObj&&withCouponObj.total<withoutCouponObj.total;pricedObj=isCouponApplied?withCouponObj:withoutCouponObj;isCandidate=!isCouponApplied&&!hasPurifierPack&&nbProduct>1;discountMsgTab=[];
1if(isCouponApplied){couponObj=this._pricingObj.coupons[this._identifyCartCoupon(cartObj.coupon)]||{};discountMsgTab.push({key:"coupon",code:cartObj.coupon,percent:couponObj.percent||0})}else{if(hasRateLine&&isSuperGodfather){discountMsgTab.push({key:"loyalty"})}else if(hasRateLine&&cartObj.godFather){discountMsgTab.push({key:"godfather"})}if(hasPurifierPack&&nbProduct>0){discountMsgTab.push({key:"packExtra"})}else if(nbProduct>1){discountMsgTab.push({key:"multi"})}if(withCouponObj){discountMsgTab.push({key:withCouponObj.total<this._priceCartLines(cartObj,"","",false,1).total?"couponNotCumulative":"couponNotEligible",code:cartObj.coupon})}}if(hasNoDiscountLine&&(discountMsgTab.length>0||cartObj.coupon||cartObj.godFather)){discountMsgTab.push({key:"noDiscountItems"})}products=[];for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){p=cartObj.productTab[indProduct];priceObj=pricedObj.lineTab[indProduct].priceObj;referenceTtc=priceObj.referenceOrg;nbProductTtc=pricedObj.lineTab[indProduct].nbProductTtc;productTtc=nbProductTtc/p.number;ttlReferenceTtc+=referenceTtc*p.number;ttlProductTtc+=nbProductTtc;shippingTtc=aIncludeShipping?this._getShippingTtc(p.productType,cartObj.country):0;ttlShippingTtc+=shippingTtc*p.number;products.push({index:indProduct,productType:p.productType,contentTab:p.contentTab,name:this._getProductName(p.productType),image:this._getProductImage(p.productType,p.contentTab),packImageTab:this._getPackImageTab(p.productType,p.contentTab),number:p.number,referenceTtc:referenceTtc,productTtc:productTtc,nbProductTtc:nbProductTtc,shippingTtc:shippingTtc})}ttlReferenceHt=ttlReferenceTtc;ttlProductHt=ttlProductTtc;ttlProductTva=this._normalizeNumber(ttlProductTtc-ttlProductTtc/taxValue);var totalTtc=this._normalizeNumber(ttlProductTtc+ttlShippingTtc);cartObj.ttlTaxRate=taxRate;cartObj.ttlReferenceTtc=ttlReferenceTtc;cartObj.ttlProductTtc=ttlProductTtc;cartObj.ttlShippingTtc=ttlShippingTtc;cartObj.ttlProductTva=ttlProductTva;cartObj.ttlReferenceHt=ttlReferenceHt/taxValue;cartObj.ttlProductHt=ttlProductHt/taxValue;cartObj.totalTtc=totalTtc;this._setCartObject(cartObj);return{products:products,ttlReferenceTtc:ttlReferenceTtc,ttlProductTtc:ttlProductTtc,ttlShippingTtc:ttlShippingTtc,ttlProductTva:ttlProductTva,ttlReferenceHt:ttlReferenceHt/taxValue,ttlProductHt:ttlProductHt/taxValue,ttlTaxRate:taxRate,hasTax:hasTax,totalTtc:totalTtc,hasSensor:hasSensor,hasTMA:hasTMA,isCandidate:isCandidate,isCouponApplied:isCouponApplied,discountMsgTab:discountMsgTab,showS1Upsell:nbE500>0&&!hasSensor,showPackBoost:hasPurifierPack&&nbProduct===0,showPackIncentive:nbForDiscount===1&&!hasPurifierPack,showSensorLoan:!hasSensor&&nbProductButNomad>=1,showConnectedWarning:(nbE500Std>0||nbNoctuaStd>0)&&(nbS1>0||hasTMA)&&nbConnected===0,connectedWarningStd:nbE500Std>0?"e500_01_standard":"e500_03_standard",connectedWarningConnected:nbE500Std>0?"e500_02_connected":"e500_04_connected",nbProductButNomad:nbProductButNomad,cartObj:cartObj}};ShopClass.prototype._updateProductQuantity=function(){var cartObj=this._getCartObject(),quantity=0,indProduct;for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){quantity+=cartObj.productTab[indProduct].number}$(".productQuantity").html(quantity>0?quantity:"0");$(".productQuantity").css("display",quantity>0?"inline":"inline");if($("#shopSlideCart").length>0){$("#shopSlideCart .productQuantity").html(quantity)}this._refreshDeliveryConstraint()};ShopClass.prototype._refreshDeliveryConstraint=function(){if(this._colissimoOnly!==null&&this._colissimoOnly!==this._cartRequiresColissimo()){this._updateDeliveryOptions()}};ShopClass.prototype._injectStyles=function(){if(document.getElementById("shopSlideStyles")){return}var style=document.createElement("style");style.id="shopSlideStyles";style.innerHTML=[".shop-slide-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.45);z-index:1040;}",".shop-slide-overlay.open{display:block;}",".shop-slide-cart{position:fixed;top:0;right:0;bottom:0;width:420px;max-width:100vw;background:#fff;z-index:1050;"," transform:translateX(100%);transition:transform .32s cubic-bezier(.4,0,.2,1);"," display:flex;flex-direction:column;box-shadow:-4px 0 24px rgba(0,0,0,.12);}",".shop-slide-cart.open{transform:translateX(0);}",".shop-slide-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid #e9ecef;flex-shrink:0;}",".shop-slide-header h5{margin:0;font-size:1.1rem;font-weight:600;}",".shop-slide-close{background:none;border:none;font-size:1.5rem;line-height:1;cursor:pointer;padding:.25rem .5rem;color:#6c757d;}
1",".shop-slide-close:hover{color:#000;}",".shop-slide-body{flex:1 1 auto;overflow-y:auto;padding:1rem 1.25rem;}",".shop-slide-footer{border-top:1px solid #e9ecef;padding:1rem 1.25rem;flex-shrink:0;}",".shop-slide-product{display:flex;align-items:flex-start;padding:.75rem 0;border-bottom:1px solid #f0f0f0;}",".shop-slide-product:last-child{border-bottom:none;}",".shop-slide-product-img{width:72px;height:72px;object-fit:contain;border-radius:4px;border:1px solid #e9ecef;flex-shrink:0;background:#fafafa;}",".shop-slide-pack-img{display:flex;align-items:center;box-sizing:border-box;padding:2px;overflow:hidden;}",".shop-slide-pack-img img{flex:1 1 0;min-width:0;height:100%;object-fit:contain;}",".shop-slide-product-info{flex:1;margin:0 .75rem;}",".shop-slide-product-name{font-size:.875rem;font-weight:500;margin-bottom:.25rem;line-height:1.3;}",".shop-slide-product-pack{font-size:.78rem;color:#6c757d;margin-bottom:.25rem;line-height:1.3;}",".shop-slide-product-price{font-size:.875rem;color:#495057;}",".shop-slide-qty{display:flex;align-items:center;margin-top:.35rem;}",".shop-slide-qty button{border:1px solid #ced4da;background:#fff;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.875rem;border-radius:2px;line-height:1;}",".shop-slide-qty button:hover{background:#f8f9fa;}",".shop-slide-qty span{min-width:28px;text-align:center;font-size:.875rem;}",".shop-slide-remove{color:#dc3545;cursor:pointer;font-size:1.1rem;flex-shrink:0;border:none;background:none;padding:.25rem;}",".shop-slide-remove:hover{color:#a71d2a;}",".shop-slide-msg{font-size:.9rem;color:#6c757d;background:#f8f9fa;border-radius:4px;padding:.5rem .75rem;margin:.5rem 0;}",".shop-slide-upsell{display:flex;align-items:center;background:#f8f9fa;border-radius:4px;padding:.6rem .75rem;margin:.5rem 0;}",".shop-slide-upsell-img{width:56px;height:56px;object-fit:contain;flex-shrink:0;margin-right:.75rem;}",".shop-slide-upsell-body{flex:1;min-width:0;}",".shop-slide-upsell-text{font-size:.9rem;color:#6c757d;line-height:1.3;margin-bottom:.4rem;}",".shop-slide-upsell-btn{border:1px solid #000;background:#000;color:#fff;font-size:.8rem;line-height:1.2;padding:.35rem .8rem;border-radius:2px;cursor:pointer;}",".shop-slide-upsell-btn:hover{background:#fff;color:#000;}",".shop-slide-totals{font-size:.9rem;}",".shop-slide-totals .col-12{display:flex;justify-content:space-between;padding:.2rem 0;}",".shop-slide-totals .total-row .col-12{font-weight:700;font-size:1rem;border-top:1px solid #dee2e6;padding-top:.5rem;margin-top:.25rem;}",".shop-slide-country{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;}",".shop-slide-country label{font-size:.9rem;color:#6c757d;margin:0;white-space:nowrap;}",".shop-slide-country select{flex:1;font-size:.9rem;padding:.2rem .5rem;border:1px solid #ced4da;border-radius:.25rem;min-width:0;}",".shop-slide-empty{text-align:center;padding:2.5rem 1rem;color:#6c757d;}",".shop-slide-loan{font-size:.9rem;background:#f0f7ff;border:1px solid #cce5ff;border-radius:4px;padding:.6rem .75rem;margin:.5rem 0;display:flex;align-items:center;gap:.75rem;cursor:pointer;}",".shop-slide-loan input[type=checkbox]{margin:0;flex-shrink:0;cursor:pointer;}",".shop-slide-warning{font-size:.9rem;background:#fff3cd;border:1px solid #ffc107;border-radius:4px;padding:.6rem .75rem;margin:.5rem 0;color:#856404;}",".shop-slide-secure{text-align:center;margin-top:.75rem;}",".shop-slide-secure img{max-height:28px;opacity:.7;}",".shop-slide-link{color:inherit;text-decoration:underline;cursor:pointer;}",".shop-slide-link:hover{opacity:.7;}","@media(max-width:440px){.shop-slide-cart{width:100vw;}}"].join("");document.head.appendChild(style)};ShopClass.prototype._buildCountryOptions=function(aSelectedCountry,aIsDelivery){var html="",ind,entryTab,excludedTab,isSelectedListed;entryTab=window._internalCountryTab;if(aIsDelivery&&window._internalDeliveryCountryTab&&window._internalDeliveryCountryTab.length){entryTab=window._internalDeliveryCountryTab}if(entryTab&&entryTab.length){isSelectedListed=false;for(ind=0;ind<entryTab.length;ind+=1){if(entryTab[ind].iso===aSelectedCountry){isSelectedListed=true}}if(!isSelectedListed&&aSelectedCountry){html+='<option value="'+aSelectedCountry+'" selected disabled>'+this._getCountryName(aSelectedCountry)+"</option>"}for(ind=0;ind<entryTab.length;ind+=1){var entry=entryTab[ind];html+='<option value="'+entry.iso+'"'+(entry.iso===aSelectedCountry?" selected":"")+">"+entry.name+"</option>"}return html}
1var countryTab=this._pricingObj.shipping.countryTab,codeList=[],code;excludedTab=aIsDelivery&&window._internalNonDeliveryCountryTab?window._internalNonDeliveryCountryTab:[];for(code in countryTab){if(countryTab.hasOwnProperty(code)&&excludedTab.indexOf(code)<0){codeList.push(code)}}codeList.sort(function(a,b){if(a==="fr"){return-1}if(b==="fr"){return 1}return a.localeCompare(b)});for(ind=0;ind<codeList.length;ind+=1){var fc=codeList[ind];html+='<option value="'+fc+'"'+(fc===aSelectedCountry?" selected":"")+">"+fc.toUpperCase()+"</option>"}return html};ShopClass.prototype._getCountryName=function(aCode){if(window._internalCountryTab){for(var i=0;i<window._internalCountryTab.length;i++){if(window._internalCountryTab[i].iso===aCode){return window._internalCountryTab[i].name}}}return aCode?aCode.toUpperCase():""};ShopClass.prototype._injectSlideCart=function(){if(document.getElementById("shopSlideCart")){return}var t=this._t,cartObj=this._getCartObject(),base=window._internalBaseUrl;var html='<div id="shopSlideOverlay" class="shop-slide-overlay"></div>'+'<div id="shopSlideCart" class="shop-slide-cart" role="dialog" aria-modal="true">'+'<div class="shop-slide-header">'+"<h5>"+t.title+' <span class="productQuantity badge badge-secondary">0</span></h5>'+'<button class="shop-slide-close" id="shopSlideClose" aria-label="Fermer">×</button>'+"</div>"+'<div class="shop-slide-body"><div id="shopSlideProducts"></div></div>'+'<div class="shop-slide-footer">'+'<div class="shop-slide-country">'+'<label for="shopSlideCountry">'+t.country+"</label>"+'<select id="shopSlideCountry">'+this._buildCountryOptions(cartObj.country,true)+"</select>"+"</div>"+'<div class="shop-slide-totals">'+'<div class="row no-gutters"><div class="col-12"><span id="shopSlideSubtotalLabel">'+t.subtotal+'</span><span id="shopSlideSubtotal">â</span></div></div>'+'<div class="row no-gutters shopSlideDiscountRow" style="display:none;color:#f36e65;"><div class="col-12"><span>'+t.discount+'</span><span id="shopSlideDiscount">â</span></div></div>'+'<div class="row no-gutters shopSlideShippingRow"><div class="col-12"><span>'+t.shipping+'</span><span id="shopSlideShipping">â</span></div></div>'+'<div class="row no-gutters total-row"><div class="col-12"><span>'+t.total+'</span><span id="shopSlideTotal">â</span></div></div>'+"</div>"+'<a id="shopSlideCheckout" href="'+this._baseUrl+'/shop/" class="btn btn-primary btn-block mt-3">'+t.pay+"</a>"+'<button id="shopSlideContinue" type="button" class="btn btn-outline-secondary btn-block btn-sm mt-2">'+t.continueShopping+"</button>"+'<div class="shop-slide-secure"><img src="'+base+'/config/images/cart_secured_payment.png" alt="'+t.securedPayment+'"></div>'+"</div></div>";document.body.insertAdjacentHTML("beforeend",html)};ShopClass.prototype._injectWaitingScreen=function(){if(document.getElementById("WaitingScreen")){return}document.body.insertAdjacentHTML("beforeend",'<div tabindex="0" id="WaitingScreen" class="waitingScreen"><div class="waitingScreenSpinner"></div></div>')};ShopClass.prototype._setupCartIconListeners=function(){var that=this;$(document).on("click",".shopCartIcon",function(e){e.preventDefault();that._openSlideCart()});$(document).on("click","#shopSlideClose, #shopSlideContinue",function(){that._closeSlideCart()});$(document).on("click","#shopSlideOverlay",function(){that._closeSlideCart()});$(document).on("keydown",function(e){if(e.key==="Escape"&&$("#shopSlideCart").hasClass("open")){that._closeSlideCart()}});$(document).on("change","#shopSlideCountry",function(){that._onSlideCountryChange()});$(document).on("click","#shopSlideCart .shop-slide-link",function(){that._closeSlideCart()});$(document).on("change","#shopSlideSensorLoan",function(){if($(this).is(":checked")){that._addCartItem("airobs_01_test",1)}else{that._removeCartItem("airobs_01_test",1)}that._updateProductQuantity();that._renderSlideCart();if(window._internalPageId==="shop"){that._renderCheckoutSummary()}});$(document).on("click",".shopSlideAddS1",function(){that._addCartItem("teqsensor_01_s1",1);that._updateProductQuantity();that._renderSlideCart();if(window._internalPageId==="shop"){that._renderCheckoutSummary()}});$(document).on("click",".shopSlideQtyPlus",function(){var indProduct=parseInt($(this).data("index"),10),qty=parseInt($(this).data("qty"),10);that._updateCartItem(indProduct,qty+1);that._renderSlideCart();if(window._internalPageId==="shop"){that._renderCheckoutSummary()}});$(document).on("click",".shopSlideQtyMinus",function(){var indProduct=parseInt($(this).data("index"),10),qty=parseInt($(this).data("qty"),10);that._updateCartItem(indProduct,qty-1);that._renderSlideCart();if(window._internalPageId==="shop"){that._renderCheckoutSummary()}});$(document).on("click",".shopSlideRemove",function(){var indProduct=parseInt($(this).data("index"),10);that._updateCartItem(indProduct,0);that._renderSlideCart();if(window._internalPageId==="shop"){that._renderCheckoutSummary()}})};ShopClass.prototype._openSlideCart=function(){if(window._internalCountryTab&&window._internalCountryTab.length){var cartObj=this._getCartObject();$("#shopSlideCountry").html(this._buildCountryOptions(cartObj.country,true))}this._renderSlideCart();$("#shopSlideOverlay").addClass("open");$("#shopSlideCart").addClass("open");document.body.style.overflow="hidden";
1if(this._layerListener){this._layerListener("checkout_step",{cartStep:1})}};ShopClass.prototype._closeSlideCart=function(){$("#shopSlideOverlay").removeClass("open");$("#shopSlideCart").removeClass("open");document.body.style.overflow=""};ShopClass.prototype._readPackSelection=function(aPackType){var contentTab=this._getPackContent(aPackType),selectionTab=[],indContent;if(!contentTab){return null}for(indContent=0;indContent<contentTab.length;indContent+=1){selectionTab.push($("#packContent_"+aPackType+"_"+indContent).val()||"")}return selectionTab};ShopClass.prototype._getVariantValueTab=function(aCategory){var variantObj=productVariantTab[aCategory],valueTab=[],key,partTab,indDimension;for(indDimension=0;indDimension<variantObj.dimensionTab.length;indDimension+=1){valueTab.push([])}for(key in variantObj.typeTab){if(variantObj.typeTab.hasOwnProperty(key)){partTab=key.split("|");for(indDimension=0;indDimension<partTab.length;indDimension+=1){if(valueTab[indDimension].indexOf(partTab[indDimension])<0){valueTab[indDimension].push(partTab[indDimension])}}}}return valueTab};ShopClass.prototype._renderVariantDelta=function(aScope,aCategory){var variantObj=productVariantTab[aCategory],valueTab,baseTab,baseValue,indDimension,indValue,keyTab,productType,delta,dimension,value,text;if(!variantObj){return}valueTab=this._getVariantValueTab(aCategory);baseTab=variantObj.baseTab;productType=variantObj.typeTab[baseTab.join("|")];if(!productType){return}baseValue=this._getUnitPrice(productType,"","").value;for(indDimension=0;indDimension<variantObj.dimensionTab.length;indDimension+=1){dimension=variantObj.dimensionTab[indDimension];for(indValue=0;indValue<valueTab[indDimension].length;indValue+=1){value=valueTab[indDimension][indValue];keyTab=baseTab.slice(0);keyTab[indDimension]=value;productType=variantObj.typeTab[keyTab.join("|")];delta=productType?this._getUnitPrice(productType,"","").value-baseValue:0;text=delta?" ("+(delta>0?"+":"â")+this._displayAmount(Math.abs(delta))+")":"";$("."+aScope+"_"+dimension+"Delta_"+value).html(text)}}};ShopClass.prototype._getProductCatalog=function(aProductType,aCssName){var priceObj,reference,value,cssName=aCssName||aProductType,$price;if(aCssName){$price=$("."+aCssName+"_catalogPrice");$price.each(function(){this.className=$.trim(this.className.replace(/\S+_catalogProduct(?=\s|$)/g,""))+" "+aProductType+"_catalogProduct"})}else{$price=$("."+aProductType+"_catalogProduct")}if($price.length<=0&&$("."+cssName+"_catalogSaving").length<=0){return}priceObj=this._getUnitPrice(aProductType,"","",false,this._readPackSelection(aProductType));if(this._pricingObj.useSpecialPrice){value=priceObj.value/1.2;reference=priceObj.reference/1.2;if(priceObj.value!==priceObj.reference){$price.html("<small><s>"+this._convertAmount(reference)+"</s></small> "+this._convertAmount(value)+this._htSuffix)}else{$price.html(this._convertAmount(value)+this._htSuffix)}}else{if(priceObj.value!==priceObj.reference){$price.html("<small><s>"+this._displayAmount(priceObj.reference)+"</s></small> "+this._displayAmount(priceObj.value))}else{$price.html(this._displayAmount(priceObj.value))}}if($("."+cssName+"_catalogSaving").length>0){if(priceObj.reference>priceObj.value){$("."+cssName+"_catalogSavingRow").show();$("."+cssName+"_catalogSaving").html(this._displayAmount(priceObj.reference-priceObj.value))}else{$("."+cssName+"_catalogSavingRow").hide()}}};ShopClass.prototype._renderSensorSaving=function(){var packObj=this._pricingObj.pack,packType,contentTab,indContent,discount,best=0;if($(".teqsensor_01_s1_catalogSaving").length<=0){return}for(packType in packObj){if(!packObj.hasOwnProperty(packType)){continue}contentTab=this._getPackContent(packType);if(!contentTab){continue}for(indContent=0;indContent<contentTab.length;indContent+=1){if(contentTab[indContent].productType!=="teqsensor_01_s1"){continue}discount=this._hasExplicitPackPrice(packType)?this._pricingObj.product.reference[packType]-this._pricingObj.product.standard[packType]:this._getPackDiscount(packType);if(discount>best){best=discount}}}if(best>0){$(".teqsensor_01_s1_catalogSavingRow").show();$(".teqsensor_01_s1_catalogSaving").html(this._displayAmount(best))}else{$(".teqsensor_01_s1_catalogSavingRow").hide()}};ShopClass.prototype._getProductChristmas=function(aProductType1,aProductType2){var priceObj1,priceObj2,priceObj3,reference,value;if($("."+aProductType2+"_catalogChristmas").length>0){priceObj1=this._getUnitPrice(aProductType1,"","");priceObj2=this._getUnitPrice(aProductType2,"","");priceObj3=this._getUnitPrice("teqair100_01_darkgrey_car","","");reference=priceObj1.reference+priceObj2.reference+priceObj3.reference;value=priceObj1.reference+priceObj2.reference;$("."+aProductType2+"_catalogChristmas").html("<small><s>"+this._convertAmount(reference)+"</s></small> "+this._convertAmount(value))}};ShopClass.prototype._updateCatalogPrices=function(){if($(".catalogProduct").length===0){return}var products=["e500_01_standard","e500_02_connected","e500_03_standard","e500_04_connected","e500_03_cap","other_01_cleaning_kit","teqair100_01_darkgrey_car","teqair100_01_darkgrey_indoor","teqair100_01_wooden_foot","teqair200_01_black","teqair200_01_blue","teqair200_01_darkgrey","teqair200_01_lightgrey","teqair200_01_pinkclay","teqair450_01_black","teqair450_01_darkgrey_hang","teqair450_01_lightgrey","teqair450_01_lightgrey_hang","teqsensor_01_s1","airobs_01_test","pack_duo_actif","pack_duo_chambres","pack_duo_maison","pack_duo_plein_air","pack_duo_boost","pack_e500_02_connected_teqsensor_01_s1","pack_e500_04_connected_teqsensor_01_s1"];var ind;for(ind=0;ind<products.length;ind+=1){this._getProductCatalog(products[ind])}this._getProductCatalog($("#orderProductType_e500_01").val()||"e500_01_standard","e500_01");this._getProductCatalog($("#orderProductType_pack_e500_connected_teqsensor_01_s1").val()||"pack_e500_02_connected_teqsensor_01_s1","pack_e500_connected_teqsensor_01_s1");for(ind=0;ind<variantScopeTab.length;ind+=1){this._renderVariantDelta(variantScopeTab[ind].scope,variantScopeTab[ind].category)}this._renderSensorSaving();this._getProductChristmas("teqair200_01_black","teqair200_01_black");this._getProductChristmas("teqair200_01_black","teqair450_01_black")};ShopClass.prototype._onSlideCountryChange=function(){var value=$("#shopSlideCountry").val();var cartObj=this._getCartObject();var areaOrg=this._getPricingArea(cartObj.country);var areaNew=this._getPricingArea(value);cartObj.country=value;this._setCartObject(cartObj);window._internalCountry=value;this._setPricing();if(areaOrg!==areaNew){this._setPricingAsStandard()}this._updateCatalogPrices();this._renderSlideCart();if(window._internalPageId==="shop"){var countryName=this._getCountryName(value);$("#shop_country_shipping").val(countryName).data("iso",value);if($("#shopShippingSpecific").is(":checked")){$("#shop_country_billing").val(value)}this._updateDeliveryOptions();this._renderCheckoutSummary();this._updatePhonePrefix()}};ShopClass.prototype._getDiscountMessageTab=function(aData){var t=this._t,messageTab=[],indMsg,msg,code;for(indMsg=0;indMsg<aData.discountMsgTab.length;indMsg+=1){msg=aData.discountMsgTab[indMsg];code=String(msg.code||"").toUpperCase().replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""");messageTab.push({text:t["discountMsg_"+msg.key].replace("{code}",code).replace("{percent}",msg.percent),isInfo:msg.key==="couponNotCumulative"||msg.key==="couponNotEligible"||msg.key==="noDiscountItems"})}return messageTab};ShopClass.prototype._linkify=function(str,text,url){if(!text||str.indexOf(text)===-1){return str}return str.replace(text,'<a href="'+url+'" class="shop-slide-link">'+text+"</a>")};ShopClass.prototype._renderPackContent=function(aProductType,aChosenTab){var contentTab=this._resolvePackContent(aProductType,aChosenTab),nameTab=[],indContent;if(!contentTab){return""}for(indContent=0;indContent<contentTab.length;indContent+=1){nameTab.push((contentTab[indContent].number>1?contentTab[indContent].number+"Ã ":"")+this._getProductName(contentTab[indContent].productType))}return'<div class="shop-slide-product-pack">'+nameTab.join(" + ")+"</div>"};ShopClass.prototype._renderSlideCart=function(){var that=this,t=this._t,data,html,ind,p,imgHtml;data=this._computeCartPrices(true);if(data.products.length===0){var catalogUrl=this._baseUrl+"/"+this._catalogPath;$("#shopSlideProducts").html('<div class="shop-slide-empty"><p class="pb-0">'+t.empty+'</p><p><a href="'+catalogUrl+'" class="shop-slide-link">'+t.catalogLink+"</a></p></div>");$(".shopSlideDiscountRow").hide();$(".shopSlideShippingRow").hide();$("#shopSlideSubtotal").html("â");$("#shopSlideTotal").html("â");$("#shopSlideCheckout").addClass("disabled").attr("aria-disabled","true");return}$("#shopSlideCheckout").removeClass("disabled").removeAttr("aria-disabled");html="";for(ind=0;ind<data.products.length;ind+=1){p=data.products[ind];imgHtml=p.image?'<img class="shop-slide-product-img" src="'+p.image+'" alt="'+p.name+'">':'<div class="shop-slide-product-img"></div>';if(p.packImageTab&&p.packImageTab.length>1){imgHtml='<div class="shop-slide-product-img shop-slide-pack-img" title="'+p.name+'">'+p.packImageTab.map(function(aImage){return'<img src="'+aImage+'" alt="">'}).join("")+"</div>"}var isLoan=p.productType==="airobs_01_test";var qtyHtml=isLoan?'<div class="shop-slide-qty"><span style="padding:0 .5rem;color:#6c757d;">Ã1</span></div>':'<div class="shop-slide-qty">'+'<button class="shopSlideQtyMinus" data-index="'+p.index+'" data-qty="'+p.number+'">â</button>'+"<span>"+p.number+"</span>"+'<button class="shopSlideQtyPlus" data-index="'+p.index+'" data-qty="'+p.number+'">+</button>'+"</div>";html+='<div class="shop-slide-product">'+imgHtml+'<div class="shop-slide-product-info">'+'<div class="shop-slide-product-name">'+p.name+"</div>"+that._renderPackContent(p.productType,p.contentTab)+'<div class="shop-slide-product-price">'+that._convertAmount(p.productTtc)+that._ttcSuffix+(p.referenceTtc>p.productTtc?' <span style="color:#f36e65;font-size:.85em;white-space:nowrap;">(-'+that._convertAmount(p.referenceTtc-p.productTtc)+that._ttcSuffix+")</span>":"")+"</div>"+qtyHtml+"</div>"+'<button class="shop-slide-remove shopSlideRemove" data-index="'+p.index+'" title="'+t.remove+'">
1Ã</button>'+"</div>"}var msgs="";var catalogUrl=this._baseUrl+"/"+this._catalogPath;var sensor1Url=this._baseUrl+"/"+this._sensor1Path;var discountMessageTab=this._getDiscountMessageTab(data);for(ind=0;ind<discountMessageTab.length;ind+=1){msgs+='<div class="shop-slide-msg">'+(discountMessageTab[ind].isInfo?"â¹ï¸ ":"ð ")+discountMessageTab[ind].text+"</div>"}if(data.showS1Upsell){var upsellName=that._getProductName("teqsensor_01_s1");var upsellImage=that._getProductImage("teqsensor_01_s1");msgs+='<div class="shop-slide-upsell">'+(upsellImage?'<img class="shop-slide-upsell-img" src="'+upsellImage+'" alt="'+upsellName+'">':"")+'<div class="shop-slide-upsell-body">'+'<div class="shop-slide-upsell-text">'+t.s1UpsellMsg+"</div>"+'<button type="button" class="shop-slide-upsell-btn shopSlideAddS1">'+t.s1UpsellButton+"</button>"+"</div></div>"}else if(data.showPackBoost){msgs+='<div class="shop-slide-msg">ð '+this._linkify(t.packBoostMsg,t.packBoostLinkText,catalogUrl)+"</div>"}else if(data.showPackIncentive){msgs+='<div class="shop-slide-msg">ð '+this._linkify(this._linkify(t.packIncentiveMsg,t.packIncentiveLinkText,catalogUrl),t.packIncentiveLinkText2,catalogUrl)+"</div>"}if(data.hasTMA){msgs+='<div class="shop-slide-loan">â¹ï¸ '+this._linkify(t.sensorLoanOption,t.sensorLoanLinkText,sensor1Url)+"</div>"}else if(data.showSensorLoan){msgs+='<label class="shop-slide-loan"><input type="checkbox" id="shopSlideSensorLoan"><span>'+this._linkify(t.sensorLoanOption,t.sensorLoanLinkText,sensor1Url)+"</span></label>"}if(data.showConnectedWarning){var stdName=that._getProductName(data.connectedWarningStd);var connectedName=that._getProductName(data.connectedWarningConnected);var s1Name=that._getProductName("teqsensor_01_s1");var warnMsg=t.connectedWarning.replace("{std}",stdName).replace("{s1}",s1Name).replace("{connected}",'<a href="'+this._baseUrl+"/"+this._e500Path+'">'+connectedName+"</a>");msgs+='<div class="shop-slide-warning">â ï¸ '+warnMsg+"</div>"}if(msgs){html+=msgs}$("#shopSlideProducts").html(html);if(data.ttlReferenceTtc>0&&data.ttlProductTtc<data.ttlReferenceTtc){$(".shopSlideDiscountRow").show();$("#shopSlideDiscount").html("-"+that._convertAmount(data.ttlReferenceTtc-data.ttlProductTtc)+that._ttcSuffix)}else{$(".shopSlideDiscountRow").hide()}$("#shopSlideSubtotal").html(that._convertAmount(data.ttlReferenceTtc)+that._ttcSuffix);$(".shopSlideShippingRow").show();if(data.ttlShippingTtc>0){$(".shopSlideShippingRow span:last-child").html(that._convertAmount(data.ttlShippingTtc)+that._ttcSuffix)}else{$(".shopSlideShippingRow span:last-child").html('<span style="color:#6c8e2c;">'+t.shippingFree+"</span>")}$("#shopSlideTotal").html("<strong>"+that._convertAmount(data.totalTtc)+that._ttcSuffix+"</strong>")};ShopClass.prototype.addToCart=function(aProductType,aNumber){this._addCartItem(aProductType,aNumber||1);this._openSlideCart()};ShopClass.prototype._addProductToCart=function(aSuffix){var productCategory,productType,quantity,offerType;if(aSuffix){productCategory=$("#orderProductType_"+aSuffix).val();productType=$("#orderProductColor_"+aSuffix).length>0?productCategory+"_"+$("#orderProductColor_"+aSuffix).val():productCategory;quantity=parseInt($("#orderProductQuantity_"+aSuffix).val(),10)||1;offerType=$("#orderOfferCheck_"+aSuffix).is(":checked")||$("#orderOfferCheck_"+aSuffix).val()==="on"?$("#orderOfferProductType_"+aSuffix).val():null}else{productCategory=$("#orderProductType").val();productType=$("#orderProductColor").length>0?productCategory+"_"+$("#orderProductColor").val():productCategory;quantity=parseInt($("#orderProductQuantity").val(),10)||1;offerType=$("#orderOfferCheck").is(":checked")?$("#orderOfferProductType").val():null}if(productType){this._addCartItem(productType,quantity)}if(offerType){this._addCartItem(offerType,1)}this._openSlideCart();return false};ShopClass.prototype._insertProductToCart=function(aProductType){this._addCartItem(aProductType,1);this._openSlideCart();return false};ShopClass.prototype._insertProductCategoryToCart=function(aProductCategory){var productType,orgType,additionalType;productType=$("#orderProductType_"+aProductCategory).val()||aProductCategory;orgType=productType;if(productType==="teqsensor_01_month"){productType="airobs_01_month"}else if(productType==="teqsensor_01_s1_month"){productType="teqsensor_01_s1";additionalType="airobs_01_month"}else if(productType==="airobs_01_test"){}else if(productType==="e500_01_connected"){productType="e500_02_connected"}else if(productType==="teqair200_01_s1_pack_blue"){productType="teqair200_01_blue";additionalType="teqsensor_01_s1"}
1else if(productType==="teqair200_01_s1_pack_darkgrey"){productType="teqair200_01_darkgrey";additionalType="teqsensor_01_s1"}else if(productType==="teqair200_01_s1_pack_lightgrey"){productType="teqair200_01_lightgrey";additionalType="teqsensor_01_s1"}else if(productType==="teqair200_01_s1_pack_pinkclay"){productType="teqair200_01_pinkclay";additionalType="teqsensor_01_s1"}else if(productType==="teqair200_01_teqair450_pack"){productType="teqair200_01_"+($("#packColor_teqair200_01_teqair450_pack_teqair200").val()||"blue");additionalType="teqair450_01_"+($("#packColor_teqair200_01_teqair450_pack_teqair450").val()||"lightgrey")}else if(productType==="lavie_pack_blue"){}else if(productType==="lavie_pack_darkgrey"){}else if(productType==="lavie_pack_lightgrey"){}else if(productType==="lavie_pack_pinkclay"){}else if(aProductCategory==="teqair450_01_hang"){productType=productType.replace("_hang","")+"_hang"}this._addCartItem(productType,1,this._readPackSelection(productType));if(additionalType){this._addCartItem(additionalType,1)}this._openSlideCart();return false};ShopClass.prototype._switchToCart=function(aProductCategory){var productCategory,productType;if(!aProductCategory||typeof aProductCategory!=="string"){productCategory=$("#orderProductCategory").val()}else{productCategory=$("#orderProductCategory_"+aProductCategory).length>0?$("#orderProductCategory_"+aProductCategory).val():aProductCategory}if($("#orderProductType_"+productCategory).val()){productType=$("#orderProductType_"+productCategory).val()}else if(productCategory==="teqair200_01"){productType="teqair200_01_blue";if($("#orderProductColor_lightgrey").prop("checked")){productType="teqair200_01_lightgrey"}if($("#orderProductColor_darkgrey").prop("checked")){productType="teqair200_01_darkgrey"}if($("#orderProductColor_blue").prop("checked")){productType="teqair200_01_blue"}if($("#orderProductColor_pinkclay").prop("checked")){productType="teqair200_01_pinkclay"}if($("#orderProductColor_black").prop("checked")){productType="teqair200_01_black"}}else if(productCategory==="teqair450_01"){productType="teqair450_01_black";if($("#orderProductColor_lightgrey").prop("checked")){productType="teqair450_01_lightgrey"}if($("#orderProductColor_lightgrey_hang").prop("checked")){productType="teqair450_01_lightgrey_hang"}if($("#orderProductColor_darkgrey_hang").prop("checked")){productType="teqair450_01_darkgrey_hang"}}else if(productCategory==="teqair100_01"){productType="teqair100_01_darkgrey_car";if($("#orderProductColor_lightgrey").prop("checked")){productType="teqair100_01_darkgrey_indoor"}}else if(productCategory==="e500_01"){productType="e500_01_standard";if($("#orderProductColor_lightgrey").prop("checked")){productType="e500_02_connected"}if($("#orderProductColor_blue").prop("checked")){productType="e500_03_standard"}if($("#orderProductColor_pinkclay").prop("checked")){productType="e500_04_connected"}}else if(productCategory){productType=productCategory}if(productType){this._addCartItem(productType,1)}this._openSlideCart();return false};ShopClass.prototype._setupAddToCartListeners=function(){var that=this;if($("#orderProductPrice").length>0||$(".productPrice").length>0){$("#cartButton").on("click",function(e){e.preventDefault();that._addProductToCart("")});$("#cartButton_xs").on("click",function(e){e.preventDefault();that._addProductToCart("")})}if($(".catalogProduct").length>0){$("#catalogButton").on("click",function(e){e.preventDefault();that._switchToCart()})}$("#catalogButton_teqair100_01").on("click",function(e){e.preventDefault();that._switchToCart("teqair100_01")});$("#catalogButton_teqair200_01").on("click",function(e){e.preventDefault();that._switchToCart("teqair200_01")});$("#catalogButton_teqair450_01").on("click",function(e){e.preventDefault();that._switchToCart("teqair450_01")});if($("#orderProductCatalog").length>0){var catBind=function(id,cat){$("#"+id).on("click",function(e){e.preventDefault();that._insertProductCategoryToCart(cat)})};var typeBind=function(id,pt){$("#"+id).on("click",function(e){e.preventDefault();that._insertProductToCart(pt)})};catBind("teqair100_01_cartButton","teqair100_01");catBind("teqair100_01_travel_cartButton","teqair100_01_travel");catBind("teqair100_01_kit_cartButton","teqair100_01_kit");catBind("teqair200_01_cartButton","teqair200_01");catBind("teqair450_01_cartButton","teqair450_01");catBind("teqair450_01_hang_cartButton","teqair450_01_hang");catBind("airobs_01_test_cartButton","airobs_01");catBind("e500_01_cartButton","e500_01");catBind("teqair200_01_s1_pack_cartButton","teqair200_01_s1_pack");catBind("teqair200_01_s1_pack_blue_cartButton","teqair200_01_s1_pack_blue");
1catBind("teqair200_01_s1_pack_darkgrey_cartButton","teqair200_01_s1_pack_darkgrey");catBind("teqair200_01_s1_pack_lightgrey_cartButton","teqair200_01_s1_pack_lightgrey");catBind("teqair200_01_s1_pack_pinkclay_cartButton","teqair200_01_s1_pack_pinkclay");catBind("teqair200_01_teqair450_pack_cartButton","teqair200_01_teqair450_pack");catBind("lavie_pack_cartButton","lavie_pack");typeBind("teqsensor_01_cartButton","teqsensor_01_s1");typeBind("e500_01_standard_cartButton","e500_01_standard");typeBind("e500_01_standard_cartLink","e500_01_standard");typeBind("e500_02_connected_cartButton","e500_02_connected");typeBind("e500_02_connected_cartLink","e500_02_connected");typeBind("e500_03_standard_cartButton","e500_03_standard");typeBind("e500_03_standard_cartLink","e500_03_standard");typeBind("e500_04_connected_cartButton","e500_04_connected");typeBind("e500_04_connected_cartLink","e500_04_connected");typeBind("e500_03_cap_cartButton","e500_03_cap");typeBind("e500_03_cap_cartLink","e500_03_cap");typeBind("other_01_cleaning_kit_cartButton","other_01_cleaning_kit");typeBind("other_01_cleaning_kit_cartLink","other_01_cleaning_kit");typeBind("teqair100_01_darkgrey_car_cartButton","teqair100_01_darkgrey_car");typeBind("teqair100_01_darkgrey_car_cartLink","teqair100_01_darkgrey_car");typeBind("teqair100_01_darkgrey_indoor_cartButton","teqair100_01_darkgrey_indoor");typeBind("teqair100_01_darkgrey_indoor_cartLink","teqair100_01_darkgrey_indoor");typeBind("teqair100_01_wooden_foot_cartButton","teqair100_01_wooden_foot");typeBind("teqair100_01_wooden_foot_cartLink","teqair100_01_wooden_foot");typeBind("teqair200_01_black_cartButton","teqair200_01_black");typeBind("teqair200_01_black_cartLink","teqair200_01_black");typeBind("teqair200_01_blue_cartButton","teqair200_01_blue");typeBind("teqair200_01_blue_cartLink","teqair200_01_blue");typeBind("teqair200_01_darkgrey_cartButton","teqair200_01_darkgrey");typeBind("teqair200_01_darkgrey_cartLink","teqair200_01_darkgrey");typeBind("teqair200_01_lightgrey_cartButton","teqair200_01_lightgrey");typeBind("teqair200_01_lightgrey_cartLink","teqair200_01_lightgrey");typeBind("teqair200_01_pinkclay_cartButton","teqair200_01_pinkclay");typeBind("teqair200_01_pinkclay_cartLink","teqair200_01_pinkclay");typeBind("teqair450_01_black_cartButton","teqair450_01_black");typeBind("teqair450_01_black_cartLink","teqair450_01_black");typeBind("teqair450_01_darkgrey_hang_cartButton","teqair450_01_darkgrey_hang");typeBind("teqair450_01_darkgrey_hang_cartLink","teqair450_01_darkgrey_hang");typeBind("teqair450_01_lightgrey_cartButton","teqair450_01_lightgrey");typeBind("teqair450_01_lightgrey_cartLink","teqair450_01_lightgrey");typeBind("teqair450_01_lightgrey_hang_cartButton","teqair450_01_lightgrey_hang");typeBind("teqair450_01_lightgrey_hang_cartLink","teqair450_01_lightgrey_hang");typeBind("tip4_01_black_cartButton","tip4_01_black");typeBind("tip4_01_black_cartLink","tip4_01_black");typeBind("tip9_01_black_cartButton","tip9_01_black");typeBind("tip9_01_black_cartLink","tip9_01_black");typeBind("tip24_01_black_plain_short_cartButton","tip24_01_black_plain_short");typeBind("tip24_01_black_plain_short_cartLink","tip24_01_black_plain_short");typeBind("tip24_01_black_ceiling_cartButton","tip24_01_black_ceiling");typeBind("tip24_01_black_ceiling_cartLink","tip24_01_black_ceiling");typeBind("sensor_02_laser_egg_co2_cartButton","sensor_02_laser_egg_co2")}if($("#orderProductOffer").length>0){var sensorBind=function(id,suffix){$("#"+id).on("click",function(e){e.preventDefault();that._addProductToCart(suffix)})};sensorBind("teqsensor_01_s1_cartButton","teqsensor_01_s1");sensorBind("tip9_01_black_cartButton","tip9_01_black");sensorBind("tip24_01_black_plain_short_cartButton","tip24_01_black_plain_short")}$(document).on("click","[id$='_addToCartButton']",function(e){e.preventDefault();var productType=this.id.replace("_addToCartButton","");that._insertProductToCart(productType)});var packBind=function(packType){$("#"+packType+"_cartButton").on("click",function(e){e.preventDefault();that._insertProductCategoryToCart(packType)})};packBind("pack_e500_connected_teqsensor_01_s1");packBind("pack_duo_actif");packBind("pack_duo_chambres");packBind("pack_duo_maison");packBind("pack_duo_plein_air");packBind("pack_duo_boost");$(".default-check").each(function(){this.checked=true})};ShopClass.prototype._collectAddress=function(){var addressObj=this._getAddressObject(),cartObj;addressObj.isShippingSpecific=$("#shopShippingSpecific").is(":checked")?false:true;addressObj.shipping.firstname=this._toCamelCase($("#shop_firstname_shipping").val());addressObj.shipping.lastname=this._toCamelCase($("#shop_lastname_shipping").val());addressObj.shipping.street1=this._toCamelCase($("#shop_street1_shipping").val());addressObj.shipping.street2=this._toCamelCase($("#shop_street2_shipping").val());addressObj.shipping.code=$("#shop_code_shipping").val();addressObj.shipping.town=this._toCamelCase($("#shop_town_shipping").val());addressObj.shipping.country=this._getCartObject().country;addressObj.shipping.email=$("#shop_email").val();addressObj.shipping.phone=$("#shop_phone_shipping").val();addressObj.shipping.note=$("#shop_note_shipping").val();if(addressObj.isShippingSpecific){addressObj.billing.firstname=this._toCamelCase($("#shop_firstname_billing").val());addressObj.billing.lastname=this._toCamelCase($("#shop_lastname_billing").val());addressObj.billing.street1=this._toCamelCase($("#shop_street1_billing").val());addressObj.billing.street2=this._toCamelCase($("#shop_street2_billing").val());addressObj.billing.code=$("#shop_code_billing").val();addressObj.billing.town=this._toCamelCase($("#shop_town_billing").val());addressObj.billing.country=$("#shop_country_billing").val()||"";addressObj.billing.email=$("#shop_email_billing").val()||$("#shop_email").val();addressObj.billing.phone=addressObj.shipping.phone}else{addressObj.billing=Object.clone(addressObj.shipping)}this._setAddressObject(addressObj);cartObj=this._getCartObject();cartObj.country=addressObj.shipping.country;this._setCartObject(cartObj);window.orderProductEmail=this._getEmail()};ShopClass.prototype._checkAddress=function(){var isValid=true,addressObj,omMapping={973:"gf",971:"gp",988:"nc",972:"mq",987:"pf",975:"pm",974:"re",986:"wf",976:"yt"},om;addressObj=this._getAddressObject();var inv="is-invalid";
1var validate=function(val,$el){if(!val){$el.addClass(inv);isValid=false}else{$el.removeClass(inv)}};(function(){var ok=!!(addressObj.shipping.firstname||addressObj.shipping.lastname);$("#shop_firstname_shipping")[ok?"removeClass":"addClass"](inv);$("#shop_lastname_shipping")[ok?"removeClass":"addClass"](inv);if(!ok){isValid=false}})();validate(addressObj.shipping.street1,$("#shop_street1_shipping"));validate(addressObj.shipping.town,$("#shop_town_shipping"));(function(){var phone=addressObj.shipping.phone;if(!phone){$("#shop_phone_shipping").addClass(inv);isValid=false;return}var region=(addressObj.shipping.country||"").toUpperCase();var ok=false;try{var _lib=require("libphonenumber");ok=_lib.isValidPhoneNumber(phone,region||"FR")}catch(e){ok=phone.replace(/[^\d]/g,"").length>=6}if(ok){$("#shop_phone_shipping").removeClass(inv)}else{$("#shop_phone_shipping").addClass(inv);isValid=false}})();if(!addressObj.shipping.code){$("#shop_code_shipping").addClass(inv);isValid=false}else if(addressObj.shipping.country==="fr"&&addressObj.shipping.code.length!==5){$("#shop_code_shipping").addClass(inv);isValid=false}else{$("#shop_code_shipping").removeClass(inv)}if(addressObj.isShippingSpecific){(function(){var ok=!!(addressObj.billing.firstname||addressObj.billing.lastname);$("#shop_firstname_billing")[ok?"removeClass":"addClass"](inv);$("#shop_lastname_billing")[ok?"removeClass":"addClass"](inv);if(!ok){isValid=false}})();validate(addressObj.billing.street1,$("#shop_street1_billing"));validate(addressObj.billing.town,$("#shop_town_billing"));validate(addressObj.billing.code,$("#shop_code_billing"))}var emailRegex=/\S+@\S+\.\S+/;if(!addressObj.shipping.email||!emailRegex.test(addressObj.shipping.email)){$("#shop_email").addClass(inv);isValid=false}else{$("#shop_email").removeClass(inv)}return isValid};ShopClass.prototype._prefillAddress=function(){var addressObj=this._getAddressObject();if(addressObj.shipping.email){$("#shop_email").val(addressObj.shipping.email)}if(addressObj.shipping.firstname){$("#shop_firstname_shipping").val(addressObj.shipping.firstname)}if(addressObj.shipping.lastname){$("#shop_lastname_shipping").val(addressObj.shipping.lastname)}if(addressObj.shipping.street1){$("#shop_street1_shipping").val(addressObj.shipping.street1)}if(addressObj.shipping.street2){$("#shop_street2_shipping").val(addressObj.shipping.street2)}if(addressObj.shipping.code){$("#shop_code_shipping").val(addressObj.shipping.code)}if(addressObj.shipping.town){$("#shop_town_shipping").val(addressObj.shipping.town)}if(addressObj.shipping.phone){$("#shop_phone_shipping").val(this._normalizePhone(addressObj.shipping.phone))}if(addressObj.shipping.note){$("#shop_note_shipping").val(addressObj.shipping.note)}if(addressObj.isShippingSpecific){$("#shopShippingSpecific").prop("checked",false);$("#shopBillingBlock").collapse("show");if(addressObj.billing.firstname){$("#shop_firstname_billing").val(addressObj.billing.firstname)}if(addressObj.billing.lastname){$("#shop_lastname_billing").val(addressObj.billing.lastname)}if(addressObj.billing.street1){$("#shop_street1_billing").val(addressObj.billing.street1)}if(addressObj.billing.code){$("#shop_code_billing").val(addressObj.billing.code)}if(addressObj.billing.town){$("#shop_town_billing").val(addressObj.billing.town)}if(addressObj.billing.country){$("#shop_country_billing").val(addressObj.billing.country)}}};ShopClass.prototype._getPhonePrefix=function(iso){var p={ac:"+247",ad:"+376",ae:"+971",af:"+93",ag:"+1268",ai:"+1264",al:"+355",am:"+374",ao:"+244",ar:"+54",at:"+43",au:"+61",az:"+994",ba:"+387",bb:"+1246",bd:"+880",be:"+32",bf:"+226",bg:"+359",bh:"+973",bi:"+257",bj:"+229",bn:"+673",bo:"+591",br:"+55",bs:"+1242",bt:"+975",bw:"+267",by:"+375",bz:"+501",ca:"+1",cd:"+243",cf:"+236",cg:"+242",ch:"+41",ci:"+225",cl:"+56",cm:"+237",cn:"+86",co:"+57",cr:"+506",cu:"+53",cv:"+238",cy:"+357",cz:"+420",de:"+49",dj:"+253",dk:"+45",dm:"+1767",dz:"+213",ec:"+593",ee:"+372",eg:"+20",er:"+291",es:"+34",et:"+251",fi:"+358",fj:"+679",fo:"+298",fr:"+33",ga:"+241",gb:"+44",gd:"+1473",ge:"+995",gf:"+594",gh:"+233",gi:"+350",gl:"+299",gm:"+220",gn:"+224",gp:"+590",gq:"+240",gr:"+30",gt:"+502",gw:"+245",gy:"+592",hk:"+852",hn:"+504",hr:"+385",ht:"+509",hu:"+36",id:"+62",ie:"+353",il:"+972",in:"+91",iq:"+964",ir:"+98",is:"+354",it:"+39",jm:"+1876",jo:"+962",jp:"+81",ke:"+254",kg:"+996",kh:"+855",km:"+269",kn:"+1869",kr:"+82",kw:"+965",kz:"+7",la:"+856",lb:"+961",lc:"+1758",li:"+423",lk:"+94",lr:"+231",ls:"+266",lt:"+370",lu:"+352",lv:"+371",ly:"+218",ma:"+212",mc:"+377",md:"+373",me:"+382",mg:"+261",mk:"+389",ml:"+223",mm:"+95",mn:"+976",mo:"+853",mq:"+596",mr:"+222",mt:"+356",mu:"+230",mv:"+960",mw:"+265",mx:"+52",my:"+60",mz:"+258",na:"+264",nc:"+687",ne:"+227",
1ng:"+234",ni:"+505",nl:"+31",no:"+47",np:"+977",nz:"+64",om:"+968",pa:"+507",pe:"+51",pf:"+689",pg:"+675",ph:"+63",pk:"+92",pl:"+48",pm:"+508",ps:"+970",pt:"+351",py:"+595",qa:"+974",re:"+262",ro:"+40",rs:"+381",ru:"+7",rw:"+250",sa:"+966",sb:"+677",sc:"+248",sd:"+249",se:"+46",sg:"+65",si:"+386",sk:"+421",sl:"+232",sm:"+378",sn:"+221",so:"+252",sr:"+597",ss:"+211",st:"+239",sv:"+503",sy:"+963",sz:"+268",td:"+235",tg:"+228",th:"+66",tj:"+992",tl:"+670",tm:"+993",tn:"+216",to:"+676",tr:"+90",tt:"+1868",tw:"+886",tz:"+255",ua:"+380",ug:"+256",us:"+1",uy:"+598",uz:"+998",va:"+39",ve:"+58",vn:"+84",vu:"+678",wf:"+681",ws:"+685",xk:"+383",ye:"+967",yt:"+262",za:"+27",zm:"+260",zw:"+263"};return p[iso]||""};ShopClass.prototype._updatePhonePrefix=function(){var prefix=this._getPhonePrefix(this._getCartObject().country);$("#shopPhonePrefix").text(prefix)};ShopClass.prototype._initAddressAutocomplete=function(){if(googlePlacesObj.enabled){this._initGooglePlacesAutocomplete()}else if(this._lang==="fr"){this._initBanAutocomplete()}};ShopClass.prototype._initGooglePlacesAutocomplete=function(){var that=this;googlePlacesObj.load(function(){that._applyGooglePlaces("shop_street1_shipping","shop_town_shipping","shop_code_shipping",false);that._applyGooglePlaces("shop_street1_billing","shop_town_billing","shop_code_billing",true)},function(){if(that._lang==="fr"){that._initBanAutocomplete()}})};ShopClass.prototype._applyGooglePlaces=function(streetId,cityId,codeId,isBilling){var that=this;googlePlacesObj.applyAutocomplete(document.getElementById(streetId),["address_components"],function(place){var r=googlePlacesObj.parseComponents(place.address_components);$("#"+streetId).val((r.num?r.num+" ":"")+r.route);if(r.zip){$("#"+codeId).val(r.zip)}if(r.city){$("#"+cityId).val(r.city)}if(isBilling&&r.country){$("#shop_country_billing").val(r.country)}that._collectAddress();that._checkAddress();that._renderCheckoutSummary()})};ShopClass.prototype._initBanAutocomplete=function(){var that=this,debounceTimer;var setupBan=function(inputId,cityId,codeId){var $input=$("#"+inputId),$city=cityId?$("#"+cityId):null,$code=codeId?$("#"+codeId):null;if(!$input.length){return}var $suggestions=$('<ul class="shop-address-suggestions list-group" style="position:absolute;z-index:9999;width:100%;max-height:200px;overflow-y:auto;display:none;"></ul>');$input.parent().css("position","relative").append($suggestions);$input.on("input",function(){clearTimeout(debounceTimer);var q=$input.val().trim();if(q.length<3){$suggestions.hide();return}debounceTimer=setTimeout(function(){var xhrBan=new XMLHttpRequest;xhrBan.open("GET","https://api-adresse.data.gouv.fr/search/?q="+encodeURIComponent(q)+"&limit=5",true);xhrBan.onreadystatechange=function(){if(xhrBan.readyState!==4||xhrBan.status!==200){return}try{var data=JSON.parse(xhrBan.responseText);$suggestions.empty().hide();if(data&&data.features&&data.features.length>0){data.features.forEach(function(feature){var label=feature.properties.label;var $li=$('<li class="list-group-item list-group-item-action py-1 px-2" style="cursor:pointer;font-size:.85rem;">'+label+"</li>");$li.on("click",function(){$input.val(feature.properties.name||feature.properties.street||label);if($code){$code.val(feature.properties.postcode||"")}if($city){$city.val(feature.properties.city||"")}$suggestions.hide();that._collectAddress();that._checkAddress();that._renderCheckoutSummary()});$suggestions.append($li)});$suggestions.show()}}catch(e){}};xhrBan.send()},300)});$(document).on("click",function(e){if(!$(e.target).closest("#"+inputId).length){$suggestions.hide()}})};setupBan("shop_street1_shipping","shop_town_shipping","shop_code_shipping");setupBan("shop_street1_billing","shop_town_billing","shop_code_billing")};ShopClass.prototype._renderCheckoutSummary=function(){var that=this,t=this._t,data,html,ind,p;data=this._computeCartPrices(true);var $tbody=$("#shopSummaryList");if(!$tbody.length){return}html="";for(ind=0;ind<data.products.length;ind+=1){p=data.products[ind];var imgHtml=p.image?'<img src="'+p.image+'" alt="'+p.name+'" style="width:48px;height:48px;object-fit:contain;border:1px solid #e9ecef;border-radius:3px;background:#fafafa;">':"";var qtyCell=p.productType==="airobs_01_test"?'<span style="display:inline-block;width:60px;text-align:center;font-size:.875rem;color:#6c757d;">Ã1</span>':'<input type="number" value="'+p.number+'" min="1" class="form-control d-inline-block shopSummaryQty" data-index="'+p.index+'" style="width:60px;">';html+="<tr>"+'<td class="pt-2 pr-2 align-top" rowspan="2">'+imgHtml+"</td>"+'<td class="pt-2 pb-1" colspan="3" style="font-size:.875rem;">'+p.name+that._renderPackContent(p.productType,p.contentTab)+"</td>"+"</tr><tr>"+'<td class="pb-2 align-middle" style="white-space:nowrap;">'+qtyCell+"</td>"+'<td class="pb-2 align-middle text-right" style="white-space:nowrap;font-size:.875rem;">'+that._convertAmount(p.nbProductTtc)+that._ttcSuffix+"</td>"+'<td class="pb-2 align-middle"><button class="shop-slide-remove shopSummaryRemove" data-index="'+p.index+'">Ã</button></td>'+"</tr>"}$tbody.html(html);$("#shopMobileSummaryList").html(html);var cartObj=data.cartObj;if(cartObj.coupon){$("#shopCoupon").val(cartObj.coupon)}if(cartObj.godFather){$("#shopGodfather").val(cartObj.godFather)}$("#shopSummarySubtotal").html(that._convertAmount(data.ttlReferenceTtc)+that._ttcSuffix);if(data.ttlReferenceTtc>0&&data.ttlProductTtc<data.ttlReferenceTtc){$("#shopSummaryDiscountRow").css("display","flex");$("#shopSummaryDiscount").html("-"+that._convertAmount(data.ttlReferenceTtc-data.ttlProductTtc)+that._ttcSuffix)}else{$("#shopSummaryDiscountRow").css("display","none")}if(data.ttlShippingTtc>0){$("#shopSummaryShipping").html(that._convertAmount(data.ttlShippingTtc)+that._ttcSuffix)}else{$("#shopSummaryShipping").html('<span style="color:#6c8e2c;">'+t.shippingFree+"</span>")}$("#shopSummaryTotal").html("<strong>"+that._convertAmount(data.totalTtc)+that._ttcSuffix+"</strong>");$("#shopMobileSummaryTotal").html(that._convertAmount(data.totalTtc)+that._ttcSuffix);$("#shopSummaryCustoms").css("display",data.hasTax?"none":"block");var msgs="";var discountMessageTab=this._getDiscountMessageTab(data);for(var indMsg=0;indMsg<discountMessageTab.length;indMsg+=1){msgs+='<div class="alert '+(discountMessageTab[indMsg].isInfo?"alert-info":"alert-success")+' py-2 px-3 mb-2" style="font-size:.8rem;">'+(discountMessageTab[indMsg].isInfo?"â¹ï¸ ":"ð ")+discountMessageTab[indMsg].text+"</div>"}if(data.hasTMA){msgs+='<div class="alert alert-info py-2 px-3 mb-2" style="font-size:.8rem;">
1â¹ï¸ '+t.sensorLoanMsg+"</div>"}$("#shopSummaryMessages").html(msgs);window.orderProductAmount=data.totalTtc;window.orderProductEmail=this._getEmail()};ShopClass.prototype._getTermsLabel=function(){var url=$("#shopTermsUrl").val();if(!url){return this._t.terms}return this._t.terms.replace(/href="[^"]*"/,'href="'+url+'"')};ShopClass.prototype._buildCheckoutHTML=function(){var t=this._t,imgBase=window._internalBaseUrl,lang=this._lang;var returnLang={fr:"fr",en:"en",de:"de",es:"en",it:"it",zh:"zh"}[lang]||"en";var condPic=function(name,alt){return"<picture>"+'<source type="image/svg+xml" srcset="'+imgBase+"/config/images/"+name+'.svg">'+'<source type="image/webp" srcset="'+imgBase+"/config/images/"+name+'.webp">'+'<img src="'+imgBase+"/config/images/"+name+'.png" alt="'+alt+'"'+' class="lazy hasSVG mx-auto d-block" loading="lazy" width="60" height="50" style="max-height:36px;width:auto;">'+"</picture>"};var walletPic=function(name,alt,width,cls){return"<picture>"+'<source type="image/svg+xml" srcset="'+imgBase+"/config/images/"+name+'.svg">'+'<source type="image/webp" srcset="'+imgBase+"/config/images/"+name+'.webp">'+'<img src="'+imgBase+"/config/images/"+name+'.png" alt="'+alt+'"'+' class="'+(cls||"")+'" loading="lazy" width="'+width+'" height="22" style="height:22px;width:auto;">'+"</picture>"};var condBadges='<div class="row text-center mt-3 mx-0">'+'<div class="col-4 px-1 mb-1">'+condPic("home_cond_secured",t.securedPayment)+'<small class="d-block pt-1" style="font-size:.75rem;line-height:1.2;">'+t.securedPayment+"</small></div>"+'<div class="col-4 px-1 mb-1">'+condPic("home_cond_return_"+returnLang,t.condReturn)+'<small class="d-block pt-1" style="font-size:.75rem;line-height:1.2;">'+t.condReturn+"</small></div>"+'<div class="col-4 px-1 mb-1">'+condPic("home_cond_installment",t.payByAlma)+'<small class="d-block pt-1" style="font-size:.75rem;line-height:1.2;">'+t.payByAlma+"</small></div>"+"</div>";return'<div class="container-fluid py-4 px-lg-2 px-0">'+'<div class="d-lg-none mt-4 mb-3">'+'<div class="card border-0 shadow-sm">'+'<div class="card-body py-2 px-3" data-toggle="collapse" data-target="#shopMobileSummaryCollapse" aria-expanded="false" aria-controls="shopMobileSummaryCollapse" style="cursor:pointer;">'+'<div class="d-flex justify-content-between align-items-center">'+'<span style="font-size:1.25rem;font-weight:600;">'+t.orderSummaryTitle+"</span>"+'<div class="d-flex align-items-center">'+'<span id="shopMobileSummaryTotal" style="font-size:1.25rem;font-weight:600;">â</span>'+'<span style="font-size:.75rem;margin-left:.4rem;">â¾</span>'+"</div></div></div>"+'<div class="collapse" id="shopMobileSummaryCollapse">'+'<div class="card-body pt-0 px-3">'+'<table class="table table-sm mt-2 mb-0" style="font-size:.875rem;"><tbody id="shopMobileSummaryList"></tbody></table>'+"</div></div>"+"</div></div>"+'<div class="d-lg-none px-2 mt-2 mb-3">'+'<div class="form-group mb-0">'+'<p class="small mb-2 pb-0">'+t.discountQuestion+"</p>"+'<div class="d-flex mb-2">'+'<div class="form-check mr-3"><input type="radio" id="shopDiscountTypeCoupon_mob" name="shopDiscountType" class="form-check-input" value="coupon">'+'<label for="shopDiscountTypeCoupon_mob" class="form-check-label">'+t.coupon+"</label></div>"+'<div class="form-check"><input type="radio" id="shopDiscountTypeGodfather_mob" name="shopDiscountType" class="form-check-input" value="godfather">'+'<label for="shopDiscountTypeGodfather_mob" class="form-check-label">'+t.godfather+"</label></div>"+"</div>"+'<div id="shopCouponGroup_mob" style="display:none;">'+'<input type="text" id="shopCoupon_mob" class="form-control" placeholder="'+t.coupon+'">'+'<small id="shopCouponMsg_mob" style="display:none;"></small></div>'+'<div id="shopGodfatherGroup_mob" style="display:none;">'+'<input type="email" id="shopGodfather_mob" class="form-control" placeholder="[email protected]">'+'<small id="shopGodfatherMsg_mob" style="display:none;"></small></div>'+"</div>"+condBadges+"</div>"+'<div class="row">'+'<div class="col-lg-7 col-12 mt-lg-4 pr-lg-4">'+'<div class="card mb-3 border-0 shadow-sm"><div class="card-body">'+'<h5 class="card-title mb-3" style="font-weight:600;">'+t.contact+"</h5>"+'<div class="form-group mb-2"><label for="shop_email" class="mb-1">'+t.email+" *</label>"+'<input type="email" id="shop_email" class="form-control" autocomplete="email">'+'<div class="invalid-feedback">
1'+t.invalidEmail+"</div>"+'<div id="shopEmailFeedback" class="small mt-1 text-success" style="display:none;"></div></div>'+'<div class="form-check mt-2"><input type="checkbox" id="shopNewsletter" class="form-check-input" checked>'+'<label for="shopNewsletter" class="form-check-label">'+t.newsletter+"</label></div>"+"</div></div>"+'<div class="card mb-3 border-0 shadow-sm"><div class="card-body">'+'<h5 class="card-title mb-3" style="font-weight:600;">'+t.shippingAddress+"</h5>"+'<div class="row no-gutters">'+'<div class="form-group col-6 mb-2 pr-1"><label for="shop_firstname_shipping" class="mb-1">'+t.firstname+"</label>"+'<input type="text" id="shop_firstname_shipping" class="form-control" autocomplete="given-name"></div>'+'<div class="form-group col-6 mb-2 pl-1"><label for="shop_lastname_shipping" class="mb-1">'+t.lastname+"</label>"+'<input type="text" id="shop_lastname_shipping" class="form-control" autocomplete="family-name">'+'<div class="invalid-feedback">'+t.requiredField+"</div></div>"+"</div>"+'<div class="form-group mb-2" style="position:relative;"><label for="shop_street1_shipping" class="mb-1">'+t.street1+"</label>"+'<input type="text" id="shop_street1_shipping" class="form-control" autocomplete="address-line1">'+'<div class="invalid-feedback">'+t.requiredField+"</div></div>"+'<div class="form-group mb-2"><label for="shop_street2_shipping" class="mb-1">'+t.street2+"</label>"+'<input type="text" id="shop_street2_shipping" class="form-control" autocomplete="address-line2"></div>'+'<div class="row no-gutters">'+'<div class="form-group col-3 mb-2 pr-1"><label for="shop_code_shipping" class="mb-1">'+t.code+"</label>"+'<input type="text" id="shop_code_shipping" class="form-control" autocomplete="postal-code">'+'<div class="invalid-feedback">'+t.requiredField+"</div></div>"+'<div class="form-group col-6 mb-2 px-1"><label for="shop_town_shipping" class="mb-1">'+t.town+"</label>"+'<input type="text" id="shop_town_shipping" class="form-control" autocomplete="address-level2">'+'<div class="invalid-feedback">'+t.requiredField+"</div></div>"+'<div class="form-group col-3 mb-2 pl-1"><label for="shop_country_shipping" class="mb-1">'+t.countryLabel+"</label>"+'<input type="text" id="shop_country_shipping" class="form-control" disabled></div>'+"</div>"+'<div class="form-group mb-2"><label for="shop_phone_shipping" class="mb-1">'+t.phone+"</label>"+'<div class="input-group">'+'<div class="input-group-prepend"><span class="input-group-text" id="shopPhonePrefix" style="min-width:3.5rem;justify-content:center;font-size:.8rem;letter-spacing:.02em;"></span></div>'+'<input type="tel" id="shop_phone_shipping" class="form-control" autocomplete="tel">'+'<div class="invalid-feedback">'+t.requiredField+"</div>"+"</div></div>"+'<div class="form-group mb-0"><label for="shop_note_shipping" class="mb-1">'+t.note+"</label>"+'<textarea id="shop_note_shipping" class="form-control" rows="3"></textarea></div>'+'<div class="form-check mt-3"><input type="checkbox" id="shopShippingSpecific" class="form-check-input" checked>'+'<label for="shopShippingSpecific" class="form-check-label">'+t.sameAddress+"</label></div>"+"</div></div>"+'<div class="collapse" id="shopBillingBlock">'+'<div class="card mb-3 border-0 shadow-sm"><div class="card-body">'+'<h5 class="card-title mb-3" style="font-weight:600;">'+t.billingAddress+"</h5>"+'<div class="row no-gutters">'+'<div class="form-group col-6 mb-2 pr-1"><label for="shop_firstname_billing" class="mb-1">'+t.firstname+"</label>"+'<input type="text" id="shop_firstname_billing" class="form-control"></div>'+'<div class="form-group col-6 mb-2 pl-1"><label for="shop_lastname_billing" class="mb-1">'+t.lastname+"</label>"+'<input type="text" id="shop_lastname_billing" class="form-control">'+'<div class="invalid-feedback">'+t.requiredField+"</div></div>"+"</div>"+'<div class="form-group mb-2"><label for="shop_street1_billing" class="mb-1">'+t.street1+"</label>"+'<input type="text" id="shop_street1_billing" class="form-control">'+'<div class="invalid-feedback">'+t.requiredField+"</div></div>"+'<div class="form-group mb-2"><label for="shop_street2_billing" class="mb-1">'+t.street2+"</label>"+'<input type="text" id="shop_street2_billing" class="form-control"></div>'+'<div class="row no-gutters">'+'<div class="form-group col-3 mb-2 pr-1"><label for="shop_code_billing" class="mb-1">'+t.code+"</label>"+'<input type="text" id="shop_code_billing" class="form-control">'+'<div class="invalid-feedback">'+t.requiredField+"</div></div>"+'<div class="form-group col-6 mb-2 px-1"><label for="shop_town_billing" class="mb-1">'+t.town+"</label>"+'<input type="text" id="shop_town_billing" class="form-control">'+'<div class="invalid-feedback">'+t.requiredField+"</div></div>"+'<div class="form-group col-3 mb-2 pl-1"><label for="shop_country_billing" class="mb-1">'+t.countryLabel+"</label>"+'<select id="shop_country_billing" class="form-control" disabled>'+this._buildCountryOptions()+"</select></div>"+"</div>"+'<div class="form-group mb-2"><label for="shop_email_billing" class="mb-1">'+t.email+"</label>"+'<input type="email" id="shop_email_billing" class="form-control" autocomplete="email"></div>'+"</div></div></div>"+'<div class="card mb-3 border-0 shadow-sm"><div class="card-body">'+'<h5 class="card-title mb-3" style="font-weight:600;">'+t.deliveryMode+"</h5>"+'<div class="form-check mb-2"><input type="radio" id="shopDeliveryColissimo" name="shopDelivery" class="form-check-input" value="Colissimo" checked>'+'<label for="shopDeliveryColissimo" class="form-check-label">'+t.colissimo+'<br><span style="color:#6c757d;font-size:.9em;">'+t.deliveryDelay+"</span></label></div>"+'<div class="form-check mb-2" id="shopDeliveryDpdStdRow" style="display:none;">'+'<input type="radio" id="shopDeliveryDpdStd" name="shopDelivery" class="form-check-input" value="DPD_Standard">'+'<label for="shopDeliveryDpdStd" class="form-check-label">
1'+t.dpdStandard+'<br><span style="color:#6c757d;font-size:.9em;">'+t.deliveryDelay+"</span></label></div>"+'<div class="form-check mb-0" id="shopDeliveryDpdPickupRow" style="display:none;">'+'<input type="radio" id="shopDeliveryDpdPickup" name="shopDelivery" class="form-check-input" value="DPD_Pickup">'+'<label for="shopDeliveryDpdPickup" class="form-check-label">'+t.dpd+'<br><span style="color:#6c757d;font-size:.9em;">'+t.deliveryDelay+"</span></label></div>"+'<div id="shopPickupList" class="mt-3" style="display:none;max-height:280px;overflow-y:auto;"></div>'+"</div></div>"+'<div class="card mb-3 border-0 shadow-sm"><div class="card-body">'+'<h5 class="card-title mb-3" style="font-weight:600;">'+t.payment+"</h5>"+'<div class="form-check mb-3"><input type="checkbox" id="shopTerms" class="form-check-input">'+"<div>"+'<label for="shopTerms" class="form-check-label">'+this._getTermsLabel()+"</label>"+'<div id="shopTermsValidation" class="invalid-feedback" style="display:none;">'+t.checkRequiredFields+"</div>"+"</div></div>"+'<div id="shopPaymentBlock" class="collapse">'+'<div id="shopSensorWarning" class="alert alert-warning py-2 px-3 mb-3 small" style="display:none;">Une empreinte bancaire pour le prêt du capteur vous sera demandée après le paiement de votre commande.</div>'+'<div class="row">'+'<div class="col-sm-6 col-12 mb-3"><button class="payment-button btn btn-primary btn-block" id="stripe-button-container" disabled>'+t.payByCard+"</button>"+'<div id="shopWalletNote" class="text-center mt-1">'+'<div class="mb-1">'+walletPic("checkout_logo_applepay","Apple Pay",34,"mr-3")+walletPic("checkout_logo_googlepay","Google Pay",41)+"</div>"+'<span class="small text-muted">'+t.walletsAvailable+"</span>"+"</div></div>"+'<div class="col-sm-6 col-12 mb-3">'+'<div id="paypal-button-container" style="min-height:45px;"></div>'+"</div>"+'<div class="col-sm-6 col-12 mb-3">'+'<button class="shopAlmaItem payment-button btn btn-primary btn-block" id="alma-button-container" disabled>'+t.payByAlma+"</button>"+'<div class="shopAlmaItem text-center mt-1"><a data-toggle="collapse" href="#shopAlmaDetails" role="button" aria-expanded="false" class="small text-muted">'+t.almaLearnMore+"</a></div>"+'<div id="shopAlmaDetails" class="collapse mt-2 small text-muted"><p>'+t.almaDetails+"</p></div>"+"</div>"+'<div class="col-sm-6 col-12 mb-3"><button class="payment-button btn btn-outline-secondary btn-block" id="transfer-button-container" disabled>'+t.payByTransfer+"</button></div>"+"</div>"+'<div id="shopCheckoutError" class="alert alert-danger py-2 mt-2" style="display:none;">'+t.checkoutError+"</div>"+"</div>"+'<div id="shopTestMyAirBlock" class="collapse">'+'<p class="small">Une empreinte bancaire pour un montant maximum de 149 euros est demandée à la commande. A la fin des 30 jours vous serez débité de 24 euros à la restitution du capteur. Si le capteur vous a plu et que vous souhaitez le conserver, vous serez débité de 149 euros. Vous allez maintenant être dirigé vers la plateforme d\'autorisation bancaire Swikly.</p>'+'<div class="row"><div class="col-12 mb-3"><button class="payment-button btn btn-primary btn-block" id="testmyair-button-container" disabled>Déposer votre empreinte bancaire</button></div></div>'+"</div>"+"</div></div>"+"</div>"+'<div class="col-lg-5 col-12 mt-4 mt-lg-4 d-none d-lg-block">'+'<div class="card border-0 shadow-sm" style="position:sticky;top:80px;"><div class="card-body">'+'<h5 class="card-title mb-3" style="font-weight:600;">'+t.title+"</h5>"+'<table class="table table-sm mb-0" style="font-size:.875rem;"><tbody id="shopSummaryList"></tbody></table>'+'<div id="shopSummaryMessages" class="mt-2"></div>'+'<hr class="my-3">'+'<div class="form-group mb-3">'+'<p class="small mb-2 pb-0">'+t.discountQuestion+"</p>"+'<div class="d-flex mb-2">'+'<div class="form-check mr-3"><input type="radio" id="shopDiscountTypeCoupon" name="shopDiscountType" class="form-check-input" value="coupon">'+'<label for="shopDiscountTypeCoupon" class="form-check-label">'+t.coupon+"</label></div>"+'<div class="form-check"><input type="radio" id="shopDiscountTypeGodfather" name="shopDiscountType" class="form-check-input" value="godfather">'+'<label for="shopDiscountTypeGodfather" class="form-check-label">'+t.godfather+"</label></div>"+"</div>"+'<div id="shopCouponGroup" style="display:none;">'+'<input type="text" id="shopCoupon" class="form-control" placeholder="'+t.coupon+'">'+'<small id="shopCouponMsg" style="display:none;"></small></div>'+'<div id="shopGodfatherGroup" style="display:none;">'+'<input type="email" id="shopGodfather" class="form-control" placeholder="[email protected]">'+'<small id="shopGodfatherMsg" style="display:none;"></small></div>'+"</div>"+'<hr class="my-2">'+'<div style="font-size:.9rem;">'+'<div class="d-flex justify-content-between py-1"><span>'+t.subtotal+'</span><span id="shopSummarySubtotal">â</span></div>'+'<div class="py-1 text-danger" id="shopSummaryDiscountRow" style="display:none;justify-content:space-between;"><span>'+t.discount+'</span><span id="shopSummaryDiscount">â</span></div>'+'<div class="d-flex justify-content-between py-1"><span>'+t.shipping+'</span><span id="shopSummaryShipping">â</span></div>'+'<div class="d-flex justify-content-between py-2 font-weight-bold" style="border-top:1px solid #dee2e6;margin-top:.25rem;"><span>'+t.total+'</span><span id="shopSummaryTotal">â</span></div>'+'<div id="shopSummaryCustoms" style="display:none;font-size:.8rem;color:#6c757d;">'+t.customsNotice+"</div>"+"</div>"+condBadges+"</div></div>"+"</div>"+"</div></div>"};ShopClass.prototype._initCheckoutPage=function(){var that=this,cartObj;if($("#shopCheckout").length===0){return}$("#shopCheckout").html(this._buildCheckoutHTML());cartObj=this._getCartObject();if(cartObj.productTab.length===0){window.location=this._baseUrl+"/"+this._catalogPath;return}this._prefillAddress();var initCountryName=this._getCountryName(cartObj.country);$("#shop_country_shipping").val(initCountryName).data("iso",cartObj.country);$("#shop_country_billing").val(cartObj.country);this._prefillAddress();this._checkReturningCustomer();this._renderCheckoutSummary();if(window.location.search.indexOf("error=")>=0){this._showCheckoutError()}this._updateDeliveryOptions();this._updatePhonePrefix();this._initAddressAutocomplete();if(cartObj.godFather){$("[name='shopDiscountType'][value='godfather']").prop("checked",true);$("#shopGodfatherGroup, #shopGodfatherGroup_mob").show();$("#shopGodfather, #shopGodfather_mob").val(cartObj.godFather);$("#shopGodfatherMsg, #shopGodfatherMsg_mob").text(cartObj.loyalty?"â -15%":"â -5%").addClass("text-success").show()}else if(cartObj.coupon){$("[name='shopDiscountType'][value='coupon']").prop("checked",true);$("#shopCouponGroup, #shopCouponGroup_mob").show();$("#shopCoupon, #shopCoupon_mob").val(cartObj.coupon);var ckRestore=this._identifyCartCoupon(cartObj.coupon);var cpRestore=(this._pricingObj.coupons[ckRestore]||{}).percent;var cpRestoreMsg=cpRestore?"â -"+cpRestore+"%":"â";$("#shopCouponMsg, #shopCouponMsg_mob").text(cpRestoreMsg).addClass("text-success").show()}$("[name='shopDiscountType']").on("change",function(){var type=$(this).val(),cObj=that._getCartObject();if(type==="coupon"){$("#shopCouponGroup, #shopCouponGroup_mob").show();$("#shopGodfatherGroup, #shopGodfatherGroup_mob").hide();cObj.godFather="";cObj.loyalty=false;that._setCartObject(cObj);$("#shopGodfather, #shopGodfather_mob").val("");$("#shopGodfatherMsg, #shopGodfatherMsg_mob").hide()}else{$("#shopGodfatherGroup, #shopGodfatherGroup_mob").show();$("#shopCouponGroup, #shopCouponGroup_mob").hide();cObj.coupon="";that._setCartObject(cObj);$("#shopCoupon, #shopCoupon_mob").val("");$("#shopCouponMsg, #shopCouponMsg_mob").hide()}that._renderCheckoutSummary()});$("#shopNewsletter").prop("checked",true);$("#shopShippingSpecific").on("change",function(){if($(this).is(":checked")){$("#shopBillingBlock").collapse("hide");$("#shop_country_billing").prop("disabled",true).val(that._getCartObject().country)}else{$("#shopBillingBlock").collapse("show");
1$("#shop_country_billing").prop("disabled",false);if(!$("#shop_email_billing").val()){$("#shop_email_billing").val($("#shop_email").val())}}});$("#shop_country_shipping").on("change",function(){var value=$(this).val(),cartObjLocal=that._getCartObject();var areaOrg=that._getPricingArea(cartObjLocal.country);var areaNew=that._getPricingArea(value);cartObjLocal.country=value;that._setCartObject(cartObjLocal);window._internalCountry=value;that._setPricing();if(areaOrg!==areaNew){that._setPricingAsStandard()}that._updateCatalogPrices();that._updateDeliveryOptions();that._renderCheckoutSummary();that._updateAlmaVisibility();$("#shopSlideCountry").val(value)});$("#shopCoupon, #shopCoupon_mob").on("blur",function(){that._processCoupon()});$("#shopCoupon, #shopCoupon_mob").on("input",function(){$("#shopCouponMsg, #shopCouponMsg_mob").hide()});$("#shopGodfather, #shopGodfather_mob").on("blur",function(){that._processGodFather()});$("#shopGodfather, #shopGodfather_mob").on("input",function(){$("#shopGodfatherMsg, #shopGodfatherMsg_mob").hide()});$("#shopCoupon").on("input",function(){$("#shopCoupon_mob").val($(this).val())});$("#shopCoupon_mob").on("input",function(){$("#shopCoupon").val($(this).val())});$("#shopGodfather").on("input",function(){$("#shopGodfather_mob").val($(this).val())});$("#shopGodfather_mob").on("input",function(){$("#shopGodfather").val($(this).val())});$("#shop_email").on("blur",function(){that._checkReturningCustomer()});$("#shop_email").on("input",function(){$("#shopEmailFeedback").hide()});$(document).on("change",".shopSummaryQty",function(){var indProduct=parseInt($(this).data("index"),10),qty=parseInt($(this).val(),10)||0;that._updateCartItem(indProduct,qty);that._renderCheckoutSummary()});$(document).on("click",".shopSummaryRemove",function(){var indProduct=parseInt($(this).data("index"),10);that._updateCartItem(indProduct,0);that._renderCheckoutSummary();if(that._countCartItem()===0){window.location=that._baseUrl+"/"+that._catalogPath}});$("#shopTerms").on("change",function(){if($(this).is(":checked")){that._onTermsAccepted()}else{that._setPaymentEnabled(false)}});$(document).on("change","#shopDeliveryDpdPickup",function(){if($(this).is(":checked")){that._fetchPickupPoints()}});$(document).on("change","#shopDeliveryColissimo, #shopDeliveryDpdStd",function(){var cObj=that._getCartObject();cObj.shippingId=-1;that._setCartObject(cObj);$("#shopPickupList").empty().hide()});$(document).on("click",".shopPickupItem",function(){that._selectPickupPoint($(this).data("id"),$(this))});$(document).on("input change","#shop_email, #shop_firstname_shipping, #shop_lastname_shipping, "+"#shop_street1_shipping, #shop_code_shipping, #shop_town_shipping, #shop_phone_shipping, "+"#shop_firstname_billing, #shop_lastname_billing, #shop_street1_billing, "+"#shop_code_billing, #shop_town_billing, #shop_country_billing",function(){that._collectAddress();that._checkAddress()});$(document).on("click","#transfer-button-container",function(){that.recordPayment("bank_transfer","","waiting",0)});if(this._layerListener){this._layerListener("checkout_step",{cartStep:2});this._layerListener("checkout_step",{cartStep:4})}this._updatePaymentBlockVisibility();this._setPaymentEnabled(false);window.orderProductLang=this._lang;window.orderProductLanguage=this._language;window.orderProductEmail=this._getEmail();window.orderProductAmount=this._getCartObject().totalTtc||0};ShopClass.prototype._updateDeliveryOptions=function(){var cartObj=this._getCartObject();this._colissimoOnly=this._cartRequiresColissimo();if(cartObj.country==="fr"&&!this._colissimoOnly){if(cartObj.shippingService==="Colissimo"){cartObj.shippingService="DPD_Standard";cartObj.shippingId=-1;this._setCartObject(cartObj)}$("#shopDeliveryColissimo").closest(".form-check").hide();if(cartObj.shippingService==="DPD_Pickup"){$("#shopDeliveryDpdPickup").prop("checked",true);this._fetchPickupPoints(cartObj.shippingId)}else{$("#shopDeliveryDpdStd").prop("checked",true)}$("#shopDeliveryDpdStdRow").show();$("#shopDeliveryDpdPickupRow").show()}else{if(cartObj.shippingService==="DPD_Standard"||cartObj.shippingService==="DPD_Pickup"){cartObj.shippingService="Colissimo";cartObj.shippingId=-1;this._setCartObject(cartObj)}$("#shopDeliveryColissimo").closest(".form-check").show();$("#shopDeliveryColissimo").prop("checked",true);$("#shopDeliveryDpdStdRow").hide();$("#shopDeliveryDpdPickupRow").hide();$("#shopPickupList").empty().hide()}};ShopClass.prototype._fetchPickupPoints=function(aPreselectedId){var that=this,t=this._t;this._collectAddress();var addressObj=this._getAddressObject();var $list=$("#shopPickupList").empty().show();if(!addressObj.shipping.code){$list.html('<p class="text-muted small mb-0">'+t.dpdPickupNoAddress+"</p>");return}$list.html('<p class="text-muted small mb-0"><em>'+t.dpdPickupLoading+"</em></p>");var xhr=new XMLHttpRequest;xhr.open("POST",window._internalBaseUrl+"/engine/tools/dpd.php",true);xhr.setRequestHeader("Content-Type","application/json");xhr.onreadystatechange=function(){if(xhr.readyState!==4){return}if(xhr.status!==200){$list.html('<p class="text-danger small mb-0">'+t.dpdPickupError+"</p>");return}try{var data=JSON.parse(xhr.responseText);var points=data.coordTab||[];if(!points.length){$list.html('<p class="text-danger small mb-0">'+t.dpdPickupError+"</p>");return}var html='<div class="list-group">';for(var i=0;i<points.length;i++){var p=points[i];html+='<button type="button" class="list-group-item list-group-item-action py-2 px-3 shopPickupItem small" data-id="'+p.id+'">';html+="<strong>"+p.name+"</strong>";if(p.address||p.distance){html+='<br><span class="text-muted">'+(p.address||"");if(p.distance){html+=" <em>("+p.distance+" km)</em>"}html+="</span>"}
1html+="</button>"}html+="</div>";$list.html(html);var $target=aPreselectedId?$list.find('[data-id="'+aPreselectedId+'"]'):[];if(!$target.length){$target=$list.find(".shopPickupItem").first()}that._selectPickupPoint($target.data("id"),$target)}catch(e){$list.html('<p class="text-danger small mb-0">'+t.dpdPickupError+"</p>")}};xhr.send(JSON.stringify({address:(addressObj.shipping.street1||"")+" "+(addressObj.shipping.street2||""),postalCode:addressObj.shipping.code,city:addressObj.shipping.town||"",country:addressObj.shipping.country||"fr"}))};ShopClass.prototype._selectPickupPoint=function(aId,$btn){var cartObj=this._getCartObject();cartObj.shippingId=aId;this._setCartObject(cartObj);$("#shopPickupList .shopPickupItem").removeClass("shopPickupItem-selected");$btn.addClass("shopPickupItem-selected");$("#shopPickupList .shop-pickup-required").remove()};ShopClass.prototype._setPaymentEnabled=function(aEnabled){$("#shopPaymentBlock, #shopTestMyAirBlock").find("button.payment-button").prop("disabled",!aEnabled);$("#paypal-button-container").css({"pointer-events":aEnabled?"auto":"none",opacity:aEnabled?"1":"0.5"})};ShopClass.prototype._updateAlmaVisibility=function(){var country;if($(".shopAlmaItem").length===0){return}country=this._getCartObject().country;if(country==="fr"||country==="gf"){$(".shopAlmaItem").parent().show()}else{$(".shopAlmaItem").parent().hide()}};ShopClass.prototype._updatePaymentBlockVisibility=function(){this._updateAlmaVisibility();if(this._hasTestMyAirOnlyInCart()){$("#shopPaymentBlock").collapse("hide");$("#shopTestMyAirBlock").collapse("show");return}$("#shopTestMyAirBlock").collapse("hide");$("#shopPaymentBlock").collapse("show");if(this._hasSensorInCart()){$("#shopSensorWarning").show()}else{$("#shopSensorWarning").hide()}};ShopClass.prototype._sendCheckoutStep=function(aStep,aKey,aParams){var dataObj,prop;if(!this._layerListener){return}if(!this._checkoutStepSentTab){this._checkoutStepSentTab={}}if(this._checkoutStepSentTab[aKey]){return}this._checkoutStepSentTab[aKey]=true;dataObj={cartStep:aStep};if(aParams){for(prop in aParams){if(aParams.hasOwnProperty(prop)){dataObj[prop]=aParams[prop]}}}this._layerListener("checkout_step",dataObj)};ShopClass.prototype._onTermsAccepted=function(){var isValid,cartObj,orderAmount,t=this._t;this._hideCheckoutError();this._collectAddress();isValid=this._checkAddress();if(!isValid){$("#shopTerms").prop("checked",false);$("#shopTermsValidation").text(t.checkRequiredFields).show();this._setPaymentEnabled(false);this._scrollToFirstInvalid();return}$("#shopTermsValidation").hide();cartObj=this._getCartObject();cartObj.shippingService=$("input[name='shopDelivery']:checked").val()||"Colissimo";if(this._cartRequiresColissimo()){cartObj.shippingService="Colissimo";cartObj.shippingId=-1}if(cartObj.shippingService==="DPD_Pickup"&&(!cartObj.shippingId||cartObj.shippingId===-1)){var $plist=$("#shopPickupList");$plist.find(".shop-pickup-required").remove();$plist.show().append('<p class="shop-pickup-required text-danger small mb-0 mt-1">'+t.dpdPickupRequired+"</p>");$("#shopTerms").prop("checked",false);this._setPaymentEnabled(false);this._scrollToElement($plist);return}this._setCartObject(cartObj);this._renderCheckoutSummary();orderAmount=this._normalizeNumber(this._getCartObject().totalTtc||0);if(!(orderAmount>0)){$("#shopTerms").prop("checked",false);$("#shopTermsValidation").text(t.priceNotReady).show();this._setPaymentEnabled(false);return}window.orderProductAmount=orderAmount;window.orderProductLang=this._lang;window.orderProductLanguage=this._language;window.orderProductEmail=this._getEmail();this._updatePaymentBlockVisibility();this._setPaymentEnabled(true);this._sendCheckoutStep(3,"shipping",{shippingTier:cartObj.shippingService})};ShopClass.prototype._hasSensorInCart=function(){var productTab=this._getExpandedProductTab(),ind;for(ind=0;ind<productTab.length;ind+=1){if(productTab[ind].productType==="airobs_01_test"){return true}}return false};ShopClass.prototype._cartNeedsDeposit=function(){var productTab=this._getExpandedProductTab(),ind,productType;for(ind=0;ind<productTab.length;ind+=1){productType=productTab[ind].productType;if(productType==="airobs_01_test"||productType==="sensor_01_laser_egg_2"||productType==="sensor_02_laser_egg_co2"){return true}}return false};ShopClass.prototype._hasTestMyAirOnlyInCart=function(){var productTab=this._getExpandedProductTab(),ind,hasOther=false;for(ind=0;ind<productTab.length;ind+=1){if(productTab[ind].productType!=="airobs_01_test"&&productTab[ind].productType!=="sensor_01_laser_egg_2"&&productTab[ind].productType!=="sensor_02_laser_egg_co2"){hasOther=true}}return!hasOther&&productTab.length>0};ShopClass.prototype._processCoupon=function(){if(!$("#shopCoupon").val()&&$("#shopCoupon_mob").val()){$("#shopCoupon").val($("#shopCoupon_mob").val())}var coupon=($("#shopCoupon").val()||"").trim();var couponLower=coupon.toLowerCase();var cartObj=this._getCartObject();var couponKey=this._identifyCartCoupon(coupon);if(this._pricingObj.coupons.hasOwnProperty(couponKey)){cartObj.coupon=couponLower;this._setCartObject(cartObj);$("#shopCoupon, #shopCoupon_mob").removeClass("is-invalid");var cpPct=(this._pricingObj.coupons[couponKey]||{}).percent;var cpMsg=cpPct?"â -"+cpPct+"%":"â";$("#shopCouponMsg, #shopCouponMsg_mob").text(cpMsg).removeClass("text-danger").addClass("text-success").show();this._renderCheckoutSummary()}else if(!coupon){cartObj.coupon="";this._setCartObject(cartObj);this._renderCheckoutSummary()}else{$("#shopCoupon, #shopCoupon_mob").addClass("is-invalid");$("#shopCouponMsg, #shopCouponMsg_mob").text("â").addClass("text-danger").removeClass("text-success").show()}};ShopClass.prototype._checkReturningCustomer=function(){var that=this,t=this._t;var email=($("#shop_email").val()||"").trim();if(!email||!/\S+@\S+\.\S+/.test(email)){return}this._callTeqOff2("shopCustomer.php",{email:email}
1,function(aResult){if(aResult.status!==0||!aResult.data||!aResult.data.found){$("#shopEmailFeedback").hide();var cartObj=that._getCartObject();if(cartObj.loyalty){cartObj.loyalty=false;cartObj.godFather="";that._setCartObject(cartObj);$("#shopGodfather, #shopGodfather_mob").val("").removeClass("is-invalid");$("#shopGodfatherMsg, #shopGodfatherMsg_mob").hide();$("[name='shopDiscountType'][value='godfather']").prop("checked",true);$("#shopGodfatherGroup, #shopGodfatherGroup_mob").show();$("#shopCouponGroup, #shopCouponGroup_mob").hide()}that._processGodFather();return}var data=aResult.data,s=data.shipping||{};$("#shopEmailFeedback").text(t.returningCustomer).show();var nameParts=(s.name||"").trim().split(" ");var firstname=nameParts.shift()||"";var lastname=nameParts.join(" ");$("#shop_firstname_shipping").val(firstname);$("#shop_lastname_shipping").val(lastname);$("#shop_street1_shipping").val(s.street1||"");$("#shop_street2_shipping").val(s.street2||"");$("#shop_code_shipping").val(s.code||"");$("#shop_town_shipping").val(s.town||"");$("#shop_phone_shipping").val(s.phone?that._normalizePhone(s.phone):"");$("#shop_note_shipping").val(s.note||"");if(!data.isSameAddress&&data.billing){var b=data.billing;var bParts=(b.name||"").trim().split(" ");var bFirst=bParts.shift()||"";var bLast=bParts.join(" ");$("#shopShippingSpecific").prop("checked",false).trigger("change");$("#shop_firstname_billing").val(bFirst);$("#shop_lastname_billing").val(bLast);$("#shop_street1_billing").val(b.street1||"");$("#shop_code_billing").val(b.code||"");$("#shop_town_billing").val(b.town||"");if(b.country){$("#shop_country_billing").val(b.country)}$("#shop_email_billing").val(b.email||$("#shop_email").val())}var cartObj=that._getCartObject();if(!cartObj.coupon){$("[name='shopDiscountType'][value='godfather']").prop("checked",true);$("#shopGodfatherGroup, #shopGodfatherGroup_mob").show();$("#shopCouponGroup, #shopCouponGroup_mob").hide();cartObj.godFather=email;cartObj.loyalty=true;that._setCartObject(cartObj);$("#shopGodfather, #shopGodfather_mob").val(email);$("#shopGodfatherMsg, #shopGodfatherMsg_mob").text("â -15%").removeClass("text-danger").addClass("text-success").show();that._renderCheckoutSummary()}var newCountry=s.country?s.country.toLowerCase():null;var cCart=that._getCartObject();if(newCountry&&newCountry!==cCart.country){var areaOrg=that._getPricingArea(cCart.country);var areaNew=that._getPricingArea(newCountry);cCart.country=newCountry;that._setCartObject(cCart);window._internalCountry=newCountry;that._setPricing();if(areaOrg!==areaNew){that._setPricingAsStandard()}that._updateCatalogPrices();$("#shopSlideCountry").val(newCountry);var newCountryName=that._getCountryName(newCountry);$("#shop_country_shipping").val(newCountryName).data("iso",newCountry);if($("#shopShippingSpecific").is(":checked")){$("#shop_country_billing").val(newCountry)}that._updatePhonePrefix()}that._collectAddress();that._checkAddress();if(data.delivery&&data.delivery.service){var dCart=that._getCartObject();dCart.shippingService=data.delivery.service;dCart.shippingId=-1;that._setCartObject(dCart)}that._updateDeliveryOptions();if(!that._colissimoOnly&&data.delivery&&data.delivery.service==="DPD_Pickup"){that._fetchPickupPoints(data.delivery.pickupId||null)}that._renderCheckoutSummary()})};ShopClass.prototype._processGodFather=function(){var that=this;if(!$("#shopGodfather").val()&&$("#shopGodfather_mob").val()){$("#shopGodfather").val($("#shopGodfather_mob").val())}var godfather=($("#shopGodfather").val()||"").trim();var customerEmail=($("#shop_email").val()||"").trim().toLowerCase();var cartObj=this._getCartObject();cartObj.loyalty=false;if(!godfather){cartObj.godFather="";this._setCartObject(cartObj);$("#shopGodfather, #shopGodfather_mob").removeClass("is-invalid");$("#shopGodfatherMsg, #shopGodfatherMsg_mob").hide();this._renderCheckoutSummary();return}if(!/\S+@\S+\.\S+/.test(godfather)){$("#shopGodfather, #shopGodfather_mob").addClass("is-invalid");$("#shopGodfatherMsg, #shopGodfatherMsg_mob").text("â").addClass("text-danger").removeClass("text-success").show();return}if(customerEmail&&godfather.toLowerCase()===customerEmail){cartObj.loyalty=true;cartObj.godFather="";this._setCartObject(cartObj);$("#shopGodfather, #shopGodfather_mob").removeClass("is-invalid");$("#shopGodfatherMsg, #shopGodfatherMsg_mob").text("â -15%").removeClass("text-danger").addClass("text-success").show();this._renderCheckoutSummary();return}$("#shopGodfatherMsg, #shopGodfatherMsg_mob").text("â¦").removeClass("text-danger text-success").show();this._callTeqOff2("webUtil.php",{email:godfather},function(aResult){if(aResult.status===0){cartObj.godFather=godfather;that._setCartObject(cartObj);$("#shopGodfather, #shopGodfather_mob").removeClass("is-invalid");$("#shopGodfatherMsg, #shopGodfatherMsg_mob").text("â -5%").removeClass("text-danger").addClass("text-success").show();that._renderCheckoutSummary()}else{cartObj.godFather="";that._setCartObject(cartObj);$("#shopGodfather, #shopGodfather_mob").addClass("is-invalid");$("#shopGodfatherMsg, #shopGodfatherMsg_mob").text("â").addClass("text-danger").removeClass("text-success").show();that._renderCheckoutSummary()}})};ShopClass.prototype._buildPayment=function(aPaymentMethod,aTransactionId,aTransactionState,aTransactionPercent,aIsSensor){var cartObj=this._getCartObject(),addressObj=this._getAddressObject();var name="",nameSep="",commissionObj,idDistributors,orderObj,indProduct,priceObj,shipping;if(addressObj.shipping.firstname){name+=nameSep+addressObj.shipping.firstname;nameSep=" "}if(addressObj.shipping.lastname){name+=nameSep+addressObj.shipping.lastname}var computedCart=this._computeCartPrices(true);var usedCoupon=computedCart.isCouponApplied?cartObj.coupon:"";var usedGodFather=computedCart.isCouponApplied?"":cartObj.godFather;commissionObj=this._getCommissionPrice(usedCoupon);idDistributors="Teqoya Web";orderObj={idDistributors:idDistributors,paymentMethod:aPaymentMethod,transactionId:aTransactionId,transactionMode:"direct",transactionState:aTransactionState,transactionPercent:aTransactionPercent,tvaReference:cartObj.tvaReference||"",importUrl:"",coupon:usedCoupon,commission:commissionObj,amount:window.orderProductAmount,godFather:usedGodFather,language:this._lang,productTab:[],packTab:[],shippingDirect:false,shippingService:cartObj.shippingService,shippingId:cartObj.shippingId,shipping:{nameOriginal:name,streetOriginal:addressObj.shipping.street1+(addressObj.shipping.street2?"\n"+addressObj.shipping.street2:""),code:addressObj.shipping.code,town:addressObj.shipping.town,country:addressObj.shipping.country,deliveryPhone:addressObj.shipping.phone,email:addressObj.shipping.email,addressNote:addressObj.shipping.note}};if(addressObj.isShippingSpecific){var bname="";if(addressObj.billing.firstname){bname+=addressObj.billing.firstname+" "}if(addressObj.billing.lastname){bname+=addressObj.billing.lastname}orderObj.billing={nameOriginal:bname.trim(),streetOriginal:addressObj.billing.street1+(addressObj.billing.street2?"\n"+addressObj.billing.street2:""),code:addressObj.billing.code,town:addressObj.billing.town,country:addressObj.billing.country,deliveryPhone:addressObj.billing.phone,email:addressObj.billing.email,addressNote:addressObj.billing.note}}
1var computedByLine={};for(var cpi=0;cpi<computedCart.products.length;cpi++){computedByLine[computedCart.products[cpi].index]=computedCart.products[cpi]}for(indProduct=0;indProduct<cartObj.productTab.length;indProduct+=1){var pt=cartObj.productTab[indProduct];priceObj=this._getUnitPrice(pt.productType,cartObj.coupon,cartObj.godFather,cartObj.loyalty||this._isSuperGodfather(cartObj.godFather),pt.contentTab);var computed=computedByLine[indProduct];var effectiveUnitTtc=computed?computed.nbProductTtc/pt.number:pt.productTtc||priceObj.value;shipping=computed?computed.shippingTtc:this._getShippingTtc(pt.productType,cartObj.country);if(!aIsSensor&&this._isPack(pt.productType)){orderObj.packTab.push({packType:pt.productType,number:pt.number,contentTab:this._resolvePackContent(pt.productType,pt.contentTab).map(function(aContent){return{productType:this._pricingObj.mapping[aContent.productType]||aContent.productType,number:aContent.number}},this),referenceTtc:pt.referenceTtc||priceObj.reference,unitTtc:effectiveUnitTtc})}var lineTab=this._splitPackLine(pt,priceObj,effectiveUnitTtc,shipping);for(var indLine=0;indLine<lineTab.length;indLine+=1){var line=lineTab[indLine];if(aIsSensor&&line.productType!=="teqsensor_01_s1"&&line.productType!=="sensor_01_laser_egg_2"&&line.productType!=="sensor_02_laser_egg_co2"){continue}if(!aIsSensor&&(line.productType==="teqsensor_01_s1"||line.productType==="sensor_01_laser_egg_2"||line.productType==="sensor_02_laser_egg_co2")&&pt.referenceTtc<=0){continue}if(line.productType==="airobs_01_test"){continue}orderObj.productTab.push({productType:this._pricingObj.mapping[line.productType]||line.productType,productCategory:this._pricingObj.prefix[line.productType]||"",number:line.number,pricing:"",unit:line.unit,subtotal:line.subtotal,shipping:line.shipping,total:line.subtotal+line.shipping,mode:"excluded",tax:cartObj.ttlTaxRate||0})}}orderObj.productTab=this._mergeOrderLineTab(orderObj.productTab);return orderObj};ShopClass.prototype._mergeOrderLineTab=function(aLineTab){var mergedTab=[],indLine,indMerged,line,merged,number;for(indLine=0;indLine<aLineTab.length;indLine+=1){line=aLineTab[indLine];merged=null;for(indMerged=0;indMerged<mergedTab.length;indMerged+=1){if(mergedTab[indMerged].productType===line.productType){merged=mergedTab[indMerged];break}}if(!merged){mergedTab.push(line)}else{number=merged.number+line.number;merged.unit=(merged.unit*merged.number+line.unit*line.number)/number;merged.subtotal=(merged.subtotal*merged.number+line.subtotal*line.number)/number;merged.shipping=(merged.shipping*merged.number+line.shipping*line.number)/number;merged.total=merged.subtotal+merged.shipping;merged.number=number}}return mergedTab};ShopClass.prototype._splitPackLine=function(aCartLine,aPriceObj,aUnitTtc,aShippingTtc){var contentTab,lineTab,weightTab,ttlWeight,indContent,componentRef,ratio;contentTab=this._resolvePackContent(aCartLine.productType,aCartLine.contentTab);if(!contentTab){return[{productType:aCartLine.productType,number:aCartLine.number,unit:aCartLine.referenceTtc||aPriceObj.reference,subtotal:aUnitTtc,shipping:aShippingTtc}]}weightTab=[];ttlWeight=0;for(indContent=0;indContent<contentTab.length;indContent+=1){componentRef=this._getUnitPrice(contentTab[indContent].productType,"","").reference||0;weightTab.push(componentRef*contentTab[indContent].number);ttlWeight+=componentRef*contentTab[indContent].number}lineTab=[];for(indContent=0;indContent<contentTab.length;indContent+=1){ratio=ttlWeight?weightTab[indContent]/ttlWeight:1/contentTab.length;lineTab.push({productType:contentTab[indContent].productType,number:contentTab[indContent].number*aCartLine.number,unit:this._getUnitPrice(contentTab[indContent].productType,"","").reference,subtotal:aUnitTtc*ratio/contentTab[indContent].number,shipping:aShippingTtc*ratio/contentTab[indContent].number})}return lineTab};ShopClass.prototype._getTeqOff2BaseUrl=function(){if(window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"){return"http://localhost/teqOff2"}return aSiteConfigObj.teqOff2BaseUrl};ShopClass.prototype._callTeqOff2=function(aEndpoint,aPayload,aCallback){var url=this._getTeqOff2BaseUrl()+"/api/v2/"+aEndpoint;var xhr=new XMLHttpRequest;xhr.open("POST",url,true);xhr.setRequestHeader("Content-Type","application/json");
1xhr.setRequestHeader("X-Api-Key",aSiteConfigObj.teqOff2ApiKey);xhr.onreadystatechange=function(){if(xhr.readyState!==4){return}if(xhr.status===200){try{var resp=JSON.parse(xhr.responseText);aCallback({status:0,data:resp.data})}catch(e){aCallback({status:1})}}else{aCallback({status:xhr.status||1})}};xhr.send(JSON.stringify(aPayload))};ShopClass.prototype.recordPayment=function(aPaymentMethod,aTransactionId,aTransactionState,aTransactionPercent){var that=this;that._hideCheckoutError();that._waitingScreen.startWaiting();that._sendCheckoutStep(5,"payment_"+aPaymentMethod,{paymentType:aPaymentMethod});if($("#shopNewsletter").is(":checked")){var email=that._getEmail();if(email){var wsObj=that._restServiceObj.getWebServiceObj();wsObj.sendRequest(null,window._internalBaseUrl+"/engine/tools/newsletter.php?klaviyoOptin","POST",{email:email,lang:that._lang});if(that._layerListener){that._layerListener("subscribe_newsletter",{email:email})}}}var cartObj=that._getCartObject(),hasSensor=that._cartNeedsDeposit();var orderObj=that._buildPayment(aPaymentMethod,aTransactionId,aTransactionState,aTransactionPercent,false);orderObj=that._setUserStatistics(orderObj);if(aPaymentMethod==="stripe"||aPaymentMethod==="alma"){var locParts=window.location.href.split("#")[0].split("?")[0].split("/");if(!locParts[locParts.length-1]){locParts.pop();locParts.pop()}else{locParts.pop()}var locBase=locParts.join("/");orderObj.successUrl=locBase+"/"+(hasSensor?"loan":"confirmation")+"/";orderObj.cancelUrl=locBase+"/shop/"}var endpointMap={bank_transfer:"shoptransfer.php",stripe:"shopstripe.php",paypal:"shoppaypal.php",alma:"shopalma.php"};var endpoint=endpointMap[aPaymentMethod]||"shop"+aPaymentMethod+".php";that._callTeqOff2(endpoint,orderObj,function(aResult){if(aResult.status!==0||!aResult.data||!aResult.data.idOrders){that._showCheckoutError();that._waitingScreen.stopWaiting();return}that._logEvent("order",that._buildPayment(aPaymentMethod,aTransactionId,aTransactionState,aTransactionPercent,false),aResult.data.idOrders);that._setIdOrders(aResult.data.idOrders,window.orderProductAmount,aPaymentMethod,cartObj.coupon,false);localStorage.setItem("teqoWeb_emailFailed",aResult.data.emailFailed?"1":"");if(aResult.data.redirectUrl){that._postRecordCallback=null;window.location.href=aResult.data.redirectUrl;return}if(that._postRecordCallback){that._postRecordCallback(aResult.data.idOrders,hasSensor?"loan":"confirmation",that._buildPayment(aPaymentMethod,aTransactionId,aTransactionState,aTransactionPercent,false))}else{window.location=that._baseUrl+(hasSensor?"/loan/":"/confirmation/")}})};ShopClass.prototype.setPostRecordCallback=function(aCallback){this._postRecordCallback=aCallback};ShopClass.prototype._hideCheckoutError=function(){$("#shopCheckoutError").text(this._t.checkoutError).hide()};ShopClass.prototype._scrollToElement=function($aElement){var top,id;if(!$aElement||$aElement.length===0||!$aElement.offset()){return}id=$aElement.attr("id");if(id&&typeof window.scrolltoAnchor==="function"){window.scrolltoAnchor(id);return}top=parseInt($aElement.offset().top-60,10);window.scrollTo(0,top<0?0:top)};ShopClass.prototype._scrollToFirstInvalid=function(){this._scrollToElement($("#shopCheckout").find(".is-invalid").first())};ShopClass.prototype._showCheckoutError=function(aMessage){var $error=$("#shopCheckoutError");if(aMessage){$error.text(aMessage)}$error.show();this._scrollToElement($error)};ShopClass.prototype.preparePaypalOrder=function(aOnSuccess,aOnError){var that=this,orderObj,signature;if(!$("#shopTerms").is(":checked")){$("#shopTermsValidation").show();that._scrollToElement($("#shopTerms"));aOnError();return}that._sendCheckoutStep(5,"payment_paypal",{paymentType:"paypal"});that._hideCheckoutError();orderObj=that._setUserStatistics(that._buildPayment("paypal","","waiting",0,false));signature=JSON.stringify(orderObj);if(that._paypalPendingIdOrders&&that._paypalPendingSignature===signature){aOnSuccess(that._paypalPendingIdOrders);return}that._callTeqOff2("shoppaypal.php",orderObj,function(aResult){if(aResult.status===0&&aResult.data&&aResult.data.idOrders){that._paypalPendingIdOrders=aResult.data.idOrders;that._paypalPendingSignature=signature;that._setIdOrders(aResult.data.idOrders,window.orderProductAmount,"paypal",that._getCartObject().coupon,false);aOnSuccess(aResult.data.idOrders)}else{console.error("PayPal: failed to create the pending order",aResult);that._showCheckoutError();aOnError()}})};ShopClass.prototype.confirmPaypalPayment=function(aIdOrders,aTransactionId,aDetail
1s){var that=this,hasSensor=that._cartNeedsDeposit();that._waitingScreen.startWaiting();that._callTeqOff2("shoppaypal_confirm.php",{event:"capture",idOrders:aIdOrders,transactionId:aTransactionId,language:that._lang,amount:window.orderProductAmount,details:aDetails},function(aResult){if(aResult.status!==0){console.error("PayPal: capture confirmation failed for order "+aIdOrders,aResult);that._waitingScreen.stopWaiting();that._showCheckoutError(that._t.paidError+" "+aIdOrders);return}that._paypalPendingIdOrders=null;that._paypalPendingSignature=null;that._logEvent("order",that._buildPayment("paypal",aTransactionId,"completed",100,false),aIdOrders);that._setIdOrders(aIdOrders,window.orderProductAmount,"paypal",that._getCartObject().coupon,false);localStorage.setItem("teqoWeb_emailFailed",aResult.data&&aResult.data.emailFailed?"1":"");if(that._postRecordCallback){that._postRecordCallback(aIdOrders,hasSensor?"loan":"confirmation",that._buildPayment("paypal",aTransactionId,"completed",100,false))}else{window.location=that._baseUrl+(hasSensor?"/loan/":"/confirmation/")}})};ShopClass.prototype.logPaypalEvent=function(aEvent,aInfo){if(!this._paypalPendingIdOrders){return}this._callTeqOff2("shoppaypal_confirm.php",{event:aEvent,idOrders:this._paypalPendingIdOrders,language:this._lang,amount:window.orderProductAmount,details:aInfo},function(){return})};ShopClass.prototype.checkDeposit=function(aCallback){var idOrders;if($("#orderProductLoan").css("display")==="block"){aCallback();return}$("#deposit-order-identifier").removeClass("is-invalid");idOrders=$("#deposit-order-identifier").val();if(!idOrders){$("#deposit-order-identifier").addClass("is-invalid");this._waitingScreen.stopWaiting();return}coreObj.queue([function(aNext){this._restServiceObj.get(aNext,aSiteConfigObj.useCrosser,aSiteConfigObj.orderCheckDepositUrl,idOrders,[],{},{})},function(aNext,aResult){if(aResult.status===0&&aResult.data.contentTab.length>0){this._setIdOrders(idOrders,0,"unknown","",false);aCallback()}else{$("#deposit-order-identifier").addClass("is-invalid");this._waitingScreen.stopWaiting()}}],this)};ShopClass.prototype.recordDeposit=function(aPaymentMethod,aTransactionId,aTransactionState,aTransactionPercent,usedForTestMyAir){var that=this;$("#loanError").hide();coreObj.queue([function(aNext){var orderObj;that._waitingScreen.startWaiting();orderObj={idOrders:that._getIdOrders(),productType:"TeqSensor-01-s1",pricings:"TeqSensor-01-ANY-loan",productTypeSup:"AirObs-01-test",pricingsSup:usedForTestMyAir?"AirObs-01-ANY":"AirObs-01-ANY-Free",paymentMethod:aPaymentMethod,transactionId:aTransactionId,transactionMode:"direct",transactionState:aTransactionState,transactionPercent:aTransactionPercent,usedForTestMyAir:usedForTestMyAir};that._restServiceObj.add(aNext,aSiteConfigObj.useCrosser,aSiteConfigObj.orderDepositUrl,orderObj)},function(aNext,aResult){if(aResult.status===0){that._resetCartObject();if(that._postRecordCallback){that._postRecordCallback(aResult.data.contentTab[0].idOrders,aResult.data.contentTab[0].user,"confirmation")}else{window.location=that._baseUrl+"/confirmation/"}}else{$("#loanError").show()}that._waitingScreen.stopWaiting()}],that)};ShopClass.prototype.prepareDeposit=function(aCallback){var that=this,orderObj;that._hideCheckoutError();coreObj.queue([function(aNext){that._waitingScreen.startWaiting();orderObj=that._buildPayment("swikly","unknown","waiting",0,false);orderObj=that._setUserStatistics(orderObj);that._restServiceObj.add(aNext,aSiteConfigObj.useCrosser,aSiteConfigObj.orderRecordUrl,orderObj)},function(aNext,aResult){if(aResult.status===0){that._setIdOrders(aResult.data.contentTab[0].idOrders,orderObj.amount,"swikly","",false);that._logEvent("order",orderObj,aResult.data.contentTab[0].idOrders);that._restServiceObj.get(aNext,aSiteConfigObj.useCrosser,aSiteConfigObj.orderCheckDepositUrl,aResult.data.contentTab[0].idOrders,[],{},{})}else{that._showCheckoutError();that._waitingScreen.stopWaiting()}},function(aNext,aResult){if(aResult.status===0&&aResult.data.contentTab.length>0){aCallback()}else{$("#deposit-order-identifier").addClass("is-invalid");
1that._waitingScreen.stopWaiting()}}],that)};ShopClass.prototype._logEvent=function(aEventType,aOrderObj,aIdOrders,aCountry){var eventObj={},email="",webServiceObj;if(aSiteConfigObj.webServiceMode!=="home"){return}if(aOrderObj){if(aOrderObj.billing&&aOrderObj.billing.email){email=aOrderObj.billing.email}else if(aOrderObj.shipping&&aOrderObj.shipping.email){email=aOrderObj.shipping.email}eventObj.email=email}if(aIdOrders){eventObj.idOrders=aIdOrders}if(aCountry){eventObj.country=aCountry}if(this._restServiceObj){webServiceObj=this._restServiceObj.getWebServiceObj();webServiceObj.sendRequest(null,window._internalBaseUrl+"/events.php?"+aEventType,"POST",eventObj)}};ShopClass.prototype._initConfirmationPage=function(){var idOrders=this._getIdOrders();if(!idOrders){return}this._resetCartObject();this._updateProductQuantity();$("#orderProductIdentifier").html(idOrders);if(this._getPaymentMethod()==="bank_transfer"){$("#orderProductTransfer").show()}if(localStorage.getItem("teqoWeb_emailFailed")==="1"){$("#orderEmailWarning").show()}};ShopClass.prototype._processContact=function(){var isValid,name,email,message,emailRegExp;isValid=true;name=$("#contactName").val();email=$("#contactEmail").val();message=$("#contactMessage").val();if(name||email||message){if(name){$("#contactName").removeClass("is-invalid")}else{isValid=false;$("#contactName").addClass("is-invalid")}emailRegExp=new RegExp(/\S+@\S+\.\S+/,"");if(email&&emailRegExp.test(email)){$("#contactEmail").removeClass("is-invalid")}else{isValid=false;$("#contactEmail").addClass("is-invalid")}if(message){$("#contactMessage").removeClass("is-invalid")}else{isValid=false;$("#contactMessage").addClass("is-invalid")}if(isValid){if(!this._restServiceObj){this._restServiceObj=new RestServiceClass(window._internalBaseUrl,aAppConfig.server.baseUrl,aAppConfig.server.apiVersion,"json")}coreObj.queue([function(aNext){this._restServiceObj.add(aNext,aSiteConfigObj.useCrosser,aSiteConfigObj.websiteContact,humanCheckObj.apply("contact",{name:name,email:email,message:message},"contactFax"))},function(aNext,aResult){humanCheckObj.renew("contact");if(aResult.status===0){$("#contactModal").modal("show")}else{$("#errorModal").modal("show");$("#errorModalPricing").hide();$("#errorModalMessage").show()}}],this)}}};var shopObj=new ShopClass;$(function(){shopObj._injectStyles();shopObj._injectSlideCart();shopObj._setupCartIconListeners();var pageId=window._internalPageId;if(pageId!=="cart"&&pageId!=="checkout"&&pageId!=="directaccess"&&pageId!=="loan"&&pageId!=="cashdesk"){shopObj._setupAddToCartListeners()}shopObj._updateProductQuantity();shopObj._updateCatalogPrices();if($("#contactButton").length>0){humanCheckObj.arm("contact","contactTurnstile");$("#contactButton").on("click",shopObj._processContact.bind(shopObj))}window.addToShopCart=function(aProductType,aNumber){shopObj.addToCart(aProductType,aNumber)};if(window._internalPageId==="shop"){shopObj._restServiceObj=new RestServiceClass(window._internalBaseUrl,aAppConfig.server.baseUrl,aAppConfig.server.apiVersion,"json");shopObj._injectWaitingScreen();shopObj._waitingScreen=new WaitingScreenClass;shopObj._initCheckoutPage()}if(window._internalPageId==="confirmation"){shopObj._initConfirmationPage()}});window.updateFromCart=window.updateFromCart||function(aProductType,aIndProduct){var qty=parseInt($("#orderProductQuantity"+aIndProduct).val(),10);shopObj._updateCartItem(aIndProduct,qty)};window.removeFromCart=window.removeFromCart||function(aProductType,aQty){shopObj._removeCartItem(aProductType,aQty||1)};window.setPackContent=function(aPackType,aIndex,aProductType){$("#packContent_"+aPackType+"_"+aIndex).val(aProductType);window.switchClass("product-pack-image-"+aPackType+"-"+aIndex,"product-pack-image-"+aPackType+"-"+aIndex+"-"+aProductType);shopObj._getProductCatalog(aPackType);return false};function resolveProductVariant(aScope,aCategory,aDimension,aValue){var variantObj=productVariantTab[aCategory],keyTab=[],indDimension;if(!variantObj){return""}$("#productVariant_"+aScope+"_"+aDimension).val(aValue);for(indDimension=0;indDimension<variantObj.dimensionTab.length;indDimension+=1){keyTab.push($("#productVariant_"+aScope+"_"+variantObj.dimensionTab[indDimension]).val())}return variantObj.typeTab[keyTab.join("|")]||""}window.setProductVariant=function(aCategory,aDimension,aValue){var productType=resolveProductVariant(aCategory,aCategory,aDimension,aValue);if(!productType){return false}$("#orderProductType_"+aCategory).val(productType);window.switchClass("product-color-image-"+aCategory,"product-color-image-"+aCategory+"-"+productType);shopObj._getProductCatalog(productType,aCategory);window.switchClass(aCategory+"Type",productType);if(variantThumbTab[aCategory]&&variantThumbTab[aCategory][productType]&&typeof window.switchThumb==="function"){window.switchThumb(variantThumbTab[aCategory][productType])}return false};window.setPackVariant=function(aPackType,aIndex,aCategory,aDimension,aValue){var scope=aPackType+"_"+aIndex;var productType=resolveProductVariant(scope,aCategory,aDimension,aValue);if(!productType){return false}return window.setPackContent(aPackType,aIndex,productType)};window.updateFromShopCart=function(aProductType,aIndProduct){var qty=parseInt($("#orderProductQuantity"+aIndProduct).val(),10);shopObj._updateCartItem(aIndProduct,qty);shopObj._renderSlideCart();if(window._internalPageId==="shop"){shopObj._renderCheckoutSummary()}};window.removeFromShopCart=function(aProductType,aQty){shopObj._removeCartItem(aProductType,aQty||1);shopObj._renderSlideCart();if(window._internalPageId==="shop"){shopObj._renderCheckoutSummary()}};return shopObj});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.