function niftyAufruf() {
	Nifty("a.button", "transparent");
	Nifty("#loginZelle", "transparent"); 
	Nifty("div#menu a", "top transparent");
	Nifty("#kopfbereich", "top transparent");
}

function hoeheSetzen() {
	var s = screen.height;
	var wInner =(window.innerHeight);
	if (isNaN(wInner)) {
		wInner = document.body.offsetHeight;
	}	
	var wOut = (window.outerHeight);
	if (isNaN(wOut)) {
		wOut = wInner + 145;
	}
	if (s == wOut) {
		var px = s - (wOut - wInner) - 142;}
	else {
		var px = s - (wOut - wInner) - 150;
	}
	var txt = px + "px";
	
	document.getElementById("hauptbereich").style.minHeight = txt; 
}	

function farbKlickDoppelt(pThis) {
	// Funktion wird bei einem Doppelklick auf den Farbauswahlbereich aufgerufen
	var d = document.getElementById(pThis);
	if (document.defaultView){
		var docStyle = document.defaultView.getComputedStyle(d, null);
		var h = docStyle.getPropertyValue("background-color");
	} else {
		var h = document.getElementById(pThis).currentStyle.backgroundColor;
	}
	
	cssObjekt.setCssWert(h);
	
	/*
	if (orgClass) {
		var classListe = new Array();
		classListe = getElementsByClassName(orgDoc, orgClass);
		for (i=0; i<classListe.length; i++) {
			classListe[i].style.backgroundColor = h;
		}
		opener.cssObjekt.setCss(classListe[0], "background-color", h, orgClass);
	} else {
		orgDoc.getElementById(opener.elementId).style.backgroundColor = h;
		opener.cssObjekt.setCss(orgDoc.getElementById(opener.elementId), "background-color", h, "");
	}
	*/
}

function farbKlickEinfach(pThis) {
	// Funktion wird aufgerufen bei einem einfachen Klick auf den Farbauswahlbereich
	var d = document.getElementById(pThis);
	if (zuletztAngeklickt !=  "") {
		document.getElementById(zuletztAngeklickt).className = "s1";
	}	
	d.className = "angeklickt";
	zuletztAngeklickt = d.id;
	if (document.defaultView){
		var docStyle = document.defaultView.getComputedStyle(d, null);
		var h = docStyle.getPropertyValue("background-color");
	} else {
		var h = document.getElementById(pThis).currentStyle.backgroundColor;
	}
	document.getElementById("farbanzeiger2").style.backgroundColor = h;
	document.getElementById("farbeNeu").firstChild.nodeValue = h;
	farben.farbenSetzen(h);
	farben.elementFaerben(document.getElementById("r1"), "r", 32);
	farben.elementFaerben(document.getElementById("r2"), "r", -32);
	farben.elementFaerben(document.getElementById("g1"), "g", 32);
	farben.elementFaerben(document.getElementById("g2"), "g", -32);
	farben.elementFaerben(document.getElementById("b1"), "b", 32);
	farben.elementFaerben(document.getElementById("b2"), "b", -32);
}

/*
function farbe(pDocument, pElement) {
	// Liefert die Farbe zu einem HTML-Objekt
	var d = pDocument.getElementById(pElement);
	
	if (pDocument.defaultView){
		var docStyle = pDocument.defaultView.getComputedStyle(d, null);
		var h = docStyle.getPropertyValue("background-color");
	} else {
		var h = d.currentStyle.backgroundColor;
	}
	return h;
}
*/

function oeffne(p) {
	// p: Angeklicktes HTML-Element
	/*
	if (p) {
		cssObjekt.setElementId(p.id);
	} else {
		cssObjekt.setElementId("");
	}
	*/
	// Erst mal deaktiviert
	//var F1 = window.open("Struktur.html","Struktur","width=400,height=400px,left=300, top=10, resizable, menubar=yes, scrollbars");
	//F1.focus();
}


function fAendern(pWas){
	farben.farbenAendern(pWas);
	document.getElementById("farbanzeiger2").style.backgroundColor = farben.rgbString();
	document.getElementById("farbeNeu").firstChild.nodeValue = farben.rgbString();
}
function pseudo(pseudoJN) {
	if (pseudoJN) {
		var pseudoTextListe = new Array("Hover", "Link", "Visited", "Active", "-");
		var pseudoAktuellListe = new Array("", "Hover", "Link", "Visited", "Active" );
		var pseudoIndex = 0;
		this.pseudoKlickText = pseudoTextListe[pseudoIndex];
		this.aktuellPseudo = pseudoAktuellListe[pseudoIndex];
	} else {
		this.pseudoKlickText = "";
		this.aktuellPseudo = "";
	}
	
	this.nextPseudo = function() {
		pseudoIndex ++;
		if (pseudoIndex > 4) pseudoIndex = 0;
		this.pseudoKlickText = pseudoTextListe[pseudoIndex];
		this.aktuellPseudo = pseudoAktuellListe[pseudoIndex];
	};
}

