﻿/*
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
Thanks to Aen for preloading, fade effect, & vertical centering
*/

(function($) {
    $.fn.supersized = function() {
        var options = $.extend($.fn.supersized.defaults, $.fn.supersized.options);

        $.totalImages = 0;
        $.loadedImages = new Array();
        $.loadedImagesIndex = 0;
        $.slideInterval = null;

        jQuery(document).ready(function() {
            jQuery("#supersize img").each(function() { var i = new Image; $.totalImages++; i.src = this.src; jQuery(i).load(function() { $.loadedImages.push(i); }) });

            jQuery("#supersize").empty();

            $.slideInterval = setInterval(nextslide, options.slide_interval);

            jQuery("#supersize").resize();
        });

        jQuery(window).bind("resize", function() {
            jQuery("#supersize").resize();
        });
    };

    $.fn.resize = function() {
        var options = $.extend($.fn.supersized.defaults, $.fn.supersized.options);

        return this.each(function() {

            var ratio = options.startheight / options.startwidth;

            var imagewidth = jQuery(this).width();
            var imageheight = jQuery(this).height();
            var browserwidth = jQuery(window).width();
            var browserheight = jQuery(window).height();
            var offset;

            if ((browserheight / browserwidth) > ratio) {
                jQuery(this).height(browserheight);
                jQuery(this).width(browserheight / ratio);
                jQuery(this).children().height(browserheight);
                jQuery(this).children().width(browserheight / ratio);
            } else {
                jQuery(this).width(browserwidth);
                jQuery(this).height(browserwidth * ratio);
                jQuery(this).children().width(browserwidth);
                jQuery(this).children().height(browserwidth * ratio);
            }
            if (options.vertical_center == 1) {
                jQuery(this).children().css("left", (browserwidth - jQuery(this).width()) / 2);
                jQuery(this).children().css("top", (browserheight - jQuery(this).height()) / 2);
            }
            return false;
        });
    };
	
	function nextslide() {
		var options = $.extend($.fn.supersized.defaults, $.fn.supersized.options);
	
		if ($.loadedImages.length == 0) {
			return;
		}
	
		if ($.loadedImagesIndex >= $.loadedImages.length - 1) {
			$.loadedImagesIndex = 0;
		} else {
			$.loadedImagesIndex++;
		}
	
		jQuery("#supersize img").fadeOut(options.fade_interval);
	
		jQuery("#supersize").hide().empty().append(jQuery($.loadedImages[$.loadedImagesIndex]));
	
		jQuery("#supersize img").hide();
	
		jQuery("#supersize").show();
	
		jQuery("#supersize img").fadeIn(options.fade_interval);
	
		jQuery("#supersize").resize();
	
		if ($.totalImages == 1) {
			clearInterval($.slideInterval);
		}
	};

    $.fn.supersized.defaults = {
        startwidth: 1500,
        startheight: 900,
        vertical_center: 1,
        slide_interval: 5000,
        fade_interval: 1550
    };

})(jQuery);