Com o intuito de auxiliar os produtores rurais e os traders em sua tomada de decisão, criamos o aplicativo Agrinvest GO – um serviço de inteligência de mercado. Nos moldes do advisor, conselheiro de mercado, uma equipe de consultores multidisciplinares faz uma leitura dos pontos cruciais tanto no mercado agrícola quanto no mercado financeiro e os seus reais impactos para o agronegócio brasileiro. Possibilitando aos usuários do Agrinvest GO o desenvolvimento de estratégias comerciais de compra & venda e alternativas para o correto gerenciamento do risco de preço.
/* 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); } }