var iedom = document.all || document.getElementById;

var leftrightslide = "";
var sliderImages = new Array();
var sliderId = "";
var slidespeed = 0;
var copyspeed = 0;
var sliderwith = 0;
var sliderContent="";

var preImages = new Array();
var preFilled=false;
var minImages=6;
var loaded = new Array();
var currCount = 0;
	
function initSlider(sliderid, width, height, speed) {

	// prepare vars
	sliderId=sliderid;
	var sliderwidth = width;
	var sliderheight = height;
	
	if (!speed) {
		var speed = 1;
	}
	copyspeed = speed;	
	slidespeed = speed;

	// get slider images
	var strSI = String(document.getElementById("sliderimages").innerHTML);
	sliderImages = strSI.split(',');
	
	var img = new Array();
	for ( var i = 0; i < sliderImages.length; i++) {
		img.push("<img class=\"laufband\" src=\"" + sliderImages[i] + "\">");			
	}

	var repeatimages=1;
	if (sliderImages.length < minImages) {
		repeatimages = parseInt(minImages/sliderImages.length);
	}
	var images="";
	for ( var i = 0; i <= repeatimages; i++) {
		images=images+img.join("");		
	}
	 
	leftrightslide = '<nobr>' + images + '</nobr>';
	// slider content
	content = '';
	
	if (iedom || document.layers) {
		with (document) {
			content += '<table border="0" cellspacing="0" cellpadding="0" class="slider");"><tr><td>';
			if (iedom) {
				content += '<div id="slideri" nowrap="nowrap" style="visibility:hidden;position:relative;width:' + sliderwidth + ';height:' + sliderheight + ';overflow:hidden;">';
				content += '<div nowrap="nowrap" style="position:absolute;width:' + sliderwidth + ';height:' + sliderheight + ';" onMouseover="copyspeed=0" onMouseout="copyspeed=slidespeed">';
				content += '<div nowrap="nowrap" id="slider1" style="top:0px;left:0px;" class="slider"></div>';
				content += '<div nowrap="nowrap" id="slider2" style="top:0px;left:0px;" class="slider"></div>';
				content += '</div></div>';
			} else if (document.layers) {
				content += '<ilayer width=' + sliderwidth + ' height=' + sliderheight + ' name="ns_slidemenu" bgColor="#ffffff">';
				content += '<layer name="ns_slidemenu2" left="0" top="0" onMouseover="copyspeed=0" onMouseout="copyspeed=slidespeed"></layer>';
				content += '<layer name="ns_slidemenu3" left="0" top="0" onMouseover="copyspeed=0" onMouseout="copyspeed=slidespeed"></layer>';
				content += '</ilayer>';
			}
			content += '</td></tr></table>';
		}
		
		document.getElementById(sliderId).innerHTML = content;
		
		loadImages();
		
	}

}

function startSlider() {
	
	fillSlider();
	
	sliderwith = document.getElementById("slider2").offsetWidth;;
	
	document.getElementById("slider2").style.left = sliderwith+ "px";	
	
	document.getElementById("slider1").style.visibility = "visible";
	document.getElementById("slideri").style.visibility = "visible";
	document.getElementById("slider2").style.visibility = "visible";
	
	lefttime = setInterval("slideleft()", 30);
	
}

function fillSlider(imagecontent) {
		
	if (!imagecontent) {
		imagecontent=leftrightslide;
	} 
	if (iedom) {
		cross_slide = document.getElementById ? document.getElementById("slider1") : document.all.slider1;
		cross_slide2 = document.getElementById ? document.getElementById("slider2") : document.all.slider2;
		cross_slide.innerHTML = cross_slide2.innerHTML = imagecontent;
		cross_slide2.style.left = sliderwith +"px";
	} else if (document.layers) {
		ns_slide = document.ns_slidemenu.document.ns_slidemenu2;
		ns_slide2 = document.ns_slidemenu.document.ns_slidemenu3;
		ns_slide.document.write(imagecontent);
		ns_slide.document.close();
		ns_slide2.left = sliderwith + 20;
		ns_slide2.document.write(imagecontent);
		ns_slide2.document.close();
	}
	
}

