-
COMMODITIESAGRINVESTDesenvolvimento de estratégias de mercadovoltadas para a realidade da empresa
-
COMMODITIESAGRINVESTDesenvolvimento de estratégias de mercadovoltada para a realidade da sua empresa
-
A Agrinvest Commodities atua no mercado físico de commodities agrícolas desde 1987. O nosso time de brokers consta de uma vasta experiência tanto no mercado doméstico quanto no mercado internacional, e isso nos possibilita contribuir com os nossos clientes em suas operações de compra e venda de commodities agrícolas.
A Agrinvest Commodities busca a satisfação dos seus clientes desenvolvendo suas atividades diárias com profissionalismo, honestidade e transparência. Compromete-se a fornecer informações claras, confiáveis e equidade nos negócios.
A Agrinvest Commodities reúne a expertise de atuação no mercado físico com os melhores produtos financeiros. A integração, em reuniões diárias, das equipes de derivativos e mercado físico permite a definição mais eficaz das estratégias financeiras a serem implementadas de acordo com o perfil de cada cliente e com o cenário do momento.
A Agrinvest Commodities oferece aos seus clientes acesso às principais Bolsas de Mercadorias e as melhores ferramentas e estratégias para o gerenciamento do risco de preço.
Negocie com confiança e opere já.
O sucesso de um investimento depende, dentre outros fatores, de uma análise rigorosa, de percepções diferenciadas e da mensuração do risco. A Agrinvest Commodities desenvolve pesquisa, coleta de dados, análise, gerenciamento do risco de preço e consultoria para diversos setores do agronegócio nacional e internacional.
“Estude a floresta, não as árvores. Fique atento aos movimentos micro e como isso pode afetar o macro, oferta & demanda e a curva de preço.”
A Agrinvest Commodities presta serviços de consultoria via estudos setoriais do agronegócio, análise macroeconômica e estruturação da governança corporativa.
A estruturação da governança corporativa conta com o apoio do senhor Burghard Klemz, um profissional de longa experiência executiva e certificado pelo Instituto Brasileiro de Governança Corporativa – IBGC, com destaque para os serviços prestados: implantação do conselho de administração, regimento do conselho, acordo de acionistas, código de ética, inventário de sucessão e conselho familiar.
Cursos
A Agrinvest Commodities oferece cursos voltados aos profissionais ligados ao agronegócio com foco principalmente no aperfeiçoamento das técnicas e estratégias de comercialização de grãos e no gerenciamento do risco de preço.
Palestras
Sobre a conjuntura macroeconômica, político-econômica e setorial. As palestras são ministradas pelos diretores da empresa, os quais possuem um profundo conhecimento técnico.
Um time de profissionais, analistas de mercado e brokers com uma vasta experiência no agronegócio que se completam nos mercados físico e derivativos.
Oferecemos soluções que realmente agregam valor aos negócios dos nossos clientes no setor de comercialização de commodities agrícolas.
Fique por dentro dos principais temas que mexem com as mais importantes commodities do mundo agro: clima, câmbio, bolsas nacionais e internacionais, oferta e demanda de soja e milho.
/* Suggested Phone Validation ==> http://jackocnr.com/intl-tel-input.html*/
!function(t,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():t.VMasker=e()}(this,function(){var t="9",e="A",n="S",i=[8,9,16,17,18,36,37,38,39,40,91,92,93],o=function(t){for(var e=0,n=i.length;n>e;e++)if(t==i[e])return!1;return!0},r=function(t){return t=t||{},t={precision:t.hasOwnProperty("precision")?t.precision:2,separator:t.separator||",",unit:t.unit&&t.unit.replace(/[\s]/g,"")+" "||"",suffixUnit:t.suffixUnit&&" "+t.suffixUnit.replace(/[\s]/g,"")||"",zeroCents:t.zeroCents,lastOutput:t.lastOutput},t.moneyPrecision=t.zeroCents?0:t.precision,t},s=function(i,o,r){for(;o
// Mantem apenas a versão mais recente do script 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 = document.referrer ? document.referrer.match(/:\/\/(.[^/]+)/)[1] : ""; 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); /********************************************************/ // validação de cada tipo de campo /********************************************************/ 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; } } }
// CAMPOS OBRIGATORIOS if( classList.indexOf("field-required") != -1 ){
// Todos os campos não-LVM if(classList.indexOf("type_LVM") == -1){ if( elem[i].value.trim() == "" ){ this.addClass("field-error", elem[i]); enviar = false; } }
// else lvm... 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]); // é o único caso que a classe é removida deste jeito
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;
}
}
}
}
/********************************************************/
// Em caso de falha na validação...
// Mensagem de Campo Obrigatório
/********************************************************/
if(!enviar){
var msgError = form.getElementsByClassName("DinamizeDivMessageError")[0];
if(msgError && msgError.innerHTML.length) {
msgError.style.display = "block";
}
return false
}
/********************************************************/
// Escreve valores nos campos hidden (quando necessário)
/********************************************************/
// Listas de Valores Multiplos (LVM)
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;
}
// Datas
this.setDateValues(form, "type_DT");
this.setDateValues(form, "type_DH");
// Floats
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(",",".");
};
/********************************************************/
// finalizando...
/********************************************************/
// se for preview... dá msg de sucesso e cai fora!
var isPreview = form.elements["isPreview"];
if (isPreview) {
dinForms.ResetFormValues(form);
return false
}
// LEADTRACKER
// Precisamos descobrir se o objeto de leadTracker existe no mesmo frame que este formulário está, ou se está no parent (ou no top).
// Usamos a referencia deste frame a partir disto.
// Para ter o máximo de compatibilidade, verifico se o browser suporta estes objetos.
// Resolve idealmente o uso de leadtracker por popups
// faz try-catch pois o frame parent/top pode ser de outro dominio, isto gerará um erro do tipo cross-domain.
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;
}
// se encontramos leadtracker em algum dos frames, seta!
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(); // ver se precisa
return false;
}
}
// Se o form usa "msg", não faz action com redirect.
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; // posta o conteudo, mas não executa action do form
}
// Posta pro nosso receiver e este fará um redirect.
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"));
};
},
// NOVO, apenas landing page
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){
// Detecta se existe este elemento (deprecated) de captcha.
if (form.elements["dnz-captcha-google"] != undefined) {
return true;
}
// Validação normal
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);
}
if (this.GetCookie("dinTrafficSource")) {
// MANTER COM ID, SÓ PRECISAMOS DE UM POR document
if (document.getElementById("__dinTrafficSource")) {
document.getElementById("__dinTrafficSource").setAttribute("value", this.GetCookie("dinTrafficSource"));
} else {
var ts = document.createElement("input");
ts.type = "hidden";
ts.name = "__dinTrafficSource";
// MANTER COM ID, SÓ PRECISAMOS DE UM POR document
ts.id = "__dinTrafficSource";
ts.value = this.GetCookie("dinTrafficSource");
form.appendChild(ts);
}
}
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 {
// Usa um "img" para fazer uma requisição
var imgReq = document.createElement("img");
imgReq.setAttribute("id", "DinamizeImgResponse");
imgReq.style.display = "none"; // redundancia
imgReq.onload = function () {
// LandingPage
redirectElement = form.elements["redirect-url-js"];
if (redirectElement && redirectElement.value != "") {
location.href = redirectElement.value;
}
// Fim LandingPage
dinForms.Spinner(form, false);
dinForms.ResetFormValues(form);
}
imgReq.onerror = function () {
dinForms.Spinner(form, false);
// elemento deprecated
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) { // XMLHttpRequest.DONE == 4
if (xmlhttp.status >= 200 && xmlhttp.status <= 299) {
parent.location.href = form.elements["redirect-url-pp"].value;
dinForms.Spinner(form, false);
dinForms.ResetFormValues(form);
} else {
dinForms.Spinner(form, false);
// elemento deprecated
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" && params !== "") {
url += "?" + params; // encodeURI(params);
}
xmlhttp.open("POST", url, true);
xmlhttp.send();
},
Spinner: function(form, show){
// manter versão por compatibilidade?
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
// if ( document.readyState === "complete" ) { dinForms.onLoad(); }else { if (window.attachEvent) { window.attachEvent("load", dinForms.onLoad); } else { window.addEventListener("load", dinForms.onLoad); } }
/* Suggested Phone Validation ==> http://jackocnr.com/intl-tel-input.html*/
!function(t,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():t.VMasker=e()}(this,function(){var t="9",e="A",n="S",i=[8,9,16,17,18,36,37,38,39,40,91,92,93],o=function(t){for(var e=0,n=i.length;n>e;e++)if(t==i[e])return!1;return!0},r=function(t){return t=t||{},t={precision:t.hasOwnProperty("precision")?t.precision:2,separator:t.separator||",",unit:t.unit&&t.unit.replace(/[\s]/g,"")+" "||"",suffixUnit:t.suffixUnit&&" "+t.suffixUnit.replace(/[\s]/g,"")||"",zeroCents:t.zeroCents,lastOutput:t.lastOutput},t.moneyPrecision=t.zeroCents?0:t.precision,t},s=function(i,o,r){for(;o
// Mantem apenas a versão mais recente do script 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 = document.referrer ? document.referrer.match(/:\/\/(.[^/]+)/)[1] : ""; 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); /********************************************************/ // validação de cada tipo de campo /********************************************************/ 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; } } }
// CAMPOS OBRIGATORIOS if( classList.indexOf("field-required") != -1 ){
// Todos os campos não-LVM if(classList.indexOf("type_LVM") == -1){ if( elem[i].value.trim() == "" ){ this.addClass("field-error", elem[i]); enviar = false; } }
// else lvm... 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]); // é o único caso que a classe é removida deste jeito
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;
}
}
}
}
/********************************************************/
// Em caso de falha na validação...
// Mensagem de Campo Obrigatório
/********************************************************/
if(!enviar){
var msgError = form.getElementsByClassName("DinamizeDivMessageError")[0];
if(msgError && msgError.innerHTML.length) {
msgError.style.display = "block";
}
return false
}
/********************************************************/
// Escreve valores nos campos hidden (quando necessário)
/********************************************************/
// Listas de Valores Multiplos (LVM)
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;
}
// Datas
this.setDateValues(form, "type_DT");
this.setDateValues(form, "type_DH");
// Floats
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(",",".");
};
/********************************************************/
// finalizando...
/********************************************************/
// se for preview... dá msg de sucesso e cai fora!
var isPreview = form.elements["isPreview"];
if (isPreview) {
dinForms.ResetFormValues(form);
return false
}
// LEADTRACKER
// Precisamos descobrir se o objeto de leadTracker existe no mesmo frame que este formulário está, ou se está no parent (ou no top).
// Usamos a referencia deste frame a partir disto.
// Para ter o máximo de compatibilidade, verifico se o browser suporta estes objetos.
// Resolve idealmente o uso de leadtracker por popups
// faz try-catch pois o frame parent/top pode ser de outro dominio, isto gerará um erro do tipo cross-domain.
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;
}
// se encontramos leadtracker em algum dos frames, seta!
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(); // ver se precisa
return false;
}
}
// Se o form usa "msg", não faz action com redirect.
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; // posta o conteudo, mas não executa action do form
}
// Posta pro nosso receiver e este fará um redirect.
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"));
};
},
// NOVO, apenas landing page
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){
// Detecta se existe este elemento (deprecated) de captcha.
if (form.elements["dnz-captcha-google"] != undefined) {
return true;
}
// Validação normal
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);
}
if (this.GetCookie("dinTrafficSource")) {
// MANTER COM ID, SÓ PRECISAMOS DE UM POR document
if (document.getElementById("__dinTrafficSource")) {
document.getElementById("__dinTrafficSource").setAttribute("value", this.GetCookie("dinTrafficSource"));
} else {
var ts = document.createElement("input");
ts.type = "hidden";
ts.name = "__dinTrafficSource";
// MANTER COM ID, SÓ PRECISAMOS DE UM POR document
ts.id = "__dinTrafficSource";
ts.value = this.GetCookie("dinTrafficSource");
form.appendChild(ts);
}
}
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 {
// Usa um "img" para fazer uma requisição
var imgReq = document.createElement("img");
imgReq.setAttribute("id", "DinamizeImgResponse");
imgReq.style.display = "none"; // redundancia
imgReq.onload = function () {
// LandingPage
redirectElement = form.elements["redirect-url-js"];
if (redirectElement && redirectElement.value != "") {
location.href = redirectElement.value;
}
// Fim LandingPage
dinForms.Spinner(form, false);
dinForms.ResetFormValues(form);
}
imgReq.onerror = function () {
dinForms.Spinner(form, false);
// elemento deprecated
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) { // XMLHttpRequest.DONE == 4
if (xmlhttp.status >= 200 && xmlhttp.status <= 299) {
parent.location.href = form.elements["redirect-url-pp"].value;
dinForms.Spinner(form, false);
dinForms.ResetFormValues(form);
} else {
dinForms.Spinner(form, false);
// elemento deprecated
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" && params !== "") {
url += "?" + params; // encodeURI(params);
}
xmlhttp.open("POST", url, true);
xmlhttp.send();
},
Spinner: function(form, show){
// manter versão por compatibilidade?
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
// if ( document.readyState === "complete" ) { dinForms.onLoad(); }else { if (window.attachEvent) { window.attachEvent("load", dinForms.onLoad); } else { window.addEventListener("load", dinForms.onLoad); } }
/* Suggested Phone Validation ==> http://jackocnr.com/intl-tel-input.html*/
!function(t,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():t.VMasker=e()}(this,function(){var t="9",e="A",n="S",i=[8,9,16,17,18,36,37,38,39,40,91,92,93],o=function(t){for(var e=0,n=i.length;n>e;e++)if(t==i[e])return!1;return!0},r=function(t){return t=t||{},t={precision:t.hasOwnProperty("precision")?t.precision:2,separator:t.separator||",",unit:t.unit&&t.unit.replace(/[\s]/g,"")+" "||"",suffixUnit:t.suffixUnit&&" "+t.suffixUnit.replace(/[\s]/g,"")||"",zeroCents:t.zeroCents,lastOutput:t.lastOutput},t.moneyPrecision=t.zeroCents?0:t.precision,t},s=function(i,o,r){for(;o
// Mantem apenas a versão mais recente do script 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 = document.referrer ? document.referrer.match(/:\/\/(.[^/]+)/)[1] : ""; 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); /********************************************************/ // validação de cada tipo de campo /********************************************************/ 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; } } }
// CAMPOS OBRIGATORIOS if( classList.indexOf("field-required") != -1 ){
// Todos os campos não-LVM if(classList.indexOf("type_LVM") == -1){ if( elem[i].value.trim() == "" ){ this.addClass("field-error", elem[i]); enviar = false; } }
// else lvm... 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]); // é o único caso que a classe é removida deste jeito
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;
}
}
}
}
/********************************************************/
// Em caso de falha na validação...
// Mensagem de Campo Obrigatório
/********************************************************/
if(!enviar){
var msgError = form.getElementsByClassName("DinamizeDivMessageError")[0];
if(msgError && msgError.innerHTML.length) {
msgError.style.display = "block";
}
return false
}
/********************************************************/
// Escreve valores nos campos hidden (quando necessário)
/********************************************************/
// Listas de Valores Multiplos (LVM)
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;
}
// Datas
this.setDateValues(form, "type_DT");
this.setDateValues(form, "type_DH");
// Floats
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(",",".");
};
/********************************************************/
// finalizando...
/********************************************************/
// se for preview... dá msg de sucesso e cai fora!
var isPreview = form.elements["isPreview"];
if (isPreview) {
dinForms.ResetFormValues(form);
return false
}
// LEADTRACKER
// Precisamos descobrir se o objeto de leadTracker existe no mesmo frame que este formulário está, ou se está no parent (ou no top).
// Usamos a referencia deste frame a partir disto.
// Para ter o máximo de compatibilidade, verifico se o browser suporta estes objetos.
// Resolve idealmente o uso de leadtracker por popups
// faz try-catch pois o frame parent/top pode ser de outro dominio, isto gerará um erro do tipo cross-domain.
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;
}
// se encontramos leadtracker em algum dos frames, seta!
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(); // ver se precisa
return false;
}
}
// Se o form usa "msg", não faz action com redirect.
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; // posta o conteudo, mas não executa action do form
}
// Posta pro nosso receiver e este fará um redirect.
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"));
};
},
// NOVO, apenas landing page
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){
// Detecta se existe este elemento (deprecated) de captcha.
if (form.elements["dnz-captcha-google"] != undefined) {
return true;
}
// Validação normal
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);
}
if (this.GetCookie("dinTrafficSource")) {
// MANTER COM ID, SÓ PRECISAMOS DE UM POR document
if (document.getElementById("__dinTrafficSource")) {
document.getElementById("__dinTrafficSource").setAttribute("value", this.GetCookie("dinTrafficSource"));
} else {
var ts = document.createElement("input");
ts.type = "hidden";
ts.name = "__dinTrafficSource";
// MANTER COM ID, SÓ PRECISAMOS DE UM POR document
ts.id = "__dinTrafficSource";
ts.value = this.GetCookie("dinTrafficSource");
form.appendChild(ts);
}
}
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 {
// Usa um "img" para fazer uma requisição
var imgReq = document.createElement("img");
imgReq.setAttribute("id", "DinamizeImgResponse");
imgReq.style.display = "none"; // redundancia
imgReq.onload = function () {
// LandingPage
redirectElement = form.elements["redirect-url-js"];
if (redirectElement && redirectElement.value != "") {
location.href = redirectElement.value;
}
// Fim LandingPage
dinForms.Spinner(form, false);
dinForms.ResetFormValues(form);
}
imgReq.onerror = function () {
dinForms.Spinner(form, false);
// elemento deprecated
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) { // XMLHttpRequest.DONE == 4
if (xmlhttp.status >= 200 && xmlhttp.status <= 299) {
parent.location.href = form.elements["redirect-url-pp"].value;
dinForms.Spinner(form, false);
dinForms.ResetFormValues(form);
} else {
dinForms.Spinner(form, false);
// elemento deprecated
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" && params !== "") {
url += "?" + params; // encodeURI(params);
}
xmlhttp.open("POST", url, true);
xmlhttp.send();
},
Spinner: function(form, show){
// manter versão por compatibilidade?
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
// if ( document.readyState === "complete" ) { dinForms.onLoad(); }else { if (window.attachEvent) { window.attachEvent("load", dinForms.onLoad); } else { window.addEventListener("load", dinForms.onLoad); } }
/* Suggested Phone Validation ==> http://jackocnr.com/intl-tel-input.html*/
!function(t,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():t.VMasker=e()}(this,function(){var t="9",e="A",n="S",i=[8,9,16,17,18,36,37,38,39,40,91,92,93],o=function(t){for(var e=0,n=i.length;n>e;e++)if(t==i[e])return!1;return!0},r=function(t){return t=t||{},t={precision:t.hasOwnProperty("precision")?t.precision:2,separator:t.separator||",",unit:t.unit&&t.unit.replace(/[\s]/g,"")+" "||"",suffixUnit:t.suffixUnit&&" "+t.suffixUnit.replace(/[\s]/g,"")||"",zeroCents:t.zeroCents,lastOutput:t.lastOutput},t.moneyPrecision=t.zeroCents?0:t.precision,t},s=function(i,o,r){for(;o
// Mantem apenas a versão mais recente do script 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 = document.referrer ? document.referrer.match(/:\/\/(.[^/]+)/)[1] : ""; 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); /********************************************************/ // validação de cada tipo de campo /********************************************************/ 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; } } }
// CAMPOS OBRIGATORIOS if( classList.indexOf("field-required") != -1 ){
// Todos os campos não-LVM if(classList.indexOf("type_LVM") == -1){ if( elem[i].value.trim() == "" ){ this.addClass("field-error", elem[i]); enviar = false; } }
// else lvm... 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]); // é o único caso que a classe é removida deste jeito
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;
}
}
}
}
/********************************************************/
// Em caso de falha na validação...
// Mensagem de Campo Obrigatório
/********************************************************/
if(!enviar){
var msgError = form.getElementsByClassName("DinamizeDivMessageError")[0];
if(msgError && msgError.innerHTML.length) {
msgError.style.display = "block";
}
return false
}
/********************************************************/
// Escreve valores nos campos hidden (quando necessário)
/********************************************************/
// Listas de Valores Multiplos (LVM)
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;
}
// Datas
this.setDateValues(form, "type_DT");
this.setDateValues(form, "type_DH");
// Floats
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(",",".");
};
/********************************************************/
// finalizando...
/********************************************************/
// se for preview... dá msg de sucesso e cai fora!
var isPreview = form.elements["isPreview"];
if (isPreview) {
dinForms.ResetFormValues(form);
return false
}
// LEADTRACKER
// Precisamos descobrir se o objeto de leadTracker existe no mesmo frame que este formulário está, ou se está no parent (ou no top).
// Usamos a referencia deste frame a partir disto.
// Para ter o máximo de compatibilidade, verifico se o browser suporta estes objetos.
// Resolve idealmente o uso de leadtracker por popups
// faz try-catch pois o frame parent/top pode ser de outro dominio, isto gerará um erro do tipo cross-domain.
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;
}
// se encontramos leadtracker em algum dos frames, seta!
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(); // ver se precisa
return false;
}
}
// Se o form usa "msg", não faz action com redirect.
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; // posta o conteudo, mas não executa action do form
}
// Posta pro nosso receiver e este fará um redirect.
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"));
};
},
// NOVO, apenas landing page
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){
// Detecta se existe este elemento (deprecated) de captcha.
if (form.elements["dnz-captcha-google"] != undefined) {
return true;
}
// Validação normal
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);
}
if (this.GetCookie("dinTrafficSource")) {
// MANTER COM ID, SÓ PRECISAMOS DE UM POR document
if (document.getElementById("__dinTrafficSource")) {
document.getElementById("__dinTrafficSource").setAttribute("value", this.GetCookie("dinTrafficSource"));
} else {
var ts = document.createElement("input");
ts.type = "hidden";
ts.name = "__dinTrafficSource";
// MANTER COM ID, SÓ PRECISAMOS DE UM POR document
ts.id = "__dinTrafficSource";
ts.value = this.GetCookie("dinTrafficSource");
form.appendChild(ts);
}
}
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 {
// Usa um "img" para fazer uma requisição
var imgReq = document.createElement("img");
imgReq.setAttribute("id", "DinamizeImgResponse");
imgReq.style.display = "none"; // redundancia
imgReq.onload = function () {
// LandingPage
redirectElement = form.elements["redirect-url-js"];
if (redirectElement && redirectElement.value != "") {
location.href = redirectElement.value;
}
// Fim LandingPage
dinForms.Spinner(form, false);
dinForms.ResetFormValues(form);
}
imgReq.onerror = function () {
dinForms.Spinner(form, false);
// elemento deprecated
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) { // XMLHttpRequest.DONE == 4
if (xmlhttp.status >= 200 && xmlhttp.status <= 299) {
parent.location.href = form.elements["redirect-url-pp"].value;
dinForms.Spinner(form, false);
dinForms.ResetFormValues(form);
} else {
dinForms.Spinner(form, false);
// elemento deprecated
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" && params !== "") {
url += "?" + params; // encodeURI(params);
}
xmlhttp.open("POST", url, true);
xmlhttp.send();
},
Spinner: function(form, show){
// manter versão por compatibilidade?
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
// if ( document.readyState === "complete" ) { dinForms.onLoad(); }else { if (window.attachEvent) { window.attachEvent("load", dinForms.onLoad); } else { window.addEventListener("load", dinForms.onLoad); } }