var Slider = {
	currentSlide: null,
	slideTimer: null,
	numSlides: null,
	
	initialize: function() {
	   Slider.numSlides = $(".portfolio-items > li").length;
	   Slider.currentSlide = 0;

	   $(".portfolio-items > li").each(function(index) {
			$(".portfolio-indicator")
				.append($("<li/>")
					.html($("<a href='#'>"+index+"</a></li>")
						.click(function(){Slider.show(index);})
						.css("width", (460-Slider.numSlides-1)/Slider.numSlides)));
		});
		
		$(".portfolio-indicator > li:eq(0)").addClass("active");
		Slider.slideTimer = window.setTimeout(Slider.next, 7*1000);
		
		$(".portfolio-previous").click(Slider.prev);
		$(".portfolio-next").click(Slider.next);
	},
	
	prev: function() {
		var prev = Slider.currentSlide - 1;
		
		if(prev == -1) {
			prev = Slider.numSlides-1;
		}
		
		Slider.show(prev);
	},
	
	next: function() {
		var next = Slider.currentSlide + 1;
		
		if(next >= Slider.numSlides) {
			next = 0;
		}
		
		Slider.show(next);
	},
	
	show: function(index) {
		window.clearTimeout(Slider.slideTimer);
		Slider.slideTimer = window.setTimeout(Slider.next, 7*1000);
		
		if(index == Slider.currentSlide) {
			return;
		} else if(index > Slider.currentSlide) {
			Slider.get(Slider.currentSlide).animate({
				left: 0,
				opacity: 0
			}, function(){$(this).hide();});
			Slider.get(index)
				.css("left", 184)
				.css("opacity", 0)
				.show()
				.animate({
					left: 92,
					opacity: 1
				}, function() {
					if(jQuery.browser.msie) {
						this.style.removeAttribute('filter');
					};
				});
		} else {
			Slider.get(Slider.currentSlide).animate({
				left: 184,
				opacity: 0
			}, function(){$(this).hide();});
			Slider.get(index)
				.css("left", 0)
				.css("opacity", 0)
				.show()
				.animate({
					left: 92,
					opacity: 1
				}, function() {
					if(jQuery.browser.msie) {
						this.style.removeAttribute('filter');
					};
				});
		};
		
		Slider.currentSlide = index;
		
		$(".portfolio-indicator li").removeClass("active");
		$(".portfolio-indicator li:eq("+
			index
			+")").addClass("active");
	},
	
	get: function(index) {
		return $(".portfolio-items > li:eq("+index+")");
	}
};

//http://blog.bmn.name/2008/03/jquery-fadeinfadeout-ie-cleartype-glitch/
jQuery.fn[ "fadeInIE" ] = function( speed, callback ){
   return this.fadeIn(speed, function() {
      if(jQuery.browser.msie) {
         this.style.removeAttribute('filter');
      };
      if(typeof(callback) != "undefined") {
         callback();
      }
   });
};

$(document).ready(function() {
    $.preLoadImages($(".portfolio-items img"), Slider.initialize);
});
