﻿var maxSpeed = 4;		//Maximale Scrollgeschwindigkeit
switch(browser())
{
	case 'opera':
		nachUnten = 39;
		break;

	case 'firefox':
		nachUnten = 74;
		break;

	case 'iexplorer':
		nachUnten = 90;
		break;

	default:
		nachUnten = 38;
		break;
}

//hier nichts mehr ändern
var scrollSpeed = 0;
var leftOffset=0;

//create onDomReady Event
window.onDomReady = DomReady;

//Setup the event
function DomReady(fn)
{
	//W3C
	if(document.addEventListener)
	{
		document.addEventListener("DOMContentLoaded", fn, false);
	}
	//IE
	else
	{
		document.onreadystatechange = function(){readyState(fn)}
	}
}

//IE execute function
function readyState(fn)
{
	//dom is ready for interaction
	if(document.readyState == "interactive" || document.readyState == "complete")
	{
		fn();
	}
}

function browser()
{
	if(/Opera[\/\s](\d+\.\d+)/.test(navigator.userAgent)) return 'opera';
	if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) return 'iexplorer';
	if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)) return 'firefox';
	return 'other';
}

//MouseMove-Event einrichten
function MouseMoveInit()
{
	if (document.addEventListener)
	{
		document.addEventListener("mousemove", getScrollSpeed, true);
	}
	else
	{
		if (typeof NS4 != 'undefined')
		{
			document.captureEvents(Event.MOUSEMOVE);
			document.onmousemove = getScrollSpeed;
		}
		else
		{
			document.body.onmousemove = getScrollSpeed;
		}
	}
}

//getMousePos
function getMousePosition(e)
{
	var mouse_x_pos;
	var mouse_y_pos;
	if (e == undefined) e = window.event;
	if (e.pageX || e.pageY)
	{
		mouse_x_pos = e.pageX;
		mouse_y_pos = e.pageY;
	}
	else if (e.clientX || e.clientY)
	{
		mouse_x_pos = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
		mouse_y_pos = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
	}
	
	return [mouse_x_pos,mouse_y_pos];
}

//set scrollspeed depending on position of cursor
function getScrollSpeed(e)
{
	var mCoords = getMousePosition(e);
	scrollSpeed = mCoords[0] / screen.availWidth * (maxSpeed*2) - maxSpeed;
}

//find the element with rel='conveyorbelt' ignoring Uppercase letters
function findTargetRel(obj)
{
	var target=null;
	if(typeof obj.hasAttribute != 'undefined')
	{
		if(obj.hasAttribute('rel'))
		{
			if(obj.getAttribute('rel')=='conveyorbelt') return obj;
		}
	}
	else
	{
		if(obj.rel=='conveyorbelt') return obj;
	}

	if(obj.children.length>0)
	{
		for(var i=0; i<obj.children.length; i++)
		{
			if(target==null) target=findTargetRel(obj.children[i]);
		}
	}
	return target;
}

window.onDomReady(start);

//do on ready
function start()
{
	MouseMoveInit();
	
	var divs = document.body;
	var target = findTargetRel(divs);

	if(target==null) return;
	
	//Body auf Seitenbreite strecken zur Fehlervermeidung
	//document.body.style.width = '100%';
	
	//Allgemeine Eigenschaften für den Container festlegen
	
	target.style.width = '100%';
	target.style.position = 'absolute';
	target.style.left = '0px';
	target.style.whiteSpace='nowrap';
	target.style.zIndex='-99999';
	target.style.overflow = 'hidden';
	target.id='conveyorBelt';
	
	//Bilder einfügen
	var img;
	for(var dub=0; dub<3; dub++)
	{
		for(var i=0; i<conveyorImages.length; i++)
		{
			img=document.createElement('img');
			img.src=conveyorImages[i][0];
			img.title = conveyorImages[i][1];
			img.alt = conveyorImages[i][2];
			img.style.marginLeft = '0px';
			target.appendChild(img);
		}
	}
	
	for(i=0; i<target.children.length/3; i++)
	{
		leftOffset += target.children[i].offsetWidth;
	}
	
	target.style.left = '-'+leftOffset+'px';
	
	if(browser()=='iexplorer'){
		target.style.width = (screen.availWidth+leftOffset-4)+'px';
	}else{
		target.style.width = (screen.availWidth+leftOffset)+'px';
	}

	//Container vertikal zentrieren
	
						//50%
	target.style.top = '207px';

	
	target.style.marginTop= 0; //(0-target.offsetHeight/2+nachUnten)+'px';
	
	//Container als unterstes Element in den Body legen
	document.body.insertBefore(target, document.body.firstChild);

	//Animation starten
	startConveyorAnimation();
}

function startConveyorAnimation()
{
	window.setInterval(function(){moveConveyorBelt();}, 5);
}

function moveConveyorBelt()
{
	var belt = document.getElementById('conveyorBelt');
	belt.children[0].style.marginLeft = (parseInt(belt.children[0].style.marginLeft)+scrollSpeed)+'px';
	if(belt.children[0].offsetLeft <= 0-belt.children[0].offsetWidth)
	{
		belt.children[0].style.marginLeft = '0px';
		belt.appendChild(belt.children[0]);
	}
	else if(parseInt(belt.children[0].offsetLeft) > parseInt(belt.lastChild.offsetWidth) && scrollSpeed>0)
	{
		belt.children[0].style.marginLeft = '0px';
		belt.insertBefore(belt.lastChild, belt.children[0]);
	}
}
