var actualMenu=0;
var steps=30;
var runWant=600;
var pohybData=new Array(
                        new Array(0,0,0,0,0,0),
                        new Array(0,0,0,0,0,0),
                        new Array(0,0,0,0,0,0),
                        new Array(0,0,0,0,0,0),
                        new Array(0,0,0,0,0,0),
                        new Array(0,0,0,0,0,0)

                       );
var menuData=new Array();
var menuMetaData=new Array(2,3,2,1,1,2,2);
var zavora=0;
var animationStep=0;
var myAnimation;
var myElement;
var myElement2;
var runTime=0;
var approx=0;
var menuRunning=0;
var animationEnabled=1;

var actualElement=null;
function mmove(v)
 {
 	if (!v) v=event;
 	if (v.srcElement) actualElement=v.srcElement; else actualElement=v.target;
 }
function startMenu()
 {

if (!document.all) {
  window.captureEvents(Event.MOUSEMOVE);
  window.onmousemove=mmove;
} else {
  document.onmousemove=mmove;
}
  menuRunning=1;
//  toggleTo2(actualMenu);
 }

function toggleAnimation()
 {
  animationEnabled=1-animationEnabled;
  now = new Date();
  now.setDate(now.getDate() + 36500);
  document.cookie = "animationEnabled=" + animationEnabled + ';expires=' +now.toGMTString();
  if (animationEnabled)
  document.getElementById('anim').className=''; else
  document.getElementById('anim').className='vypnuto';
 }

function metaDataToData()
 {
  animationEnabled=(document.cookie.match(/animationEnabled=0/))?0:1;


  menus=document.getElementsByName('menu');
  if (!menus.length)
   {
    aa=document.getElementsByTagName('ul');
    menus=new Array();
    j=0;
    for (i=0;i<aa.length;i++) if (aa[i].getAttribute('name')=='menu') menus[j++]=aa[i];
   }
  var j=-1;
  var oldparent=null;
  var l=menus.length;
  for (i=0;i<l;i++)
   {
    if (oldparent!=menus[i].parentNode.parentNode) j++;
    oldparent=menus[i].parentNode.parentNode;
    var a=menus[i].cloneNode(true);
    a.id=''+j;
    document.getElementById('sub-navigace-content').appendChild(a);
   }
  document.getElementById('sub-navigace-blok').style.display="block";



  uls=document.getElementById('sub-navigace-content').childNodes;
  menuMDi=0;
  innerIndex=0;
  maxHeight=0;
  menuData[0]= new Array (0,0,0,0);
  for (i=0;i<uls.length;i++)
   {
    if (uls[i].nodeName.toUpperCase()=='UL')
     {
      lastUL=i;
      if (menuMDi<parseInt(uls[i].id))
       {
        if (document.getElementById('navigace'+menuMDi).className.toUpperCase()=='ACTIVE') actualMenu=menuMDi;
        menuData[menuMDi][1]+=uls[i].offsetLeft;
        menuData[menuMDi][0]=document.getElementById('navigace'+menuMDi).parentNode.offsetLeft-document.getElementById('navigace-blok').offsetLeft;
        if (menuData[menuMDi][0]+menuData[menuMDi][1]>document.getElementById('sub-navigace-container').offsetWidth) menuData[menuMDi][0]=document.getElementById('sub-navigace-container').offsetWidth-menuData[menuMDi][1];
        if (menuData[menuMDi][3]>120) menuData[menuMDi][3]=120;
        menuMDi++;
        menuData[menuMDi]= new Array (0,0,0,0);
        menuData[menuMDi][1]=-uls[i].offsetLeft;
        menuData[menuMDi][2]=-uls[i].offsetLeft;
       }
      if (menuData[menuMDi][3]<(mH=uls[i].offsetHeight)) menuData[menuMDi][3]=mH;
     }
   }
  if (document.getElementById('navigace'+menuMDi))
  if (document.getElementById('navigace'+menuMDi).className.toUpperCase()=='ACTIVE') actualMenu=menuMDi;
  if (menuData[menuMDi][3]>120) menuData[menuMDi][3]=120;
  menuData[menuMDi][1]+=uls[lastUL].offsetLeft+uls[lastUL].offsetWidth;
        menuData[menuMDi][0]=document.getElementById('navigace'+menuMDi).parentNode.offsetLeft-document.getElementById('navigace-blok').offsetLeft;
  if (menuData[menuMDi][0]+menuData[menuMDi][1]>document.getElementById('sub-navigace-container').offsetWidth) menuData[menuMDi][0]=document.getElementById('sub-navigace-container').offsetWidth-menuData[menuMDi][1];


  document.getElementById('sub-navigace-blok').style.left=menuData[actualMenu][0]+'px';
  document.getElementById('sub-navigace-blok').style.width=menuData[actualMenu][1]+'px';
  document.getElementById('sub-navigace-blok').style.height=menuData[actualMenu][3]+'px';
  document.getElementById('sub-navigace-content').style.left=menuData[actualMenu][2]+'px';


  nshandls=document.getElementsByName('noscripthandler');
  if (!nshandls.length)
   {
    aa=document.getElementsByTagName('div');
    nshandls=new Array();
    j=0;
    for (i=0;i<aa.length;i++) if (aa[i].getAttribute('name')=='noscripthandler') nshandls[j++]=aa[i];
   }

  for (i=0;i<nshandls.length;i++)
   {
    nshandls[i].style.display="none";
   }

 }