function Css(pDocument) {
	this.documentIntern = pDocument;
	this.cssListe = new Array();
	this.idx = 0;
	
	this.init = function() {
		this.aktElementObj;
		this.aktElementId;
		this.aktTagName;
		this.aktPseudoJN = false;
		this.aktElementPseudo = "";
		this.lastEigenschaft;
		this.nextPseudo = "";
		this.lastSelektor = "";
		this.lastStyle;
	};
	
	this.init();
	
	this.setElementId = function(pElementId) {
		this.init();
		if (pElementId.length > 0) {
			this.aktElementObj = this.documentIntern.getElementById(pElementId);
			this.aktElementId = pElementId;
			this.aktTagName = this.aktElementObj.nodeName.toLowerCase();
			if (this.aktTagName == "a")
				this.aktPseudoJN = true;
		}	
	};
	
	this.setPseudo = function(pPseudo) {
		this.aktElementPseudo = pPseudo;
	};	
	
	this.getCssWert = function(pEigenschaft, pPseudo)
	// Die Funktion liest einen Wert aus dem Stylesheet
	{
		this.lastEigenschaft = pEigenschaft;
		// Selektor ermittlen
		var nodename = new String (this.aktElementObj.nodeName);
		var nodeKlein = nodename.toLowerCase();
		var classname = "";
		var selektor = "";
		
		if (this.aktElementObj.className) {
			classname = this.aktElementObj.className;
	        selektor = nodeKlein + "." + classname;
	        if (pPseudo) 
	        	{selektor = selektor + ":" + pPseudo};
		} else {
			selektor = "#" + this.aktElementObj.id;
		}
		selektor = selektor.toLowerCase();
		
		// StyleSheet durchsuchen
		var css = this.documentIntern.styleSheets[0];
		if (css.cssRules)
			var rules = css.cssRules;
		else
			var rules = css.rules;
		
		var h = "";
		
		for (var i=0; i<rules.length; i++) {
			var r = rules[i];
			var stext = r.selectorText.toLowerCase();
			if (stext == selektor) {
				h = r.style[pEigenschaft];
				this.lastStyle = r.style;
				this.lastSelektor = selektor;
				break;
			}	
		}
		
		if (h.length == 0) {
			// Kein Eintrag im Stylesheet gefunden
			
			if (this.documentIntern.defaultView){
				var docStyle = this.documentIntern.defaultView.getComputedStyle(this.aktElementObj, null);
				var h = docStyle.getPropertyValue(this.umsetzenEigenschaft(pEigenschaft));
			} else {
				// TODO Eigenschaft ändern
				var h = this.aktElementObj.currentStyle.backgroundColor;
			}
		}
		
		return h;
	};
	
	this.setCssWert = function(pWert)
	// Setzt mit dem übergebenen Wert die zuletzt bearbeitete Eigenschaft
	// im zuletzt ermittelten Selektor
	{
		if (this.lastStyle) {
			// Stylesheet-Eigenschaft vorhanden
			this.lastStyle[this.lastEigenschaft] = pWert;
			this.setCss(this.aktElementObj, this.lastEigenschaft, pWert, this.aktElementObj.className);
		} else {
			if (this.aktElementObj.className) {
				var classListe = new Array();
				classListe = getElementsByClassName(orgDoc, orgClass);
				for (i=0; i<classListe.length; i++) {
					classListe[i].style.backgroundColor = h;
				}
				this.setCss(this.aktElementObj, this.umsetzenEigenschaft(this.lastEigenschaft), pWert, this.aktElementObj.className);
			} else {
				this.aktElementObj.style.backgroundColor = pWert;
				this.setCss(this.aktElementObj, this.umsetzenEigenschaft(this.lastEigenschaft), pWert, "");
			}
		}
	};
	
	this.setCss = function(pElement, pEigenschaft, pCssWert, pKlasse)
	// Die Funktion schreibt die geänderten Elemente in einen Array
	{
		var listElement = new Array();
		
		listElement["Element"] = pElement;
		listElement["Eigenschaft"] = this.umsetzenEigenschaft(pEigenschaft);
		listElement["Wert"] = pCssWert;
		if (this.aktElementPseudo.length > 0) 
			listElement["Klasse"] = pKlasse + ":" + this.aktPseudo;
		else	
			listElement["Klasse"] = pKlasse;
		this.cssListe[this.idx]= listElement;
		this.idx++;
	};
	
	this.getCssSatz = function(i) 
	{
		return this.cssListe[i];
	};
	
	this.clearCssListe = function(i) 
	// Die Funktion löscht die Einträge in der Liste
	{
		this.cssListe = new Array();
		this.idx = 0;
	};
	
	this.umsetzenEigenschaft = function(pEigenschaft) 
	{  
		switch (pEigenschaft) {
		case "backgroundColor": return "background-color";
		}
		return pEigenschaft;
	};
	
	this.getTitle = function() 
	{
		return this.aktElementObj.title;
	};
	
}

