Zusatzinfo = new function(){
	this.pixel = 79;
	this.schrittweise = 7;
	this.richtung = "vertikal";
	this.geschwindigkeit = 10;
	this.doafterthis = "Zusatzinfo.work = false;";
	this.work = false;
	this.elemente = new Array();
}
Zusatzinfo.run = function(element){
	if(this.work == true){
		return false;
	} else{
	this.work = true;
	}	
    
	var id = element.id;
	try{
	var fahrid = id.replace(/Link/g,"");
	}catch(e){this.work = false;return false;}
    if ($(fahrid) != null) {
        try{
        $(fahrid).style.overflow = "hidden";
    	}catch(e){;}
    	if(typeof this.elemente[fahrid] == "undefined"){
    		this.elemente[fahrid] = new Object();
    		this.elemente[fahrid]['manuell'] = "close";
    		
    	}
    	if(this.elemente[fahrid]['manuell'] == "open"){
    		this.elemente[fahrid]['manuell'] = "close";
    		$(id).className ='infoInaktiv';
    	}
    	else{
    		this.elemente[fahrid]['manuell'] = "open";
    		$(id).className ='infoAktiv';
    	}
    	Fahren(fahrid, this.pixel, this.schrittweise,this.richtung,this.geschwindigkeit,this.doafterthis,this.elemente[fahrid]['manuell'])
    }
    else{
        this.work = false;
    }
}

function $(id){
	return document.getElementById(id);
}
function contentSlider(element){
	this.id = element.innerHTML;
	this.schlauch = "blockHolder"
	Fahren(this.schlauch,-660, 20,"schiebeLinks",50,"","");
}
function Fahren(fahrid, pixel, schrittweise,richtung,geschwindigkeit,doafterthis,manuell){
	clearIt(fahrid);
	// Hier wird eine neue Instanz des zu Fahrenden Elementes Erzeugt
	eval("this."+fahrid+" = new Fahren_Instanz(fahrid, pixel, schrittweise,richtung,geschwindigkeit,doafterthis,manuell);");
	var richtung = eval("this."+fahrid+".richtung");
	var funktion = "this."+fahrid+"."+richtung;
	try{
	// Hier wird sichergestellt das die Funktion die "fährt" immer wieder aufgerufen wird
	eval(fahrid+'.interval = window.setInterval("try{eval('+funktion+');}catch (e){;}",'+geschwindigkeit+');');
	}catch(e) {;}
}
   
// Funktion die alle laufenden Instanzen des jeweiligen Block Elements anhält
function clearIt(id){
		try{
			eval('window.clearInterval('+id+'.interval)');
		}catch (e){;}
}
/**
* Eine Funktion die den Inhalt eines Blockelemnts langsam auf und Zufahren lässt
* @params : {fahrid} :Die id des Blockelements, welches Auf- bzw zfahren soll
* @params : {pixel} :Die Anzahl der Pixel die das Element fahren soll
* @params : {schrittweise} :Die Schrittweise in Pixel die solch ein Element pro Aufruf fahren soll
* @params  : {richtung} : Kann "horizontal" oder "vertikal" sein
* @params : {geschwindigkeit| : Geschwindikeit in Millisekunden pro schritt
* @params(optional) : {doafter} : code der durch eval nach abschluss der wiederaufrufe ausgeführt wird  
* @params(optional) : {manuell} : Kann "open" oder "close" erhalten.
**/
function Fahren_Instanz(fahrid, pixel, schrittweise, richtung ,geschwindigkeit, doafterthis, manuell){

	// Eine Funktion die den ÜbergebenenString als Javascript-Code ausführt
	this.doafter = function(dothis){
	try{
		eval(dothis);
	}catch(e){;}
	}
	// Funktion die, die passende funktion die für die benötigte Richtung zurückgibt
	this.welche_richtung = function(richtung,pixel){
		if(richtung == "horizontal"){
			this.width = pixel;
			if(this.manuell == "" || (typeof this.manuell == "undefined")){
				try{
					// Liest die aktuelle Weite des Blockelementes aus
					var weite = $(this.id).style.width;
				}catch(e){;}
				try{
					// Entfernt die Maßeinheit
					weite = Number(weite.replace(/px/g, ""));
				}catch(e){;}
				if(weite > 0){
					this.i = pixel;
					return "links()";
				}
				else
				{
					this.i = 0;
					return "rechts()";
				}
			}
			else if(this.manuell == "open")
			{
				this.i = 0;
				return "rechts()";
			}
			else
			{
				this.i = pixel;
				return "links()";
			}
		}
		else if(richtung == "vertikal"){
			this.height = pixel;
			if(this.manuell ==  "" || (typeof this.manuell == "undefined")){
				try{
					// Liest die aktuelle Höhe des BlockElementes aus
					var höhe = $(this.id).style.height;
				}catch(e){;}
				try{
					// Entfernt die Maßeinheit
					höhe = Number(höhe.replace(/px/g, ""));
				}catch(e){;}
				if(höhe > 0){
					this.i = pixel;
					return "oben()";
				}
				else{
					this.i = 0;
					return "unten()";
				}
			}
			else if(this.manuell == "open")
			{
				var höhe = $(this.id).style.height;
				höhe = Number(höhe.replace(/px/g, ""));
				this.i = höhe;
				return "unten()";
			}
			else
			{
				this.i = pixel;
				return "oben()";
			}
		}
		else if(richtung == "schiebeLinks"){
			this.leftZiel = pixel;
			var left = $(this.id).style.left;
			left = Number(left.replace(/px/g, ""));
			this.i = left;
			return "positionLeft_reduce()";
		}
		else if(richtung == "schiebeRechts"){
			this.leftZiel = pixel;
			var left = $(this.id).style.left;
			left = Number(left.replace(/px/g, ""));
			this.i = left;
			return "positionLeft_increase()";
		}
		else // Bei jeder anderen Eingabe bricht das Programm ab
		{
			return false;
		}
		
		
	}
	// Hier wird verhindert dass die selbe Instanz nochmals läuft
	clearIt(this.id);
	// Die Id des Blockelementes und Gleichzeitig der Name der Instanz
	this.id = fahrid;
	// Die Schrittweise gibt in Pixel an wie weit das Element pro Intervaaufrufe fahren soll, wenn sie kleiner null ist bricht das Programm ab
	if(schrittweise <= 0) return false;
	this.schrittweise = schrittweise;
	this.manuell = manuell;
	// Die Richtung gibt an ob das Element vertikal oder Diagonal fahren soll
	this.doafterthis = doafterthis;
	this.richtung = this.welche_richtung(richtung,pixel);
	//this.interval = window.setInterval(String(this.id)+"."+this.richtung+"()",10);
}

