function objGet(x)
{var d=document;x=d.getElementById?d.getElementById(x):d.all?d.all[x]:d[x]?d[x]:d.layers?d.layers[x]:null;return x;}

function objd(x,z) {objGet(x).style.display=z?"block":"none";}
function objv(x,z) {objGet(x).style.visibility=z?"visible":"hidden";}

var funkce=2;
var numMenu=6;
var idecka=new Array(numMenu); //[step],[show/hide],[width],[height]
var steps=11;
var effectline=[0,0];
var line2=[
[0, 2,10,21,35,50,65,79,90,98,100],	//cosinus   0.5-cos(18*n)/2
];
var timerID=new Array(numMenu);
var timerSpeed=50;

function nextStep(e,i,n)
{var j;
	j=idecka[i][0];
	j+=n;
	j=j<steps?(j<0?0:j):steps-1;
	idecka[i][0]=j;
	idecka[i][1]=(j>0 && j<steps)?1:0;
	return line2[effectline[e]][j];
}

function hodinyStop(i)   {clearTimeout(timerID[i])}
function hodinyStart(t,i){if (idecka[i][1]) {t=(t?"ukaz":"skryj")+"("+i+")";timerID[i]=setTimeout(t,timerSpeed)}}

function ukaz(i) {
hodinyStop(i);
var j,k,q;
q="sub"+i;
if (funkce>1) {j=nextStep(1,i,1);}
switch (funkce)
{
case 0:	objd(q,1);
	break;
case 1:	changeOpac(q,100);
	objd(q,1);
	idecka[i][1]=0;
	idecka[i][0]=steps-1;
	break;
case 2:	changeOpac(q,j);
	break;
case 3:	changelineHeight(q,j);
	break;
case 4:	changebottom(q,i,j);
	break;
case 5:	changefontSize(q,j);
	changelineHeight(q,j);
	break;
case 6:	changeclip1(q,i,j);
	objflow(q,"hidden");
	break;
case 7:	changeclip2(q,i,j);
	objflow(q,"hidden");
	break;
case 8:	changeclip3(q,i,j);
	objflow(q,"hidden");
	break;
}
if (funkce>1) {objd(q,(j>0?1:0));hodinyStart(1,i);}
}

function skryj(i){
hodinyStop(i);
var j,k,q;
q="sub"+i;
if (funkce>0) {j=nextStep(1,i,-1);}
switch (funkce)
{
case 0:	objd(q,0);
	break;
case 1:	changeOpac(q,j);
	break;
case 2:	changeOpac(q,j);
	break;
case 3:	changelineHeight(q,j);
	break;
case 4:	changebottom(q,i,j);
	break;
case 5:	changefontSize(q,j);
	changelineHeight(q,j);
	break;
case 6:	changeclip1(q,i,j);
	objflow(q,"hidden");
	break;
case 7:	changeclip2(q,i,j);
	objflow(q,"hidden");
	break;
case 8:	changeclip3(q,i,j);
	objflow(q,"hidden");
	break;
}
if (funkce>0) {objd(q,(j>0?1:0));hodinyStart(0,i);}
}


function objBottom(x,z)	{objGet(x).style.bottom=z;}
function objHeight(x,z)	{objGet(x).style.height=z;}
function objlineHeight(x,z){objGet(x).style.lineHeight=z;}
function objfontSize(x,z){objGet(x).style.fontSize=z;}
function objclip(x,z)	{objGet(x).style.clip=z;}
function objflow(x,z)	{objGet(x).style.overflow=z;}

function changeOpac(id,opacity)
{var s,o;
	s=objGet(id).style;
	o=opacity;
	o=0.009*(o==100?99.9:o);	//FF bug 99.9
	s.opacity      = o;
	s.MozOpacity   = o;
	s.KHTMLOpacity = o;
	s.filter       = "alpha(opacity=" +opacity+ ")";
}

function changeHeight(id,i,height)
{objHeight(id,parseInt(height/100*idecka[i][3])+"px");}

function changelineHeight(id,height)
{objlineHeight(id,height/100*1.25+"em");}

function changefontSize(id,height)
{objfontSize(id,height+"%");}

function changebottom(id,i,height)
{var x,y;
y=idecka[i][3];
x=height/100*y;
objBottom(id,parseInt(4-x*1.1)+"px");
objclip(id,'rect('+parseInt((y-x)*1.1)+'px auto auto 0px)');
objflow(id,"hidden");
}

function changeclip1(id,i,height)
{objclip(id,'rect(0px auto '+parseInt(height/100*idecka[i][3]*1.1)+'px 0px)');};

function changeclip2(id,i,size)
{objclip(id,'rect(0px '+parseInt(size/100*idecka[i][2]*1.1)+'px auto 0px)');};

function changeclip3(id,i,size)
{objclip(id,'rect(0px '+parseInt(size/100*idecka[i][2]*1.1)+'px '+parseInt(size/100*idecka[i][3]*1.1)+'px 0px)');};

function reseteffect()
{var i,q,o;
for(i=0;i<numMenu;i++)
	{
	q="sub"+i;
	changeOpac(q,100);
	objHeight(q,"auto");
	changefontSize(q,100);
	changelineHeight(q,100);
	objBottom(q,"auto");
	objclip(q,"rect(auto auto auto auto)");
	objflow(q,"visible");
	}
}

function init()
{var i,o,q;
for(i=0;i<numMenu;i++)
	{
	q="sub"+i;
	o=objGet(q);idecka[i]=[0,0,o.offsetWidth,o.offsetHeight];
	objd(q,0);objv(q,1);
	timerID[i]=null;
	}
}


