
	timer    = false;
	hider    = false;
	desc_box = false;

	function showDescription ()
	{
		if (timer) timer = clearTimeout (timer);
		timer = setTimeout ('describe (\'' + this.id + '\')', 500);
	}

	function describe (id)
	{
		obj = document.getElementById (id);
		desc_box.innerHTML = obj.getElementsByTagName ('div').item (0).innerHTML;

		desc_box.style.left = obj.offsetLeft + 'px';
		desc_box.style.top  = obj.offsetTop + 'px';
		desc_box.style.display = 'block';

		desc_box.onmouseover = function () { hider = clearTimeout (hider); describe (id); }
		desc_box.onmouseout  = function () { hideDescription (); }
	}

	function hideDescription ()
	{
		if (timer) timer = clearTimeout (timer);
		hider = setTimeout ('desc_box.style.display = \'none\';', 100);
	}

	function setupGallery ()
	{
		// Opera relies on CSS to show the items
		if (navigator.userAgent.indexOf ('Opera') == -1)
		{
			document.body.className = 'domEnabled';
		}

		desc_box = document.createElement ('div');
		desc_box.id = 'description';
		desc_box.className = 'item';
		desc_box.style.display = 'none';
		document.getElementById ('content').appendChild (desc_box);

		gallery_items = document.getElementsByTagName ('div');
		for (var i = 0; i < gallery_items.length; i++)
		{
			if (gallery_items[i].className.match (/\bgallery\b/))
			{
				gallery_items[i].onmouseover = showDescription;
				gallery_items[i].onmouseout  = hideDescription;
			}
		}
	}

	if (typeof window.attachEvent != 'undefined')
	{
		window.attachEvent ('onload', setupGallery);
	}
	else if (typeof window.addEventListener != 'undefined')
	{
		window.addEventListener ('load', setupGallery, false);
	}
	else if (typeof document.addEventListener != 'undefined')
	{
		document.addEventListener ('load', setupGallery, false);
	}

	/* Sleight for PNGs
  --------------------------------------------------------*/
  if (navigator.platform == 'Win32' && navigator.appName == 'Microsoft Internet Explorer' && navigator.appVersion.indexOf ('MSIE 7') == -1 && window.attachEvent)
  	window.attachEvent ('onload', alphaBackgrounds);

  function alphaBackgrounds ()
  {
  	var rslt = navigator.appVersion.match (/MSIE (\d+\.\d+)/, '');
  	var itsAllGood = (rslt != null && Number (rslt[1]) >= 5.5);
  	for (i = 0; i < document.all.length; i++)
  	{
  		var bg = document.all[i].currentStyle.backgroundImage;
  		var img = document.all[i].src;
  		if (itsAllGood)
  		{
  			if (bg && bg.match (/\.png/i) != null)
  			{
  				var mypng = bg.substring (5, bg.length-2);
  				document.all[i].style.zoom = '1.0';
  				document.all[i].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + mypng + "', sizingMethod='crop')";
  				document.all[i].style.backgroundImage = "url('/assets/images/x.gif')";
  			}
  			else if (img && img.match (/\.png/i) != null)
  			{
  				img = document.all[i];
					img.style.width = img.width + 'px';
					img.style.height = img.height + 'px';
					img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + img.src + "', sizingMethod='crop')";
					img.src = '/images/spacer.gif';
  			}
  		}
  	}
  }
