/*
Supersized - Fullscreen Slideshow jQuery Plugin
By Sam Dunn (www.buildinternet.com // www.onemightyroar.com)
Version: supersized.2.0.js // Relase Date: 5/7/09
Website: www.buildinternet.com/project/supersized
Thanks to Aen for preloading, fade effect, & vertical centering
*/

(function($){

	//Resize image on ready or resize
	$.fn.supersized = function() {
		$.inAnimation = false;
		var options = $.extend($.fn.supersized.defaults, $.fn.supersized.options);
		
		$(window).bind("load", function(){
			$('#loading').hide();
			$('#supersize').fadeIn('fast');
			$('#content').show();
			
			$('#smallScroller div.scrollableArea span.inactive').animate({opacity: 0.7}, 300);
			
			if ($('#slideshow .activeslide').length == 0) $('#supersize a:first').addClass('activeslide');
			
			if ($('#bildunterschriften .activetext').length == 0) $('#bildunterschriften span:first').addClass('activetext');

			$('#navigation a').click(function(){
   			$(this).blur();
   			return false;
   		});
			
			//Slide Navigation
			$('#nextslide').click(function() {
				if($.inAnimation) return false;
				nextslide();
				return false;
			});
			$('#prevslide').click(function() {
				if($.inAnimation) return false;
				prevslide();
				return false;
			});
			$('.bigimage').click(function(e) {
				if($.inAnimation) return false;
				prevornext(e, $(this));
				return false;
			});
			
			/*
			var i = 0;
			$('.bigimage').mousemove(function(e) {
			  
      	var bildbreite = $('#supersize').width();
      	//console.log(i++ + " " + bildbreite);
      	var clickpos = e.pageX;
      	var bildx2 = $(window).width()-40;
      	var bildx1 = bildx2-bildbreite;
      	if (clickpos < bildx1 + (bildbreite/3)){
      	  var direction = "l";
      	} else {
      	  var direction = "r";
        }
				prevornextMouseArrow($(this), direction);
				return false;
			});
			*/
			
			/*$('.bigimage').hover(function(e) {
				prevornextMouseArrow2(e, $(this));
				return false;
			}, function(){
  			return false;
			});*/
			
			$('#nextslide img').hover(function() {
				$(this).attr("src", "images/forward.gif");
			}, function(){
				$(this).attr("src", "images/forward_dull.gif");
			});
			$('#prevslide img').hover(function() {
				$(this).attr("src", "images/back.gif");
			}, function(){
				$(this).attr("src", "images/back_dull.gif");
			});
		});
				
		$(document).ready(function() {
			$('#supersize').resizenow();
		});
		
		$(window).bind("resize", function(){
    		$('#supersize').resizenow(); 
		});
		
		$('#supersize').hide();
		$('#content').hide();
	};
	
	//Adjust image size
	$.fn.resizenow = function() {
		var options = $.extend($.fn.supersized.defaults, $.fn.supersized.options);
	  	return this.each(function() {
	  		
			//Define image ratio
			var ratio = (options.startheight) / (options.startwidth);
			
			//console.log(imageheight);
			var browserwidth = $(window).width();
			var browserheight = $(window).height();
			browserwidth = browserwidth - 280 - 40;
			browserheight = browserheight - 40 - 58 -40;
			var offset;

			//Resize image to proper ratio
			if ((browserheight/browserwidth) > ratio){
        $(this).width(browserwidth);
        $(this).height(browserwidth * ratio);
        $(this).children().width(browserwidth);
        $(this).children().height(browserwidth * ratio);
        
        $('#nextprevlinks').width(browserwidth);
        $('#nextprevlinks').height(browserwidth * ratio);
			} else {
  			$(this).height(browserheight);
  			$(this).width(browserheight / ratio);
  			$(this).children().height(browserheight);
  			$(this).children().width(browserheight / ratio);
  			
  			$('#nextprevlinks').height(browserheight);
        $('#nextprevlinks').width(browserheight / ratio);
			}
			
			//Gather browser and current image size
			var imagewidth = $(this).width() > 0 ? $(this).width() : (options.startwidth + 40);
			var imageheight = $(this).height() > 0 ? $(this).height() : (options.startheight + 40);
			
			/*
			var scrollimages = $('#smallScroller img');
		  //console.log(scrollimages);
			var gesamtbreite = 0;
			for (var i=0; i < scrollimages.length; i++) {
			  //console.log(scrollimages[i].width);
			  gesamtbreite = gesamtbreite + scrollimages[i].width + 6;
			};
			gesamtbreite -= 6;
			//console.log(gesamtbreite);
			//$('#thumbnails').css('right', imagewidth + 43);
			if (imagewidth < gesamtbreite) gesamtbreite = imagewidth;
			
			$('#smallScroller').css('width', gesamtbreite);
			*/
			//console.log($('#smallScroller').width());
			if ($('#smallScroller').width() > imagewidth)
			  $('#smallScroller').css('width', imagewidth);
			  
			if ($('#smallScroller .scrollableArea').width() > imagewidth && $('#smallScroller').width() < imagewidth)
			  $('#smallScroller').css('width', imagewidth);
			/*
			if ($('#smallScroller div.scrollWrapper div.scrollableArea').height() < imagewidth)
			  $('#smallScroller div.scrollWrapper div.scrollableArea').css('width', imagewidth);
			else
			  $('#smallScroller div.scrollWrapper div.scrollableArea').css('width', $('#smallScroller div.scrollWrapper div.scrollableArea').height());
			*/
			$('#smallScroller').css('top', imageheight + 40);
			//console.log(imagewidth);
			
			$("div#smallScroller").smoothDivScroll({mouseDownSpeedBooster: 2, scrollingSpeed: 4});
			
			return false;
		});
	};
	
	$.fn.supersized.defaults = { 
			startwidth: 4,  
			startheight: 3,
			transition: 0 //0-None, 1-Fade
	};
	
})(jQuery);

	//Slideshow Next Slide
	function nextslide() {
		if($.inAnimation) return false;
		else $.inAnimation = true;
	    var options = $.extend($.fn.supersized.defaults, $.fn.supersized.options);
	    var currentslide = $('#supersize .activeslide');
	    var currenttext = $('#bildunterschriften .activetext');
	    currentslide.removeClass('activeslide');
	    currenttext.removeClass('activetext');
		
	    if ( currentslide.length == 0 ) currentslide = $('#supersize a:last');
	    if ( currenttext.length == 0 ) currenttext = $('#bildunterschriften span:last');
			
	    var nextslide =  currentslide.next().length ? currentslide.next() : $('#supersize a:first');
	    var prevslide =  nextslide.prev().length ? nextslide.prev() : $('#supersize a:last');
	    
	    var nexttext =  currenttext.next().length ? currenttext.next() : $('#bildunterschriften span:first');
	    var prevtext =  nexttext.prev().length ? nexttext.prev() : $('#bildunterschriften span:last');


      var act_thumb = $('#smallScroller div.scrollWrapper div.scrollableArea .active');
  		var new_thumb = act_thumb.parent().next().find("span");
    	if ( new_thumb.length == 0 ) new_thumb = $('#smallScroller div.scrollWrapper div.scrollableArea span:first');
    	
    	new_thumb.animate({opacity: 1}, 300);
    	new_thumb.removeClass('inactive');
    	new_thumb.addClass('active');
    	act_thumb.animate({opacity: 0.7}, 300);
    	act_thumb.removeClass('active');
    	act_thumb.addClass('inactive');
    	
		
		  $('.prevslide').removeClass('prevslide');
  		prevslide.addClass('prevslide');
		
  		$('.prevtext').removeClass('prevtext');
  		prevtext.addClass('prevtext');
		
	    nextslide.hide().addClass('activeslide');
	    nexttext.hide().addClass('activetext');
	    
	    
	    	if (options.transition == 0){
	    		nextslide.show();
  	    	nexttext.show();
	    		$.inAnimation = false;
	    	}
	    	if (options.transition == 1){
	    	  nexttext.show();
	    		nextslide.fadeIn(600, function(){$.inAnimation = false;});
	    	}
	    	
	    $('#supersize').resizenow();//Fix for resize mid-transition
	    
	}
	
	//Slideshow Previous Slide
	function prevslide() {
	  /*
	  console.log("activeslide");
  	console.log($('#supersize .activeslide'));
  	*/
		if($.inAnimation) return false;
		else $.inAnimation = true;

    var options = $.extend($.fn.supersized.defaults, $.fn.supersized.options);
    var currentslide = $('#supersize .activeslide');
    currentslide.removeClass('activeslide');
    
    var currenttext = $('#bildunterschriften .activetext');
    currenttext.removeClass('activetext');

    if ( currentslide.length == 0 ) currentslide = $('#supersize a:first');
    if ( currenttext.length == 0 ) currenttext = $('#bildunterschriften span:first');
		
    var nextslide =  currentslide.prev().length ? currentslide.prev() : $('#supersize a:last');
    var prevslide =  nextslide.next().length ? nextslide.next() : $('#supersize a:first');
    
    var nexttext =  currenttext.prev().length ? currenttext.prev() : $('#bildunterschriften span:last');
    var prevtext =  nexttext.next().length ? nexttext.next() : $('#bildunterschriften span:first');
    
    
    var act_thumb = $('#smallScroller div.scrollWrapper div.scrollableArea .active');
		var new_thumb = act_thumb.parent().prev().find("span");
		if ( new_thumb.length == 0 ) new_thumb = $('#smallScroller div.scrollWrapper div.scrollableArea span:last');
		//console.log(new_thumb);
		
		new_thumb.animate({opacity: 1}, 300);
  	new_thumb.removeClass('inactive');
  	new_thumb.addClass('active');
  	//console.log(new_thumb);
  	act_thumb.animate({opacity: 0.7}, 300);
  	act_thumb.removeClass('active');
  	act_thumb.addClass('inactive');
  	
		
		$('.prevslide').removeClass('prevslide');
		prevslide.addClass('prevslide');
		
		$('.prevtext').removeClass('prevtext');
		prevtext.addClass('prevtext');
		
    nextslide.hide().addClass('activeslide');
    
    nexttext.hide().addClass('activetext');
    /*
    console.log("prevslide");
    console.log(prevslide);
    console.log("currentslide");
    console.log(currentslide);
    console.log("nextslide");
    console.log(nextslide);
    console.log("");
    */
  	if (options.transition == 0){
  		nextslide.show(); 
  		nexttext.show(); 
  		$.inAnimation = false;
  	}
  	if (options.transition == 1){
  	  nexttext.show(); 
  		nextslide.fadeIn(600, function(){$.inAnimation = false;});
  	}
  	
  	$('#supersize').resizenow();//Fix for resize mid-transition
	}
	/*
	function prevornext(e, dieses) {
	  var bildbreite = $('#supersize').width();
	  var clickpos = e.pageX;
	  var bildx2 = $(window).width()-40;
	  var bildx1 = bildx2-bildbreite;
	  if (clickpos < bildx1 + (bildbreite/3)){
	    //dieses.css('cursor', 'w-resize');
	    prevslide();
	  } else {
	    //dieses.css('cursor', 'e-resize');
	    nextslide();
	  }
	}
	*/
	//Slideshow Select Slide
	function showImageNumber(img_number) {
	  /*
	  console.log("activeslide");
  	console.log($('#supersize .activeslide'));
  	*/
  	
		if($.inAnimation) return false;
		else $.inAnimation = true;
	  
	  var options = $.extend($.fn.supersized.defaults, $.fn.supersized.options);
	  
	  var currentslide = $('#supersize .activeslide');
	  
	  var currenttext = $('#bildunterschriften .activetext');
	  
    //console.log(currentslide);
    
    var tempstatus = $('#supersize a:eq(' + img_number + ')').hasClass('activeslide');
    if (tempstatus) {
      $.inAnimation = false;
      return false;
    }
	  
	  currentslide.removeClass('activeslide');
	  currenttext.removeClass('activetext');
		
	  if ( currentslide.length == 0 ) currentslide = $('#supersize a:first');
	  if ( currenttext.length == 0 ) currenttext = $('#bildunterschriften span:first');
		
    var nextslide =  $('#supersize a:eq(' + img_number + ')') ? $('#supersize a:eq(' + img_number + ')') : $('#supersize a:last');
    var prevslide =  currentslide.length ? currentslide : $('#supersize a:first');
		
		var nexttext =  $('#bildunterschriften span:eq(' + img_number + ')') ? $('#bildunterschriften span:eq(' + img_number + ')') : $('#bildunterschriften span:last');
		var prevtext =  currenttext.length ? currenttext : $('#bildunterschriften span:first');
		
		//Animate the image to 0 opacity (fade it out)
		//$('.prevslide').removeClass('prevslide');
		var new_thumb = $('#smallScroller div.scrollWrapper div.scrollableArea a:eq(' + img_number + ')').find("span");
  	var act_thumb = $('#smallScroller div.scrollWrapper div.scrollableArea .active');
  	new_thumb.removeClass('inactive');
  	new_thumb.addClass('active');
  	act_thumb.animate({opacity: 0.7}, 300);
  	act_thumb.removeClass('active');
  	act_thumb.addClass('inactive');
  	new_thumb.animate({opacity: 1}, 300);
		
		$('.prevslide').removeClass('prevslide');
		prevslide.addClass('prevslide');
		
		$('.prevtext').removeClass('prevtext');
		prevtext.addClass('prevtext');
		
    nextslide.hide().addClass('activeslide');
    nexttext.hide().addClass('activetext');
    /*
    console.log("prevslide");
    console.log(prevslide);
    console.log("currentslide");
    console.log(currentslide);
    console.log("nextslide");
    console.log(nextslide);
    console.log("");
    */
    
  	if (options.transition == 0){
  	  nexttext.show(); 
  		nextslide.show(); 
  		$.inAnimation = false;
  	}
  	if (options.transition == 1){
  	  nexttext.show(); 
  		nextslide.fadeIn(600, function(){$.inAnimation = false;});
  	}
  	
  	$('#supersize').resizenow();//Fix for resize mid-transition
  	
  	return false;
	}
