/*
  Lightbox with fading effect 
  (c) 2008-2009 xul.fr
  GPL 2.0 license
*/  


// height of current view for all browsers but IE

function viewHeight() 
{
    if(window.innerHeight)return(window.innerHeight);
    if(document.documentElement && document.documentElement.clientHeight) 
         return(document.documentElement.clientHeight);
    if(document.body) return(document.body.clientHeight); 
    return 50;
}

function gradient(id, level)
{
	var box = document.getElementById(id);
	box.style.opacity = level;
	box.style.MozOpacity = level;
	box.style.KhtmlOpacity = level;
	box.style.filter = "alpha(opacity=" + level * 100 + ")";
	box.style.display="block";
	return;
}


function fadein(id) 
{
	var level = 0;
	while(level <= 1)
	{
		setTimeout( "gradient('" + id + "'," + level + ")", (level* 1000) + 10);
		level += 0.01;
	}
}


// Open the lightbox

function openbox(url, fadin)
{
	ScreenSize = new Array(2);
	ScreenSize = f_getScreenSize();
  var box = document.getElementById('box');
  document.getElementById('filter').style.display='block';

  var title = document.getElementById('boxtitle');
  title.innerHTML = url;

  if (arguments.length == 3)
  {
 		title.innerHTML = arguments[2];
	}

  else if (arguments.length > 3)
	{
		title.innerHTML = arguments[2];
		box.style.width = arguments[3];
		box.style.height = arguments[4];

		var x=Math.round(ScreenSize['width']/2);
   	var y=Math.round(parseInt(box.style.width)/2);
   	var z=x-y;
   	z = z < 0 ? 0 : z;
   	box.style.left=z+"px";
	}
	else
	{
     title.innerHTML = url;
	}

  var content = document.getElementById('boxcontent');
  content.style.padding="0";

  content.innerHTML = "<img src=" + url + " />";

  if(fadin)
  {
	 gradient("box", 0);
  }
  else
  { 	
    box.style.display='block';
  }  
  
  if(navigator.appName.substring(0, 3) == "Mic")  // for IE
  {
		y = parseInt((ScreenSize['height'] - box.offsetHeight)/2);
    box.style.top = y + "px";
		y = y < 0 ? 0 : y;
    filter.style.top = document.documentElement.scrollTop + document.body.scrollTop;
  }
  else
  {
    var top = parseInt((ScreenSize['height'] - box.offsetHeight)/2);
    box.style.top = top + 'px';
    box.style.position='fixed'; // fixed does not work on IE
    filter.style.position='fixed';
  }

  if(fadin)
  {
	 fadein("box");  
  }

}	


function openboxfront()
{
	ScreenSize = new Array(2);
	ScreenSize = f_getScreenSize();
  var box = document.getElementById('box');
  document.getElementById('filter').style.display='block';

	var fadin = arguments[0];

	if (arguments.length > 2)
	{

		box.style.width = arguments[1];
		box.style.height = arguments[2];

		var x=Math.round(ScreenSize['width']/2);
   	var y=Math.round(parseInt(box.style.width)/2);
   	var z=x-y;
   	z = z < 0 ? 0 : z;
   	box.style.left=z+"px";
	}
  if(fadin)
  {
	 gradient("box", 0);
  }
  else
  {
    box.style.display='block';
  }

  if(navigator.appName.substring(0, 3) == "Mic")  // for IE
  {
		y = parseInt((ScreenSize['height'] - box.offsetHeight)/2);
    box.style.top = y + "px";
		y = y < 0 ? 0 : y;
    filter.style.top = document.documentElement.scrollTop + document.body.scrollTop;
  }
  else
  {
    var top = parseInt((ScreenSize['height'] - box.offsetHeight)/2);
    box.style.top = top + 'px';
    box.style.position='fixed'; // fixed does not work on IE
    filter.style.position='fixed';
  }
  if(fadin)
  {
	 fadein("box");
  }
}

// Close the lightbox

function closebox()
{
   document.getElementById('box').style.display='none';
   document.getElementById('filter').style.display='none';
}




//----------------------------------------------------------------------------------------------------------

function f_getScreenSize()
{
  ScreenSize = new Array(2);
  
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    ScreenSize['width'] = window.innerWidth;
    ScreenSize['height'] = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    ScreenSize['width'] = document.documentElement.clientWidth;
    ScreenSize['height'] = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    ScreenSize['width'] = document.body.clientWidth;
    ScreenSize['height'] = document.body.clientHeight;
  }
	return ScreenSize;
}

//----------------------------------------------------------------------------------------------------------












// Loading images asynchronously with no delay

function preloading(i, url)
{
	var xhr=createXHR();   
	xhr.onreadystatechange=function()
	{ 
		if(xhr.readyState == 4)
		{
			i.src = url;
		} 
	}; 

	xhr.open("GET", url , true);
	xhr.send(null); 
} 


function loadAll()
{
	preloading(new Image(), "images/acores.jpg");
	preloading(new Image(), "images/prison.jpg");
	preloading(new Image(), "images/shark.jpg");
}


window.onload=loadAll;

