<!--
// ##############  KONFIG-ZONE #####################
// *** Liste der zu positioniernden divs ***
array_divs = new Array("synthie","menuDiv","synthiebackground","fontSlider","content","scrollWheel","fontSliderBG","scrollWheelBG");

// einige Werte zum Postitionieren der divs
fontSliderRelX  = 697;
fontSliderRelY  = 204;
fontSliderMinY  = 152;
fontSliderMaxY  = 233;
FontSizeMin     = 10;
FontSizeMax     = 19;

synthieRelX     = 0;
synthieRelY     = 0;

menuDivRelX     = 20;
menuDivRelY     = 20;

synthiebackgroundRelX = -405;
synthiebackgroundRelY = -354;

contentRelX     = 42;
contentRelY     = 150;
contentWidth    = 528;
contentHeight   = 210;

scrollWheelRelX = 621;
scrollWheelRelY = 166;
scrollWheelMinY = 166;
scrollWheelMaxY = 326;

fontSliderBGRelX = 695;
fontSliderBGRelY = 150;

scrollWheelBGRelX = 615;
scrollWheelBGRelY= 154;

offsetOben = 0;
offsetLinks = 0;

FontSize = 13;

// *** Hoehe des content-divs ***
divheight=0;

// Werte fürs Verschieben der Slider
dragFlag     = false;
mouseOffsetX = 0;
mouseOffsetY = 0;
Slider       = "";

// ##############  ENDE KONFIG-ZONE #####################

// *** CROSS-BROWSER COMPATIBILITY ***

var isDOM   = (document.getElementById ? true : false); 
var isIE4   = ((document.all && !isDOM) ? true : false);
var isIE5   = ((document.all && isDOM) ? true : false);
var isNS4   = (document.layers ? true : false);
var isNS6   = ((isDOM && !isIE5) ? true : false);
var isDyn   = (isDOM || isIE4 || isNS4);

var isOpera = (navigator.userAgent.toLowerCase().match(/opera/) ? true : false);
var isKonqueror = (navigator.userAgent.toLowerCase().match(/konqueror/) ? true : false);
var isIEMac = ( ( (navigator.appVersion.toLowerCase().match(/macintosh/) ) || ( navigator.appVersion.toLowerCase().match(/macpowerpc/) ) ) && (document.all) ) ? true : false ;

isDOM = (((isOpera) || (isKonqueror) || (isIEMac)) ? false : isDOM);

function getRef(id) {
	if (isDOM) return document.getElementById(id);
	if (isIE4) return document.all[id];
	if (isNS4) return document.layers[id];
}

function getSty(id) {
	return (isNS4 ? getRef(id) : getRef(id).style);
} 

function AttachEvent(Objekt,Event,Funktion) {
	// funktioniert so weit ganz gut
	// Eventuell muss man bestimmte EventHandler in "Übersetzungstabelle" verarbeiten
	if ( (Objekt != "") || (Objekt == "body") ) Objekt = "getElementById(\""+Objekt+"\",true).";
	if (isNS6) {
		eval ("document." + Objekt + "addEventListener(\"" + Event + "\"," + Funktion + ",true)");
	}
	else if (isIE5) {
		eval ("document." + Objekt + "attachEvent(\"on"    + Event + "\"," + Funktion + ")");
	}
}

// *** Ende CROSS-BROWSER COMPATIBILITY ***


function startDrag(e) {
	// Berechnet Abstand zwischen Mausposition und Ursprungskoordinaten des zu verschiebenden Divs 
	// und signalisiert der MoveSlider-Funktion, dass sie loslegen darf (via dragFlag)
	if (!dragFlag) {
		if (Slider=="") {
			// Welcher Slider soll denn bewegt werden??
			if (isNS6)      Slider = e.currentTarget.id;
			else if (isIE5) Slider = event.srcElement.id;
		}
		DivPosY      = parseInt(document.getElementById(Slider).style.top);
		if (isNS6){
			//if (e.button==0) 
			mousePosY = pageYOffset+e.clientY;
		}
		else if (isIE5) {
			//if (e.button==1) 
			mousePosY = document.body.scrollTop + event.clientY;
		}
		mouseOffsetY = mousePosY - DivPosY;
		dragFlag = true;
	}
	return false;
}

function stopDrag(e) {
	// Signalisiert der MoveSlider-Funktion, dass sie nicht mehr arbeiten soll
	dragFlag = false;
	Slider="";
	return false;
}