function prefillSlider() {
	
	var img = new Array();
	for ( var i = 0; i < minImages; i++) {
		img.push("<img class=\"laufband\" src=\"" + sliderImages[i] + "\">");			
	}
	
	imagecontent = '<nobr>' + img.join("") + '</nobr>';
	fillSlider(imagecontent);

	document.getElementById("slideri").style.visibility = "visible";
	document.getElementById("slideri").style.display = "block";
	document.getElementById("slider1").style.visibility = "visible";
	document.getElementById("slider1").style.display = "block";
	
}

function slideleft() {
	
	if (iedom) {
		if (parseInt(cross_slide.style.left) > (sliderwith * (-1) + 8))
			cross_slide.style.left = parseInt(cross_slide.style.left) - copyspeed + "px";
		else
			cross_slide.style.left = parseInt(cross_slide2.style.left) + sliderwith + "px";
		if (parseInt(cross_slide2.style.left) > (sliderwith * (-1) + 8))
			cross_slide2.style.left = parseInt(cross_slide2.style.left) - copyspeed + "px";
		else
			cross_slide2.style.left = parseInt(cross_slide.style.left) + sliderwith + "px";
	} else if (document.layers) {
		if (ns_slide.left > (sliderwith * (-1) + 8))
			ns_slide.left -= copyspeed;
		else
			ns_slide.left = ns_slide2.left + sliderwith;
		if (ns_slide2.left > (sliderwith * (-1) + 8))
			ns_slide2.left -= copyspeed;
		else
			ns_slide2.left = ns_slide.left + sliderwith;
	}

}

function loadImages() {
	
	for (i = 0; i < sliderImages.length; i++) {
		preImages[i] = new Image();
		preImages[i].src = sliderImages[i];
	}
	checkLoad();		
	
}

function checkLoad() {
	var preFillLoaded=0;
	if (currCount >= sliderImages.length) {
		window.setTimeout('startSlider();', 50);		
		return;
	}
	for (var i = 0; i < sliderImages.length; i++) {	
		if (!loaded[i] && preImages[i].complete) {
			loaded[i]=true;
			currCount++;
		}
		if (i<minImages && loaded[i]) {
			preFillLoaded++;			
		}
	}
	
	if (!preFilled && preFillLoaded==minImages && currCount >= minImages) {
		preFilled=true;
		prefillSlider();
	}
	
	window.setTimeout("checkLoad();", 50);	
	
}

function debug(msg) {
	document.getElementById("debug").innerHTML = msg;
}











var http_request = new Array();

// doRequest(url) Erzeugt ein Requestobjekt abhängig vom Browser
// und stellt eine anfrage an die übergebene URL
function doRequest(url, sdata, my_target) {

	http_request[my_target] = false;

	// Testen ob der Browser ein XMLHttpRequest Objekt
	// zur Verfügung stellt. (Mozilla und andere)
	if (window.XMLHttpRequest) {
		http_request[my_target] = new XMLHttpRequest();
		if (http_request[my_target].overrideMimeType) {
			// Das Ergebnis soll als XML-Dokument betrachtet werden.
			http_request[my_target].overrideMimeType('text/xml');
		}
		// Wenn der Browser ein IE ist,
		// dann müssen andere Objekte benutzt werden.
	} else if (window.ActiveXObject) {
		try {
			http_request[my_target] = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request[my_target] = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
			}
		}
	}

	// Falls kein Request Objekt zur Verfügung steht
	// funktioniert das ganze nicht
	if (!http_request[my_target]) {
		alert('Es kann kein Request Objekt erzeugt werden.');
		return false;
	}

	http_request[my_target].onreadystatechange = function() {
		myHandler(my_target);
	};

	// Eine Callbackfunction wird angegeben,
	// die auf events des Request Objekts reagieren soll.
	http_request[my_target].open('GET', url + "?" + sdata, true);
	http_request[my_target].setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8;');
	http_request[my_target].send(null);
}

