var gkcbox_fade_interval = null;
var gkcbox_op = 0;

function gkcbox_init()
{
	var tab_a = $$('#body a.gkcbox');

	for (i=0;i<tab_a.length;i++)
	{
		Event.observe(tab_a[i], 'click',function(event){affiche_gkcbox(this); Event.stop(event);});
	}

	var tab_div = $$('div.gkcbox');

	for (i=0;i<tab_div.length;i++)
	{
		Event.observe(tab_div[i], 'click',function(event){affiche_gkcbox(this); Event.stop(event);});
	}
}

function affiche_gkcbox(obj)
{
	var type = obj.getAttribute("rel").substring(0, 8);
	var dimensions = document.viewport.getDimensions();
	var demiwviewport = dimensions.width / 2;
	var demihviewport = dimensions.height / 2;

	var div_gkcbox_opac = document.createElement("div");
	div_gkcbox_opac.id = 'div_gkcbox_opac';
	document.body.appendChild(div_gkcbox_opac);
	$('div_gkcbox_opac').setOpacity(0.3);

	var rel = obj.getAttribute("rel").substring(9, obj.getAttribute("rel").length-1);
	var href = obj.getAttribute("href");
	var titre = obj.getAttribute("title");
	var sp=rel.split(/, ?/);
	var diag_w = parseInt(sp[0]);
	var diag_h = parseInt(sp[1]);
	var header_h = 25;
	var ep_cadre = 2;

	var div_gkcbox_cadre = document.createElement("div");
	div_gkcbox_cadre.id = 'div_gkcbox_cadre';
	div_gkcbox_cadre.style.width = (diag_w+(ep_cadre*2))+'px';
	div_gkcbox_cadre.style.height = (diag_h+header_h+(ep_cadre*2))+'px';
	div_gkcbox_cadre.style.left = ((demiwviewport-(diag_w/2))-ep_cadre)+'px';
	div_gkcbox_cadre.style.top = ((demihviewport-((diag_h+header_h)/2))-ep_cadre)+'px';
	document.body.appendChild(div_gkcbox_cadre);

	var div_gkcbox_diag = document.createElement("div");
	div_gkcbox_diag.id = 'div_gkcbox_diag';
	div_gkcbox_diag.style.width = diag_w+'px';
	div_gkcbox_diag.style.height = (diag_h+header_h)+'px';
	div_gkcbox_diag.style.left = ep_cadre+'px';
	div_gkcbox_diag.style.top = ep_cadre+'px';
	div_gkcbox_cadre.appendChild(div_gkcbox_diag);

	var div_gkcbox_header = document.createElement("div");
	div_gkcbox_header.id = 'div_gkcbox_header';
	div_gkcbox_header.style.width = diag_w+'px';
	div_gkcbox_header.style.height = header_h+'px';
	div_gkcbox_diag.appendChild(div_gkcbox_header);

	var div_gkcbox_titre = document.createElement("div");
	div_gkcbox_titre.id = 'div_gkcbox_titre';
	div_gkcbox_titre.style.width = (diag_w-20)+'px';
	div_gkcbox_titre.style.height = header_h+'px';
	div_gkcbox_header.appendChild(div_gkcbox_titre);

	var text_gkcbox_titre = document.createTextNode(titre);
	div_gkcbox_titre.appendChild(text_gkcbox_titre);

	var div_gkcbox_close = document.createElement("div");
	div_gkcbox_close.id = 'div_gkcbox_close';
	div_gkcbox_close.style.height = header_h+'px';
	div_gkcbox_close.style.left = (diag_w-20)+'px';
	div_gkcbox_header.appendChild(div_gkcbox_close);

	var tagC = document.createElement('img');
	tagC.src = "http://www.the-frog-concept.com/gkcbox/images/gkcbox_close.gif";
	div_gkcbox_close.appendChild(tagC);

	var div_gkcbox_content = document.createElement("div");
	div_gkcbox_content.id = 'div_gkcbox_content';
	div_gkcbox_content.style.width = diag_w+'px';
	div_gkcbox_content.style.height = diag_h+'px';
	div_gkcbox_content.style.top = header_h+'px';
	div_gkcbox_diag.appendChild(div_gkcbox_content);

	Event.observe(tagC, 'click', close_gkcbox, false);

	switch (type)
	{
		case "gkcbox_i":
			gkcbox_image = new Image();
			gkcbox_image.src = href;

			if (gkcbox_image.complete)
			{
				var tagI = document.createElement('img');
				tagI.style.position = 'absolute';
				div_gkcbox_content.appendChild(tagI);
				if ((gkcbox_image.width != diag_w) || (gkcbox_image.height != diag_h))
				{
					if (gkcbox_image.width >= gkcbox_image.height)
					{
						rapport = diag_w / gkcbox_image.width;

						tagI.setAttribute('width', diag_w);

						new_h = gkcbox_image.height*rapport;
						tagI.setAttribute('height', new_h);
						tagI.style.top = ((diag_h-new_h)/2)+'px';
					}else if(gkcbox_image.width < gkcbox_image.height)
					{
						rapport = diag_h / gkcbox_image.height;

						new_w = gkcbox_image.width*rapport;
						tagI.setAttribute('width', new_w);
						tagI.setAttribute('height', diag_h);
						tagI.style.left = ((diag_w-new_w)/2)+'px';
					}
				}
				tagI.src = href;
			}else
			{
				gkcbox_image.onload = function(){
					var tagI = document.createElement('img');
					tagI.style.position = 'absolute';
					div_gkcbox_content.appendChild(tagI);
					if ((gkcbox_image.width != diag_w) || (gkcbox_image.height != diag_h))
					{
						if (gkcbox_image.width >= gkcbox_image.height)
						{
							rapport = diag_w / gkcbox_image.width;

							tagI.setAttribute('width', diag_w);

							new_h = gkcbox_image.height*rapport;
							tagI.setAttribute('height', new_h);
							tagI.style.top = ((diag_h-new_h)/2)+'px';
						}else if(gkcbox_image.width < gkcbox_image.height)
						{
							rapport = diag_h / gkcbox_image.height;

							new_w = gkcbox_image.width*rapport;
							tagI.setAttribute('width', new_w);
							tagI.setAttribute('height', diag_h);
							tagI.style.left = ((diag_w-new_w)/2)+'px';
						}
					}
					tagI.src = href;
				}
			}
		break;

		case "gkcbox_p":
			var gkcbox_iframe = document.createElement("iframe");
			gkcbox_iframe.id = 'gkcbox_iframe';
			gkcbox_iframe.setAttribute("src", href);
			gkcbox_iframe.style.width = diag_w+'px';
			gkcbox_iframe.style.height = diag_h+'px';
			div_gkcbox_content.appendChild(gkcbox_iframe);
		break;

		case "gkcbox_o":
			var gkcbox_object = document.createElement("object");
			gkcbox_object.id = 'gkcbox_object';
			gkcbox_object.data = href;
			gkcbox_object.type = 'text/html';
			gkcbox_object.style.width = diag_w+'px';
			gkcbox_object.style.height = diag_h+'px';
			div_gkcbox_content.appendChild(gkcbox_object);
		break;
	}

	gkcbox_op = 0;
	gkcbox_fade_interval = setInterval(fade_div_opac, 10);
}

function close_gkcbox()
{
	document.body.removeChild($('div_gkcbox_opac'));
	document.body.removeChild($('div_gkcbox_cadre'));
}

function close_gkcboxr(nb_comments, news_id)
{
	document.body.removeChild($('div_gkcbox_opac'));
	document.body.removeChild($('div_gkcbox_cadre'));
	if (Prototype.Browser.IE)
	{
		$('nbc'+news_id).innerText = ' ('+nb_comments+') | ';
	}else
	{
		$('nbc'+news_id).textContent = ' ('+nb_comments+') | ';
	}
}

function fade_div_opac()
{
	if ($('div_gkcbox_opac'))
	{
		while(gkcbox_op <= 0.6)
		{
			$('div_gkcbox_opac').setOpacity(gkcbox_op);
			gkcbox_op += 0.01;
			return;
		}
	}

	clearInterval(gkcbox_fade_interval);
}

Event.observe(window, 'load', gkcbox_init, false);