function moveSlider(e) {
	//Nur für Testzwecke!!
	//document.myform.input.value = Slider;
	// Bewegt den entsprechenden Schieberegler
	if (dragFlag) {
		el=document.getElementById(Slider);

		if (isNS6) {
			//if (e.button==0)   
			NewPosY = pageYOffset + e.clientY - mouseOffsetY;
		}
		else if (isIE5){
			//if (e.button == 1) 
			NewPosY = document.body.scrollTop + event.clientY - mouseOffsetY;
		}
		MinPosY = eval(Slider+"MinY") + offsetOben
		MaxPosY = eval(Slider+"MaxY") + offsetOben;
		if      (NewPosY < MinPosY) el.style.top = MinPosY;
		else if (NewPosY > MaxPosY) el.style.top = MaxPosY;
		else                        el.style.top = NewPosY;
		
		switch(Slider) {
			case "fontSlider" : setTimeout("resizeFont(el.style.top)",50); break;
			case "scrollWheel": setTimeout("scrollContent(el.style.top)",50); break;
		}
	}
	return false;
}

function DivInitPos() {
	// wie weit ist synthie vom fensterrand weg?
	offsetLinks = getRef("marker").offsetLeft;
	offsetOben  = getRef("marker").offsetTop;
	// divs verschieben & anzeigen
	for(i=0;i<array_divs.length;i++) {
		PosX    = offsetLinks + eval(array_divs[i]+"RelX");
		PosY    = offsetOben + eval(array_divs[i]+"RelY");
		getSty(array_divs[i]).left = PosX;
		getSty(array_divs[i]).top  = PosY;
		getSty(array_divs[i]).visibility = "visible";
	}
	divHeight = document.getElementById("content").offsetHeight;
	return false;
}

function resizeHandler() {	
	DivInitPos();
	return false;
}

function resizeFont(SliderPos) {
	// fontFaktor: Steigung der Abb-Fkt von SliderPos nach Fontgröße
	fontFaktor = - ((FontSizeMax - FontSizeMin) / (fontSliderMaxY - fontSliderMinY));
	// Startwert: Normierter x-Wert mit f(x) = FontSizeMin
	Startwert = (parseInt(SliderPos) - fontSliderMinY - offsetOben)
	// Achsenabschnitt: FontSizeMax
	FontSize = Math.round((fontFaktor * Startwert) + FontSizeMax);
	if (isDOM) rekursivDOMFontSize(document.getElementById("content"));
	else {
		adresse = location.href.replace(/&FontSize=../,"&FontSize="+FontSize)
		window.location.href = adresse;
	}
	return false;
}

function rekursivDOMFontSize(Knoten) {
	var Schleife = Knoten.childNodes.length;
	for (var i=0; i<Schleife; i++) {
		if (Knoten.childNodes[i].nodeType == 1) Knoten.childNodes[i].style.fontSize = FontSize + "px";
		if (Knoten.childNodes[i].hasChildNodes()) rekursivDOMFontSize(Knoten.childNodes[i]);
	}
}

function scrollContent(SliderPos) {
	with(document.getElementById("content")) {
		contentDivHoehe = offsetHeight;
		
		if (contentDivHoehe > contentHeight) {
			// scrollFaktor: Steigung der Abb-Fkt von WheelPos nach scrollPos
			scrollFaktor = (contentDivHoehe - contentHeight) / (scrollWheelMaxY - scrollWheelMinY);
			// Startwert: Normierter x-Wert mit f(x) = 0			
			Startwert = (parseInt(SliderPos) - scrollWheelMinY - offsetOben);
			//Achsenabschnitt
			scrollOffset = scrollFaktor * Startwert;
			if (isIE5)        clipString = "rect (" + parseInt(scrollOffset) + "px, " + contentWidth + "px, " + parseInt(scrollOffset+contentHeight) + "px, 0px)"; 
			else if (isNS6)   clipString = "rect("  + parseInt(scrollOffset) + "px " + contentWidth + "px " + parseInt(scrollOffset+contentHeight) + "px 0px)"; 
			style.clip = clipString;
			style.top  = offsetOben + contentRelY - scrollOffset ;
		}
	}
	return false;
}

function hiliteDiode(Num,Farbe) {
	DiodeImgName = "dio-"+Num;
	if (!document.images[DiodeImgName].src.match(/diode-green.gif/)) {
		document.images[DiodeImgName].src="img/diode-"+Farbe+".gif";
	}
}

function setFontSizeCookie() {
	if (!window.location.search.match(/pg=kontakt/)) document.cookie = "FontSize="+FontSize;	
}

