/*

OVERLAY
	/include/function.overlay.php
	/js/overlay.js
	/css/overlay.css
	
TESTED: IE6win, FF2win, OP9win

*/


var oSelectsToUnhide         = null; // IE6 fix: hide all <select>'s
var anim_overlay_fps         = 12;  // animatiesnelheid in frames per seconde
var anim_openoverlay_dure    = 0.5; // animatieduur in seconden
var anim_overlay_opacity_max = 0.9;
var anim_overlay_opacity_min = 0.25;


function openoverlay(url,quick)
{

	if (quick)
		animtimer_openoverlay('pageoverlay',1);
	else
		anim_openoverlay('pageoverlay');
	
	// IE6 fix: hide all <select>'s
	bNeedsIE6fix = 
		(navigator.userAgent.indexOf('IE 6')!=-1) ||
		(navigator.userAgent.indexOf('IE 5')!=-1) ||
		(navigator.userAgent.indexOf('IE 4')!=-1) ||
		(navigator.userAgent.indexOf('IE 3')!=-1) ||
		(navigator.userAgent.indexOf('IE 2')!=-1) ||
		(navigator.userAgent.indexOf('IE 1')!=-1) ;
	if (bNeedsIE6fix)
	{
		oSelects = document.getElementsByTagName('select');
		oSelectsToUnhide = new Array();
		for (var i = 0; i < oSelects.length; i++)
		{
			var oSelect = oSelects.item(i);
			if ( oSelect.style.visibility != 'hidden' )
			{
				oSelectsToUnhide.push(oSelect);
				oSelect.style.visibility = 'hidden';
			}
		}
	}
	
	if (window.innerHeight && window.scrollMaxY) {// Firefox
		yWithScroll   = window.innerHeight + window.scrollMaxY;
		xWithScroll   = window.innerWidth + window.scrollMaxX;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		yWithScroll = document.body.scrollHeight;
		xWithScroll = document.body.scrollWidth;
	} else { // works in Explorer 6 Strict, Mozilla (not FF) and Safari
		yWithScroll = document.body.offsetHeight;
		xWithScroll = document.body.offsetWidth;
  	}
	
	if (window.innerHeight)
	{
		yScrollHeight = window.innerHeight;
		xScrollWidth  = window.innerWidth;
		yScrollTop    = document.documentElement.scrollTop;
		xScrollLeft   = document.documentElement.scrollLeft;
	}
	else if (document.documentElement)
	{
		yScrollHeight = document.documentElement.clientHeight;
		xScrollWidth  = document.documentElement.clientWidth;
		yScrollTop    = document.documentElement.scrollTop;
		xScrollLeft   = document.documentElement.scrollLeft;
	}
	else
	{
		yScrollHeight = document.body.clientHeight;
		xScrollWidth  = document.body.clientWidth;
		yScrollTop    = document.body.scrollTop;
		xScrollLeft   = document.body.scrollLeft;
	}
		
	var overlay = document.getElementById('pageoverlay');	
	var content = document.getElementById('overlaycontent');	
	var iframe = document.getElementById('overlayiframe');	
	
	iframe.src = url;		
	
	overlay.style.display = 'block';
	overlay.style.width = xWithScroll + 'px';
	overlay.style.height = yWithScroll + 'px';	
	
	content.style.left = '-5000px'; // Fix for FF: no flickering please.
	content.style.display = 'block';	
	// OVERRULE IVM MATT Z'N VERZOEK OM UIT TE LIJNEN OP RODE NAV BLOK!
	iLeft = (xScrollLeft+(xScrollWidth-content.offsetWidth)/2);	if (iLeft<0) iLeft=0;
	//iTop  = (yScrollTop+(yScrollHeight-content.offsetHeight)/2); if (iTop<0) iTop=0;
	//iLeft = 200;
	iTop  = 143;
	content.style.left = iLeft + 'px';
	content.style.top  = iTop + 'px';
			
}

function closeoverlay()
{
	var overlay = document.getElementById('pageoverlay');	
	overlay.style.display = 'none';	
	var content = document.getElementById('overlaycontent');	
	content.style.display = 'none';		
	
	// IE6 fix: unhide hidden <select>'s	
	if ( null != oSelectsToUnhide )
		for (var i = 0; i < oSelectsToUnhide.length; i++)
		{
			var oSelect = oSelects.item(i);
			oSelect.style.visibility = 'visible';
		}

}



function anim_openoverlay(element_id)
{
	animtimer_openoverlay(element_id,0);
}

function anim_closeoverlay(element_id)
{
	animtimer_closeoverlay(element_id,0);
}

function animtimer_openoverlay(element_id,percentage)
{
	var pct = Math.max(0,Math.min(1,percentage));
	
	var elem = document.getElementById(element_id);		
	if (elem.currentTimer)
	{
		clearTimeout(elem.currentTimer);
		elem.currentTimer = 0;
	}
	
	if (percentage>=1)
	{
	 	elem.style.opacity = anim_overlay_opacity_max;
		elem.style.filter = 'alpha(opacity:'+100*anim_overlay_opacity_max+')';				
	}
	else
	{
		opa = anim_overlay_opacity_min+pct*(anim_overlay_opacity_max-anim_overlay_opacity_min);
	 	elem.style.opacity = opa;
		elem.style.filter = 'alpha(opacity:'+100*opa+')';		
		percentage += (1/(anim_overlay_fps*anim_openoverlay_dure));
		var func = 'animtimer_openoverlay(\'' + element_id + '\', ' + percentage + ' )';		
		elem.currentTimer = setTimeout(func,1000/anim_overlay_fps);
	}
	
}