//=============================================================================
function toggleTo(nr)
 {
 	setTimeout('toggleTo2('+nr+')',200);
 }
//=============================================================================
function toggleTo2(nr)
 {
  if (actualElement && (actualElement.id!='navigace'+nr)) return;
  if (!menuRunning) return;
  if (!menuData.length) metaDataToData();
  if (!zavora && nr!=actualMenu)
   {
    zavora=1;
    a=actualMenu;
    actualMenu=nr;
    switchClasses(a,nr);
    if (animationEnabled)
    switchSubMenu(a,nr); else
     {
      document.getElementById('sub-navigace-blok').style.left=menuData[actualMenu][0]+'px';
      document.getElementById('sub-navigace-blok').style.width=menuData[actualMenu][1]+'px';
      document.getElementById('sub-navigace-blok').style.height=menuData[actualMenu][3]+'px';
      document.getElementById('sub-navigace-content').style.left=menuData[actualMenu][2]+'px';
     }
    zavora=0;
   }
 }
//=============================================================================
function switchClasses(from,to)
 {
  document.getElementById('navigace'+from).className="";
  document.getElementById('navigace'+to).className="active";
 }
//=============================================================================
function switchSubMenu(from,to)
 {
  if (animationStep)
   {
    var t= new Date();
    runTime+=t.getTime();
    if (runTime>100)
     {
      steps=Math.round(steps*animationStep/steps*runWant/runTime);
     }
    runTime=-t.getTime();
   } else
   {
    var t= new Date();
    runTime=-t.getTime();
   }
  if (!myElement)  myElement=document.getElementById('sub-navigace-blok');
  if (!myElement2) myElement2=document.getElementById('sub-navigace-content');
  evalParameters(from,to,0);
  evalParameters(from,to,1);
  evalParameters(from,to,2);
  evalParameters(from,to,3);
  evalParameters(from,to,4);
  animationStep=0;
  if (!myAnimation) myAnimation=setInterval('runAnimationStep()',1);
 }
//=============================================================================
function pohyb(index,x)
 {
  v0=pohybData[index][3];

  if (x<=1)
   {
    a    = pohybData[index][0];
    dpul = 0;
   }  else
   {
    x    = x-1;
    a    = pohybData[index][1];
    dpul = pohybData[index][0]/32+v0;
    v0   = pohybData[index][0]/16+v0;
   }
  if (x<=1/4)
   {
    d = pohybData[index][4]+dpul+ (v0 + a * x*x*x / 12)*x;
   } else
  if (x<=3/4)
   {
    d = pohybData[index][4]+dpul+ ((((16 -  8*x)*x - 6)*x + 1)*a/96+v0)*x - a / 1536;
   } else
   {
    d = pohybData[index][4]+dpul+ ((((-16 + x*4)*x + 24)*x - 13)*a/48+v0) * x + 5/96 * a;
   }
  return Math.round(d);
 }
//=============================================================================
function runAnimationStep()
 {
  x=2.0*animationStep/steps;
  myElement.style.left=pohyb(0,x)+'px';
  myElement.style.width=pohyb(1,x)+'px';
  myElement2.style.left=pohyb(2,x)+'px';
  myElement.style.height=pohyb(3,x)+'px';
  if (animationStep==steps)
   {
    clearInterval(myAnimation);
      var t= new Date();
      runTime+=t.getTime();
      steps=Math.floor(steps*runWant/runTime);
    myAnimation=0;
    animationStep=-1;
   }
  animationStep++;
 }
//=============================================================================
function evalParameters(fromMenu,toMenu,index)
 {
  if (animationStep)
   {


    x=2*animationStep/steps;
    v0=pohybData[index][3];
    if (x<=1)
     {
      a=pohybData[index][0];
      dpul=0;
     }  else
     {
      x=x-1;
      a=pohybData[index][1];
      dpul = 1/32*pohybData[index][0]+v0;
      v0 = 1/16*pohybData[index][0]+v0;
     }

    if (x<=1/4)
     {
      d0 = pohybData[index][4]+dpul+ (v0 + a * x*x*x / 12)*x;
      v0 = v0 + a * x*x*x / 3;
     } else
    if (x<=3/4)
     {
      d0 = pohybData[index][4]+dpul+ ((((16 -  8*x)*x - 6)*x + 1)*a/96+v0)*x - a / 1536;
      v0 = a*x*x/2 + v0 + a/96 - a*x*x*x/3 - a*x/8;
     } else
     {
      d0 = pohybData[index][4]+dpul+ ((((-16 + x*4)*x + 24)*x - 13)*a/48+v0) * x + 5/96 * a;
      v0 = -a*x*x + v0 + a*x*x*x /3 - 13/48*a + a*x;
     }
   } else
   {
    a=0;
    v0=0;
    d0=menuData[fromMenu][index];
   }
  d=menuData[toMenu][index]-d0;
  a1 = 16*d-24*v0;
  a2 = -16*d+8*v0;
  pohybData[index][0]=a1;
  pohybData[index][1]=a2;
  pohybData[index][3]=v0;
  pohybData[index][4]=d0;
 }
//=============================================================================

