function MFXinitMenu(){
whichOpen=-1;
running=false;
MFXmain=new Array();

IE = document.all ? 1:0; // Abfrage auf IE
NN = document.layers ? 1:0; // Abfrage auf Netscape
gecko = (document.getElementById)? 1:0; // Abfrage auf Mozilla


HIDDEN = (NN) ? 'hide' : 'hidden';
VISIBLE = (NN) ? 'show' : 'visible';


myLayer=new Array();
mySpeed=15;
subLeft=13;
closes=true;

myLayer[0]=document.getElementById("MFX0").style; 
myLayer[1]=document.getElementById("MFX1").style; 
myLayer[2]=document.getElementById("MFX2").style; 
myLayer[3]=document.getElementById("MFX3").style;
myLayer[4]=document.getElementById("MFX4").style;
myLayer[5]=document.getElementById("MFX5").style;
myLayer[6]=document.getElementById("MFX6").style;
myLayer[7]=document.getElementById("MFX7").style;
myLayer[8]=document.getElementById("MFX8").style;
myLayer[9]=document.getElementById("MFX9").style;
myLayer[10]=document.getElementById("MFX10").style;
myLayer[11]=document.getElementById("MFX11").style;
myLayer[12]=document.getElementById("MFX12").style;
myLayer[13]=document.getElementById("MFX13").style;
myLayer[14]=document.getElementById("MFX14").style;
myLayer[15]=document.getElementById("MFX15").style;


lastMain=myLayer.length-2;
for(i=0; i<myLayer.length; i++){
mainORsub= i % 2;
MFXmain[i] = mainORsub ? 0:1;
}




myTop=new Array();
myLeft=new Array();
myHeight=new Array();
myWidth=new Array();
mySlide=new Array();

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

if(!IE&&gecko&&MFXmain[i]){


if(i==0){
myLeft[i]=ParseNumber("0px");
myTop[i] = ParseNumber(myLayer[i].top);
}
else{
	myLeft[i]=myLeft[i-2];
	myTop[i]=myTop[i-2]+myHeight[i-2];
}
myWidth[i]=myLayer[i].width;
myHeight[i]=ParseNumber(myLayer[i].height);
myWidth[i]="0px";
myLayer[i].left=myLeft[i];
myLayer[i].top= (myTop[i]).toString() + "px";
myLayer[i].visibility=VISIBLE;

}

if(!IE&&gecko&&!MFXmain[i]){
myTop[i]=myTop[i-1]+myHeight[i-1];
myLeft[i]=myLeft[i-1];
myWidth[i]="0px";
myHeight[i] = ParseNumber(myLayer[i].height);


var help = myLeft[i]+subLeft;
myLayer[i].left = help.toString() + "pt";
myLayer[i].top= (myTop[i]).toString() + "px";
mySlide[i]=myTop[i]+myHeight[i];
}



if(NN&&MFXmain[i]){
alert("top:" + myLayer[i].top + "  left" + myLayer[i].left + "   height" + myLayer[i].clip.height + "  width"  +myLayer[i].clip.width);
if(i==0){
myTop[i]=myLayer[i].top;
myLeft[i]=myLayer[i].left;}
else{
myLeft[i]=myLeft[i-2];
myTop[i]=myTop[i-2]+myHeight[i-2];
}
myHeight[i]=myLayer[i].clip.height;
myWidth[i]=myLayer[i].clip.width;
myLayer[i].left=myLeft[i];
myLayer[i].top=myTop[i];
myLayer[i].visibility=VISIBLE;
alert("top:" + myLayer[i].top + "  left" + myLayer[i].left + "   height" + myLayer[i].clip.height + "  width"  +myLayer[i].clip.width);
}

if(NN&&!MFXmain[i]){
myTop[i]=myTop[i-1]+myHeight[i-1];
myLeft[i]=myLeft[i-1];
myHeight[i]=myLayer[i].clip.height;
myWidth[i]=myLayer[i].clip.width;
mySlide[i]=myTop[i]+myHeight[i];
myLayer[i].left=myLeft[i]+subLeft;
myLayer[i].top=myTop[i];
alert("top:" + myLayer[i].top + "  left" + myLayer[i].left + "   height" + myLayer[i].clip.height + "  width"  +myLayer[i].clip.width);
}


if(IE&&MFXmain[i]){

if(i==0){
myLeft[i]=myLayer[i].pixelLeft;
myTop[i]=myLayer[i].pixelTop;

}
else{
myLeft[i]=myLeft[i-2];
myTop[i]=myTop[i-2]+myHeight[i-2];

}
myHeight[i]=myLayer[i].pixelHeight;
myWidth[i]=myLayer[i].pixelWidth;
myLayer[i].left=myLeft[i];
myLayer[i].top=myTop[i];
myLayer[i].visibility=VISIBLE;

}

if(IE&&!MFXmain[i]){
myTop[i]=myTop[i-1]+myHeight[i-1];
myLeft[i]=myLeft[i-1];
myHeight[i]=myLayer[i].pixelHeight;
myWidth[i]=myLayer[i].pixelWidth;
myLayer[i].pixelLeft=myLeft[i]+subLeft;
myLayer[i].pixelTop=myTop[i];
mySlide[i]=myTop[i]+myHeight[i];

}
}
}

