var sliderTimeoutID = -1;
var slideNumber = 0;
var sliderTimeout = -1;
var containerWidth = 1024;
var nextSlideNumber = -1;
var startZeit = new Date();
var b = 0;
var c = containerWidth;
var d = 750;
var timeoutid = -1;
var result;
var slideDivs = new Array();

function preloadSlides() {
	document.Vorladen = new Array();
	for(var i = 0; i < headerResources.length; i++) {
		document.Vorladen[i] = new Image();
		document.Vorladen[i].src = headerResources[i].path;
	}
}

function buildSliderButtons() {
	document.getElementById('slider_extension_links').innerHTML = '';
	for(var i = 0; i < slideDivs.length; i++) {
		if(i == slideNumber) {			
			document.getElementById('slider_extension_links').innerHTML += '<img width="10" height="10" src="../projects/HumboldtInnovation/static/images/slider_quad_active.gif" style="margin-left:8px;" />';
		} else {
			document.getElementById('slider_extension_links').innerHTML += '<a class="slideLink" href="javascript:changeSlide(' + i + ')"><img width="10" height="10" src="../projects/HumboldtInnovation/static/images/slider_quad.gif" border="0" /></a>';
		}
	}
}

function buildSlideDivs() {
	for(i = 0; i < headerResources.length; i++) {
		var tempDiv = new Object();
		tempDiv = document.createElement('div');
		tempDiv.setAttribute('id', 'slide_' + i);
		tempDiv.style.position = 'absolute';
		
		var tempImg = new Image();
		tempImg.src = headerResources[i].path;
		
		var sliderEmptyText = false;
	    var sliderText = headerResources[i].text;
		
		sliderText = sliderText.replace(/<br\s*\/*>/g, '');
		sliderText = sliderText.replace(/\s/g, '');
		
		if(sliderText == ''){
			sliderEmptyText = true;
		}
		
		if(!sliderEmptyText){
			var tempText = document.createElement('div');
			tempText.innerHTML = headerResources[i].text;
			tempText.style.position = 'absolute';
			
			if(headerResources[i].x != -1){
				tempText.style.left = headerResources[i].x;
			} else {
				tempText.style.left = 577;
			}	
			if(headerResources[i].y != -1){	
				tempText.style.top = headerResources[i].y;
			} else {
				tempText.stlye.top = 111;
			}
			tempDiv.appendChild(tempText);
		}
		tempDiv.appendChild(tempImg);
		slideDivs[i] = tempDiv;
	}
}

function rebuildSlides(direction) {
	
	if(direction > 0) {
		document.getElementById('slider_animation').removeChild(
			document.getElementById('slider_animation').firstChild
		); 
	} else if(direction < 0) {
		document.getElementById('slider_animation').removeChild(
			document.getElementById('slider_animation').lastChild
		);
	}
	
	if(slideDivs.length == 1 ) {
		// nothing todo
	} else if (slideDivs.length == 2) {
		if(direction > 0) {
			document.getElementById('slider_animation').appendChild(
				slideDivs[getNextSlideNumber(1)].cloneNode(true)
			);
		} else if(direction < 0) {
			document.getElementById('slider_animation').insertBefore(
				slideDivs[getNextSlideNumber(-1)].cloneNode(true),
				document.getElementById('slider_animation').firstChild
			);
		}
	
	} else if (slideDivs.length > 2 ) {
		if(direction > 0) {
			document.getElementById('slider_animation').appendChild(
				slideDivs[getNextSlideNumber(1)]
			);
		} else if(direction < 0) {
			document.getElementById('slider_animation').insertBefore(
				slideDivs[getNextSlideNumber(-1)],
				document.getElementById('slider_animation').firstChild
			);
		}
	}
	
	document.getElementById('slider_animation').childNodes[0].style.left = -1024;
	document.getElementById('slider_animation').childNodes[1].style.left = 0;
	document.getElementById('slider_animation').childNodes[2].style.left = 1024;
	document.getElementById('slider_animation').style.left = 0;
		
}

function bla(difference) {
	if(difference > 0) {
		
		for(i = 0; i <= difference; i++) {
			
		}
		
	} else if(difference < 0) {
		
		for(i = 0; i <= difference; i++) {
			
		}
		
	}
}

function activateEnhancedSlider() {
	buildSlideDivs();
	
	var sliderAnimationDiv = document.createElement('div');
	sliderAnimationDiv.setAttribute('id', 'slider_animation');
	sliderAnimationDiv.style.left = 0;
	
	document.getElementById('slider_content').innerHTML = '';
	
	if(slideDivs.length == 1) {
		
		sliderAnimationDiv.appendChild(slideDivs[0]);
	
	} else if (slideDivs.length == 2) {
		
		sliderAnimationDiv.appendChild(
			slideDivs[1].cloneNode(true)
		);
		sliderAnimationDiv.firstChild.style.left = -containerWidth;
		
		slideDivs[0].style.left = 0;
		sliderAnimationDiv.appendChild(slideDivs[0]);
		
		slideDivs[1].style.left = containerWidth;
		sliderAnimationDiv.appendChild(slideDivs[1]);
		
		document.getElementById('slider_left').style.visibility = 'visible';
		document.getElementById('slider_right').style.visibility = 'visible';
		
		sliderTimeoutID = window.setTimeout('nextSlide()', headerResources[slideNumber].duration * 1000);
		
	} else if (slideDivs.length > 2 ) {
		
		slideDivs[slideDivs.length-1].style.left = -containerWidth;
		sliderAnimationDiv.appendChild(slideDivs[slideDivs.length-1]);
		
		slideDivs[0].style.left = 0;
		sliderAnimationDiv.appendChild(slideDivs[0]);
		
		slideDivs[1].style.left = containerWidth;
		sliderAnimationDiv.appendChild(slideDivs[1]);
		
		document.getElementById('slider_left').style.visibility = 'visible';			
		document.getElementById('slider_right').style.visibility = 'visible';
		
		sliderTimeoutID = window.setTimeout('nextSlide()', headerResources[slideNumber].duration * 1000);
	}

	document.getElementById('slider_content').appendChild(sliderAnimationDiv);
	buildSliderButtons();
		
}

function getNextSlideNumber(direction) {
	var result = slideNumber;
	if(direction > 0) {
		if( ((result + direction) % headerResources.length ) == 0) {
			result = 0
		} else {
			result += direction;
		}
	} else if(direction < 0) {
		if((result+direction) == -1) {
			result = headerResources.length -1;
		} else {
			result += direction;
		}
	}
	return result;
}

function updateSlides(direction) {
	slideNumber = getNextSlideNumber(direction);
	if(direction > 0) {
		c = containerWidth;
	} else if(direction < 0) {
		c = -containerWidth;
	} else if(direction == 0) {
		// TODO
	}
	animation(1, b, c, d);
}

function nextSlide() {
    if(headerResources.length > 0 && timeoutid == -1) {
    	window.clearTimeout(sliderTimeoutID);
    	startZeit = new Date();
    	updateSlides(1);
    }
}

function prevSlide() {
    if(headerResources.length > 0 && timeoutid == -1) {
    	window.clearTimeout(sliderTimeoutID);
    	startZeit = new Date();
    	updateSlides(-1);
    }       
}

function changeSlide(slideNr) {
	if(timeoutid == -1) {
		if(slideNr == getNextSlideNumber(1)) {
			nextSlide();
		} else if(slideNr == getNextSlideNumber(-1)) {
			prevSlide();
		} else {
			var difference = slideNr - (slideNumber+1);
			
		}
		//updateSlides(0);
	}
}

function resetAnimationValues() {
	c = containerWidth;
}

function easeInOutQuad(t, b, c, d) {    
	if ((t/=d/2) < 1) return c/2*t*t + b;
	return -c/2 * ((--t)*(t-2) - 1) + b;
} 

function animation(t, b, c, d) {    
    var dauer = new Date();
    dauer = dauer.getTime() - startZeit.getTime();
    
    if(dauer <= d ) {
    	result = easeInOutQuad(dauer, b, c, d);
        document.getElementById('slider_animation').style.left =  -result;
        timeoutid = window.setTimeout('animation(' + dauer + ',' + b + ',' + c + ',' + d + ')', 10);
    } else {
    	window.clearTimeout(timeoutid);
    	timeoutid = -1;
    	document.getElementById('slider_animation').style.left = containerWidth;
    	sliderTimeoutID = window.setTimeout('nextSlide()', headerResources[slideNumber].duration * 1000);
    	if(c > 0 ) {
    		rebuildSlides(1);
    	} else {
    		rebuildSlides(-1);
    	}
    	buildSliderButtons();
    }
}

$(document).ready( function() {
    try {
	$(".tooltipTrigger").tooltip();
    } catch(e) {}
    
    if(typeof(vMode)=="undefined") {$("#rcrBubble").toggle();}
    //if(typeof(vMode)=="undefined") {$("#spinOffBubble").toggle();}
});

