// JavaScript Document

// Image Preloader function
(function($) {
  var cache = [];
  // Arguments are image paths relative to the current page.
  $.preLoadImages = function() {
    var args_len = arguments.length;
    for (var i = args_len; i--;) {
      var cacheImage = document.createElement('img');
      cacheImage.src = arguments[i];
      cache.push(cacheImage);
    }
  }
})(jQuery)

$(document).ready(function(){
	setupOverbuttons();
	setupTeaserscroller();
});

var autoScroller = null;

function setupOverbuttons() {
	if ($('.overbutton').length > 0) {
		$('.overbutton').each(
			function(index) {
				var img = $(this);
				var src = img.attr('src');
				var len = src.length;
				var pos = src.lastIndexOf('/');
				var over = src.substr(0,pos) + '/over' + src.substr(pos);
				
				img.data('overbild',over);
				img.data('normbild',img.attr('src'));
				$.preLoadImages(over);
	
				$(this).hover(
					function() {
						// Rollin
						$(this).attr('src',$(this).data('overbild'));
					},
					
					function() {
						// Rollout
						$(this).attr('src', $(this).data('normbild'));
					}
				);
			}
		);
	}
}

function setupTeaserscroller() {
	var anzahl  = $('.teaser').length;
	if (anzahl > 0) {
		$('.teaser').removeClass('hidden');
		var fenster = $('.teaserfenster');
		$('.teaserscroller').width(anzahl * fenster.width());
		if (anzahl > 1) {
			fenster.append('<div class="buttonliste"></div>');
		}
		var liste = $('.teaserfenster .buttonliste');
		
		for (i = 0; i < anzahl; i++) {
			liste.append('<a href="#" rel="' + i + '">' + (i+1) + '</a> ');
		}
		
		$('.teaserfenster .buttonliste a:first').addClass('aktiv');
		$('.teaserfenster .buttonliste a').fadeTo(0,0.8);
		
		$('.teaserfenster .buttonliste a').click(function(event) {
			event.stopPropagation();
			var ich = $(this);
			$('.teaserfenster .buttonliste a').removeClass('aktiv');
			ich.addClass('aktiv');
			var pos = (parseInt(ich.attr('rel')) * $('.teaserfenster').width() * -1);
			$('.teaserscroller').animate({left: pos}, 1300);
			clearInterval(autoScroller);
			autoScroller = window.setInterval('nextTeaser()', 30000);
			return false;
		});
		
		autoScroller = window.setInterval('nextTeaser()', 10000);
	}
}

function nextTeaser() {
	var derNaechste = $('.buttonliste a.aktiv').next();
	if (derNaechste.length > 0) {
		derNaechste.click();
	} else {
		$('.buttonliste a:first').click();
	}
	// Den Interval neu setzen, falls wir aus einem händischen Klick kommen, da der Interval dann deutlich langsamer ist als der Standard.
	clearInterval(autoScroller);
	autoScroller = window.setInterval('nextTeaser()', 10000);
}