function rgb(rgbString) {
	this.rot = 0;
	this.gruen = 0;
	this.blau = 0;
	
	if (rgbString.length > 0) {
		this.farbenSetzen(rgbString);
	}	
	
	this.farbenSetzen = function(rgbString) 
	{
		var klammerLinks = rgbString.search(/\(/);
		var klammerRechts = rgbString.search(/\)/);
		var zahlen = rgbString.slice(klammerLinks + 1, klammerRechts);
		this.rot = parseInt(zahlen.slice(0, zahlen.indexOf(",")));
		this.gruen = parseInt(zahlen.slice(zahlen.indexOf(",")+1, zahlen.lastIndexOf(",")));
		this.blau = parseInt(zahlen.slice(zahlen.lastIndexOf(",") + 1));
	};
	
	this.farbenAendern = function(pWas) 
	{
		switch(pWas) {
		case 'r+':
			if (this.rot == 255) {
				this.rot = 0;
			} else { 	
				this.rot ++;
			}	
			break;
		case 'r-':
			if (this.rot == 0) {
				this.rot = 255;
			} else { 	
				this.rot --;
			}	
			break;
		case 'g+':
			if (this.gruen == 255) {
				this.gruen = 0;
			} else { 	
				this.gruen ++;
			}	
			break;
		case 'g-':
			if (this.gruen == 0) {
				this.gruen = 255;
			} else { 	
				this.gruen --;
			}	
			break;
		case 'b+':
			if (this.blau == 255) {
				this.blau = 0;
			} else { 	
				this.blau ++;
			}	
			break;
		case 'b-':
			if (this.blau == 0) {
				this.blau = 255;
			} else { 	
				this.blau --;
			}	
			break;	
		}
	};
	this.rgbString = function() {
		return "rgb(" + this.rot + ", " + this.gruen + ", " + this.blau + ")";
	};
	
	this.elementFaerben = function(pThis, pFarbe, pDiff) {
		var diff = pDiff;
		var r = this.rot;
		var g = this.gruen;
		var b = this.blau;
		switch(pFarbe) {
		case 'r':
			r+=diff;
			if (r > 255) r-=255;
			if (r<0) r+=255;
			break;
		case 'g':
			g = g + diff;
			if (g > 255) g = g - 255;
			if (g<0) g = g + 255;
			break;
		case 'b':
			b = b + diff;
			if (b > 255) b = b - 255;
			if (b<0) b = b + 255;
			break;
		}
		var fs = "rgb(" + r + "," + g + "," + b + ")";
		pThis.style.backgroundColor = fs;
	};
}
	
function listeId(pDoc){
	var F2 = window.open("Struktur.html","Struktur","width=400,height=400px,left=300, top=10, resizable, menubar=yes, scrollbars");
	F2.focus();
}
function getElementsByClassName (pDoc, pClass) {
	var root = pDoc.getElementsByTagName("body");
	var cNode = root[0].childNodes;
	var liste = new Array();
	liste = getElementsByClassNameIntern (pClass, cNode, liste);
	return liste;
}

function getElementsByClassNameIntern (pClass, cNode, liste) {
	for (var i = 0; i < cNode.length; i++) {
	   	 if (cNode[i].nodeType == 1) {
	   	 	if (cNode[i].className){
	   	 		if (cNode[i].className == pClass) liste.push(cNode[i]);
	   	 	}	
	   	 }	
  	 	if (cNode[i].hasChildNodes()) {
  	   	 	liste = getElementsByClassNameIntern (pClass, cNode[i].childNodes, liste);
  	 	}	
	 }
	 return liste;
}



