// window.onerror=null;

NS4 = (document.layers) ? 1 : 0;
IE4 = (document.all) ? 1 : 0;
W3C = (document.getElementById) ? 1:0;
OPE = (navigator.userAgent.indexOf('Opera') != -1) ? 1 : 0;

// alert("NS: " + NS4 + ", IE: " + IE4 + ", W3C: " + W3C + ", OPE: " + OPE);

numLayers = 7;

myButtons = new Array(7);
myButtons = new Array("aktuell", "projekte", "thema", "service", "publikationen", "information", "links", "english");

textLines = new Array(7);
textLines = new Array(6, 7, 0, 3, 1, 4, 0, 4);

myTop = 10;          // top of navigation
myButtonHeight = 20; // height of graphical buttons
myTextHeight   = 16; // height of textlines (defined with a table);
myButtonSpace  = 5;  

activeLayer = -1;

scrolling = 0;
resetscroll = 0;
movePx = 3;
moveTime = 3;


initVar = 0;


if (W3C) {
	movePx = 5;
}
ver4 = (NS4 || IE4) ? 1 : 0;
ver3 = (document.images) ? 1 : 0;

if (ver3==1 || ver4==1 || W3C) {
    aktuell = new Image();
    aktuell.src = "images/buttons/aktuellA.gif";
    aktuellOn = new Image();
    aktuellOn.src = "images/buttons/aktuellB.gif";

    projekte = new Image();
    projekte.src = "images/buttons/projekteA.gif";
    projekteOn = new Image();
    projekteOn.src = "images/buttons/projekteB.gif";

    service = new Image();
    service.src = "images/buttons/serviceA.gif";
    serviceOn = new Image();
    serviceOn.src = "images/buttons/serviceB.gif";

    thema = new Image();
    thema.src = "images/buttons/themaA.gif";
    themaOn = new Image();
    themaOn.src = "images/buttons/themaB.gif";

    publikationen = new Image();
    publikationen.src = "images/buttons/publikationenA.gif";
    publikationenOn = new Image();
    publikationenOn.src = "images/buttons/publikationenB.gif";

    information = new Image();
    information.src = "images/buttons/informationA.gif";
    informationOn = new Image();
    informationOn.src = "images/buttons/informationB.gif";

    links = new Image();
    links.src = "images/buttons/linksA.gif";
    linksOn = new Image();
    linksOn.src = "images/buttons/linksB.gif";

    english = new Image();
    english.src = "images/buttons/englishA.gif";
    englishOn = new Image();
    englishOn.src = "images/buttons/englishB.gif";

}

function initClips()
{

    if (IE4) {
		for (i=0; i<=numLayers; i++) {
			document.all["lay" + myButtons[i]].style.clip = "rect(0px 125px 20px 0px)";
			document.all["lay" + myButtons[i]].style.top = myTop + (myButtonHeight*i) + myButtonSpace;
		}
		initVar = 1;
    } 
	if (W3C) {
		for (i=0; i<=numLayers; i++) {
			//alert("Layer: " + "lay" + myButtons[i]);
			if (OPE) {
				//alert("Setting Bottom");
				//alert("Height: " + document.getElementById("lay" + myButtons[i]).style.pixelHeight); //  = myTop + (myButtonHeight*(i+1)) + myButtonSpace;
				if (document.getElementById("lay" + myButtons[i] + "ope")) {
					document.getElementById("lay" + myButtons[i]).style.visibility = "hidden";
					document.getElementById("lay" + myButtons[i] + "ope").style.visibility = "visible";
					document.getElementById("lay" + myButtons[i] + "ope").style.top = myTop + (myButtonHeight*i) + myButtonSpace;
				}
//				document.getElementById("lay" + myButtons[i]).style.pixelHeight = myButtonHeight;
//				document.getElementById("lay" + myButtons[i]).style.height = myButtonHeight + "px";
//				document.getElementById("lay" + myButtons[i]).style.overflow = "hidden";
//				alert("Height danach: " + document.getElementById("lay" + myButtons[i]).style.pixelHeight); //  = myTop + (myButtonHeight*(i+1)) + myButtonSpace;
			} else {
				document.getElementById("lay" + myButtons[i]).style.visibility = "visible";
				document.getElementById("lay" + myButtons[i]).style.clip = "rect(0px 125px 20px 0px)";
			}
			document.getElementById("lay" + myButtons[i]).style.top = myTop + (myButtonHeight*i) + myButtonSpace;
		}
		initVar = 1;
	}
    if (NS4) {
		for (i=0; i<=numLayers; i++) {
			document.layers["lay" + myButtons[i]].visibility = "show";			
		}
		initVar = 1;
    }
}

