(function($){

	$.flexOverlay = function(innerContent,callback) {
		var $content;
		
		function build() {
			if($.browser.msie && $.browser.version < 7) {
				$(document.body).append('<iframe class="overlayWrapper"></iframe>');
			}
			$(document.body).append('<div id="overlayWrapper"><div class="overlayMask"><div class="overlayWindow"><div class="contentWrapper"><div class="contentWrapperHead"><div class="contentWrapperHeadInner"><a href="#" class="close"><span>Close</span></a></div></div><div class="contentWrapperFoot"><div class="contentWrapperFootInner"></div></div></div></div></div></div>');
			
			$('.overlayMask, #overlayWrapper').css({height:$(document.body).height(),width:$(window).width()});
			
			$content = $('.contentWrapperHeadInner').bind('overlay.close',function(){close(true);});
			$('.contentWrapperHeadInner a.close').click(function(e){e.preventDefault();close();return false;});
			$('.contentWrapperHeadInner').click(function(e){e.stopPropagation();})
			.append(innerContent);
			$('.overlayMask').click(function(e){close();return false;});
			var top = $(window).scrollTop() + 170;
			$('.overlayWindow').css({
				top:top+'px',
				left: ($(window).width()/2)-(innerContent.outerWidth()/2),
				width: innerContent.outerWidth() + (($('.contentWrapperHeadInner').outerWidth() - $('.contentWrapperHeadInner').width())*2) 
			});
			$('body').addClass('extOverlay'); 
			return $content;
		}
		var overlay = build();
		
		function close(supress) {
			if(!supress) {overlay.trigger('overlay.closed');}
			$('#overlayWrapper, .overlayWindow').empty().remove();
			$('body').removeClass('extOverlay');
		}
		if($.isFunction(callback)) {
			callback.apply(overlay);
		}
		return overlay;
	}
	
})(jQuery);