if (typeof (Avanade) == "undefined") { Avanade = { __namespace: true }; }
if (typeof (Avanade.Assets) == "undefined") { Avanade.Assets = { __namespace: true }; }
Avanade.Assets.Spinner = new function () {
    var _self = this;
    var _initializedModal = false;
    var _initializedCSS = false;
    var _customLoaderId = "customLoaderId";

    _self.Toggle = function () {
        initialize();

        var modal = window.top.$("#" + _customLoaderId);
        modal.is(":visible") ? modal.hide() : modal.show();
    }

    _self.Hide = function () {
        var modal = window.top.$("#" + _customLoaderId);
        if (modal.length !== 0)
            modal.hide();
    }

    _self.Show = function () {
        initialize();
        var modal = window.top.$("#" + _customLoaderId);
        modal.show();
    }

    function injectCSS(css) {
        var newStyle = $("<style>");
        newStyle.append(css)
        $(window.top.document.head).append(newStyle)
    }

    function initilizeCSS() {
        if (_initializedCSS)
            return;
        _initializedCSS = true;

        var cssmin = ".modal{display:none;position:fixed;z-index:9998;padding-top:100px;left:0;top:0;width:100%;height:100%;overflow:auto;background-color:#000;background-color:rgba(0,0,0,.4)}.modal-content{z-index:9999;background-color:#fefefe;margin:auto;padding:20px;border:1px solid #888;width:80%}.close{color:#aaa;float:right;font-size:28px;font-weight:700}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer}.loader{border:16px solid #f3f3f3;border-top:16px solid red;border-radius:50%;width:120px;height:120px;animation:spin 2s linear infinite;text-align:left;position:fixed;top:50%;left:50%;margin-left:-70px;margin-top:-50px}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}";

        injectCSS(cssmin);
    }

    function initialize() {
        initilizeCSS();
        if (_initializedModal)
            return;
        _initializedModal = true;

        var newModal = $("<div>");
        newModal.addClass("modal");
        newModal.attr("id", _customLoaderId);

        var modalContent = $("<div>");
        modalContent.addClass("loader");
        modalContent.appendTo(newModal);
        $(window.top.document.body).append(newModal);
    }

}