function imgOn (layer, name) {
	imgSrc = name + "On.src";
	if (OPE) {
		if (layer.indexOf('ope') != -1) {
			document.images[name + "ope"].src = eval(imgSrc);
		} else {
			document.images[name].src = eval(imgSrc);
		}
	} else if (W3C) {
		document.images[name].src = eval(imgSrc);
    } else if (NS4) {
		document.layers[layer].document.images[name].src = eval(imgSrc);
    } else if (IE4) {
		document.all[layer].document.images[name].src = eval(imgSrc);
    }
}

function imgOff (layer, name) {
	imgSrc = name + ".src";
	if (OPE) {
		if (myButtons[activeLayer] == name || myButtons[activeLayer] + "ope" == name) {

		} else {
			if (layer.indexOf('ope') != -1) {
				document.images[name + "ope"].src = eval(imgSrc);
			} else {
				document.images[name].src = eval(imgSrc);
			}
		}
	} else {
		if (myButtons[activeLayer] != name) {
			if (W3C) {
				document.images[name].src = eval(imgSrc);
			} else if (NS4) {
				document.layers[layer].document.images[name].src = eval(imgSrc);
			} else if (IE4) {
				document.all[layer].document.images[name].src = eval(imgSrc);
			}
		}
	}
}

function activateNavig(layerNr) {
    if (scrolling == 0 && resetscroll == 0 && initVar == 1) {
		imgOn("lay" + myButtons[layerNr], myButtons[layerNr]);
			 // alert("active:" + myButtons[activeLayer]);
			 // alert("lnr:" + myButtons[layerNr]);
		if (activeLayer != -1 && activeLayer != layerNr) {

			// alert("active:" + myButtons[activeLayer]);
			imgSrc = myButtons[activeLayer] + ".src";
			if (OPE) {
				document.images[myButtons[activeLayer]].src = eval(imgSrc);
				document.images[myButtons[activeLayer] + "ope"].src = eval(imgSrc);
			} else if (W3C) {
				document.images[myButtons[activeLayer]].src = eval(imgSrc);
			} else if (IE4) {
				document.all["lay" + myButtons[activeLayer]].document.images[myButtons[activeLayer]].src = eval(imgSrc);
			} else if (NS4) {
				document.layers["lay" + myButtons[activeLayer]].document.images[myButtons[activeLayer]].src = eval(imgSrc);
			} else {
				document.all["lay" + myButtons[activeLayer]].document.images[myButtons[activeLayer]].src = eval(imgSrc);
			}
			resetscroll = 1;
			resetNavig(layerNr);
		}
		else {
			scrolling = 1;
			//setTimeout("showNavig(" + layerNr + ");", 1000);
			// alert("showNavig: " + layerNr);
			showNavig(layerNr);
		}
    }
}

