var Slideshow = {

    init: function() {
        Slideshow.slideshows = [];
        $("#flickr-window").each(function(i) {
            Slideshow.slideshows.push($(this));
            var slideshow = Slideshow.slideshows[i];
            slideshow.items = $(".photo-holder");
			// Don't bother doing anything unless there is more than one item
            if (slideshow.items.length > 1) {
				slideshow.currentItem	= 0;
                slideshow.itemWidth     = slideshow.items.outerWidth();
				slideshow.subtitles		= $('div.photo-holder img');
                slideshow.addControls   = function() { Slideshow.addControls(slideshow); }
                slideshow.selectItem    = function(i) { Slideshow.selectItem(slideshow, i); }
                slideshow.selectPrev    = function() { Slideshow.selectPrev(slideshow); }
                slideshow.selectNext    = function() { Slideshow.selectNext(slideshow); }
                slideshow.isAtEdge      = function(side) { return Slideshow.isAtEdge(slideshow, side); }
                slideshow.isAnimated    = function() { return Slideshow.isAnimated(slideshow); }

                $(window).load(function() {
                    //slideshow.timeoutID = 0;
                    //slideshow.intervalID = window.setInterval(function() { slideshow.selectNext(); }, 20000);
                    slideshow.find("#flickr-set a").click(function() {
                        //window.clearTimeout(slideshow.timeoutID);
                        //window.clearInterval(slideshow.intervalID);
                        /*slideshow.timeoutID = window.setTimeout(function() {
                            slideshow.intervalID = window.setInterval(function() { slideshow.selectNext(); }, 20000);
                        }, 20000);*/
                    });
                });
                slideshow.addControls();
            }
        });
    },

    addControls: function(slideshow) {
        slideshow.slider = slideshow.children("#flickr-sliding-container");
        slideshowContainer = $('#flickr-window');
		
        $('#prev').click(function() { slideshow.selectPrev(); return false; });
        $('#next').click(function() { slideshow.selectNext(); return false; });
		$("a").mouseover(
			function(){
				$(this).addClass("hover");
			}
		);
		$("a").mouseout(
			function(){
				$(this).removeClass("hover");
			}
		);
    },

    selectPrev: function(slideshow) {
        if (!slideshow.isAnimated()) {
            // Allow for "circular" scrolling
            if (slideshow.isAtEdge("left")) {
                slideshow.items.filter(":last-child").insertBefore(slideshow.items.filter(":first-child"));
                slideshow.slider.css({ marginLeft: parseInt(slideshow.slider.css("marginLeft")) - slideshow.itemWidth });
            }

			// Set current item value
			if(slideshow.currentItem == 0)
			{
				slideshow.currentItem = slideshow.items.length;
			}
			slideshow.currentItem -= 1;
			
            // Animate, then select the previous numbered link
            slideshow.slider.animate({ marginLeft: "+=" + slideshow.itemWidth }, 250, "swing", function(){
				
			});
			
			$('#label').animate({color:'#D9D2C5'},100,function(){
				$('#label').text(slideshow.subtitles.eq(slideshow.currentItem).attr('title'));
				$('#label').animate({color:'#766C56'},100);
			});
			
			
        }
    },

    selectNext: function(slideshow) {
        
		if (!slideshow.isAnimated()) {
            // Allow for "circular" scrolling
            if (slideshow.isAtEdge("right")) {
                slideshow.items.filter(":first-child").insertAfter(slideshow.items.filter(":last-child"));
                slideshow.slider.css({ marginLeft: parseInt(slideshow.slider.css("marginLeft")) + slideshow.itemWidth });
            }

			// Set current item value
			slideshow.currentItem += 1;
			if(slideshow.currentItem == slideshow.items.length)
			{
				slideshow.currentItem = 0;
			}

            // Animate, then select the previous numbered link
            slideshow.slider.animate({ marginLeft: "-=" + slideshow.itemWidth }, 250, "swing", function(){
				
			});
			
			$('#label').animate({color:'#D9D2C5'},100,function(){
				$('#label').text(slideshow.subtitles.eq(slideshow.currentItem).attr('title'));
				$('#label').animate({color:'#5C5445'},100);
			});
			
        }
    },

    isAtEdge: function(slideshow, side) {
        if (side == "left") {
            return (parseInt(slideshow.slider.css("marginLeft")) == 0);
        } else if (side == "right") {
            return (parseInt(slideshow.slider.css("marginLeft")) == -(slideshow.itemWidth * (slideshow.items.length - 1)));
        }
    },

    isAnimated: function(slideshow) {
        return (slideshow.find(":animated").length)
    }

}

$(function() {
	var pLength = $("#story-holder p").length;
	$("#story-holder p:lt("+Math.floor(pLength/2)+")").wrapAll("<div id='story1'></div>");
	$("#story-holder p:gt("+(Math.floor(pLength/2) - 1)+")").wrapAll("<div id='story2'></div>");
		
	if($("#story1").height() < $("#story2").height())
	{
		$("#story2 p:eq(0)").insertAfter("#story1 p:eq("+(Math.ceil(pLength/2) - 1)+")");
	}
	
	$(".photo-holder").each(
		function(intIndex){
			var newWidth = $(".photo-holder:eq("+intIndex+") img").attr("w") * 240/500;
			var newHeight = $(".photo-holder:eq("+intIndex+") img").attr("h") * 240/500;
			
			var newTop = (225 - newHeight)/2;
			var newLeft = (240 - newWidth)/2;
			
			$(".photo-holder:eq("+intIndex+") img").css("top",newTop);
			$(".photo-holder:eq("+intIndex+") img").css("left",newLeft);
		}
	);
	
	$('#label').text($(".photo-holder:eq(0) img").attr('title'));
	
	$(".information-line:even").addClass("odd");
});

$(document).ready(function() {
    Slideshow.init();
});