(function($) { 	$.tools = $.tools || {};$.tools.expose = {version: '1.0.4',  conf: {	maskId: null,loadSpeed: 'slow',closeSpeed: 'fast',closeOnClick: true,closeOnEsc: true,zIndex: 9998,opacity: 0.8,color: '#456',api: false}};function viewport() {if ($.browser.msie) {var d = $(document).height(), w = $(window).height();return [window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth, d - w < 20 ? w : d];} return [$(window).width(), $(document).height()];} 
function Expose(els, opts) { var self = this, mask = null, loaded = false, origIndex = 0;		function bind(name, fn) {$(self).bind(name, function(e, args) {if (fn && fn.call(this) === false && args) {args.proceed = false;	}	});	 return self;} $.each(opts, function(name, fn) {if ($.isFunction(fn)) { bind(name, fn); }});$(window).resize(function() {self.fit();}); $.extend(this, {getMask: function() {return mask;},getExposed: function() {return els;	},getConf: function() {return opts;	},isLoaded: function() {return loaded;},load: function() {if (loaded) { return self;	}origIndex = els.eq(0).css("zIndex");if (opts.maskId) { mask = $("#" + opts.maskId);}if (!mask || !mask.length) {var size = viewport();mask = $('<div/>').css({position:'absolute', top:0, left:0,width: size[0],height: size[1],display:'none',opacity: 0,zIndex:opts.zIndex});if (opts.maskId) { mask.attr("id", opts.maskId); }$("body").append(mask);var bg = mask.css("backgroundColor");if (!bg || bg == 'transparent' || bg == 'rgba(0, 0, 0, 0)') {mask.css("backgroundColor", opts.color);}if (opts.closeOnEsc) {$(document).bind("keydown.unexpose", function(evt) {if (evt.keyCode == 27) {self.close();}});}if (opts.closeOnClick) {mask.bind("click.unexpose", function()  {self.close();});}}var p = {proceed: true};$(self).trigger("onBeforeLoad", p);if (!p.proceed) { return self; }$.each(els, function() {var el = $(this);if (!/relative|absolute|fixed/i.test(el.css("position"))) {el.css("position", "relative");}});els.css({zIndex:Math.max(opts.zIndex + 1, origIndex == 'auto' ? 0 : origIndex)});var h = mask.height();if (!this.isLoaded()) {mask.css({opacity: 0, display: 'block'}).fadeTo(opts.loadSpeed, opts.opacity, function() {if (mask.height() != h) { mask.css("height", h); }$(self).trigger("onLoad");});}loaded = true;	return self;}, 
close: function() {if (!loaded) { return self; }var p = {proceed: true};$(self).trigger("onBeforeClose", p);if (p.proceed === false) { return self; }mask.fadeOut(opts.closeSpeed, function() {$(self).trigger("onClose");els.css({zIndex: $.browser.msie ? origIndex : null});});loaded = false;return self;},onBeforeLoad: function(fn) {return bind("onBeforeLoad", fn);},onLoad: function(fn) {return bind("onLoad", fn);},onBeforeClose: function(fn) {return bind("onBeforeClose", fn);},onClose: function(fn) {return bind("onClose", fn);},fit: function() {if (mask) {var size = viewport();mask.css({ width: size[0], height: size[1]});}}});}$.fn.expose = function(conf) {var el = this.eq(typeof conf == 'number' ? conf : 0).data("expose");if (el) { return el; }if (typeof conf == 'string') {conf = {color: conf};}var opts = $.extend({}, $.tools.expose.conf);$.extend(opts, conf);this.each(function() {el = new Expose($(this), opts);$(this).data("expose", el);});return opts.api ? el: this;};})(jQuery);