function showNavig(layerNr) {
    if (scrolling == 1) {
		myLay = "lay" + myButtons[layerNr];
		imgSrc = myButtons[layerNr] + "On.src";

		if (OPE && activeLayer != layerNr) {
			for (i=layerNr+1; i<=numLayers; i++)
			{
				if (document.getElementById("lay" + myButtons[i] + "ope")) {
//					alert ("scrolling: " + myButtons[i] + " ... " + document.getElementById("lay" + myButtons[i]).style.top);
					newTop = parseInt(document.getElementById("lay" + myButtons[i] + "ope").style.top) + textLines[layerNr]*myTextHeight; // + myButtonHeight;
					document.getElementById("lay" + myButtons[i] + "ope").style.top = newTop;
					document.getElementById("lay" + myButtons[i]).style.top = newTop;
//					document.getElementById("lay" + myButtons[i] + "ope").style.top = (parseInt(document.getElementById("lay" + myButtons[i] + "ope").style.top) + movePx);
				}
			}
//			document.getElementById("lay" + myButtons[layerNr] + "ope").style.visibility = "hidden";
			document.getElementById("lay" + myButtons[layerNr]).style.visibility = "visible";
			scrolling = 0;
			activeLayer = layerNr;
			imgOn("lay" + myButtons[layerNr], myButtons[layerNr]);
/*
			myMaxHeight = parseInt(document.getElementById("lay" + myButtons[layerNr] + "ope").style.top) + textLines[layerNr]*myTextHeight + myButtonHeight;
			myHeight = parseInt(document.getElementById("lay" + myButtons[layerNr+1] + "ope").style.top);
			if (myHeight < myMaxHeight) {
				setTimeout("showNavig(" + layerNr + ");", 1);
			} else {
				document.getElementById("lay" + myButtons[layerNr] + "ope").style.visibility = "hidden";
				document.getElementById("lay" + myButtons[layerNr]).style.visibility = "visible";
				scrolling = 0;
				activeLayer = layerNr;
				imgOn("lay" + myButtons[layerNr], myButtons[layerNr]);
			}
*/
		}
		else if (W3C) {
//			document.images[myButtons[layerNr]].src = eval(imgSrc);
			clipv = document.getElementById(myLay).style.clip.split("rect(")[1].split(")")[0].split("px");
			myClipHeight = clipv[2];
//			alert (myClipHeight);
			myMaxHeight = textLines[layerNr]*myTextHeight + myButtonHeight;
			if (myClipHeight < myMaxHeight) {
				newH = Math.abs(myClipHeight) + movePx;
				document.getElementById(myLay).style.clip = "rect(0px 125px " + newH + "px 0px)";
			
				for (i=layerNr+1; i<=numLayers; i++) {
//	    			alert (myButtons[i] + " : " + document.getElementById("lay" + myButtons[i]).style.top);
					document.getElementById("lay" + myButtons[i]).style.top = (parseInt(document.getElementById("lay" + myButtons[i]).style.top) + movePx) + "px";
				}

				setTimeout("showNavig(" + layerNr + ");", 1);
			} else {
				scrolling = 0;
				activeLayer = layerNr;
				imgOn("lay" + myButtons[layerNr], myButtons[layerNr]);
			}
		} 
		else if (IE4) {
//			document.all[myLay].document.images[myButtons[layerNr]].src = eval(imgSrc);
			
			clipv = document.all[myLay].style.clip.split("rect(")[1].split(")")[0].split("px");
			myClipHeight = clipv[2];

			myMaxHeight = textLines[layerNr]*myTextHeight + myButtonHeight;
	//	    alert (myClipHeight + " ?= " + myMaxHeight);
			if (myClipHeight < myMaxHeight)
			{
			newH = Math.abs(myClipHeight) + movePx;
	//		alert ("NEW: " + newH);
			document.all[myLay].style.clip = "rect(0 125 " + newH + " 0)";
			
			for (i=layerNr+1; i<=numLayers; i++)
			{
	//		    alert (myButtons[i] + " : " + document.all["lay" + myButtons[i]].style.top);
				document.all["lay" + myButtons[i]].style.top = document.all["lay" + myButtons[i]].style.pixelTop + movePx;
			}

			setTimeout("showNavig(" + layerNr + ");", moveTime);
			}
			else
			{
				scrolling = 0;
				activeLayer = layerNr;
				imgOn("lay" + myButtons[layerNr], myButtons[layerNr]);
			}
		}
   		else if (NS4) {
			document.layers[myLay].document.images[myButtons[layerNr]].src = eval(imgSrc);

			myClipHeight = document.layers[myLay].clip.height;
			if (myClipHeight < textLines[layerNr]*myTextHeight + myButtonHeight) {
				document.layers[myLay].clip.height += movePx;
				for (i=layerNr+1; i<=numLayers; i++) {
					if (document.layers["lay" + myButtons[i]]) {
						document.layers["lay" + myButtons[i]].pageY += movePx;
					}
				}
				setTimeout("showNavig(" + layerNr + ");", moveTime);
			}
			else {
				scrolling = 0;
				activeLayer = layerNr;
				imgOn("lay" + myButtons[layerNr], myButtons[layerNr]);
			}
		}
 }
}


