/*
 * 特别声明：本技术材料受《中华人民共和国著作权法》、《计算机软件保护条例》等法律、法规、行政
 * 规章以及有关国际条约的保护，赞同科技享有知识产权、保留一切权利并视其为技术秘密。未经本公司书
 * 面许可，任何人不得擅自（包括但不限于：以非法的方式复制、传播、展示、镜像、上载、下载）使用，
 * 不得向第三方泄露、透露、披露。否则，本公司将依法追究侵权者的法律责任。特此声明！
 *
 * Special Declaration: These technical material reserved as the technical secrets by AGREE
 * TECHNOLOGY have been protected by the "Copyright Law" "ordinances on Protection of Computer
 * Software" and other relevant administrative regulations and international treaties. Without
 * the written permission of the Company, no person may use (including but not limited to the
 * illegal copy, distribute, display, image, upload, and download) and disclose the above
 * technical documents to any third party. Otherwise, any infringer shall afford the legal
 * liability to the company.
 */
/**
 * Created by huangdeyun on 2015/9/10 16:24.
 */
define([], function () {
    return {
        _show: function (attrs) {
            var parentId = attrs.parentId;
            var parentNode = $("#" + parentId);
            if (parentNode.length === 0) {
                return;
            }
            // 只需找到它的直接子元素即可，否则会影响非直接子元素的蒙板
            if (parentNode.children("div.adore-loading").length !== 0) {
                return;
            }
            var templateNode = $('<div class="adore-loading"><div class="preloader-wrapper small active"><div class="spinner-layer"><div class="circle-clipper left"><div class="circle"></div></div><div class="gap-patch"><div class="circle"></div></div><div class="circle-clipper right"><div class="circle"></div></div></div></div></div>');
            templateNode.attr("id", "AdoreLoading_" + parentId);
            templateNode.appendTo(parentNode);
            templateNode.height(parentNode[0].scrollHeight);
            //设置loading图标的位置
            var p = this.getPosition(parentNode[0]);
            var top = (parentNode.height() / 2 + p[0]).toFixed(0) + "px";
            var left = (parentNode.width() / 2 + p[1]).toFixed(0) + "px";
            templateNode.find(".preloader-wrapper").css({top: top, left: left});
            $("#AdoreLoading_" + parentId).on("click keyup keydown mouseup mousedown", function (e) {
                e.stopPropagation();//阻止事件传递给其他节点
            });
        },

        _destroy: function (attrs) {
            $("#" + attrs.parentId).children("div.adore-loading").remove();
        },
        getPosition: function (obj) {
            var pos = [0, 0];
            if (obj && obj.offsetParent) {
                while (obj && obj.offsetParent) {
                    pos[0] += obj.offsetTop;
                    pos[1] += obj.offsetLeft;
                    obj = obj.offsetParent;
                }
            }
            return pos;
        }

    };
});
