// ...


var browsername, browserversion, browserversionsnummer, browserart;
with(navigator) {
	browsername=appName;
	browserversion=userAgent;
	browserversionsnummer=appVersion;
}

function Is() {
    agent  = navigator.userAgent.toLowerCase();
    this.major = parseInt(navigator.appVersion);
    this.minor = parseFloat(navigator.appVersion);
    this.ns    = ((agent.indexOf('mozilla')   !=   -1) &&
                 ((agent.indexOf('spoofer')   ==   -1) &&
                 (agent.indexOf('compatible') ==   -1)));
    this.ns2   = (this.ns && (this.major      ==    3));
    this.ns3   = (this.ns && (this.major      ==    3));
    this.ns4b  = (this.ns && (this.major      ==    4) &&
                 (this.minor                  <= 4.03));
    this.ns4   = (this.ns && (this.major      >=    4));
    this.ns6    = (this.ns && (this.major     >=    5));
    this.ie    = (agent.indexOf("msie")       !=   -1);
    this.ie3   = (this.ie && (this.major      <     4));
    this.ie4   = (this.ie && (this.major      ==    4) &&
                 (agent.indexOf("msie 5.0")   ==   -1));
    this.ie5   = (this.ie && (this.major      ==    4) &&
                 (agent.indexOf("msie 5.0")   !=   -1));
    this.ie55  = (this.ie && (this.major      ==    4) &&
                 (agent.indexOf("msie 5.5")   !=   -1));
    this.ie6  = (this.ie && (this.major      ==    4) &&
                 (agent.indexOf("msie 6.0")   !=   -1));
}

var is = new Is();

browserart = 	(is.ns6)?"ns6":(
		(is.ns4)?"ns4":(
		(is.ns3)?"ns3":(
		(is.ns2)?"ns2":(
		(is.ns)?"ns":(
		(is.ie6)?"ie6":(
		(is.ie55)?"ie55":(
		(is.ie5)?"ie5":(
		(is.ie4)?"ie4":(
		(is.ie3)?"ie3":(
		(is.ie)?"ie":""))))))))));
// alert(browsername+" \n"+browserversion+"\n"+browserversionsnummer+"\n"+"=> "+browserart);





// allgemeine Bildfunktionen   		+++ start +++ start +++ start +++ start +++ 
function bildtausch(bildname, bildurl,ebene) {	
	var d_i;

	if (window.document.images) {
		d_i = window.document.images; 
		if ( d_i[bildname] ) { //alert('d_i[bildname] ok!');
			d_i[bildname].src=bildurl;
		} else if(document[ebene]) { 
			if ( document[ebene].document.images[bildname] ) { //alert('document.images[bildname] ok!');
				 window.document[ebene].document.images[bildname].src=bildurl;
			}
		}
	}
	// else alert("JavaScript-Fehler oder ein Objekt fehlt\nBitte diese Information weiterleiten an:\nwebmaster@nzwg.de");
}

// allgemeine Bildfunktionen   		+++ ende +++ ende +++ ende +++ ende +++ 







// +++ Internet Explorer / Netscape - Weiche +++
function IENS(hierhin,dorthin) {
	location.href = (is.ie || is.ns6) ? hierhin : dorthin ;
}





// "antiscroll" - funktion: wenn jemand den inhalt "verzieht" 
// (klicken und ziehen, wie markieren), rücken wir es wieder zurecht.
// bevorzugt zu benutzen bei Seiten, die auch keine Scrollbalken haben.
function zurueck() { 
	window.scroll(0,0);
}


// nofoc: 	nach dem klicken soll im IE keine markierung auf dem objekt stehen (gepunkteter Rahmen).
function nofoc() {
	window.focus();
}

// setfocus:	fürs formular - fokus soll im ersten feld stehen, wenn die seite fertig geladen ist.
function setfocus(dahin,formular) {
	if (document[formular]) {
		if (document[formular][dahin]) document[formular][dahin].focus();
	} else if (document.f) {
		if (document.f[dahin]) document.f[dahin].focus();
	}
}

function fenster(fname,urlName) {
	window.focus();
	if (fname == "") fname = 'neuesFenster';
	if (urlName == "") {
		window.open(fname,'width=800,height=600,resizeable=0,location=0,menubar=0,scrollbars=0,status=0,titlebar=0,toolbar=0');
		window.blur();
	} else {
		window.open(urlName,fname,'width=880,height=660,resizeable=0,location=0,menubar=0,scrollbars=0,status=0,titlebar=0,toolbar=0');
		window.blur();
	}
}