function resetNavig(layerNr)
{
    if (resetscroll == 1)
    {
		imgOn("lay" + myButtons[layerNr], myButtons[layerNr]);
		imgOff("lay" + myButtons[activeLayer], myButtons[activeLayer]);
		myLay = "lay" + myButtons[activeLayer];
		if (OPE) {
			document.getElementById("lay" + myButtons[activeLayer]).style.visibility = "hidden";
			document.getElementById("lay" + myButtons[activeLayer] + "ope").style.visibility = "visible";
			for (i=activeLayer+1; i<=numLayers; i++) {
				if (document.getElementById("lay" + myButtons[i] + "ope")) {
					newTop = parseInt(document.getElementById("lay" + myButtons[i] + "ope").style.top) - textLines[activeLayer]*myTextHeight; // + myButtonHeight;
					document.getElementById("lay" + myButtons[i] + "ope").style.top = newTop;
					document.getElementById("lay" + myButtons[i]).style.top = newTop;
				}
			}
			resetscroll = 0;
			scrolling = 1;
			showNavig(layerNr);
		}
		else if (W3C) {
		    clipv = document.getElementById(myLay).style.clip.split("rect(")[1].split(")")[0].split("px");
		    myClipHeight = clipv[2];
		    if (myClipHeight >  myButtonHeight)
		    {
				newH = Math.abs(myClipHeight) - movePx;
				document.getElementById(myLay).style.clip = "rect(0px 125px " + newH + "px 0px)";
				for (i=activeLayer+1; i<=numLayers; i++)
				{
				    document.getElementById("lay" + myButtons[i]).style.top = (parseInt(document.getElementById("lay" + myButtons[i]).style.top) - movePx) + "px";
				}
				setTimeout("resetNavig(" + layerNr + ");", moveTime);
	    	}
	    	else
	    	{
				resetscroll = 0;
				scrolling = 1;
				showNavig(layerNr);
	    	}
		} else if (IE4) {
		    clipv = document.all[myLay].style.clip.split("rect(")[1].split(")")[0].split("px");
		    myClipHeight = clipv[2];
		    if (myClipHeight >  myButtonHeight)
		    {
				newH = Math.abs(myClipHeight) - movePx;
				document.all[myLay].style.clip = "rect(0 125 " + newH + " 0)";
				for (i=activeLayer+1; i<=numLayers; i++)
				{
				    document.all["lay" + myButtons[i]].style.top = document.all["lay" + myButtons[i]].style.pixelTop - movePx;
				}

				setTimeout("resetNavig(" + layerNr + ");", moveTime);
	    	}
	    	else
	    	{
				resetscroll = 0;
				scrolling = 1;
				showNavig(layerNr);
	    	}
		} else if (NS4) {
		    myClipHeight = document.layers[myLay].clip.height;
		    if (myClipHeight > myButtonHeight)
		    {
				document.layers[myLay].clip.height -= movePx;
				for (i=activeLayer+1; i<=numLayers; i++)
				{
		    		document.layers["lay" + myButtons[i]].pageY -= movePx;
				}
				setTimeout("resetNavig(" + layerNr + ");", moveTime);
	    	}
	    	else
	    	{
				resetscroll = 0;
				scrolling = 1;
				showNavig(layerNr);
	    	}
		}

    }
}