function myHandler(my_target) {

	ergebnisdiv = document.getElementById(my_target);
	// Testen ob das Request objekt mit dem laden fertig ist

	// readyState Status Codes:
	// 0 = uninitialized
	// 1 = loading
	// 2 = loaded
	// 3 = interactive
	// 4 = complete

	if (http_request[my_target].readyState == 4) {
		// War die Anfrage erfolgreich / die URL erreichbar ?
		if (http_request[my_target].status == 200) {
			if (http_request[my_target].responseText.length > 0) {
				if (http_request[my_target].responseText == '') {
					ergebnisdiv.innerHTML = 'Anfrage liefert kein Ergebnis';
				} else {
					ergebnisdiv.innerHTML = http_request[my_target].responseText;					
				}
			} else {
				if (http_request[my_target].responseXML == '') {
					ergebnisdiv.innerHTML = 'Anfrage liefert kein Ergebnis';
				} else {
					ergebnisdiv.innerHTML = http_request[my_target].responseXML;
				}
			}
		} else {
			ergebnisdiv.innerHTML = 'Die URL konnte nicht geöffnet werden.';
		}
	}

	ergebnisdiv.style.display = 'block';

}

function get_data(tgt, param) {

	my_url = "";
	var postvars = new Array();

	if (param != '') {
		my_url = my_url + "&" + param;
	}

	doRequest('./sound.php5', my_url, tgt);

}
// sound manager

var isIE = navigator.appName.toLowerCase().indexOf('internet explorer') + 1;
var isMac = navigator.appVersion.toLowerCase().indexOf('mac') + 1;

