/*
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
*/

/*
Supersized modified by SLICK.PL
03.08.2011
*/

(function($)
{
  //Resize image on ready or resize
  $.fn.supersized = function()
  {
    $.inAnimation = false;
    $.paused = false;
    var options = $.extend($.fn.supersized.defaults, $.fn.supersized.options);

    $(window).bind("load", function()
    {
      $('#loading').remove();
      
      $('#contentList li').hide();
      $('#supersize').fadeIn('fast');
      $('header#supersizedHeader').fadeIn('fast');
      $('aside#supersizedAside').fadeIn('fast');
      $('aside#supersizedNavigationAside').fadeIn('fast');
      $('footer#supersizedFooter').fadeIn('fast');
      $('ul#contentList').fadeIn('fast');
      $('#content').show();
      
      if ($('#slideshow .activeslide').length == 0)
      {
	$('#supersize a:first').addClass('activeslide');
      }
      
      if ($('#contentList .activecontent').length == 0) 
      {
	$('#contentList li:first').addClass('activecontent');
      }
      
      $('li.activecontent').fadeIn('fast');

      if (options.slide_captions == 1)
      {
	$('#slidecaption').html($('#supersize .activeslide').find('img').attr('title'));
      }

      if (options.navigation == 0)
      {
	$('#navigation').hide();
      }

      if (options.slideshow == 1)
      {
	if (options.slide_counter == 1)
	{
	  //Initiate slide counter if active
	  $('#slidecounter .slidenumber').html(1);
	  $('#slidecounter .totalslides').html($("#supersize > *").size());
	}
	
	slideshow_interval = setInterval("nextslide()", options.slide_interval);

	if (options.navigation == 1)
	{
	  //Skip if no navigation
	  $('#navigation a').click(function()
	  {  
	    $(this).blur();
	    return false;
	  });
	  
	  //Slide Navigation
	  $('#nextslide').click(function() 
	  {
	    if($.paused)
	    {
	      return false;
	    }
	    
	    if($.inAnimation)
	    {
	      return false;
	    }
	    clearInterval(slideshow_interval);
	    nextslide();
	    slideshow_interval = setInterval(nextslide, options.slide_interval);
	    return false;
	  });
	  
	  $('#prevslide').click(function()
	  {
	    if($.paused)
	    {
	      return false;
	    }
	    
	    if($.inAnimation)
	    {
	      return false;
	    }
	    clearInterval(slideshow_interval);
	    prevslide();
	    slideshow_interval = setInterval(nextslide, options.slide_interval);
	    return false;
	  });

	  //next slide
	  $('#nextslide img').hover(function()
	  {
	    if($.paused == true)
	    {
	      return false;
	    }
	    $(this).attr("src", "images/forward.gif");
	  },
	  function()
	  {
	    if($.paused == true)
	    {
	      return false;
	    }
	    $(this).attr("src", "images/forward_dull.gif");
	  });
	  
	  //previous slide
	  $('#prevslide img').hover(function()
	  {
	    if($.paused == true)
	    {
	      return false;
	    }
	    $(this).attr("src", "images/back.gif");
	  },
	  function()
	  {
	    if($.paused == true)
	    {
	      return false;
	    }
	    $(this).attr("src", "images/back_dull.gif");
	  });

	  //Play/Pause Button
	  $('#pauseplay').click(function()
	  {
	    if($.inAnimation)
	    {
	      return false;
	    }
	    var src = ($(this).find('img').attr("src") === "images/play.gif") ? "images/pause.gif" : "images/play.gif";
	    if (src == "images/pause.gif")
	    {
	      $(this).find('img').attr("src", "images/play.gif");
	      $.paused = false;
	      slideshow_interval = setInterval(nextslide, options.slide_interval);  
	    }
	    else
	    {
	      $(this).find('img').attr("src", "images/pause.gif");
	      clearInterval(slideshow_interval);
	      $.paused = true;
	    }
	    
	    $(this).find('img').attr("src", src);
	    return false;
	  });
	  
	  $('#pauseplay').mouseover(function()
	  {
	    var imagecheck = ($(this).find('img').attr("src") === "images/play_dull.gif");
	    if (imagecheck)
	    {
	      $(this).find('img').attr("src", "images/play.gif"); 
	    }
	    else
	    {
	      $(this).find('img').attr("src", "images/pause.gif");
	    }
	  });

	  $('#pauseplay').mouseout(function()
	  {
	    var imagecheck = ($(this).find('img').attr("src") === "images/play.gif");
	    if (imagecheck)
	    {
	      $(this).find('img').attr("src", "images/play_dull.gif"); 
	    }
	    else
	    {
	      $(this).find('img').attr("src", "images/pause_dull.gif");
	    }
	    return false;
	  });
	}
      }
    });

    $(document).ready(function()
    {
      $('#supersize').resizenow(); 
    });
    
    //Pause when hover on image
    $('#supersize > *').hover(function()
    {
      if (options.slideshow == 1 && options.pause_hover == 1)
      {
	if(!($.paused) && options.navigation == 1)
	{
	  $('#pauseplay > img').attr("src", "images/pause.gif"); 
	  clearInterval(slideshow_interval);
	}
      }
      original_title = $(this).find('img').attr("title");
      if($.inAnimation)
      {
	return false;
      }
      else
      {
	$(this).find('img').attr("title","");
      }
    },
    function()
    {
      if (options.slideshow == 1 && options.pause_hover == 1)
      {
	if(!($.paused) && options.navigation == 1)
	{
	  $('#pauseplay > img').attr("src", "images/pause_dull.gif");
	  slideshow_interval = setInterval(nextslide, options.slide_interval);
	} 
      }
      $(this).find('img').attr("title", original_title);
    });
    
    $(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;

      //Gather browser and current image size
      var imagewidth = $(this).width();
      var imageheight = $(this).height();
      var browserwidth = $(window).width();
      var browserheight = $(window).height();
      var offset;

      //Resize image to proper ratio
      if ((browserheight/browserwidth) > ratio)
      {
	$(this).height(browserheight);
	$(this).width(browserheight / ratio);
	$(this).children().height(browserheight);
	$(this).children().width(browserheight / ratio);
      }
      else 
      {
	$(this).width(browserwidth);
	$(this).height(browserwidth * ratio);
	$(this).children().width(browserwidth);
	$(this).children().height(browserwidth * ratio);
      }

      if (options.vertical_center == 1)
      {
	$(this).children().css('left', (browserwidth - $(this).width())/2);
	$(this).children().css('top', (browserheight - $(this).height())/2);
      }
      return false;
    });
  };

  $.fn.supersized.defaults = 
  { 
    startwidth: 4,  
    startheight: 3,
    vertical_center: 1,
    slideshow: 1,
    navigation:1,
    transition: 1, //0-None, 1-Fade, 2-slide top, 3-slide right, 4-slide bottom, 5-slide left
    pause_hover: 0,
    slide_counter: 1,
    slide_captions: 1,
    slide_interval: 5000
  };
  
})(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 currentcontent = $('#contentList li.activecontent');
  
  currentcontent.fadeOut('fast');
  currentslide.removeClass('activeslide');
  currentcontent.removeClass('activecontent');
  
  if ( currentslide.length == 0 )
  {
    currentslide = $('#supersize a:last');
  }
  
  if ( currentcontent.length == 0 )
  {
    currentcontent = $('#contentList li:last');
  }
  
  var nextslide =  currentslide.next().length ? currentslide.next() : $('#supersize a:first');
  var prevslide =  nextslide.prev().length ? nextslide.prev() : $('#supersize a:last');
  var nextcontent =  currentcontent.next().length ? currentcontent.next() : $('#contentList li:first');
  var prevcontent =  nextcontent.prev().length ? nextcontent.prev() : $('#contentList li:last');

  //Display slide counter
  if (options.slide_counter == 1)
  {
    var slidecount = $('#slidecounter .slidenumber').html();
    currentslide.next().length ? slidecount++ : slidecount = 1;
    $('#slidecounter .slidenumber').html(slidecount);
  }
  
  $('.prevslide').removeClass('prevslide');
  prevslide.addClass('prevslide');
  $('.prevcontent').removeClass('prevcontent');
  prevcontent.addClass('prevcontent');
  
  //Captions require img in <a>
  if (options.slide_captions == 1)
  {
    $('#slidecaption').html($(nextslide).find('img').attr('title'));
  }

  nextslide.hide().addClass('activeslide');
  
  if (options.transition == 0)
  {
    nextslide.show(); $.inAnimation = false;
  }

  if (options.transition == 1)
  {
    nextslide.fadeIn(750, function(){$.inAnimation = false;});
  }

  if (options.transition == 2)
  {
    nextslide.show("slide", { direction: "up" }, 'slow', function(){$.inAnimation = false;});
  }

  if (options.transition == 3)
  {
    nextslide.show("slide", { direction: "right" }, 'slow', function(){$.inAnimation = false;});
  }

  if (options.transition == 4)
  {
    nextslide.show("slide", { direction: "down" }, 'slow', function(){$.inAnimation = false;});
  }

  if (options.transition == 5)
  {
    nextslide.show("slide", { direction: "left" }, 'slow', function(){$.inAnimation = false;});
  }

  nextcontent.hide().addClass('activecontent');
  
  if (options.transition == 0)
  {
    nextcontent.show(); $.inAnimation = false;
  }

  if (options.transition == 1)
  {
    nextcontent.fadeIn(750, function(){$.inAnimation = false;});
  }

  if (options.transition == 2)
  {
    nextcontent.show("slide", { direction: "up" }, 'slow', function(){$.inAnimation = false;});
  }

  if (options.transition == 3)
  {
    nextcontent.show("slide", { direction: "right" }, 'slow', function(){$.inAnimation = false;});
  }

  if (options.transition == 4)
  {
    nextcontent.show("slide", { direction: "down" }, 'slow', function(){$.inAnimation = false;});
  }

  if (options.transition == 5)
  {
    nextcontent.show("slide", { direction: "left" }, 'slow', function(){$.inAnimation = false;});
  }

  $('#supersize').resizenow(); //Fix for resize mid-transition
}