function MFXrunMenu(myName){
mySpeed=15;
newspeed=mySpeed;
ieStep=0;
thereS=false;
thereC=false;
if(newspeed>0){mySpeed=newspeed;}
first=myName;
if(whichOpen==-1&&!running&&MFXmain[myName]&&!(whichOpen==myName)){
running=true;
if(NN){
myLayer[myName+1].clip.height=0;
myLayer[myName+1].visibility=VISIBLE;
}
if(!IE && gecko){
myLayer[myName+1].clip= "rect(" + ("auto") +" "+ ("auto") +" "+ (0) +" "+ ("auto") +")";
myLayer[myName+1].visibility=VISIBLE;
}
if(IE){
myLayer[myName+1].clip= "rect(" + ("auto") +" "+ ("auto") +" "+ (0) +" "+ ("auto") +")";
myLayer[myName+1].visibility=VISIBLE;
}

MFXopenMenuS(myName);
MFXopenMenuC(myName);
}
if(whichOpen>=0&&!running&&!(whichOpen==myName)){
running=true;
second=whichOpen;
ieStep1=myHeight[second+1];
thereCS=false;
thereCC=false;
MFXcloseMenuS(second);
MFXcloseMenuC(second);
}
if(whichOpen>=0&&!running&&whichOpen==myName&&closes){
running=true;
second=whichOpen;
ieStep1=myHeight[second+1];
thereCS=false;
thereCC=false;
MFXcloseMenuS(second);
MFXcloseMenuC(second);
        }
}

function MFXstopCloseS(myName){
running=false;
thereCS=true;
if(closes&&first==whichOpen){whichOpen=-1;}
else{whichOpen=-1;
MFXrunMenu(first);
}
}

function MFXstopOpenS(myName){
running=false;
thereS=true;
if(IE){myLayer[myName+1].clip= "rect(" + ("auto") +" "+ ("auto") +" "+ ("auto") +" "+ ("auto") +")";}
if(!IE && gecko){myLayer[myName+1].clip= "rect(" + ("auto") +" "+ ("auto") +" "+ ("auto") +" "+ ("auto") +")";}
whichOpen=myName;
}

function MFXopenMenuS(myName){
myStep=mySpeed;

/*gecko*/
if(!IE&&gecko&&!thereS&&!(first==lastMain)){

top = ParseNumber(myLayer[first+2].top);
if(top+myStep>mySlide[first+1]){
myStep=mySlide[first+1]-ParseNumber(myLayer[first+2].top);
//alert("myStep: " + myStep);
}
for(i=first+2; i<myLayer.length; i+=2){
	myLayer[i].top = (ParseNumber(myLayer[i].top) + myStep).toString() + "px";;
//alert("myLayer[i].top: " + myLayer[i].top);
//myLayer[i].top+=myStep;
}
if(top==mySlide[first+1]){
MFXstopOpenS(first)
}
if(running)setTimeout('MFXopenMenuS(first)',10);
}

/*netscape*/
if(NN&&!thereS&&!(first==lastMain)){
if(myLayer[first+2].top+myStep>mySlide[first+1]){
myStep=mySlide[first+1]-myLayer[first+2].top;
}
for(i=first+2; i<myLayer.length; i+=2){
myLayer[i].top+=myStep;
}
if(myLayer[first+2].top==mySlide[first+1]){
MFXstopOpenS(first)
}
if(running)setTimeout('MFXopenMenuS(first)',10);
}

/*ie*/
if(IE&&!thereS&&!(first==lastMain)){
	if(myLayer[first+2].pixelTop+myStep>mySlide[first+1]){
		myStep=mySlide[first+1]-myLayer[first+2].pixelTop;
	}

	for(i=first+2; i<myLayer.length; i+=2){
		myLayer[i].pixelTop+=myStep;
	}
	if(myLayer[first+2].pixelTop==mySlide[first+1]){
		MFXstopOpenS(first)
	}

	if(running)setTimeout('MFXopenMenuS(first)',10);
}

}


