document.w=window"+n+'>'),i.close(),r=i.w.frames[0].document,e=r.createElement("div")}catch(t){e=s.createElement("div"),r=s.body}var c=function(a){return function(){var s=Array.prototype.slice.call(arguments,0);s.unshift(e),r.appendChild(e),e.addBehavior("#default#userData"),e.load(o);var n=a.apply(t,s);return r.removeChild(e),n}},l=new RegExp("[!\"#$%&'()*+,/\\\\:;<=>?@[\\]^`{|}~]","g"),d=function(e){return e.replace(/^d/,"___$&").replace(l,"___")};t.set=c(function(e,a,s){return a=d(a),void 0===s?t.remove(a):(e.setAttribute(a,t.serialize(s)),e.save(o),s)}),t.get=c(function(e,a,s){a=d(a);var o=t.deserialize(e.getAttribute(a));return void 0===o?s:o}),t.remove=c(function(e,t){t=d(t),e.removeAttribute(t),e.save(o)}),t.clear=c(function(e){var t=e.XMLDocument.documentElement.attributes;e.load(o);for(var a=t.length-1;a>=0;a--)e.removeAttribute(t[a].name);e.save(o)}),t.getAll=function(e){var a={};return t.forEach(function(e,t){a[e]=t}),a},t.forEach=c(function(e,a){for(var s,o=e.XMLDocument.documentElement.attributes,n=0;s=o[n];++n)a(s.name,t.deserialize(e.getAttribute(s.name)))})}try{var u="__storejs__";t.set(u,u),t.get(u)!=u&&(t.disabled=!0),t.remove(u)}catch(e){t.disabled=!0}return t.enabled=!t.disabled,vtstore=t}()}(this),function(e,t){e.vtlodash=function(){function e(e,t){var a={};if(a.bindFunction=function(e,t){return function(){try{return e.apply(t,[t])}catch(e){}}},a.stateChange=function(e){try{4==a.request.readyState&&a.callbackFunction(a.request.responseText)}catch(e){}},a.getRequest=function(){try{return window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):!!window.XMLHttpRequest&&new XMLHttpRequest}catch(e){}},a.postBody=arguments[2]||"",a.callbackFunction=t,a.url=e,a.request=a.getRequest(),a.request)try{var s=a.request;s.onreadystatechange=a.bindFunction(a.stateChange,a),""!==a.postBody?(s.open("POST",e,!0),s.setRequestHeader("X-Requested-With","XMLHttpRequest"),s.setRequestHeader("Content-type","application/x-www-form-urlencoded")):s.open("GET",e,!0),s.send(a.postBody)}catch(e){}}var t=function(e){return p("Object",e)&&p("Array",e)&&p("String",e)&&!s(e.splice)?!Object.keys(e).length:!o(e)},a=function(e){return void 0===e},s=function(e){var t={};return e&&"[object Function]"===t.toString.call(e)},o=function(e){if(null==e)return 0;try{return p("Array",e)?e.length:Object.keys(e).length}catch(e){return 0}},n=function(e){return null===e},r=function(e){return p("Object",e)},i=function(e){return p("Array",e)},c=function(e){return p("Boolean",e)},l=function(e){return p("Number",e)},d=function(e){return p("String",e)},u=function(e){return p("Arguments",e)},p=function(e,t){var a=Object.prototype.toString.call(t).slice(8,-1);return void 0!==t&&null!==t&&a===e},b=function(e){return[].slice.call(arguments,1).forEach(function(t){var a;for(a in t)a in e&&p("Array",e[a])?e[a]=e[a].concat(t[a]):a in e&&p("Object",e[a])?e[a]=b(e[a],t[a]):e[a]=t[a]}),e},m=function(e,t){for(var s in e)e.hasOwnProperty(s)&&!a(t[s])&&(p("Object",e[s])&&p("Object",t[s])?e[s]=m(e[s],t[s]):e[s]=t[s]);return e};return{isObject:r,isArray:i,merge:b,overwrite:m,size:o,isNull:n,isNumber:l,isBoolean:c,isString:d,isFunction:s,isUndefined:a,isArguments:u,isEmpty:t,request:e}}()}(this),window._vtsdk&&!window.ignore_vt_stop||(window._vtsdk=function(){var documentAlias=document,windowAlias=window,object={v:"20.1.1",defaults:{tags:{prefix:"**|",suffix:"|**"},cdns:[4],cookieNames:{all:"all",ne:"ne",push:"pushtkn",ts:"ts",shop:"shop",sess:"sess",uId:"user",webid:"webid",debug:"debug",stopevents:"stopevents",campaignsStatus:"cs",condCount:"count",visitor:"info",capping:"cap_",poll:"poll",contentStep:"cstep_",cStatus:"c_"},debug:"info",queueCheckInterval:500,visitorHost:"https://pro.ip-api.com/json/?key=aUoasJP8dMuydUf",visitorCallback:"_vtsdk.tasks.callbackVisitor",eventHost:"https://app.cybba.solutions/event/",eventCallback:"_vtsdk.eventApi.callbackEvent",reccsHost:"https://rec.cybba.solutions/html/",reccsCallbackContent:"_vtsdk.Recommender.callBackRecommenderContent",reccsCallbackTwo:"_vtsdk.Recommender.callBackRecommenderTwo",userHost:"https://app.cybba.solutions/user",userCallback:"_vtsdk.User.callbackUser",backendHost:"https://rec.cybba.solutions/check/",backendCallback:"_vtsdk.Campaign.triggerCampaigns",mcUrl:"https://pages.cybba.solutions/integrations/mailchimp.php",validateUrl:"https://pages.cybba.solutions/tasks/util/jsValidation.php",prefix:"_vt_",monthDuration:2592e6,dayDuration:864e5,shortDuration:36e6,sessionDuration:432e5,expiration:31536e6,nowTime:(new Date).getTime(),nowTimeLocal:(new Date).getTime(),userIndentityParams:["vt_user","email"],userKeyLength:16,loaderGif:"https://files1.cybba.solutions/_assets/images/ajax-loader.gif",stylesheet:"https://files1.cybba.solutions/_assets/vtmarketing.css",idPrefix:"vt-campaign-",push:{widget:"101",token:"https://admin.cybba.solutions/push/token.php"},recc:{className:"vt-campaign",attributeId:"data-vt-id",cIdLength:7},siteEvents:{click:"siteclick",submit:"sitesubmit",display:"sitedisplay",close:"siteclose",referer:"referer"},siteClasses:{close:"vtw-close",click:"vtw-click",overlay:"vtw-bck",toggle:"vtw-toggle",error:"vtw-error",attr:"vtw-attr",attrPrefix:"vta-",classPrefix:"vtw-",submit:"vtw-submit",required:"vtw-required",invalid:"vtw-invalid"}},state:{timeDiff:0,hasLoaded:!1,waitUserRequest:!1,ready:!1,hasUser:!1,pageQueue:[],reccCampaigns:[],calledRecommender:!1,emailToPush:!1,reccTpls:{},campaignsOK:[],pageCampaigns:{},inactivityCampaigns:[]}};return object.defaults.userIndentityParams.push("utm_ra"),object.shop={id:1872,url:"https://www.thecpapshop.com",params:{getVisitorInfo:!0,emailGrab:!0,customJS:"if(document.querySelector('.totals.sub .amount .price')){\n _vteq.push({\n 'event': {\n 'event_name': 'abandonmentTotal',\n 'total' : document.querySelector('.totals.sub .amount .price').innerText.replace(/[^0-9.]+/g,'')\n }\n });\n}\n\n\n/**********************START USER INPUT**************************************/\nwindow.cybData = {};\n\n// Initialization function - allows for customization of basic settings \nwindow.configSettingsCYB = function() {\n// Various Settings\ncybData.allowLogs = true; //True to enable debug logs, does not turn off console.log - this will be on by default in staging\ncybData.cookieStaging = false; //Initalizes cookie staging mode if true and panel will only fire with the cookie - MUST BE FALSE WHEN LIVE (cybbatest=true)\ncybData.pageView = true;\n\n//Trigger Rules for ONSITE\ncybData.exitIntent = true;\ncybData.onClose = false; // true/false\ncybData.deskInactivity = 0; //time in seconds\ncybData.mobileInactivity = 0; //time in seconds\ncybData.mobileExit = false; // true/false - Firings on buttons from browser/OS\ncybData.ABtest = [50, 50]; //Percentage of Firing per agent - sets Cookie \"CYB_AB\" with the index of the agent to be fired\ncybData.sessionMgmt = {\n timesPerSession: 1, // Times the Onsite can fire per session without the cookie dropping\n hours: 2 // Time in hours when the onsite can next fire. \n};\ncybData.triggerSensitivity = 0.75; // delay for mouse to be outside of browser to delay firing panel \ncybData.fireTowardsX = [false, 25, 75]; // True if only firing panel when users goes towards the corners of the browser, % for left hand side, % for right hand side\ncybData.pageForms = []; //add selectors to the array for any forms or elements that should not trigger onsite\ncybData.addCSS = ''; //add minified CSS for custom CSS here\ncybData.copiedText = ''; // Text for Copy Success Message, Default is \"COPIED!\" if left blank \ncybData.SMS = {\n enabled: false,\n campaigns: {\n 'EMAILTEMPLATEID' : \"TEMPLATEID\"\n }\n}\n\ncybData.onsiteCountDown = { //if enabled and onsite has id='onsiteCountDown' (case insensitive)\n enabled: false,\n time: 'Jan 1, 2019 00:00:00', // must be date, number (getTime()), or date string\n closeOnExpiration: false, // Close onsite after time expiration\n expiredText: \"EXPIRED\",\n padNums: true, // shows 09 instead of 9\n hideZeroes: false, // does not show 0m 30s, instead shows 30s\n /* ADD THIS HTML TO ONSITE FOR IT TO WORK PROPERLY\n \n d : \n h : \n m : \n s\n
*/\n}\n\n/** START PROMOBAR DATA **/\ncybData.promoBarData = {\n 'IDHERE': { // One object per promobar\n enabled: false, //True for live, false for off\n position: 'top',\n countDown: { //if enabled and onsite has id='cybCountDown' (case insensitive)\n countDownDate: 'Jan 1, 2019 00:00:00', // must be date, number (getTime()), or date string\n countDownExpirationClose: false, // Close promobar after time expiration\n countDownExpireText: \"EXPIRED\",\n hasLetters: true, // eg. 4d 6h 2m 10s vs 4:6:2:10\n padNums: true, // shows 09 instead of 9\n hideZeroes: false, // does not show 0m 30s, instead shows 30s,\n syncTime: false // Have time synchronized to initial fire\n },\n triggers: {\n onload: {\n enabled: false,\n conditionally: true //false will fire the same one every load, true will check filters first\n },\n afterOE: { //Fires after an Onsite, on next reload\n enabled: false,\n checkFilters: true\n },\n mobile: true,\n onOEClose: {\n enabled: false,\n onsiteId :'', //Fires immediately after X button closed on the onsite\n conditionally: false\n },\n exitIntent: false,\n persist: { // promobar persists after initial fire dependent on filters, also works to just filter after CYBSession cookie exists\n enabled: false,\n conditionally: false //false will fire the same one every load, true will check filters first\n },\n inactivity: 0\n },\n sessionMgmt: {\n enabled: true,\n timesPerSession: 1,\n hours: 2\n },\n stickyNav: {\n hasStickyNav: false,\n selector: ''\n },\n customJS : { //add JS to run on load or close of promobar\n load: \"\",\n close: \"\"\n }\n }\n}\n/** END PROMOBAR DATA **/\n\n//Dynamic Product Data\ncybData.dynamicProductData = {\n history: false, // true for history features\n histObjCYB: { // selectors for product page (history) data - leave blank if not using\n pName: \"\",\n pPrice: \"\",\n pImg: \"\",\n pUrl: window.location.href\n },\n addImageURLPrefix: '', // use if you need to add domain or protocol to URL\n imageIsSource: true, // true if trying to grab image src, false if image is a background image in the CSS\n viewButtonText: 'View Item',\n historyTabText: 'History'\n};\n\n// Lowers Z-Index of any element that is in-front of the onsite\ncybData.resetZIndex = {\n enabled: false,\n selectors: ['']\n};\n\n// V1 Event Load Function\ncybData.onsiteOnload = {\n // for v1 set CAMPAIGNID to all to load for all creatives\n 'CAMPAIGNID': 'JS HERE' //Put in Campaign ID or all here to run JS on campaign display\n};\n\n/** V2 Event Functions\ncybData.eventFunctions = {\n onsiteOnload: {\n // set CAMPAIGNID to all to load for all creatives\n 'CAMPAIGNID' : 'JS HERE' //Put in Campaign ID or 'all' here to run JS on campaign display\n },\n onsiteOnClose: {\n // set CAMPAIGNID to all to load for all creatives\n 'CAMPAIGNID' : 'JS HERE' //Put in Campaign ID or 'all' here to run JS on campaign close\n },\n onsiteOnClick:{\n // set CAMPAIGNID to all to load for all creatives\n 'CAMPAIGNID' : 'JS HERE' //Put in Campaign ID or 'all' here to run JS on campaign CTA click\n }\n}\n**/ \n\n\n\ncybData.forceCSS = {\n 'SELECTOR': 'CSSHERE'\n};\n\ncybData.promptConfig = {\n attribution: true,\n applySessionMgmt: true\n}\n\n//Do not remove or modify this call\ntry {setTimeout(initCYB, 500)} catch (e){console.log(e);}\n}\n//Code all things you need to have excute on load here\nwindow.onloadFunctionsCYB = function(){\nwaitForConfirmCYB();\n}\n\n// Criteria Filters Here\nwindow.cybbaFilters= function(){}\n\n// Promobar Criteria Filters Here\nwindow.promobarFilters= function(){}\n\n/******DO NOT REMOVE********/\nsetTimeout(configSettingsCYB, 1000);\n/******DO NOT REMOVE********/",hasActTriggers:!1,hasSendActTriggers:!1,hasRunningInteractions:!1,hasRunningContent:!1,hasRunningAds:!1,countConditions:[],webidTags:[],getVisitorWebid:!1},agency:108,debug:"none",domain:"thecpapshop.com",campaigns:{},content:{campaigns:{}},adserver:{}},object.User={data:{},context:{vars:{pageType:""}},getLocalUser:function(){var e=object.Helpers.readCookie(object.defaults.prefix+object.defaults.cookieNames.uId);if(null!=e){var t=e.split("_");e={userId:t[0],sessionId:"1",email:"true"==t[2],push:"true"==t[3]},object.Helpers.setCookie(object.defaults.cookieNames.uId,e)}else if(e=object.Helpers.getCookie(object.defaults.cookieNames.uId),vtlodash.isObject(e)){var a=e.userId+"_"+e.sessionId+"_"+e.email+"_"+e.push;object.Helpers.writeCookie(object.defaults.prefix+object.defaults.cookieNames.uId,a,object.defaults.expiration)}return!vtlodash.isEmpty(e)&&e||null},requestUser:function(e){if(!0!==object.state.waitUserRequest){object.Helpers.log("Requesting user data from server..."+JSON.stringify(e),"info"),e=e||{};var t={callback:object.defaults.userCallback,shopId:object.shop.id,oldUserId:object.User.data.userId};e.userId&&(t.userId=e.userId),e.uuid&&(t.uuid=e.uuid),e.email&&object.Helpers.emailIsValid(e.email)?(t.email=e.email,vtlodash.isFunction(windowAlias.btoa)&&(t.email=windowAlias.btoa(t.email))):t.email=null;var a=object.Helpers.addQueryString(object.defaults.userHost,t);object.state.botagent||(object.Helpers.getAsync(a),object.state.waitUserRequest=!0)}},isIdentified:function(){return!!object.User.data.email||!!object.Helpers.emailIsValid(object.User.data.email)},changeUserByEmail:function(e){e=object.Helpers.cleanEmail(e),object.Helpers.emailIsValid(e)&&object.User.requestUser({email:e})},changeUserById:function(e){object.User.data.userId!==""+e&&object.User.requestUser({userId:e})},changeUserByUuid:function(e){object.User.data.uuid!==""+e&&object.User.requestUser({uuid:e})},callbackUser:function(e){object.Helpers.log("Callback User server data","info");var t={sessionId:"1"};if(e.userId&&(t.userId=e.userId),t.email=!!e.email,t.push=!!e.push,e.ts){var a=object.defaults.nowTimeLocal-parseInt(e.ts);a=a>100?a:1,object.Helpers.setCookie(object.defaults.cookieNames.ts,a,object.defaults.dayDuration),object.defaults.nowTime-=a}object.Helpers.setCookie(object.defaults.cookieNames.uId,t),object.User.data.userId!=t.userId&&(object.state._vtolduser=object.User.data.userId),object.User.data=t,object.state.hasUser=!0,object.User.context&&object.User.context.all&&(object.User.context.all.hasEmail=object.User.isIdentified(),object.User.context.all.hasPush=!!object.User.data.push),object.state.loginToPush&&(object.state.eventQueue.push(object.state.loginToPush),delete object.state.loginToPush),object.state.waitUserRequest=!1},activityInit:function(){function e(){var t=Date.now()-object.state.lastActiveTime;t>s&&(object.Campaign.triggerInactivityCampaigns(t/1e3),n+=1),a&&clearInterval(a);var o=s+1e3*n;o<12e4&&(a=windowAlias.setTimeout(e,o))}function t(){object.state.lastActiveTime=Date.now(),n=1,object.shop.params.hasSendActTriggers&&(!object.state.lastCallActive||object.state.lastActiveTime-object.state.lastCallActive>o)&&(object.User.activitySend(n),object.Helpers.log("Sending activity","info"))}if(object.shop.params.hasActTriggers||object.shop.params.hasSendActTriggers){var a,s=5e3,o=12e4;object.state.lastActiveTime=Date.now();var n=0,r=document.documentElement,i=document;!function(){object.Helpers.addEventListener(r,"mousedown",t,!0),object.Helpers.addEventListener(r,"keypress",t,!0),object.Helpers.addEventListener(i,"touchmove",t,!0),object.Helpers.addEventListener(i,"scroll",t,!0),e()}()}},activitySend:function(e){object.Helpers.log("Updating server user activity for check "+e,"info"),object.state.lastCallActive=object.state.lastActiveTime;var t={shopId:object.shop.id,userId:object.User.data.userId,ts:object.state.lastActiveTime},a=object.Helpers.addQueryString(object.defaults.userHost+"/active",t);object.Helpers.getAsync(a)}},object.eventApi={convertEventObject:function(e){var t={type:""};for(var a in e)if(e.hasOwnProperty(a)){t.type=a;var s=vtlodash.isObject(e[a])?e[a]:{};if("confirmation"===a&&vtlodash.size(s)>1)try{t.items=s.items||[],t.generic=s.generic||{},delete s.items,["orderId","total","email"].forEach(function(e,a){s[e]&&(t.generic[e]=s[e])}),s={}}catch(e){object.Helpers.log("Error creating generic for confirmation ","error")}"event"===a&&(t.type="generic",t.generic=e.event,t.generic.event_name&&(t.generic.event_name=object.eventApi.formatEventName(t.generic.event_name)),s={}),"addtocart"!=a&&"viewitem"!=a&&"addtowishlist"!=a||!s.itemId||(s.itemId=(""+s.itemId).trim(),object.setVar("itemId",s.itemId)),"viewcategory"==a&&s.category&&(s.category=(""+s.category).trim().toLowerCase().replace(/\s/g,"_"),object.setVar("category",s.category)),"search"==a&&s.query&&(s.query=(""+s.query.replace(/"/g,"'")).trim(),object.setVar("query",s.query),s.query=s.query.toLowerCase()),"pageview"==a&&s.url&&(s.url=s.url.replace(/"/g,"'"),s.url.indexOf("#")>0&&(s.url=s.url.substring(0,s.url.indexOf("#")))),s.device=object.User.context.session.deviceType,t=vtlodash.merge(t,s),vtlodash.isFunction(windowAlias.btoa)&&t.email&&(t.email=windowAlias.btoa(t.email))}else;return object.state._vtsid&&(t._vtsid=object.state._vtsid),t},formatEventName:function(e){return e.trim().toLowerCase().replace(/\s/g,"_")},sendEventArray:function(e){if(object.Helpers.log("Received array events "+JSON.stringify(e),"info"),vtlodash.isArray(e)&&(ret_array=[],!object.state.botagent)){for(var t=object.Helpers.getCookie(object.defaults.cookieNames.uId),a=0;a=0)return!1;object.state.guardEvents.push(a)}return!0}},object.Helpers={getContextValue:function(e,t,a){var s=object.Helpers.getDeepValue(object.User.context,e);if("all.hasEmail"===e&&(s=object.User.isIdentified()),0==e.indexOf("cookie.")&&(s=object.Helpers.readCookie(e.split(".").splice(1).join("."))),0==e.indexOf("jsvar.")&&(s=object.Helpers.getDeepValue(windowAlias,e.split(".").splice(1).join("."))),"e"==t&&a&&"session.vte."+a.type===e)switch(a.type){case"viewitem":case"addtocart":case"addtowishlist":s=a.itemId?a.itemId:"";break;case"search":s=a.query?a.query:"";break;case"viewcategory":s=a.category?a.category:""}return s},getDeepValue:function(e,t){try{if(!t)return;for(var a=t.split("."),s=0;s]*>([\\s\\S]*?)<\\/"+t+">","i");return result=a.exec(e),vtlodash.isArray(result)&&result.length>0?result[1]:""},addClass:function(e,t){e.className=e.className.split(t).join(" ")+" "+t},removeClass:function(e,t){e.className=e.className.split(t).join(" ")},serializeForm:function(e){var t,a,s=[];if("object"==typeof e&&"FORM"==e.nodeName){var o=e.elements.length;for(i=0;i=0)return!0;switch(op){case"gt":return val1>val2;case"gte":return val1>=val2;case"lt":return val1()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e)},log:function(e,t){var a=(new Date).getTime()-object.defaults.nowTimeLocal;t=t||"info",e=vtlodash.isObject(e)?JSON.stringify(e):e;var s={info:1,warning:2,error:3,none:4};if(s[object.defaults.debug]<=s[t])try{console.log("["+t+"]["+a+"]"+e)}catch(e){}},setAnalyticsSource:function(e,t){if(object.shop.ganalytics&&!0===object.shop.ganalytics.setSource){var a=setInterval(function(){if("undefined"!=typeof ga){try{object.state.ganame=ga.getAll()[0].get("name")+"."}catch(e){object.state.ganame=""}ga(object.state.ganame+"send","pageview",{campaignSource:"vtmarketing",campaignMedium:t,campaignName:e}),clearInterval(a)}},100);setTimeout(function(){clearInterval(a)},1e3)}},sendToAnalytics:function(e){if(object.shop.ganalytics&&!0===object.shop.ganalytics.status&&!(object.shop.ganalytics.events.length&&object.shop.ganalytics.events.indexOf(e.type)<0)){var t=setInterval(function(){var a="";try{switch(e.type){case"viewitem":case"addtocart":case"addtowishlist":a=e.itemId;break;case"viewcategory":a=e.category;break;case"checkout":a=e.step||"";break;case"sitesubmit":case"siteclick":case"siteclose":case"sitedisplay":a=e.tracking.vt_campaign+"_"+e.tracking.vt_content;break;case"search":a=e.query;break;case"confirmation":a=(e.orderId?e.orderId+"_":"")+(e.items?e.items.length:0)}}catch(e){object.Helpers.log("Error building opt_label for analytics","error")}if("undefined"!=typeof ga){try{object.state.ganame=ga.getAll()[0].get("name")+"."}catch(e){object.state.ganame=""}ga(object.state.ganame+"send","event",object.shop.ganalytics.category,e.type,a,0,{nonInteraction:1}),clearInterval(t)}},100);setTimeout(function(){clearInterval(t)},1e3)}},getStorageType:function(){if(vtstore.enabled)return"vts";if(window.indexedDB=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,window.indexedDB){var e=window.indexedDB.open("vtstore",1);return e.onupgradeneeded=function(t){var a=e.result;object.state.db=a;var s=a.createObjectStore("vtStoreObj",{keyPath:"id"});object.state.store=s},e.onerror=function(e){object.Helpers.log("DB error","error")},e.onsuccess=function(t){object.state.db=e.result},"db"}return!1},updateCookie:function(e,t){var a=object.Helpers.getCookie(e,!0);a&&(vtlodash.isObject(t)?a.val=vtlodash.merge(a.val,t):a.val=t,object.Helpers.setCookie(e,a.val,a.exp))},setCookie:function(e,t,a){if(e=object.defaults.prefix+e,a=vtlodash.isNumber(a)?a:0,"vts"==object.state.storage)vtstore.set(e,{val:t,exp:a,time:(new Date).getTime()});else if("db"==object.state.storage)try{object.state.db.transaction(["vtStoreObj"],"readwrite").objectStore("vtStoreObj").put({id:e,val:t,exp:a,time:(new Date).getTime()}).onsuccess=function(e){}}catch(s){setTimeout(function(){object.Helpers.setCookie(e.replace(object.defaults.prefix,""),t,a)},50)}if(e===object.defaults.prefix+object.defaults.cookieNames.uId){var s=t.userId+"_"+t.sessionId+"_"+t.email+"_"+!!t.push;object.Helpers.writeCookie(object.defaults.prefix+object.defaults.cookieNames.uId,s,object.defaults.expiration)}},getCookie:function(e,t){t=!!t,e=object.defaults.prefix+e;var a=function(a){return t?a:a?a.exp>0&&(new Date).getTime()-a.time>a.exp?(object.Helpers.removeCookie(e),null):a.val:null};if("vts"==object.state.storage){var s=vtstore.get(e);return a(s)}if("db"==object.state.storage)try{object.state.db.transaction(["vtStoreObj"],"readwrite").objectStore("vtStoreObj").get(e).onsuccess=function(e){return a(e.target.result)}}catch(t){setTimeout(function(){return object.Helpers.getCookie(e.replace(object.defaults.prefix,""))},50)}},readCookie:function(e){var t=null;try{t=new RegExp(e+"=([^;]+)").exec(document.cookie)}catch(e){object.Helpers.log("Trying to read inexistent cookie","warning")}return null!=t?unescape(t[1]):null},writeCookie:function(e,t,a){try{if(vtlodash.isNumber(a)){var s=new Date;s.setTime(s.getTime()+a),a=";expires="+s.toGMTString()}else a="";document.cookie=e+"="+t+a+";domain=."+window.location.hostname+";path=/"}catch(e){object.Helpers.log("Error trying to set cookie","warning")}},removeCookie:function(e){if(e=object.defaults.prefix+e,"vts"==object.state.storage)vtstore.remove(e);else if("db"==object.state.storage)try{object.state.db.transaction(["vtStoreObj"],"readwrite").objectStore("vtStoreObj").delete(e)}catch(t){setTimeout(function(){object.Helpers.removeCookie(e.replace(object.defaults.prefix,""))},100)}},extractMainURL:function(e){return e.indexOf("?")>=0?e.substring(0,e.indexOf("?")):e},extractDomain:function(e){var t;return e=e||"",t=e.indexOf("//")>-1?e.split("/")[2]:e.split("/")[0],t=t.split(":")[0]},
makeQueryString:function(e){var t=[];for(var a in e)e.hasOwnProperty(a)&&t.push(encodeURIComponent(a)+"="+encodeURIComponent(e[a]));return t.join("&")},addQueryString:function(e,t){return object.Helpers.extractMainURL(e)+"?"+object.Helpers.makeQueryString(vtlodash.merge(object.Helpers.getURLParams(e),t))},getURLParams:function(e){return e.substring(e.indexOf("?")+1).replace(/(^\?)/,"").split("&").map(function(e){return e=e.split("="),e[0]&&!vtlodash.isUndefined(e[1])&&(this[e[0]]=e[1]),this}.bind({}))[0]},browserInfo:function(e){var t,a=navigator.userAgent,s=a.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i)||[];if(/trident/i.test(s[1])){if(t=/\brv[ :]+(\d+)/g.exec(a)||[],"name"==e)return"explorer";if("version"==e)return t[1]}if("Chrome"===s[1]){if(null!=(t=a.match(/\bOPR\/(\d+)/))&&"name"==e)return"opera";if(null!=t&&"version"==e)return t[1]}return s=s[2]?[s[1],s[2]]:[navigator.appName,navigator.appVersion,"-?"],null!=(t=a.match(/version\/(\d+)/i))&&s.splice(1,1,t[1]),"version"==e?s[1]:"name"==e?(s[0]="MSIE"==s[0]?"Explorer":s[0],s[0].toLowerCase()):void 0},browserLang:function(){var e=window.navigator.userLanguage||window.navigator.language;return e&&e.substring(0,e.indexOf("-"))||""},osName:function(){for(var e=[{string:navigator.platform.toLowerCase(),subString:"win",identity:"Windows"},{string:navigator.platform.toLowerCase(),subString:"mac",identity:"Mac"},{string:navigator.userAgent.toLowerCase(),subString:"iphone",identity:"iOS"},{string:navigator.userAgent.toLowerCase(),subString:"android",identity:"Android"},{string:navigator.platform.toLowerCase(),subString:"linux",identity:"Linux"}],t=0;t=0;a-=1)e.options[a].selected&&(s=e.options[a].value)}break;case"BUTTON":switch(e.type){case"reset":case"submit":case"button":s=e.value}}return vtlodash.isString(s)&&(s=encodeURIComponent(s.trim())),s},isDomNode:function(e){try{return!!e.nodeName}catch(e){return!1}},applyStyle:function(e,t,a){if(e)if(object.Helpers.isDomNode(e))e.style[t]=a;else for(el in e)e.hasOwnProperty(el)&&object.Helpers.isDomNode(e[el])&&(e[el].style[t]=a)},showDom:function(e){object.Helpers.applyStyle(e,"display","block")},hideDom:function(e){object.Helpers.applyStyle(e,"display","none")},embedTag:function(e,t,a,s){a=a||"body",e=e||"div",t=t||"";var o=documentAlias.createElement(e);for(el in s)s.hasOwnProperty(el)&&o.setAttribute(el,s[el]);return o.innerHTML=t,vtlodash.isString(a)?documentAlias.getElementsByTagName(a)[0].appendChild(o):object.Helpers.isDomNode(a)&&a.appendChild(o),o},readDataLayer:function(){if(windowAlias&&vtlodash.isArray(windowAlias.dataLayer)&&vtlodash.size(windowAlias.dataLayer)>0){for(var e=windowAlias.dataLayer,t={event:{}},a=0;a=0){var s={},o="";object.state.reccEvent&&(object.state.reccEvent.hasOwnProperty("viewitem")&&(object.Helpers.log("Recommender event "+JSON.stringify(object.state.reccEvent),"info"),s.itemId=object.state.reccEvent.viewitem.itemId,o="viewitem"),object.state.reccEvent.hasOwnProperty("addtocart")&&(object.Helpers.log("Recommender event "+JSON.stringify(object.state.reccEvent),"info"),s.itemId=object.state.reccEvent.addtocart.itemId,o="addtocart"),object.state.reccEvent.hasOwnProperty("viewcategory")&&(object.Helpers.log("Recommender event "+JSON.stringify(object.state.reccEvent),"info"),s.category=object.state.reccEvent.viewcategory.category,o="viewcategory")),a.eventType=o,a.event=s}var n={data:JSON.stringify(a),callback:object.defaults.reccsCallbackTwo};if("content"==t){var r=vtlodash.size(object.state.contentReccs)+" campaigns";n.callback=object.defaults.reccsCallbackContent,object.state.calledContentReccs=!0}if("preview"==t){var r="preview "+n.data;n.callback=object.defaults.reccsCallbackTwo,n.returnType="detail"}if(0===vtlodash.size(a.campaigns))return void object.Helpers.log("Trying to request recommender without campaigns ","error");var i=object.defaults.reccsHost+object.shop.id+"/";return i=object.Helpers.addQueryString(i,n),object.Helpers.log("Calling the recommender for "+r,"info"),object.Helpers.getAsync(i),a.campaigns}},object.Campaign={resetCampaign:function(e){var t={};t[e]=0,object.Helpers.updateCookie(object.defaults.cookieNames.sess,t),object.Helpers.removeCookie(object.defaults.cookieNames.cStatus+e)},extractAttributeFromClass:function(e){var t=new RegExp(object.defaults.siteClasses.attrPrefix+"([^\\s]+)","g");try{t.lastIndex=0;return t.exec(e)[1]}catch(t){object.Helpers.log("Error extracting attribute or from class "+e,"error")}return null},displayCampaign:function(cId,display){if(!cId||!object.shop.campaigns[cId])return!1;var campaign=object.shop.campaigns[cId],ret={};if(4==campaign.campaignType){windowAlias._vtpoll.data=campaign;var div=windowAlias._vtpoll.init(!1);documentAlias.getElementsByTagName("body")[0].appendChild(div),ret.tpl=0,object.Campaign.attachClickEvents(cId,ret.tpl,div)}else{ret.tpl=object.Helpers.pickRandomPercentages(campaign.templatesPick.params);var div=documentAlias.createElement("div");object.Helpers.hideDom(div),div.setAttribute("id",object.defaults.idPrefix+cId),div.setAttribute("data-tpl",ret.tpl);var runJs=!1;if(!1===campaign.templates[ret.tpl]){var param={};param[cId]=ret.tpl,object.Recommender.getData(param,"interaction")}else{var newHtml=object.Campaign.interpolateVars(campaign.templates[ret.tpl]);div.innerHTML=newHtml,runJs=!0}if(documentAlias.getElementsByTagName("body")[0].appendChild(div),runJs&&eval(object.Helpers.extractTagFromHtml(newHtml,"script")),object.Campaign.attachClickEvents(cId,ret.tpl,div),"timeOnPage"!==campaign.siteParams.trigger.mode&&campaign.teasers&&campaign.teasers[ret.tpl]){var div_t=documentAlias.createElement("div");div_t.setAttribute("id",object.defaults.idPrefix+cId+"_teaser"),div_t.setAttribute("data-tpl",ret.tpl),div_t.innerHTML=campaign.teasers[ret.tpl],documentAlias.getElementsByTagName("body")[0].appendChild(div_t),object.Helpers.log("Displaying teaser for "+cId,"info"),object.Campaign.attachTeaserClickEvents(cId,div_t,div)}}return display&&object.Helpers.showDom(div),ret.dom=div,ret},embedCampaign:function(e,t,a){if(!window.vt_stopcampaigns){if(e&&t){var s="body";if(a&&a.vt_selector)var s=documentAlias.querySelector(a.vt_selector);var o=object.Helpers.embedTag("div","",s,{id:object.defaults.idPrefix+e,"data-tpl":t}),n={};return n[e]=t,object.Recommender.getData(n,"preview"),object.state.pageCampaigns[e]||(object.state.pageCampaigns[e]=t),o}var r=object.Helpers.getCookie(object.defaults.cookieNames.cStatus+e);vtlodash.isNull(r)&&(r={no:0}),r.stop&&!object.shop.campaigns[e].siteParams.displayCountSession&&"0"==object.shop.campaigns[e].siteParams.afterClose&&delete r.stop;var i=object.User.context.session[e];vtlodash.isNull(i)&&(i=0);var o=documentAlias.getElementById(object.defaults.idPrefix+e);try{if(object.shop.campaigns[e].siteParams.displayCountSession&&i>=object.shop.campaigns[e].siteParams.displayCountSession&&(object.Helpers.log("Number of displays per session overcome for "+e,"error"),r.stop=!0),!0===object.shop.campaigns[e].siteParams.testMode&&"info"!==object.defaults.debug)return void object.Helpers.log("Campaign "+e+" not embeded because of test mode!","error");if(!object.Campaign.checkDisplayLimits(e,object.shop.campaigns[e].siteParams))return;if(o||!(r.nositeParams.displayCountSession)return object.Helpers.log("Number of displays per session overcome for "+contentId,"error"),!1;var sessContext=object.User.context&&object.User.context.session||object.Helpers.getCookie(object.defaults.cookieNames.sess);sessContext[contentId]=cStatusSession,object.Helpers.setCookie(object.defaults.cookieNames.sess,sessContext,object.defaults.sessionDuration);try{if(object.Helpers.log("Embeding content "+contentId+" "+tId+" into page","info"),cDom.setAttribute("id",object.defaults.idPrefix+cId),cDom.setAttribute("data-tpl",tId),!1===object.shop.content.templates[tId])object.state.contentReccs[cId]=tId,siteParams.eventBound&&(object.Helpers.log("Wait recc event is true","info"),object.state.waitReccEvent=!0);else{var newHtml=object.Campaign.interpolateVars(object.shop.content.templates[tId]);cDom.innerHTML=newHtml,eval(object.Helpers.extractTagFromHtml(newHtml,"script"))}return object.Campaign.attachClickEvents(cId,tId,cDom),cDom}catch(e){return object.Helpers.log("Error trying to embed campaign "+contentId+". Does not exists or attr missing.","error"),!1}},runDisplayCampaign:function(cId){var campaign=object.shop.campaigns[cId],cStatus=object.Helpers.getCookie(object.defaults.cookieNames.cStatus+cId);cStatus.no+=1,cStatus.no===campaign.siteParams.displayCount&&(cStatus.stop=!0),cStatus&&cStatus.stop&&!object.shop.campaigns[cId].siteParams.displayCountSession&&delete cStatus.stop,object.Helpers.setCookie(object.defaults.cookieNames.cStatus+cId,cStatus);var cStatusSession=vtlodash.isNumber(object.User.context.session[cId])?object.User.context.session[cId]:0;cStatusSession+=1;var sessContext=object.User.context&&object.User.context.session||object.Helpers.getCookie(object.defaults.cookieNames.sess);if(sessContext[cId]=cStatusSession,object.Helpers.setCookie(object.defaults.cookieNames.sess,sessContext,object.defaults.sessionDuration),cStatus&&(object.state.pageCampaigns[cId]=!0,object.state.eventQueue.push(object.Campaign.createSiteEvent(object.defaults.siteEvents.display,cId,cStatus.tpl)),object.Helpers.log("Campaign "+cId+" has been displayed","info")),cDom_t=documentAlias.getElementById(object.defaults.idPrefix+cId+"_teaser"),object.Helpers.hideDom(cDom_t),campaign.siteParams.jsDisplay)try{eval(campaign.siteParams.jsDisplay)}catch(e){}if(campaign.siteParams.autoClose&&campaign.siteParams.autoClose>0){var cDom=cDom||documentAlias.getElementById(object.defaults.idPrefix+cId);setTimeout(function(){object.Helpers.hideDom(cDom)},1e3*campaign.siteParams.autoClose)}},interpolateVars:function(e,t,a){if(!t)var t=object.User.context;var s=e,o=new RegExp(/\*\*\|([^\s]+?)\|\*\*/g);do{var n=o.exec(e);if(n){var r=object.Helpers.getDeepValue(t,n[1]);if(!(r=r||"")&&a)continue;s=s.replace(n[0],r)}}while(n);return s},increaseCountIsValid:function(e,t,a,s){var o=!1;return"p"===e&&"session.pathname"===t?o=!0:"e"==e&&vtlodash.isString(t)&&"session.vte."+s.type===t&&(o=!0),o},statusObserver:function(e,t){if(!object.state.hasUser)return object.Helpers.log("No user, onsite campaigns delayed for "+e,"info"),void setTimeout(function(){object.Campaign.statusObserver(e,t)},1e3);if(object.Helpers.log("Starting Onsite campaigns observer "+e,"info"),"v"!==e&&object.shop.params.countConditions&&vtlodash.size(object.shop.params.countConditions)>0){object.Helpers.log("Increasing counts for display rules conditions","info");var a=object.Helpers.getCookie(object.defaults.cookieNames.condCount);a=a||{};for(var s=0;s0){object.state.campaignsOK=[],object.state.campaignsBackendOK=[];for(cId in object.shop.campaigns){var n=object.Helpers.getCookie(object.defaults.cookieNames.cStatus+cId);if(n&&n.stop&&!object.shop.campaigns[cId].siteParams.displayCountSession&&delete n.stop,object.shop.campaigns.hasOwnProperty(cId)&&(n&&!0!==n.stop||vtlodash.isNull(n))){c=object.shop.campaigns[cId];var r=!1;c.siteParams.displayRulesOR&&c.siteParams.displayRulesOR.length>0&&(r=!0);var i=!1;(object.Campaign.checkDisplayRules(c.siteParams.displayRules,!1)||r&&object.Campaign.checkDisplayRules(c.siteParams.displayRulesOR,!0))&&!object.state.pageCampaigns[cId]&&(i=!0),i&&(c.siteParams.backend?object.state.campaignsBackendOK.push(cId):object.state.campaignsOK.push(cId))}}if(object.tasks.addReadyListener(object.Campaign.triggerCampaigns,"trigc"),vtlodash.size(object.state.campaignsBackendOK)){var l={callback:object.defaults.backendCallback,userId:object.User.data.userId,campaigns:object.state.campaignsBackendOK},d=object.Helpers.addQueryString(object.defaults.backendHost+object.shop.id,l);if(object.state.botagent)return;object.Helpers.getAsync(d)}}object.Helpers.log("Ending Onsite campaigns observer "+e,"info")},triggerCampaigns:function(e){if(e||(e=object.state.campaignsOK),vtlodash.size(e)>0){object.Helpers.log("Triggering campaigns that match display rules","info");for(var t=[],a=!1,s=0;sobject.shop.campaigns[a].siteParams.priority||!a)&&(a=cId):t.push(cId));object.Helpers.log("No priority campaigns in "+t.length+". Max priority "+a,"info"),a&&(object.Campaign.triggerOne(a,object.shop.campaigns[a]),t.indexOf(a)>=0&&t.splice(t.indexOf(a),1));for(var s=0;sd.sensitivity)){var t=Math.max(document.documentElement.clientWidth,window.innerWidth||0),a=t*d.cornerWidth/100;"input"!=e.target.tagName.toLowerCase()&&("left"==d.corner&&e.clientX>a||"right"==d.corner&&e.clientXa&&e.clientX=t-50||(l=setTimeout(i,1e3*d.delay)))}}function n(){l&&d.cancelDelay&&(clearTimeout(l),l=null)}function r(e){p||e.metaKey&&76===e.keyCode&&(p=!0,l=setTimeout(i,d.delay))}function i(){object.Helpers.showDom(t),object.shop.campaigns[e].siteParams.single&&object.state.singleFlag?object.Helpers.hideDom(t):(object.Campaign.runDisplayCampaign(e),object.shop.campaigns[e].siteParams.single&&(object.state.singleFlag=!0)),c()}function c(e){u.removeEventListener("mouseleave",o),u.removeEventListener("mouseenter",n),u.removeEventListener("keydown",r),l&&clearTimeout(l)}var l,d={sensitivity:a.sensitivity||20,timer:a.timer||1,delay:a.delay||0,cancelDelay:a.cancelDelay||!1,corner:a.corner||"any",cornerWidth:a.cornerWidth||50},u=document.documentElement,p=!1;"os"==d.corner&&(d.corner="left",["Windows"].indexOf(object.User.context.session.osname)>=0&&(d.corner="right")),setTimeout(s,1e3*d.timer),object.Helpers.log("Trigger "+e+" on exit intent","info")},a.onClick=function(t,a){if(a.selector){var s=documentAlias.querySelectorAll(a.selector);for(el in s)s.hasOwnProperty(el)&&object.Helpers.addEventListener(s[el],"click",function(a){a.preventDefault(),object.Helpers.showDom(t),object.state.pageCampaigns[e]||(!object.shop.campaigns[e].siteParams.single||object.shop.campaigns[e].siteParams.single&&!object.state.singleFlag)&&(object.Campaign.runDisplayCampaign(e),object.shop.campaigns[e].siteParams.single&&(object.state.singleFlag=!0))},!1);object.Helpers.log("Trigger "+e+" on click elements "+a.selector,"info")}},a.onScroll=function(t,a){a.percent=vtlodash.isNumber(a.percent)?a.percent:25;var s=function(t,a){try{var s=100*((document.documentElement.scrollTop+document.body.scrollTop)/(document.documentElement.scrollHeight-document.documentElement.clientHeight)||0)}catch(e){var s=0}s>=a&&!object.state.pageCampaigns[e]&&(!object.shop.campaigns[e].siteParams.single||object.shop.campaigns[e].siteParams.single&&!object.state.singleFlag)&&(object.Helpers.showDom(t),object.Campaign.runDisplayCampaign(e),object.shop.campaigns[e].siteParams.single&&(object.state.singleFlag=!0))};object.Helpers.addEventListener(windowAlias,"scroll",function(e){s(t,a.percent)}),object.Helpers.log("Trigger "+e+" on % scroll ","info")},a.onLeave=function(t,a){if(object.state.leaveCp=object.state.leaveCp||[],object.state.leaveCp.push(e),1==object.state.leaveCp.length&&history.replaceState){var s=!1;if(object.Helpers.getExternalReferrer()?(object.state.exit_vtp=history.length-1,_vtsdk.User.context.session.exit_vtp=object.state.exit_vtp,object.Helpers.updateCookie(object.defaults.cookieNames.sess,{exit_vtp:object.state.exit_vtp}),s=!0):history.state&&history.state.vtp&&object.User.context.session.exit_vtp===history.state.vtp&&(object.state.exit_vtp=object.User.context.session.exit_vtp,s=!0),!s)return;object.Helpers.log("onLeave trigger is valid.","info"),history.replaceState({vtp:object.state.exit_vtp,href:location.href},""),history.pushState({vtp:object.state.exit_vtp+1,href:location.href},""),object.Helpers.addEventListener(windowAlias,"popstate",function(t){if(history.state&&history.state.vtp==object.state.exit_vtp)for(var a=0;a=0){var s=object.Campaign.embedCampaign(e),o=vtlodash.isNull(t.siteParams.trigger.params)?null:t.siteParams.trigger.params;if(s)return object.Helpers.log("Attaching trigger to campaign "+e,"info"),a[t.siteParams.trigger.mode](s,o)}},10)}},triggerInactivityCampaigns:function(e){if(e+=2,object.state.inactivityCampaigns&&object.shop.params.hasActTriggers)for(var t,a=object.state.inactivityCampaigns.length-1;a>=0;a--){var s=object.state.inactivityCampaigns[a];!object.state.pageCampaigns[s]&&object.shop.campaigns[s].siteParams.trigger.params.delay<=e&&(object.Helpers.log("Valid inactivity campaign "+s,"info"),(!object.shop.campaigns[s].siteParams.single||object.shop.campaigns[s].siteParams.single&&!object.state.singleFlag)&&(t=documentAlias.getElementById(object.defaults.idPrefix+s),object.Helpers.showDom(t),object.Campaign.runDisplayCampaign(s),object.shop.campaigns[s].siteParams.single&&(object.state.singleFlag=!0)))}},buildAttrObject:function(e,t){for(var a,s,o={},n=0;n=0)return void object.Helpers.hideDom(t);object.Helpers.showDom(a),object.Campaign.runDisplayCampaign(e)},!1)},attachClickEvents:function(cId,tpl,cDom){var cDomDom=cDom;if(cDomDom&&cDomDom.innerHTML&&""===cDomDom.innerHTML.trim())return void object.Helpers.log("Empty tag, so we won't attach click events","error");object.Helpers.log("Attaching click events on campaign classes ","info");var elem,toggle_fct=function(e,t,a){try{var a=a||documentAlias.getElementById(object.defaults.idPrefix+e);if(!a)return;var s,o;s=a.getElementsByClassName(t);for(o in s)s.hasOwnProperty(o)&&(s[o].style.display="none"==s[o].style.display?"block":"none")}catch(e){console.log(e)}};elem=cDom.querySelectorAll("[vtw-toggle]");for(el in elem)elem.hasOwnProperty(el)&&object.Helpers.addEventListener(elem[el],"click",function(e){return e.preventDefault(),object.Helpers.log("Toggle event attached to "+el+" element for "+cId,"info"),toggle_fct(cId,elem[el].getAttribute("vtw-toggle"),cDomDom)},!1);var close_fct=function(cId,tpl,cDom){var cDom=cDom||documentAlias.getElementById(object.defaults.idPrefix+cId),cObject=object.shop.campaigns[cId]||object.shop.content.campaigns[cId]||!1;if(cDom&&(object.Helpers.hideDom(cDom),cObject)){if("0"!=cObject.siteParams.afterClose&&(cStatus=object.Helpers.getCookie(object.defaults.cookieNames.cStatus+cId),cStatus.stop=!0,object.Helpers.setCookie(object.defaults.cookieNames.cStatus+cId,cStatus,object.defaults.dayDuration*parseInt(cObject.siteParams.afterClose)),object.Helpers.log("Campaign "+cId+" not displayed for "+cObject.siteParams.afterClose+"days !","info")),cObject.siteParams.jsClose)try{eval(cObject.siteParams.jsClose)}catch(e){}cDom&&cDom.className.indexOf(object.defaults.siteClasses.click)>=0?(object.state.eventQueue.push(object.Campaign.createSiteEvent(object.defaults.siteEvents.click,cId,tpl)),object.Helpers.setAnalyticsSource(cId,"interaction")):object.state.eventQueue.push(object.Campaign.createSiteEvent(object.defaults.siteEvents.close,cId,tpl))}};elem=cDom.getElementsByClassName(object.defaults.siteClasses.close);for(el in elem)elem.hasOwnProperty(el)&&object.Helpers.addEventListener(elem[el],"click",function(e){e.preventDefault(),e.stopPropagation();try{if(e.currentTarget.className.indexOf(object.defaults.siteClasses.overlay)>=0&&e.target!==e.currentTarget)return!1}catch(e){}return object.Helpers.log("Close event attached to "+el+" element for "+cId,"info"),close_fct(cId,tpl,cDomDom)},!1);var click_fct=function(e,t,a){if(object.shop.campaigns[e]||object.shop.content.campaigns[e]||!1){object.state.eventQueue.push(object.Campaign.createSiteEvent(object.defaults.siteEvents.click,e,t)),object.Helpers.setAnalyticsSource(e,"interaction");var s=a.getAttribute("href");s&&("_blank"==a.getAttribute("target")?window.open(s):window.location=s)}};elem=cDom.getElementsByClassName(object.defaults.siteClasses.click);for(el in elem)elem.hasOwnProperty(el)&&object.Helpers.addEventListener(elem[el],"click",function(e){return e.preventDefault(),e.stopPropagation(),object.Helpers.log("Click event attached to "+el+" element for "+cId,"info"),click_fct(cId,tpl,e.currentTarget)},!1);var submit_fct=function(target,cId,tpl,cDom){var cDom=cDom||documentAlias.getElementById(object.defaults.idPrefix+cId),cObject=object.shop.campaigns[cId]||object.shop.content.campaigns[cId]||!1;if(cDom){for(var reqOK=!0,invalidOK=!0,req=cDom.querySelectorAll("[required]"),class2Add="",i=0;i0){var cStatus=object.Helpers.getCookie(object.defaults.cookieNames.cStatus+cId);vtlodash.isNull(cStatus)&&(cStatus={no:1}),cStatus.stop=!0,object.Helpers.setCookie(object.defaults.cookieNames.cStatus+cId,cStatus,object.defaults.dayDuration*parseInt(cObject.siteParams.afterSubmit)),object.Helpers.log("Campaign "+cId+" not displayed for "+cObject.siteParams.afterSubmit+"days !","info")}}try{object.state.ganame=object.state.ganame||ga.getAll()[0].get("name")+".",ga(object.state.ganame+"send","pageview","/submit?vt_campaign="+cId+"&vt_content="+tpl)}catch(e){}var onsubmit=target.getAttribute("onsubmit");if(onsubmit)try{eval(onsubmit)}catch(e){}if(cObject){if(cObject.siteParams.jsSubmit)try{eval(cObject.siteParams.jsSubmit)}catch(e){}if(cObject.siteParams.callEndpoint){var url=object.Campaign.interpolateVars(cObject.siteParams.callEndpoint,params,!0);url=object.Campaign.interpolateVars(url,object.shop,!0),url=object.Campaign.interpolateVars(url),object.Helpers.getAsync(url)}}}};elem=cDom.getElementsByClassName(object.defaults.siteClasses.submit);for(el in elem)elem.hasOwnProperty(el)&&object.Helpers.addEventListener(elem[el],"click",function(e){return e.preventDefault(),e.stopPropagation(),object.Helpers.log("Submit event attached to "+el+" element for "+cId,"info"),submit_fct(e.currentTarget,cId,tpl,cDomDom)},!1)},checkDisplayRules:function(e,t){var a=vtlodash.size(e),s=!0;t&&(s=!1);var o,n,r,i;i=object.Helpers.getCookie(object.defaults.cookieNames.condCount);for(var c=0;c=t.dulimit||t.dlimit&&a.dlimit>=t.dlimit||t.mlimit&&a.mlimit>=t.mlimit)?(object.Helpers.log("Capping exceeded for "+e,"warning"),!1):!(t.start&&t.startDate>object.defaults.nowTime||t.end&&t.endDate0;if((!0===object.Campaign.checkDisplayRules(t.content[n].displayRules,!1)||i&&object.Campaign.checkDisplayRules(t.content[n].displayRulesOR,i))&&object.Campaign.embedContent(s,t.id,t.siteParams[t.content[n].id],r,t.content[n].id)){object.Helpers.log("Group "+n+" embeded for campaign "+cId,"info"),e[cId]=t.content[n].id,object.state.eventQueue.push(object.Campaign.createSiteEvent(object.defaults.siteEvents.display,t.id,r));break}}}else object.Helpers.log("Campaign "+cId+" not embeded. Test mode or no element!","error")}return object.state.calledContent=!0,(object.state.waitReccEvent&&vtlodash.isObject(object.state.reccEvent)||!1===object.state.waitReccEvent)&&(object.Helpers.log("Recc Event is already here!","warning"),object.Recommender.getData(object.state.contentReccs,"content")),e}}},object.queueManager={eventsObserver:function(){if(!object.state.hasUser)return void object.Helpers.log("No local user, exiting!","error");if(object.state.waitUserRequest)return void object.Helpers.log("Requesting user!","error");var e=object.state.eventQueue.shift();if(e){if(object.defaults.stopevents)return void object.Helpers.log("Events are stopped!","error");object.state.pageQueue.push(e);var t=object.eventApi.convertEventObject(e);return(e.viewitem||e.viewcategory||e.addtocart)&&object.eventApi.validateEvent(t)&&(object.Helpers.log("Store possible recc event!","info"),object.state.reccEvent=e),e.login&&object.eventApi.validateEvent(t)&&object.state.loginHash!=object.eventApi.hashEvent(t)?(e.login.email?(e.login.email=object.Helpers.cleanEmail(e.login.email),object.User.changeUserByEmail(e.login.email)):e.login.uuid&&object.User.changeUserByUuid(e.login.uuid),object.state.loginToPush=e,void(object.state.loginHash=object.eventApi.hashEvent(t))):vtlodash.isArray(e)?void("setVar"===e[0]&&(object.setVar(e[1],e[2]),object.Campaign.statusObserver("v"))):(vtlodash.size(object.state.contentReccs)>=1&&object.state.waitReccEvent&&object.state.reccEvent&&object.Recommender.getData(object.state.contentReccs,"content"),object.eventApi.sendEvent(e)&&object.tasks.createVisitorContext("e",e),object.Campaign.statusObserver("e",t),e)}}},object.tasks={runShopJS:function(){if(object.shop.params.customJS&&!object.state.runCustomJS){object.state.runCustomJS=!0;try{eval(object.shop.params.customJS)}catch(e){object.Helpers.log("Error running custom JS for shop "+e.message,"error")}}},followDataLayer:function(){var e=object.Helpers.readDataLayer();e&&(object.User.context.vars=object.User.context.vars||{},object.User.context.vars.dataLayer=e)},requestWebID:function(e){if(e=e||object.shop.params.webidTags.join(","),object.shop.params.getVisitorWebid&&windowAlias._vtwebid&&e){var t=object.Helpers.getCookie(object.defaults.cookieNames.webid);if(!t&&e){var a=windowAlias._vtwebid.return_tags_url(object.shop.id,e,"");vtlodash.request(a,function(e){vtlodash.isString(e)&&(e=JSON.parse(e)),vtlodash.isObject(e)&&(object.Helpers.setCookie(object.defaults.cookieNames.webid,e,object.defaults.shortDuration),object.User.context.webid=e)})}else vtlodash.isObject(t)&&(object.User.context.webid=t)}},checkUserIdentity:function(){object.Helpers.log("Checking user identity from URL params","info");for(var e=object.defaults.userIndentityParams.length-1;e>=0;e--){var t,a=object.defaults.userIndentityParams[e];if(object.User.context.session.urlparams.hasOwnProperty(a))return t=object.User.context.session.urlparams[a],"vt_user"==a&&t.length==object.defaults.userKeyLength?object.User.changeUserById(t):object.Helpers.emailIsValid(t)&&object.User.changeUserByEmail(t),!0}return!1},createUserContext:function(e){object.Helpers.log("Creating User context","info");var t=object.User.getLocalUser();t?(object.User.data=t,object.state.hasUser=!0):e||object.User.requestUser()},createVisitorContext:function(trigger,vtevent){object.Helpers.log("Creating visitor context for "+trigger,"info");var allContext=object.User.context&&object.User.context.all||object.Helpers.getCookie(object.defaults.cookieNames.all),sessContext=object.User.context&&object.User.context.session||object.Helpers.getCookie(object.defaults.cookieNames.sess),allChanged=sessChanged=!1;if(vtevent=vtevent||null,trigger=trigger||"p",null==allContext&&(allContext={noVisits:0,firstVisit:object.defaults.nowTime,lastVisit:object.defaults.nowTime},allChanged=!0),"p"==trigger){var urlparams=object.Helpers.getURLParams(windowAlias.location.search),currentUTM={utm_source:null,utm_term:null,utm_campaign:null,utm_content:null,utm_medium:null};if(null!=sessContext&&(currentUTM=vtlodash.overwrite(currentUTM,sessContext)),currentUTM=vtlodash.overwrite(currentUTM,urlparams),null==sessContext&&(sessContext={pathname:"",landing:windowAlias.location.pathname,noPageViews:0,firstVisit:object.defaults.nowTime,city:"",country:""},sessChanged=!0,allContext.noVisits+=1,allContext.lastVisit=sessContext.firstVisit,allChanged=!0,object.state.eventQueue.push({update:{lastVisitDate:object.defaults.nowTime}}),object.shop.params.sessionJS&&!object.state.runSessionJS)){object.state.runSessionJS=!0,vtlodash.isArray(object.shop.params.sessionJS)||(object.shop.params.sessionJS=[object.shop.params.sessionJS]);for(var i=0;i\\,|{}?]+$/.test(t))return"VTuser"===e?(t&&t.indexOf("@")<0&&atob(t)&&(t=atob(t)),void(object.User.isIdentified()||object.User.changeUserByEmail(t))):"VTsid"===e?void(object.state._vtsid=t):void(object.User.context.vars[e]=t)},object.init=function(){if(!object.state.ready){object.state.ready=!0,object.state.storage=object.Helpers.getStorageType();try{var e=object.Helpers.getCookie(object.defaults.cookieNames.ts);e&&(object.state.timeDiff=e,object.defaults.nowTime=object.defaults.nowTimeLocal-e)}catch(e){console.log(e)}object.state.botagent=!1;try{object.state.botagent=/bot|googlebot|crawler|spider|robot|crawling/i.test(navigator.userAgent)}catch(e){object.Helpers.log("Error checking for bot agents!","error")}windowAlias.location.hostname.indexOf(object.shop.domain);try{if("undefined"!=typeof Prototype&&parseFloat(Prototype.Version.substr(0,3))<1.7&&void 0!==Array.prototype.toJSON){var t=JSON.stringify;JSON.stringify=function(e){var a=Array.prototype.toJSON;delete Array.prototype.toJSON;var s=t(e);return Array.prototype.toJSON=a,s}}}catch(e){}var a=object.Helpers.getCookie(object.defaults.cookieNames.debug);if(object.defaults.debug=object.shop.debug?object.shop.debug:object.defaults.debug,a&&(object.defaults.debug=a),object.Helpers.getCookie(object.defaults.cookieNames.stopevents)&&(object.defaults.stopevents=1),object.state.pageQueue=[],object.state.eventQueue=windowAlias._vteq||[],windowAlias.location.search.indexOf("vt_preview=")>=0){var s=object.Helpers.getURLParams(windowAlias.location.search);return object.defaults.debug="info",object.tasks.createUserContext(),object.tasks.createVisitorContext("p"),void object.Campaign.embedCampaign(s.vt_campaign,s.vt_content,{vt_selector:window.atob(s.vt_selector)})}object.state.eventQueueId=setInterval(object.queueManager.eventsObserver,object.defaults.queueCheckInterval),object.tasks.createUserContext(!0),object.tasks.createVisitorContext("p"),object.state.webpush&&object.tasks.addReadyListener(object.webpush.instantiate,"wpins"),object.Campaign.statusObserver("p"),object.tasks.addReadyListener(object.Campaign.embedContentCampaigns,"emcon"),object.Helpers.vtPostMessage(),object.User.context.session.urlparams.vt_debug&&(object.Helpers.setCookie(object.defaults.cookieNames.debug,object.User.context.session.urlparams.vt_debug),object.defaults.debug=object.User.context.session.urlparams.vt_debug),1==object.User.context.session.urlparams.vt_stopevents?(object.Helpers.setCookie(object.defaults.cookieNames.stopevents,1),object.defaults.stopevents=1):0==object.User.context.session.urlparams.vt_stopevents&&object.Helpers.removeCookie(object.defaults.cookieNames.stopevents),object.tasks.checkUserIdentity(),object.tasks.createUserContext();var o=function(){object.state.hasLoaded||(object.state.hasLoaded=!0,object.Helpers.log("Running onLoad functions","info"),object.tasks.inputEmailListening(),object.tasks.injectCss(object.defaults.stylesheet),object.tasks.runShopJS())};object.tasks.addReadyListener(o,"loadh"),object.tasks.getVisitorInfo(),object.setVar("random",object.Helpers.generateRandomBetween(0,100,!0)),object.tasks.sendClickEvents(),object.tasks.followDataLayer(),object.state.timeDiff||object.User.requestUser({userId:object.User.data.userId}),object.User.activityInit(),object.Helpers.getCookie(object.defaults.cookieNames.ne)&&(object.state.eventQueue.push(object.Helpers.getCookie(object.defaults.cookieNames.ne)),object.Helpers.removeCookie(object.defaults.cookieNames.ne)),object.tasks.requestWebID(),object.Helpers.writeCookie(object.defaults.prefix+object.defaults.cookieNames.shop,object.shop.id)}},object}()),window._vteq=window._vteq||[],checkInit(),_vtshop={};