/* #############################################################################
** # Dolenc Scheiwiller (c) Design Fankhauser (http://www.designfankhauser.ch) #
** #############################################################################
** 
**  Dateiversion: 21.09.08  
**  Datei       : gallery.js
**  Funktion    : Bildergalerie Script
**
*/

$(document).ready(function(){
	
//////Globale Variablen
///////////////////////
	//Aktuell angzeigtes Bild
	var n=0;
	//Anzahl Bilder
	var max=0;
	//Browser
	var browser=true;

//////Funktionen
///////////////////////

	//Funktion: Bildwechsel
	//In: Akt. Bild n, Iteration i, Anzahl Bilder max, Geschwindigkeitsfaktor velocityFactor
	//Out: Neues akt. Bild n
	function changeImage(n,i,max,velocityFactor) {
		//Default values
		velocityFactor = typeof(velocityFactor) != 'undefined' ? velocityFactor : 1;
		
		//Geschwindigkeiten (resp. benötigte Zeiten)
		var velocity1=velocityFactor*300;
		var velocity2=velocityFactor*200;
	
		//Neue Dimensionen festlegen
		var newWidth = $('.gallery_images img.i'+(n+i)).width();
		var newHeight = $('.gallery_images img.i'+(n+i)).height();
		
		//Dimensionen ändern
		$('.gallery').animate({width: newWidth+"px", height: newHeight+"px"}, velocity1);
		
		//Sichtbarkeit ändern
		$('.gallery_images img.i'+n).fadeOut(velocity1);
		$('.gallery_images img.i'+(n+i)).fadeIn(velocity1);
		
		//n iterieren
		n+=i;
		
		//Anfang des Verlaufs
		if(n<=0){ myFadeOut($('.gallery_control a#prev'),velocity2); }
		else { myFadeIn($('.gallery_control a#prev'),velocity2); }
		
		//Ende des Verlaufs
		if(n>=max-1){ myFadeOut($('.gallery_control a#next'),velocity2); }
		else { myFadeIn($('.gallery_control a#next'),velocity2); }
		
		//Rückgabe
		return n;
	}
	
	//Funktion: Automatischer Bildwechsel
	//In: Aktivitätstatus active
	function timer(active) {
		if(active) {
			$('.gallery_control').everyTime(2500, 'controlled', function() {
				if(n<max-1) { n = changeImage(n,1,max,5); }
			});
		} else {
			$('.gallery_control').stopTime('controlled');
		}
	}
	
	//Funktion: Einblenden (IE-Hack)
	//In: Pfad path, Geschwindigkeit velocity
	function myFadeIn(path,velocity) {
		if(browser==true){ path.fadeIn(velocity); }
		else { path.show(); }
	}
	
	//Funktion: Ausblenden (IE-Hack)
	//In: Pfad path, Geschwindigkeit velocity
	function myFadeOut(path,velocity) {
		if(browser==true){ path.fadeOut(velocity); }
		else { path.hide(); }
	}
	
//////Initialisierung
///////////////////////

	//IE PNG-Fix
	jQuery.ifixpng('fileadmin/templates/images/pixel.gif');
	$('.gallery_control img').ifixpng();
	//Detect IE
	jQuery.each(jQuery.browser, function(i, val) {
     		if(i=='msie' && val==true) { browser=false; }
    });
	//Grösse festlegen
	$('.gallery').height($('.gallery_images img:first').height());
	$('.gallery').width($('.gallery_images img:first').width());
	//IE-Hack
	if(browser==false){ $('.gallery_images img').each(function(){ $(this).height($(this).height()); }); }
	//Leere Bilder löschen
	$(".gallery_images img[height='1']").remove();
	//Klassen vergeben
	$('.gallery_images img').each(function(i){
		$(this).addClass('i'+i);
		max++;
	});
	//Next-Controller überprüfen (bei nur einem Bild)
	if(max>1){ $('.gallery_control a#next').show(); }
	//Bildwechsel Timer starten
	timer(true);

//////Events
///////////////////////

	//Nächstes Bild
	$('.gallery_control a#next').click(function(){
		//Bild wechseln und n positiv iterieren
		if(n<max-1){ n = changeImage(n,1,max); }
		// Link verhindern
		return false;
	});
	
	//Vorheriges Bild
	$('.gallery_control a#prev').click(function(){
		//Bild wechseln und n negativ iterieren
		if(n>0){ n = changeImage(n,-1,max); }
		// Link verhindern
		return false;
	});
	
	//Pfeil rechts ein- und ausblenden
	//Timer starten/stoppen
	var velocity3 = 200;
	$('.gallery_control a#next').hover(
		function(){
			//Einblenden
			myFadeIn($(this).children('img'),velocity3)
			//Timer stoppen
			timer(false);
		},
		function(){
			//Ausblenden
			myFadeOut($(this).children('img'),velocity3);
			//Timer starten
			//timer(true);
		}
	);
	
	//Pfeil links ein- und ausblenden
	//Timer starten/stoppen
	$('.gallery_control a#prev').hover(
		function(){
			//Einblenden
			myFadeIn($(this).children('img'),velocity3);
			//Timer stoppen
			timer(false);
		},
		function(){
			//Ausblenden
			myFadeOut($(this).children('img'),velocity3);
			//Timer starten
			//timer(true);
		}
	);
	

});