function MFXopenMenuC(myName){
myStep=mySpeed;

/*netscape*/
if(NN&&!thereC){
if ((myLayer[first+1].clip.height+myStep)>myHeight[first+1]){
myLayer[first+1].clip.height=myHeight[first+1]
}
if(myLayer[first+1].clip.height==myHeight[first+1]){
thereC=true;
whichOpen=first;
MFXstopOpenS(first)

}else{
myLayer[first+1].clip.height+=myStep;

}
if(running)setTimeout('MFXopenMenuC(first)',10);
}

/*ie*/
if((IE || gecko)&&!thereC){
ieStep+=myStep;
myLayer[myName+1].clip= "rect(" + ("auto") +" "+ ("auto") +" "+ (ieStep) +" "+ ("auto") +")";

if(ieStep>=myHeight[first+1]){
thereC=true;
whichOpen=first;
MFXstopOpenS(first)
}
if(running)setTimeout('MFXopenMenuC(first)',10);
}
}

function MFXcloseMenuS(myName){
myStep=mySpeed;

if(!IE && gecko&&!thereCS&&!(second==lastMain)){
if(ParseNumber(myLayer[second+2].top)-myStep<myTop[second+2]){
	myStep=ParseNumber(myLayer[second+2].top)-myTop[second+2];
}
for(i=second+2; i<myLayer.length; i+=2){
	myLayer[i].top = (ParseNumber(myLayer[i].top)-myStep).toString() +"px";

}
if(ParseNumber(myLayer[second+2].top)==myTop[second+2]){
	MFXstopCloseS(second);
}
if(running)setTimeout('MFXcloseMenuS(second)',10);
}

if(NN&&!thereCS&&!(second==lastMain)){
if(myLayer[second+2].top-myStep<myTop[second+2]){
myStep=myLayer[second+2].top-myTop[second+2];
}
for(i=second+2; i<myLayer.length; i+=2){
myLayer[i].top-=myStep;

}
if(myLayer[second+2].top==myTop[second+2]){
MFXstopCloseS(second);
}
if(running)setTimeout('MFXcloseMenuS(second)',10);
}

if(IE&&!thereCS&&!(second==lastMain)){
if(myLayer[second+2].pixelTop-myStep<myTop[second+2]){
myStep=myLayer[second+2].pixelTop-myTop[second+2];
}
for(i=second+2; i<myLayer.length; i+=2){
myLayer[i].pixelTop-=myStep;

}
if(myLayer[second+2].pixelTop==myTop[second+2]){
MFXstopCloseS(second);
}
if(running)setTimeout('MFXcloseMenuS(second)',10);
}
}


function MFXcloseMenuC(myName){
myStep=-mySpeed;
ieStep1-=mySpeed;

if(!IE&& gecko&&!thereCC){
if(ieStep1<=0){
myLayer[myName+1].clip= "rect(" + ("auto") +" "+ ("auto") +" "+ (0) +" "+ ("auto") +")";
thereCC=true;
if(second==lastMain)MFXstopCloseS(second);
}else{
myLayer[myName+1].clip= "rect(" + ("auto") +" "+ ("auto") +" "+ (ieStep1) +" "+ ("auto") +")";
}
if(running)setTimeout('MFXcloseMenuC(second)',10);
}

if(NN&&!thereCC){
if ((myLayer[second+1].clip.bottom+myStep)<0){
myLayer[second+1].clip.bottom=0;
}
if(myLayer[second+1].clip.bottom==0){
thereCC=true;

if(second==lastMain)MFXstopCloseS(second);
}else{
myLayer[second+1].clip.bottom+=myStep;

}
if(running)setTimeout('MFXcloseMenuC(second)',10);
}
if(IE&&!thereCC){
if(ieStep1<=0){
myLayer[myName+1].clip= "rect(" + ("auto") +" "+ ("auto") +" "+ (0) +" "+ ("auto") +")";
thereCC=true;
if(second==lastMain)MFXstopCloseS(second);
}else{
myLayer[myName+1].clip= "rect(" + ("auto") +" "+ ("auto") +" "+ (ieStep1) +" "+ ("auto") +")";
}
if(running)setTimeout('MFXcloseMenuC(second)',10);
}
}

function ParseNumber(pixel){
var number = pixel;
index=pixel.indexOf("px");
if(index != -1) {
	number = pixel.slice(0,index);
}
if(isNaN(number) == false) {
	number = parseInt(number);
}
return number;
}
