var fps = 20;

function fade(img, time, dir,reb)
{


  img = document.getElementById(img);
  var steps = time * fps;

  if (typeof img.style.opacity != 'undefined')
  {
    var otype = 'w3c';
  }
  else if (typeof img.style.MozOpacity != 'undefined')
  {
    otype = 'moz';
  }
  else if (typeof img.style.KhtmlOpacity != 'undefined')
  {
    otype = 'khtml';
  }
  else if (typeof img.filters == 'object')
  {
    otype = (img.filters.length > 0
        && typeof img.filters.alpha == 'object'
        && typeof img.filters.alpha.opacity == 'number')
        ? 'ie' : 'none';
  }
  else { otype = 'none'; }

  if (otype != 'none')
  {
    if (dir == 'out') { dofade(steps, img, 1, false, otype,reb); }
    else { dofade(steps, img, 0, true, otype,reb); }
  }
}

function dofade(steps, img, value, targetvisibility, otype,reb)
{
  value += (targetvisibility ? 1 : -1) / steps;
  if (targetvisibility ? value > 1 : value < 0)
      value = targetvisibility ? 1 : 0;

  setfade(img, value, otype);

  if (targetvisibility ? value < 1 : value > 0)
  {
    setTimeout(function()
    {
      dofade(steps, img, value, targetvisibility, otype,reb);
    }, 1000 / fps);
	
  }else {
  img.style.zIndex = img.acco;
   
   switch(otype)
  {
    case 'ie':
      img.filters.alpha.opacity = 100;
      break;

    case 'khtml':
      img.style.KhtmlOpacity = 1;
      break;

    case 'moz':
      img.style.MozOpacity = 0.9999999;
      break;

    default:
      img.style.opacity = 0.9999999;
  }
  if(reb)
    setTimeout(function()
    {
      initmenu("trans");
    }, 1500);
    
  else
  setTimeout(function()
    {
      fademenu("trans");
    }, 1500);
 
  }
}

function setfade(img, value, otype)
{
  switch(otype)
  {
    case 'ie':
      img.filters.alpha.opacity = value * 100;
      break;

    case 'khtml':
      img.style.KhtmlOpacity = value;
      break;

    case 'moz':
      img.style.MozOpacity = (value == 1 ? 0.9999999 : value);
      break;

    default:
      img.style.opacity = (value == 1 ? 0.9999999 : value);
  }
}

addLoadListener(function()
{


   initmenu("trans");
   
   //menu.style.zIndex = 1000;
  //fade("trs_aud", 2, 'out');
  //fade("trs_ras", 2, 'in');
});


function fademenu(fn)
{
// finding element to fade
var menu = document.getElementById(fn);

var elementArray = menu.getElementsByTagName("a");

//alert(fn);

var max = elementArray[0].style.zIndex;
var maxid = elementArray[0].id;
for (var i = 0; i < elementArray.length; i++)
{


if(parseInt(elementArray[i].style.zIndex) > max)
{

max = elementArray[i].style.zIndex;

maxid = elementArray[i].id;
//maxid = document.getElementById(maxid);

}

}


//alert(max);

// checking all cycle end?
if(max==1000-(elementArray.length-1))
{



setTimeout(function()
    {
	    
	     fade(maxid, 2, 'out',1);
		  
    }, 1000 / fps);
	
	}
else 
setTimeout(function()
    {
	
     fade(maxid, 2, 'out',0);
    }, 1000 / fps);



}

function initmenu(fn)
{


var menu = document.getElementById(fn);

var elementArray = menu.getElementsByTagName("a");

for (var i = 0; i < elementArray.length; i++)
{

//alert(elementArray[i].id);
elementArray[i].style.zIndex = 1000 - i;
elementArray[i].acco = 1000 - i - elementArray.length;

}

setTimeout(function()
    {
	
      fademenu(fn);
    }, 1000 / fps);


}

function rebuildmenu(fn)
{

var menu = document.getElementById(fn);

var elementArray = menu.getElementsByTagName("a");

for (var i = 0; i < elementArray.length; i++)
{

//alert(elementArray[i].id);
elementArray[i].style.zIndex = 1000 - i;


}


}

function addLoadListener(fn)
{
  if (typeof window.addEventListener != 'undefined')
  {
    window.addEventListener('load', fn, false);
  }
  else if (typeof document.addEventListener != 'undefined')
  {
    document.addEventListener('load', fn, false);
  }
  else if (typeof window.attachEvent != 'undefined')
  {
    window.attachEvent('onload', fn);
  }
  else
  {
    var oldfn = window.onload;
    if (typeof window.onload != 'function')
    {
      window.onload = fn;
    }
    else
    {
      window.onload = function()
      {
        oldfn();
        fn();
      };
    }
  }
}

