var Media = (function () {

function Media() {
}
Media.prototype.play = function (media) {
    var player = this._getPlayer(media);
    var source = media.querySelector(".c-media__source");
    this._start(player, source);
};
Media.prototype.pause = function (media) {
    var player = this._getPlayer(media);
    var source = this._getCurrent(player);
    player.pause();
    player.classList.remove("is-playing");
    player.classList.add("is-paused");
    source.classList.remove("is-current");
    source.classList.add("is-waiting");
};
Media.prototype.first = function (media) {
    var player = this._getPlayer(media);
    var current = this._getCurrent(player);
    var next = this._getFirst(player);
    player.src = next.src;
    player.play();
    current.classList.remove("is-current");
    current.classList.add("is-queueing");
    next.classList.remove("is-played");
    next.classList.add("is-current");
};
Media.prototype.backwards = function (media) {
    var player = this._getPlayer(media);
    var current = this._getCurrent(player);
    var next = this._getPrevious(player);
    player.src = next.src;
    player.play();
    current.classList.remove("is-current");
    current.classList.add("is-queueing");
    next.classList.remove("is-played");
    next.classList.add("is-current");
};
Media.prototype.forward = function (media) {
    var player = this._getPlayer(media);
    var current = this._getCurrent(player);
    var next = this._getNext(player);
    player.src = next.src;
    player.play();
    current.classList.remove("is-current");
    current.classList.add("is-played");
    next.classList.remove("is-queueing");
    next.classList.add("is-current");
};
Media.prototype.last = function (media) {
    var player = this._getPlayer(media);
    var current = this._getCurrent(player);
    var next = this._getLast(player);
    player.src = next.src;
    player.play();
    current.classList.remove("is-current");
    current.classList.add("is-played");
    next.classList.remove("is-queueing");
    next.classList.add("is-current");
};
Media.prototype._getPlayer = function (media) {
    return media.querySelector(".c-media__player");
};
Media.prototype._getCurrent = function (player) {
    return player.querySelector(".c-media__source.is-current");
};
Media.prototype._getWaiting = function (player) {
    return player.querySelector(".c-media__source.is-waiting");
};
Media.prototype._getFirst = function (player) {
    var sources = player.querySelectorAll(".c-media__source.is-played");
    for (var i = 1; i < sources.length; i++) {
        sources[i].classList.remove("is-played");
        sources[i].classList.add("is-queueing");
    }
    return sources[0];
};
Media.prototype._getPrevious = function (player) {
    var sources = player.querySelectorAll(".c-media__source.is-played");
    return sources[sources.length - 1];
};
Media.prototype._getNext = function (player) {
    return player.querySelectorAll(".c-media__source.is-queueing")[0];
};
Media.prototype._getLast = function (player) {
    var sources = player.querySelectorAll(".c-media__source.is-queueing");
    for (var i = 0; i < (sources.length - 1); i++) {
        sources[i].classList.remove("is-queueing");
        sources[i].classList.add("is-played");
    }
    return sources[sources.length - 1];
};
Media.prototype._start = function (player, source) {
    var traveled = player.parentNode.querySelector(".c-media__traveled");
    var duration = player.parentNode.querySelector(".c-media__duration");
    var current = player.parentNode.querySelector(".c-media__current");
    if (this._isPaused(player)) {
        var source_1 = this._getWaiting(player);
        player.play();
        player.classList.remove("is-paused");
        player.classList.add("is-playing");
        source_1.classList.remove("is-waiting");
        source_1.classList.add("is-current");
    }
    else {
        player.src = source.src;
        player.play();
        player.classList.remove("is-stoped");
        player.classList.add("is-playing");
        source.classList.remove("is-queueing");
        source.classList.add("is-current");
    }
    setInterval(function () {
        traveled.textContent = (player.currentTime / 60).toFixed(2);
        duration.textContent = (player.duration / 60).toFixed(2);
        current.style.width = player.currentTime + "%";
    }, 1000);
};
Media.prototype._isPaused = function (player) {
    return player.classList.contains("is-paused");
};
return Media;

}()); var MediaController = (function () {

function MediaController() {
    this._media = new Media();
}
MediaController.prototype.play = function (media) {
    this._media.play(media);
};
MediaController.prototype.pause = function (media) {
    this._media.pause(media);
};
MediaController.prototype.first = function (media) {
    this._media.first(media);
};
MediaController.prototype.backwards = function (media) {
    this._media.backwards(media);
};
MediaController.prototype.forward = function (media) {
    this._media.forward(media);
};
MediaController.prototype.last = function (media) {
    this._media.last(media);
};
return MediaController;

}()); var ObjectHelper = (function () {

function ObjectHelper() {
}
ObjectHelper.show = function (obj) {
    obj.classList.add("is-show");
    obj.classList.remove("is-hide");
    obj.setAttribute("aria-hidden", "false");
    obj.setAttribute("aria-expanded", "true");
};
ObjectHelper.hide = function (obj) {
    obj.classList.add("is-hide");
    obj.classList.remove("is-show");
    obj.setAttribute("aria-hidden", "true");
    obj.setAttribute("aria-expanded", "false");
};
ObjectHelper.isHide = function (obj) {
    return obj.classList.contains("is-hide");
};
return ObjectHelper;

}()); var Nav = (function () {

function Nav() {
}
Nav.prototype.toggle = function (obj) {
    var target = obj.parentNode.querySelector("ul") || obj.parentNode.querySelector("menu");
    if (ObjectHelper.isHide(target))
        ObjectHelper.show(target);
    else
        ObjectHelper.hide(target);
};
return Nav;

}()); var NavController = (function () {

function NavController() {
    this._nav = new Nav();
}
NavController.prototype.dropdown = function (link, event) {
    event.preventDefault();
    this._nav.toggle(link);
};
return NavController;

}()); var Tab = (function () {

function Tab() {
}
Tab.prototype.toggle = function (obj) {
    if (!obj.classList.contains("is-active")) {
        this._isActiveTab(obj);
        this._showBody(obj);
    }
};
Tab.prototype._isActiveTab = function (obj) {
    this._isInactiveTab(obj.parentNode.parentNode.querySelector(".is-active"));
    obj.setAttribute("aria-selected", "true");
    obj.classList.add("is-active");
};
Tab.prototype._isInactiveTab = function (obj) {
    obj.setAttribute("aria-selected", "false");
    obj.classList.remove("is-active");
};
Tab.prototype._showBody = function (obj) {
    var body = this._findBody(obj);
    ObjectHelper.hide(body.parentNode.querySelector(".is-show"));
    ObjectHelper.show(body);
};
Tab.prototype._findBody = function (obj) {
    return obj.parentNode.parentNode.parentNode.querySelector(obj.getAttribute("href"));
};
return Tab;

}()); var TabController = (function () {

function TabController() {
    this._tab = new Tab();
}
TabController.prototype.toggle = function (tab, event) {
    event.preventDefault();
    this._tab.toggle(tab);
};
return TabController;

}()); var Dialog = (function () {

function Dialog() {
}
Dialog.prototype.build = function (message, icon) {
    this._message = message;
    this._icon = icon;
    document.body.appendChild(this.create());
};
Dialog.prototype.create = function () {
    document.body.appendChild(new DialogBackground().create());
    var dialog = document.createElement("div");
    dialog.classList.add("o-dialog", "js-o-dialog");
    dialog.innerHTML = "\n            <div class=\"o-dialog__body\">\n                <span class=\"o-dialog__icon\"><i class=\"" + this._icon + "\"></i></span>\n                <p class=\"o-dialog__message\">" + this._message + " ?</p>\n            </div>\n            <div class=\"o-dialog__footer\">\n                <button class=\"o-dialog__button o-button--der\" onclick=\"DialogController.close();\" type=\"button\"><i class=\"icon-cancel\"></i>&nbsp;N\u00E3o</button>\n                <button class=\"o-dialog__button o-button--ren\" onclick=\"DialogController.execute();\" type=\"button\"><i class=\"icon-ok\"></i>&nbsp;Sim</button>\n            </div>\n        ";
    return dialog;
};
Dialog.prototype.close = function () {
    var dialog = document.querySelector(".js-o-dialog");
    dialog.remove();
};
return Dialog;

}()); var DialogController = (function () {

function DialogController() {
    this._dialog = new Dialog();
}
DialogController.prototype.build = function (event, invoker, callback, message, icon) {
    if (message === void 0) { message = "Deseja confirmar a operacao"; }
    if (icon === void 0) { icon = "icon-attention"; }
    event.preventDefault();
    this._invoker = invoker;
    this._callback = callback;
    this._dialog.build(message, icon);
};
DialogController.prototype.close = function () {
    new DialogBackground().close();
    this._dialog.close();
};
DialogController.prototype.execute = function () {
    this._callback(this._invoker);
    this.close();
};
return DialogController;

}()); var FileController = (function () {

function FileController() {
}
FileController.prototype.dialog = function (button) {
    var input = button.parentNode.querySelector("input[type=file]");
    input.click();
};
FileController.prototype.selected = function (input) {
    var info = input.parentNode.querySelector(".o-file__info");
    info.textContent = input.files[0].name;
};
return FileController;

}()); var Mark = (function () {

function Mark() {
}
Mark.prototype.mark = function (mark) {
    var data = mark.parentNode.parentNode.querySelector("input[type=hidden]");
    if (this._isCheckBox(data))
        this._markCheckBox(data, mark);
    else
        this._markRadio(data, mark);
};
Mark.prototype.checkRequired = function (mark) {
    var marks = mark.parentNode.querySelectorAll(".o-mark__element");
    if (mark.required && mark.value == "")
        marks.forEach(function (mark) { return mark.classList.add("is-invalid"); });
    else
        marks.forEach(function (mark) { return mark.classList.remove("is-invalid"); });
};
Mark.prototype._markCheckBox = function (data, mark) {
    this._markElement(mark);
    if (this._isCheckBoxMultiple(mark)) {
        this._markCheckBoxMultiple(data, mark);
    }
    else {
        if (this._isMarked(mark))
            data.value = mark.dataset.marked;
        else
            data.value = mark.dataset.unmarked;
    }
    this.checkRequired(mark.parentNode.parentNode.querySelector("[class^=o-mark__data]"));
};
Mark.prototype._markCheckBoxMultiple = function (data, mark) {
    var regEx = new RegExp("[" + mark.dataset.marked + "]", "gi");
    if (regEx.test(data.value))
        data.value = data.value.replace(regEx, "");
    else
        data.value += mark.dataset.marked;
};
Mark.prototype._markRadio = function (data, mark) {
    this._unmarkElement(mark);
    this._markElement(mark);
    data.value = mark.dataset.marked;
    this.checkRequired(mark.parentNode.parentNode.querySelector("[class^=o-mark__data]"));
};
Mark.prototype._unmarkElement = function (mark) {
    var marks = mark.parentNode.parentNode.querySelectorAll(".o-mark__element");
    marks.forEach(function (mark) { return mark.classList.remove("is-marked"); });
};
Mark.prototype._markElement = function (mark) {
    mark.classList.toggle("is-marked");
};
Mark.prototype._isCheckBox = function (data) {
    return data.classList.contains("o-mark__data--checkbox");
};
Mark.prototype._isCheckBoxMultiple = function (mark) {
    return mark.classList.contains("is-multiple");
};
Mark.prototype._isMarked = function (mark) {
    return mark.classList.contains("is-marked");
};
return Mark;

}()); var MarkController = (function () {

function MarkController() {
    this._mark = new Mark();
}
MarkController.prototype.mark = function (mark) {
    this._mark.mark(mark);
};
return MarkController;

}()); var marks = document.querySelectorAll(“”); if (marks.length > 0) {

marks.forEach(function (mark) {
    new Mark().checkRequired(mark);
    if (mark.checked) {
        var index = 0;
        var element = void 0;
        for (var i = 1; i <= mark.value.length; i++) {
            element = mark.parentNode.querySelector(".o-mark__element[data-marked=\"" + mark.value + "\"]");
            if (element == undefined)
                element = mark.parentNode.querySelector(".o-mark__element[data-marked=\"" + mark.value.substring(index, i) + "\"]");
            if (element)
                element.classList.add("is-marked");
            index++;
        }
    }
});

} var ModalClose = (function () {

function ModalClose() {
}
ModalClose.prototype.create = function () {
    var close = document.createElement("i");
    close.classList.add("icon-cancel", "o-modal__close");
    return close;
};
return ModalClose;

}()); var ModalBackground = (function () {

function ModalBackground() {
}
ModalBackground.prototype.create = function () {
    var modalBackground = document.createElement("div");
    modalBackground.classList.add("o-modal__background", "js-o-modal__background");
    modalBackground.setAttribute("onclick", "ModalController.hide()");
    modalBackground.appendChild(new ModalClose().create());
    return modalBackground;
};
ModalBackground.prototype.remove = function (id) {
    var modalBackground = document.querySelector(".js-o-modal__background");
    modalBackground.parentNode.removeChild(modalBackground);
};
return ModalBackground;

}()); var ModalFrame = (function () {

function ModalFrame(url) {
    this._url = url;
}
ModalFrame.prototype.create = function () {
    var iframe = document.createElement("iframe");
    iframe.classList.add("o-modal__content");
    iframe.src = this._url;
    return iframe;
};
return ModalFrame;

}()); var Modal = (function () {

function Modal() {
    this._modalBackground = new ModalBackground();
}
Modal.prototype.hide = function () {
    this._destroy();
    this._removeBackground();
};
Modal.prototype.show = function (target) {
    document.body.appendChild(this.create(target.dataset.modalType, (target.href || target.formAction)));
    this._insertBackground();
};
Modal.prototype.create = function (type, url) {
    var modal = document.createElement("dialog");
    modal.classList.add("js-o-modal", "is-show", "o-modal--" + (type || "large"));
    modal.setAttribute("role", "dialog");
    modal.appendChild(new ModalFrame(url).create());
    return modal;
};
Modal.prototype._destroy = function () {
    var modal = document.querySelector(".js-o-modal");
    modal.remove();
};
Modal.prototype._insertBackground = function () {
    document.body.appendChild(new ModalBackground().create());
};
Modal.prototype._removeBackground = function () {
    this._modalBackground.remove();
};
return Modal;

}()); var ModalController = (function () {

function ModalController() {
    this._modal = new Modal();
}
ModalController.prototype.hide = function () {
    this._modal.hide();
};
ModalController.prototype.show = function (target, event) {
    event.preventDefault();
    this._modal.show(target);
};
return ModalController;

}()); var Options = (function () {

function Options() {
}
Options.prototype.toggle = function (options) {
    var ul = options.querySelector("ul");
    if (ObjectHelper.isHide(ul))
        ObjectHelper.show(ul);
    else
        ObjectHelper.hide(ul);
};
return Options;

}()); var OptionsController = (function () {

function OptionsController() {
    this._options = new Options();
}
OptionsController.prototype.toggle = function (options, event) {
    event.preventDefault();
    this._options.toggle(options);
};
return OptionsController;

}()); var ProcessingAnimation = (function () {

function ProcessingAnimation() {
}
ProcessingAnimation.prototype.create = function () {
    var animation = document.createElement("div");
    animation.classList.add("o-processing__animation");
    animation.innerHTML = "<i class=\"icon-spin1 animate-spin\"></i>";
    return animation;
};
return ProcessingAnimation;

}()); var Processing = (function () {

function Processing() {
}
Processing.prototype.new = function () {
    return this.create();
};
Processing.prototype.create = function () {
    var processing = document.createElement("div");
    processing.classList.add("o-processing__background");
    processing.appendChild(new ProcessingAnimation().create());
    return processing;
};
Processing.prototype.destroy = function () {
    var processing = document.querySelector(".o-processing__background");
    if (processing)
        processing.remove();
};
return Processing;

}()); var ProcessingController = (function () {

function ProcessingController() {
    this._processing = new Processing();
}
ProcessingController.prototype.process = function () {
    document.body.appendChild(this._processing.new());
};
ProcessingController.prototype.stop = function () {
    this._processing.destroy();
};
return ProcessingController;

}()); var Steps = (function () {

function Steps() {
}
Steps.prototype.step = function (target, current) {
    var nextStep = this._findStep(target);
    ObjectHelper.show(nextStep);
    ObjectHelper.hide(this._findStep(current));
    this._setFocusFirstElementWithoutValue(nextStep);
};
Steps.prototype._findStep = function (s) {
    return document.querySelector("." + s);
};
Steps.prototype._setFocusFirstElementWithoutValue = function (step) {
    var inputs = step.querySelectorAll("input, select, textarea");
    for (var i = 0; i < inputs.length; i++) {
        if (inputs[i].value === "") {
            inputs[i].dispatchEvent(new Event("keyup"));
            inputs[i].focus();
            return false;
        }
    }
};
return Steps;

}()); var StepsController = (function () {

function StepsController() {
    this._steps = new Steps();
}
StepsController.prototype.step = function (step) {
    this._steps.step(step.dataset.target, step.dataset.current);
};
return StepsController;

}()); var Toast = (function () {

function Toast() {
}
Toast.prototype.close = function (toast) {
    toast.remove();
};
return Toast;

}()); var ToastController = (function () {

function ToastController() {
    this._toast = new Toast();
}
ToastController.prototype.close = function (toast) {
    this._toast.close(toast);
};
return ToastController;

}()); var ToastSlim = (function () {

function ToastSlim() {
}
ToastSlim.prototype.close = function (toast) {
    toast.remove();
};
return ToastSlim;

}()); var ToastSlimController = (function () {

function ToastSlimController() {
    this._toastSlim = new ToastSlim();
}
ToastSlimController.prototype.close = function (toastSlim) {
    this._toastSlim.close(toastSlim);
};
return ToastSlimController;

}()); window = new DialogController(); window = new FileController(); window = new MarkController(); window = new MediaController(); window = new ModalController(); window = new NavController(); window = new OptionsController(); window = new ProcessingController(); window = new StepsController(); window = new TabController(); window = new ToastController(); window = new ToastSlimController(); var StringHelper = (function () {

function StringHelper() {
}
StringHelper.trimAll = function (string) {
    return string.replace(/\s/g, "");
};
StringHelper.trimLeft = function (string) {
    return string.replace(/^\s+/, "");
};
StringHelper.trimLeftRight = function (string) {
    return string.replace(/^\s+|\s+$/g, "");
};
StringHelper.trimRight = function (string) {
    return string.replace(/\s+$/, "");
};
return StringHelper;

}()); var DialogBackground = (function () {

function DialogBackground() {
}
DialogBackground.prototype.create = function () {
    var background = document.createElement("div");
    background.classList.add("o-dialog__background", "js-o-dialog__background");
    background.setAttribute("onclick", "DialogController.close();");
    background.appendChild(new DialogClose().create());
    return background;
};
DialogBackground.prototype.close = function () {
    var background = document.querySelector(".js-o-dialog__background");
    background.remove();
};
return DialogBackground;

}()); var DialogClose = (function () {

function DialogClose() {
}
DialogClose.prototype.create = function () {
    var close = document.createElement("i");
    close.classList.add("icon-cancel", "o-dialog__close");
    return close;
};
return DialogClose;

}());