PageSourceSearch

https://portuguescompestana.com.br/assets/js/commons.js

js portuguescompestana.com.br collected 2026-09-24 12:31:41 UTC 21,641 bytes, 726 lines download raw bytes

1'use strict';
2
3var ErrorHandler = function () {
4
5    var setup = function() {
6        $.ajaxSetup({
7            error: function(jqXHR, exception) {
8                customException(jqXHR, exception);
9            }
10        });
11    };
12
13    var customException = function(jqXHR, exception) {
14        if (exception !== 'abort') {
15            var message = "";
16
17            if (jqXHR.status === 0) {
18                message = 'Não foi possível estabelecer conexão com o servidor. Verifique sua conexão com a internet e tente novamente.';
19            } else if (jqXHR.status == 404) {
20                message = 'O recurso solicitado não foi encontrado.';
21            } else if (jqXHR.status == 500) {
22                message = 'Ocorreu um erro ao realizar esta operação, nossa equipe já foi avisada e tudo deve estar funcionando em alguns minutos. Tente novamente mais tarde.';
23            } else if (exception === 'parsererror') {
24                message = 'Falha ao converter o JSON de retorno.';
25            } else if (exception === 'timeout') {
26                message = 'Tempo limite atingido para esta requisição. Tente novamente mais tarde.';
27            } else {
28                if (jqXHR.responseText && jqXHR.responseText.indexOf("html") == -1) {
29                    message = jqXHR.responseText;
30                } else {
31                    if (jqXHR.status == 400) {
32                        message = 'Ocorreu um erro ao realizar esta operação, nossa equipe já foi avisada e tudo deve estar funcionando em alguns minutos. Tente novamente mais tarde.';
33                    } else {
34                        message = 'Ocorreu um erro desconhecido ao realizar esta operação, nossa equipe já foi avisada e tudo deve estar funcionando em alguns minutos. Tente novamente mais tarde.';
35                    }
36                }
37            }
38
39            Alert.showError('Ooops', message);
40        }
41    };
42
43    return {
44        setup: function () {
45            setup();
46        },
47        customException: function (jqXHR, exception) {
48            customException(jqXHR, exception);
49        }
50    };
51
52}();
53
54
55var Alert = function () {
56
57    var showError = function (title, message) {
58        displayNotification(title, message, 'error');
59    };
60
61    var showInformation = function (title, message) {
62        displayNotification(title, message, 'info');
63    };
64
65    var showWarning = function (title, message) {
66        displayNotification(title, message, 'warning');
67    };
68
69    var showSuccess = function (title, message) {
70        displayNotification(title, message, 'success');
71    };
72
73    var displayNotification = function (title, message, style) {
74        Swal.fire({
75            title: title,
76            html: message,
77            type: style
78        });
79    };
80
81    return {
82        showError: function (title, message) {
83            showError(title, message);
84        },
85        showInformation: function (title, message) {
86            showInformation(title, message);
87        },
88        showWarning: function (title, message) {
89            showWarning(title, message);
90        },
91        showSuccess: function (title, message) {
92            showSuccess(title, message);
93        }
94    };
95
96}();
97
98
99var CommonFunctions = function () {
100
101    var init = function() {
102        $('.counterUp').counterUp();
103
104        $('.numbersOnly').keypress(function (e) {
105            if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
106                return false;
107            }
108        });
109
110        $(".countdown").each(function() {
111            $(this).countdown({
112                until: new Date($(this).data("dataFinal") + " " + $(this).data("horaFinal") + ":59"),
113                timezone: -3
114            });
115        });
116
117        $(".carrosel-slider").each(function() {
118            $(this).slick({
119                slidesToShow: $(this).data("quantidade"),
120                slidesToScroll: 1,
121                autoplay: true,
122                autoplaySpeed: $(this).data("intervalo"),
123                arrows: false,
124                dots: false,
125                pauseOnHover: false,
126                responsive: [{
127                    breakpoint: 768,
128                    settings: {
129                        slidesToShow: 3
130                    }
131                }, {
132                    breakpoint: 520,
133                    settings: {
134                        slidesToShow: 2
135                    }
136                }]
137            });
138        });
139
140        $(".formulario-contato").each(function() {
141            FaleConosco.init($(this).data("formId"));
142        });
143
144        $(".captura-lead").each(function() {
145            CapturaLead.init($(this).data("formId"));
146        });
147
148        $('.mdb-select').materialSelect();
149        $('[data-toggle="tooltip"]').tooltip();
150
151        $('input[type=text], input[type=password], input[type=email], input[type=url], input[type=tel], input[type=number], input[type=search], input[type=date], input[type=time], textarea').each(function (index, element) {
152            if ((element.value && element.value.length > 0)) {//} || $(this).attr('placeholder') !== null) {
153                $(this).siblings('label').addClass('active');
154            } else {
155                $(this).siblings('label').removeClass('active');
156            }
157        });
158
159        /* init Jarallax */
160        jarallax(document.querySelectorAll('.jarallax'));
161
162        jarallax(document.querySelectorAll('.jarallax-keep-img'), {
163            keepImg: true
164        });
165    };
166
167    return {
168        init: function () {
169            init();
170        }
171    };
172
173}();
174
175
176var FlowPlayer = function () {
177
178    var init = function(key) {
179        flowplayer(function (api, root) {
180            api.on("finish", function (e, api) {
181                api.unload();
182            });
183        });
184
185        var $players = $(".flowplayer");
186
187        $players.each(function() {
188            var player = flowplayer(this, {
189                key: key,
190                // Video não toca mais com som quando o autoplay está habilitado, aguardando solução do flowplayer :(
191                // autoplay: !jQuery.browser.mobile,
192                speeds: [0.5, 1, 1.5, 2],
193                ratio: 0.5625,
194                hlsQualities: true,
195                clip: {
196                    hlsjs: {
197                        adaptOnStartOnly: true,
198                        recoverMediaError: true,
199                        recoverNetworkError: true,
200                        xhrSetup: function (xhr, url) {
201                            xhr.addEventListener("error", function () {
202                                if (url.lastIndexOf(".m3u8") === url.length - 5) {
203                                    // Muda para o proximo nivel de qualidade em caso de erro ao carregar o m3u8
204                                    flowplayer.engine('hlsjs-lite').hls.nextLevel = 1;
205                                }
206                            });
207                        }
208                    },
209                    sources: [{
210                        type: "application/x-mpegurl",
211                        src: $(this).data('src'),
212                        player: $(this).data('player'),
213                        engine: "hlsjs-lite"
214                    }, {
215                        type: "application/x-mpegurl",
216                        src: $(this).data('src'),
217                        player: $(this).data('player'),
218                        engine: "html5"
219                    }, {
220                        type: "application/x-mpegurl",
221                        src: $(this).data('src'),
222                        player: $(this).data('player')
223                    }]
224                },
225                share: false,
226                embed: false,
227                fullscreen: true
228            });
229
230            player.quality(0);
231        });
232    };
233
234    return {
235        init: function (key) {
236            init(key);
237        }
238    };
239
240}();
241
242
243var Tooltip = function () {
244
245    var refresh = function () {
246        $('[data-tooltip="tooltip"]').tooltip({
247            container: 'body'
248        });
249    };
250
251    return {
252        refresh: function () {
253            refresh();
254        }
255    };
256
257}();
258
259
260var BlockUI = function () {
261
262    var block = function (selector, zindex) {
263        if(zindex === undefined){
264            zindex = 1000;
265        }
266
267        if (!selector) {
268            $.blockUI({
269                message: '<div class="lds-ripple"><div></div><div></div></div>',
270                baseZ: zindex,
271                css: {
272                    'border': 'none',
273                    'background-color': 'transparent'
274                }
275            });
276        } else {
277            $(selector).block({
278                message: '<div class="lds-ripple"><div></div><div></div></div>',
279                baseZ: zindex,
280                css: {
281                    'border': 'none',
282                    'background-color': 'transparent'
283                }
284            });
285        }
286    };
287
288    var unblock = function (selector) {
289        if (!selector) {
290            $.unblockUI();
291        } else {
292            $(selector).unblock();
293        }
294    };
295
296    return {
297        block: function (selector, zindex) {
298            block(selector, zindex);
299        },
300        unblock: function (selector) {
301            unblock(selector);
302        }
303    };
304
305}();
306
307
308var ValidationUI = function () {
309
310    var highlight = function(element, errorClass, validClass) {
311        $(element).closest('.form-group').addClass(errorClass).removeClass(validClass);
312    };
313
314    var unhighlight = function(element, errorClass, validClass) {
315        $(element).closest('.form-group').removeClass(errorClass).addClass(validClass);
316    };
317
318    var errorPlacement = function (error, element) {
319        if (element.is(":radio") || element.is(":checkbox")) {
320            element.closest('.option-group').after(error);
321        } else if (element.parent().is('.bootstrap-touchspin')) {
322            error.insertAfter(element.parent());
323        } else {
324            error.insertAfter(element);
325        }
326    };
327
328    return {
329        highlight: function (element, errorClass, validClass) {
330            highlight(element, errorClass, validClass);
331        },
332        unhighlight: function (element, errorClass, validClass) {
333            unhighlight(element, errorClass, validClass);
334        },
335        errorPlacement: function(error, element) {
336            errorPlacement(error, element);
337        }
338    };
339
340}();
341
342
343var Popup = function () {
344
345    var style;
346    var bodyStyle;
347    var icon;
348    var title;
349    var buttons;
350    var onBeforeOpen;
351    var onBeforeClose;
352    var onClose;
353
354    var show = function (container, data, options) {
355        style = options.style ? options.style : '';
356        bodyStyle = options.bodyStyle ? options.bodyStyle : '';
357        icon = options.icon;
358        title = options.title;
359        onBeforeOpen = options.onBeforeOpen;
360        onBeforeClose = options.onBeforeClose;
361        onClose = options.onClose;
362        buttons = options.buttons != null && options.buttons != undefined ? options.buttons : '<button class="btn btn-default mnw75" type="button" onclick="Popup.close()"><i class="icon-close"></i> Fechar </button>';
363
364
365        var htmlRetorno = "";
366        htmlRetorno += '    <div class="" role="document">';
367        htmlRetorno += '        <div class="modal-content">';
368        htmlRetorno += '            <div class="modal-header">';
369        htmlRetorno += '                <button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick="Popup.close()"><span aria-hidden="true">&times;</span></button>';
370        htmlRetorno += '                <h4 class="modal-title">' + title + '</h4>';
371        htmlRetorno += '            </div>';
372        htmlRetorno += '            <div class="modal-body" style="height: 550px">';
373        htmlRetorno += '                ' + data;
374        htmlRetorno += '            </div>';
375        htmlRetorno += '            <div class="modal-footer">';
376        htmlRetorno += '                ' + buttons;
377        htmlRetorno += '            </div>';
378        htmlRetorno += '        </div>';
379        htmlRetorno += '    </div>';
380
381        var $popupWindow = $(container);
382        $popupWindow.html(htmlRetorno);
383
384        if ($popupWindow.length) {
385            if (!$popupWindow.hasClass("mfp-with-anim")) {
386                $popupWindow.addClass("mfp-with-anim");
387            }
388
389            if (!$popupWindow.hasClass("popup-basic")) {
390                $popupWindow.addClass("popup-basic");
391            }
392
393            if (style.length > 0) {
394                $popupWindow.addClass(style);
395            }
396
397            $.magnificPopup.open({
398                removalDelay: 500,
399                items: {
400                    src: $popupWindow
401                },
402                showCloseBtn: false,
403                callbacks: {
404                    beforeOpen: function () {
405                        $('body').addClass('mfp-bg-open');
406                        this.st.mainClass = "mfp-flipInY";
407
408                        if (onBeforeOpen) {
409                            onBeforeOpen();
410                        }
411                    },
412                    close: function () {
413                        if (onClose) {
414                            onClose();
415                        }
416                    },
417                    afterClose: function () {
418                        if (onBeforeClose) {
419                            onBeforeClose();
420                        }
421
422                        $('body').removeClass('mfp-bg-open');
423                        $popupWindow.removeClass(style);
424                        $popupWindow.html("");
425                    }
426                }
427            });
428        }
429    };
430
431    var close = function () {
432        $.magnificPopup.close();
433    };
434
435    return {
436        show: function (container, data, options) {
437            show(container, data, options);
438        },
439        close: function () {
440            close();
441        }
442    }
443
444}();
445
446
447var Dialog = function () {
448
449    var yesLabel = "Sim";
450    var noLabel = "Não";
451    var okLabel = "OK";
452    var defYesCallback, defYesArgs;
453    var defNoCallback, defNoArgs;
454    var defOkCallback, defOkArgs;
455
456    var setup = function (options) {
457        if (options) {
458            if (options.yesLabel) {
459                yesLabel = options.yesLabel;
460            }
461
462            if (options.noLabel) {
463                noLabel = options.noLabel;
464            }
465
466            if (options.yesLabel) {
467                okLabel = options.okLabel;
468            }
469        }
470    };
471
472    var onYesClick = function () {
473        if (defYesCallback) {
474            if (defYesArgs) {
475                defYesCallback(defYesArgs);
476            } else {
477                defYesCallback();
478            }
479        }
480
481        $.magnificPopup.close();
482    };
483
484    var onNoClick = function () {
485        if (defNoCallback) {
486            if (defNoArgs) {
487                defNoCallback(defNoArgs);
488            } else {
489                defNoCallback();
490            }
491        }
492
493        $.magnificPopup.close();
494    };
495
496    var onOkClick = function () {
497        if (defOkCallback) {
498            if (defOkArgs) {
499                defOkCallback(defOkArgs);
500            } else {
501                defOkCallback();
502            }
503        }
504
505        $.magnificPopup.close();
506    };
507
508    var showInformation = function (title, message, okCallback, okArgs) {
509        defOkCallback = okCallback;
510        defOkArgs = okArgs;
511
512        var buttons = '<button class="btn blue mnw75" type="button" onclick="Dialog.onOkClick()">' + okLabel + '</button>';
513
514        openPopup(title, message, buttons, 'font-green', 'icon-info');
515    };
516
517    var showError = function (title, message, okCallback, okArgs) {
518        defOkCallback = okCallback;
519        defOkArgs = okArgs;
520
521        var buttons = '<button class="btn blue mnw75" type="button" onclick="Dialog.onOkClick()">' + okLabel + '</button>';
522
523        openPopup(title, message, buttons, 'font-red', 'icon-ban');
524    };
525
526    var showConfirmation = function (title, message, yesCallback, yesArgs, noCallback, noArgs) {
527        defYesCallback = yesCallback;
528        defYesArgs = yesArgs;
529
530        defNoCallback = noCallback;
531        defNoArgs = noArgs;
532
533        var buttons = "";
534        buttons += '<button class="btn blue mnw75 mr5" type="button" onclick="Dialog.onYesClick()">' + yesLabel + '</button>';
535        buttons += '<button class="btn default mnw75" type="button" onclick="Dialog.onNoClick()">' + noLabel + '</button>';
536
537        openPopup(title, message, buttons, 'font-blue', 'icon-question');
538    };
539
540    var openPopup = function (title, message, buttons, headerStyle, icon) {
541        var htmlRetorno = "";
542        htmlRetorno += '<div id="modal-panel" class="popup-basic portlet light bg-light bordered mfp-with-anim">';
543        htmlRetorno += '    <div class="portlet-title">';
544        htmlRetorno += '        <div class="caption">';
545        htmlRetorno += '            <i class="bold ' + icon + ' ' + headerStyle + '"></i>';
546        htmlRetorno += '            <span class="caption-subject ' + headerStyle + ' bold uppercase">' + title + '</span>';
547        htmlRetorno += '        </div>';
548        htmlRetorno += '    </div>';
549        htmlRetorno += '    <div class="portlet-body">';
550        htmlRetorno += '        <p>' + message + '</p>';
551        htmlRetorno += '    </div>';
552        htmlRetorno += '    <hr class="short">';
553        htmlRetorno += '    <div class="text-right">' + buttons + '</div>';
554        htmlRetorno += '</div>';
555
556        $.magnificPopup.open({
557            removalDelay: 500,
558            items: {
559                src: htmlRetorno
560            },
561            tClose: 'Fechar (Esc)',
562            callbacks: {
563                beforeOpen: function () {
564                    $('body').addClass('mfp-bg-open');
565                    this.st.mainClass = "mfp-flipInY";
566                },
567                afterClose: function () {
568                    $('body').removeClass('mfp-bg-open');
569                }
570            }
571        });
572    };
573
574    var close = function () {
575        $.magnificPopup.close();
576    };
577
578    return {
579        setup: function (options) {
580            setup(options);
581        },
582        showInformation: function (title, message, okCallback, okArgs) {
583            showInformation(title, message, okCallback, okArgs);
584        },
585        showError: function (title, message, okCallback, okArgs) {
586            showError(title, message, okCallback, okArgs);
587        },
588        showConfirmation: function (title, message, yesCallback, yesArgs, noCallback, noArgs) {
589            showConfirmation(title, message, yesCallback, yesArgs, noCallback, noArgs);
590        },
591        doClick: function (callback) {
592            doClick(callback);
593        },
594        onYesClick: function () {
595            onYesClick();
596        },
597        onNoClick: function () {
598            onNoClick();
599        },
600        onOkClick: function () {
601            onOkClick();
602        },
603        close: function () {
604            close();
605        }
606    }
607
608}();
609
610var Metrics = function () {
611
612    var init = function (selector) {
613        var viewPortHeight = getViewPort().height;
614
615        if ($('body').height() < viewPortHeight) {
616            var height = viewPortHeight;
617
618            var $topbar = $('#topBar');
619            var $header = $('#header');
620            var $mainMenu = $('#mainMenu');
621            var $footer = $('#footer');
622            var $areaAlunoMain = $('#areaAlunoMain');
623
624            if ($topbar.length) {
625                height -= $topbar.outerHeight();
626            }
627
628            if ($header.length) {
629                height -= $header.outerHeight();
630            }
631
632            if ($mainMenu.length) {
633                height -= $mainMenu.outerHeight();
634            }
635
636            if ($footer.length) {
637                height -= $footer.outerHeight();
638            }
639
640            if ($areaAlunoMain.length) {
641                height -= parseInt($areaAlunoMain.css('padding-top'));
642            }
643
644            height -= parseInt($(selector).css('margin-top'));
645            height -= parseInt($(selector).css('margin-bottom'));
646
647            $(selector).css('min-height', height);
648        }
649    };
650
651    var getViewPort = function() {
652        var e = window, a = 'inner';
653
654        if (!('innerWidth' in window)) {
655            a = 'client';
656            e = document.documentElement || document.body;
657        }
658
659        return {
660            width: e[a + 'Width'],
661            height: e[a + 'Height']
662        };
663    };
664
665    return {
666        init: function (selector) {
667            init(selector);
668        }
669    }
670
671}();
672
673var MenuBar = function () {
674
675    var set = function(key, clazz) {
676        if (key == "") {
677            return;
678        }
679
680        var $menu, $parentMenu;
681
682        $menu = $("." + key, "header");
683
684        if ($menu.length) {
685            $parentMenu = $menu.parents('li');
686        }
687
688        $("li", "header").removeClass(clazz);
689
690        if ($menu.length) {
691            $menu.addClass(clazz);
692        }
693
694        if ($parentMenu != undefined && $parentMenu.length) {
695            $parentMenu.addClass(clazz);
696        }
697    };
698
699    return {
700        set: function (key, clazz) {
701            set(key, clazz);
702        }
703    };
704
705}();
706
707var SnackBar = function () {
708
709    var show = function (text, duration) {
710        Snackbar.show({
711            text: text,
712            pos: 'bottom-center',
713            showAction: true,
714            actionText: 'Fechar',
715            actionTextColor: '#22b9ff',
716            duration: duration ? duration : 4000
717        });
718    };
719
720    return {
721        show: function (text, duration) {
722            show(text, duration);
723        }
724    }
725
726}();

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.