;(function(){
"use strict";
function setup($){
$.fn._fadeIn=$.fn.fadeIn;
var noOp=$.noop||function(){};
var msie=/MSIE/.test(navigator.userAgent);
var ie6=/MSIE 6.0/.test(navigator.userAgent)&&! /MSIE 8.0/.test(navigator.userAgent);
var mode=document.documentMode||0;
var setExpr='function'===typeof document.createElement('div').style.setExpression ? document.createElement('div').style.setExpression:false;
$.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;
var callBlock=function(opts){
opts=opts||{};
$.blockUI({
message: $m,
fadeIn:typeof opts.fadeIn!=='undefined' ? opts.fadeIn:700,
fadeOut: typeof opts.fadeOut!=='undefined' ? opts.fadeOut:1000,
timeout: typeof opts.timeout!=='undefined' ? opts.timeout:timeout,
centerY: false,
showOverlay: false,
onUnblock: onClose,
css: $.blockUI.defaults.growlCSS
});
};
callBlock();
var nonmousedOpacity=$m.css('opacity');
$m.on('mouseover', function(){
callBlock({
fadeIn: 0,
timeout: 30000
});
var displayBlock=$('.blockMsg');
displayBlock.stop();
displayBlock.fadeTo(300, 1);
}).on('mouseout', function(){
$('.blockMsg').fadeOut(1000);
});
};
$.fn.block=function(opts){
if(this[0]===window){
$.blockUI(opts);
return this;
}
var fullOpts=$.extend({}, $.blockUI.defaults, opts||{});
this.each(function(){
var $el=$(this);
if(fullOpts.ignoreIfBlocked&&$el.data('blockUI.isBlocked'))
return;
$el.unblock({ fadeOut: 0 });
});
return this.each(function(){
if($.css(this,'position')=='static'){
this.style.position='relative';
$(this).data('blockUI.static', true);
}
this.style.zoom=1;
install(this, opts);
});
};
$.fn.unblock=function(opts){
if(this[0]===window){
$.unblockUI(opts);
return this;
}
return this.each(function(){
remove(this, opts);
});
};
$.blockUI.version=2.70;
$.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'
},
cursorReset: 'default',
growlCSS: {
width:		'350px',
top:		'10px',
left:		'',
right:		'10px',
border:		'none',
padding:	'5px',
opacity:	0.6,
cursor:		'default',
color:		'#fff',
backgroundColor: '#000',
'-webkit-border-radius':'10px',
'-moz-border-radius':	'10px',
'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,
focusableElements: ':input:enabled:visible',
onBlock: null,
onUnblock: null,
onOverlayClick: null,
quirksmodeOffsetHack: 4,
blockMsgClass: 'blockMsg',
ignoreIfBlocked: false
};
var pageBlock=null;
var pageBlockEls=[];
function install(el, opts){
var css, themedCSS;
var full=(el==window);
var msg=(opts&&opts.message!==undefined ? opts.message:undefined);
opts=$.extend({}, $.blockUI.defaults, opts||{});
if(opts.ignoreIfBlocked&&$(el).data('blockUI.isBlocked'))
return;
opts.overlayCSS=$.extend({}, $.blockUI.defaults.overlayCSS, opts.overlayCSS||{});
css=$.extend({}, $.blockUI.defaults.css, opts.css||{});
if(opts.onOverlayClick)
opts.overlayCSS.cursor='pointer';
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);
}
$(el).data('blockUI.onUnblock', opts.onUnblock);
var z=opts.baseZ;
var lyr1, lyr2, lyr3, s;
if(msie||opts.forceIframe)
lyr1=$('<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>');
else
lyr1=$('<div class="blockUI" style="display:none"></div>');
if(opts.theme)
lyr2=$('<div class="blockUI blockOverlay ui-widget-overlay" style="z-index:'+ (z++) +';display:none"></div>');
else
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>');
if(opts.theme&&full){
s='<div class="blockUI ' + opts.blockMsgClass + ' blockPage ui-dialog ui-widget ui-corner-all" style="z-index:'+(z+10)+';display:none;position:fixed">';
if(opts.title){
s +='<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(opts.title||'&nbsp;')+'</div>';
}
s +='<div class="ui-widget-content ui-dialog-content"></div>';
s +='</div>';
}
else if(opts.theme){
s='<div class="blockUI ' + opts.blockMsgClass + ' blockElement ui-dialog ui-widget ui-corner-all" style="z-index:'+(z+10)+';display:none;position:absolute">';
if(opts.title){
s +='<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(opts.title||'&nbsp;')+'</div>';
}
s +='<div class="ui-widget-content ui-dialog-content"></div>';
s +='</div>';
}
else if(full){
s='<div class="blockUI ' + opts.blockMsgClass + ' blockPage" style="z-index:'+(z+10)+';display:none;position:fixed"></div>';
}else{
s='<div class="blockUI ' + opts.blockMsgClass + ' blockElement" style="z-index:'+(z+10)+';display:none;position:absolute"></div>';
}
lyr3=$(s);
if(msg){
if(opts.theme){
lyr3.css(themedCSS);
lyr3.addClass('ui-widget-content');
}
else
lyr3.css(css);
}
if(!opts.theme )
lyr2.css(opts.overlayCSS);
lyr2.css('position', full ? 'fixed':'absolute');
if(msie||opts.forceIframe)
lyr1.css('opacity',0.0);
var layers=[lyr1,lyr2,lyr3], $par=full ? $('body'):$(el);
$.each(layers, function(){
this.appendTo($par);
});
if(opts.theme&&opts.draggable&&$.fn.draggable){
lyr3.draggable({
handle: '.ui-dialog-titlebar',
cancel: 'li'
});
}
var expr=setExpr&&(!$.support.boxModel||$('object,embed', full ? null:el).length > 0);
if(ie6||expr){
if(full&&opts.allowBodyStretch&&$.support.boxModel)
$('html,body').css('height','100%');
if((ie6||!$.support.boxModel)&&!full){
var t=sz(el,'borderTopWidth'), l=sz(el,'borderLeftWidth');
var fixT=t ? '(0 - '+t+')':0;
var fixL=l ? '(0 - '+l+')':0;
}
$.each(layers, function(i,o){
var s=o[0].style;
s.position='absolute';
if(i < 2){
if(full)
s.setExpression('height','Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:'+opts.quirksmodeOffsetHack+') + "px"');
else
s.setExpression('height','this.parentNode.offsetHeight + "px"');
if(full)
s.setExpression('width','jQuery.support.boxModel&&document.documentElement.clientWidth||document.body.clientWidth + "px"');
else
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, 10):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((msie||opts.forceIframe)&&opts.showOverlay)
lyr1.show();
if(opts.fadeIn){
var cb=opts.onBlock ? opts.onBlock:noOp;
var cb1=(opts.showOverlay&&!msg) ? cb:noOp;
var cb2=msg ? cb:noOp;
if(opts.showOverlay)
lyr2._fadeIn(opts.fadeIn, cb1);
if(msg)
lyr3._fadeIn(opts.fadeIn, cb2);
}else{
if(opts.showOverlay)
lyr2.show();
if(msg)
lyr3.show();
if(opts.onBlock)
opts.onBlock.bind(lyr3)();
}
bind(1, el, opts);
if(full){
pageBlock=lyr3[0];
pageBlockEls=$(opts.focusableElements,pageBlock);
if(opts.focusInput)
setTimeout(focus, 20);
}
else
center(lyr3[0], opts.centerX, opts.centerY);
if(opts.timeout){
var to=setTimeout(function(){
if(full)
$.unblockUI(opts);
else
$(el).unblock(opts);
}, opts.timeout);
$(el).data('blockUI.timeout', to);
}}
function remove(el, opts){
var count;
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);
if(opts.onUnblock===null){
opts.onUnblock=$el.data('blockUI.onUnblock');
$el.removeData('blockUI.onUnblock');
}
var els;
if(full)
els=$(document.body).children().filter('.blockUI').add('body > .blockUI');
else
els=$el.find('>.blockUI');
if(opts.cursorReset){
if(els.length > 1)
els[1].style.cursor=opts.cursorReset;
if(els.length > 2)
els[2].style.cursor=opts.cursorReset;
}
if(full)
pageBlock=pageBlockEls=null;
if(opts.fadeOut){
count=els.length;
els.stop().fadeOut(opts.fadeOut, function(){
if(--count===0)
reset(els,data,opts,el);
});
}
else
reset(els, data, opts, el);
}
function reset(els,data,opts,el){
var $el=$(el);
if($el.data('blockUI.isBlocked'))
return;
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;
data.el.style.cursor='default';
if(data.parent)
data.parent.appendChild(data.el);
$el.removeData('blockUI.history');
}
if($el.data('blockUI.static')){
$el.css('position', 'static');
}
if(typeof opts.onUnblock=='function')
opts.onUnblock(el,opts);
var body=$(document.body), w=body.width(), cssW=body[0].style.width;
body.width(w-1).width(w);
body[0].style.width=cssW;
}
function bind(b, el, opts){
var full=el==window, $el=$(el);
if(!b&&(full&&!pageBlock||!full&&!$el.data('blockUI.isBlocked')))
return;
$el.data('blockUI.isBlocked', b);
if(!full||!opts.bindEvents||(b&&!opts.showOverlay))
return;
var events='mousedown mouseup keydown keypress keyup touchstart touchend touchmove';
if(b)
$(document).on(events, opts, handler);
else
$(document).off(events, handler);
}
function handler(e){
if(e.type==='keydown'&&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;
}}
}
var opts=e.data;
var target=$(e.target);
if(target.hasClass('blockOverlay')&&opts.onOverlayClick)
opts.onOverlayClick(e);
if(target.parents('div.' + opts.blockMsgClass).length > 0)
return true;
return 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.trigger('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),10)||0;
}}
if(typeof define==='function'&&define.amd&&define.amd.jQuery){
define(['jquery'], setup);
}else{
setup(jQuery);
}})();