/*
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 = true;
        $.paused = false;
        var options = $.extend($.fn.supersized.defaults, $.fn.supersized.options);



        $(window).bind("load", function() {

            $.inAnimation = false;

            $('.loading').fadeOut(500);


            //$('#content').show();
            if ($('#slideshow .activeslide').length == 0) $('#supersize img:first').addClass('activeslide');
            if (options.slide_captions == 1) $('#slidecaption').html($('#supersize .activeslide').find('img').attr('title'));
            if (options.navigation == 0) $('#navigation').hide();
            //Slideshow
            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;
                    });
                    $('#nextslide img').hover(function() {
                        if ($.paused == true) return false;
                        $(this).attr("src", "images/slideshow_next_hover.png");
                    }, function() {
                        if ($.paused == true) return false;
                        $(this).attr("src", "images/slideshow_next.png");
                    });
                    $('#prevslide img').hover(function() {
                        if ($.paused == true) return false;
                        $(this).attr("src", "images/slideshow_prev_hover.png");
                    }, function() {
                        if ($.paused == true) return false;
                        $(this).attr("src", "images/slideshow_prev.png");
                    });

                    //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;
                    });
                }



                jQuery.easing.easeOutQuart = function(x, t, b, c, d) {
                    return -c * ((t = t / d - 1) * t * t * t - 1) + b;
                };


                $('#supersize_links').serialScroll({
                    items: '.showThisImage',
                    prev: '.showPrevSlide',
                    next: '.showNextSlide',
                    offset: -26, //when scrolling to photo, stop 230 before reaching it (from the left)
                    start: 0, //as we are centering it, start at the 1nd
                    duration: 300,
                    force: true,
                    stop: false,
                    lock: true,
                    cycle: false, //don't pull back once you reach the end
                    easing: 'easeOutQuart', //use this easing equation for a funny effect
                    jump: false //click on the images to scroll to them

                });


            }






        });

        $(document).ready(function() {
            $.inAnimation = true;
            $('#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() {

            //alert($(".activeslide").width());

            //Define image ratio

            var ratio = $(".activeslide").height() / $(".activeslide").width();

            // safari fix
            if ($(".activeslide").height() == 0) {
                ratio = $(this).height() / $(this).width();
            }

            //alert($(this).children().children().height() / $(this).children().children().width());

            //Gather browser and current image size
            //var imagewidth = $(".activeslide").width();
            //var imageheight = $(".activeslide").height();
            var browserwidth = $(window).width() - 152 - 28 - 2;
            var browserheight = $(window).height() - 56 - 2;

            $("#supersize_links").width(browserwidth - 2);




            //Resize image to proper ratio

            if ((browserheight / browserwidth) > ratio) {
                $(this).width(browserwidth);
                $(this).height(browserheight);
                $(".activeslide").height(browserheight);
                $(".activeslide").width(browserheight / ratio);
            } else {
                $(this).width(browserwidth);
                $(this).height(browserheight);
                $(".activeslide").width(browserwidth);
                $(".activeslide").height(browserwidth * ratio);
            }
            if (options.vertical_center == 1) {
                $(".activeslide").css('left', ((browserwidth - $(".activeslide").width()) / 2));
                $(".activeslide").css('top', ((browserheight - $(".activeslide").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 || $('#supersize_links').is(':animated')) return false;
		else $.inAnimation = true;
	    var options = $.extend($.fn.supersized.defaults, $.fn.supersized.options);
	    var currentslide = $('#supersize .activeslide');
	    currentslide.removeClass('activeslide');
		
	    if ( currentslide.length == 0 ) currentslide = $('#supersize img:last');

	    var nextslide = currentslide.next().length ? currentslide.next() : $('#supersize img:first');
	    var nextnextslide = nextslide.next().length ? nextslide.next() : $('#supersize img:first');
	    
	    var prevslide = nextslide.prev().length ? nextslide.prev() : $('#supersize img:last');
	    var prevprevslide = $('#supersize .prevslide');
		
		
		
		
		//Display slide counter
		
		if (options.slide_counter == 1)
		{
			
			var slidecount = $('#slidecounter .slidenumber').html();
			currentslide.next().length ? slidecount++ : slidecount = 1;
		
			$('#slidecounter .slidenumber').html(slidecount);

			$(".img_slide").attr("src", "../images/gray_trans_pixel.png");
			var div_id = "#imgNumSrc" + slidecount;
			$(div_id).attr("src", "../images/blank.gif");

			$('.active_slide_link').removeClass('active_slide_link');
			$(div_id).parents(".img_slide_link").addClass('active_slide_link'); 
		}
		
		
		
		$('.prevslide').removeClass('prevslide');
		prevslide.addClass('prevslide');

		$('.nextslide').removeClass('nextslide');
		nextnextslide.addClass('nextslide');
		
		//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;
	    	    prevprevslide.hide();
	    	}
	    	if (options.transition == 1) {
	    	    currentslide.fadeOut(0, function() { $.inAnimation = false; });
	    	    nextslide.fadeIn(500, function() { $.inAnimation = false; });

	    	    //alert("run");
	    	    
	    	    //prevprevslide.hide();
	    	}
	    	if (options.transition == 2){
	    	    nextslide.show("slide", { direction: "up" }, 'slow', function() { $.inAnimation = false; });
	    	    prevprevslide.hide();
	    	}
	    	if (options.transition == 3) {
	    	    
	    	    nextslide.show("slide", { direction: "right" }, 'slow', function() { $.inAnimation = false; });
	    	    prevprevslide.hide();
	    	}
	    	if (options.transition == 4){
	    	    nextslide.show("slide", { direction: "down" }, 'slow', function() { $.inAnimation = false; });
	    	    prevprevslide.hide();
	    	}
	    	if (options.transition == 5){
	    	    nextslide.show("slide", { direction: "left" }, 'slow', function() { $.inAnimation = false; });
	    	    prevprevslide.hide();
	    	}
	    	
	    $('#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');
	    currentslide.removeClass('activeslide');
		
	    if ( currentslide.length == 0 ) currentslide = $('#supersize img:first');
			
	    var prevslide =  currentslide.prev().length ? currentslide.prev() : $('#supersize img:last');
	    var prevprevslide = prevslide.prev().length ? prevslide.prev() : $('#supersize img:last');
	    
	    //var nextnextslide = nextslide.next().length ? nextslide.next() : $('#supersize img:first');

	    //var nextslide = currentslide;

	    var nextnextslide = currentslide.next().length ? currentslide.next() : $('#supersize img:last');
	    
		
		//Display slide counter
		if (options.slide_counter == 1){
			var slidecount = $('#slidecounter .slidenumber').html();
			currentslide.prev().length ? slidecount-- : slidecount = $("#supersize > *").size();
			$('#slidecounter .slidenumber').html(slidecount);

			$('#slidecounter .slidenumber').html(slidecount);
			$(".img_slide").attr("src", "../images/gray_trans_pixel.png");

			var div_id = "#imgNumSrc" + slidecount;

			$(div_id).attr("src", "../images/blank.gif");
			
		}
		
		$('.prevslide').removeClass('prevslide');
		prevprevslide.addClass('prevslide');

		$('.nextslide').removeClass('nextslide');
		currentslide.addClass('nextslide');
		
		//Captions require img in <a>
	    if (options.slide_captions == 1) $('#slidecaption').html($(nextslide).find('img').attr('title'));
		
	    prevslide.hide().addClass('activeslide')
	    if (options.transition == 0) {
	            currentslide.hide();
	    	    prevslide.show(); $.inAnimation = false;
	    	    
	    	}
	    	if (options.transition == 1) {
	    	    currentslide.hide();
	    	    prevslide.fadeIn(500, function() { $.inAnimation = false; });
	    	    //nextnextslide.hide();
	    	    //prevprevslide.hide();
	    	}
	    	if (options.transition == 2){
	    	    nextslide.show("slide", { direction: "down" }, 'slow', function() { $.inAnimation = false; });
	    	    prevprevslide.hide();
	    	}
	    	if (options.transition == 3){
	    	    nextslide.show("slide", { direction: "left" }, 'slow', function() { $.inAnimation = false; });
	    	    prevprevslide.hide();
	    	}
	    	if (options.transition == 4){
	    	    nextslide.show("slide", { direction: "up" }, 'slow', function() { $.inAnimation = false; });
	    	    prevprevslide.hide();
	    	}
	    	if (options.transition == 5){
	    	    nextslide.show("slide", { direction: "right" }, 'slow', function() { $.inAnimation = false; });
	    	    prevprevslide.hide();
	    	}
	    	
	    	$('#supersize').resizenow();//Fix for resize mid-transition
	 }

