
document.addEvent('domready', function() {
	slider_width = 304;
	
	// Fix IE
	if(getIEVersion()) {
		$$('.on_slider').each(function(slider) {
			slider.style.display = 'none';
		});
		$$('.on').each(function(slider) {
			slider.style.display = 'none';
		});
	}
	
	// Resolution
	var bodyHeight = getBodyRes().y;
	if(bodyHeight < 680) {
		$('header').style.display = 'none';
	} else if(bodyHeight > 757) {
		$('video_holder').style.bottom = null;
		$('video_holder').style.top = '50%';
		$('video_holder').style.marginTop = '-300px';
	}
	
	// Prepare Styles for JS
	getStyle('#footer div:hover .off').style.display = 'block';
	getStyle('#footer .on_bg').style.display = 'block';
	getStyle('#footer .on_slider').style.display = 'block';
	getStyle('#footer .on').style.display = 'block';
	getStyle('#footer .img_on').style.display = 'block';
	getStyle('#footer div:hover .img_off').style.display = 'block';
	
	getStyle('#video_switch').style.display = 'block';
	
	// Buttons
	
	$$('div.button').each(function(button) {
		set_opacity(button.childNodes[node(1, 0)], 100);
		set_opacity(button.childNodes[node(3, 1)], 0);
		set_opacity(button.childNodes[node(5, 2)], 0);
		set_opacity(button.childNodes[node(7, 3)], 0);
		set_opacity(button.childNodes[node(9, 4)].childNodes[node(1, 0)], 100);
		set_opacity(button.childNodes[node(9, 4)].childNodes[node(3, 2)], 0);
		
		button.addEvent('mouseover', function() {
			if(niftyplayer('niftyPlayer1'))
			{
				if(niftyplayer('niftyPlayer1').getState() != 'playing') niftyplayer('niftyPlayer1').play();
			}
			
			// Clear up
			if(this.sliderOff) window.clearTimeout(this.sliderOff );
			if(this.sliderInterval) window.clearInterval(this.sliderInterval);
			if(this.opacityInterval) window.clearInterval(this.opacityInterval);

			// Slider
			this.ml = 150;
			this.childNodes[node(5, 2)].style.marginLeft = this.ml + 'px';
			this.sliderInterval = window.setInterval(function() {
				if(-this.ml >= slider_width) this.ml = 150;
				else this.ml -= 7;
				
				this.childNodes[node(5, 2)].style.marginLeft = this.ml + 'px';
			}.bind(this), 40);
			
			// Fade "on" in, "off" out
			this.op = 0;
			
			set_opacity(this.childNodes[node(1, 0)], 100 - this.op);
			set_opacity(this.childNodes[node(3, 1)], this.op);
			set_opacity(this.childNodes[node(5, 2)], this.op);
			set_opacity(this.childNodes[node(7, 3)], this.op);
			set_opacity(this.childNodes[node(9, 4)].childNodes[node(1, 0)], 100 - this.op);
			set_opacity(this.childNodes[node(9, 4)].childNodes[node(3, 2)], this.op);
			
			this.opacityInterval = window.setInterval(function() {
				if(this.op >= 100) {
					window.clearInterval(this.opacityInterval);
					return;
				}
				
				this.op += 10;
				
				set_opacity(this.childNodes[node(1, 0)], 100 - this.op);
				set_opacity(this.childNodes[node(3, 1)], this.op);
				set_opacity(this.childNodes[node(5, 2)], this.op);
				set_opacity(this.childNodes[node(7, 3)], this.op);
				set_opacity(this.childNodes[node(9, 4)].childNodes[node(1, 0)], 100 - this.op);
				set_opacity(this.childNodes[node(9, 4)].childNodes[node(3, 2)], this.op);
			}.bind(this), 10);
		});
		
		button.addEvent('mouseout', function() {
			// Clear up
			this.sliderOff = window.setTimeout(function() {
				window.clearInterval(this.sliderInterval);
				this.sliderInterval = null;
			}.bind(this), 40 * (100/3));
			
			if(this.opacityInterval) window.clearInterval(this.opacityInterval);
			
			// Fade "on" out, "off" in
			this.op = 0;
			
			set_opacity(this.childNodes[node(1, 0)], this.op);
			set_opacity(this.childNodes[node(3, 1)], 100 - this.op);
			set_opacity(this.childNodes[node(5, 2)], 100 - this.op);
			set_opacity(this.childNodes[node(7, 3)], 100 - this.op);
			set_opacity(this.childNodes[node(9, 4)].childNodes[node(1, 0)], this.op);
			set_opacity(this.childNodes[node(9, 4)].childNodes[node(3, 2)], 100 - this.op);
			
			this.opacityInterval = window.setInterval(function() {
				if(this.op >= 100) {
					window.clearInterval(this.opacityInterval);
					return;
				}
				
				this.op += 10;
				
				set_opacity(this.childNodes[node(1, 0)], this.op);
				set_opacity(this.childNodes[node(3, 1)], 100 - this.op);
				set_opacity(this.childNodes[node(5, 2)], 100 - this.op);
				set_opacity(this.childNodes[node(7, 3)], 100 - this.op);
				set_opacity(this.childNodes[node(9, 4)].childNodes[node(1, 0)], this.op);
				set_opacity(this.childNodes[node(9, 4)].childNodes[node(3, 2)], 100 - this.op);
				
			}.bind(this), 40);
		});
	});
	
	// Video switch
	
	set_opacity($('switch_on'), 0);
	set_opacity($$('.num')[1], 0);
	set_opacity($$('.num')[2], 0);
	//set_opacity($$('.num')[3], 0);
	//set_opacity($$('.num')[4], 0);
	//set_opacity($$('.num')[5], 0);
	
	$('video_switch').addEvent('mouseover', function() {
		// clear up
		if(this.opacityInterval) window.clearInterval(this.opacityInterval);
			
		// Fade "on" in, "off" out
		if(!this.op) this.op = 0;
		
		set_opacity($('switch_off'), 100 - this.op);
		set_opacity($('switch_on'), this.op);
		
		this.opacityInterval = window.setInterval(function() {
			if(this.op >= 100) {
				window.clearInterval(this.opacityInterval);
				return;
			}
			
			this.op += 10;
			
			set_opacity($('switch_off'), 100 - this.op);
			set_opacity($('switch_on'), this.op);
		}.bind(this), 10);
	});
	
	$('video_switch').addEvent('mouseout', function() {
		if(this.opacityInterval) window.clearInterval(this.opacityInterval);
		
		// Fade "on" in, "off" out
		
		set_opacity($('switch_off'), 100 - this.op);
		set_opacity($('switch_on'), this.op);
		
		this.opacityInterval = window.setInterval(function() {
			if(this.op <= 0) {
				window.clearInterval(this.opacityInterval);
				return;
			}
			
			this.op -= 10;
			set_opacity($('switch_off'), 100 - this.op);
			set_opacity($('switch_on'), this.op);
		}.bind(this), 50);
	});
	
	$('switch_holder').addEvent('click', function() {
		if(this.transforming) return;
		this.transforming = true;
		
		// settings
		if(!this.mov) this.mov = 0;
		this.maxMov = $$('.movie').length;
		
		this.lastMov = this.mov;
		this.mov++;
		if(this.mov == this.maxMov) this.mov = 0;
		
		$$('.movie')[this.mov].style.visibility = 'visible';
		set_opacity($$('.movie')[this.mov], 0);
		
		this.op = 0;
		this.movInterval = window.setInterval(function() {
			if(this.op >= 100) {
				window.clearInterval(this.movInterval);
				$$('.movie')[this.lastMov].style.visibility = 'hidden';
				this.transforming = null;
				return;
			}
			
			this.op += 10;
			set_opacity($$('.num')[this.lastMov], 100 - this.op);
			set_opacity($$('.num')[this.mov], this.op);
			set_opacity($$('.movie')[this.lastMov], 100 - this.op);
			set_opacity($$('.movie')[this.mov], this.op);
		}.bind(this), 50);
	});
});