function popupfenster(fname,urlName) {
	window.focus();
	if (fname == "") fname = 'popup';
	if(urlName == "") {
		window.open(fname,'width=440,height=200,resizeable=0,location=0,menubar=0,scrollbars=0,status=0,titlebar=0,toolbar=0');
		window.blur();
	} else {
		window.open(urlName,fname,'width=440,height=200,resizeable=0,location=0,menubar=0,scrollbars=0,status=0,titlebar=0,toolbar=0');
		window.blur();
	}
}


function mach_500() {
	if (is.ns) {
		window.resizeTo(500,500);
	} else {
		window.resizeTo(510,529);
	}
}

function mach_800() {
	if (is.ns) {
		window.resizeTo(800,600);
	} else {
		window.resizeTo(815,629);
	}
}

function neuFenster() { }




// Allgemeine Ebenenfunktionen		+++ start +++ start +++ start +++ start +++ 

function EinAus(ebene) {
	var o,v,vvis;
	o = 	(is.ie6) ?	(document.getElementById(ebene)) ? document.getElementById(ebene).style : "" : (
		(is.ie55) ?	(document.getElementById(ebene)) ? document.getElementById(ebene).style : "" : (
		(is.ie5) ?	(document.getElementById(ebene)) ? document.getElementById(ebene).style : "" : (
		(is.ns6) ?	(document.getElementById(ebene)) ? document.getElementById(ebene).style : "" : (
		(is.ns4) ?	(document.layers[ebene]) ? document.layers[ebene] : "" : (
		(is.ns3) ?	(document[ebene]) ? document[ebene] : "" : (
		(is.ie4) ?	(document.all[ebene]) ? document.all[ebene].style : "" : (
		(is.ie3) ?	(document.all[ebene]) ? document.all[ebene].style : "" : "" )))))));
	if (o == "") {
		// alert('ebene '+ebene+' nicht vorhanden');
	}else{
		v = o.visibility;
		vvis = (v=="visible")?1:((v=="show")?1:0);
		o.visibility = (vvis)?"hidden":"visible";
	}
}

function Ein(ebene) {
	var o,v,vvis;
	o = 	(is.ie6) ?	(document.getElementById(ebene)) ? document.getElementById(ebene).style : "" : (
		(is.ie55) ?	(document.getElementById(ebene)) ? document.getElementById(ebene).style : "" : (
		(is.ie5) ?	(document.getElementById(ebene)) ? document.getElementById(ebene).style : "" : (
		(is.ns6) ?	(document.getElementById(ebene)) ? document.getElementById(ebene).style : "" : (
		(is.ns4) ?	(document.layers[ebene]) ? document.layers[ebene] : "" : (
		(is.ns3) ?	(document[ebene]) ? document[ebene] : "" : (
		(is.ie4) ?	(document.all[ebene]) ? document.all[ebene].style : "" : (
		(is.ie3) ?	(document.all[ebene]) ? document.all[ebene].style : "" : "" )))))));
	if (o == "") {
		// alert('ebene '+ebene+' nicht vorhanden');
	}else{
		o.visibility = "visible";
	}
}

function Aus(ebene) {
	var o,v,vvis;
	o = 	(is.ie6) ?	(document.getElementById(ebene)) ? document.getElementById(ebene).style : "" : (
		(is.ie55) ?	(document.getElementById(ebene)) ? document.getElementById(ebene).style : "" : (
		(is.ie5) ?	(document.getElementById(ebene)) ? document.getElementById(ebene).style : "" : (
		(is.ns6) ?	(document.getElementById(ebene)) ? document.getElementById(ebene).style : "" : (
		(is.ns4) ?	(document.layers[ebene]) ? document.layers[ebene] : "" : (
		(is.ns3) ?	(document[ebene]) ? document[ebene] : "" : (
		(is.ie4) ?	(document.all[ebene]) ? document.all[ebene].style : "" : (
		(is.ie3) ?	(document.all[ebene]) ? document.all[ebene].style : "" : "" )))))));
	if (o == "") {
		// alert('ebene '+ebene+' nicht vorhanden');
	}else{
		o.visibility = "hidden";
	}
}

function allesweg(ebname,von,bis,ausser,und)  {
	var i;
	if (!ausser) {
		for(i=von;i<=bis;i++)	{
			Aus(ebname+i);
		}
	} else if (!und) {
		for(i=von;i<ausser;i++)	{
			Aus(ebname+i);
		}
		var vonvon=ausser+1;
		for(i=vonvon;i<=bis;i++)	{
			Aus(ebname+i);
		}
	} else {
		var a=false,b=false;
		a = (ausser < und) ? ausser : und;
		b = (a == ausser) ? und : ausser;
		
		if (a<b) {
			for(i=von;i<a;i++)	{
				Aus(ebname+i);
			}
			var vonvon=a+1;
			for(i=vonvon;i<b;i++)	{
				Aus(ebname+i);
			}
			vonvon=b+1;
			for(i=vonvon;i<=bis;i++)	{
				Aus(ebname+i);
			}
		}
	}
}