//Slideshow Previous Slide
function prevslide() 
{
  if($.inAnimation)
  {
    return false;
  }
  else
  {
    $.inAnimation = true;
  }

  var options = $.extend($.fn.supersized.defaults, $.fn.supersized.options);
  var currentslide = $('#supersize .activeslide');
  var currentcontent = $('#contentList li.activecontent');

  currentcontent.fadeOut('fast');
  currentslide.removeClass('activeslide');
  currentcontent.removeClass('activecontent');

  if ( currentslide.length == 0 )
  {
    currentslide = $('#supersize a:first');
  }

  if ( currentcontent.length == 0 )
  {
    currentcontent = $('#contentList li:first');
  }

  var nextslide =  currentslide.prev().length ? currentslide.prev() : $('#supersize a:last');
  var prevslide =  nextslide.next().length ? nextslide.next() : $('#supersize a:first');
  var nextcontent =  currentcontent.prev().length ? currentcontent.prev() : $('#contentList li:last');
  var prevcontent =  nextcontent.next().length ? nextcontent.next() : $('#contentList li:first');

  //Display slide counter
  if (options.slide_counter == 1)
  {
    var slidecount = $('#slidecounter .slidenumber').html();
    currentslide.prev().length ? slidecount-- : slidecount = $("#supersize > *").size();
    $('#slidecounter .slidenumber').html(slidecount);
  }

  $('.prevslide').removeClass('prevslide');
  prevslide.addClass('prevslide');
  $('.prevcontent').removeClass('prevcontent');
  prevcontent.addClass('prevcontent');

  //Captions require img in <a>
  if (options.slide_captions == 1)
  {
    $('#slidecaption').html($(nextslide).find('img').attr('title'));
  }

  nextslide.hide().addClass('activeslide');
  
  if (options.transition == 0)
  {
    nextslide.show(); $.inAnimation = false;
  }

  if (options.transition == 1)
  {
    nextslide.fadeIn(750, function(){$.inAnimation = false;});
  }

  if (options.transition == 2)
  {
    nextslide.show("slide", { direction: "down" }, 'slow', function(){$.inAnimation = false;});
  }

  if (options.transition == 3)
  {
    nextslide.show("slide", { direction: "left" }, 'slow', function(){$.inAnimation = false;});
  }

  if (options.transition == 4)
  {
    nextslide.show("slide", { direction: "up" }, 'slow', function(){$.inAnimation = false;});
  }

  if (options.transition == 5)
  {
    nextslide.show("slide", { direction: "right" }, 'slow', function(){$.inAnimation = false;});
  }

  nextcontent.hide().addClass('activecontent');
  
  if (options.transition == 0)
  {
    nextcontent.show(); $.inAnimation = false;
  }

  if (options.transition == 1)
  {
    nextcontent.fadeIn(750, function(){$.inAnimation = false;});
  }

  if (options.transition == 2)
  {
    nextcontent.show("slide", { direction: "down" }, 'slow', function(){$.inAnimation = false;});
  }

  if (options.transition == 3)
  {
    nextcontent.show("slide", { direction: "left" }, 'slow', function(){$.inAnimation = false;});
  }

  if (options.transition == 4)
  {
    nextcontent.show("slide", { direction: "up" }, 'slow', function(){$.inAnimation = false;});
  }

  if (options.transition == 5)
  {
    nextcontent.show("slide", { direction: "right" }, 'slow', function(){$.inAnimation = false;});
  }

  $('#supersize').resizenow(); //Fix for resize mid-transition
}
