var schedule = Class.create();
schedule.prototype = {
    initialize: function(rootDir) {
        this.root = rootDir;
        this.image = new Image();
        this.image.src = this.root + '/images/loading.gif';
        this.bg = new Image();
        this.bg.src = this.root + '/images/clarity.gif';
        this.id = 'loadingSchedule';
        this.html = '<span title="点击取消" onclick="javascript:loading.hide(true);" style="padding:5px 0;font-size:13px;color:#000000;border:1px solid #000000;background-color:#ffffff;cursor:pointer;white-space:nowrap;">&nbsp;<img src="' + this.image.src + '" border="0" width="16" height="16" />&nbsp;';
    },
    show: function() {
        if ($(this.id)) return;
        var height = Prototype.Browser.IE ? document.body.scrollHeight : document.documentElement.scrollHeight;
        var padding = Prototype.Browser.IE ? document.body.scrollTop : document.documentElement.scrollTop;
        var clientHeight = Prototype.Browser.IE ? document.body.clientHeight : document.documentElement.clientHeight;
        padding += clientHeight / 2;
        var htmlCode = '<table id="'+this.id+'" width="100%" height="'+height+'" style="position:absolute;left:0px;top:0px;background-image:url(\''+this.bg.src+'\');z-index:10000;"><tr><td width="100%" height="100%" align="center" valign="top" style="padding-top:'+padding+'px">'+this.html+'数据加载中,请稍候...&nbsp;</span></td></tr></table>';
        this._hideApplet();
        new Insertion.Top(document.body, htmlCode);
    },
    insert: function(element, position) {
        if ($(this.id)) return;
        var htmlCode = '<div id="'+this.id+'" style="margin:10px 0;text-align:center">'+this.html+'处理中,请稍候...&nbsp;</span></div>';
        switch (position.toLowerCase()) {
            case 'after':
                new Insertion.After(element, htmlCode);
                break;
            case 'before':
                new Insertion.Before(element, htmlCode);
                break;
            case 'bottom':
                new Insertion.Bottom(element, htmlCode);
                break;
            case 'top':
                new Insertion.Top(element, htmlCode);
                break;
            default:
                return;
        }
    },
    hide: function(cancel) {
        if (typeof(cancel) != 'undefined') dispose = false;
        if ($(this.id)) {
            $(this.id).remove();
            this._showApplet();
        }
    },
    _hideApplet: function() {
        if (!Prototype.Browser.IE) return;
        var selects = $$('select');
        if (selects.size()) {
            selects.each(function(item) {
                $(item).setStyle({visibility:'hidden'});
            });
        }
        var applets = $$('applet');
        if (applets.size()) {
            applets.each(function(item) {
                $(item).setStyle({visibility:'hidden'});
            });
        }
    },
    _showApplet: function() {
        if (!Prototype.Browser.IE) return;
        var selects = $$('select');
        if (selects.size()) {
            selects.each(function(item) {
                $(item).setStyle({visibility:''});
            });
        }
        var applets = $$('applet');
        if (applets.size()) {
            applets.each(function(item) {
                $(item).setStyle({visibility:''});
            });
        }
    }
};
var loading = new schedule(common);