// Ajax
var XHR_INFO = GetNewXHR();

var OVERDIV=new Array();
var OVERTD=new Array();
var OBJ=null;

// APPEAR / DISAPPEAR
var ID=0;
var SPEED_OVER=1000; // ms
var SPEED_APPEAR=20; // ms
var STEP=5; // from 0% to 100%
var INFO_OVER=0;
var INFO_OUT=new Array();


//Example: preloadImages('file.gif', 'http://www.x.com/y.gif');
function preloadImages()
{
  if(document.images)
  {
    if(!document.imageArray) document.imageArray = new Array();

    var i,j = document.imageArray.length, args = preloadImages.arguments; 

    for(i=0; i<args.length; i++)
    {
      if (args[i].indexOf("#")!=0)
      {
        document.imageArray[j] = new Image;
        document.imageArray[j++].src = args[i];
      }
    }
  }
}

// Called by ShowInfo (Xml Http Request)
function FillInfo ()
{
	var div = document.getElementById("div_info");
   if (!div)
   {
		alert("div Info not found !");
		return;
   }

   // Hide the div during the modifications
   div.style.visibility="hidden";
   
//alert("FillInfo " + XHR.readyState);
	// Not finished
	if (XHR_INFO.readyState != 4)
	{
		return;
	}
	
	// Fill the div
	div.innerHTML = XHR_INFO.responseText;
	
	// Position of the div
	var td = document.getElementById(ID);
   var banner = document.getElementById("banner");

	// TODO : when it's the last line, show the info OVER the photo and not below -> no scroll
/*  alert(document.body.clientHeight + " " + td.offsetTop);
   if (td.offsetTop+125 > document.body.clientHeight)
   {
        div.style.top = td.offsetTop-72;
   }
   else
   {
        div.style.top = td.offsetTop+125;
   }*/
   div.style.top = td.offsetTop /*+ td.offsetHeight*/ + banner.offsetTop + banner.offsetHeight - 3; // offset because of the round corners

   deltaw = 10;
   if (td.offsetLeft+(deltaw*2)+div.offsetWidth > document.body.clientWidth)
   {
      div.style.left = document.body.clientWidth-div.offsetWidth-(deltaw*2);
   }
   else
   {
      div.style.left = td.offsetLeft+deltaw;
   }
//   div.style.left = div.style.left - 5; // offset because of the round corners

	// Show the div
   div.style.visibility="visible";
}

function ShowInfo(id)
{
	// Fill the div
	ID = id;
	var url = "info.php?id=" + id;
	XHR_INFO.abort();
	XHR_INFO.onreadystatechange = FillInfo;
	XHR_INFO.open("GET", url, true);
	XHR_INFO.send(null);

/*
	if (INFO_OVER != 0)
	{
		INFO_OUT[INFO_OVER]=true;
		Disappear();	
	}
	INFO_OVER = id;
   var td = document.getElementById(id);
   if (!td)
   {
		alert("td " + id + " not found !");
		return;
   }
   //alert(td.id);

   // Show info
   //div.style.visibility="visible";
   //alert(div.id);
   INFO_OVER=id;
   Appear();
   //alert (div.style.visibility);*/
}

function HideInfo(id)
{
   var div = document.getElementById("div_info");
   div.innerHTML = "";
   div.style.visibility="hidden";

  //alert(INFO_OVER);
//   var td = document.getElementById(INFO_OVER);
//   var td = OBJ;
//	INFO_OUT[id]=true;
//	Disappear();

/*
   // Hide info
   var div = document.getElementById("Info"+td.id);
   //div.style.visibility="hidden";
   Disappear(div.id);
*/
   //alert (div.style.visibility);
}

/*
function Appear() // This function CANNOT have any argument as it is called by setTimeout
{
	var theend=false;

	// The div mustn't appear
//alert(INFO_OVER);
	if (INFO_OVER == 0)
	{
		//alert("out " + INFO_OVER);
		return;
	}

	// The div must appear
	var obj = document.getElementById("info");
	obj.style.visibility = "visible";

	// On IE we don't do the opacity animation because it's too slow 
	// NB : if we don't do that it still works (but it's slow)
	if (BrowserDetect.browser=="Explorer")
	{
		obj.style.filter = "alpha(opacity=100)";
		return;
	}

	// Opacity for Firefox or IE
	var opacity = 0;
	if (obj.style.opacity)
	{
		opacity = Math.round(obj.style.opacity * 100);
	}
	//alert(opacity);
	
	if (opacity < 100)
	{
		opacity += STEP;
		obj.style.opacity = (opacity * 1.0) / 100; // Firefox
		obj.style.filter = "alpha(opacity="+opacity+")"; // IE
//alert(obj.style.filter);
//window.status = "Appear id:" + INFO_OVER + " opacity:" + obj.style.opacity;
	}
	else
	{
		theend=true;
	}

	// Timeout
	if (!theend)
	{
//		setTimeout("Appear("+id+")", SPEED_APPEAR);
		setTimeout("Appear()", SPEED_APPEAR);
	}
}

function Disappear() // This function CANNOT have any argument as it is called by setTimeout
{
	var oneleft=false;

	for (id=1; id<250; id++)
	{
		if (!INFO_OUT[id])
			continue;

		var obj = document.getElementById("Info"+id);
		if (!obj)
		{
			INFO_OUT[id]=null;
			continue;
		}

		// On IE we don't do the opacity animation because it's too slow 
		// NB : if we don't do that it still works (but it's slow)
		if (BrowserDetect.browser=="Explorer")
		{
			obj.style.filter = "alpha(opacity=0)";
			obj.style.visibility = "hidden";
			continue;
		}

		var opacity = 0;
		if (obj.style.opacity)
		{
			opacity = Math.round(obj.style.opacity * 100);
		}

		if (opacity == 0)
			continue;

		opacity -= STEP;
		obj.style.opacity = (opacity * 1.0) / 100; // Firefox
		obj.style.filter = "alpha(opacity="+opacity+")"; // IE
		window.status = "Disappear id:" + id + " opacity:" + obj.style.opacity;

		if (opacity > 0.0)
		{
			oneleft=true;
		}
		else
		{
			INFO_OUT[id]=null;
			obj.style.visibility = "hidden";
		}
	}

	// Timeout
	if (oneleft)
	{
		setTimeout("Disappear()", SPEED_APPEAR);
	}
	Debug(INFO_OUT);
}

function Debug(string)
{
	//var obj = document.getElementById("debug");
	//obj.innerHTML=string;
}
*/
