/**
	PromoBox for jQuery
	Written by Daniel Fekete
	VOOV Ltd
*/
var promobox = (function($) {
	var backdrop = $("<div />");
	var heightFudge = 2.0
	var $promo = false;
	var events = {};
	
	backdrop.css({
		position: "absolute",
		"z-index": 8888,
		top: 0,
		left: 0,
		width: $(window).width(),
		height: $(window).height(),
		opacity: 0.7,
		backgroundColor: "black",
		padding: 0
	});
	
	var promobox = function(obj) {
		return new promobox.fn.init(obj);
	}
	
	// hide the promobox
	backdrop.click(function() {
		promobox.fn.hide();
	});
	
	promobox.fn = promobox.prototype;
	promobox.fn.init = function(obj) {
		$promo = $(obj);
		var x = $(window).width() / 2 - $promo.outerWidth() / 2;
		var y = $(window).height() / heightFudge - $promo.outerHeight() / 2;
		$promo.css({
			left: x + $(window).scrollLeft(),
			top: y + $(window).scrollTop(),
			"z-index": 9999,
			position: "absolute"
		});
		$promo.hide();
		backdrop.hide();
		$("body").append(backdrop);
		return this;
	}
	
	promobox.fn.show = function() {
		if(!$promo || !backdrop || 
		(events.onbeforeshow && !events.onbeforeshow.apply(promobox.fn))) 
			return;
		$promo.show();
		backdrop.show();
	}
	
	promobox.fn.hide = function() {
		if(!$promo || !backdrop || 
		(events.onbeforehide && !events.onbeforehide.apply(promobox.fn))) 
			return;
		$promo.hide();
		backdrop.hide();
	}
	
	promobox.fn.onbeforehide = function(fn) {
		events.onbeforehide = fn;
	}
	
	promobox.fn.onbeforeshow = function(fn) {
		events.onbeforeshow = fn;
	}
	
	promobox.fn.init.prototype = promobox.fn;
	
	
	return promobox;
})(jQuery);
