/*January 3, 2025, 11:17 am*/var vtstore;function checkInit(){var e,t=!1;try{t=!(0<=window.location.search.indexOf("vt_stop=true")),t=!(0<=document.cookie.indexOf("vt_stop"))&&t,t=!window.vt_stop&&t,window.ignore_vt_stop&&(t=!0),_vtsdk.state.running=t}catch(e){t=!1}window.top!==window.self&&(t=!1);try{0<=window.location.search.indexOf("vt_validate=true")&&(a=_vtsdk.Helpers.getURLParams(window.location.search),e=_vtsdk.Helpers.addQueryString(_vtsdk.defaults.validateUrl,a),_vtsdk.Helpers.getAsync(e),t=!1)}catch(e){}if(_vtsdk&&!0===_vtsdk.state.ready){t=!1;try{console.log("VTSDK ready.")}catch(e){}}if(t){for(var a,o=3,s=document.createElement("div"),n=s.getElementsByTagName("i");s.innerHTML="\x3c!--[if gt IE "+ ++o+"]>document.w=window'),c.close(),i=c.w.frames[0].document,r=i.createElement("div")}catch(e){r=a.createElement("div"),i=a.body}var l=function(a){return function(){var e=Array.prototype.slice.call(arguments,0);e.unshift(r),i.appendChild(r),r.addBehavior("#default#userData"),r.load(o);var t=a.apply(n,e);return i.removeChild(r),t}},d=new RegExp("[!\"#$%&'()*+,/\\\\:;<=>?@[\\]^`{|}~]","g"),u=function(e){return e.replace(/^d/,"___$&").replace(d,"___")};n.set=l(function(e,t,a){return t=u(t),a===undefined?n.remove(t):(e.setAttribute(t,n.serialize(a)),e.save(o),a)}),n.get=l(function(e,t,a){t=u(t);var o=n.deserialize(e.getAttribute(t));return o===undefined?a:o}),n.remove=l(function(e,t){t=u(t),e.removeAttribute(t),e.save(o)}),n.clear=l(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)}),n.getAll=function(e){var a={};return n.forEach(function(e,t){a[e]=t}),a},n.forEach=l(function(e,t){var a=e.XMLDocument.documentElement.attributes;for(var o=0,s;s=a[o];++o)t(s.name,n.deserialize(e.getAttribute(s.name)))})}try{var p="__storejs__";n.set(p,p),n.get(p)!=p&&(n.disabled=!0),n.remove(p)}catch(e){n.disabled=!0}return n.enabled=!n.disabled,vtstore=n}()}(this),!function(e){var o,t,a,s,n,r;e.vtlodash=(s=function(e,t){var a=Object.prototype.toString.call(t).slice(8,-1);return null!=t&&a===e},{isObject:function(e){return s("Object",e)},isArray:function(e){return s("Array",e)},merge:n=function(a){return[].slice.call(arguments,1).forEach(function(e){for(var t in e)t in a&&s("Array",a[t])?a[t]=a[t].concat(e[t]):t in a&&s("Object",a[t])?a[t]=n(a[t],e[t]):a[t]=e[t]}),a},overwrite:r=function(e,t){for(var a in e)e.hasOwnProperty(a)&&!o(t[a])&&(s("Object",e[a])&&s("Object",t[a])?e[a]=r(e[a],t[a]):e[a]=t[a]);return e},size:a=function(e){if(null==e)return 0;try{return(s("Array",e)?e:Object.keys(e)).length}catch(e){return 0}},isNull:function(e){return null===e},isNumber:function(e){return s("Number",e)},isBoolean:function(e){return s("Boolean",e)},isString:function(e){return s("String",e)},isFunction:t=function(e){return e&&"[object Function]"==={}.toString.call(e)},isUndefined:o=function(e){return void 0===e},isArguments:function(e){return s("Arguments",e)},isEmpty:function(e){return s("Object",e)&&s("Array",e)&&s("String",e)&&!t(e.splice)?!Object.keys(e).length:!a(e)},request:function(e,t){var a={bindFunction:function(e,t){return function(){try{return e.apply(t,[t])}catch(e){}}},stateChange:function(e){try{4==a.request.readyState&&a.callbackFunction(a.request.responseText)}catch(e){}},getRequest:function(){try{return window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):!!window.XMLHttpRequest&&new XMLHttpRequest}catch(e){}}};if(a.postBody=arguments[2]||"",a.callbackFunction=t,a.url=e,a.request=a.getRequest(),a.request)try{var o=a.request;o.onreadystatechange=a.bindFunction(a.stateChange,a),""!==a.postBody?(o.open("POST",e,!0),o.setRequestHeader("X-Requested-With","XMLHttpRequest"),o.setRequestHeader("Content-type","application/x-www-form-urlencoded")):o.open("GET",e,!0),o.send(a.postBody)}catch(e){}}})}(this),window._vteq=window._vteq||[],window._vtsdk&&!window.ignore_vt_stop||(window._vtsdk=function(){var documentAlias=document,windowAlias=window,object={v:"20.9.5",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",backendCache:"bcache",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",cacheBackendCheck:"_vtsdk.Campaign.cacheBackendCheck",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.min.css",idPrefix:"vt-campaign-",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:1626,url:"https://www.pucsp.br",params:{getVisitorInfo:!0,emailGrab:!0,customJS:"/*\nwindow.scrollfixCyb = function () {\n try {\n setTimeout(function () {\n let headerelem = document.querySelector('.header-main');\n let headerwrapper = document.querySelector('._multiply-color-mask');\n if (document.querySelector('#cybPromoBar') && headerelem && window.scrollY === 0) {\n headerelem.style.top = 0 + 'px';\n }\n window.addEventListener('scroll', function () {\n if (document.querySelector('#cybPromoBar') && window.scrollY === 0) {\n headerelem.style.top = 0 + 'px';\n headerwrapper.style.top = 0 + 'px';\n } else if (document.querySelector('#cybPromoBar') && window.scrollY !== 0) {\n let position = document.querySelector('#cybPromoBar').offsetHeight;\n headerelem.style.top = position + 'px';\n headerwrapper.style.top = position + 'px';\n }\n console.log(window.scrollY);\n })\n }, 500)\n } catch (e) {}\n}\nwindow.cybValidateInputsPrompt = function () {\n if (document.querySelector('.cybba-email-input').value.match(/[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,}$/) !== null) {// add a check for name here \n var cybEmail = document.querySelector('.cybba-email-input').value;\n window._vteq.push({\n 'login': {\n email: cybEmail,\n source: \"proactive\"\n }\n });\n //do the success state stuff here \n document.querySelector('.cybTextcontent').style.display = \"none\";\n setTimeout(function () { document.querySelector('.successState').style.display = \"block\"; }, 100);\n //window.location = \"https://www.pucsp.br/pos-graduacao/especializacao-e-mba/inscricoes-abertas\"\n } else if (document.querySelector('.cybba-email-input').value.match(/[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,}$/) === null) {\n //alert('Please enter a valid email address ');\n }\n}\nwindow.cybValidateInputsPrompt1 = function () {\n if (document.querySelector('.cybba-email-input').value.match(/[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,}$/) !== null && document.querySelector('#cybButtonADA input[name=\"cybba-name\"]').value.match(/^[a-zA-Z ]{2,30}$/) !== null && document.querySelector('#cybButtonADA input[name=\"cybba-phone\"]').value.match(/^\\s*(\\d{2}|\\d{0})[-. ]?(\\d{5}|\\d{4})[-. ]?(\\d{4})[-. ]?\\s*$/) !== null) {// add a check for name here \n var cybEmail = document.querySelector('#cybButtonADA input[name=\"cybba-email\"]').value;\n let cybname = document.querySelector('#cybButtonADA input[name=\"cybba-name\"]').value;\n let cybphone = document.querySelector('#cybButtonADA input[name=\"cybba-phone\"]').value;\n window._vteq.push({\n 'login': {\n email: cybEmail,\n firstname: cybname,\n tel: cybphone,\n source: \"proactive\"\n }\n });\n //do the success state stuff here \n document.querySelector('.cybTextcontent').style.display = \"none\";\n setTimeout(function () { document.querySelector('.successState').style.display = \"block\"; }, 100);\n //window.location = \"https://www.pucsp.br/pos-graduacao/especializacao-e-mba/inscricoes-abertas\"\n } else if (document.querySelector('.cybba-email-input').value.match(/[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,}$/) === null || document.querySelector('#cybButtonADA input[name=\"cybba-name\"]') === null || document.querySelector('#cybButtonADA input[name=\"cybba-phone\"]') === null) {\n //alert('Please enter a valid email address ');\n }\n}\n\nwindow.waitForElementCYB = function () {\n if (document.querySelector('#cybButtonADA') !== null) {\n document.querySelector('#cybButtonADA').addEventListener(\"submit\", function (evt) {\n evt.preventDefault();\n });\n } else {\n setTimeout(waitForElementCYB, 250);\n }\n}\n\nwindow.firePbarConfirmCYB = function (e) { var t = cybData.promoBarData[e.trim()], r = _vtsdk.shop.campaigns[e].siteParams.startDate && new Date >= new Date(_vtsdk.shop.campaigns[e].siteParams.startDate), o = _vtsdk.shop.campaigns[e].siteParams.endDate && new Date < new Date(_vtsdk.shop.campaigns[e].siteParams.endDate); _vtsdk.shop.campaigns[e] && (void 0 !== r && !r || void 0 !== o && !o || !(isMobileCYB() && t.triggers.mobile || !isMobileCYB()) || getCookieCYB(\"cybGizmoClosed\") || ~document.cookie.indexOf(\"CYBPBarSession_\" + e.trim()) || !t.enabled || cybData.pBarPageFlag || (!document.querySelector(\"[id*='vt-campaign-\" + e + \"']\") && _vteq.push([\"setVar\", \"cybAllow\", \"yes\"]) && _vtsdk.Campaign.displayCampaign(e.trim(), !0), document.querySelector(\"[id*='vt-campaign-\" + e + \"']\") && (document.querySelector(\"[id*='vt-campaign-\" + e + \"']\").style.display = \"block\"), document.querySelector(\"[id*='vt-campaign-\" + e + \"']\") && \"block\" === document.querySelector(\"[id*='vt-campaign-\" + e + \"']\").style.display && trackDisplayCYB(e), trigDataCYB(e.trim(), \"pb\"), sizePromoBarCYB(t.position, e.trim()), t = t.countDown, cybData.pBarPageFlag = !0, promobarCountDownCYB(t.syncTime, t.countDownDate, t.hasLetters, t.padNums, t.hideZeroes, t.countDownExpirationClose, t.countDownExpireText), document.querySelector(\"[id*='vt-campaign-\" + e + \"'][triggeredId] #cybPromoBar .cybCode\") && attachPromoEventsCYB(\"pb\"), cybData.promoBarData[e.trim()].stickyNav.hasStickyNav && stickyNavScrollCYB(e), document.querySelector(\"[id*='vt-campaign-\" + e + \"'][triggeredId] #cybPromoBar\"), setSessionMgmtCYB(cybData.sessionMgmt, e.trim(), \"pb\"), cybData.promoBarData[e.trim()].customJS && cybData.promoBarData[e.trim()].customJS.load && eval(cybData.promoBarData[e.trim()].customJS.load), addClickHandlerCYB())) };\n\nwindow.addPBarUTMcyb = function () {\n let flag = !!~window.location.href.indexOf('?') ? '&' : '?';\n let utm = 'utm_source=Cybba&utm_medium=cpc&utm_term=&utm_content=PUC_EdContinuada_Cybba&utm_campaign=PUC_EdContinuada_2020';\n window.location = window.location.href + flag + utm;\n vtCompleteOrder()\n}\n*/\n/**********************START USER INPUT**************************************/\nwindow.cybData = {};\n\n// Initialization function - allows for customization of basic settings \nwindow.configSettingsCYB = function () {\n // Various Settings\n cybData.allowLogs = true; //True to enable debug logs, does not turn off console.log - this will be on by default in staging\n cybData.cookieStaging = false; //Initalizes cookie staging mode if true and panel will only fire with the cookie - MUST BE FALSE WHEN LIVE (cybbatest=true)\n\n cybData.safeDomains = []; // Add all domains allowed to trigger tools on, required for V2, optional for V1\n\n //Trigger Rules for ONSITE\n cybData.exitIntent = true;\n cybData.onClose = false; // true/false\n cybData.deskInactivity = 30; //time in seconds\n cybData.mobileInactivity = 30; //time in seconds\n cybData.mobileExit = true; // true/false - Firings on buttons from browser/OS\n cybData.ABtest = [50, 50]; //Percentage of Firing per agent - sets Cookie \"CYB_AB\" with the index of the agent to be fired\n cybData.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 };\n cybData.triggerSensitivity = 0.75; // delay for mouse to be outside of browser to delay firing panel \n cybData.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\n cybData.pageForms = []; //add selectors to the array for any forms or elements that should not trigger onsite\n cybData.addCSS = ''; //add minified CSS for custom CSS here\n cybData.copiedText = ''; // Text for Copy Success Message, Default is \"COPIED!\" if left blank \n cybData.SMS = {\n enabled: false,\n campaigns: {\n 'EMAILTEMPLATEID': \"TEMPLATEID\"\n }\n }\n\n cybData.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 **/\n cybData.promoBarData = {\n '1017591': { // 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: true,\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: true,\n selector: '.header.fixed'\n },\n customJS: { //add JS to run on load or close of promobar\n load: \"scrollfixCyb()\",\n close: \"\"\n }\n }\n }\n /** END PROMOBAR DATA **/\n\n //Dynamic Product Data\n cybData.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\n cybData.resetZIndex = {\n enabled: false,\n selectors: ['']\n };\n\n cybData.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 cybData.onsiteOnload = {\n // set CAMPAIGNID to all to load for all creatives\n '': '' //Put in Campaign ID or all here to run JS on campaign display - CampaignID: JS HERE\n\n };\n\n cybData.forceCSS = {\n 'SELECTOR': 'CSSHERE'\n };\n\n cybData.promptConfig = {\n attribution: true,\n applySessionMgmt: true\n }\n\n //Do not remove or modify this call\n try { setTimeout(initCYB, 500) } catch (e) { console.log(e); }\n}\n//Code all things you need to have excute on load here\nwindow.onloadFunctionsCYB = function () {\n}\n\n// Criteria Filters Here\nwindow.cybbaFilters = function () {\n const staging = document.cookie.includes('cybbatest');\n let _aug31 = new Date < new Date(\"August 31, 2023 23:30:00 EST\");\n const geralUrls = ['/pos-graduacao/especializacao-e-mba/inscricoes-abertas'];\n const extensaoUrls = ['/pos-graduacao/especializacao-e-mba/escola/saude',\n '/pos-graduacao/especializacao-e-mba/escola/gestao-e-negocios',\n '/pos-graduacao/especializacao-e-mba/escola/educacao',\n '/pos-graduacao/especializacao-e-mba/escola/direito',\n '/pos-graduacao/especializacao-e-mba/escola/desenvolvimento-de-pessoas',\n '/pos-graduacao/especializacao-e-mba/escola/comunicacao-e-artes',\n '/pos-graduacao/especializacao-e-mba/escola/inovacao-e-tecnologia'];\n const especializacaoUrls = ['/pos-graduacao/especializacao-e-mba/ciencias-humanas-e-pensamento-decolonial',\n '/pos-graduacao/especializacao-e-mba/direito-administrativo',\n '/pos-graduacao/especializacao-e-mba/direito-ambiental-e-gestao-estrategica-da-sustentabilidade',\n '/pos-graduacao/especializacao-e-mba/direito-constitucional',\n '/pos-graduacao/especializacao-e-mba/direito-contratual-on-line-sincrono',\n '/pos-graduacao/especializacao-e-mba/direito-de-familia-e-sucessoes',\n '/pos-graduacao/especializacao-e-mba/direito-do-trabalho',\n '/pos-graduacao/especializacao-e-mba/direito-empresarial',\n '/pos-graduacao/especializacao-e-mba/direito-imobiliario',\n '/pos-graduacao/especializacao-e-mba/direito-penal-e-direito-processual-penal',\n '/pos-graduacao/especializacao-e-mba/direito-processual-civil-on-line-sincrono',\n '/pos-graduacao/especializacao-e-mba/direito-tributario',\n '/pos-graduacao/especializacao-e-mba/engenharia-de-software',\n '/pos-graduacao/especializacao-e-mba/religiao-cultura-e-vida-contemporanea-especializacao-em-ciencia',\n '/pos-graduacao/especializacao-e-mba/tecnica-klauss-vianna-especializacao',\n '/pos-graduacao/especializacao-e-mba/teologia-e-ensino-religioso',\n '/pos-graduacao/especializacao-e-mba/terapia-familiar-e-de-casal-intervencoes-sistemicas-em'];\n if (!staging && _aug31 && 'https://www.pucsp.br' == location.origin && [...geralUrls, ...extensaoUrls, ...especializacaoUrls].some(url => location.pathname.includes(url.trim()))) {\n fireCampaignCYB('1031425');\n } else if (!staging) {\n fireCampaignCYB('1031400');\n\n }\n}\n\n// Promobar Criteria Filters Here\nwindow.promobarFilters = function () {\n let staging = !!~document.cookie.indexOf('cybbatest');\n\n}\n\n/******DO NOT REMOVE********/\nsetTimeout(configSettingsCYB, 1000);\n/******DO NOT REMOVE********/",referer:!0,hasActTriggers:!1,hasSendActTriggers:!1,hasRunningInteractions:!1,hasRunningContent:!1,hasRunningAds:!1,countConditions:[],webidTags:[],getVisitorWebid:!1,pageJS:[]},agency:108,_id:1626,debug:"none",domain:"pucsp.br",campaigns:{},content:{campaigns:{}},adserver:{}},object.User={data:{},context:{vars:{pageType:""}},getLocalUser:function(){var e,t=object.Helpers.readCookie(object.defaults.prefix+object.defaults.cookieNames.uId);return null!=t?(t={userId:(e=t.split("_"))[0],sessionId:"1",email:"true"==e[2],push:"true"==e[3],tel:"true"==e[4],isC:"true"==e[5],noP:e[6]?parseInt(e[6]):0},object.Helpers.setCookie(object.defaults.cookieNames.uId,t)):(t=object.Helpers.getCookie(object.defaults.cookieNames.uId),vtlodash.isObject(t)&&object.Helpers.setCookie(object.defaults.cookieNames.uId,t)),!vtlodash.isEmpty(t)&&t||null},requestUser:function(e){var t;!0===object.state.waitUserRequest||(e=e||{},t={callback:object.defaults.userCallback,shopId:object.shop.id,oldUserId:object.User.data.userId},object.Helpers.log("Requesting user data: "+object.User.data.userId+"new "+JSON.stringify(e),"info"),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,e=object.Helpers.addQueryString(object.defaults.userHost,t),object.state.botagent)||(object.Helpers.getAsync(e),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"};e.userId&&(t.userId=e.userId),t.email=!!e.email,t.push=!!e.push,t.noP=0,t.isC=!1,e.isCustomer&&(t.isC=e.isCustomer||!1),e.numberOfPurchases&&(t.noP=e.numberOfPurchases||0),e.ts&&(e=object.defaults.nowTimeLocal-parseInt(e.ts),object.Helpers.setCookie(object.defaults.cookieNames.ts,e=100e)&&(object.User.activitySend(o),object.Helpers.log("Sending activity","info"))}(object.shop.params.hasActTriggers||object.shop.params.hasSendActTriggers)&&(a=5e3,e=12e4,object.state.lastActiveTime=Date.now(),o=0,s=document.documentElement,n=document,object.Helpers.addEventListener(s,"mousedown",i,!0),object.Helpers.addEventListener(s,"keypress",i,!0),object.Helpers.addEventListener(n,"touchmove",i,!0),object.Helpers.addEventListener(n,"scroll",i,!0),r())},activitySend:function(e){object.Helpers.log("Updating server user activity for check "+e,"info"),object.state.lastCallActive=object.state.lastActiveTime;e={shopId:object.shop.id,userId:object.User.data.userId,ts:object.state.lastActiveTime},e=object.Helpers.addQueryString(object.defaults.userHost+"/active",e);object.Helpers.getAsync(e)}},object.eventApi={convertEventObject:function(e){var t,a={type:""};for(t in e)if(e.hasOwnProperty(t)){a.type=t;var o=vtlodash.isObject(e[t])?JSON.parse(JSON.stringify(e[t])):{};if("confirmation"===t&&1]*>([\\s\\S]*?)<\\/"+t+">","i"),result=t.exec(e),vtlodash.isArray(result))&&0()[\]\\.,;:\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,o=(t=t||"info",e=vtlodash.isObject(e)?JSON.stringify(e):e,{info:1,warning:2,error:3,none:4});if(o[object.defaults.debug]<=o[t])try{console.log("["+t+"]["+a+"]"+e)}catch(e){}},setAnalyticsUser:function(){object.shop.ganalytics&&!0===object.shop.ganalytics.status&&window.gtag&&window.gtag("set",{user_id:object.User.data.userId})},setAnalyticsSource:function(e,t){var a;object.shop.ganalytics&&!0===object.shop.ganalytics.setSource&&(a=setInterval(function(){void 0!==window.gtag&&(window.gtag("set",{campaign_id:e,campaign_name:"vt_"+e,campaign_source:object.shop.ganalytics.category,campaign_medium:t}),clearInterval(a))},100),setTimeout(function(){clearInterval(a)},1e3))},sendToAnalytics:function(t){var a;object.shop.ganalytics&&!0===object.shop.ganalytics.status&&window.gtag&&(object.shop.ganalytics.events.length&&object.shop.ganalytics.events.indexOf(t.type)<0||(a=setInterval(function(){var e="";try{switch(t.type){case"viewitem":case"addtocart":case"addtowishlist":e=t.itemId;break;case"viewcategory":e=t.category;break;case"checkout":e=t.step||"";break;case"sitesubmit":case"siteclick":case"siteclose":case"sitedisplay":e=t.tracking.vt_campaign+"_"+t.tracking.vt_content;break;case"search":e=t.query;break;case"confirmation":e=(t.orderId?t.orderId+"_":"")+(t.items?t.items.length:0)}}catch(e){object.Helpers.log("Error building opt_label for analytics","error")}void 0!==window.gtag&&(window.gtag("event","vt_"+t.type,{category:object.shop.ganalytics.category,label:e}),clearInterval(a))},100),setTimeout(function(){clearInterval(a)},1e3)))},getStorageType:function(){var a;return vtstore.enabled?"vts":(window.indexedDB=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB,!!window.indexedDB&&((a=window.indexedDB.open("vtstore",1)).onupgradeneeded=function(e){var t=a.result,t=(object.state.db=t).createObjectStore("vtStoreObj",{keyPath:"id"});object.state.store=t},a.onerror=function(e){object.Helpers.log("DB error","error")},a.onsuccess=function(e){object.state.db=a.result},"db"))},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(t,a,o){if(t=object.defaults.prefix+t,o=vtlodash.isNumber(o)?o:0,"vts"==object.state.storage)vtstore.set(t,{val:a,exp:o,time:(new Date).getTime()});else if("db"==object.state.storage)try{object.state.db.transaction(["vtStoreObj"],"readwrite").objectStore("vtStoreObj").put({id:t,val:a,exp:o,time:(new Date).getTime()}).onsuccess=function(e){}}catch(e){setTimeout(function(){object.Helpers.setCookie(t.replace(object.defaults.prefix,""),a,o)},50)}var e;t===object.defaults.prefix+object.defaults.cookieNames.uId&&(e=a.userId+"_"+a.sessionId+"_"+a.email+"_"+!!a.push+"_"+!!a.tel+"_"+!!a.isC+"_"+(a.noP||0),object.Helpers.writeCookie(object.defaults.prefix+object.defaults.cookieNames.uId,e,object.defaults.expiration))},getCookie:function(t,a){a=!!a,t=object.defaults.prefix+t;function o(e){return a?e:e?0e.exp?(object.Helpers.removeCookie(t),null):e.val:null}var e;if("vts"==object.state.storage)return e=vtstore.get(t),o(e);if("db"==object.state.storage)try{object.state.db.transaction(["vtStoreObj"],"readwrite").objectStore("vtStoreObj").get(t).onsuccess=function(e){return o(e.target.result)}}catch(e){setTimeout(function(){return object.Helpers.getCookie(t.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{a=vtlodash.isNumber(a)?((o=new Date).setTime(o.getTime()+a),";expires="+o.toGMTString()):"";var o,s=object.shop.params.cookieDomain||window.location.hostname;document.cookie=e+"="+t+a+";domain=."+s+";path=/"}catch(e){object.Helpers.log("Error trying to set cookie","warning")}},removeCookie:function(t){if(t=object.defaults.prefix+t,"vts"==object.state.storage)vtstore.remove(t);else if("db"==object.state.storage)try{object.state.db.transaction(["vtStoreObj"],"readwrite").objectStore("vtStoreObj").delete(t)}catch(e){setTimeout(function(){object.Helpers.removeCookie(t.replace(object.defaults.prefix,""))},100)}},extractMainURL:function(e){return 0<=e.indexOf("?")?e.substring(0,e.indexOf("?")):e},extractDomain:function(e){return(-1<(e=e||"").indexOf("//")?e.split("/")[2]:e.split("/")[0]).split(":")[0]},makeQueryString:function(e){var t,a=[];for(t in e)e.hasOwnProperty(t)&&a.push(encodeURIComponent(t)+"="+encodeURIComponent(e[t]));return a.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("="))[0]&&!vtlodash.isUndefined(e[1])&&(this[e[0]]=e[1]),this}.bind({}))[0]},browserInfo:function(e){var t,a=navigator.userAgent,o=a.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i)||[];if(/trident/i.test(o[1])){if(t=/\brv[ :]+(\d+)/g.exec(a)||[],"name"==e)return"explorer";if("version"==e)return t[1]}if("Chrome"===o[1]){if(null!=(t=a.match(/\bOPR\/(\d+)/))&&"name"==e)return"opera";if(null!=t&&"version"==e)return t[1]}return o=o[2]?[o[1],o[2]]:[navigator.appName,navigator.appVersion,"-?"],null!=(t=a.match(/version\/(\d+)/i))&&o.splice(1,1,t[1]),"version"==e?o[1]:"name"==e?(o[0]="MSIE"==o[0]?"Explorer":o[0],o[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=object.shop.campaigns[t].siteParams.displayCountSession&&(object.Helpers.log("Number of displays per session overcome for "+t,"error"),a.stop=!0),!0===object.shop.campaigns[t].siteParams.testMode&&"info"!==object.defaults.debug)object.Helpers.log("Campaign "+t+" not embeded because of test mode!","error");else if(object.Campaign.checkDisplayLimits(t,object.shop.campaigns[t].siteParams)){if(!s)return(a.not.displayCountSession?(object.Helpers.log("Number of displays per session overcome for "+e,"error"),!1):((t=object.User.context&&object.User.context.session||object.Helpers.getCookie(object.defaults.cookieNames.sess))[e]=a,object.Helpers.setCookie(object.defaults.cookieNames.sess,t,object.defaults.sessionDuration),!0)},embedContent:function(cDom,cId,siteParams,tId,groupId){var contentId=cId+"_"+groupId,newHtml;try{return object.Helpers.log("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)):(newHtml=object.Campaign.interpolateVars(object.shop.content.templates[tId]),cDom.innerHTML=newHtml,eval(object.Helpers.extractTagFromHtml(newHtml,"script")),object.state.eventQueue.push(object.Campaign.createSiteEvent(object.defaults.siteEvents.display,cId,tId))),object.Campaign.attachClickEvents(cId,tId,cDom),cDom}catch(e){return object.Helpers.log("Error trying to embed content "+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),cStatusSession=(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),vtlodash.isNumber(object.User.context.session[cId])?object.User.context.session[cId]:0),sessContext=(cStatusSession+=1,object.User.context&&object.User.context.session||object.Helpers.getCookie(object.defaults.cookieNames.sess)),cDom;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){}campaign.siteParams.autoClose&&0object.shop.campaigns[o].siteParams.priority||!o)&&(o=cId):a.push(cId));object.Helpers.log("No priority campaigns in "+a.length+". Max priority "+o,"info"),o&&(object.Campaign.triggerOne(o,object.shop.campaigns[o]),0<=a.indexOf(o))&&a.splice(a.indexOf(o),1);for(s=0;ss.sensitivity||(a=(t=Math.max(document.documentElement.clientWidth,window.innerWidth||0))*s.cornerWidth/100,"input"==e.target.tagName.toLowerCase())||"left"==s.corner&&e.clientX>a||"right"==s.corner&&e.clientXa&&e.clientX=t-50||(o=setTimeout(l,1e3*s.delay))}function i(){o&&s.cancelDelay&&(clearTimeout(o),o=null)}function c(e){n||e.metaKey&&76===e.keyCode&&(n=!0,o=setTimeout(l,s.delay))}function l(){object.Helpers.showDom(e),object.shop.campaigns[d].siteParams.single&&object.state.singleFlag?object.Helpers.hideDom(e):(object.Campaign.runDisplayCampaign(d),object.shop.campaigns[d].siteParams.single&&(object.state.singleFlag=!0)),a.removeEventListener("mouseleave",r),a.removeEventListener("mouseenter",i),a.removeEventListener("keydown",c),o&&clearTimeout(o)}"os"==s.corner&&(s.corner="left",0<=["Windows"].indexOf(object.User.context.session.osname))&&(s.corner="right"),setTimeout(function(){object.Helpers.addEventListener(a,"mouseleave",r),object.Helpers.addEventListener(a,"mouseenter",i),object.Helpers.addEventListener(a,"keydown",c)},1e3*s.timer),object.Helpers.log("Trigger "+d+" on exit intent","info")},o.onClick=function(t,e){if(e.selector){var a=documentAlias.querySelectorAll(e.selector);for(el in a)a.hasOwnProperty(el)&&object.Helpers.addEventListener(a[el],"click",function(e){e.preventDefault(),object.Helpers.showDom(t),object.state.pageCampaigns[d]||(!object.shop.campaigns[d].siteParams.single||object.shop.campaigns[d].siteParams.single&&!object.state.singleFlag)&&(object.Campaign.runDisplayCampaign(d),object.shop.campaigns[d].siteParams.single)&&(object.state.singleFlag=!0)},!1);object.Helpers.log("Trigger "+d+" on click elements "+e.selector,"info")}},o.onScroll=function(s,n){n.percent=vtlodash.isNumber(n.percent)?n.percent:25;object.Helpers.addEventListener(windowAlias,"scroll",function(e){var t=s,a=n.percent;try{var o=100*((document.documentElement.scrollTop+document.body.scrollTop)/(document.documentElement.scrollHeight-document.documentElement.clientHeight)||0)}catch(e){o=0}a<=o&&!object.state.pageCampaigns[d]&&(!object.shop.campaigns[d].siteParams.single||object.shop.campaigns[d].siteParams.single&&!object.state.singleFlag)&&(object.Helpers.showDom(t),object.Campaign.runDisplayCampaign(d),object.shop.campaigns[d].siteParams.single)&&(object.state.singleFlag=!0)}),object.Helpers.log("Trigger "+d+" on % scroll ","info")},o.onLeave=function(e,t){var a;object.state.leaveCp=object.state.leaveCp||[],object.state.leaveCp.push(d),1==object.state.leaveCp.length&&history.replaceState&&(a=!1,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}),a=!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,a=!0),a)&&(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(e){if(history.state&&history.state.vtp==object.state.exit_vtp)for(var t=0;t=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.endDate\\,|{}?]+$/.test(t)&&("VTuser"===e?(t&&t.indexOf("@")<0&&atob(t)&&(t=atob(t)),object.User.isIdentified()||object.User.changeUserByEmail(t)):"VTsid"===e?object.state._vtsid=t: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{var a;"undefined"!=typeof Prototype&&parseFloat(Prototype.Version.substr(0,3))<1.7&&void 0!==Array.prototype.toJSON&&(a=JSON.stringify,JSON.stringify=function(e){var t=Array.prototype.toJSON,e=(delete Array.prototype.toJSON,a(e));return Array.prototype.toJSON=t,e})}catch(e){}var e=object.Helpers.getCookie(object.defaults.cookieNames.debug);object.defaults.debug=object.shop.debug||object.defaults.debug,e&&(object.defaults.debug=e),object.Helpers.getCookie(object.defaults.cookieNames.stopevents)&&(object.defaults.stopevents=1),object.state.pageQueue=[],object.state.eventQueue=windowAlias._vteq||[],0<=windowAlias.location.search.indexOf("vt_preview=")?(e=object.Helpers.getURLParams(windowAlias.location.search),object.shop.params.embedCSS=!0,object.tasks.injectCss(object.defaults.stylesheet),object.defaults.debug="info",object.tasks.createUserContext(),object.tasks.createVisitorContext("p"),object.Campaign.embedCampaign(e.vt_campaign,e.vt_content,{vt_selector:window.atob(decodeURIComponent(e.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.cacheBackendCheck,"cber"),object.tasks.addReadyListener(object.Campaign.processContentCampaigns,"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(),object.tasks.addReadyListener(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())},"loadh"),object.tasks.getVisitorInfo(),object.setVar("random",object.Helpers.generateRandomBetween(0,100,!0)),object.tasks.sendClickEvents(),object.tasks.followDataLayer(),object.Helpers.setAnalyticsUser(),object.state.timeDiff,object.User.activityInit(),(e=object.Helpers.getCookie(object.defaults.cookieNames.ne))&&("requser"==e?object.User.requestUser():object.state.eventQueue.push(e),object.Helpers.removeCookie(object.defaults.cookieNames.ne)),object.tasks.requestWebID(),object.Helpers.writeCookie(object.defaults.prefix+object.defaults.cookieNames.shop,object.shop.id))}},object}()),checkInit(),_vtshop={};