﻿(function($) {
    var define = {
        maskid: 'jquery_imask',
        opacity: 0.8,
        z: 10000,
        bgcolor: '#808080',

        status: 0,
        status_info: 'Waiting ...',
        status_style_info: ''
    };


    var op = $.extend(define);
    function getStatusInfo() {
        var info;
        if (op.status_style_info) {
            info = op.status_style_info;
        } else {
            info = '<div style=\"top: 400px; text-align: center;\"><font color="#86FBBF" font-size="12pt" font-weight="bolder"><h3>' + op.status_info + '</h3></font></div>'
        }
        return info;
    };
    function freshStatusInfo(options) {
        $("#" + op.maskid).html(getStatusInfo());
    }

    $.iMask = {
        setMask: function(options) {
            op = $.extend(options);
            var div_e = '<div id="' + op.maskid + '">' + getStatusInfo() + '</div>';
            $(div_e).appendTo(document.body).css({
                position: 'absolute',
                top: '0px',
                left: '0px',
                'z-index': op.z,
                width: $(document).width(),
                height: $(document).height(),
                'background-color': op.bgcolor,
                opacity: 0
            }).fadeIn('slow', function() {
                $(this).fadeTo('slow', op.opacity);
            });
        },

        setStatus: function(options) {
            op = $.extend(options);
        },

        callMask: function() {
            $("#" + op.maskid).click();
        },

        sleep: function(timeout) {
            var loop = true;
            var current = new Date();
            var now;
            var cTimestamp = current.getTime();
            while (loop) {
                now = new Date();
                nTimestamp = now.getTime();
                if (nTimestamp - cTimestamp > timeout) {
                    loop = false;
                }
            }
        },
        freshStatusInfo: freshStatusInfo
    };
})(jQuery);