var fadeTime = 500; // rychlost změny v ms
var autoFade = 6000; // rychlost automatické změny v ms
var fading = false;
var pageAct = 0; // aktuální stránka
var lastChange = false;
var fadingImages = false; // elementy s texty
var pagesNum = false; // celkový počet textů

function autoChange()
{
    // inicializace elementů
    if (!pagesNum)
    {
        fadingImages = document.getElementById('fading').getElementsByTagName('img');
        pagesNum = fadingImages.length; // stránek celkem

        // zobrazí první boxík
        fadingImages[0].style.opacity = '1';
        fadingImages[0].style.filter = 'alpha(opacity = 100)';
    }

    clearTimeout(lastChange);
    lastChange = setInterval("autoChanging()", autoFade);
}

function autoChanging()
{
    eval("change('plus')");   
}

function change(newPage)
{
    
    if (newPage == 'plus' && (pageAct + 1) >= pagesNum)
        newPage = 0;
    else if (newPage == 'minus' && (pageAct - 1) < 0)
    	newPage = pagesNum - 1;
    else
    {
		if (newPage == 'plus')
			newPage = pageAct + 1;
		else if (newPage == 'minus')
			newPage = pageAct - 1;
		else
			newPage = 0;
	}
    
    var fadingImage = fadingImages[newPage];
        
    if (newPage == pageAct || fading)
        return false;
        
    fading = true;
    fadingImage.FadeTimeLeft = fadeTime;
    autoChange();
    
    setTimeout("fade(" + new Date().getTime() + ", " + newPage + ", " + pageAct + ")", 33);

    pageAct = newPage;
    return false;
}

function fade(lastTick, showBox, hideBox)
{  
  var showImage = fadingImages[showBox];
  var hideImage = fadingImages[hideBox];
  
  var curTick = new Date().getTime();
  var elapsedTicks = curTick - lastTick;
 
  if(showImage.FadeTimeLeft <= elapsedTicks)
  {
    showImage.style.opacity = '1';
    hideImage.style.opacity = '0';
    showImage.style.filter = 'alpha(opacity = 100)';
    hideImage.style.filter = 'alpha(opacity = 0)';
    
    fading = false;
    
    return;
  }
  else
  {
    showImage.FadeTimeLeft -= elapsedTicks;
    var newHideVal = showImage.FadeTimeLeft/fadeTime;
    var newShowVal = 1 - newHideVal;

    showImage.style.opacity = newShowVal;
    showImage.style.filter = 'alpha(opacity = ' + (newShowVal*100) + ')';
    hideImage.style.opacity = newHideVal;
    hideImage.style.filter = 'alpha(opacity = ' + (newHideVal*100) + ')';
 
    setTimeout("fade(" + new Date().getTime() + ", '" + showBox + "', '" + hideBox + "')", 33);
  }
}