function getFontSizeCookie() {
	if (document.cookie) {
		tmpArray = document.cookie.split(";")
		for (i=0;i<tmpArray.length;i++) {
			if (tmpArray[i].match("FontSize")) {
				tmp2Array = tmpArray[i].split("=");
				FontSize = tmp2Array[1];
			}
		}
	}
}

function calcFontSliderPos() {
	Steigung        = (fontSliderMinY - fontSliderMaxY) / (FontSizeMax - FontSizeMin);
	Normierung      = FontSize - FontSizeMin;
	Achsenabschnitt = fontSliderMaxY + offsetOben;
	fontSliderRelY  = Normierung * Steigung + Achsenabschnitt;
}

function init() {
	if (window.location.search.match(/pg=kontakt/)) FontSize = 13; // Kontaktformular wird mit 12 Px Font am besten dargestellt
	else getFontSizeCookie(); // Eingestellte Schriftgröße aus Cookie auslesen
	// Position des Fontsliders in Abhängigkeit der Fontgröße berechnen
	calcFontSliderPos()
	// Fontgrößen im Dokument manipulieren
	resizeFont(fontSliderRelY);
	// Alle frei positionierbaren Divs an Ihre Stelle schubsen
	window.setTimeout("DivInitPos();", 1000);
	
	// Eventhandler definieren
	AttachEvent("",              "mousemove", "moveSlider");
	AttachEvent("",              "mouseup",   "stopDrag"  );
	AttachEvent("fontSlider",    "mousedown", "startDrag" );
	AttachEvent("fontSliderBG",  "click",     "clickSlider" );
	AttachEvent("scrollWheel",   "mousedown", "startDrag" );
	AttachEvent("scrollWheelBG", "click",     "clickSlider" );
}

function returnFalse(e) {
	return false;
}

function openPrint(Seite,baseDir) {
	document.images['prnButton'].src="img/prnbtn-n.gif";
	URL = baseDir + "print.php/"+Seite;
	popup = window.open(URL,"Druck","height=480,width=640,dependent=no,status=yes,locationbar=yes,resizable=yes,menubar=yes,scrollbars=yes");
}

function clickSlider (e) {
	if (isNS6)      MyDiv = e.target.parentNode.id;
	else if (isIE5) MyDiv = e.srcElement.parentNode.id;
	Slider=MyDiv.substring(0,MyDiv.length-2);
	MinPosY = eval(Slider+"MinY") + offsetOben
	MaxPosY = eval(Slider+"MaxY") + offsetOben;

	if (Slider == "scrollWheel") {
		contentDivHoehe = parseInt(document.getElementById("content").offsetHeight);
		contentDivPosY = parseInt(document.getElementById("content").style.top);
		SchieberHoehe = parseInt(document.getElementById(Slider).offsetHeight);
		SchieberPosY = parseInt(document.getElementById(Slider).style.top);
		MausY = e.clientY;
		//Wie oft kann man den Text bildweise scrollen?
		RasterWeite = Math.ceil(contentDivHoehe / (contentHeight - parseInt(FontSize)));
		
		SchieberStreckeJeRaster = parseInt((scrollWheelMaxY-scrollWheelMinY)/RasterWeite);
		//alert(SchieberStreckeJeRaster);
		if (MausY > (SchieberPosY + SchieberHoehe )) {
			NewPosY = parseInt(getSty(Slider).top) + SchieberStreckeJeRaster;
		}
		if (MausY < (SchieberPosY )) {
			NewPosY = parseInt(getSty(Slider).top) - SchieberStreckeJeRaster;
		}

		if      (NewPosY < MinPosY) getSty(Slider).top = MinPosY;
		else if (NewPosY > MaxPosY) getSty(Slider).top = MaxPosY;
		else                        getSty(Slider).top = NewPosY;
		scrollContent(getSty(Slider).top);

	}
	else if (Slider == "fontSlider") {
		NewPosY = e.clientY - parseInt(getSty(Slider).height)/2;
		if      (NewPosY < MinPosY) getSty(Slider).top = MinPosY;
		else if (NewPosY > MaxPosY) getSty(Slider).top = MaxPosY;
		else                        getSty(Slider).top = NewPosY;

		resizeFont(getSty(Slider).top)
	}
	Slider="";
	return false;
}

function scrollTop() {
	TopPos = scrollWheelMinY + offsetOben;
	document.getElementById("scrollWheel").style.top = TopPos;
	scrollContent(TopPos);
}
//-->