function node(num1, num2) {
	if(getIEVersion()) return num2;
	else return num1;
}

function set_opacity(el, set) {
	if(el.style) {
		el.style.opacity = set / 100;
		el.style.MozOpacity = set / 100;
		el.style.webkitOpacity = set / 100;
		el.style.filter = 'alpha(opacity='+set+')';
	} else {
		alert('Fehler: '+el);
	}
}
	
	
function getStyle(name) {
	if (document.all) {
		for (var s = 0; s < document.styleSheets.length; s++) {
			for (var r = 0; r < document.styleSheets[s].rules.length; r++) {
				if (document.styleSheets[s].rules[r].selectorText.toLowerCase() == name.toLowerCase()) {
					return document.styleSheets[s].rules[r];
				}
			}
		}
	}
	else if (document.getElementById) {
		for (var s = 0; s < document.styleSheets.length; s++)
			for (var r = 0; r < document.styleSheets[s].cssRules.length; r++)
				if (document.styleSheets[s].cssRules[r].selectorText == name)
					return document.styleSheets[s].cssRules[r];
	}
	return null;
}

function getBodyRes() {
	if (self.innerHeight) // all except Explorer
	{
		return {
			x: self.innerWidth,
			y: self.innerHeight
		};
	}
	else if (document.documentElement && document.documentElement.clientHeight) // Explorer 6 Strict Mode
	{
		return {
			x: document.documentElement.clientWidth,
			y: document.documentElement.clientHeight
		};
	}
	else if (document.body) // other Explorers
	{
		return {
			x: document.body.clientWidth,
			y: document.body.clientHeight
		}
	}
}

function getIEVersion() {
	var version = null;
	if (navigator.appVersion.indexOf("MSIE") != -1) {
		return parseFloat(navigator.appVersion.split("MSIE")[1]);
	}
}
