(function($) {
	$.fn.lightbox = function (settings) {	
		var settings = $.extend({
			label: "",
			cancel: true,
			submit: true,
			onSubmit: function() {
				return false;
			},
			onCancel: function() {
				return false;
			}
		}, settings);
		
		var screen = $(this);
		
		$('embed, object, select').hide();
		
		var overlay = $(document.createElement("div"))
		.attr("id", "lightbox-overlay")
		.css({
			backgroundColor:	"#000",
			opacity:			0.6,
			position:			"absolute",
			zIndex:		9
		})
		.appendTo($(document.body))
		.click(close)
		.show();
		
		$(this).css({
			height:		"auto",
			top:		$(document).scrollTop() + ($(overlay).height()/4),
			left:		$(document).scrollLeft() + ($(overlay).width()/4),
			position:	"absolute",
			zIndex:		99
		})
		.show();
		
		var oldHeight = $(screen).height();
		
		setPosition();
		
		// if tinyMCE is loaded it needs time
		//setTimeout(function() {
		//	setPosition();
		//	$("label input").eq(0).focus();
		//}, 100);
		
		$(window)
		.scroll(setPosition)
		.resize(setPosition)
		
		$(document).keydown(function(ev) {
			if(ev.keyCode == 27) {
				if(settings.cancel) {
					close();
				}
			}
		});
		
		function setPosition() {
			var oldHeight = $(screen).height();
			
			$(overlay)
				.width($(window).width())
				.height($(window).height())
			
			$(overlay).css({
				top:	$(document).scrollTop(),
				left:	$(document).scrollLeft()
			});
			
			$(screen).css({
				top : $(document).scrollTop() + ($(overlay).height()/2) - ($(screen).height()/2),
				left:	$(document).scrollLeft() + ($(overlay).width()/2) - ($(screen).width()/2)
			})
		}
		
		function close() {
			$(overlay).remove();
			screen.hide();
			if(settings.onClose) settings.onClose();
		}
		
		$.fn.lightboxPos = function() {			
			overlay = $('#lightbox-overlay');
			var screen = $(this);
			setPosition();
		}
	}
})(jQuery)
