var transinprogress = false;
var startslide = 1;

function blendImage(direction)
{ 
  if (transinprogress != true)
  {
		var duration = 250;

		switch (direction)
		{
		  case 'forward':
		  {
	      var imagenumber = getNextImageNumber();
	      break;
		  }
		  case 'back':
		  {
	      var imagenumber = getPrevImageNumber();
	      break;
		  }
		  default:
		  {
		  	var imagenumber = direction;
		  }
		}

    if ((imagenumber !== false) && (imagenumber != startslide))
    {
      transinprogress = true;

      var speed = Math.round(duration / 100); 
      var timer = 0; 

      var identifier = 'g_pic';
      var oldimageid  = identifier.concat(startslide);
      var nextimageid = identifier.concat(imagenumber);

      // Neues Bild in Vordergrund setzen
      changeOpac(0, nextimageid, false); 
      document.getElementById(nextimageid).style.zIndex = 1001;

      // Neues Bild einblenden 
      for(var i = 0; i <= 100; i++)
      { 
        setTimeout("changeOpac(" + i + ", '" + nextimageid + "', '" + oldimageid + "')", (timer * speed)); 
        timer++;
      }

      startslide = imagenumber;
    }
  }
} 

function changeOpac(opacity, nextid, oldid)
{ 
  var object = document.getElementById(nextid);
  
  if (opacity <= 0)
  {
    object.style.display = "none";
  }

  object.style.opacity = (opacity / 101); 
  object.style.MozOpacity = (opacity / 101); 
  object.style.KhtmlOpacity = (opacity / 101); 
  object.style.filter = "alpha(opacity=" + opacity + ")";

  if (opacity > 0)
  {
    object.style.display = "block";
  }

  if (opacity >= 100)
  {
    if (oldid !== false)
    {
      // Aktuelles Bild als Background setzen
      var nextimageid = "i".concat(nextid);
      document.getElementById("g_pics").style.backgroundImage = "url(" + document.getElementById(nextimageid).src + ")"; 

      // Altes Bild in Hintergrund setzen
      changeOpac(0, oldid, false); 
      document.getElementById(oldid).style.zIndex = 0;

      // Z-Index setzen
      document.getElementById(nextid).style.zIndex = 1000;
    }

    transinprogress = false;
  }
} 

function getNextImageNumber()
{
  var nextnumber = startslide + 1;

  var picsdiv = document.getElementById("g_pics");
  var imgarray = picsdiv.getElementsByTagName("img");
  var imgnumber = imgarray.length;

  if (nextnumber > imgnumber)
  {
    nextnumber = 1;
  }
  else
  {
    if (imgnumber == 1)
    {
      return false;
    }
  }

  return nextnumber;
}

function getPrevImageNumber()
{
  var nextnumber = startslide - 1;

  if (nextnumber < 1)
  {
    var picsdiv = document.getElementById("g_pics");
    var imgarray = picsdiv.getElementsByTagName("img");
    var imgnumber = imgarray.length;

    if (imgnumber == 1)
    {
      return false;
    }

    nextnumber = imgnumber;
  }

  return nextnumber;
}