// JavaScript Document
var LightBox = { };

/* Static Params
*****************************************/
LightBox.id = 0;
LightBox.name = "lightbox_div";
LightBox.list = new Array();

/* Static Methods
*****************************************/
LightBox.show = function (content, viewParams, container, lockCenter, timeIn, timeOut, bgColor, bgAlpha)
{
	/* Dados
	**************************************/
	LightBox.id++;
	
	var data = {
		id: LightBox.id,
		content: content,
		viewParams: viewParams == null ? "" : viewParams,
		lockCenter: lockCenter == null ? true : lockCenter,
		container: container == null ? $("body") : container,
		timeIn: timeIn == null ? 500 : timeIn,
		timeOut: timeOut == null ? 500 : timeOut,
		bgColor: bgColor == null ? "#000000" : bgColor,
		bgAlpha: bgAlpha == null ? 0.7 : bgAlpha
	}
	
	LightBox.list.push(data);	
	
	/* HTML & CSS
	**************************************/
	$(data.container).append("<div id='" + LightBox.name + data.id + "'></div>");
	$("#" + LightBox.name + data.id).append("<div class='"+LightBox.name+"_content'></div>");
	$("#" + LightBox.name + data.id).append("<div class='"+LightBox.name+"_bg' rel='"+ data.id +"'></div>");
	
	var lightboxObj = $("#" + LightBox.name + data.id);
	var contentObj = $("." + LightBox.name + "_content", lightboxObj);
	var bgObj = $("." + LightBox.name + "_bg", lightboxObj);
	
	// Set CSS
	lightboxObj.css({
		width: "100%",
		height: "100%",
		position: "fixed",
		top: "0px",
		left: "0px",
		zIndex: "5000",
		display: "none"
	});
	
	contentObj.css({
		position: "absolute",
		zIndex: 1
	});
	
	bgObj.css({
		width: "100%",
		height: "100%",	 
		backgroundColor: data.bgColor
	});
	bgObj.fadeTo(0, data.bgAlpha);
	
	/* Complement Data
	**************************************/
	data.lightboxObj = lightboxObj;
	
	/* AnimateIn
	**************************************/
	lightboxObj.fadeIn(data.timeIn, function ()
	{
		/* Load View *******/
		contentObj.load(data.content, data.viewParams, function ()
		{
			if(data.lockCenter)
			{
				contentObj.css({
					left: "50%",
					top: "50%",
					marginTop: -(contentObj.height() / 2),
					marginLeft: -(contentObj.width() / 2)
				})	
			}
		});
	});	
	
	
	/* Events
	**************************************/
	bgObj.click(function ()
	{
		LightBox.kill(parseInt($(this).attr("rel")));
	});
	
	return lightboxObj;
};

LightBox.kill = function (id)
{
	for(var i = 0; i < LightBox.list.length; i++)
	{
		if(LightBox.list[i].id == id) 
		{
			LightBox.list[i].lightboxObj.fadeOut(LightBox.list[i].timeOut, LightBox.list[i].lightboxObj.remove);
			LightBox.list.splice(i, 1);
			break;
		}
	}
}