function SoundManager(container) {
	// DHTML-controlled sound via Flash
	var self = this;
	this.movies = []; // movie references
	this.container = container;
	this.unsupported = 0; // assumed to be supported
	this.defaultName = 'default'; // default movie

	this.FlashObject = function(url) {
		var me = this;
		this.o = null;
		this.loaded = false;
		this.isLoaded = function() {
			if (me.loaded)
				return true;
			if (!me.o)
				return false;
			me.loaded = ((typeof (me.o.readyState) != 'undefined' && me.o.readyState == 4) || (typeof (me.o.PercentLoaded) != 'undefined' && me.o.PercentLoaded() == 100));
			return me.loaded;
		}
		this.mC = document.createElement('div');
		this.mC.className = 'movieContainer';
		with (this.mC.style) {
			// "hide" flash movie
			position = 'absolute';
			left = '-256px';
			width = '64px';
			height = '64px';
		}
		var html = [
				'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"><param name="movie" value="' + url
						+ '"><param name="quality" value="high"></object>',
				'<embed src="' + url + '" width="1" height="1" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed>' ];
		if (navigator.appName.toLowerCase().indexOf('microsoft') + 1) {
			this.mC.innerHTML = html[0];
			this.o = this.mC.getElementsByTagName('object')[0];
		} else {
			this.mC.innerHTML = html[1];
			this.o = this.mC.getElementsByTagName('embed')[0];
		}
		document.getElementsByTagName('div')[0].appendChild(this.mC);
	}

	this.addMovie = function(movieName, url) {
		self.movies[movieName] = new self.FlashObject(url);
	}

	this.checkMovie = function(movieName) {
		movieName = movieName || self.defaultName;
		if (!self.movies[movieName]) {
			self.errorHandler('checkMovie', 'Exception: Could not find movie', arguments);
			return false;
		} else {
			return (self.movies[movieName].isLoaded()) ? self.movies[movieName] : false;
		}
	}

	this.errorHandler = function(methodName, message, oArguments, e) {
		writeDebug('<div class="error">soundManager.' + methodName + '(' + self.getArgs(oArguments) + '): ' + message + (e ? ' (' + e.name + ' - ' + (e.message || e.description || 'no description') : '')
				+ '.' + (e ? ')' : '') + '</div>');
	}

	this.play = function(soundID, loopCount, noDebug, movieName) {
		if (self.unsupported)
			return false;
		movie = self.checkMovie(movieName);
		if (!movie)
			return false;
		if (typeof (movie.o.TCallLabel) != 'undefined') {
			try {
				self.setVariable(soundID, 'loopCount', loopCount || 1, movie);
				movie.o.TCallLabel('/' + soundID, 'start');
				if (!noDebug)
					writeDebug('soundManager.play(' + self.getArgs(arguments) + ')');
			} catch (e) {
				self.errorHandler('play', 'Failed: Flash unsupported / undefined sound ID (check XML)', arguments, e);
			}
		}
	}

	this.stop = function(soundID, movieName) {
		if (self.unsupported)
			return false;
		movie = self.checkMovie(movieName);
		if (!movie)
			return false;
		try {
			movie.o.TCallLabel('/' + soundID, 'stop');
			writeDebug('soundManager.stop(' + self.getArgs(arguments) + ')');
		} catch (e) {
			// Something blew up. Not supported?
			self.errorHandler('stop', 'Failed: Flash unsupported / undefined sound ID (check XML)', arguments, e);
		}
	}

	this.getArgs = function(params) {
		var x = params ? params.length : 0;
		if (!x)
			return '';
		var result = '';
		for ( var i = 0; i < x; i++) {
			result += (i && i < x ? ', ' : '') + (params[i].toString().toLowerCase().indexOf('object') + 1 ? typeof (params[i]) : params[i]);
		}
		return result;
	}

	this.setVariable = function(soundID, property, value, oMovie) {
		// set Flash variables within a specific movie clip
		if (!oMovie)
			return false;
		try {
			oMovie.o.SetVariable('/' + soundID + ':' + property, value);
			// writeDebug('soundManager.setVariable('+self.getArgs(arguments)+')');
		} catch (e) {
			// d'oh
			self.errorHandler('setVariable', 'Failed', arguments, e);
		}
	}

	this.setVariableExec = function(soundID, fromMethodName, oMovie) {
		try {
			oMovie.o.TCallLabel('/' + soundID, 'setVariable');
		} catch (e) {
			self.errorHandler(fromMethodName || 'undefined', 'Failed', arguments, e);
		}
	}

	this.callMethodExec = function(soundID, fromMethodName, oMovie) {
		try {
			oMovie.o.TCallLabel('/' + soundID, 'callMethod');
		} catch (e) {
			// Something blew up. Not supported?
			self.errorHandler(fromMethodName || 'undefined', 'Failed', arguments, e);
		}
	}

	this.callMethod = function(soundID, methodName, methodParam, movieName) {
		movie = self.checkMovie(movieName || self.defaultName);
		if (!movie)
			return false;
		self.setVariable(soundID, 'jsProperty', methodName, movie);
		self.setVariable(soundID, 'jsPropertyValue', methodParam, movie);
		self.callMethodExec(soundID, methodName, movie);
	}

	this.setPan = function(soundID, pan, movieName) {
		self.callMethod(soundID, 'setPan', pan, movieName);
	}

	this.setVolume = function(soundID, volume, movieName) {
		self.callMethod(soundID, 'setVolume', volume, movieName);
	}

	// constructor - create flash objects
	if (isIE && isMac) {
		this.unsupported = 1;
	}

	if (!this.unsupported) {
		this.addMovie(this.defaultName, 'soundcontroller.swf');
	}

}

function SoundManagerNull() {
	// Null object for unsupported case
	this.movies = []; // movie references
	this.container = null;
	this.unsupported = 1;
	this.FlashObject = function(url) {
	}
	this.addMovie = function(name, url) {
	}
	this.play = function(movieName, soundID) {
		return false;
	}
	this.defaultName = 'default';
}

function writeDebug(msg) {
	var o = document.getElementById('debugContainer');
	if (!o)
		return false;
	var d = document.createElement('div');
	d.innerHTML = msg;
	o.appendChild(d);
}

var soundManager = null;

function soundManagerInit(sound) {
	soundManager = new SoundManager();
	if (sound) {
		window.setTimeout("soundManager.play('" + sound + "',99);", 2000);
	}
}