// Funktion die das Element  von unten nach  Oben fahren lässt
Fahren_Instanz.prototype.oben = function(){
		this.i -= this.schrittweise;
		try{
			$(this.id).style.height = String(this.i)+"px";
		}catch(e){;}
		var i = this.i;
		// Die Abbruchbedingungen
		if(i <= 0){
			try{
				$(this.id).style.height = "1px";
			}catch(e){;}
			try{
				$(this.id).style.display = "none";
			}catch(e){;}
			clearIt(this.id);
			try{
				this.doafter(this.doafterthis);
			}catch(e){;}	
		}
	}
// Funktion die das Element nach untenFahren lässt
Fahren_Instanz.prototype.unten = function(){
		this.i += this.schrittweise;
		try{
			$(this.id).style.height = String(this.i)+"px";
		}catch(e){;}
		var i = this.i;
		try{
				$(this.id).style.display = "block";
		}catch(e){;}
		var höhe = this.height;
		// Die Abbruchbedingungen
		if(i >= höhe){
			try{
				$(this.id).style.height = höhe+"px";
			}catch(e){;}
			clearIt(this.id);
			try{
				this.doafter(this.doafterthis);
			}catch(e){;}
		}
	}
// Funktion die das Element nach Links Fahren lässt
Fahren_Instanz.prototype.links = function(){
		this.i -= this.schrittweise;
		try{
			$(this.id).style.width = String(this.i)+"px";
		}catch(e){;}
		var i = this.i;
		// Die Abbruchbedingungen
		if(i <= 0){
			try{
				$(this.id).style.width = "0px";
			}catch(e){;}
			clearIt(this.id);
			try{
				this.doafter(this.doafterthis);
			}catch(e) {;}
		}
	}
// Funktion die das Element nach Rechts Fahren lässt
Fahren_Instanz.prototype.rechts = function(){
		this.i += this.schrittweise;
		try{
			$(this.id).style.width = String(this.i)+"px";
		}catch(e){;}
		var i = this.i;
		var weite = this.width;
		// Die Abbruchbedingungen
		if(i >= weite){
			clearIt(this.id);
			try{
				this.doafter(this.doafterthis);
			}catch(e) {;}
		}
	}
Fahren_Instanz.prototype.positionLeft_reduce = function(){
		$("error").innerHTML = this.i;
		try{
			this.i -= this.schrittweise;
		}catch(e){;}
		try{
			$(this.id).style.left = String(this.i)+"px";
		}catch(e){;}
		var i = this.i;
		var left = this.leftZiel;
		// Die Abbruchbedingungen
		if(i <= left){
			clearIt(this.id);
			try{
				this.doafter(this.doafterthis);
			}catch(e) {;}
		}
}
Fahren_Instanz.prototype.positionLeft_increase = function(){
		try{
			this.i += this.schrittweise;
		}catch(e){;}
		try{
			$(this.id).style.left = String(this.i)+"px";
		}catch(e){;}
		var i = this.i;
		var left = this.leftZiel;
		// Die Abbruchbedingungen
		if(i >= left){
			clearIt(this.id);
			try{
				this.doafter(this.doafterthis);
			}catch(e) {;}
		}
}