function allesein(ebname,von,bis)  {
	var i;
	for(i=von;i<=bis;i++)	{
		Ein(ebname+i);
	}
}

function restein() { //soll heißen: Rest ein!
	for (i=1;i<=7;i++) {
		Ein('msq'+i);
		Ein('t1');
	}
}

// Ende allgemeine Ebenenfunktionen   	+++ ende +++ ende +++ ende +++ ende +++ 



// pull-down-menü-funktionen   	+++ start +++ start +++ start +++ start +++ 
var aufklappverz=350; 			// ögerung
var zuklappverz=800;		// ögerung
var id,en,ea,ez,idx;
var id_sub,en_sub,ea_sub,ez_sub,idx_sub;
var id_subub, en_subub;

function stop_timer(){ 			// timer zurücksetzen
	window.clearTimeout(id);
}

function stop_subtimer(){ 		// timer zurücksetzen
	window.clearTimeout(id_sub);
}

function check_timer(layername,von,bis){ 			// ausblenden der menüpunkte nach der Verzögerung
	stop_timer();
	en=layername;
	ea=von;
	ez=bis;
	id=window.setTimeout("allesweg(en,ea,ez);",zuklappverz); // die funktion 'allesweg()' steht weiter	
}								// oben in dieser Datei unter Allgemeine Ebenenfunktionen

function check_subtimer(layername,von,bis){ 			// ausblenden der menüpunkte nach der Verzögerung
	stop_subtimer();
	en_sub=layername;
	ea_sub=von;
	ez_sub=bis;
	id_sub=window.setTimeout("allesweg(en_sub,ea_sub,ez_sub);",zuklappverz);	
}

function show_layer(layname,von,bis,index){ 		// dieses ('index') menü anzeigen
	stop_timer();					// timer ausschalten, der sonst irgendwas macht, denn das dauert jetzt zu lange und ist uns zu undefiniert.
	allesweg(layname,von,bis);			// definierten Ausgangszustand herstellen: alle Nav-Layer verbergen.
	Ein(layname+index);				// nur den angegebenen Layer darstellen.
	check_timer(layname,von,bis);			// Sollte sich jetzt 'x' lang nichts tun, wird die Navigation wieder ausgeblendet - theoretisch!
}

function show_sub(layname,von,bis,index){ 		// dieses ('index') unter-menü anzeigen - eigentlich wie vor
	stop_subtimer();				// neue hirarchie-ebene => neuer timer!

	en_sub=layname;					// ab hier ist alles Vorbereitung auf den 'setTimeout'-Aufruf,
	ea_sub=von;					// der aus unerfindlichen Gründen die Argumente der Funktion 
	ez_sub=bis;					// nicht als Variablen übernehmen kann.
	idx_sub=index;
							// nach Verzögerung wird nun die Unterebene eingeblendet, damit 
	id_sub=window.setTimeout(			// erreichen, bevor die anderen Menupunkte meinen, sie seien 
		"sub_on(en_sub,ea_sub,ez_sub,idx_sub);",// der Benutzer Zeit hat, die Unterebene auch mit der maus zu
		aufklappverz);				// vorher dran.
}

function sub_on(layname,von,bis,index){ 		// Die folgenden 3 Funktion sind nun für das Unter-Unter-Menü. 
	allesweg(layname,von,bis);			// Eigentlich sollten sie genauso komfortabel sein wie bei den 
	Ein(layname+index);				// beiden anderen Hierarchie-Ebenen, allerdings werden sie nur 
}							// für einen Layer gebraucht.

function hide_subub(layname){				
	stop_subtimer();
	window.clearTimeout(id_subub);
	en_subub=layname;
	id_subub=window.setTimeout("Aus(en_subub);",zuklappverz);	
}

function show_subub(layname){ 		
	stop_subtimer();
	window.clearTimeout(id_subub);
	en_subub=layname;
	id_subub=window.setTimeout("Ein(en_subub);",aufklappverz);	
}

// pull-down-menü-funktionen   		+++ ende +++ ende +++ ende +++ ende +++ 








// Scrolling und Ebenenpositionierer 	+++ start +++ start +++ start +++ start +++ 

