/* ---------------------------------------------------

	Image Slider Version 1.1
	------------------------

	Erstellt von: 		Flurin Müller
	Aktualisiert am: 	13.03.2008

	Bekannte Fehler:
	- Nicht getestet auf IE6
	  Mögliche Fehler:
	  - Boxmodell Bug (Margin)
	  - Kein Hover bei Images


	Changelog:
	----------
	Keine Einträge

----------------------------------------------------- */

$(document).ready(function() {

	if($('#clip').length > 0)
		initSlider();
	
	
});

function initSlider() {
	// Mögliche Werte 1 bis unendlich (je höher desto schneller)
	var scrollSpeed = 2;
	var fastScroll = true;
	var fastScrollSpeed = 5;
		
	// Breite des Clips ermitteln (Hauptfenster)
	var clip = parseInt($('#clip').get(0).offsetWidth);

	// Breite des Item Containers berechnen
	var totalWidth = 0;
	var protImg = $('#images > div').each(function() {
		// Item Breite auslesen
		var itemWidth = $(this).get(0).offsetWidth;	
		
		// Item Margins berechnen
		var mLeft = $(this).css('margin-left').replace('px', '');
		var mRight = $(this).css('margin-right').replace('px', '');
		// Wenn Margin nicht gesetzt, bei IE auf auto Wert checken
		mLeft = parseInt((mLeft=='auto') ? 0 : mLeft); 
		mRight = parseInt((mRight=='auto') ? 0 : mRight); 
		
		totalWidth += itemWidth + mLeft + mRight;
	});
	
	// Bei IE 6 Boxmodell Margin fix
	/*
	if(jQuery.browser.version == '6.0') {
		var mFirst = $('#images > div:first-child').css('margin-left').replace('px', '');
		mFirst = parseInt((mFirst=='auto') ? 0 : mFirst);

		totalWidth += mFirst * 2;
	}*/
	
	// Breite des Item Containers setzen
	$('#images').css('width', totalWidth);
	
	// Ermitteln, wie weit die Ansicht noch gescrollt werden muss
	var toScroll = (totalWidth - clip) * -1 ;
	
	// Intervall ID (für links und rechts scrollen)
	var intID;
	
	var defScrollSpeed = scrollSpeed; 
	
	// Bei klick aufs Bild dem Link folgen
	$('#clip .item').click(function() {
		var myLink = $(this).find("a").attr('href');
		location.href = myLink;								
	});
	
	// Klick Events links
	$('#left').click(function() {
		// Wenn fastscroll nicht aktiviert ist, bis zum Anfang des Clips springen
		if(!fastScroll) {
			clearInterval(intID);
			$('#images').css('margin-left', 0);
		}
		
		return false;
	});
	
	// Klick Events rechts
	$('#right').click(function() {
		// Wenn fastscroll nicht aktiviert ist, bis zum Ende des Clips springen
		if(!fastScroll) {
			clearInterval(intID);
			$('#images').css('margin-left', toScroll);
		}
		
		return false;
	});
	
	// Wenn fastscroll aktiviert
	if(fastScroll) {
		// Fastscroll links
		$('#left').mousedown(function() {
			scrollSpeed = fastScrollSpeed;
		}).mouseup(function() {
			scrollSpeed = defScrollSpeed;
		});
	
		// Fastscroll rechts
		$('#right').mousedown(function() {
			scrollSpeed = fastScrollSpeed;
		}).mouseup(function() {
			scrollSpeed = defScrollSpeed;
		});
	}
	
	// Mouseover links -> nach links scrollen
	$('#left').mouseover(function() {
		intID = setInterval(function() {
			// Wenn Item Container Beginn erreicht worden ist
			if($('#images').get(0).offsetLeft >= 0) {
				clearInterval(intID);
				return false;	
			}
			
			// Aktuelles Margin berechnen und neu setzen
			var margin = $('#images').css('margin-left').replace('px', '');
			margin = parseInt((margin=='auto') ? 0 : margin);
			margin = margin + scrollSpeed;
			
			$('#images').css('margin-left', margin);
		}, 10);
		
	});
	
	// Bei mouseout Intervall löschen
	$('#left').mouseout(function() {
		clearInterval(intID);
	});
	
	// Mouseover rechts -> nach recht scrollen
	$('#right').mouseover(function() {
		intID = setInterval(function() {
			// Wenn Item Container Ende erreicht worden ist
			if($('#images').get(0).offsetLeft <= toScroll) {
				clearInterval(intID);
				return false;	
			}
			
			// Aktuelles Margin berechnen und neu setzen
			var margin = $('#images').css('margin-left').replace('px', '');
			margin = parseInt((margin=='auto') ? 0 : margin);
			margin = margin - scrollSpeed;
			
			$('#images').css('margin-left', margin);
		}, 10);

	});
	
	// Bei mouseout Intervall löschen
	$('#right').mouseout(function() {
		clearInterval(intID);
	});	
}