/***
 *BLOCK UI弹出框开始
 */
;(function($) {
    if (/1\.(0|1|2)\.(0|1|2)/.test($.fn.jquery) || /^1.1/.test($.fn.jquery)) {
        alert('blockUI requires jQuery v1.2.3 or later!  You are using v' + $.fn.jquery);
        return;
	}
	$.fn._fadeIn = $.fn.fadeIn;
	var mode = document.documentMode || 0;
	var setExpr = $.browser.msie && (($.browser.version < 8 && !mode) || mode < 8);
	var ie6 = $.browser.msie && /MSIE 6.0/.test(navigator.userAgent) && !mode;
	$.blockUI = function(opts) {
	        install(window, opts);
	};
	$.unblockUI = function(opts) {
	        remove(window, opts);
	};
	$.growlUI = function(title, message, timeout, onClose) {
	        var $m = $('<div class="growlUI"></div>');
	        if (title) $m.append('<h1>' + title + '</h1>');
	        if (message) $m.append('<h2>' + message + '</h2>');
	        if (timeout == undefined) timeout = 3000;
	        $.blockUI({
	                message: $m,
	                fadeIn: 700,
	                fadeOut: 1000,
	                centerY: false,
	                timeout: timeout,
	                showOverlay: false,
	                onUnblock: onClose,
	                css: $.blockUI.defaults.growlCSS
	        });
	};
	$.fn.block = function(opts) {
	        return this.unblock({
	                fadeOut: 0
	        }).each(function() {
	                if ($.css(this, 'position') == 'static') this.style.position = 'relative';
	                if ($.browser.msie) this.style.zoom = 1;
	                install(this, opts);
	        });
	};
	$.fn.unblock = function(opts) {
	        return this.each(function() {
	                remove(this, opts);
	        });
	};
	$.blockUI.version = 2.25;
	$.blockUI.defaults = {
	        message: '<h1>Please wait...</h1>',
	        title: null,
	        draggable: true,
	        theme: false,
	        css: {
	                padding: 0,
	                margin: 0,
	                width: '30%',
	                top: '40%',
	                left: '35%',
	                textAlign: 'center',
	                color: '#000',
	                border: '3px solid #aaa',
	                backgroundColor: '#fff',
	                cursor: 'wait'
	        },
	        themedCSS: {
	                width: '30%',
	                top: '40%',
	                left: '35%'
	        },
	        overlayCSS: {
	                backgroundColor: '#000',
	                opacity: 0.6,
	                cursor: 'wait'
	        },
	        growlCSS: {
	                width: '350px',
	                top: '10px',
	                left: '',
	                right: '10px',
	                border: 'none',
	                padding: '5px',
	                opacity: 0.6,
	                cursor: null,
	                color: '#fff',
	                backgroundColor: '#000',
	                '-webkit-border-radius': '10px',
	                '-moz-border-radius': '10px'
	        },
	        iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false': 'about:blank',
	        forceIframe: false,
	        baseZ: 1000,
	        centerX: true,
	        centerY: true,
	        allowBodyStretch: true,
	        bindEvents: true,
	        constrainTabKey: true,
	        fadeIn: 200,
	        fadeOut: 400,
	        timeout: 0,
	        showOverlay: true,
	        focusInput: true,
	        applyPlatformOpacityRules: true,
	        onUnblock: null,
	        quirksmodeOffsetHack: 4
	};
	var pageBlock = null;
	var pageBlockEls = [];
	function install(el, opts) {
	        var full = (el == window);
	        var msg = opts && opts.message !== undefined ? opts.message: undefined;
	        opts = $.extend({},
	        $.blockUI.defaults, opts || {});
	        opts.overlayCSS = $.extend({},
	        $.blockUI.defaults.overlayCSS, opts.overlayCSS || {});
	        var css = $.extend({},
	        $.blockUI.defaults.css, opts.css || {});
	        var themedCSS = $.extend({},
	        $.blockUI.defaults.themedCSS, opts.themedCSS || {});
	        msg = msg === undefined ? opts.message: msg;
	        if (full && pageBlock) remove(window, {
	                fadeOut: 0
	        });
	        if (msg && typeof msg != 'string' && (msg.parentNode || msg.jquery)) {
	                var node = msg.jquery ? msg[0] : msg;
	                var data = {};
	                $(el).data('blockUI.history', data);
	                data.el = node;
	                data.parent = node.parentNode;
	                data.display = node.style.display;
	                data.position = node.style.position;
	                if (data.parent) data.parent.removeChild(node);
	        }
	        var z = opts.baseZ;
	        var lyr1 = ($.browser.msie || opts.forceIframe) ? $('<iframe class="blockUI" style="z-index:' + (z++) + ';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="' + opts.iframeSrc + '"></iframe>') : $('<div class="blockUI" style="display:none"></div>');
	        var lyr2 = $('<div class="blockUI blockOverlay" style="z-index:' + (z++) + ';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>');
	        var lyr3;
	        if (opts.theme && full) {
	                var s = '<div class="blockUI blockMsg blockPage ui-dialog ui-widget ui-corner-all" style="z-index:' + z + ';display:none;position:fixed">' + '<div class="ui-widget-header ui-dialog-titlebar blockTitle">' + (opts.title || '&nbsp;') + '</div>' + '<div class="ui-widget-content ui-dialog-content"></div>' + '</div>';
	                lyr3 = $(s);
	        } else {
	                lyr3 = full ? $('<div class="blockUI blockMsg blockPage" style="z-index:' + z + ';display:none;position:fixed"></div>') : $('<div class="blockUI blockMsg blockElement" style="z-index:' + z + ';display:none;position:absolute"></div>');
	        }
	        if (msg) {
	                if (opts.theme) {
	                        lyr3.css(themedCSS);
	                        lyr3.addClass('ui-widget-content');
	                } else lyr3.css(css);
	        }
	        if (!opts.applyPlatformOpacityRules || !($.browser.mozilla && /Linux/.test(navigator.platform))) lyr2.css(opts.overlayCSS);
	        lyr2.css('position', full ? 'fixed': 'absolute');
	        if ($.browser.msie || opts.forceIframe) lyr1.css('opacity', 0.0);
	        $([lyr1[0], lyr2[0], lyr3[0]]).appendTo(full ? 'body': el);
	        if (opts.theme && opts.draggable && $.fn.draggable) {
	                lyr3.draggable({
	                        handle: '.ui-dialog-titlebar',
	                        cancel: 'li'
	                });
	        }
	        var expr = setExpr && (!$.boxModel || $('object,embed', full ? null: el).length > 0);
	        if (ie6 || expr) {
	                if (full && opts.allowBodyStretch && $.boxModel) $('html,body').css('height');
	                if ((ie6 || !$.boxModel) && !full) {
	                        var t = sz(el, 'borderTopWidth'),
	                        l = sz(el, 'borderLeftWidth');
	                        var fixT = t ? '(0 - ' + t + ')': 0;
	                        var fixL = l ? '(0 - ' + l + ')': 0;
	                }
	                $.each([lyr1, lyr2, lyr3],
	                function(i, o) {
	                        var s = o[0].style;
	                        s.position = 'absolute';
	                        if (i < 2) {
	                                full ? s.setExpression('height', 'Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.boxModel?0:' + opts.quirksmodeOffsetHack + ') + "px"') : s.setExpression('height', 'this.parentNode.offsetHeight + "px"');
	                                full ? s.setExpression('width', 'jQuery.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"') : s.setExpression('width', 'this.parentNode.offsetWidth + "px"');
	                                if (fixL) s.setExpression('left', fixL);
	                                if (fixT) s.setExpression('top', fixT);
	                        } else if (opts.centerY) {
	                                if (full) s.setExpression('top', '(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"');
	                                s.marginTop = 0;
	                        } else if (!opts.centerY && full) {
	                                var top = (opts.css && opts.css.top) ? parseInt(opts.css.top) : 0;
	                                var expression = '((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + ' + top + ') + "px"';
	                                s.setExpression('top', expression);
	                        }
	                });
	        }
	        if (msg) {
	                if (opts.theme) lyr3.find('.ui-widget-content').append(msg);
	                else lyr3.append(msg);
	                if (msg.jquery || msg.nodeType) $(msg).show();
	        }
	        if (($.browser.msie || opts.forceIframe) && opts.showOverlay) lyr1.show();
	        if (opts.fadeIn) {
	        	if(!ie6){
	        		if (opts.showOverlay) lyr2._fadeIn(opts.fadeIn);
	        	}
	                if (msg) lyr3.fadeIn(opts.fadeIn);
	        } else {
	                if (opts.showOverlay) lyr2.show();
	                if (msg) lyr3.show();
	        }
	        bind(1, el, opts);
	        if (full) {
	                pageBlock = lyr3[0];
	                pageBlockEls = $(':input:enabled:visible', pageBlock);
	                if (opts.focusInput) setTimeout(focus, 20);
	        } else center(lyr3[0], opts.centerX, opts.centerY);
	        if (opts.timeout) {
	                var to = setTimeout(function() {
	                        full ? $.unblockUI(opts) : $(el).unblock(opts);
	                },
	                opts.timeout);
	                $(el).data('blockUI.timeout', to);
	        }
	};
	function remove(el, opts) {
	        var full = (el == window);
	        var $el = $(el);
	        var data = $el.data('blockUI.history');
	        var to = $el.data('blockUI.timeout');
	        if (to) {
	                clearTimeout(to);
	                $el.removeData('blockUI.timeout');
	        }
	        opts = $.extend({},
	        $.blockUI.defaults, opts || {});
	        bind(0, el, opts);
	        var els;
	        if (full) els = $('body').children().filter('.blockUI').add('body > .blockUI');
	        else els = $('.blockUI', el);
	        if (full) pageBlock = pageBlockEls = null;
	        if (opts.fadeOut) {
	                els.fadeOut(opts.fadeOut);
	                setTimeout(function() {
	                        reset(els, data, opts, el);
	                },
	                opts.fadeOut);
	        } else reset(els, data, opts, el);
	};
	function reset(els, data, opts, el) {
	        els.each(function(i, o) {
	                if (this.parentNode) this.parentNode.removeChild(this);
	        });
	        if (data && data.el) {
	                data.el.style.display = data.display;
	                data.el.style.position = data.position;
	                if (data.parent) data.parent.appendChild(data.el);
	                $(data.el).removeData('blockUI.history');
	        }
	        if (typeof opts.onUnblock == 'function') opts.onUnblock(el, opts);
	};
	function bind(b, el, opts) {
	        var full = el == window,
	        $el = $(el);
	        if (!b && (full && !pageBlock || !full && !$el.data('blockUI.isBlocked'))) return;
	        if (!full) $el.data('blockUI.isBlocked', b);
	        if (!opts.bindEvents || (b && !opts.showOverlay)) return;
	        var events = 'mousedown mouseup keydown keypress';
	        b ? $(document).bind(events, opts, handler) : $(document).unbind(events, handler);
	};
	function handler(e) {
	        if (e.keyCode && e.keyCode == 9) {
	                if (pageBlock && e.data.constrainTabKey) {
	                        var els = pageBlockEls;
	                        var fwd = !e.shiftKey && e.target == els[els.length - 1];
	                        var back = e.shiftKey && e.target == els[0];
	                        if (fwd || back) {
	                                setTimeout(function() {
	                                        focus(back)
	                                },
	                                10);
	                                return false;
	                        }
	                }
	        }
	        if ($(e.target).parents('div.blockMsg').length > 0) return true;
	        return $(e.target).parents().children().filter('div.blockUI').length == 0;
	};
	function focus(back) {
	        if (!pageBlockEls) return;
	        var e = pageBlockEls[back === true ? pageBlockEls.length - 1 : 0];
	        if (e) e.focus();
	};
	function center(el, x, y) {
	        var p = el.parentNode,
	        s = el.style;
	        var l = ((p.offsetWidth - el.offsetWidth) / 2) - sz(p, 'borderLeftWidth');
	        var t = ((p.offsetHeight - el.offsetHeight) / 2) - sz(p, 'borderTopWidth');
	        if (x) s.left = l > 0 ? (l + 'px') : '0';
	        if (y) s.top = t > 0 ? (t + 'px') : '0';
	};
	function sz(el, p) {
	        return parseInt($.css(el, p)) || 0;
	};
})(jQuery);
/***
 *BLOCK UI弹出框结束
 */