var sprung, da, wait, zeichen, breite, a, ende, ob, kante, scrollen=true;


function scrollinit(ebene) {

	sprung=1;			// EINGABE: Länge des Sprungs in Pixel

	wait=40;		// EINGABE: Wartezeit bis zum nächsten Sprung in 1 / 1000 sec.
		
	zeichen = 2900;		// EINGABE: Anzahl der Zeichen in der Zeile
	
	breite = 800;		// Startpunkt oder Breite des Fensters. Alternativ zum vorgegebenen Wert:(is.ie) ? (document.body.offsetWidth+5) : (window.innerWidth+5);

	ob = 	(is.ie6) ?	document.getElementById(ebene).style : (
		(is.ie55) ?	document.getElementById(ebene).style : (
		(is.ie5) ?	document.getElementById(ebene).style : (
		(is.ns6) ?	document.getElementById(ebene).style : (
		(is.ns4) ?	document.scwin.document[ebene] : (
		(is.ns3) ?	document.scwin.document[ebene] : (
		(is.ie4) ?	document.all[ebene].style : (
		(is.ie3) ?	document.all[ebene].style : "" )))))));

	if (scrollen) {
		da=sprung;
		ob.left=50;
		kante=ob.left;
		a=parseInt(kante);
		
		if (is.ie6 || is.ie55 || is.ie5 || is.ns6){
			ende = -zeichen; 		// -13 * (zeichen+2);
			window.setTimeout ('bewegen_vor()', wait);
		} else if ( is.ns && !is.ns6 ) {
			ende=-13 * (zeichen+2);
			window.setTimeout ('bewegen_vor()', wait);
		} else if ( is.ie ) {
			ende=-14 * (zeichen+2);
			window.setTimeout ('bewegen_vor()', wait);
		}
	}
}

function scrollstop ()  { scrollen = false; }

function scrollstart () { scrollen = true;
	window.setTimeout ('bewegen_vor()', 300);
}

function scrollstartstop () {
	if (scrollen) { scrollstop(); }
	else if (!scrollen) { scrollstart(); }
	else { alert('Schalter kaputt. \n Bitte informieren Sie die Wartung.');
	}
}

function scrollchange (was) {
	if (was == '+') { scrollstop(); da = 4*sprung; scrollstart(); }
	else if (was == '-') { scrollstop(); da = sprung; scrollstart(); }
	else { alert('Schalter (+/-) akaputt. \n Bitte informieren Sie die Wartung.');}
}


function bewegen_vor() { 
	if (scrollen) {
		
		if (a >= ende) {
			a-=da;
			ob.left=a;
			window.setTimeout ('bewegen_vor()', wait);
		} else {
			a=breite;
//			scrollstop();
			window.setTimeout ('bewegen_vor()', wait);
		}
	}
}

function pfeilhoch(ebene) {
	var ob = (is.ie6) ?	document.getElementById(ebene).style : ((is.ie55) ? document.getElementById(ebene).style : ((is.ie5) ? document.getElementById(ebene).style : ((is.ns6) ? document.getElementById(ebene).style : ((is.ns4) ? document[ebene] : ((is.ns3) ? document[ebene] : ((is.ie4) ? document.all[ebene].style : ((is.ie3) ?	document.all[ebene].style : "" )))))));
	alert(document.body.scrollTop);
	ob.top=5 + (is.ie?document.body.scrollTop:pageYOffset);
	Ein(ebene);

/*posY = 5;		 // absolute position
// set common object reference
if (!document.all) document.all = document;
if (!document.all[ebene].style) document.all[ebene].style = document.all[ebene];

wMark = document.all[ebene].style;
navDOM = window.innerHeight; // Nav DOM flag

wMark.top = posY + (navDOM?pageYOffset:document.body.scrollTop);*/
}
// Scrolling und Ebenenpositionierer 	+++ ende +++ ende +++ ende +++ ende +++ 
















// andere funktionen vom dreamweaver
MM_reloadPage(true);			// umgehen der layer-problematik beim ändern 
					// der fenstergröße im netscape-navigator 4.x
function MM_reloadPage(init) {  	// reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}

					// separate funktion zum einlesen der übergabe-parameter
function MM_findObj(n, d) { 		// v4.0, braucht allein 509 Byte
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

					// bilder vorausladen
function MM_preloadImages() { 		// v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

					// anzeigen / verbergen von ebenen 
function MM_showHideLayers() { 		//v3.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }
}

					// anzeigen / verbergen von bildern 
function MM_swapImgRestore() { 		// v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_swapImage() { 		// v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
