// this file includes the mightybox
// author:    Dominik Scholz, schlotzz@go4u.de
// changed:   2007-04-30

var mightybox_opacity = 50;
var mightybox_src = '';

function showpic(obj)
{

	if (!obj)
		return true;

	mightybox_src = obj.href;
	mightybox_content('<img src="../img/indicator.gif" border="0" alt="123" width="31" height="31">');
	mightybox_preload_content('<img id="preload_image" onLoad="showpic_loaded();" src="'+mightybox_src+'" border="0">');
	mightybox_show();

	return false;
}

function showpic_loaded()
{
	// automatic resize, if image is too large for screen
	var de = document.documentElement;
	var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
	var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;

	h = h - 100;
	w = w - 150;

	var height_img = document.getElementById('preload_image').offsetHeight;
	var width_img  = document.getElementById('preload_image').offsetWidth;
	var faktor = height_img / width_img;
	if (height_img > h)
	{
		height_img = h;
		width_img = height_img / faktor;
	}
	if (width_img > w)
	{
		width_img = w;
		height_img = width_img * faktor;
	}

	document.getElementById('preload_image').style.height = height_img + 'px';
	document.getElementById('preload_image').style.width  = width_img  + 'px';

	window.setTimeout('mightybox_expand();', 100);
}

function mightybox_expand()
{
	mightybox_content('zooming...');
	var de = document.documentElement;
	var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
	var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
	var s = self.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
	var height_img = document.getElementById('preload_image').offsetHeight;
	var width_img  = document.getElementById('preload_image').offsetWidth;
	var height_div = document.getElementById('mightybox_content').style.height.replace(/px,*\)*/g,"") - 0;
	var width_div  = document.getElementById('mightybox_content').style.width.replace(/px,*\)*/g,"") - 0;
	var delta_y = Math.ceil((height_img - height_div) / 2);
	var delta_x = Math.ceil((width_img  - width_div)  / 2);

	if ((delta_x < 10) && (delta_y < 10))
	{
		delta_x = width_img  - width_div;
		delta_y = height_img - height_div;
	}

	height_div = height_div + delta_y;
	width_div  = width_div  + delta_x;
	document.getElementById('mightybox_content').style.height = height_div + 'px';
	document.getElementById('mightybox_content').style.width = width_div + 'px';
	document.getElementById('mightybox_content').style.left = ((w-width_div)/2-20) + 'px';
	document.getElementById('mightybox_content').style.top =  ((h-height_div)/2 + s - 20) + 'px';

	if ((height_img == height_div) && (width_img == width_div))
	{
		showpic_display();
	}
    else
	{
		window.setTimeout('mightybox_expand();', 50);
	}

}

function showpic_display()
{
	var h = document.getElementById('preload_image').offsetHeight;
	var w = document.getElementById('preload_image').offsetWidth;
	mightybox_content('<img onClick="javascript: mightybox_close();" width="'+w+'" height="'+h+'" src="'+mightybox_src+'" border="0">');
}

function mightybox_start()
{

	var style = 'filter: alpha(opacity='+mightybox_opacity+'); -moz-opacity: .'+mightybox_opacity+'; opacity: .'+mightybox_opacity+';';

	var html = '<div id="mightybox" style="'+style+'" onClick="mightybox_close();">';
		html += '</div>';
		html += '<div id="mightybox_content" style="position: absolute;" onClick="mightybox_close();">';
		html += '</div>';
		html += '<div id="mightybox_preload"></div>';

	var body = document.getElementsByTagName('body')[0];
	body.innerHTML = body.innerHTML + html;

}

function mightybox_close()
{
	try
	{
		var mightybox_content = document.getElementById('mightybox_content');

		if (mightybox_content.style.display == 'none')
			return false;
	}
	catch(e)
	{
		return false;
	}

	var de = document.documentElement;
	var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
	var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
	var s = self.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;

	mightybox_content.style.display = 'none';
	document.getElementById('mightybox').style.display = 'none';

	mightybox_content.style.height = '31px';
	mightybox_content.style.width = '31px';
	mightybox_content.style.left = ((w-31)/2-20) + 'px';
	mightybox_content.style.top = ((h-31)/2 + s - 20) + 'px';

	return false;
}

function mightybox_show()
{
	var mightybox = document.getElementById('mightybox');
	var mightybox_content = document.getElementById('mightybox_content');
	var de = document.documentElement;
	var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
	var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
	var s = self.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;

	//mightybox.style.width = "100%";
	mightybox.style.height = h+'px';
	mightybox.style.top = s+'px';

	set_opacity(document.getElementById('mightybox').style, mightybox_opacity);
	document.getElementById('mightybox').style.display = 'block';

	document.getElementById('mightybox_content').style.display = 'block';
	mightybox_content.style.left = ((w-31)/2-20) + 'px';
	mightybox_content.style.top = ((h-31)/2 + s - 20) + 'px';

}

function mightybox_content(c)
{
	var mightybox = document.getElementById('mightybox_content');
	mightybox.innerHTML = c;
}

function mightybox_preload_content(c)
{
	var mightybox = document.getElementById('mightybox_preload');
	mightybox.innerHTML = c;
}

function mightybox_html_head(title)
{
	var htmlcode = '';
		htmlcode += '<div id="mightybox_head" onMouseDown="dragndrop(this.parentNode, false);">';
		htmlcode += '<div id="mightybox_head_title">'+title;
		htmlcode += '</div>';
		htmlcode += '<div id="mightybox_head_title_shadow">'+title+'</div>';
		htmlcode += '</div>';

	return htmlcode;
}

function set_opacity(obj, percentage)
{
	// round, to prevent css errors with strange numbers
	n_percent = Math.ceil(percentage);
	// "filter"-Style setzen (IE)
    obj.filter="Alpha(opacity="+n_percent+")";
    // "-moz-opacity"-Style setzen (fuer Mozilla)
    obj.MozOpacity=""+n_percent/100;
    // "-khtml-opacity"-Style setzen (fuer Konqueror/Safari)
    obj.KTHMLOpacity=""+n_percent/100;
    // "opacity"-Style setzen (fuer CSS-3-Browser)
    obj.opacity=""+n_percent/100;
}

function clear_opacity(obj)
{
	// "filter"-Style setzen (IE)
    obj.filter="";
    // "-moz-opacity"-Style setzen (fuer Mozilla)
    obj.MozOpacity="";
    // "-khtml-opacity"-Style setzen (fuer Konqueror/Safari)
    obj.KTHMLOpacity="";
    // "opacity"-Style setzen (fuer CSS-3-Browser)
    obj.opacity="";
}

window.onload = function() {
	mightybox_start();
}
window.onscroll = function() {
	mightybox_close();
}
window.onresize = function() {
	mightybox_close();
}
