var dinConfigs={"siteCode":3572,"clientCode":310713,"listCode":1,"domain":"frigelar.com.br","updateMode":"AS","crawlForms":true,"crawlEcommerce":true,"formHashConfig":{"Missing action form":{"fieldRules":{"Variable":{"new-email":{"Field":"1","Type":"VC"}}},"listCode":"1","updateMode":"AS"}},"logLevel":2,"dinTargetForm":{"primary_color":"#ccc"},"leadTracking":{"ACTIVE":true,"AUTOMATION_URL_RULES":{"1":{"73":{"RULES":[{"TYPE":"CONTAINS","VALUE":"cart"}],"TEST_URLS":["https://www.frigelar.com.br/cart"],"TITLE":"Oportunidades"},"74":{"RULES":[{"TYPE":"CONTAINS","VALUE":"confirmation"}],"TEST_URLS":["https://www.frigelar.com.br/confirmation/59268067-d50c-4514-8a56-3ad50a551d9e"],"TITLE":"Clientes"},"75":{"RULES":[{"TYPE":"CONTAINS","VALUE":"ar-condicionado/c"},{"TYPE":"CONTAINS","VALUE":"ar-condicionado"}],"TEST_URLS":["https://a7833275c1tst-store.occa.ocs.oraclecloud.com/ar-condicionado/c"],"TITLE":"Ar-condicionado"},"76":{"RULES":[{"TYPE":"CONTAINS","VALUE":"eletrodomesticos"},{"TYPE":"CONTAINS","VALUE":"adega"},{"TYPE":"CONTAINS","VALUE":"cervejeira"},{"TYPE":"CONTAINS","VALUE":"coifa"},{"TYPE":"CONTAINS","VALUE":"cooktop"},{"TYPE":"CONTAINS","VALUE":"fogao"},{"TYPE":"CONTAINS","VALUE":"forno"},{"TYPE":"CONTAINS","VALUE":"freezer"},{"TYPE":"CONTAINS","VALUE":"geladeira"},{"TYPE":"CONTAINS","VALUE":"lava"},{"TYPE":"CONTAINS","VALUE":"micro-ondas"},{"TYPE":"CONTAINS","VALUE":"secadora"},{"TYPE":"CONTAINS","VALUE":"eletroportateis"},{"TYPE":"CONTAINS","VALUE":"lavadora"},{"TYPE":"CONTAINS","VALUE":"depurador"},{"TYPE":"CONTAINS","VALUE":"frigobar"},{"TYPE":"CONTAINS","VALUE":"refrigerador"},{"TYPE":"CONTAINS","VALUE":"seca"}],"TEST_URLS":[],"TITLE":"Eletrodomésticos"},"77":{"RULES":[{"TYPE":"CONTAINS","VALUE":"eletroportateis/c"},{"TYPE":"CONTAINS","VALUE":"abridor-vinho"},{"TYPE":"CONTAINS","VALUE":"abridor-de-vinho"},{"TYPE":"CONTAINS","VALUE":"air-fryer"},{"TYPE":"CONTAINS","VALUE":"airfryer"},{"TYPE":"CONTAINS","VALUE":"aspirador-po"},{"TYPE":"CONTAINS","VALUE":"aspirador-de-po"},{"TYPE":"CONTAINS","VALUE":"batedeira"},{"TYPE":"CONTAINS","VALUE":"bebedouro"},{"TYPE":"CONTAINS","VALUE":"purificador"},{"TYPE":"CONTAINS","VALUE":"filtro-refil"},{"TYPE":"CONTAINS","VALUE":"cafeteira"},{"TYPE":"CONTAINS","VALUE":"chaleira"},{"TYPE":"CONTAINS","VALUE":"churrasqueira"},{"TYPE":"CONTAINS","VALUE":"maquina-de-gelo"},{"TYPE":"CONTAINS","VALUE":"lavadora-de-pressao"},{"TYPE":"CONTAINS","VALUE":"lavadora-de-alta-pressao"},{"TYPE":"CONTAINS","VALUE":"liquidificador"},{"TYPE":"CONTAINS","VALUE":"sorveteira"},{"TYPE":"CONTAINS","VALUE":"maquina-de-sorvete"},{"TYPE":"CONTAINS","VALUE":"maquina-sorvete"},{"TYPE":"CONTAINS","VALUE":"mixer"},{"TYPE":"CONTAINS","VALUE":"panela"},{"TYPE":"CONTAINS","VALUE":"processador"}],"TEST_URLS":[],"TITLE":"Eletroportáteis"},"78":{"RULES":[{"TYPE":"CONTAINS","VALUE":"climatizacao/c"},{"TYPE":"CONTAINS","VALUE":"aquecedor"},{"TYPE":"CONTAINS","VALUE":"desumidificador"},{"TYPE":"CONTAINS","VALUE":"umidificador"},{"TYPE":"CONTAINS","VALUE":"ventilador"},{"TYPE":"CONTAINS","VALUE":"climatizador"},{"TYPE":"CONTAINS","VALUE":"circulador"},{"TYPE":"CONTAINS","VALUE":"exaustor"},{"TYPE":"CONTAINS","VALUE":"cortina"}],"TEST_URLS":["https://www.frigelar.com.br/climatizacao/c"],"TITLE":"Climatização"},"79":{"RULES":[{"TYPE":"CONTAINS","VALUE":"pecas-e-acessorios/c"}],"TEST_URLS":["https://www.frigelar.com.br/pecas-e-acessorios/c"],"TITLE":"Peças"},"80":{"RULES":[{"TYPE":"CONTAINS","VALUE":"ferramentas/c"},{"TYPE":"CONTAINS","VALUE":"ferramentas-eletricas"},{"TYPE":"CONTAINS","VALUE":"parafusadeira"},{"TYPE":"CONTAINS","VALUE":"furadeira"},{"TYPE":"CONTAINS","VALUE":"serra"},{"TYPE":"CONTAINS","VALUE":"ferramenta"},{"TYPE":"CONTAINS","VALUE":"flangeador"},{"TYPE":"CONTAINS","VALUE":"lixadeira"},{"TYPE":"CONTAINS","VALUE":"esmerilhadeira"},{"TYPE":"CONTAINS","VALUE":"macarico"},{"TYPE":"CONTAINS","VALUE":"manifold"},{"TYPE":"CONTAINS","VALUE":"soprador"},{"TYPE":"CONTAINS","VALUE":"alicate"},{"TYPE":"CONTAINS","VALUE":"termometro"},{"TYPE":"CONTAINS","VALUE":"trena"},{"TYPE":"CONTAINS","VALUE":"mangueira"},{"TYPE":"CONTAINS","VALUE":"multimetro"},{"TYPE":"CONTAINS","VALUE":"mala"},{"TYPE":"CONTAINS","VALUE":"maleta"}],"TEST_URLS":["https://www.frigelar.com.br/ferramentas/c"],"TITLE":"Ferramentas"},"81":{"RULES":[{"TYPE":"CONTAINS","VALUE":"servicos/c"}],"TEST_URLS":["https://www.frigelar.com.br/servicos/c"],"TITLE":"Serviços"},"82":{"RULES":[{"TYPE":"CONTAINS","VALUE":"camaras-frias/c"}],"TEST_URLS":["https://www.frigelar.com.br/camaras-frias/c"],"TITLE":"Câmaras Frias"},"83":{"RULES":[{"TYPE":"CONTAINS","VALUE":"produtos-eos/c"},{"TYPE":"CONTAINS","VALUE":"eos"}],"TEST_URLS":["https://www.frigelar.com.br/produtos-eos/c"],"TITLE":"EOS"},"90":{"RULES":[{"TYPE":"CONTAINS","VALUE":"metalfrio"}],"TEST_URLS":[],"TITLE":"Metalfrio"},"91":{"RULES":[{"TYPE":"CONTAINS","VALUE":"piso-teto"},{"TYPE":"CONTAINS","VALUE":"cassete"},{"TYPE":"CONTAINS","VALUE":"multi-split"},{"TYPE":"CONTAINS","VALUE":"teto"}],"TEST_URLS":[],"TITLE":"Ar Alta Capacidade"},"92":{"RULES":[{"TYPE":"CONTAINS","VALUE":"cortina-de-ar"}],"TEST_URLS":[],"TITLE":"Cortinas de Ar"},"93":{"RULES":[{"TYPE":"EQUAL","VALUE":"robo-aspirador-po-inteligente-eos-smart-self-clean-laser-map-controle-alexa-google-ear03-110v/p/kit8958"},{"TYPE":"EQUAL","VALUE":"robo-aspirador-po-inteligente-eos-smart-self-clean-laser-map-controle-alexa-google-ear03-220v/p/kit10603"}],"TEST_URLS":["https://www.frigelar.com.br/robo-aspirador-po-inteligente-eos-smart-self-clean-laser-map-controle-alexa-google-ear03-220v/p/kit10603","https://www.frigelar.com.br/robo-aspirador-po-inteligente-eos-smart-self-clean-laser-map-controle-alexa-google-ear03-110v/p/kit8958"],"TITLE":"Robô Aspirador Smart Clean EAR03"}}},"HASH":"8185","HISTORY_URL_RULES":[],"LIST":"1","REQUIRE_CONSENT":false},"dinWhatsAppIntegration":{"forms":null},"dinEcommerceTools":{"hashsInterestItems":[],"hashsPurchase":["bhzIu58My0IdaTA="],"hashsUnfinishedPurchase":["bhzIu58My05WFw=="],"maxInterestItems":5}};if(typeof dinVERSION=='undefined'){var dinVERSION='1.0';var dinFunctions={request:function(method,url,params=null){var xmlhttp=new XMLHttpRequest();xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==XMLHttpRequest.DONE){if(xmlhttp.status>=200&&xmlhttp.status<=299){}else{dinLogger.Write(dinLogger.DEBUG,'Request returned status code '+xmlhttp.status);}}} if(params!=null&&typeof params!=='string'){var len=params.length;if(len!=undefined){for(var x=0;x<len;x++){if(typeof params[x]==='object'&¶ms[x]!=null){var and="&";if(x==0){and="?";} url+=and+Object.keys(params[x])+"="+encodeURIComponent(params[x][Object.keys(params[x])])}}}} if(typeof method!=="string"||method===""){method="POST";} xmlhttp.open(method,url,true);xmlhttp.send();},requestKeepAlive:function(url,params){if(typeof params==="string"&¶ms!==""){url+="?"+params;} if(navigator.sendBeacon){dinLogger.Write(dinLogger.DEBUG,'Request using sendBeacon()');navigator.sendBeacon(url,{}) return} dinLogger.Write(dinLogger.DEBUG,'Request using XMLHttpRequest()');var xmlhttp=new XMLHttpRequest();xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==XMLHttpRequest.DONE){if(xmlhttp.status>=200&&xmlhttp.status<=299){}else{dinLogger.Write(dinLogger.DEBUG,'Request returned status code '+xmlhttp.status);}}} xmlhttp.open("POST",url,false);xmlhttp.send();},requestFetch:function(url,data){if(typeof data!=="object"){data={};} return fetch(url,{method:'POST',mode:'cors',cache:'no-cache',credentials:'omit',headers:{},redirect:'follow',referrer:'client',keepalive:true,});},setCookie:function(cname,cvalue,exdays){var d=new Date();d.setTime(d.getTime()+(exdays*24*60*60*1000));var expires="expires="+d.toUTCString();document.cookie=cname+"="+cvalue+";"+expires+";path=/";dinLogger.Write(dinLogger.DEBUG,"Cookie set. cname:["+cname+"] cvalue:["+cvalue+"] exdays:["+exdays+"]");},getCookie:function(cname){var name=cname+"=";var allCookies=document.cookie;var ca=allCookies.split(';');for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==' '){c=c.substring(1);} if(c.indexOf(name)==0){return decodeURIComponent(c.substring(name.length,c.length));}} return"";},addCookieToForm:function(contentTarget,formTarget){if(formTarget!=undefined){if(dinFunctions.getCookie('dinTrafficSource')){if(contentTarget.querySelector('#__dinTrafficSource')!=null){contentTarget.querySelector('#__dinTrafficSource').setAttribute('value',dinFunctions.getCookie('dinTrafficSource'));return} var ts=document.createElement('input');ts.type='hidden';ts.name='__dinTrafficSource';ts.id='__dinTrafficSource';ts.value=dinFunctions.getCookie('dinTrafficSource');formTarget.appendChild(ts);}}},deleteCookie:function(cname){this.setCookie(cname,"",-1);dinLogger.Write(dinLogger.DEBUG,"Cookie deleted. cname:["+cname+"]");},base64Encode:function(str){return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g,function toSolidBytes(match,p1){return String.fromCharCode('0x'+p1);}))},base64Decode:function(str){return decodeURIComponent(atob(str).split('').map(function(c){return'%'+('00'+c.charCodeAt(0).toString(16)).slice(-2);}).join(''));},prepareDate:function(date,format){var newDate,time;format=format.substr(0,10).replace("/","").replace("/","").replace("-","").replace("-","");time=date.substr(10,15);if(format=="DDMMAAAA"){newDate=date[6]+date[7]+date[8]+date[9]+"-"+date[3]+date[4]+"-"+date[0]+date[1];}else if(format=="MMDDAAAA"){newDate=date[6]+date[7]+date[8]+date[9]+"-"+date[0]+date[1]+"-"+date[3]+date[4];}else if(format=="AAAAMMDD"){newDate=date[0]+date[1]+date[2]+date[3]+"-"+date[5]+date[6]+"-"+date[8]+date[9];} return newDate+time;},isCardNumber:function(n){var e,t,o,r=0,i=0;if('string'!=typeof n)return false;if(t=n.replace(/\D/g,''),(o=t.length)<14)return false;for(;o--;){e=parseInt(t.charAt(o),10)<<i;r+=e-9*(e>9);i^=1;} return r%10==0&&r>0;},validateEmail:function(email){var regex=/^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;return regex.test(email);},isMobileRes:function(){var width=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;if(dinFunctions.checkOrientation()=='portrait')return(width<500);var height=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;return(height<500)},matchesRulesParser:function(url,show_filterin,type,value){var show_filter=[];var exRules=[];var coRules=[];var ncRules=[];var len=show_filterin.length;for(var x=0;x<len;x++){switch(show_filterin[x][type]){case"EQUAL":exRules.push(show_filterin[x][value]);break;case"CONTAINS":coRules.push(show_filterin[x][value]);break;case"!CONTAINS":ncRules.push(show_filterin[x][value]);break;}} if(exRules.length){var filter={filterType:"EQUAL",filterRules:exRules};show_filter.push(filter);} if(coRules.length){var filter={filterType:"CONTAINS",filterRules:coRules};show_filter.push(filter);} if(ncRules.length){var filter={filterType:"!CONTAINS",filterRules:ncRules};show_filter.push(filter);} var activate=this.matchesRules(url,show_filter) if(!activate){dinLogger.Write(dinLogger.DEBUG,"Discarded for not attending to a certain url rule");} return activate;},matchesRules:function(url,show_filter){var urlSplitt=url.split('/').slice(3).join('/');activate=true;var len=show_filter.length;endLoop:for(var x=0;x<len;x++){switch(show_filter[x].filterType){case"EQUAL":activate=false;var lenIn=show_filter[x].filterRules.length;for(var y=0;y<lenIn;y++){if(show_filter[x].filterRules[y]=="/"){show_filter[x].filterRules[y]="";} if(show_filter[x].filterRules[y]==urlSplitt){activate=true break endLoop;}} break;case"CONTAINS":activate=false;var lenIn=show_filter[x].filterRules.length;for(var y=0;y<lenIn;y++){var regex=new RegExp(dinFunctions.escapeRegExp(show_filter[x].filterRules[y]),"i");if(regex.test(urlSplitt)){activate=true break;}} break;case"!CONTAINS":var lenIn=show_filter[x].filterRules.length;for(var y=0;y<lenIn;y++){var regex=new RegExp(dinFunctions.escapeRegExp(show_filter[x].filterRules[y]),"i");if(regex.test(urlSplitt)){activate=false break;}} break;}} return activate;},getQueryParams:function(queryString){queryString=queryString.split("+").join(" ");var params={},tokens,re=/[?&]?([^=]+)=([^&]*)/g;while(tokens=re.exec(queryString)){params[decodeURIComponent(tokens[1])]=decodeURIComponent(tokens[2]);} return params;},escapeRegExp:function(str){return str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g,"\\$1");},replaceAll:function(str,find,replace){return str.replace(new RegExp(dinFunctions.escapeRegExp(find),'g'),replace);},isExampleEmail:function(email){if(email!==undefined&&(email==="email@dominio.com"||email==="email@domain.com")){dinLogger.Write(dinLogger.WARN,"Example email '"+email+"' ignored.");return true} return false},getDomainPathUrl:function(){return window.location.href.split("?")[0].split("#")[0];},reduceSelectOptions:function(contentTarget,maxTextSize){var options=contentTarget.querySelectorAll("option");var len=options.length;if(len>0){for(var x=0;x<len;x++){if(options[x].textContent.length>maxTextSize){options[x].title=options[x].textContent;options[x].textContent=options[x].textContent.substring(0,maxTextSize)+"...";}}}},attachEventOnElement:function(element,eventType,eventFunction){if(element.attachEvent){element.attachEvent('on'+eventType,eventFunction);dinLogger.Write(dinLogger.DEBUG,"event ["+eventType+"] attached to the element ["+element+"] using [attachEvent]");return} element.addEventListener(eventType,eventFunction,false);dinLogger.Write(dinLogger.DEBUG,"event ["+eventType+"] attached to the element ["+element+"] using [addEventListener]");},getReferrer:function(){return document.referrer?document.referrer.match(/:\/\/(.[^/]+)/)[1]:"";},hasWhatsForm:function(){var width=(document.documentElement.clientWidth-10);var height=(document.documentElement.clientHeight-10);var arrayofelements=document.elementsFromPoint(width,height);if(arrayofelements.length>0){for(var x=0;x<arrayofelements.length;x++){if(arrayofelements[x].classList.contains('dinWhatsFormDialog')||arrayofelements[x].classList.contains("dinWhatsFormIco"))return true;}} return false},addViewportMetaTag:function(){var viewportmeta=document.querySelector('meta[name=viewport]');if(viewportmeta==null||viewportmeta.length<=0){var meta=document.createElement('meta');meta.name="viewport";meta.content="width=device-width,height=device-height,initial-scale=1";document.querySelector('head').appendChild(meta);}},calcScrollPercentage:function(perc){var html=document.documentElement;maxDocumentSize=html.scrollHeight if(dinFunctions.isMobileRes())maxDocumentSize*=0.95 var h=maxDocumentSize-html.clientHeight;return Math.floor((h/100)*perc);},fixDialogHeight:function(dialogElement,heightIncrease=null){if(dialogElement==undefined||dialogElement.style.display==''||dialogElement.style.display=='none'){return} var iframeContent=dialogElement.querySelector('iframe').contentWindow.document;var contentElement=iframeContent.querySelector('.content');var fatherElement=contentElement.parentElement;var contentHeight=fatherElement.clientHeight;if(contentHeight==0){var imgElement=fatherElement.querySelector('.img');contentHeight=Math.max(contentElement.clientHeight,imgElement.clientHeight);} if(heightIncrease!=null)contentHeight+=heightIncrease;dialogElement.style.height=contentHeight+'px';},checkOrientation:function(){var width=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;var height=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;if(width>height)return'landscape' return'portrait'},validateDuplicity:function(form,name){var inputs=form.querySelectorAll('input[name="'+name+'"]');if(inputs.length==0){return false;} var type=inputs[0].type;for(var i=1;i<inputs.length;i++){if(inputs[i].type!==type||type!='radio'){return true}} return false;},hasSkipAttribute:function(element){return element.hasAttribute('dinSkipCapture');},normalizeUrl:function(url){if(!url){return url;} if(url.match(/^http/i)){return url;} if(url.match(/^\/\//)){url=document.location.protocol+url;return url;} if(url.match(/^\/[^\/]/)){url=document.location.protocol+"//"+document.location.hostname+url;return url;} url=document.location.protocol+"//"+document.location.hostname+document.location.pathname+url;return url;},getPriorityContentSelector:function(obj,selectorList){let lastChance=null;for(let i=0;i<selectorList.length;i++){let selector=selectorList[i];let elem=obj.querySelector(selector);if(!elem){continue} let attrName=selector.match(/\[([^\]]+)\]/);if(!attrName){return dinFunctions.cleanTextElement(elem);} let attrValue=elem.getAttribute(attrName[1]);if(!lastChance&&!attrValue.match(/\s/)&&attrValue.match(/-/)){lastChance=attrValue.replace(/-/,' ');continue} return attrValue;} return lastChance;},cleanTextElement:function(obj){let lns=obj.cloneNode(true);let text=obj.textContent.trim();while(lns.querySelector('script, noscript')){lns.querySelector('script, noscript').remove();text=lns.textContent.trim();} return text;},getParentElement:function(obj,rewind){var p=obj;for(var r=0;r<rewind;r++){if(!p.parentElement){break;} p=p.parentElement;if(p.tagName=='BODY'){break;}} return p;},setUTMs:function(source,medium,campaign,term){source=encodeURIComponent(source);medium=encodeURIComponent(medium);campaign=encodeURIComponent(campaign);term=encodeURIComponent(term);dinLogger.Write(dinLogger.DEBUG,`setUTMs - Source: ${source} Medium: ${medium} Campaign: ${campaign} Term: ${term}`);let novaURL=`${window.location.origin}${window.location.pathname}?`;novaURL+=(source!='')?`&utm_source=${source}`:'';novaURL+=(medium!='')?`&utm_medium=${medium}`:'';novaURL+=(campaign!='')?`&utm_campaign=${campaign}`:'';novaURL+=(term!='')?`&utm_term=${term}`:'';window.history.replaceState({},document.title,novaURL);},sendEventGA:function(eventName,eventCategory,eventLabel,value){dinLogger.Write(dinLogger.DEBUG,"sendEventGA ["+eventName+"] in category ["+eventCategory+"] with label ["+eventLabel+"]");if(typeof gtag!=='function'){return;} gtag('event',eventName,{'event_category':eventCategory,'event_label':eventLabel,'value':value});}};var dinTargetForm={config:dinConfigs.dinTargetForm,dialogElement:{},backElement:null,msgElement:null,dialogIsOpened:false,dialogsHasClosed:{},formsConfig:{},timeElement:null,mouseoutElement:null,scrollElement:null,formId:0,Init:function(){dinLogger.Write(dinLogger.DEBUG,"InitPopup called");var url=window.location.href;var appendIn=document.body;dinFunctions.addViewportMetaTag();var style=document.createElement('div');style.id='dinTargetFormStyle';style.innerHTML=this.cssStyle();appendIn.appendChild(style);if(this.config.popover){dinLogger.Write(dinLogger.DEBUG,"Found "+this.config.popover.length+" 'popover' popups");if(this.config.popover.length>0){var len=this.config.popover.length;for(var p=0;p<len;p++){var popUpActivate=true;dinLogger.Write(dinLogger.DEBUG,"'popover' popup ["+p+"]");if(this.config.popover[p].show_filter&&this.config.popover[p].show_filter.length>0){popUpActivate=dinFunctions.matchesRulesParser(url,this.config.popover[p].show_filter,"type","exp");} if(popUpActivate){this.appendForm('popover',this.config.popover[p],appendIn);}} if(popUpActivate){this.backElement=document.createElement('div');this.backElement.id='dinTargetFormBackground';appendIn.appendChild(this.backElement);}}} if(this.config.scrollbox){dinLogger.Write(dinLogger.DEBUG,"Found "+this.config.scrollbox.length+" 'scrollbox' popups");if(this.config.scrollbox.length>0){var len=this.config.scrollbox.length;for(var p=0;p<len;p++){var popUpActivate=true;dinLogger.Write(dinLogger.DEBUG,"'scrollbox' popup ["+p+"]");if(this.config.scrollbox[p].show_filter&&this.config.scrollbox[p].show_filter.length>0){popUpActivate=dinFunctions.matchesRulesParser(url,this.config.scrollbox[p].show_filter,"type","exp");} if(popUpActivate){this.appendForm('scrollbox',this.config.scrollbox[p],appendIn);}}}} if(this.config.topbar){dinLogger.Write(dinLogger.DEBUG,"Found "+this.config.topbar.length+" 'topbar' popups");if(this.config.topbar.length>0){var len=this.config.topbar.length;for(var p=0;p<len;p++){var popUpActivate=true;dinLogger.Write(dinLogger.DEBUG,"'topbar' popup ["+p+"]");if(this.config.topbar[p].show_filter&&this.config.topbar[p].show_filter.length>0){popUpActivate=dinFunctions.matchesRulesParser(url,this.config.topbar[p].show_filter,"type","exp");} if(popUpActivate){this.appendForm('topbar',this.config.topbar[p],appendIn);}}}} if(this.config.embedded){dinLogger.Write(dinLogger.DEBUG,"Found "+this.config.embedded.length+" 'embedded' popups");if(this.config.embedded.length>0){var len=this.config.embedded.length;for(var p=0;p<len;p++){var popUpActivate=true;dinLogger.Write(dinLogger.DEBUG,"'embedded' popup ["+p+"]");if(this.config.embedded[p].show_filter&&this.config.embedded[p].show_filter.length>0){popUpActivate=dinFunctions.matchesRulesParser(url,this.config.embedded[p].show_filter,"type","exp");} if(popUpActivate){var findFor=this.config.embedded[p].insert_into;var appendInE=document.getElementById(findFor);if(!appendInE){appendInE=document.getElementsByClassName(findFor);if(!appendInE){continue;} for(var ai=0;ai<appendInE.length;++ai){this.appendForm('embedded',this.config.embedded[p],appendInE[ai]);} continue;} this.appendForm('embedded',this.config.embedded[p],appendInE);}}}} this.msgElement=document.createElement('div');this.msgElement.id='dinTargetFormMessage';appendIn.appendChild(this.msgElement);if(this.mouseoutElement!=null){var me=this;var fn=function(ev){if(ev.toElement==null&&ev.relatedTarget==null){dinLogger.Write(dinLogger.DEBUG,"Mouse outside document. Opening popup");me.openDialog(me.mouseoutElement.formId);}};dinFunctions.attachEventOnElement(window,'mouseout',fn)} if(this.scrollElement!=null){var me=this;var fn=function(ev){if(window.scrollY>=me.scrollElement.scroll){dinLogger.Write(dinLogger.DEBUG,"Required scroll triggered ["+me.scrollElement.scroll+"]. Opening popup");me.openDialog(me.scrollElement.formId);}};dinFunctions.attachEventOnElement(window,'scroll',fn) var fnResize=function(ev){if(me.dialogsHasClosed[me.scrollElement.formId]){return;} if(me.scrollElement.percent>0){me.scrollElement.scroll=dinFunctions.calcScrollPercentage(me.scrollElement.percent);}} dinFunctions.attachEventOnElement(window,'resize',fnResize)} if(this.timeElement!=null){var me=this;window.setTimeout(function(){dinLogger.Write(dinLogger.DEBUG,"Delay elapsed ["+me.timeElement.delay+"s]. Opening popup");me.openDialog(me.timeElement.formId);},me.timeElement.delay*1000);} if(this.config.local_mode=='embedded'){this.config.close_buttom='';} dinLogger.Write(dinLogger.DEBUG,"InitPopup done");},appendForm:function(mode,conf,appendIn){this.formId=conf.id;var me=this;var dialogElement=document.createElement('div');dialogElement.id='dinTargetFormDialog'+this.formId;dialogElement.setAttribute('dinTargetFormId',this.formId);dialogElement.className='dinTargetFormDialog '+mode;dialogElement.style.height=conf.height+'px';if(mode!="topbar"){dialogElement.style.width=conf.width+'px';} var content=document.createElement('div');content.className='dinTargetFormContent';var iframe=document.createElement('iframe');content.appendChild(iframe);dialogElement.appendChild(content);if(conf.close_buttom=='X'){var close=document.createElement('div');close.className='dinTargetFormCloseButtom';close.innerHTML="X";dialogElement.appendChild(close);close.onclick=function(){var formId=this.parentNode.getAttribute('dinTargetFormId');me.closeDialog(formId);}} appendIn.appendChild(dialogElement);var iframeHtml=dinFunctions.base64Decode(conf.dialog_html);var iframeContent=iframe.contentWindow.document;iframeContent.open();iframeContent.write(iframeHtml);iframeContent.close();var button=iframeContent.getElementById("closeButton");if(button!=undefined){button.onclick=function(){if(conf.redirect_buttom!=undefined&&conf.redirect_buttom!=""){location.href=conf.redirect_buttom;} me.closeDialog(dialogElement.getAttribute('dinTargetFormId'));}} var form=iframeContent.getElementsByClassName("formIntegration")[0];if(form==undefined){form=iframeContent.getElementById("formIntegration");} dinFunctions.addCookieToForm(iframeContent,form) if(conf.redirect_buttom!=undefined&&conf.redirect_buttom!=""){if(form!=undefined){var fn=function(){var inputError=iframeContent.getElementsByClassName("field-error");if(!inputError.length){setTimeout(function(){location.href=conf.redirect_buttom;},2000);}} dinFunctions.attachEventOnElement(form,'submit',fn)}} if(conf.close_buttom!='X'&&form!=undefined){var fn=function(){var inputError=iframeContent.getElementsByClassName("field-error");if(!inputError.length){setTimeout(function(){me.closeDialog(dialogElement.getAttribute('dinTargetFormId'));},2000);}} dinFunctions.attachEventOnElement(form,'submit',fn)} this.formsConfig[this.formId]=conf;if(mode=='embedded'){return;} switch(conf.show_mode){case"mouse_out":var moe={formId:this.formId};if(this.mouseoutElement){dinLogger.Write(dinLogger.DEBUG,"Popup ignored. There is already a popup appended in the 'mouse out' trigger. FormId ["+moe.formId+"]");break;} this.mouseoutElement=moe;break;case"scroll_move":var scrollShow=conf.scroll_show;var perc=0;if(scrollShow.indexOf('%')!=-1){perc=parseInt(scrollShow);if(!isNaN(perc)){var scrollShow=dinFunctions.calcScrollPercentage(perc);}} var se={scroll:scrollShow,formId:this.formId,percent:perc};if(this.scrollElement!=null){if(this.scrollElement.scroll>se.scroll){dinLogger.Write(dinLogger.DEBUG,"Popup ignored. There is already a popup appended in the 'scroll' trigger. FormId ["+this.scrollElement.formId+"]");}else{dinLogger.Write(dinLogger.DEBUG,"Popup ignored. There is already a popup appended in the 'scroll' trigger. FormId ["+se.formId+"]");break;}} this.scrollElement=se;break;default:var te={delay:conf.delay_open,formId:this.formId};if(this.timeElement!=null){if(this.timeElement.delay>te.delay){dinLogger.Write(dinLogger.DEBUG,"Popup ignored. There is already a popup appended in the 'time' trigger. FormId ["+this.timeElement.formId+"]");}else{dinLogger.Write(dinLogger.DEBUG,"Popup ignored. There is already a popup appended in the 'time' trigger. FormId ["+te.formId+"]");break;}} this.timeElement=te;break;} this.dialogElement[this.formId]=dialogElement;dinLogger.Write(dinLogger.DEBUG,"Popup append done");},openDialog:function(formId){if(this.dialogIsOpened||this.dialogsHasClosed[formId]){return;} var conf=this.formsConfig[formId];if(conf&&conf.remember_closed&&dinFunctions.getCookie('dinTargetForm_dead_'+formId)==1){return;} var ff=this.dialogElement[formId];if(!ff||(dinFunctions.isMobileRes()&&(conf.is_mobile_active==undefined||!conf.is_mobile_active))||(ff.classList.contains('scrollbox')&&dinFunctions.hasWhatsForm())){return;} ff.style.display='block';if(this.backElement!=null&&ff.classList.contains('popover')){this.backElement.style.display='block';} dinFunctions.fixDialogHeight(ff,this.getHeightIncrease(ff));var me=this;var fnResize=function(ev){if(me.dialogsHasClosed[formId]){return;} dinFunctions.fixDialogHeight(ff,me.getHeightIncrease(ff));} dinFunctions.attachEventOnElement(window,'resize',fnResize) this.dialogIsOpened=formId;},closeDialog:function(formId){var ff=this.dialogElement[formId];if(!this.dialogIsOpened||!ff||ff.style.display=='none'){return;} ff.style.display='none';if(this.backElement!=null){this.backElement.style.display='none';} this.dialogIsOpened=false;this.dialogsHasClosed[formId]=true;var conf=this.formsConfig[formId];if(conf&&conf.remember_closed){dinFunctions.setCookie('dinTargetForm_dead_'+formId,'1',conf.cookie_dead_days);}},closeMessage:function(){this.msgElement.style.display='none';},FormClosed:function(msg){if(this.dialogIsOpened){var conf=this.formsConfig[this.dialogIsOpened];if(conf.close_after_submit){this.closeDialog(this.dialogIsOpened);}} if(msg){this.msgElement.innerHTML='<div class="dinTargetFormCloseButtom" onclick="dinTargetForm.closeMessage()">X</div><span style="display: table-cell; vertical-align: middle;">'+msg+'</span>';this.msgElement.style.display='table';}},cssStyle:function(){var style=` <style type="text/css"> .dinTargetFormDialog, .dinTargetFormContent, .dinTargetFormContent iframe { box-sizing: content-box; } @viewport { width: device-width; height: device-height; zoom: 1.0 ; } @-ms-viewport { width: device-width; height: device-height; } @media screen and (max-width: 500px) { .dinTargetFormDialog.popover { width: 80%; max-width: 90%; max-height: 80%; } .dinTargetFormDialog.scrollbox { max-width: 65%; } } @media screen and (min-width: 501px) and (max-width: 850px) { .dinTargetFormDialog.popover { width: 80%; max-width: 90%; max-height: 80%; } .dinTargetFormDialog.scrollbox { max-width: 65%; } } @media screen and (min-width: 851px) { .dinTargetFormDialog.popover { max-width: 90%; min-width: initial; max-height: 95vh} } #dinTargetFormBackground { z-index: 999999998; position: fixed; top: 0; left: 0; height: 100vh; width: 100vw; background-color: #000000; opacity: 0.25; display: none; } #dinTargetFormMessage { z-index: 999999998; position: fixed; text-align: center; font-family: Arial; font-size: 14px; margin: auto; top: 50%; left: 50%; display: none; width: 400px; height: 100px; margin-top: -50px; margin-left: -200px; background-color: `+this.config.primary_color+`; } .dinTargetFormDialog:not(.embedded) { z-index: 999999999; position: fixed; display: none; -webkit-overflow-scrolling:touch!important; overflow-y: auto!important; overflow-x: hidden; } .dinTargetFormDialog.popover { margin: auto; top: 50%; left: 50%; transform: translate(-50%, -50%); border: none; background-color: transparent; padding: 10px; } .dinTargetFormDialog.scrollbox { max-height: 90%; right: 0; bottom: 0; } .dinTargetFormDialog.topbar { right: 0; top: 0; width: 100vw; max-height: 45vh; } /* Botão de fechar */ .dinTargetFormCloseButtom { position: absolute; width: 22px; height: 22px; background-color: #ffffff; cursor: pointer; font-size: 13px; font-family: Arial; font-weight: bolder; line-height: 20px; text-align: center; } .dinTargetFormDialog.popover .dinTargetFormCloseButtom, #dinTargetFormMessage .dinTargetFormCloseButtom { right: 0; top: 0; border-radius: 50%; border: 2px solid `+this.config.primary_color+`; } .dinTargetFormDialog.scrollbox .dinTargetFormCloseButtom { right: 0; top: 0; } .dinTargetFormDialog.topbar .dinTargetFormCloseButtom { right: 0; bottom: 0; position: absolute} /* Fim botão */ .dinTargetFormDialog:not(.embedded) .dinTargetFormContent { width: 100%; height: 100%; } .dinTargetFormContent iframe { border: 0px; width: 100%; height: 100%; position: absolute; top:0; left:0; right:0; bottom:0; margin: auto;} .dinTargetFormDialog.popover .dinTargetFormContent iframe { width: calc(100% - 20px); height: calc(100% - 20px) } </style>`;return style;},getHeightIncrease:function(dialogElement){var iframeContent=dialogElement.querySelector('iframe').contentWindow.document;var contentElement=iframeContent.querySelector('.content');var fatherElement=contentElement.parentElement;switch(fatherElement.className){case'scrollbox-03':case'scrollbox-04':return 20;default:return null;} return null;}} var dinWhatsForm={config:dinConfigs.dinWhatsAppIntegration,dialogElement:{},formsConfig:{},formId:0,Init:function(){if(this.config&&this.config.forms){dinLogger.Write(dinLogger.DEBUG,"InitWhatsIntegration Called");var url=window.location.href;var appendIn=document.body;dinFunctions.addViewportMetaTag();var style=document.createElement('div');style.id='dinWhatsFormStyle';style.innerHTML=this.cssStyle();appendIn.appendChild(style);var configObject=this.config.forms;if(configObject.length){var shouldDisplay=true,len=configObject.length;dinLogger.Write(dinLogger.DEBUG,"Found "+len+" 'whatsapp integrations");for(var p=0;p<len;p++){dinLogger.Write(dinLogger.DEBUG,"WhatsApp Integration ["+p+"]");if(configObject[p].show_filter&&configObject[p].show_filter.length){shouldDisplay=dinFunctions.matchesRulesParser(url,configObject[p].show_filter,"filterType","filterRules");} if(shouldDisplay){this.appendForm(configObject[p],appendIn);break;}}} dinLogger.Write(dinLogger.DEBUG,"InitWhatsIntegration done");}},appendForm:function(conf,appendIn){this.formId++;var me=this;var dialogElement=document.createElement('div');dialogElement.id='dinWhatsFormDialog'+this.formId;dialogElement.setAttribute('dinWhatsFormId',this.formId);dialogElement.className='dinWhatsFormDialog';dialogElement.style.display='block';var content=document.createElement('div');content.className='dinWhatsFormContent hideContent';var iframe=document.createElement('iframe');content.appendChild(iframe);dialogElement.appendChild(content);whatsIcoDiv=document.createElement('div');whatsIcoDiv.id='dinWhatsFormIco';whatsIcoDiv.className='dinWhatsFormIco';whatsIcoImg=document.createElement('img');whatsIcoImg.src='https://dl.dnzdns.com/i/whats01';closeIcoDiv=document.createElement('div');whatsIcoDiv.appendChild(closeIcoDiv);whatsIcoDiv.appendChild(whatsIcoImg) dialogElement.appendChild(whatsIcoDiv);appendIn.appendChild(dialogElement);if(conf.check_shake==="shake"){dialogElement.classList.add('dinShake');} if(conf.icon_whats_position==="left"){dialogElement.classList.add('dinBottomLeft');} var fn=function(e){if(whatsIcoDiv.contains(e.target)){content.classList.toggle('hideContent') closeIcoDiv.classList.toggle('close') if(content.classList.contains('hideContent')){setTimeout(function(){if(content.classList.contains('hideContent')){dialogElement.style.height='';dialogElement.style.width='';}},1000);return;} dialogElement.style.width='250px';dialogElement.style.height='350px';dinFunctions.fixDialogHeight(dialogElement,20) return;} if(!content.contains(e.target)&&!content.classList.contains('hideContent')){content.classList.add('hideContent');if(closeIcoDiv.classList.contains('close')){closeIcoDiv.classList.remove('close')} setTimeout(function(){if(content.classList.contains('hideContent')){dialogElement.style.height='';dialogElement.style.width='';}},1000);}};dinFunctions.attachEventOnElement(window,'click',fn) var iframeHtml=dinFunctions.base64Decode(conf.dialog_html);var iframeContent=iframe.contentWindow.document;iframeContent.open();iframeContent.write(iframeHtml);iframeContent.close();if(!dinFunctions.isMobileRes()){dinFunctions.reduceSelectOptions(iframeContent,23)} var form=iframeContent.querySelector('.formIntegration');if(form==undefined)form=iframeContent.querySelector('#formIntegration') dinFunctions.addCookieToForm(iframeContent,form) this.formsConfig[this.formId]=conf;this.dialogElement[this.formId]=dialogElement;dinLogger.Write(dinLogger.DEBUG,"WhatsApp Form append done");},cssStyle:function(){var style=` <style type="text/css"> @viewport { width: device-width; height: device-height; zoom: 1.0 ; } @-ms-viewport { width: device-width; height: device-height;} .dinWhatsFormDialog { z-index: 999999999; position: fixed; right: 0; bottom: 0;max-width: 80vw; max-height: calc(98vh - 70px); } .dinWhatsFormDialog.dinBottomLeft{right: unset; left: 0;} .dinWhatsFormDialog .dinWhatsFormContent { width: 100%; height: 100%; -webkit-overflow-scrolling:touch; overflow: auto; } .dinWhatsFormDialog > .dinWhatsFormContent iframe { border: 0px; width: 100%; height: 100%; position: absolute; top:0;left:0;right:0;bottom:0;} .dinWhatsFormDialog > .dinWhatsFormContent{ right: 7px; bottom: 70px; position: absolute; visibility: visible; transition: 1s; -webkit-box-shadow: 1px 1px 5px 1px rgba(50, 50, 50, 0.75); -moz-box-shadow: 1px 1px 5px 1px rgba(50, 50, 50, 0.75); box-shadow: 1px 1px 5px 1px rgba(50, 50, 50, 0.75); border-radius: 25px; } .dinWhatsFormDialog.dinBottomLeft > .dinWhatsFormContent{right: 0px; left: 7px;} .dinWhatsFormDialog > .dinWhatsFormContent.hideContent{ right: -300px; opacity: 0; visibility: hidden; transition: 1s; } .dinWhatsFormDialog.dinBottomLeft > .dinWhatsFormContent.hideContent{ right: 0px; left: -300px;} .dinWhatsFormDialog > .dinWhatsFormIco { float: right; position: fixed; opacity: 0.75; bottom: 3px; right: 7px; cursor: pointer; } .dinWhatsFormDialog.dinBottomLeft > .dinWhatsFormIco {float: left; left: 7px; right:unset;} .dinWhatsFormDialog > .dinWhatsFormIco img{ width: 100%; transition: 1s; } .dinWhatsFormDialog > .dinWhatsFormIco .close ~img { opacity: 0; } .dinWhatsFormDialog > .dinWhatsFormIco .close { margin: 7px; display: flex; position: absolute; width: 60%; height: 60%; opacity: .6; border: 4px solid; border-radius: 50%; justify-content: center; align-items: center; } .dinWhatsFormDialog > .dinWhatsFormIco .close:hover { opacity: 1; } .dinWhatsFormDialog > .dinWhatsFormIco .close:before, .dinWhatsFormIco .close:after { position: absolute; content: ' '; height: 80%; width: 6px; background-color: #333; } .dinWhatsFormDialog > .dinWhatsFormIco .close:before { transform: rotate(45deg); } .dinWhatsFormDialog > .dinWhatsFormIco .close:after { transform: rotate(-45deg); } .dinWhatsFormDialog.dinShake > .dinWhatsFormIco { animation: dinShake 5s; animation-iteration-count: infinite; } @keyframes dinShake { 0.0% { transform: translate(1px, 1px) rotate(0deg); } 0.5% { transform: translate(-1px, -2px) rotate(-2deg); } 1.0% { transform: translate(-3px, 0px) rotate(2deg); } 1.5% { transform: translate(3px, 2px) rotate(0deg); } 2.0% { transform: translate(1px, -1px) rotate(2deg); } 2.5% { transform: translate(-1px, 2px) rotate(-2deg); } 3.0% { transform: translate(-3px, 1px) rotate(0deg); } 3.5% { transform: translate(3px, 1px) rotate(-2deg); } 4.0% { transform: translate(-1px, -1px) rotate(2deg); } 4.5% { transform: translate(1px, 2px) rotate(0deg); } 5.0% { transform: translate(1px, -2px) rotate(-2deg); } 5.5% { transform: translate(-1px, -1px) rotate(2deg); } 6.0% { transform: translate(1px, 1px) rotate(0deg); } } </style>`;return style;}} var dinSearchForm={DebugMode:false,Init:function(){let ultimoEmailEnviado='';let funcDetectFillInputEmail=function(event){if(event.target.tagName!=='INPUT'||dinFunctions.hasSkipAttribute(event.target)){return} if(event.target.form&&dinFunctions.hasSkipAttribute(event.target.form)){return} let inputType=event.target.getAttribute("type");inputType=(typeof inputType=='string'?inputType.toLowerCase():'');if(inputType!="text"&&inputType!="email"&&inputType!=""){return} if(event.type==='input'){if(event.target.getAttribute('dinCheckAutoFill')=='1'){return} event.target.setAttribute('dinCheckAutoFill','1');} let tratarValorDoInput=function(){let valorCampo=event.target.value;if(valorCampo===''){return} if(dinFunctions.validateEmail(valorCampo)){if(ultimoEmailEnviado==valorCampo){return} ultimoEmailEnviado=valorCampo;dinLeadTracker.SetLeadEmail(valorCampo);dinLogger.Write(dinLogger.INFO,"Fill input with e-mail "+valorCampo+" by "+event.type+" event");}} if(event.type=="change"){window.setTimeout(tratarValorDoInput,1000);return} tratarValorDoInput()} document.addEventListener('blur',funcDetectFillInputEmail,true);document.addEventListener('input',funcDetectFillInputEmail,true);document.addEventListener('change',funcDetectFillInputEmail,true);if(!dinConfigs.crawlForms){dinLogger.Write(dinLogger.DEBUG,"Forms wont be crawled");return} let funcFindForm=function(){var form=document.getElementsByTagName("form");for(var i=0;i<form.length;i++){if(form[i].hasAttribute('data-din-capture')){continue} if(dinFunctions.hasSkipAttribute(form[i])){dinLogger.Write(dinLogger.DEBUG,"Form ignored because dinSkipCapture attribute - ",form[i]);continue} dinFunctions.attachEventOnElement(form[i],'submit',dinSearchForm.processForm);form[i].setAttribute('data-din-capture','1');dinLogger.Write(dinLogger.DEBUG,"Event attached to form ",form[i]);}} funcFindForm();window.setInterval(funcFindForm,1000);},processForm:function(event){var form=event.currentTarget;var formAction=form.getAttribute("action");var labelList={};if(formAction!=undefined&&formAction.search(/^http[s]?:\/\/[^\/]*\/in\/[0-9]*\/[^\/]*\//)==0){dinLogger.Write(dinLogger.DEBUG,"Dinamize's form ignored",form);return;} if(dinSearchForm.DebugMode){debugger;} if(formAction==undefined){formAction="Missing action form";dinLogger.Write(dinLogger.DEBUG,"Form without an action ",form);} dinFunctions.addCookieToForm(document,form) var urlPage=document.location.href;var uriPage=urlPage.replace(/^[a-z]*:\/\/[^\/]*/,"") formAction=formAction.replace(urlPage,"");formAction=formAction.replace(uriPage,"");if(formAction==""){formAction="Missing action form";} let formName=form.getAttribute("dinFormName");if(formName!=undefined){formAction="name:"+formName;dinLogger.Write(dinLogger.DEBUG,"Form Name found",form,formName);} var labels=document.getElementsByTagName("label");for(var l=0;l<labels.length;l++){if(labels[l].htmlFor){labelList[labels[l].htmlFor]=labels[l].textContent;}} var elemList={};var findEmail=false;var emailLeadTracker="";for(var e=0;e<form.elements.length;e++){var elem=form.elements[e];if(dinFunctions.hasSkipAttribute(elem)){dinLogger.Write(dinLogger.DEBUG,"Element ignored because dinSkipCapture attribute - ",elem.name);continue;} elemName=elem.name.replace(/\[\]/g,"");if(elemName==""){dinLogger.Write(dinLogger.INFO,"Ignoring nameless element on post ",elem);continue;} if(dinFunctions.validateDuplicity(form,elemName)){dinLogger.Write(dinLogger.ERROR,"Found different type inputs with same name - ",elemName);} switch(elem.tagName){case"INPUT":switch(elem.type){case"checkbox":if(typeof(elemList[elemName])=="undefined"){elemList[elemName]=[];} if(elem.checked==true){if(labelList[elem.id]!=undefined){elemList[elemName].push(labelList[elem.id]);}else{elemList[elemName].push(elem.value);}} break;case"radio":if(elem.checked==true){elemList[elemName]=(labelList[elem.id]!=undefined)?labelList[elem.id]:elem.value;} break;case"password":case"submit":case"file":case"button":case"reset":dinLogger.Write(dinLogger.INFO,"Field ignored. Type:["+elem.type+"] ",elem);break;case"email":if(dinFunctions.validateEmail(elem.value)){elemList["{{cmp1}}"]=elem.value findEmail=true;}else{dinLogger.Write(dinLogger.WARN,"Not a valid e-mail ",elem);} elemList[elemName]=elem.value break;default:if(elem.type=="hidden"&&elemName.match(/^_token[a-f0-9]{32,}$/)){dinLogger.Write(dinLogger.INFO,"Field discarded for variable name _tokenXXXX",elem);break;} elemList[elemName]=elem.value var normalize=elemName.replace(/[-_]/,"").trim().toLowerCase();if(normalize=="email"){if(dinFunctions.validateEmail(elem.value)){elemList["{{cmp1}}"]=elem.value findEmail=true;}else{dinLogger.Write(dinLogger.WARN,"Not a valid e-mail ",elem);}}else{if(dinFunctions.isCardNumber(elem.value)){dinLogger.Write(dinLogger.INFO,"Value discarded for Credit Card field ",elem);elemList[elemName]="**************";}} if(elem.type=="hidden"&&elem.value.length>100){elemList[elemName]="(...)";dinLogger.Write(dinLogger.INFO,"Value discarded for large hidden field ",elem);} break;} break;case"SELECT":elemList[elemName]=[];var optionElements=elem.getElementsByTagName('option');for(var y=0;y<optionElements.length;y++){var opt=optionElements.item(y);if(opt.selected){elemList[elemName].push(opt.label);}} break;case"TEXTAREA":dinLogger.Write(dinLogger.INFO,"Textarea ignored ",elem);break;default:elemList[elemName]=elem.value;break;}} let adicionalInput=form.querySelector('#__dinTrafficSource');if(adicionalInput!=null){adicionalInput.remove();} var ignoreElements=["captcha","_wpcf7","_wpcf7_version","_wpcf7_unit_tag","_wpnonce","_wpcf7_is_ajax_call","_wpcf7_locale","g-recaptcha-response","_viewstate","_previouspage","_viewstategenerator"];for(var i=0;i<ignoreElements.length;i++){elemList[ignoreElements[i]]=undefined;} var listCode=dinConfigs.listCode;var updateMode=dinConfigs.updateMode;var fieldList={};if(dinConfigs.formHashConfig&&dinConfigs.formHashConfig[formAction]!=undefined){var formData=dinConfigs.formHashConfig[formAction];listCode=formData["listCode"];updateMode=formData["updateMode"];if(typeof formData["fieldRules"]==="undefined"||formData["fieldRules"]==null){dinLogger.Write(dinLogger.DEBUG,"No rules configured for this form",formAction);}else{if(formData["fieldRules"]["Variable"]!=undefined){elemList["{{cmp1}}"]=undefined;for(var elemName in formData["fieldRules"]["Variable"]){if(elemList[elemName]!=undefined){var fieldData=formData["fieldRules"]["Variable"][elemName];if(typeof elemList[elemName]==='string'){var oldValue=elemList[elemName];switch(fieldData["Type"]){case"DT":case"DH":var dateFormat=fieldData["Extras"]["format"];fieldList["cmp"+fieldData["Field"]]=dinFunctions.prepareDate(oldValue,dateFormat);break;case"FLT":var separator=fieldData["Extras"]["separator"];switch(separator){case",":var newValue=oldValue.replace(".","");var newValue2=newValue.replace(",",".");fieldList["cmp"+fieldData["Field"]]=newValue2;break;case".":var newValue=oldValue.replace(",","");fieldList["cmp"+fieldData["Field"]]=newValue;break;} break;case"LV-2":var find=fieldData["Extras"]["separator"];var regFind=new RegExp(find,'g');var newValue=oldValue.replace(regFind,"|");fieldList["cmp"+fieldData["Field"]]=newValue;fieldList["cmp"+fieldData["Field"]+"_action"]=fieldData["Extras"]["action"];break;case"PHN":var arrNum=oldValue.match(/\d+/g) if(arrNum!=null){oldValue=arrNum.join("")} fieldList["cmp"+fieldData["Field"]]=oldValue;var insertDDI=fieldData["Extras"]["insertDDI"];if(insertDDI!=undefined&&insertDDI=="S"){var ddi=fieldData["Extras"]["ddi"];fieldList["cmp"+fieldData["Field"]]=ddi+oldValue;} break;default:fieldList["cmp"+fieldData["Field"]]=oldValue;break;}}else if(typeof elemList[elemName]==='object'){var oldValue=elemList[elemName];if(fieldData["Type"]=="LV-2"){fieldList["cmp"+fieldData["Field"]]=oldValue.join("|");fieldList["cmp"+fieldData["Field"]+"_action"]=fieldData["Extras"]["action"];}else{fieldList["cmp"+fieldData["Field"]]=oldValue[0];}}else{dinLogger.Write(dinLogger.ERROR,"Field: '"+elemName+"' | Type: "+typeof elemList[elemName]);}}}} if(formData["fieldRules"]["Fixed"]!=undefined){for(var x in formData["fieldRules"]["Fixed"]){fieldList["cmp"+formData["fieldRules"]["Fixed"][x]["Field"]]=formData["fieldRules"]["Fixed"][x]["Value"];if(formData["fieldRules"]["Fixed"][x]["Type"]=="LV-2"){fieldList["cmp"+formData["fieldRules"]["Fixed"][x]["Field"]+"_action"]=formData["fieldRules"]["Fixed"][x]["Extras"]["action"];}}}}}else{if(!findEmail){dinLogger.Write(dinLogger.WARN,"No valid email found.",form);return;}} var email="";var externalCode="";if(typeof fieldList.cmp1==="string"&&fieldList.cmp1!==""){email=fieldList.cmp1;} if(typeof fieldList.cmp3==="string"&&fieldList.cmp3!==""){externalCode=fieldList.cmp3;} if(typeof elemList["{{cmp1}}"]==="string"&&elemList["{{cmp1}}"]!==""){email=elemList["{{cmp1}}"];} if(typeof elemList["{{cmp3}}"]==="string"&&elemList["{{cmp3}}"]!==""){externalCode=elemList["{{cmp3}}"];} if(email===""&&externalCode===""){dinLogger.Write(dinLogger.WARN,"This form was mapped, but no valid email or external code was found. If you filled the form correctly, you'll need to remap it by deleting it's configuration and creating a new one.",form);return} if(typeof dinLeadTracker!=="undefined"&&dinLeadTracker.isActive()){if(email!==""){dinLeadTracker.SetLeadEmail(email);} if(externalCode!==""){dinLeadTracker.SetLeadExternalId(externalCode);}} var sendElement={url:document.location.href.split("?")[0],title:document.title,formId:form.id,formAction:formAction,elemList:elemList,fieldList:fieldList,version:dinVERSION,listCode:listCode,updateMode:updateMode,};var jsonStr=JSON.stringify(sendElement);if(jsonStr==undefined){dinLogger.Write(dinLogger.ERROR,"Couldn't generate form's json ",sendElement);return;} dinFunctions.requestKeepAlive('//receiver.emkt.dinamize.com/inc/'+dinConfigs.clientCode+'/'+dinConfigs.siteCode+'/'+encodeURIComponent(dinFunctions.base64Encode(jsonStr)),Math.floor((Math.random()*99999)+1));dinLogger.Write(dinLogger.DEBUG,"Data sent to Dinamize ",form);}} var dinEcommerceTools={config:dinConfigs.dinEcommerceTools,dataLayerEvent:null,cartItems:null,interestItems:null,viewItemInfo:null,btnRemoveSelector:Array(".remove-cart-item","[title*='Remove']","[title*='remove']","[title*='Delete']","[class*='item-remove']",'.remove','.bt-remover','.ch-cart-bin','.remove-cart-item','.delete',"[title*=Deletar]","[title*='Excluir']","[class~='remove-icon']",":not(td)[class*='item-delete']",".icon-trash",".btn.remover","[class*='TrashButton']","button.cart-buttons-trash"),eventDataLayerFinisher:Array('orderPlaced','purchase'),maxReturnLevel:5,maxTestReturnLevel:2,intervalCounter:0,runSearchCartProducts:0,runSearchAddToCart:0,checkCartTimer:null,initCompletelyProcessed:false,useCurrency:'BRL',useLang:'pt-BR',lastPurchaseSent:{time:0,amount:0.00,source:''},Init:function(){if(this.initCompletelyProcessed){return} if(typeof this.config=="undefined"){dinLogger.Write(dinLogger.INFO,"EcommerceTools undefined (update config)");return} dinLogger.Write(dinLogger.INFO,"EcommerceTools called");let lang=document.getElementsByTagName('html')[0].getAttribute('lang');if(lang){this.useLang=lang;} this.cartItems=this.ListItems.New("Cart");this.interestItems=this.ListItems.New("Interest",this.config.maxInterestItems);if(dinConfigs.crawlEcommerce){this.initCompletelyProcessed=true;this.loadData();this.waitingAndReadDataLayer();this.searchCartProducts();this.searchAddToCartAndInsertEvent();} dinLogger.Write(dinLogger.INFO,"EcommerceTools done");},waitingAndReadDataLayer:function(){var dataLayerCheck=window.setInterval(function(){if(typeof window.dataLayer!='undefined'&&window.dataLayer!=null){dinEcommerceTools.listenerDataLayer();if(dinEcommerceTools.runSearchCartProducts==2&&dinEcommerceTools.runSearchAddToCart==2){dinEcommerceTools.searchCartProducts();dinEcommerceTools.searchAddToCartAndInsertEvent();} window.clearInterval(dataLayerCheck);return} dinLogger.Write(dinLogger.DEBUG,"Waiting dataLayer");},300);},listenerDataLayer:function(){const dataLayer=window.dataLayer||[];if(!dataLayer.dinAppendPushFunction){dataLayer.dinAppendPushFunction=true;this.dataLayerEvent=dataLayer.push.bind(dataLayer);dataLayer.push=function(...args){if(typeof dinEcommerceTools.dataLayerEvent==='function'){dinEcommerceTools.dataLayerEvent(...args);} dinEcommerceTools.pushInDataLayer(true,...args);} dinLogger.Write(dinLogger.DEBUG,"dataLayer push configured");} for(var dl=0;dl<dataLayer.length;dl++){dinEcommerceTools.pushInDataLayer(false,dataLayer[dl]);} dinLogger.Write(dinLogger.DEBUG,"dataLayer scan. total",dataLayer.length);},eventoDeInteresse:function(e){if(typeof e==='object'){if(typeof e.event==='string'&&typeof e.ecommerce==='object'&&e.ecommerce!=null&&['purchase'].indexOf(e.event)!=-1){return e.event;} if(typeof e.event==='undefined'&&typeof e.ecommerce==='object'&&e.ecommerce!=null&&typeof e.ecommerce.purchase==='object'&&e.ecommerce.purchase!=null){return'purchase';}} return null;},reportEvents:function(...args){if(!dinLeadTracker.hasCookieInfo()){return;} let i=0;for(i in args){let e=args[i];let dinTipoEvento=this.eventoDeInteresse(e);if(dinTipoEvento===null){continue;} e.dinLeadInfo=dinLeadTracker.getCookieObj();let eSend={infoEvento:{uuid:(typeof crypto==='object'&&typeof crypto.randomUUID==='function')?crypto.randomUUID():'',cliente:dinConfigs.clientCode,lista:(typeof dinConfigs.leadTracking==='object'&&typeof dinConfigs.leadTracking.LIST==='string'&&parseInt(dinConfigs.leadTracking.LIST,10)!=NaN)?parseInt(dinConfigs.leadTracking.LIST,10):0,identificadorEvento:dinTipoEvento,evento:e}};dinPosclick.RegisterAccess('event',eSend);}},pushInDataLayer:function(livemode,...args){dinLogger.Write(dinLogger.DEBUG,"dataLayer push",args);try{dinEcommerceTools.reportEvents(...args);} catch(error){dinLogger.Write(dinLogger.DEBUG,"exception ao rodar reportEvents");} var eventObject=args[0];var eventName=(eventObject.event||'');if(typeof eventObject.ecommerce==='object'&&eventObject.ecommerce!=null){eventObject=eventObject.ecommerce;if(typeof eventObject.currency!=='undefined'){this.useCurrency=eventObject.currency;} if(typeof eventObject.currencyCode!=='undefined'){this.useCurrency=eventObject.currencyCode;}} if(eventName==''&&typeof eventObject==='object'&&eventObject.length>2&&eventObject[0]=='event'){eventName=eventObject[1];eventObject=eventObject[2];} if(!eventObject){eventObject={};} if(typeof eventObject.purchase!=='undefined'&&eventName==''){eventName='purchase';} if(typeof eventName==='string'&&eventName!=''){for(var i=0;i<this.eventDataLayerFinisher.length;i++){if(eventName==this.eventDataLayerFinisher[i]){dinLogger.Write(dinLogger.INFO,"completed purchase - identification via dataLayer, event:",eventName);let amount=(eventObject.value||0.00);let categories=[];if(typeof eventObject.purchase!=='undefined'&&typeof eventObject.purchase.actionField!='undefined'&&typeof eventObject.purchase.actionField.revenue!='undefined'){amount=eventObject.purchase.actionField.revenue;} if(amount==0){dinLogger.Write(dinLogger.ERROR,"purchase event don't have amount, event:",eventName,eventObject);return} if(typeof eventObject.purchase!=='undefined'&&typeof eventObject.purchase.products!='undefined'){for(let p=0;p<eventObject.purchase.products.length;p++){if(typeof eventObject.purchase.products[p].category!='undefined'&&eventObject.purchase.products[p].category){let c=eventObject.purchase.products[p].category;if(!categories.includes(c)){categories.push(c);}}}} if(eventName=='purchase'&&typeof eventObject.items!='undefined'&&eventObject.items.length>0){for(let i=0;i<eventObject.items.length;i++){let item=eventObject.items[i];for(let p=1;true;p++){let attrName='item_category'+(p==1?'':p);if(typeof item[attrName]=='undefined'){break;} if(!categories.includes(item[attrName])){categories.push(item[attrName]);}}}} this.purchase('dataLayer',amount,categories);return;}} if(eventName=='page_view'||eventName=='pageView'){return} if(eventName=='productDetail'||eventName=='productView'&&(typeof eventObject.detail!=='undefined'&&typeof eventObject.detail.products!=='undefined')){if(eventObject.detail.products.length==1){this.viewItemInfo={id:(eventObject.detail.products[0].id||eventObject.detail.products[0].item_id||null),name:(eventObject.detail.products[0].name||eventObject.detail.products[0].item_name||null),value:(eventObject.detail.products[0].price||null),image:null,quantity:1,link:null} let prod=this.ProductInfo.New();prod.searchInfoInViewPage(this.viewItemInfo);if(this.cartItems.searchItemAndCheckUpdate(prod)==-1){this.interestItems.insertItem(prod.info,'productDetail/productView') this.sendInterest('product info found');} return}} if(typeof eventObject.pageType!=='undefined'&&eventObject.pageType=='product'&&typeof eventObject.products!=='undefined'){if(eventObject.products.length==1){this.viewItemInfo={id:(eventObject.products[0].sku||null),name:(eventObject.products[0].name||null),value:(eventObject.products[0].price||null),image:null,quantity:(eventObject.products[0].quantity||1),link:null} let prod=this.ProductInfo.New();prod.searchInfoInViewPage(this.viewItemInfo);if(this.cartItems.searchItemAndCheckUpdate(prod)==-1){this.interestItems.insertItem(prod.info,'pageType [product]');this.sendInterest('product info found');} return}} if(eventName=='view_item'||eventName=='view_item_list'){if(this.viewItemInfo!=null){this.viewItemInfo=null;} if(typeof eventObject.items!=='undefined'&&eventObject.items.length==1){this.viewItemInfo={id:(eventObject.items[0].id||eventObject.items[0].item_id||null),name:(eventObject.items[0].name||eventObject.items[0].item_name||null),value:(eventObject.items[0].price||eventObject.value||null),image:null,quantity:1,link:null} let prod=this.ProductInfo.New();prod.searchInfoInViewPage(this.viewItemInfo);if(this.cartItems.searchItemAndCheckUpdate(prod)==-1){this.interestItems.insertItem(prod.info,'eventName ['+eventName+']');this.sendInterest('product info found');} return}} if(eventName=='addToCart'||eventName=='add_to_cart'){let isNuvemShop=(document.querySelector('meta[property="og:type"][content="nuvemshop:product"]')!=null);let isShopify=(document.querySelector('script#shopify-features')!=null);if(isNuvemShop||isShopify){return} let prods=[];if(typeof eventObject.add!=='undefined'&&typeof eventObject.add.products!=='undefined'){prods=eventObject.add.products;} if(typeof eventObject.items!=='undefined'){prods=eventObject.items;} for(var p=0;p<prods.length;p++){var prod={id:(prods[p].id||prods[p].item_id||null),name:(prods[p].name||prods[p].item_name),value:prods[p].price,image:'undefined',quantity:(prods[p].quantity||1),link:'undefined'};this.interestItems.searchItemAndCheckUpdate(prod);if(this.cartItems.insertItem(prod,'dataLayer')){this.interestItems.removeItem(prod,'inserted in cart')}} this.sendCart('dataLayer '+eventName);this.sendInterest('dataLayer '+eventName);return} if(eventName=='removeFromCart'||eventName=='remove_from_cart'){let prods=[];if(typeof eventObject.remove!=='undefined'&&typeof eventObject.remove.products!=='undefined'){prods=eventObject.remove.products;} if(typeof eventObject.items!=='undefined'){prods=eventObject.items;} for(var p=0;p<prods.length;p++){var prod={id:(prods[p].id||prods[p].item_id||null),name:(prods[p].name||prods[p].item_name),value:prods[p].price,image:'undefined',quantity:(prods[p].quantity||1),link:'undefined'};this.cartItems.searchItemAndCheckUpdate(prod);this.cartItems.removeItem(prod,'dataLayer');this.interestItems.insertItem(prod,'removed from cart');} this.sendCart('dataLayer '+eventName);this.sendInterest('dataLayer '+eventName);return} if(eventName=='view_cart'||eventName=='cartView'||(typeof eventObject.pageType!=='undefined'&&eventObject.pageType=='cart')){dinEcommerceTools.timerCartFinder();return}} if(typeof eventObject.PageType!=='undefined'&&eventObject.PageType=='ProductPage'){this.viewItemInfo={id:(eventObject.ProductID||null),name:(eventObject.productName||null),value:(eventObject.productPriceTo||null),image:null,quantity:1,link:(eventObject.pageUrl||null)};let prod=this.ProductInfo.New();prod.searchInfoInViewPage(this.viewItemInfo);if(this.cartItems.searchItemAndCheckUpdate(prod)==-1){this.interestItems.insertItem(prod.info,'PageType/ProductPage') this.sendInterest('product info found');} return} var isPageProductDetail=false if(typeof args[0].pageType!=='undefined'&&args[0].pageType=='detail'){isPageProductDetail=true;} if(typeof args[0].page!=='undefined'&&typeof args[0].page.pageID!=='undefined'&&args[0].page.pageID=='product'){isPageProductDetail=true;} if(typeof args[0].ecommerce==='undefined'){isPageProductDetail=false;} if(isPageProductDetail){var eventEcommerce=args[0].ecommerce;if(typeof eventEcommerce.detail!=='undefined'&&typeof eventEcommerce.detail.products!=='undefined'){var prods=eventEcommerce.detail.products;if(prods.length>0){this.viewItemInfo={id:(prods[0].id||prods[0].item_id||null),name:(prods[0].name||prods[0].item_name),value:prods[0].price,image:dinFunctions.normalizeUrl(prods[0].thumbnail||prods[0].image||null),quantity:1,link:dinFunctions.normalizeUrl(document.location.pathname)};let prod=this.ProductInfo.New();prod.searchInfoInViewPage(this.viewItemInfo);if(this.cartItems.searchItemAndCheckUpdate(prod)==-1){this.interestItems.insertItem(prod.info,'isPageProductDetail');this.sendInterest('product info found');} return}}} if(livemode){dinLogger.Write(dinLogger.DEBUG,"Evento dataLayer não tratado:",args[0]);}},findCart:function(){var foundBtnCheckout=false;let allBtn=document.querySelectorAll('button, a, input[type="submit"]');for(let i=0;i<allBtn.length;i++){if(allBtn[i].outerHTML.match(/(finalizar|check[ ]?out|prosseguir|payment|cart\.finalize|fechar pedido|concluir pedido)/i)&&allBtn[i].textContent.trim().length<40){let subElem=allBtn[i].querySelectorAll(':not(svg,svg *)');if(subElem&&subElem.length>6){continue} if(allBtn[i].clientWidth==0){continue} dinLogger.Write(dinLogger.DEBUG,"Checkout button found",allBtn[i]);foundBtnCheckout=true;break;}} if(!foundBtnCheckout){return false;} return true;},searchCartProducts:function(){this.runSearchCartProducts=1;let hasCart=this.findCart();if(!hasCart){dinLogger.Write(dinLogger.INFO,"Not found cart elements");this.runSearchCartProducts=2;return false;} var selector="";for(let s=0;s<this.btnRemoveSelector.length;s++){let removeBtns=document.querySelectorAll(this.btnRemoveSelector[s]);var removeBtn=null;for(let i=0;i<removeBtns.length;i++){if(removeBtns[i].offsetParent!==null){removeBtn=removeBtns[i]}} if(!removeBtn){continue;} dinLogger.Write(dinLogger.DEBUG,"Remove button found",this.btnRemoveSelector[s],removeBtn);var rewind=0;for(let multiLevel=1;multiLevel<=this.maxTestReturnLevel&&!rewind;multiLevel++){for(let r=this.maxReturnLevel*multiLevel;r>this.maxReturnLevel*(multiLevel-1);r--){let objLevel=dinFunctions.getParentElement(removeBtn,r);let removeBtns=objLevel.querySelectorAll(this.btnRemoveSelector[s]);let counter=0;let identifyStrFirst=null;for(let i=0;i<removeBtns.length;i++){if(removeBtns[i].offsetParent!==null){let identifyStr=removeBtns[i].tagName+'|'+removeBtns[i].className if(identifyStrFirst&&identifyStr!=identifyStrFirst){continue} identifyStrFirst=identifyStr counter++;}} if(counter>1){continue;} let product=this.ProductInfo.New();if(!product.search(objLevel)){break;} rewind=r;}} if(!rewind){continue;} selector=this.btnRemoveSelector[s];break;} if(selector==""){this.runSearchCartProducts=2;return false;} let removeBtns=document.querySelectorAll(selector);let cartItems=[];for(let i=0;i<removeBtns.length;i++){let objLevel=dinFunctions.getParentElement(removeBtns[i],rewind);let product=this.ProductInfo.New();if(product.search(objLevel)){cartItems.push(product.info);}} this.insertEventInRemoveButton(selector,rewind);if(cartItems.length>0){for(let i=0;i<cartItems.length;i++){let itemPosition=this.cartItems.searchItemAndCheckUpdate(cartItems[i]);if(itemPosition==-1){continue;} let attr=['id','value','quantity','image','link'];for(let j=0;j<attr.length;j++){if(!cartItems[i][attr[j]]||cartItems[i][attr[j]]==='undefined'){cartItems[i][attr[j]]=this.cartItems.list[itemPosition][attr[j]];}}} this.cartItems.cleanItems(false);for(let i=0;i<cartItems.length;i++){this.cartItems.insertItem(cartItems[i],'readCart');this.interestItems.removeItem(cartItems[i],'inserted in cart');} this.sendCart('found cart');this.sendInterest('found cart');} this.runSearchCartProducts=3;return true;},insertEventInRemoveButton:function(selector,rewind){let removeBtns=document.querySelectorAll(selector);for(let i=0;i<removeBtns.length;i++){let objLevel=dinFunctions.getParentElement(removeBtns[i],rewind);let product=this.ProductInfo.New();if(product.search(objLevel)){let removeBtn=removeBtns[i];if(removeBtn.tagName!="BUTTON"&&removeBtn.tagName!="A"&&removeBtn.tagName!="SPAM"&&removeBtn.tagName!="DIV"){let newButton=removeBtn.querySelector('button, a, spam, div');if(newButton){removeBtn=newButton;}} if(typeof removeBtn.dinRemoveInfo=='undefined'){removeBtn.dinRemoveInfo={'product':product.info,'selector':selector,'rewind':rewind};dinLogger.Write(dinLogger.DEBUG,"Add event in remove button",removeBtn);removeBtn.addEventListener('click',function(){let product_info=this.dinRemoveInfo['product'];let selector=this.dinRemoveInfo['selector'];let rewind=this.dinRemoveInfo['rewind'];dinEcommerceTools.cartItems.removeItem(product_info,'remove click');dinEcommerceTools.interestItems.insertItem(product_info,'removed from cart');dinEcommerceTools.sendCart('remove click');dinEcommerceTools.sendInterest('remove click');setTimeout(function(){dinEcommerceTools.insertEventInRemoveButton(selector,rewind)},1000);});}}}},searchAddToCartAndInsertEvent:function(){this.runSearchAddToCart=1;let allBtn=document.querySelectorAll('button, a, input[type="submit"], [class*="btn"]');let totalFound=0;for(let i=0;i<allBtn.length;i++){let isAddCart=allBtn[i].textContent.match(/(adicionar|acrescentar|comprar)/i) if(!isAddCart){isAddCart=allBtn[i].outerHTML.match(/(buy|add-cart)/i)} if(isAddCart&&allBtn[i].textContent.trim().length>30){isAddCart=false} if(!isAddCart){continue} let subElem=allBtn[i].querySelectorAll('*');if(subElem&&subElem.length>6){continue} dinLogger.Write(dinLogger.DEBUG,"Buy button found",allBtn[i]);totalFound++;let fnBuyButton=function(e){let cancelEvent='';if(e.type=='mousedown'){cancelEvent='click';} if(e.type=='click'){cancelEvent='mousedown';} if(cancelEvent){this.removeEventListener(cancelEvent,fnBuyButton);dinLogger.Write(dinLogger.DEBUG,"Event '"+cancelEvent+"' removed");} let isProductPage=false;let ref=dinFunctions.getParentElement(this,dinEcommerceTools.maxReturnLevel);let inputCep=ref.querySelectorAll('input');for(let c=0;c<inputCep.length;c++){if(inputCep[c].outerHTML.match(/(cep|zipcode)/i)){isProductPage=true;}} if(dinEcommerceTools.viewItemInfo){isProductPage=true;} let product=dinEcommerceTools.ProductInfo.New();if(!isProductPage){product.searchInfoInMultiCard(this);} if(isProductPage){product.searchInfoInViewPage(dinEcommerceTools.viewItemInfo);} if(product.isValid()&&dinEcommerceTools.cartItems.insertItem(product.info,'buy click')){dinEcommerceTools.interestItems.removeItem(product.info,'inserted in cart');dinEcommerceTools.sendCart('buy click');dinEcommerceTools.sendInterest('buy click');} dinEcommerceTools.timerCartFinder();} allBtn[i].addEventListener('mousedown',fnBuyButton);allBtn[i].addEventListener('click',fnBuyButton);} this.runSearchAddToCart=(totalFound==0)?2:3;},timerCartFinder:function(){if(dinEcommerceTools.checkCartTimer){clearInterval(dinEcommerceTools.checkCartTimer);} dinEcommerceTools.intervalCounter=0;dinEcommerceTools.checkCartTimer=setInterval(function(){dinEcommerceTools.intervalCounter++;dinLogger.Write(dinLogger.DEBUG,"Cart finder counter",dinEcommerceTools.intervalCounter);let stopNow=false;if(dinEcommerceTools.intervalCounter>5){stopNow=true;} if(dinEcommerceTools.searchCartProducts()){stopNow=true;} if(stopNow){clearInterval(dinEcommerceTools.checkCartTimer);}},1000);},loadData:function(){this.cartItems.load() this.interestItems.load()},cleanData:function(){this.cartItems.cleanItems();this.interestItems.cleanItems();},updateLeadEmail:function(){if(typeof this.config=="undefined"){return} if(dinConfigs.crawlEcommerce){this.sendCart('update lead email');this.sendInterest('update lead email');}},sendCart:function(source){if(!this.config.hashsUnfinishedPurchase){return;} for(let i=0;i<this.config.hashsUnfinishedPurchase.length;i++){this.cartItems.send(this.config.hashsUnfinishedPurchase[i],source)}},sendInterest:function(source){if(!this.config.hashsInterestItems){return;} if(this.cartItems.list.length>0){for(let i=0;i<this.config.hashsInterestItems.length;i++){this.cartItems.cancel(this.config.hashsInterestItems[i]);} return;} for(let i=0;i<this.config.hashsInterestItems.length;i++){this.interestItems.send(this.config.hashsInterestItems[i],source)}},purchase:function(source,amount,categories){if(this.config.hashsUnfinishedPurchase){for(let i=0;i<this.config.hashsUnfinishedPurchase.length;i++){this.cartItems.cancel(this.config.hashsUnfinishedPurchase[i]);}} this.cartItems.cleanItems();this.interestItems.cleanItems();if(typeof(amount)=='string'){let fAmount=parseFloat(amount);if(isNaN(fAmount)){dinLogger.Write(dinLogger.ERROR,"invalid amount in purchase ("+source+") Amount:",amount);return} amount=fAmount;} if(this.config.hashsPurchase){let unixtime=Math.floor(Date.now()/1000);if(this.lastPurchaseSent.time+5>=unixtime&&this.lastPurchaseSent.amount==amount&&this.lastPurchaseSent.source==source){dinLogger.Write(dinLogger.WARN,"duplicate purchase record ("+source+") Amount:",amount);return} for(let i=0;i<this.config.hashsPurchase.length;i++){dinLogger.Write(dinLogger.INFO,"sent purchase ("+source+") Amount:",amount);dinPosclick.Purchase(dinConfigs.domain,this.config.hashsPurchase[i],{"amount":amount,"categories":categories});this.lastPurchaseSent={time:unixtime,amount:amount,source:source};}}},getBestImage:function(imgUri){if(typeof imgUri!='string'){return'';} let uriImages=[{reg:/(?<b>vteximg.com.br\/arquivos\/ids\/[0-9]+-)(?<w>[0-9]+)-([0-9]+|auto)\//,rep:'\$<b>256-auto/'},{reg:/(?<b>vtexassets.com\/arquivos\/ids\/[0-9]+-)(?<w>[0-9]+)-([0-9]+|auto)/,rep:'\$<b>256-auto'},{reg:/(?<b>cdn.awsli.com.br\/)(?<w>[0-9]+)x(?<h>[0-9]+)\//,rep:'\$<b>256x256/'},{reg:/(?<b>fbitsstatic.net\/img\/p\/[0-9]+\/[^?]+)\?w=(?<w>[0-9]+)&h=(?<h>[0-9]+)/,rep:'\$<b>?w=256&h=256'},{reg:/(?<b>cdn.vnda.com.br\/)(?<w>[0-9]+)x\//,rep:'\$<b>256x/'},];for(let u=0;u<uriImages.length;u++){let thumb=imgUri.match(uriImages[u].reg);if(thumb&&typeof thumb.groups!=='undefined'){if((!thumb.groups.h||thumb.groups.w==thumb.groups.h)&&thumb.groups.w<256){return imgUri.replace(uriImages[u].reg,uriImages[u].rep);}}} return imgUri},ListItems:{New:function(typeName,max=0){this.typeName=typeName;this.list=[];this.maxItems=max;return{...this};},typeName:'',maxItems:0,list:[],load:function(){this.updateDateLocalStorage();this.list=JSON.parse(localStorage.getItem(this.getLocalStorageName()));if(typeof this.list=='undefined'||this.list==null){this.list=[];}},searchItemAndCheckUpdate:function(prod){let foundPos=-1;for(let i=0;i<this.list.length;i++){let item=this.list[i];if((item.name&&item.name==prod.name)||(item.id&&item.id==prod.id)){foundPos=i;if(!item.link||(item.link=='undefined'&&prod.link!='undefined')){this.list[i].link=prod.link;} if(!item.image||(item.image=='undefined'&&prod.image!='undefined')){this.list[i].image=prod.image;} if(!item.id){this.list[i].id=prod.id;} if(!item.name){this.list[i].name=prod.name;} if(!item.value){this.list[i].value=prod.value;} if(!item.quantity){this.list[i].quantity=prod.quantity;} break;}} return foundPos;},insertItem:function(prod,source){let found=(this.searchItemAndCheckUpdate(prod)!=-1);if(!found){if(this.maxItems>0&&this.list.length==this.maxItems){let removed=this.list.shift();dinLogger.Write(dinLogger.INFO,"Removed item by max items in "+this.typeName+" ("+source+")",removed);} this.list.push(prod);dinLogger.Write(dinLogger.INFO,"Inserted product in "+this.typeName+" ("+source+")",prod);return true;} return false;},removeItem:function(prod,source){let foundPos=this.searchItemAndCheckUpdate(prod);if(foundPos!=-1){let newItems=[];for(let i=0;i<this.list.length;i++){if(i==foundPos){dinLogger.Write(dinLogger.INFO,"Removed product in "+this.typeName+" ("+source+")",prod);continue;} newItems.push(this.list[i]);} this.list=newItems;}},cleanItems:function(cleanMemory=true){if(cleanMemory){localStorage.removeItem(this.getLocalStorageName());localStorage.removeItem(this.getLocalStorageSentName());} this.list=[];},send:function(automationHash,source){let hasInfo=dinLeadTracker.hasCookieInfo();let localItems=JSON.stringify(this.list);this.updateDateLocalStorage();let forceSent=false;if(hasInfo&&localStorage.getItem(this.getLocalStorageSentName)!='1'){forceSent=true;} if(!forceSent&&localStorage.getItem(this.getLocalStorageName())==localItems){dinLogger.Write(dinLogger.DEBUG,this.typeName+" without changes ("+source+")",localItems);return;} localStorage.setItem(this.getLocalStorageName(),localItems);if(!hasInfo){dinLogger.Write(dinLogger.DEBUG,this.typeName+" without contact info ("+source+")",localItems);return;} items=[];for(let k=0;k<this.list.length;k++){let item={'id':this.list[k].id,'name':this.list[k].name,'image':dinEcommerceTools.getBestImage(this.list[k].image),'link':this.list[k].link,'unitary_value':this.list[k].value,'amount':this.list[k].quantity} if(this.list[k].link=="undefined"){delete item.link;} if(this.list[k].image=="undefined"){item.image='https://place-hold.it/1x1';if(typeof dinConfigs.leadTracking.LISTA_PRODUTOS!='undefined'){delete item.image;}} if(typeof this.list[k].value=='string'){let v=this.list[k].value let re=/([0-9])[\.,]([0-9]{3})([\.,])/;while(v.match(re)){v=v.replace(re,'$1$2$3');} v=v.replace(',','.');if(!isNaN(parseFloat(v))){this.list[k].value=parseFloat(v);}} if(typeof this.list[k].value=='number'&&typeof this.list[k].value.toLocaleString==='function'){item.unitary_value=this.list[k].value.toLocaleString(dinEcommerceTools.useLang,{style:"currency",currency:dinEcommerceTools.useCurrency});} if(!item.id){item.id=item.name;} items.push(item);} if(!automationHash){dinLogger.Write(dinLogger.INFO,"Automation hash unknow, skip send "+this.typeName+" ("+source+")",items);return} localStorage.setItem(this.getLocalStorageSentName(),"1");if(items.length==0){dinLogger.Write(dinLogger.INFO,"sent empty "+this.typeName+" ("+source+")");this.cancel(automationHash);return} dinLogger.Write(dinLogger.INFO,"sent "+this.typeName+" ("+source+")",items);let obj={"cart_data":items};if(typeof dinConfigs.leadTracking.LISTA_PRODUTOS!='undefined'){obj={...obj,"product_list":dinConfigs.leadTracking.LISTA_PRODUTOS};} dinPosclick.ReplaceTimer(dinConfigs.domain,automationHash,obj);localStorage.setItem(this.getLocalStorageHash(automationHash),"send")},cancel:function(automationHash){if(localStorage.getItem(this.getLocalStorageHash(automationHash))!="send"){return;} dinPosclick.CloseTimer(dinConfigs.domain,automationHash);localStorage.setItem(this.getLocalStorageHash(automationHash),"close")},getLocalStorageName:function(){return"dinEcommerceTools_"+this.typeName+"Items";},getLocalStorageSentName:function(){return"dinEcommerceTools_"+this.typeName+"Sent";},getLocalStorageHash:function(hash){return"dinEcommerceTools_hash_"+hash;},updateDateLocalStorage:function(){let maxTimer=60*60*24;let timerName="dinEcommerceTools_"+this.typeName+"LastUpdate";let lastUpdate=localStorage.getItem(timerName);let secondsNow=Math.floor(new Date().getTime()/1000);if(lastUpdate){lastUpdate=parseInt(lastUpdate);if(lastUpdate+maxTimer<secondsNow){this.cleanItems();dinLogger.Write(dinLogger.INFO,"localStorage expire "+this.typeName+"LastUpdate "+lastUpdate);}} localStorage.setItem(timerName,secondsNow);}},ProductInfo:{New:function(){this.info={id:null,name:null,value:null,quantity:null,image:null,link:null,} return{...this}},info:{},isValid(){if(this.info.name&&this.info.value&&(this.info.image||this.info.id)){return true;} return false;},findValue:function(obj,ltr=false){const re=/[^ ]*[ ]?[0-9\.]+,[0-9]{2}[^0-9]?/g const reC=/[a-z]?\$[a-z]?[ ]?[0-9\.]+(,[0-9]{2})?/gi var foundValue=null;var allElem=obj.querySelectorAll("span, div, p, td, h3, h4, h5, h6, strong, b");let initKey=allElem.length-1;let finalKey=0;let increment=-1;let condition=function(key,final){return key>=final;};if(ltr){initKey=0;finalKey=allElem.length;increment=1;condition=function(key,final){return key<final;};} let elementosComValor=[];for(var i=initKey;condition(i,finalKey);i+=increment){var subElem=allElem[i].querySelectorAll("*") if(subElem&&subElem.length>3){continue;} let s=getComputedStyle(allElem[i]);if(s.display.match(/none/g)||allElem[i].offsetParent==null){continue;} if(s.textDecoration.match(/line-through/g)){continue;} var v=allElem[i].textContent.match(re);if(v){elementosComValor.push({obj:allElem[i],value:v[v.length-1].trim()});continue} var v=allElem[i].textContent.match(reC);if(v){elementosComValor.push({obj:allElem[i],value:v[v.length-1].trim()});continue}} let maiorFontSize=0;const fatorPadrao=1.2;for(var i=0;i<elementosComValor.length;i++){let e=getComputedStyle(elementosComValor[i].obj);let fS=parseFloat(e.fontSize);cssLineHeight=e.lineHeight;if(cssLineHeight.trim().match(/%$/)){let perc=parseFloat(cssLineHeight);cssLineHeight=(perc/100*fatorPadrao*fS)+'px';} if(cssLineHeight.trim().match(/^[0-9\.]*$/)){let raw=parseFloat(cssLineHeight);cssLineHeight=(raw*fatorPadrao*fS)+'px';} let lH=parseFloat(cssLineHeight);if(isNaN(lH)){lH=fatorPadrao*fS;} let tam=fS*(lH/fS);if(maiorFontSize<tam){maiorFontSize=tam;foundValue=elementosComValor[i].value;}} if(foundValue){foundValue=foundValue.replace(/\s+/,' ');return foundValue} return null},findQuantity:function(obj){var inputs=obj.querySelectorAll("input") for(var i=0;i<inputs.length;i++){var type=inputs[i].getAttribute('type');if(type=="number"||type=="tel"||type=="text"){if(inputs[i].value){return inputs[i].value;}} if(inputs[i].outerHTML.match(/quantity/i)){if(inputs[i].value){return inputs[i].value;}}} a=obj.querySelector("span.item-quantity, .quantity, [class*='quantity']");if(a){let subElems=a.querySelectorAll("span") if(subElems&&subElems.length>0){for(let e=0;e<subElems.length;e++){let m=subElems[e].textContent.match(/^[0-9]+$/);if(m){return subElems[e].textContent;}}} let m=a.textContent.match(/^([0-9]+)\s*[×x]/);if(m&&m.length==2){return m[1];} m=a.textContent.trim().match(/^([0-9]+)$/);if(m&&m.length==2){return m[1];}} a=obj.querySelector("select") if(a){return a.value;} return'1';},findId:function(obj){let attrList=['data-product_id','data-sku','data-product_sku'];let attrListSelector=[];for(let i=0;i<attrList.length;i++){attrListSelector.push('['+attrList[i]+']');} let objAttrId=null;for(let i=0;i<attrList.length;i++){objAttrId=obj.getAttribute(attrList[i]);if(objAttrId){return objAttrId;}} objAttrId=dinFunctions.getPriorityContentSelector(obj,attrListSelector);if(objAttrId){return objAttrId;} for(let i=0;i<attrList.length;i++){objAttrId=obj.parentElement.getAttribute(attrList[i]);if(objAttrId){return objAttrId;}} return objAttrId;},search:function(obj){var links=obj.querySelectorAll('a[href]');for(var i=0;i<links.length;i++){var link_url=links[i].getAttribute('href');if(link_url.match(/^javascript/i)){continue;} if(links[i].textContent.trim().match(/^(remover|remove|delete|x|×)$/i)||links[i].className.match(/(remove|delete)/i)){continue;} var product_name=dinFunctions.cleanTextElement(links[i]);if(!this.info.name&&product_name!=""){this.info.name=product_name;this.info.link=dinFunctions.normalizeUrl(link_url);var hasImage=(links[i].querySelector('img[src]')!=null);if(!hasImage){break;}} var img=links[i].querySelector('img[src][title], img[src][alt]');if(img){this.info.name=img.getAttribute('title')||img.getAttribute('alt')||this.info.name||null;this.info.image=dinFunctions.normalizeUrl(img.getAttribute('src'));this.info.link=dinFunctions.normalizeUrl(link_url);if(this.info.name&&this.info.name.match(/^(foto|nome do produto)$/i)){this.info.name=null;} if(this.info.name){break;}}} if(!this.info.name){var img=obj.querySelector('img[src][title], img[src][alt]');if(img){let ignore=false;for(let s=0;s<dinEcommerceTools.btnRemoveSelector.length;s++){if(img.matches(dinEcommerceTools.btnRemoveSelector[s])){ignore=true;break;}} if(!ignore){this.info.name=img.getAttribute('title')||img.getAttribute('alt')||null;this.info.image=dinFunctions.normalizeUrl(img.getAttribute('src'));this.info.link="undefined";}}} if(!this.info.name){let td=obj.querySelector('td[class*="name"]');if(td){this.info.name=td.textContent.trim();}} if(!this.info.name){this.info.name=dinFunctions.getPriorityContentSelector(obj,['h1','h2','h3','h4','h5','h6']);} if(!this.info.name){return false} this.info.quantity=this.findQuantity(obj);this.info.value=this.findValue(obj);this.info.id=this.findId(obj);if(!this.info.image){var img=obj.querySelector('img[src]');if(img){this.info.image=dinFunctions.normalizeUrl(img.getAttribute('src'));}} return this.isValid()},searchInfoInViewPage:function(viewItemInfo=null){if(viewItemInfo){this.info=viewItemInfo} const re=/[^ ]*[ ]?[0-9\.]+,[0-9]{2}[^0-9]?/g const reC=/[a-z]?\$[a-z]?[ ]?[0-9\.]+(,[0-9]{2})?/gi if(!this.info.link){this.info.link=dinFunctions.normalizeUrl(document.location.pathname);} if(!this.info.image){var metaImage=document.querySelector('meta[property="og:image"]');if(metaImage){this.info.image=metaImage.getAttribute("content");}} if(!this.info.image){var findImage=document.querySelector('img#firstImage, figure[class*="zoom"] > img');if(findImage){this.info.image=findImage.getAttribute("src");}} var elemFindPrice=document;var titles=document.querySelectorAll('h1');let strLenFound=0;for(var i=0;i<titles.length;i++){var product_name=dinFunctions.cleanTextElement(titles[i]);if(product_name!=""){if(document.title.indexOf(product_name)!=-1&&product_name.length>strLenFound){this.info.name=product_name;elemFindPrice=dinFunctions.getParentElement(titles[i].parentElement,dinEcommerceTools.maxReturnLevel);strLenFound=product_name.length;} if(!this.info.name){this.info.name=product_name;elemFindPrice=dinFunctions.getParentElement(titles[i].parentElement,dinEcommerceTools.maxReturnLevel);}}} if(!this.info.name){this.info.name=document.title;} if(!this.info.value){var valuesElem=elemFindPrice.querySelectorAll('.cost, .price, .best-price');for(var i=valuesElem.length-1;i>=0;i--){var subElem=valuesElem[i].querySelectorAll("*") if(subElem&&subElem.length>3){continue;} if(getComputedStyle(valuesElem[i]).textDecoration.match(/line-through/g)){continue;} var v=valuesElem[i].textContent.match(re);if(v){this.info.value=v[v.length-1].trim();break} var v=valuesElem[i].textContent.match(reC);if(v){this.info.value=v[v.length-1].trim();break}}} if(!this.info.quantity){this.info.quantity="1";} return;},searchInfoInMultiCard:function(btnObj){let seletorSame=btnObj.tagName+'[class="'+btnObj.getAttribute('class')+'"]';let sameBtns=document.querySelectorAll(seletorSame);if(sameBtns.length<=1){return;} let par=btnObj.parentElement;let me=par;while(par.querySelectorAll(seletorSame).length==1){me=par;par=par.parentElement;if(!par){return;}} if(!me){return;} this.info.name=dinFunctions.getPriorityContentSelector(me,['h1','h2','h3','img[title]','img[alt]','[title]','p']);this.info.link=dinFunctions.normalizeUrl(document.location.pathname);let image=me.querySelector('img[src]');let findLink=false;if(image){this.info.image=dinFunctions.normalizeUrl(image.getAttribute('src'));let objParent=image;for(let i=0;i<5;i++){objParent=objParent.parentElement;if(!objParent){break} if(objParent.tagName=="A"){let l=objParent.getAttribute('href');if(!l.match(/^#/)&&!l.match(/^javascript/)){this.info.link=dinFunctions.normalizeUrl(l);findLink=true} break}}} if(!findLink){let links=me.querySelectorAll('a[href]');for(let i=0;i<links.length;i++){let l=links[i].getAttribute('href');if(!l.match(/^#/)&&!l.match(/^javascript/)){this.info.link=dinFunctions.normalizeUrl(l);break;}}} this.info.value=this.findValue(me,true);this.info.quantity=this.findQuantity(me);this.info.id=this.findId(me);return;},}} var dinLogger={DEBUG:4,INFO:3,WARN:2,ERROR:1,mode:0,Set:function(level){this.mode=level;},Write:function(level,msg){var slicedArgs=Array.prototype.slice.call(arguments,1);slicedArgs[0]="[DinamizeLog] "+msg;switch(level){case this.DEBUG:if(this.mode>=level){console.log.apply(this,slicedArgs);} break;case this.INFO:if(this.mode>=level){console.info.apply(this,slicedArgs);} break;case this.WARN:console.warn.apply(this,slicedArgs);break;case this.ERROR:console.error.apply(this,slicedArgs);break;}}};var DIN_BI_RM="0123456789abcdefghijklmnopqrstuvwxyz";function dinInt2char(n){return DIN_BI_RM.charAt(n);} var dinB64map="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var dinB64pad="=";function dinHex2b64(h){var i;var c;var ret="";for(i=0;i+3<=h.length;i+=3){c=parseInt(h.substring(i,i+3),16);ret+=dinB64map.charAt(c>>6)+dinB64map.charAt(c&63);} if(i+1==h.length){c=parseInt(h.substring(i,i+1),16);ret+=dinB64map.charAt(c<<2);} else if(i+2==h.length){c=parseInt(h.substring(i,i+2),16);ret+=dinB64map.charAt(c>>2)+dinB64map.charAt((c&3)<<4);} while((ret.length&3)>0){ret+=dinB64pad;} return ret;} var dinExtendStatics=function(d,b){dinExtendStatics=Object.setPrototypeOf||({__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b;})||function(d,b){for(var p in b)if(b.hasOwnProperty(p))d[p]=b[p];};return dinExtendStatics(d,b);};function din__extends(d,b){dinExtendStatics(d,b);function __(){this.constructor=d;} d.prototype=b===null?Object.create(b):(__.prototype=b.prototype,new __());} var dinDecoder$1;var dinBase64={decode:function(a){var i;if(dinDecoder$1===undefined){var b64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var ignore="= \f\n\r\t\u00A0\u2028\u2029";dinDecoder$1=Object.create(null);for(i=0;i<64;++i){dinDecoder$1[b64.charAt(i)]=i;} for(i=0;i<ignore.length;++i){dinDecoder$1[ignore.charAt(i)]=-1;}} var out=[];var bits=0;var char_count=0;for(i=0;i<a.length;++i){var c=a.charAt(i);if(c=="="){break;} c=dinDecoder$1[c];if(c==-1){continue;} if(c===undefined){throw new Error("Illegal character at offset "+i);} bits|=c;if(++char_count>=4){out[out.length]=(bits>>16);out[out.length]=(bits>>8)&0xFF;out[out.length]=bits&0xFF;bits=0;char_count=0;} else{bits<<=6;}} switch(char_count){case 1:throw new Error("Base64 encoding incomplete: at least 2 bits missing");case 2:out[out.length]=(bits>>10);break;case 3:out[out.length]=(bits>>16);out[out.length]=(bits>>8)&0xFF;break;} return out;},re:/-----BEGIN [^-]+-----([A-Za-z0-9+\/=\s]+)-----END [^-]+-----|begin-base64[^\n]+\n([A-Za-z0-9+\/=\s]+)====/,unarmor:function(a){var m=dinBase64.re.exec(a);if(m){if(m[1]){a=m[1];} else if(m[2]){a=m[2];} else{throw new Error("RegExp out of sync");}} return dinBase64.decode(a);}};var dinMax=10000000000000;var dinInt10=(function(){function Int10(value){this.buf=[+value||0];} Int10.prototype.mulAdd=function(m,c){var b=this.buf;var l=b.length;var i;var t;for(i=0;i<l;++i){t=b[i]*m+c;if(t<dinMax){c=0;} else{c=0|(t/dinMax);t-=c*dinMax;} b[i]=t;} if(c>0){b[i]=c;}};Int10.prototype.sub=function(c){var b=this.buf;var l=b.length;var i;var t;for(i=0;i<l;++i){t=b[i]-c;if(t<0){t+=dinMax;c=1;} else{c=0;} b[i]=t;} while(b[b.length-1]===0){b.pop();}};Int10.prototype.toString=function(base){if((base||10)!=10){throw new Error("only base 10 is supported");} var b=this.buf;var s=b[b.length-1].toString();for(var i=b.length-2;i>=0;--i){s+=(dinMax+b[i]).toString().substring(1);} return s;};Int10.prototype.valueOf=function(){var b=this.buf;var v=0;for(var i=b.length-1;i>=0;--i){v=v*dinMax+b[i];} return v;};Int10.prototype.simplify=function(){var b=this.buf;return(b.length==1)?b[0]:this;};return Int10;}());var dinStream=(function(){function Stream(enc,pos){this.hexDigits="0123456789ABCDEF";if(enc instanceof Stream){this.enc=enc.enc;this.pos=enc.pos;} else{this.enc=enc;this.pos=pos;}} Stream.prototype.get=function(pos){if(pos===undefined){pos=this.pos++;} if(pos>=this.enc.length){throw new Error("Requesting byte offset "+pos+" on a stream of length "+this.enc.length);} return("string"===typeof this.enc)?this.enc.charCodeAt(pos):this.enc[pos];};Stream.prototype.hexByte=function(b){return this.hexDigits.charAt((b>>4)&0xF)+this.hexDigits.charAt(b&0xF);};Stream.prototype.hexDump=function(start,end,raw){var s="";for(var i=start;i<end;++i){s+=this.hexByte(this.get(i));if(raw!==true){switch(i&0xF){case 0x7:s+=" ";break;case 0xF:s+="\n";break;default:s+=" ";}}} return s;};return Stream;}());var dinASN1=(function(){function ASN1(stream,header,length,tag,sub){if(!(tag instanceof dinASN1Tag)){throw new Error("Invalid tag value.");} this.stream=stream;this.header=header;this.length=length;this.tag=tag;this.sub=sub;} ASN1.prototype.typeName=function(){switch(this.tag.tagClass){case 0:switch(this.tag.tagNumber){case 0x00:return"EOC";case 0x01:return"BOOLEAN";case 0x02:return"INTEGER";case 0x03:return"BIT_STRING";case 0x04:return"OCTET_STRING";case 0x05:return"NULL";case 0x06:return"OBJECT_IDENTIFIER";case 0x07:return"ObjectDescriptor";case 0x08:return"EXTERNAL";case 0x09:return"REAL";case 0x0A:return"ENUMERATED";case 0x0B:return"EMBEDDED_PDV";case 0x0C:return"UTF8String";case 0x10:return"SEQUENCE";case 0x11:return"SET";case 0x12:return"NumericString";case 0x13:return"PrintableString";case 0x14:return"TeletexString";case 0x15:return"VideotexString";case 0x16:return"IA5String";case 0x17:return"UTCTime";case 0x18:return"GeneralizedTime";case 0x19:return"GraphicString";case 0x1A:return"VisibleString";case 0x1B:return"GeneralString";case 0x1C:return"UniversalString";case 0x1E:return"BMPString";} return"Universal_"+this.tag.tagNumber.toString();case 1:return"Application_"+this.tag.tagNumber.toString();case 2:return"["+this.tag.tagNumber.toString()+"]";case 3:return"Private_"+this.tag.tagNumber.toString();}};ASN1.prototype.toString=function(){return this.typeName()+"@"+this.stream.pos+"[header:"+this.header+",length:"+this.length+",sub:"+((this.sub===null)?"null":this.sub.length)+"]";};ASN1.prototype.posStart=function(){return this.stream.pos;};ASN1.prototype.posContent=function(){return this.stream.pos+this.header;};ASN1.prototype.posEnd=function(){return this.stream.pos+this.header+Math.abs(this.length);};ASN1.prototype.toHexString=function(){return this.stream.hexDump(this.posStart(),this.posEnd(),true);};ASN1.decodeLength=function(stream){var buf=stream.get();var len=buf&0x7F;if(len==buf){return len;} if(len>6){throw new Error("Length over 48 bits not supported at position "+(stream.pos-1));} if(len===0){return null;} buf=0;for(var i=0;i<len;++i){buf=(buf*256)+stream.get();} return buf;};ASN1.prototype.getHexStringValue=function(){var hexString=this.toHexString();var offset=this.header*2;var length=this.length*2;return hexString.substr(offset,length);};ASN1.decode=function(str){var stream;if(!(str instanceof dinStream)){stream=new dinStream(str,0);} else{stream=str;} var streamStart=new dinStream(stream);var tag=new dinASN1Tag(stream);var len=ASN1.decodeLength(stream);var start=stream.pos;var header=start-streamStart.pos;var sub=null;var getSub=function(){var ret=[];if(len!==null){var end=start+len;while(stream.pos<end){ret[ret.length]=ASN1.decode(stream);} if(stream.pos!=end){throw new Error("Content size is not correct for container starting at offset "+start);}} else{try{for(;;){var s=ASN1.decode(stream);if(s.tag.isEOC()){break;} ret[ret.length]=s;} len=start-stream.pos;} catch(e){throw new Error("Exception while decoding undefined length content: "+e);}} return ret;};if(tag.tagConstructed){sub=getSub();} else if(tag.isUniversal()&&((tag.tagNumber==0x03)||(tag.tagNumber==0x04))){try{if(tag.tagNumber==0x03){if(stream.get()!=0){throw new Error("BIT STRINGs with unused bits cannot encapsulate.");}} sub=getSub();for(var i=0;i<sub.length;++i){if(sub[i].tag.isEOC()){throw new Error("EOC is not supposed to be actual content.");}}} catch(e){sub=null;}} if(sub===null){if(len===null){throw new Error("We can't skip over an invalid tag with undefined length at offset "+start);} stream.pos=start+Math.abs(len);} return new ASN1(streamStart,header,len,tag,sub);};return ASN1;}());var dinASN1Tag=(function(){function ASN1Tag(stream){var buf=stream.get();this.tagClass=buf>>6;this.tagConstructed=((buf&0x20)!==0);this.tagNumber=buf&0x1F;if(this.tagNumber==0x1F){var n=new dinInt10();do{buf=stream.get();n.mulAdd(128,buf&0x7F);}while(buf&0x80);this.tagNumber=n.simplify();}} ASN1Tag.prototype.isUniversal=function(){return this.tagClass===0x00;};ASN1Tag.prototype.isEOC=function(){return this.tagClass===0x00&&this.tagNumber===0x00;};return ASN1Tag;}());var dinDbits;var dinCanary=0xdeadbeefcafe;var dinJ_lm=((dinCanary&0xffffff)==0xefcafe);var dinBigInteger=(function(){function BigInteger(a,b,c){if(a!=null){if("number"==typeof a){console.warn("REMOVED")} else if(b==null&&"string"!=typeof a){this.fromString(a,256);} else{this.fromString(a,b);}}} BigInteger.prototype.toString=function(b){if(this.s<0){return"-"+this.negate().toString(b);} var k;if(b==16){k=4;} else if(b==8){k=3;} else if(b==2){k=1;} else if(b==32){k=5;} else if(b==4){k=2;} else{return this.toRadix(b);} var km=(1<<k)-1;var d;var m=false;var r="";var i=this.t;var p=this.DB-(i*this.DB)%k;if(i-->0){if(p<this.DB&&(d=this[i]>>p)>0){m=true;r=dinInt2char(d);} while(i>=0){if(p<k){d=(this[i]&((1<<p)-1))<<(k-p);d|=this[--i]>>(p+=this.DB-k);} else{d=(this[i]>>(p-=k))&km;if(p<=0){p+=this.DB;--i;}} if(d>0){m=true;} if(m){r+=dinInt2char(d);}}} return m?r:"0";};BigInteger.prototype.negate=function(){var r=dinNbi();BigInteger.ZERO.subTo(this,r);return r;};BigInteger.prototype.abs=function(){return(this.s<0)?this.negate():this;};BigInteger.prototype.compareTo=function(a){var r=this.s-a.s;if(r!=0){return r;} var i=this.t;r=i-a.t;if(r!=0){return(this.s<0)?-r:r;} while(--i>=0){if((r=this[i]-a[i])!=0){return r;}} return 0;};BigInteger.prototype.bitLength=function(){if(this.t<=0){return 0;} return this.DB*(this.t-1)+dinNbits(this[this.t-1]^(this.s&this.DM));};BigInteger.prototype.mod=function(a){var r=dinNbi();this.abs().divRemTo(a,null,r);if(this.s<0&&r.compareTo(BigInteger.ZERO)>0){a.subTo(r,r);} return r;};BigInteger.prototype.modPowInt=function(e,m){var z;if(e<256||m.isEven()){z=new dinClassic(m);} else{z=new dinMontgomery(m);} return this.exp(e,z);};BigInteger.prototype.clone=function(){var r=dinNbi();this.copyTo(r);return r;};BigInteger.prototype.intValue=function(){if(this.s<0){if(this.t==1){return this[0]-this.DV;} else if(this.t==0){return-1;}} else if(this.t==1){return this[0];} else if(this.t==0){return 0;} return((this[1]&((1<<(32-this.DB))-1))<<this.DB)|this[0];};BigInteger.prototype.signum=function(){if(this.s<0){return-1;} else if(this.t<=0||(this.t==1&&this[0]<=0)){return 0;} else{return 1;}};BigInteger.prototype.min=function(a){return(this.compareTo(a)<0)?this:a;};BigInteger.prototype.max=function(a){return(this.compareTo(a)>0)?this:a;};BigInteger.prototype.not=function(){var r=dinNbi();for(var i=0;i<this.t;++i){r[i]=this.DM&~this[i];} r.t=this.t;r.s=~this.s;return r;};BigInteger.prototype.shiftLeft=function(n){var r=dinNbi();if(n<0){this.rShiftTo(-n,r);} else{this.lShiftTo(n,r);} return r;};BigInteger.prototype.subtract=function(a){var r=dinNbi();this.subTo(a,r);return r;};BigInteger.prototype.multiply=function(a){var r=dinNbi();this.multiplyTo(a,r);return r;};BigInteger.prototype.divide=function(a){var r=dinNbi();this.divRemTo(a,r,null);return r;};BigInteger.prototype.copyTo=function(r){for(var i=this.t-1;i>=0;--i){r[i]=this[i];} r.t=this.t;r.s=this.s;};BigInteger.prototype.fromInt=function(x){this.t=1;this.s=(x<0)?-1:0;if(x>0){this[0]=x;} else if(x<-1){this[0]=x+this.DV;} else{this.t=0;}};BigInteger.prototype.fromString=function(s,b){var k;if(b==16){k=4;} else if(b==8){k=3;} else if(b==256){k=8;} else if(b==2){k=1;} else if(b==32){k=5;} else if(b==4){k=2;} else{this.fromRadix(s,b);return;} this.t=0;this.s=0;var i=s.length;var mi=false;var sh=0;while(--i>=0){var x=(k==8)?(+s[i])&0xff:dinIntAt(s,i);if(x<0){if(s.charAt(i)=="-"){mi=true;} continue;} mi=false;if(sh==0){this[this.t++]=x;} else if(sh+k>this.DB){this[this.t-1]|=(x&((1<<(this.DB-sh))-1))<<sh;this[this.t++]=(x>>(this.DB-sh));} else{this[this.t-1]|=x<<sh;} sh+=k;if(sh>=this.DB){sh-=this.DB;}} if(k==8&&((+s[0])&0x80)!=0){this.s=-1;if(sh>0){this[this.t-1]|=((1<<(this.DB-sh))-1)<<sh;}} this.clamp();if(mi){BigInteger.ZERO.subTo(this,this);}};BigInteger.prototype.clamp=function(){var c=this.s&this.DM;while(this.t>0&&this[this.t-1]==c){--this.t;}};BigInteger.prototype.dlShiftTo=function(n,r){var i;for(i=this.t-1;i>=0;--i){r[i+n]=this[i];} for(i=n-1;i>=0;--i){r[i]=0;} r.t=this.t+n;r.s=this.s;};BigInteger.prototype.drShiftTo=function(n,r){for(var i=n;i<this.t;++i){r[i-n]=this[i];} r.t=Math.max(this.t-n,0);r.s=this.s;};BigInteger.prototype.lShiftTo=function(n,r){var bs=n%this.DB;var cbs=this.DB-bs;var bm=(1<<cbs)-1;var ds=Math.floor(n/this.DB);var c=(this.s<<bs)&this.DM;for(var i=this.t-1;i>=0;--i){r[i+ds+1]=(this[i]>>cbs)|c;c=(this[i]&bm)<<bs;} for(var i=ds-1;i>=0;--i){r[i]=0;} r[ds]=c;r.t=this.t+ds+1;r.s=this.s;r.clamp();};BigInteger.prototype.rShiftTo=function(n,r){r.s=this.s;var ds=Math.floor(n/this.DB);if(ds>=this.t){r.t=0;return;} var bs=n%this.DB;var cbs=this.DB-bs;var bm=(1<<bs)-1;r[0]=this[ds]>>bs;for(var i=ds+1;i<this.t;++i){r[i-ds-1]|=(this[i]&bm)<<cbs;r[i-ds]=this[i]>>bs;} if(bs>0){r[this.t-ds-1]|=(this.s&bm)<<cbs;} r.t=this.t-ds;r.clamp();};BigInteger.prototype.subTo=function(a,r){var i=0;var c=0;var m=Math.min(a.t,this.t);while(i<m){c+=this[i]-a[i];r[i++]=c&this.DM;c>>=this.DB;} if(a.t<this.t){c-=a.s;while(i<this.t){c+=this[i];r[i++]=c&this.DM;c>>=this.DB;} c+=this.s;} else{c+=this.s;while(i<a.t){c-=a[i];r[i++]=c&this.DM;c>>=this.DB;} c-=a.s;} r.s=(c<0)?-1:0;if(c<-1){r[i++]=this.DV+c;} else if(c>0){r[i++]=c;} r.t=i;r.clamp();};BigInteger.prototype.multiplyTo=function(a,r){var x=this.abs();var y=a.abs();var i=x.t;r.t=i+y.t;while(--i>=0){r[i]=0;} for(i=0;i<y.t;++i){r[i+x.t]=x.am(0,y[i],r,i,0,x.t);} r.s=0;r.clamp();if(this.s!=a.s){BigInteger.ZERO.subTo(r,r);}};BigInteger.prototype.squareTo=function(r){var x=this.abs();var i=r.t=2*x.t;while(--i>=0){r[i]=0;} for(i=0;i<x.t-1;++i){var c=x.am(i,x[i],r,2*i,0,1);if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1))>=x.DV){r[i+x.t]-=x.DV;r[i+x.t+1]=1;}} if(r.t>0){r[r.t-1]+=x.am(i,x[i],r,2*i,0,1);} r.s=0;r.clamp();};BigInteger.prototype.divRemTo=function(m,q,r){var pm=m.abs();if(pm.t<=0){return;} var pt=this.abs();if(pt.t<pm.t){if(q!=null){q.fromInt(0);} if(r!=null){this.copyTo(r);} return;} if(r==null){r=dinNbi();} var y=dinNbi();var ts=this.s;var ms=m.s;var nsh=this.DB-dinNbits(pm[pm.t-1]);if(nsh>0){pm.lShiftTo(nsh,y);pt.lShiftTo(nsh,r);} else{pm.copyTo(y);pt.copyTo(r);} var ys=y.t;var y0=y[ys-1];if(y0==0){return;} var yt=y0*(1<<this.F1)+((ys>1)?y[ys-2]>>this.F2:0);var d1=this.FV/yt;var d2=(1<<this.F1)/yt;var e=1<<this.F2;var i=r.t;var j=i-ys;var t=(q==null)?dinNbi():q;y.dlShiftTo(j,t);if(r.compareTo(t)>=0){r[r.t++]=1;r.subTo(t,r);} BigInteger.ONE.dlShiftTo(ys,t);t.subTo(y,y);while(y.t<ys){y[y.t++]=0;} while(--j>=0){var qd=(r[--i]==y0)?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2);if((r[i]+=y.am(0,qd,r,j,0,ys))<qd){y.dlShiftTo(j,t);r.subTo(t,r);while(r[i]<--qd){r.subTo(t,r);}}} if(q!=null){r.drShiftTo(ys,q);if(ts!=ms){BigInteger.ZERO.subTo(q,q);}} r.t=ys;r.clamp();if(nsh>0){r.rShiftTo(nsh,r);} if(ts<0){BigInteger.ZERO.subTo(r,r);}};BigInteger.prototype.invDigit=function(){if(this.t<1){return 0;} var x=this[0];if((x&1)==0){return 0;} var y=x&3;y=(y*(2-(x&0xf)*y))&0xf;y=(y*(2-(x&0xff)*y))&0xff;y=(y*(2-(((x&0xffff)*y)&0xffff)))&0xffff;y=(y*(2-x*y%this.DV))%this.DV;return(y>0)?this.DV-y:-y;};BigInteger.prototype.isEven=function(){return((this.t>0)?(this[0]&1):this.s)==0;};BigInteger.prototype.exp=function(e,z){if(e>0xffffffff||e<1){return BigInteger.ONE;} var r=dinNbi();var r2=dinNbi();var g=z.convert(this);var i=dinNbits(e)-1;g.copyTo(r);while(--i>=0){z.sqrTo(r,r2);if((e&(1<<i))>0){z.mulTo(r2,g,r);} else{var t=r;r=r2;r2=t;}} return z.revert(r);};BigInteger.prototype.chunkSize=function(r){return Math.floor(Math.LN2*this.DB/Math.log(r));};BigInteger.prototype.toRadix=function(b){if(b==null){b=10;} if(this.signum()==0||b<2||b>36){return"0";} var cs=this.chunkSize(b);var a=Math.pow(b,cs);var d=dinNbv(a);var y=dinNbi();var z=dinNbi();var r="";this.divRemTo(d,y,z);while(y.signum()>0){r=(a+z.intValue()).toString(b).substr(1)+r;y.divRemTo(d,y,z);} return z.intValue().toString(b)+r;};BigInteger.prototype.fromRadix=function(s,b){this.fromInt(0);if(b==null){b=10;} var cs=this.chunkSize(b);var d=Math.pow(b,cs);var mi=false;var j=0;var w=0;for(var i=0;i<s.length;++i){var x=dinIntAt(s,i);if(x<0){if(s.charAt(i)=="-"&&this.signum()==0){mi=true;} continue;} w=b*w+x;if(++j>=cs){this.dMultiply(d);this.dAddOffset(w,0);j=0;w=0;}} if(j>0){this.dMultiply(Math.pow(b,j));this.dAddOffset(w,0);} if(mi){BigInteger.ZERO.subTo(this,this);}};BigInteger.prototype.dMultiply=function(n){this[this.t]=this.am(0,n-1,this,0,0,this.t);++this.t;this.clamp();};BigInteger.prototype.dAddOffset=function(n,w){if(n==0){return;} while(this.t<=w){this[this.t++]=0;} this[w]+=n;while(this[w]>=this.DV){this[w]-=this.DV;if(++w>=this.t){this[this.t++]=0;} ++this[w];}};BigInteger.prototype.square=function(){var r=dinNbi();this.squareTo(r);return r;};return BigInteger;}());var dinNullExp=(function(){function NullExp(){} NullExp.prototype.convert=function(x){return x;};NullExp.prototype.revert=function(x){return x;};NullExp.prototype.mulTo=function(x,y,r){x.multiplyTo(y,r);};NullExp.prototype.sqrTo=function(x,r){x.squareTo(r);};return NullExp;}());var dinClassic=(function(){function Classic(m){this.m=m;} Classic.prototype.convert=function(x){if(x.s<0||x.compareTo(this.m)>=0){return x.mod(this.m);} else{return x;}};Classic.prototype.revert=function(x){return x;};Classic.prototype.reduce=function(x){x.divRemTo(this.m,null,x);};Classic.prototype.mulTo=function(x,y,r){x.multiplyTo(y,r);this.reduce(r);};Classic.prototype.sqrTo=function(x,r){x.squareTo(r);this.reduce(r);};return Classic;}());var dinMontgomery=(function(){function Montgomery(m){this.m=m;this.mp=m.invDigit();this.mpl=this.mp&0x7fff;this.mph=this.mp>>15;this.um=(1<<(m.DB-15))-1;this.mt2=2*m.t;} Montgomery.prototype.convert=function(x){var r=dinNbi();x.abs().dlShiftTo(this.m.t,r);r.divRemTo(this.m,null,r);if(x.s<0&&r.compareTo(dinBigInteger.ZERO)>0){this.m.subTo(r,r);} return r;};Montgomery.prototype.revert=function(x){var r=dinNbi();x.copyTo(r);this.reduce(r);return r;};Montgomery.prototype.reduce=function(x){while(x.t<=this.mt2){x[x.t++]=0;} for(var i=0;i<this.m.t;++i){var j=x[i]&0x7fff;var u0=(j*this.mpl+(((j*this.mph+(x[i]>>15)*this.mpl)&this.um)<<15))&x.DM;j=i+this.m.t;x[j]+=this.m.am(0,u0,x,i,0,this.m.t);while(x[j]>=x.DV){x[j]-=x.DV;x[++j]++;}} x.clamp();x.drShiftTo(this.m.t,x);if(x.compareTo(this.m)>=0){x.subTo(this.m,x);}};Montgomery.prototype.mulTo=function(x,y,r){x.multiplyTo(y,r);this.reduce(r);};Montgomery.prototype.sqrTo=function(x,r){x.squareTo(r);this.reduce(r);};return Montgomery;}());function dinNbi(){return new dinBigInteger(null);} function dinParseBigInt(str,r){return new dinBigInteger(str,r);} function dinAm1(i,x,w,j,c,n){while(--n>=0){var v=x*this[i++]+w[j]+c;c=Math.floor(v/0x4000000);w[j++]=v&0x3ffffff;} return c;} function dinAm2(i,x,w,j,c,n){var xl=x&0x7fff;var xh=x>>15;while(--n>=0){var l=this[i]&0x7fff;var h=this[i++]>>15;var m=xh*l+h*xl;l=xl*l+((m&0x7fff)<<15)+w[j]+(c&0x3fffffff);c=(l>>>30)+(m>>>15)+xh*h+(c>>>30);w[j++]=l&0x3fffffff;} return c;} function dinAm3(i,x,w,j,c,n){var xl=x&0x3fff;var xh=x>>14;while(--n>=0){var l=this[i]&0x3fff;var h=this[i++]>>14;var m=xh*l+h*xl;l=xl*l+((m&0x3fff)<<14)+w[j]+c;c=(l>>28)+(m>>14)+xh*h;w[j++]=l&0xfffffff;} return c;} if(dinJ_lm&&(navigator.appName=="Microsoft Internet Explorer")){dinBigInteger.prototype.am=dinAm2;dinDbits=30;} else if(dinJ_lm&&(navigator.appName!="Netscape")){dinBigInteger.prototype.am=dinAm1;dinDbits=26;} else{dinBigInteger.prototype.am=dinAm3;dinDbits=28;} dinBigInteger.prototype.DB=dinDbits;dinBigInteger.prototype.DM=((1<<dinDbits)-1);dinBigInteger.prototype.DV=(1<<dinDbits);var DIN_BI_FP=52;dinBigInteger.prototype.FV=Math.pow(2,DIN_BI_FP);dinBigInteger.prototype.F1=DIN_BI_FP-dinDbits;dinBigInteger.prototype.F2=2*dinDbits-DIN_BI_FP;var DIN_BI_RC=[];var dinRr;var dinVv;dinRr="0".charCodeAt(0);for(dinVv=0;dinVv<=9;++dinVv){DIN_BI_RC[dinRr++]=dinVv;} dinRr="a".charCodeAt(0);for(dinVv=10;dinVv<36;++dinVv){DIN_BI_RC[dinRr++]=dinVv;} dinRr="A".charCodeAt(0);for(dinVv=10;dinVv<36;++dinVv){DIN_BI_RC[dinRr++]=dinVv;} function dinIntAt(s,i){var c=DIN_BI_RC[s.charCodeAt(i)];return(c==null)?-1:c;} function dinNbv(i){var r=dinNbi();r.fromInt(i);return r;} function dinNbits(x){var r=1;var t;if((t=x>>>16)!=0){x=t;r+=16;} if((t=x>>8)!=0){x=t;r+=8;} if((t=x>>4)!=0){x=t;r+=4;} if((t=x>>2)!=0){x=t;r+=2;} if((t=x>>1)!=0){x=t;r+=1;} return r;} dinBigInteger.ZERO=dinNbv(0);dinBigInteger.ONE=dinNbv(1);var dinArcfour=(function(){function Arcfour(){this.i=0;this.j=0;this.S=[];} Arcfour.prototype.init=function(key){var i;var j;var t;for(i=0;i<256;++i){this.S[i]=i;} j=0;for(i=0;i<256;++i){j=(j+this.S[i]+key[i%key.length])&255;t=this.S[i];this.S[i]=this.S[j];this.S[j]=t;} this.i=0;this.j=0;};Arcfour.prototype.next=function(){var t;this.i=(this.i+1)&255;this.j=(this.j+this.S[this.i])&255;t=this.S[this.i];this.S[this.i]=this.S[this.j];this.S[this.j]=t;return this.S[(t+this.S[this.i])&255];};return Arcfour;}());function dinPrng_newstate(){return new dinArcfour();} var dinRng_psize=256;var dinRng_state;var dinRng_pool=null;var dinRng_pptr;if(dinRng_pool==null){dinRng_pool=[];dinRng_pptr=0;var dinT=void 0;if(window.crypto&&window.crypto.getRandomValues){var z=new Uint32Array(256);window.crypto.getRandomValues(z);for(dinT=0;dinT<z.length;++dinT){dinRng_pool[dinRng_pptr++]=z[dinT]&255;}} var onMouseMoveListener_1=function(ev){this.count=this.count||0;if(this.count>=256||dinRng_pptr>=dinRng_psize){if(window.removeEventListener){window.removeEventListener("mousemove",onMouseMoveListener_1,false);} else if(window.detachEvent){window.detachEvent("onmousemove",onMouseMoveListener_1);} return;} try{var mouseCoordinates=ev.x+ev.y;dinRng_pool[dinRng_pptr++]=mouseCoordinates&255;this.count+=1;} catch(e){}};if(window.addEventListener){window.addEventListener("mousemove",onMouseMoveListener_1,false);} else if(window.attachEvent){window.attachEvent("onmousemove",onMouseMoveListener_1);}} function dinRng_get_byte(){if(dinRng_state==null){dinRng_state=dinPrng_newstate();while(dinRng_pptr<dinRng_psize){var random=Math.floor(65536*Math.random());dinRng_pool[dinRng_pptr++]=random&255;} dinRng_state.init(dinRng_pool);for(dinRng_pptr=0;dinRng_pptr<dinRng_pool.length;++dinRng_pptr){dinRng_pool[dinRng_pptr]=0;} dinRng_pptr=0;} return dinRng_state.next();} var dinSecureRandom=(function(){function SecureRandom(){} SecureRandom.prototype.nextBytes=function(ba){for(var i=0;i<ba.length;++i){ba[i]=dinRng_get_byte();}};return SecureRandom;}());function dinPkcs1pad2(s,n){if(n<s.length+11){console.error("Message too long for RSA");return null;} var ba=[];var i=s.length-1;while(i>=0&&n>0){var c=s.charCodeAt(i--);if(c<128){ba[--n]=c;} else if((c>127)&&(c<2048)){ba[--n]=(c&63)|128;ba[--n]=(c>>6)|192;} else{ba[--n]=(c&63)|128;ba[--n]=((c>>6)&63)|128;ba[--n]=(c>>12)|224;}} ba[--n]=0;var rng=new dinSecureRandom();var x=[];while(n>2){x[0]=0;while(x[0]==0){rng.nextBytes(x);} ba[--n]=x[0];} ba[--n]=2;ba[--n]=0;return new dinBigInteger(ba);} var dinRSAKey=(function(){function RSAKey(){this.n=null;this.e=0;this.d=null;this.p=null;this.q=null;this.dmp1=null;this.dmq1=null;this.coeff=null;} RSAKey.prototype.doPublic=function(x){return x.modPowInt(this.e,this.n);};RSAKey.prototype.encrypt=function(text){var m=dinPkcs1pad2(text,(this.n.bitLength()+7)>>3);if(m==null){return null;} var c=this.doPublic(m);if(c==null){return null;} var h=c.toString(16);if((h.length&1)==0){return h;} else{return"0"+h;}};return RSAKey;}());var dinJSEncryptRSAKey=(function(_super){din__extends(JSEncryptRSAKey,_super);function JSEncryptRSAKey(key){var _this=_super.call(this)||this;if(key){if(typeof key==="string"){_this.parseKey(key);} else if(JSEncryptRSAKey.hasPrivateKeyProperty(key)||JSEncryptRSAKey.hasPublicKeyProperty(key)){_this.parsePropertiesFrom(key);}} return _this;} JSEncryptRSAKey.prototype.parseKey=function(pem){try{var modulus=0;var public_exponent=0;var reHex=/^\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\s*)+$/;var der=reHex.test(pem)?Hex.decode(pem):dinBase64.unarmor(pem);var asn1=dinASN1.decode(der);if(asn1.sub.length===3){asn1=asn1.sub[2].sub[0];} if(asn1.sub.length===9){modulus=asn1.sub[1].getHexStringValue();this.n=dinParseBigInt(modulus,16);public_exponent=asn1.sub[2].getHexStringValue();this.e=parseInt(public_exponent,16);var private_exponent=asn1.sub[3].getHexStringValue();this.d=dinParseBigInt(private_exponent,16);var prime1=asn1.sub[4].getHexStringValue();this.p=dinParseBigInt(prime1,16);var prime2=asn1.sub[5].getHexStringValue();this.q=dinParseBigInt(prime2,16);var exponent1=asn1.sub[6].getHexStringValue();this.dmp1=dinParseBigInt(exponent1,16);var exponent2=asn1.sub[7].getHexStringValue();this.dmq1=dinParseBigInt(exponent2,16);var coefficient=asn1.sub[8].getHexStringValue();this.coeff=dinParseBigInt(coefficient,16);} else if(asn1.sub.length===2){var bit_string=asn1.sub[1];var sequence=bit_string.sub[0];modulus=sequence.sub[0].getHexStringValue();this.n=dinParseBigInt(modulus,16);public_exponent=sequence.sub[1].getHexStringValue();this.e=parseInt(public_exponent,16);} else{return false;} return true;} catch(ex){return false;}};JSEncryptRSAKey.hasPublicKeyProperty=function(obj){obj=obj||{};return(obj.hasOwnProperty("n")&&obj.hasOwnProperty("e"));};JSEncryptRSAKey.prototype.parsePropertiesFrom=function(obj){this.n=obj.n;this.e=obj.e;if(obj.hasOwnProperty("d")){this.d=obj.d;this.p=obj.p;this.q=obj.q;this.dmp1=obj.dmp1;this.dmq1=obj.dmq1;this.coeff=obj.coeff;}};return JSEncryptRSAKey;}(dinRSAKey));var DinJSEncrypt=(function(){function DinJSEncrypt(options){options=options||{};this.default_key_size=parseInt(options.default_key_size,10)||1024;this.default_public_exponent=options.default_public_exponent||"010001";this.log=true;this.key=null;} DinJSEncrypt.prototype.setKey=function(key){if(this.log&&this.key){console.warn("A key was already set, overriding existing.");} this.key=new dinJSEncryptRSAKey(key);};DinJSEncrypt.prototype.setPublicKey=function(pubkey){this.setKey(pubkey);};DinJSEncrypt.prototype.encrypt=function(str){try{return dinHex2b64(this.getKey().encrypt(str));} catch(ex){return false;}};DinJSEncrypt.prototype.getKey=function(cb){if(!this.key){this.key=new dinJSEncryptRSAKey();if(cb&&{}.toString.call(cb)==="[object Function]"){this.key.generateAsync(this.default_key_size,this.default_public_exponent,cb);return;} this.key.generate(this.default_key_size,this.default_public_exponent);} return this.key;};DinJSEncrypt.version="3.0.0-rc.1";return DinJSEncrypt;}());window.DinJSEncrypt=DinJSEncrypt;var dinLeadTracker={COOKIE_NAME:"dinLeadTrack",TYPE_EMAIL:"EM",TYPE_EXTERNAL_CODE:"CE",TYPE_ID:"ID",TYPE_POSCLICK:"PC",POSCLICK_URL:"https://receiver.posclick.dinamize.com",PUBLIC_KEY:"-----BEGIN RSA PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsXbGia7iTXEjq1/K2+Sj\nJA519Kvm4AloHv/gG9iu+9NrEMG8VMmI7eX9qBOoJk+qX13+mQaP2xbJP3XUYqsf\nPFDHjCyGNN3BfneZ8lAexr3JvMYw2DTKL4QNSTix8V3SPoBaqpCfm7BwTulng1YB\n9MZUJjv0Cjp3auICiOZEtfJPWd74YJ5NfgJYYU4q6ub/CNSgcgRzqZyciPFP7Hy7\nyLF17UF+miteKzOLfE+v6E9uTcT5drObBoTTlmXoRW1nBi90huZdz+wxIH1xm6S+\nmcDUDec6S7KXzRjseNgL2NsRNuE35M6exYQD2XLPkS5yDc8JdhswTeWJghHfIY4V\nHQIDAQAB\n-----END RSA PUBLIC KEY-----",LastUrlPosted:"",StoredPosclickId:"",DebugMode:false,Init:function(){if(this.isActive()){dinLogger.Write(dinLogger.DEBUG,"LeadTracking is active");}else{dinLogger.Write(dinLogger.DEBUG,"LeadTracking is inactive");return} var referer=dinFunctions.getReferrer();var hostname=window.location.hostname;if(referer!==""&&referer!=hostname){this.setReferrer(referer);} var query=dinFunctions.getQueryParams(document.location.search);if(typeof query.__dPosclick!=="undefined"){dinLogger.Write(dinLogger.DEBUG,"LeadTracker: Posclick info detected");if(this.getUserConsent()){this.setLeadPosclick(query.__dPosclick);return} dinLogger.Write(dinLogger.DEBUG,"LeadTracker: Posclick info will be used when the user give consent to be tracked");this.StoredPosclickId=query.__dPosclick;return} this.post();},encrypt:function(str){if(str.length>245){dinLogger.Write(dinLogger.ERROR,"LeadTracker: Email is too big for encryption");return;} var encrypt=new DinJSEncrypt({"default_key_size":2048});encrypt.setPublicKey(this.PUBLIC_KEY);str=encrypt.encrypt(str);str=dinFunctions.replaceAll(str,"+","-") str=dinFunctions.replaceAll(str,"/","_") return str;},SetLeadEmail:function(email){if(typeof email!=="string"||email.trim()===""){return} if(dinFunctions.isExampleEmail(email)){return} if(!this.getUserConsent()){dinLogger.Write(dinLogger.DEBUG,"LeadTracker: The user didnt give consent to save his info on cookies");return} this.setCookieUserInfo(this.TYPE_EMAIL,this.encrypt(email));dinEcommerceTools.updateLeadEmail();},SetLeadExternalId:function(id){if(typeof id!=="string"){return} this.setCookieUserInfo(this.TYPE_EXTERNAL_CODE,id);},setLeadPosclick:function(pcInfo){this.setCookieUserInfo(this.TYPE_POSCLICK,pcInfo);},SetLeadId:function(id){if(typeof id==="number"){id=id.toString(10);} if(typeof id!=="string"||id.trim()===""){return} this.setCookieUserInfo(this.TYPE_ID,id);},RemoveLeadInfo:function(){this.LastUrlPosted="";dinFunctions.deleteCookie(this.COOKIE_NAME);},hasCookieInfo:function(){let cookieObj=this.getCookieObj();if(typeof cookieObj.user_info_type!=="undefined"&&typeof cookieObj.user_info!=="undefined"){return true;} return false;},getCookieObj:function(){var cookie=dinFunctions.getCookie(this.COOKIE_NAME);var cookieObj={};if(cookie!==""){cookieObj=JSON.parse(atob(cookie));} return cookieObj;},setCookieObj:function(cookieObj){var cookieData=btoa(JSON.stringify(cookieObj));dinFunctions.setCookie(this.COOKIE_NAME,cookieData,90);},setCookieUserInfo:function(user_info_type,user_info){if(!this.isActive()){dinLogger.Write(dinLogger.DEBUG,"LeadTracker: Will not set cookie. LeadTracker is inactive");return} if(!this.getUserConsent()){dinLogger.Write(dinLogger.DEBUG,"LeadTracker: The user didnt give consent to save his info on cookies");return} this.StoredPosclickId="";dinLogger.Write(dinLogger.DEBUG,"LeadTracker: Setting lead info on cookie. Type:["+user_info_type+"]");var cookieObj=dinLeadTracker.getCookieObj();cookieObj.user_info_type=user_info_type;cookieObj.user_info=user_info;dinLeadTracker.setCookieObj(cookieObj);this.post();},SetUserConsent:function(consent){var cookieObj=dinLeadTracker.getCookieObj();cookieObj.consent=consent;if(!consent){cookieObj.user_info_type=undefined;cookieObj.user_info=undefined;} dinLeadTracker.setCookieObj(cookieObj);if(consent&&this.StoredPosclickId!=""){dinLogger.Write(dinLogger.DEBUG,"LeadTracker: Consent given. The stored posclick info will be used");this.setLeadPosclick(this.StoredPosclickId);}},getUserConsent:function(){if(!this.isActive()){dinLogger.Write(dinLogger.DEBUG,"LeadTracker: Will not set cookie. LeadTracker is inactive");return} if(typeof dinConfigs.leadTracking.REQUIRE_CONSENT==="undefined"||!dinConfigs.leadTracking.REQUIRE_CONSENT){dinLogger.Write(dinLogger.DEBUG,"LeadTracker: Will not ask for consent") return true;} var cookieObj=dinLeadTracker.getCookieObj();if(typeof cookieObj.consent==="undefined"){dinLogger.Write(dinLogger.DEBUG,"LeadTracker: No consent info on cookie") return false;} return cookieObj.consent;},isActive:function(){if(typeof dinConfigs.leadTracking==="undefined"||dinConfigs.leadTracking==null){return false;} if(typeof dinConfigs.leadTracking.ACTIVE==="undefined"||dinConfigs.leadTracking.ACTIVE==null){return false;} return dinConfigs.leadTracking.ACTIVE},validate:function(ignoreCookie){if(typeof ignoreCookie!=="boolean"){ignoreCookie=false;} if(!this.isActive()){dinLogger.Write(dinLogger.DEBUG,"LeadTracker: Inactive");return false;} if(!this.getUserConsent()){dinLogger.Write(dinLogger.DEBUG,"LeadTracker: The user didnt give consent to be tracked") return false;} if(this.LastUrlPosted===dinFunctions.getDomainPathUrl()){dinLogger.Write(dinLogger.DEBUG,"LeadTracker: This url was already posted");return false;} if(!ignoreCookie){var cookieObj=dinLeadTracker.getCookieObj();if(typeof cookieObj.user_info_type==="undefined"||typeof cookieObj.user_info==="undefined"){dinLogger.Write(dinLogger.DEBUG,"LeadTracker: There is no user info on cookie to post");return false;}} return this.checkUrlRules();},checkUrlRules:function(){var url=window.location.href;if(typeof dinConfigs.leadTracking.HISTORY_URL_RULES==="undefined"||dinConfigs.leadTracking.HISTORY_URL_RULES.length===0){dinLogger.Write(dinLogger.DEBUG,"LeadTracker: No history config. All browsing will be tracked");return true;} if(dinFunctions.matchesRulesParser(url,dinConfigs.leadTracking.HISTORY_URL_RULES,"TYPE","VALUE")){dinLogger.Write(dinLogger.DEBUG,"LeadTracker: This url matched a history rule");return true;} var list=dinConfigs.leadTracking.LIST;if(typeof dinConfigs.leadTracking.AUTOMATION_URL_RULES==="undefined"||dinConfigs.leadTracking.AUTOMATION_URL_RULES.length===0||typeof dinConfigs.leadTracking.AUTOMATION_URL_RULES[list]==="undefined"||dinConfigs.leadTracking.AUTOMATION_URL_RULES[list].length===0){dinLogger.Write(dinLogger.DEBUG,"LeadTracker: This url didnt match any rules");return false;} var triggers=dinConfigs.leadTracking.AUTOMATION_URL_RULES[list];for(trigId in triggers){if(triggers[trigId].RULES.length===0){dinLogger.Write(dinLogger.DEBUG,"LeadTracker: Found an automation without url rules. All browsing will be tracked");return true;} if(dinFunctions.matchesRulesParser(url,triggers[trigId].RULES,"TYPE","VALUE")){dinLogger.Write(dinLogger.DEBUG,"LeadTracker: This url matched a automation rule");return true;}} dinLogger.Write(dinLogger.DEBUG,"LeadTracker: Url didnt match any rule");return false;},setReferrer:function(referer){dinLogger.Write(dinLogger.DEBUG,"LeadTracker: Trying to set referrer");if(typeof referer!=="string"||referer===""){dinLogger.Write(dinLogger.DEBUG,"LeadTracker: Empty referrer");return} var cookieObj=dinLeadTracker.getCookieObj();if(cookieObj.referrer_posted){dinLogger.Write(dinLogger.DEBUG,"LeadTracker: Referrer already posted");return} dinLogger.Write(dinLogger.DEBUG,"LeadTracker: Setting referrer");if(cookieObj.referrer!==referer){cookieObj.referrer=referer;cookieObj.referrer_posted=false;dinLeadTracker.setCookieObj(cookieObj);}},useReferrer:function(){var cookieObj=dinLeadTracker.getCookieObj();if(typeof cookieObj.referrer==="undefined"||cookieObj.referrer===""){return"";} if(typeof cookieObj.referrer_posted==="undefined"||cookieObj.referrer_posted){return"";} cookieObj.referrer_posted=true;dinLeadTracker.setCookieObj(cookieObj);return cookieObj.referrer;},post:function(){dinLogger.Write(dinLogger.DEBUG,"LeadTracker: Starting to post");if(!this.validate()){return} var cookieObj=dinLeadTracker.getCookieObj();var params=[{"type":cookieObj.user_info_type},{"value":cookieObj.user_info},{"list":dinConfigs.leadTracking.LIST},{"s":dinConfigs.siteCode},{"x-referrer":window.location.href}];var referrer=this.useReferrer();if(referrer!==""){params.push({"referrer":referrer})} this.LastUrlPosted=dinFunctions.getDomainPathUrl();dinFunctions.request("POST",this.POSCLICK_URL+"/leadtracking/"+dinConfigs.leadTracking.HASH+"/"+dinConfigs.clientCode+"/",params);dinLogger.Write(dinLogger.DEBUG,"LeadTracker: Access submitted successfully");}} var _dPosclickSite=String(dinConfigs.siteCode);var dinPosclick={version:"1.0",Init:function(){var query=this.getQueryParams(document.location.search);if(query.__dPosclick!=undefined){this.setCookie('_dPosclickCookie',query.__dPosclick);} var value=this.getCookie("_dPosclickCookie");if(value!=null&&value!=""){var tagScript=document.createElement('script');tagScript.type='text/javascript';tagScript.async=true;tagScript.src='https://receiver.posclick.dinamize.com/posclick/js/'+this.version+'?dPosclickCookie='+value+'&dPosclickSite='+dinConfigs.siteCode;var altScriptTag=document.getElementsByTagName('script')[0];altScriptTag.parentNode.insertBefore(tagScript,altScriptTag);}},getQueryParams:function(querystring){querystring=querystring.split("+").join(" ");var params={},tokens,regexpStr=/[?&]?([^=]+)=([^&]*)/g;while(tokens=regexpStr.exec(querystring)){params[decodeURIComponent(tokens[1])]=decodeURIComponent(tokens[2]);} return params;},setCookie:function(name,val){var Exdate=new Date();var Time=Exdate.getTime();Time+=3600*1000;Exdate.setTime(Time);document.cookie=name+'='+val+'; expires='+Exdate.toGMTString()+'; path=/';},getCookie:function(name){var I,X,Y,arrayCookies=document.cookie.split(";");for(I=0;I<arrayCookies.length;I++){X=arrayCookies[I].substr(0,arrayCookies[I].indexOf("="));Y=arrayCookies[I].substr(arrayCookies[I].indexOf("=")+1);X=X.replace(/^\s+|\s+$/g,"");if(X==name){return unescape(Y);}}},RegisterAccess:function(method,params){if(dinFunctions.isExampleEmail(params.cmp1)){return} if(!params.cmp1&&!params.cmp3){var c=dinLeadTracker.getCookieObj();var hasInfo=false;switch(c.user_info_type){case dinLeadTracker.TYPE_EMAIL:params.cmp1_crypt=c.user_info;hasInfo=true;break;case dinLeadTracker.TYPE_EXTERNAL_CODE:params.cmp3=c.user_info;hasInfo=true;break;case dinLeadTracker.TYPE_ID:params.contact_id=c.user_info;hasInfo=true;break} if(hasInfo){dinLogger.Write(dinLogger.DEBUG,"LeadTracker: Recover cookie info");}} var cookieVal=this.getCookie("_dPosclickCookie");if(cookieVal!=null&&cookieVal!=""){this.setCookie('_dPosclickCookie',cookieVal);params["_dAutomationGtmCookie"]=cookieVal;} var hashVal=this.getCookie("_dAutomationGtmSessionCookie");if(hashVal!=null&&hashVal!=""){params["_dAutomationGtmSessionCookie"]=hashVal;this.setCookie('_dAutomationGtmSessionCookie',hashVal);}else{var newVal=new Date().getTime();newVal+="."+Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15);params["_dAutomationGtmSessionCookie"]=newVal;this.setCookie('_dAutomationGtmSessionCookie',newVal);} var imgTag=document.createElement('img');imgTag.src='https://receiver.posclick.dinamize.com/tagmanager/access/?method='+method+'&v=2¶ms='+encodeURIComponent(JSON.stringify(params))+'&a='+Math.floor((Math.random()*99999)+1);var altScriptTag=document.getElementsByTagName('script')[0];altScriptTag.parentNode.insertBefore(imgTag,altScriptTag);if(dinLeadTracker.isActive()){if(params.cmp3!==undefined&¶ms.cmp3!==""){dinLogger.Write(dinLogger.DEBUG,"LeadTracker: Lead set through posclick's RegisterAccess func");dinLeadTracker.SetLeadExternalId(params.cmp3);return} if(params.cmp1!==undefined&¶ms.cmp1!==""){dinLogger.Write(dinLogger.DEBUG,"LeadTracker: Lead set through posclick's RegisterAccess func");dinLeadTracker.SetLeadEmail(params.cmp1);return}}},AddTimer:function(key,hash,params){params["_dAutomationGtmKey"]=key;params["_dAutomationGtmHash"]=hash;this.RegisterAccess("add_timer",params);},ReplaceTimer:function(key,hash,params){params["_dAutomationGtmKey"]=key;params["_dAutomationGtmHash"]=hash;params["replace_cart"]=true;this.RegisterAccess("add_timer",params);},CloseTimer:function(key,hash){var params={};params["_dAutomationGtmKey"]=key;params["_dAutomationGtmHash"]=hash;this.RegisterAccess("close_timer",params);},Access:function(key,hash,params){params["_dAutomationGtmKey"]=key;params["_dAutomationGtmHash"]=hash;this.RegisterAccess("access",params);},Purchase:function(key,hash,params){params["_dAutomationGtmKey"]=key;params["_dAutomationGtmHash"]=hash;this.RegisterAccess("purchase",params);}} function _getdPosclickQueryParams(queryString){return dinPosclick.getQueryParams(queryString);} function _setdPosclickCookie(name,value){dinPosclick.setCookie(name,value);} function _getdPosclickCookie(name){return dinPosclick.getCookie(name);} function _dAutomationGtmRegisterAccess(method,params){dinPosclick.RegisterAccess(method,params);} function _dAutomationGtmAddTimer(key,hash,params){dinPosclick.AddTimer(key,hash,params);} function _dAutomationGtmCloseTimer(key,hash){dinPosclick.CloseTimer(key,hash);} function _dAutomationGtmAccess(key,hash,params){dinPosclick.Access(key,hash,params);} function _dAutomationPurchase(key,hash,params){dinPosclick.Purchase(key,hash,params);} if(typeof dinForms=="undefined"||dinForms.version<1.3){var dinForms={version:1.3,onLoad:function(){var forms=document.getElementsByClassName("formIntegration");for(var k=0;k<forms.length;++k){var inputElement=forms[k].getElementsByClassName("din-input-mask");for(var i=0;i<inputElement.length;++i){switch(inputElement[i].getAttribute("din-mask-type")){case"DT":case"DH":var str=inputElement[i].getAttribute("format");VMasker(inputElement[i]).maskPattern(str.replace(/D|M|A|Y|H/g,"9"));break;case"INT":VMasker(inputElement[i]).maskNumber();break;case"FLT":var str=inputElement[i].getAttribute("format");VMasker(inputElement[i]).maskMoney({separator:str});break;}}} var referer=dinFunctions.getReferrer();var hostname=window.location.hostname;if(referer!=hostname){var jsonParams={"url":window.location.href,"referer":document.referrer};var cookieData=btoa(JSON.stringify(jsonParams));dinForms.SetCookie("dinTrafficSource",cookieData,90);}},ValidateForm:function(form){this.LimpaAvisos(form);var elem=form.elements;var enviar=true;for(var i=0;i<elem.length;i++){if(elem[i].type=="hidden"){continue} var classList=elem[i].className.split(" ");this.removeClass("field-error",elem[i]);elem[i].value=elem[i].value.trim();if(classList.indexOf("type_EMAIL")!=-1){if(!this.validateEmail(elem[i].value)){this.addClass("field-error",elem[i]);enviar=false;}} else if(classList.indexOf("type_DT")!=-1){if(elem[i].value!=""&&!this.existDate(this.prepareDate(elem[i].value,elem[i].getAttribute("format")),false)){this.addClass("field-error",elem[i]);enviar=false;}} else if(classList.indexOf("type_DH")!=-1){if(elem[i].value!=""&&!this.existDate(this.prepareDate(elem[i].value,elem[i].getAttribute("format")),true)){this.addClass("field-error",elem[i]);enviar=false;}} else if(classList.indexOf("type_PHN_NUM")!=-1){var fieldName=elem[i].getAttribute("hd-name");var text=elem[i].value;var patPhone=/\d+/g;var res;var resultNum="";var resultDDI="";res=text.match(patPhone);if(res!==null){resultNum=res.join("");} form.elements[fieldName].value="";if(text!=""&&resultNum.length<3){this.addClass("field-error",elem[i]);enviar=false;}else if(resultNum.length>=3){text=form.elements[fieldName+"_DDI"].value res=text.match(patPhone);if(res!==null){resultDDI=res.join("");form.elements[fieldName].value=resultDDI+resultNum;}else{this.addClass("field-error",form.elements[fieldName+"_DDI"]);enviar=false;}}} if(classList.indexOf("field-required")!=-1){if(classList.indexOf("type_LVM")==-1){if(elem[i].value.trim()==""){this.addClass("field-error",elem[i]);enviar=false;}} if(classList.indexOf("type_LVM")!=-1){var hdName=elem[i].getAttribute("hd-name");var ok=false;this.removeClass("field-error",form.getElementsByClassName("containerMultiple_"+hdName)[0]);var checkboxes=form.getElementsByClassName("chk_"+hdName);for(var j=0;j<checkboxes.length;j++){if(checkboxes[j].checked==true){ok=true;break;}} if(!ok){this.addClass("field-error",form.getElementsByClassName("containerMultiple_"+hdName)[0]);enviar=false;}}}} if(!enviar){var msgError=form.getElementsByClassName("DinamizeDivMessageError")[0];if(msgError&&msgError.innerHTML.length){msgError.style.display="block";} return false} var lvmElements=form.getElementsByClassName("type_LVM");var checkboxes,checkedValues;var hdName;for(var i=0;i<lvmElements.length;i++){hdName=lvmElements[i].getAttribute("hd-name");checkboxes=form.getElementsByClassName("chk_"+hdName);checkedValues="";if(checkboxes.length>0){for(var k=0;k<checkboxes.length;k++){if(checkboxes[k].checked){checkedValues+="|"+checkboxes[k].value;}}} checkedValues=checkedValues.replace("|","");form.elements[lvmElements[i].getAttribute("hd-name")].value=checkedValues;} this.setDateValues(form,"type_DT");this.setDateValues(form,"type_DH");var fltElements=form.getElementsByClassName("type_FLT");for(var i=0;i<fltElements.length;i++){form.elements[fltElements[i].getAttribute("hd-name")].value=fltElements[i].value.replace(",",".");};var isPreview=form.elements["isPreview"];if(isPreview){dinForms.ResetFormValues(form);return false} try{var frame if(typeof dinLeadTracker!=="undefined"){frame=window;}else if(typeof window.parent!=="undefined"&&typeof window.parent.dinLeadTracker!=="undefined"){frame=window.parent;}else if(typeof window.top!=="undefined"&&typeof window.top.dinLeadTracker!=="undefined"){frame=window.top;} if(typeof frame!=="undefined"&&frame.dinLeadTracker.isActive()){var formElements=form.elements;if(typeof formElements.cmp1!=="undefined"){frame.dinLeadTracker.SetLeadEmail(formElements.cmp1.value);} if(typeof formElements.cmp3!=="undefined"){frame.dinLeadTracker.SetLeadExternalId(formElements.cmp3.value);}}} catch(e){console.warn("Leadtracker ignored because of Cross-Domain error.");console.warn(e);} var isCaptcha=this.hasCaptcha(form);if(isCaptcha){form.getElementsByClassName("DinamizeDivCaptchaMessage")[0].style.display="none";var recaptcha=form.elements["g-recaptcha-response"];if(recaptcha.value===""){form.getElementsByClassName("DinamizeDivCaptchaMessage")[0].style.display="block";grecaptcha.reset();return false;}} var isMsg=form.elements["isMsg"].value;var redirectElement=form.elements["redirect-url-js"]?form.elements["redirect-url-js"]:form.elements["redirect-url-pp"];if(isMsg=="true"||(redirectElement&&redirectElement.value!="")){this.LoadingForm(form);return false;} return true;},setDateValues:function(form,className){var dtElements=form.getElementsByClassName(className);for(var i=0;i<dtElements.length;i++){if(dtElements[i].value==""){continue;} form.elements[dtElements[i].getAttribute("hd-name")].value=this.prepareDate(dtElements[i].value,dtElements[i].getAttribute("format"));};},SetCookie:function(cname,cvalue,exdays){var d=new Date();d.setTime(d.getTime()+(exdays*24*60*60*1000));var expires="expires="+d.toUTCString();document.cookie=cname+"="+cvalue+";"+expires+";path=/";},hasCaptcha:function(form){if(form.elements["dnz-captcha-google"]!=undefined){return true;} var action=form.getAttribute("action");if(action===null){return false;} action=action.split("/");if(action.length==8){if(action[7]==1){return true;}} return false;},LoadingForm:function(form){if(document.getElementById("DinamizeIframeFormIntegration")==undefined){var ifrm=document.createElement("iframe");ifrm.setAttribute("id","DinamizeIframeFormIntegration");ifrm.setAttribute("name","DinamizeIframeFormIntegration");ifrm.style.display="none";document.body.appendChild(ifrm);} dinFunctions.addCookieToForm(document,form) this.Spinner(form,true);var redirectElement=form.elements["redirect-url-pp"];if(redirectElement&&redirectElement.value!=""){this.Request(form.getAttribute("action")+"/",this.serialize(form),form);}else{var imgReq=document.createElement("img");imgReq.setAttribute("id","DinamizeImgResponse");imgReq.style.display="none";imgReq.onload=function(){redirectElement=form.elements["redirect-url-js"];if(redirectElement&&redirectElement.value!=""){location.href=redirectElement.value;} dinForms.Spinner(form,false);dinForms.ResetFormValues(form);} imgReq.onerror=function(){dinForms.Spinner(form,false);var msgErrorDep=form.getElementsByClassName("divMessageError")[0];if(msgErrorDep){msgErrorDep.style.display="block";} var msgAlert=form.getElementsByClassName("DinamizeDivMessageAlert")[0];if(msgAlert){msgAlert.style.display="block";}} imgReq.src=form.getAttribute("action")+"/?"+this.serialize(form)+"&a="+Math.floor((Math.random()*99999)+1);form.appendChild(imgReq);}},Request:function(url,params,form){var xmlhttp=new XMLHttpRequest();xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==XMLHttpRequest.DONE){if(xmlhttp.status>=200&&xmlhttp.status<=299){if((form.elements["redirect-url-pp"].value.includes(window.location.origin))){parent.location.href=form.elements["redirect-url-pp"].value;}else{window.open(form.elements["redirect-url-pp"].value,"_blank");}dinForms.Spinner(form,false);dinForms.ResetFormValues(form);}else{dinForms.Spinner(form,false);var msgErrorDep=form.getElementsByClassName("divMessageError")[0];if(msgErrorDep){msgErrorDep.style.display="block";} var msgAlert=form.getElementsByClassName("DinamizeDivMessageAlert")[0];if(msgAlert){msgAlert.style.display="block";}}}};if(typeof params==="string"&¶ms!==""){url+="?"+params;} xmlhttp.open("POST",url,true);xmlhttp.send();},Spinner:function(form,show){var submitElement=form.getElementsByClassName("dinSubmit")[0];var spinnerElement=form.getElementsByClassName("spinner")[0];if(show){if(spinnerElement) spinnerElement.style.display="block";if(submitElement) submitElement.value="";}else{if(spinnerElement) spinnerElement.style.display="none";if(submitElement) submitElement.value=submitElement.getAttribute("original-value");}},GetCookie:function(cname){var name=cname+"=";var decodedCookie=decodeURIComponent(document.cookie);var ca=decodedCookie.split(";");for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==" "){c=c.substring(1);} if(c.indexOf(name)==0){return c.substring(name.length,c.length);}} return"";},ResetFormValues:function(form){if(typeof($)!="undefined"){if((typeof($().iCheck)!="undefined")){$(form).find("input[type=\"checkbox\"]:not(.cssOnly)").iCheck("uncheck");}} var msgSuccess=form.getElementsByClassName("DinamizeDivMessageSuccess")[0];if(msgSuccess){msgSuccess.style.display="block";} var imgRequest=document.getElementById("DinamizeImgResponse");if(imgRequest){imgRequest.remove();} form.reset();},LimpaAvisos:function(form){var msgSuccess=form.getElementsByClassName("DinamizeDivMessageSuccess")[0];if(msgSuccess) msgSuccess.style.display="none";var msgAlert=form.getElementsByClassName("DinamizeDivMessageAlert")[0];if(msgAlert) msgAlert.style.display="none";var msgError=form.getElementsByClassName("DinamizeDivMessageError")[0];if(msgError) msgError.style.display="none";var msgErrorDep=form.getElementsByClassName("divMessageError")[0];if(msgErrorDep) msgErrorDep.style.display="none";var msgCaptcha=form.getElementsByClassName("DinamizeDivCaptchaMessage")[0];if(msgCaptcha) msgCaptcha.style.display="none";},validateEmail:function(email){var re=/^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;return re.test(email);},prepareDate:function(date,format){var newDate,time;format=format.substr(0,10).replace("/","").replace("/","").replace("-","").replace("-","");time=date.substr(10,15);if(format=="DDMMAAAA"){newDate=date[6]+date[7]+date[8]+date[9]+"-"+date[3]+date[4]+"-"+date[0]+date[1];}else if(format=="MMDDAAAA"){newDate=date[6]+date[7]+date[8]+date[9]+"-"+date[0]+date[1]+"-"+date[3]+date[4];}else if(format=="AAAAMMDD"){newDate=date[0]+date[1]+date[2]+date[3]+"-"+date[5]+date[6]+"-"+date[8]+date[9];} return newDate+time;},existDate:function(date,time){if(time){if(date.length!=16){return false;}}else if(!time){if(date.length!=10){return false;} date+=" 00:00";} var NEWDATE=new Date(date.replace("-","/").replace("-","/"));var strNewdate;var y=NEWDATE.getFullYear().toString();var m=(NEWDATE.getMonth()+1).toString();var d=NEWDATE.getDate().toString();var h=NEWDATE.getHours().toString();var min=NEWDATE.getMinutes().toString();strNewdate=y+"-"+(m[1]?m:"0"+m[0])+"-"+(d[1]?d:"0"+d[0])+" "+(h[1]?h:"0"+h[0])+":"+(min[1]?min:"0"+min[0]);if(date!=strNewdate){return false;} return true;},addClass:function(classname,element){var cn=element.className;if(cn.indexOf(classname)!=-1){return;} if(cn!=""){classname=" "+classname;} element.className=cn+classname;},removeClass:function(classname,element){var cn=element.className;var rxp=new RegExp("\\s?\\b"+classname+"\\b","g");cn=cn.replace(rxp,"");element.className=cn;},serialize:function(form){if(!form||form.nodeName!=="FORM"){return}var i,j,q=[];for(i=form.elements.length-1;i>=0;i=i-1){if(form.elements[i].name===""){continue}switch(form.elements[i].nodeName){case"INPUT":switch(form.elements[i].type){case"text":case"hidden":case"password":case"button":case"reset":case"submit":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"checkbox":case"radio":if(form.elements[i].checked){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value))}break;case"file":break}break;case"TEXTAREA":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"SELECT":switch(form.elements[i].type){case"select-one":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"select-multiple":for(j=form.elements[i].options.length-1;j>=0;j=j-1){if(form.elements[i].options[j].selected){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].options[j].value))}}break}break;case"BUTTON":switch(form.elements[i].type){case"reset":case"submit":case"button":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break}break}}return q.join("&")},};} if(typeof dinControllerLoadFunction=='undefined'){var dinControllerLoadFunction=1;} function dinLoadFunction(){if(typeof dinControllerLoadFunction!='undefined'&&dinControllerLoadFunction!=1){dinLogger.Write(dinLogger.WARN,"dinLoadFunction duplicate call");return;} dinControllerLoadFunction=0;dinLogger.Write(dinLogger.DEBUG,"dinLoadFunction called");let referer=dinFunctions.getReferrer();let hostname=window.location.hostname;if(referer!=hostname){let jsonParams={"url":window.location.href,"referer":document.referrer};let cookieData=btoa(JSON.stringify(jsonParams));dinFunctions.setCookie('dinTrafficSource',cookieData,90);} dinTargetForm.Init();dinWhatsForm.Init();dinSearchForm.Init();dinEcommerceTools.Init();dinLeadTracker.Init();dinPosclick.Init();dinForms.onLoad();dinLogger.Write(dinLogger.DEBUG,"dinLoadFunction done");} if(dinConfigs.logLevel!==undefined){dinLogger.Set(dinConfigs.logLevel);} if(localStorage.getItem('dinConfigs_logLevel')!==null){dinLogger.Set(parseInt(localStorage.getItem('dinConfigs_logLevel')));} if(document.readyState==='complete'){dinLogger.Write(dinLogger.DEBUG,"document was already loaded. Calling dinLoadFunction");dinLoadFunction();}else{dinFunctions.attachEventOnElement(window,'load',dinLoadFunction)}}else{dinLogger.Write(dinLogger.WARN,"dinLoadFunction duplicate call");}