PageSourceSearch

https://fortrek.com.br/dinamize/quem-somos-form.js

js fortrek.com.br collected 2026-10-04 11:48:47 UTC 33,269 bytes, 751 lines download raw bytes

1! function (t, e) {
2    "function" == typeof define && define.amd ? define(e) : "object" == typeof exports ? module.exports = e() : t.VMasker = e()
3}(this, function () {
4    var t = "9",
5        e = "A",
6        n = "S",
7        i = [8, 9, 16, 17, 18, 36, 37, 38, 39, 40, 91, 92, 93],
8        o = function (t) {
9            for (var e = 0, n = i.length; n > e; e++)
10                if (t == i[e]) return !1;
11            return !0
12        },
13        r = function (t) {
14            return t = t || {}, t = {
15                precision: t.hasOwnProperty("precision") ? t.precision : 2,
16                separator: t.separator || ",",
17                unit: t.unit && t.unit.replace(/[\s]/g, "") + " " || "",
18                suffixUnit: t.suffixUnit && " " + t.suffixUnit.replace(/[\s]/g, "") || "",
19                zeroCents: t.zeroCents,
20                lastOutput: t.lastOutput
21            }, t.moneyPrecision = t.zeroCents ? 0 : t.precision, t
22        },
23        s = function (i, o, r) {
24            for (; o < i.length; o++)(i[o] === t || i[o] === e || i[o] === n) && (i[o] = r);
25            return i
26        },
27        l = function (t) {
28            this.elements = t
29        };
30    l.prototype.unbindElementToMask = function () {
31        for (var t = 0, e = this.elements.length; e > t; t++) this.elements[t].lastOutput = "", this.elements[t].onkeyup = !1, this.elements[t].onkeydown = !1, this.elements[t].value.length && (this.elements[t].value = this.elements[t].value.replace(/\D/g, ""))
32    }, l.prototype.bindElementToMask = function (t) {
33        for (var e = this, n = function (n) {
34            n = n || window.event;
35            var i = n.target || n.srcElement;
36            o(n.keyCode) && setTimeout(function () {
37                e.opts.lastOutput = i.lastOutput, i.value = a[t](i.value, e.opts), i.lastOutput = i.value, i.setSelectionRange && e.opts.suffixUnit && i.setSelectionRange(i.value.length, i.value.length - e.opts.suffixUnit.length)
38            }, 0)
39        }, i = 0, r = this.elements.length; r > i; i++) this.elements[i].lastOutput = "", this.elements[i].onkeyup = n, this.elements[i].value.length && (this.elements[i].value = a[t](this.elements[i].value, this.opts))
40    }, l.prototype.maskMoney = function (t) {
41        this.opts = r(t), this.bindElementToMask("toMoney")
42    }, l.prototype.maskNumber = function () {
43        this.opts = {}, this.bindElementToMask("toNumber")
44    }, l.prototype.maskAlphaNum = function () {
45        this.opts = {}, this.bindElementToMask("toAlphaNumeric")
46    }, l.prototype.maskPattern = function (t) {
47        this.opts = {
48            pattern: t
49        }, this.bindElementToMask("toPattern")
50    }, l.prototype.unMask = function () {
51        this.unbindElementToMask()
52    };
53    var a = function (t) {
54        if (!t) throw new Error("VanillaMasker: There is no element to bind.");
55        var e = "length" in t ? t.length ? t : [] : [t];
56        return new l(e)
57    };
58    return a.toMoney = function (t, e) {
59        if (e = r(e), e.zeroCents) {
60            e.lastOutput = e.lastOutput || "";
61            var n = "(" + e.separator + "[0]{0," + e.precision + "})",
62                i = new RegExp(n, "g"),
63                o = t.toString().replace(/[\D]/g, "").length || 0,
64                s = e.lastOutput.toString().replace(/[\D]/g, "").length || 0;
65            t = t.toString().replace(i, ""), s > o && (t = t.slice(0, t.length - 1))
66        }
67        var l = t.toString().replace(/[\D]/g, ""),
68            a = new RegExp("(\\" + e.separator + ")$"),
69            u = l.substr(0, l.length - e.moneyPrecision),
70            p = u.substr(0, u.length % 3),
71            h = new Array(e.precision + 1).join("");
72        u = u.substr(u.length % 3, u.length);
73        for (var c = 0, f = u.length; f > c; c++) p += u[c];
74        if (!e.zeroCents) {
75            var g = l.length - e.precision,
76                m = l.substr(g, e.precision),
77                v = m.length,
78                y = e.precision > v ? e.precision : v;
79            h = (h + m).slice(-y)
80        }
81        var b = e.unit + p + e.separator + h + e.suffixUnit;
82        return b.replace(a, "")
83    }, a.toPattern = function (i, o) {
84        var r, l = "object" == typeof o ? o.pattern : o,
85            a = l.replace(/\W/g, ""),
86            u = l.split(""),
87            p = i.toString().replace(/\W/g, ""),
88            h = p.replace(/\W/g, ""),
89            c = 0,
90            f = u.length,
91            g = "object" == typeof o ? o.placeholder : void 0;
92        for (r = 0; f > r; r++) {
93            if (c >= p.length) {
94                if (a.length == h.length) return u.join("");
95                if (void 0 !== g && a.length > h.length) return s(u, r, g).join("");
96                break
97            }
98            if (u[r] === t && p[c].match(/[0-9]/) || u[r] === e && p[c].match(/[a-zA-Z]/) || u[r] === n && p[c].match(/[0-9a-zA-Z]/)) u[r] = p[c++];
99            else if (u[r] === t || u[r] === e || u[r] === n) return void 0 !== g ? s(u, r, g).join("") : u.slice(0, r).join("")
100        }
101        return u.join("").substr(0, r)
102    }, a.toNumber = function (t) {
103        return t.toString().replace(/(?!^-)[^0-9]/g, "")
104    }, a.toAlphaNumeric = function (t) {
105        return t.toString().replace(/[^a-z0-9 ]+/i, "")
106    }, a
107}
107);
108
109// Mantem apenas a versão mais recente do script
110if (typeof dinForms == "undefined" || dinForms.version < 1.3) {
111    var dinForms = {
112        version: 1.3,
113        onLoad: function () {
114            //
115            var forms = document.getElementsByClassName("formIntegration");
116            for (var k = 0; k < forms.length; ++k) {
117                var inputElement = forms[k].getElementsByClassName("din-input-mask");
118                for (var i = 0; i < inputElement.length; ++i) {
119                    switch (inputElement[i].getAttribute("din-mask-type")) {
120                        case "DT":
121                        case "DH":
122                            var str = inputElement[i].getAttribute("format");
123                            VMasker(inputElement[i]).maskPattern(str.replace(/D|M|A|Y|H/g, "9"));
124                            break;
125                        case "INT":
126                            VMasker(inputElement[i]).maskNumber();
127                            break;
128                        case "FLT":
129                            var str = inputElement[i].getAttribute("format");
130                            VMasker(inputElement[i]).maskMoney({
131                                separator: str
132                            });
133                            break;
134                    }
135                }
136            }
137
138            //
139            var referer = document.referrer ? document.referrer.match(/:\/\/(.[^/]+)/)[1] : "";
140            var hostname = window.location.hostname;
141            if (referer != hostname) {
142                var jsonParams = {
143                    "url": window.location.href,
144                    "referer": document.referrer
145                };
146                var cookieData = btoa(JSON.stringify(jsonParams));
147                dinForms.SetCookie("dinTrafficSource", cookieData, 90);
148            }
149        },
150        ValidateForm: function (form) {
151            this.LimpaAvisos(form);
152
153            /********************************************************/
154            // validação de cada tipo de campo
155            /********************************************************/
156            var elem = form.elements;
157            var enviar = true;
158            for (var i = 0; i < elem.length; i++) {
159                if (elem[i].type == "hidden") {
160                    continue
161                }
162
163                var classList = elem[i].className.split(" ");
164
165                this.removeClass("field-error", elem[i]);
166                elem[i].value = elem[i].value.trim();
167
168                if (classList.indexOf("type_EMAIL") != -1) {
169                    if (!this.validateEmail(elem[i].value)) {
170                        this.addClass("field-error", elem[i]);
171                        enviar = false;
172                    }
173                } else if (classList.indexOf("type_DT") != -1) {
174                    if (elem[i].value != "" && !this.existDate(this.prepareDate(elem[i].value, elem[i].getAttribute("format")), false)) {
175                        this.addClass("field-error", elem[i]);
176                        enviar = false;
177                    }
178                } else if (classList.indexOf("type_DH") != -1) {
179                    if (elem[i].value != "" && !this.existDate(this.prepareDate(elem[i].value, elem[i].getAttribute("format")), true)) {
180                        this.addClass("field-error", elem[i]);
181                        enviar = false;
182                    }
183                } else if (classList.indexOf("type_PHN_NUM") != -1) {
184                    var fieldName = elem[i].getAttribute("hd-name");
185                    var text = elem[i].value;
186                    var patPhone = /\d+/g;
187                    var res;
188                    var resultNum = "";
189                    var resultDDI = "";
190                    res = text.match(patPhone);
191
192                    if (res !== null) {
193                        resultNum = res.join("");
194                    }
195
196                    form.elements[fieldName].value = "";
197
198                    if (text != "" && resultNum.length < 3) {
199                        this.addClass("field-error", elem[i]);
200                        enviar = false;
201                    } else if (resultNum.length >= 3) {
202
203                        text = form.elements[fieldName + "_DDI"].value
204                        res = text.match(patPhone);
205
206                        if (res !== null) {
207                            resultDDI = res.join("");
208                            form.elements[fieldName].value = resultDDI + resultNum;
209                        } else {
210                            this.addClass("field-error", form.elements[fieldName + "_DDI"]);
211                            enviar = false;
212                        }
213                    }
214                }
215
216                // CAMPOS OBRIGATORIOS
217                if (classList.indexOf("field-required") != -1) {
218
219                    // Todos os campos não-LVM
220                    if (classList.indexOf("type_LVM") == -1) {
221                        if (elem[i].value.trim() == "") {
222                            this.addClass("field-error", elem[i]);
223                            enviar = false;
224                        }
225                    }
226
227                    // else lvm...
228                    if (classList.indexOf("type_LVM") != -1) {
229                        var hdName = elem[i].getAttribute("hd-name");
230                        var ok = false;
231
232                        this.removeClass("field-error", form.getElementsByClassName("containerMultiple_" + hdName)[0]); // é o único caso que a classe é removida deste jeito
233
234                        var checkboxes = form.getElementsByClassName("chk_" + hdName);
235                        for (var j = 0; j < checkboxes.length; j++) {
236                            if (checkboxes[j].checked == true) {
237                                ok = true;
238                                break;
239                            }
240                        }
241                        if (!ok) {
242                            this.addClass("field-error", form.getElementsByClassName("containerMultiple_" + hdName)[0]);
243                            enviar = false;
244                        }
245                    }
246                }
247            }
248
249            /********************************************************/
250            // Em caso de falha na validação...
251            // Mensagem de Campo Obrigatório
252            /********************************************************/
253            if (!enviar) {
254                var msgError = form.getElementsByClassName("DinamizeDivMessageError")[0];
255                if (msgError && msgError.innerHTML.length) {
256                    msgError.style.display = "block";
257                }
258                return false
259            }
260
261            /********************************************************/
262            // Escreve valores nos campos hidden (quando necessário)
263            /********************************************************/
264
265            // Listas de Valores Multiplos (LVM)
266            var lvmElements = form.getElementsByClassName("type_LVM");
267            var checkboxes, checkedValues;
268            var hdName;
269            for (var i = 0; i < lvmElements.length; i++) {
270                hdName = lvmElements[i].getAttribute("hd-name");
271
272                checkboxes = form.getElementsByClassName("chk_" + hdName);
273                checkedValues = "";
274
275                if (checkboxes.length > 0) {
276                    for (var k = 0; k < checkboxes.length; k++) {
277                        if (checkboxes[k].checked) {
278                            checkedValues += "|" + checkboxes[k].value;
279                        }
280                    }
281                }
282                checkedValues = checkedValues.replace("|", "");
283                form.elements[lvmElements[i].getAttribute("hd-name")].value = checkedValues;
284            }
285
286            // Datas
287            this.setDateValues(form, "type_DT");
288            this.setDateValues(form, "type_DH");
289
290            // Floats
291            var fltElements = form.getElementsByClassName("type_FLT");
292            for (var i = 0; i < fltElements.length; i++) {
293                form.elements[fltElements[i].getAttribute("hd-name")].value = fltElements[i].value.replace(",", ".");
294            };
295
296            /********************************************************/
297            // finalizando...
298            /********************************************************/
299
300            //  se for preview... dá msg de sucesso e cai fora!
301            var isPreview = form.elements["isPreview"];
302            if (isPreview) {
303                dinForms.ResetFormValues(form);
304                return false
305            }
306
307            // LEADTRACKER
308            // Precisamos descobrir se o objeto de leadTracker existe no mesmo frame que este formulário está, ou se está no parent (ou no top).
309            // Usamos a referencia deste frame a partir disto.
310            // Para ter o máximo de compatibilidade, verifico se o browser suporta estes objetos.
311            // Resolve idealmente o uso de leadtracker por popups
312
313            // faz try-catch pois o frame parent/top pode ser de outro dominio, isto gerará um erro do tipo cross-domain.
314            try {
315                var frame
316                if (typeof dinLeadTracker !== "undefined") {
317                    frame = window;
318                } else if (typeof window.parent !== "undefined" && typeof window.parent.dinLeadTracker !== "undefined") {
319                    frame = window.parent;
320                } else if (typeof window.top !== "undefined" && typeof window.top.dinLeadTracker !== "undefined") {
321                    frame = window.top;
322                }
323
324                // se encontramos leadtracker em algum dos frames, seta!
325                if (typeof frame !== "undefined" && frame.dinLeadTracker.isActive()) {
326                    var formElements = form.elements;
327                    if (typeof formElements.cmp1 !== "undefined") {
328                        frame.dinLeadTracker.SetLeadEmail(formElements.cmp1.value);
329                    }
330                    if (typeof formElements.cmp3 !== "undefined") {
331                        frame.dinLeadTracker.SetLeadExternalId(formElements.cmp3.value);
332                    }
333                }
334            } catch (e) {
335                console.warn("Leadtracker ignored because of Cross-Domain error.");
336                console.warn(e);
337            }
338
339            var isCaptcha = this.hasCaptcha(form);
340            if (isCaptcha) {
341                form.getElementsByClassName("DinamizeDivCaptchaMessage")[0].style.display = "none";
342                var recaptcha = form.elements["g-recaptcha-response"];
343                if (recaptcha.value === "") {
344                    form.getElementsByClassName("DinamizeDivCaptchaMessage")[0].style.display = "block";
345                    grecaptcha.reset(); // ver se precisa
346                    return false;
347                }
348            }
349
350            let formType = "";
351            if (document.body.getAttribute("data-type")) {
352                formType = document.body.getAttribute("data-type");
353            }
354            let eventLabel = "";
355            let term = "";
356            if (form.getAttribute("data-name")) {
357                eventLabel = term = atob(form.getAttribute("data-name"));
358            }
359            let campaign = term;
360            if (form.getAttribute("data-campaign")) {
361                campaign = atob(form.getAttribute("data-campaign"));
362            }
363
364            if (formType !== "") {
365                // Para registrar a conversão do formulário no GA
366                dinGAFunctions.sendEvent("contact_conversion", formType, eventLabel)
367
368                // Para registrar a UTMs dentro do GA
369                dinGAFunctions.setUTMs("dinamize", formType, campaign, term);
370            }
371
372            // Se o form usa "msg", não faz action com redirect.
373            var isMsg = form.elements["isMsg"].value;
374            var redirectElement = form.elements["redirect-url-js"] ? form.elements["redirect-url-js"] : form.elements["redirect-url-pp"];
375            if (isMsg == "true" || (redirectElement && redirectElement.value != "")) {
376                this.LoadingForm(form);
377                if (typeof playRoulette == "function") {
378                    playRoulette(form.querySelector('input[type="sumit"]'));
379                }
380                return false; // posta o conteudo, mas não executa action do form
381            }
382
383            // Posta pro nosso receiver e este fará um redirect.
384            return true;
385        },
386        setDateValues: function (form, className) {
387            var dtElements = form.getElementsByClassName(className);
388            for (var i = 0; i < dtElements.length; i++) {
389                if (dtElements[i].value == "") {
390                    continue;
391                }
392
393                form.elements[dtElements[i].getAttribute("hd-name")].value = this.prepareDate(dtElements[i].value, dtElements[i].getAttribute("format"));
394            };
395        },
396        // NOVO, apenas landing page
397        SetCookie: function (cname, cvalue, exdays) {
398            var d = new Date();
399            d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
400            var expires = "expires=" + d.toUTCString();
401            document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
402        },
403        hasCaptcha: function (form) {
404            // Detecta se existe este elemento (deprecated) de captcha.
405            if (form.elements["dnz-captcha-google"] != undefined) {
406                return true;
407            }
408            // Validação normal
409            var action = form.getAttribute("action");
410            if (action === null) {
411                return false;
412            }
413
414            action = action.split("/");
415            if (action.length == 8) {
416                if (action[7] == 1) {
417                    return true;
418                }
419            }
420            return false;
421        },
422        LoadingForm: function (form) {
423            //
424            if (document.getElementById("DinamizeIframeFormIntegration") == undefined) {
425                var ifrm = document.createElement("iframe");
426                ifrm.setAttribute("id", "DinamizeIframeFormIntegration");
427                ifrm.setAttribute("name", "DinamizeIframeFormIntegration");
428                ifrm.style.display = "none";
429                document.body.appendChild(ifrm);
430            }
431
432            if (this.GetCookie("dinTrafficSource")) {
433                // MANTER COM ID, SÓ PRECISAMOS DE UM POR document
434                if (document.getElementById("__dinTrafficSource")) {
435                    document.getElementById("__dinTrafficSource").setAttribute("value", this.GetCookie("dinTrafficSource"));
436                } else {
437                    var ts = document.createElement("input");
438                    ts.type = "hidden";
439                    ts.name = "__dinTrafficSource";
440                    // MANTER COM ID, SÓ PRECISAMOS DE UM POR document
441                    ts.id = "__dinTrafficSource";
442                    ts.value = this.GetCookie("dinTrafficSource");
443                    form.appendChild(ts);
444                }
445            }
446
447            this.Spinner(form, true);
448
449            var redirectElement = form.elements["redirect-url-pp"];
450            if (redirectElement && redirectElement.value != "") {
451                this.Request(form.getAttribute("action") + "/", this.serialize(form), form);
452            } else {
453                // Usa um "img" para fazer uma requisição
454                var imgReq = document.createElement("img");
455                imgReq.setAttribute("id", "DinamizeImgResponse");
456                imgReq.style.display = "none"; // redundancia
457
458                imgReq.onload = function () {
459                    // LandingPage
460                    redirectElement = form.elements["redirect-url-js"];
461                    if (redirectElement && redirectElement.value != "") {
462                        location.href = redirectElement.value;
463                    }
464                    // Fim LandingPage
465                    dinForms.Spinner(form, false);
466                    dinForms.ResetFormValues(form);
467                }
468                imgReq.onerror = function () {
469                    dinForms.Spinner(form, false);
470
471                    // elemento deprecated
472                    var msgErrorDep = form.getElementsByClassName("divMessageError")[0];
473                    if (msgErrorDep) {
474                        msgErrorDep.style.display = "block";
475                    }
476
477                    var msgAlert = form.getElementsByClassName("DinamizeDivMessageAlert")[0];
478                    if (msgAlert) {
479                        msgAlert.style.display = "block";
480                    }
481                }
482                imgReq.src = form.getAttribute("action") + "/?" + this.serialize(form) + "&a=" + Math.floor((Math.random() * 99999) + 1);
483                form.appendChild(imgReq);
484            }
485        },
486        Request: function (url, params, form) {
487            var xmlhttp = new XMLHttpRequest();
488            xmlhttp.onreadystatechange = function () {
489                if (xmlhttp.readyState == XMLHttpRequest.DONE) { // XMLHttpRequest.DONE == 4
490                    if (xmlhttp.status >= 200 && xmlhttp.status <= 299) {
491                        if ((form.elements["redirect-url-pp"].value.includes(window.location.origin))) {
492                            parent.location.href = form.elements["redirect-url-pp"].value;
493                        } else {
494                            window.open(form.elements["redirect-url-pp"].value, "_blank");
495                        }
496                        dinForms.Spinner(form, false);
497                        dinForms.ResetFormValues(form);
498                    } else {
499                        dinForms.Spinner(form, false);
500                        // elemento deprecated
501                        var msgErrorDep = form.getElementsByClassName("divMessageError")[0];
502                        if (msgErrorDep) {
503                            msgErrorDep.style.display = "block";
504                        }
505                        var msgAlert = form.getElementsByClassName("DinamizeDivMessageAlert")[0];
506                        if (msgAlert) {
507                            msgAlert.style.display = "block";
508                        }
509                    }
510                }
511            };
512            if (typeof params === "string" && params !== "") {
513                url += "?" + params; // encodeURI(params);
514            }
515
516            xmlhttp.open("POST", url, true);
517            xmlhttp.send();
518        },
519        Spinner: function (form, show) {
520            // manter versão por compatibilidade?
521            var submitElement = form.getElementsByClassName("dinSubmit")[0];
522            var spinnerElement = form.getElementsByClassName("spinner")[0];
523
524            if (show) {
525                if (spinnerElement)
526                    spinnerElement.style.display = "block";
527
528                if (submitElement)
529                    submitElement.value = "";
530
531            } else {
532                if (spinnerElement)
533                    spinnerElement.style.display = "none";
534
535                if (submitElement)
536                    submitElement.value = submitElement.getAttribute("original-value");
537            }
538        },
539        GetCookie: function (cname) {
540            var name = cname + "=";
541            var decodedCookie = decodeURIComponent(document.cookie);
542            var ca = decodedCookie.split(";");
543            for (var i = 0; i < ca.length; i++) {
544                var c = ca[i];
545                while (c.charAt(0) == " ") {
546                    c = c.substring(1);
547                }
548                if (c.indexOf(name) == 0) {
549                    return c.substring(name.length, c.length);
550                }
551            }
552            return "";
553        },
554        ResetFormValues: function (form) {
555            // jquery existe?
556            if (typeof ($) != "undefined") {
557                // iCheck existe?
558                if ((typeof ($().iCheck) != "undefined")) {
559                    $(form).find("input[type=\"checkbox\"]:not(.cssOnly)").iCheck("uncheck");
560                }
561            }
562
563            var msgSuccess = form.getElementsByClassName("DinamizeDivMessageSuccess")[0];
564            if (msgSuccess) {
565                msgSuccess.style.display = "block";
566            }
567            var imgRequest = document.getElementById("DinamizeImgResponse");
568            if (imgRequest) {
569                imgRequest.remove();
570            }
571            form.reset();
572        },
573        LimpaAvisos: function (form) {
574            var msgSuccess = form.getElementsByClassName("DinamizeDivMessageSuccess")[0];
575            if (msgSuccess)
576                msgSuccess.style.display = "none";
577
578            var msgAlert = form.getElementsByClassName("DinamizeDivMessageAlert")[0];
579            if (msgAlert)
580                msgAlert.style.display = "none";
581
582            var msgError = form.getElementsByClassName("DinamizeDivMessageError")[0];
583            if (msgError)
584                msgError.style.display = "none";
585
586            // elemento deprecated, de landingPage
587            var msgErrorDep = form.getElementsByClassName("divMessageError")[0];
588            if (msgErrorDep)
589                msgErrorDep.style.display = "none";
590
591            var msgCaptcha = form.getElementsByClassName("DinamizeDivCaptchaMessage")[0];
592            if (msgCaptcha)
593                msgCaptcha.style.display = "none";
594        },
595        validateEmail: function (email) {
596            var re = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
597            return re.test(email);
598        },
599        prepareDate: function (date, format) {
600            var newDate, time;
601            format = format.substr(0, 10).replace("/", "").replace("/", "").replace("-", "").replace("-", "");
602            time = date.substr(10, 15);
603
604            if (format == "DDMMAAAA") {
605                newDate = date[6] + date[7] + date[8] + date[9] + "-" + date[3] + date[4] + "-" + date[0] + date[1];
606            } else if (format == "MMDDAAAA") {
607                newDate = date[6] + date[7] + date[8] + date[9] + "-" + date[0] + date[1] + "-" + date[3] + date[4];
608            } else if (format == "AAAAMMDD") {
609                newDate = date[0] + date[1] + date[2] + date[3] + "-" + date[5] + date[6] + "-" + date[8] + date[9];
610            }
611
612            return newDate + time;
613        },
614        existDate: function (date, time) {
615            if (time) {
616                if (date.length != 16) {
617                    return false;
618                }
619            } else if (!time) {
620                if (date.length != 10) {
621                    return false;
622                }
623                date += " 00:00";
624            }
625
626            var NEWDATE = new Date(date.replace("-", "/").replace("-", "/"));
627            var strNewdate;
628
629            var y = NEWDATE.getFullYear().toString();
630            var m = (NEWDATE.getMonth() + 1).toString();
631            var d = NEWDATE.getDate().toString();
632            var h = NEWDATE.getHours().toString();
633            var min = NEWDATE.getMinutes().toString();
634            strNewdate = y + "-" + (m[1] ? m : "0" + m[0]) + "-" + (d[1] ? d : "0" + d[0]) + " " + (h[1] ? h : "0" + h[0]) + ":" + (min[1] ? min : "0" + min[0]);
635
636            if (date != strNewdate) {
637                return false;
638            }
639
640            return true;
641        },
642        addClass: function (classname, element) {
643            var cn = element.className;
644            if (cn.indexOf(classname) != -1) {
645                return;
646            }
647            if (cn != "") {
648                classname = " " + classname;
649            }
650            element.className = cn + classname;
651        },
652        removeClass: function (classname, element) {
653            var cn = element.className;
654            var rxp = new RegExp("\\s?\\b" + classname + "\\b", "g");
655            cn = cn.replace(rxp, "");
656            element.className = cn;
657        },
658        //funcao do google faz o serialize estilo JQuery
659        serialize: function (form) {
660            if (!form || form.nodeName !== "FORM") {
661                return
662            }
663            var i, j, q = [];
664            for (i = form.elements.length - 1; i >= 0; i = i - 1) {
665                if (form.elements[i].name === "") {
666                    continue
667                }
668                switch (form.elements[i].nodeName) {
669                    case "INPUT":
670                        switch (form.elements[i].type) {
671                            case "text":
672                            case "hidden":
673                            case "password":
674                            case "button":
675                            case "reset":
676                            case "submit":
677                                q.push(form.elements[i].name + "=" + encodeURIComponent(form.elements[i].value));
678                                break;
679                            case "checkbox":
680                            case "radio":
681                                if (form.elements[i].checked) {
682                                    q.push(form.elements[i].name + "=" + encodeURIComponent(form.elements[i].value))
683                                }
684                                break;
685                            case "file":
686                                break
687                        }
688                        break;
689                    case "TEXTAREA":
690                        q.push(form.elements[i].name + "=" + encodeURIComponent(form.elements[i].value));
691                        break;
692                    case "SELECT":
693                        switch (form.elements[i].type) {
694                            case "select-one":
695                                q.push(form.elements[i].name + "=" + encodeURIComponent(form.elements[i].value));
696                                break;
697                            case "select-multiple":
698                                for (j = form.elements[i].options.length - 1; j >= 0; j = j - 1) {
699                                    if (form.elements[i].options[j].selected) {
700                                        q.push(form.elements[i].name + "=" + encodeURIComponent(form.elements[i].options[j].value))
701                                    }
702                                }
703                                break
704                        }
705                        break;
706                    case "BUTTON":
707                        switch (form.elements[i].type) {
708                            case "reset":
709                            case "submit":
710                            case "button":
711                                q.push(form.elements[i].name + "=" + encodeURIComponent(form.elements[i].value));
712                                break
713                        }
714                        break
715                }
716            }
717            return q.join("&")
718        },
719    };
720    var dinGAFunctions = {
721        setUTMs: function (source, medium, campaign, term) {
722            if (!window.parent) {
723                return;
724            }
725            if (typeof window.parent.dinFunctions !== "object" || typeof window.parent.dinFunctions.setUTMs !== "function") {
726                return;
727            }
728            window.parent.dinFunctions.setUTMs(source, medium, campaign, term);
729        },
730        sendEvent: function (eventName, eventCategory, eventLabel) {
731            if (!window.parent) {
732                return;
733            }
734            if (typeof window.parent.dinFunctions !== "object" || typeof window.parent.dinFunctions.sendEventGA !== "function") {
735                return;
736            }
737            window.parent.dinFunctions.sendEventGA(eventName, eventCategory, eventLabel, 1);
738        }
739    };
740}
741
742//
743if (document.readyState === "complete") {
744    dinForms.onLoad();
745} else {
746    if (window.attachEvent) {
747        window.attachEvent("load", dinForms.onLoad);
748    } else {
749        window.addEventListener("load", dinForms.onLoad);
750    }
751}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.