(function($) {
	currentGallery = false;
	currentPosition = 0;
	slideWidth = 0;
	slides = [];
	numberOfSlides = 0;
	
	
	$(document).ready(function(){
		$("#mainGallery").simpleGallery({ width: 800 });
		
		$("#mainGallery .categories").css("display", "block");
		
		$("#mainGallery .categories .category").click(function() {
			$("#mainGallery")
				.resetGallery()
				.insertIntoGallery( $(".slides img", this) )
				.simpleGallery({ width: 800 });
				
			return false;
		});
	});
	
	
	$.fn.simpleGallery = function(args) {
		currentGallery = this;
		currentPosition = 0;
		slideWidth = args.width;
		slides = $(".slide", this);
		numberOfSlides = slides.length;
		
		
		$(".slide-container", this).css("overflow", "hidden");
		
		
		slides
			.wrapAll( $("<div></div>").addClass("slide-inner") )
			.css({
				float: "left",
				width: slideWidth
			});
		
		
		$(".slide-inner", this)
			.css("width", slideWidth * numberOfSlides);
		
		
		$(this)
			.addClass("simple-gallery")
			.prepend( $("<a>").attr("id", "leftControl").addClass("control").text("Left") )
			.append( $("<a>").attr("id", "rightControl").addClass("control").text("Right") )
			.manageGalleryControls(currentPosition);
		
		
		$(".control", this).click(function() {
			currentPosition = ($(this).attr("id") == "rightControl") ? currentPosition + 1 : currentPosition - 1;
			
			$(this).closest(".simple-gallery").manageGalleryControls(currentPosition);
			
			
			$(".slide-inner", $(this).closest(".simple-gallery")).animate({
				marginLeft: slideWidth * (-currentPosition)
			});
			
			
			$(this).blur();
			
			return false;
		});
		

		return this;
	};
	
	$.fn.manageGalleryControls = function(position) {
		if(position == 0)
			$("#leftControl", this).hide();
		else
			$("#leftControl", this).show();
	
		if(position == numberOfSlides-1)
			$("#rightControl", this).hide();
		else
			$("#rightControl", this).show();
		
		return this;
	};
	
	$.fn.resetGallery = function() {
		$(".slide-container", this).empty();
		$(".control", this).remove();
		
		currentGallery = false;
		currentPosition = 0;
		slidesWidth = 0;
		slides = [];
		numberOfSlides = 0;
		
		return this;
	};
	
	$.fn.insertIntoGallery = function(images) {
		currentGallery = this;
		
		$(images).each(function() {
			$(".slide-container", currentGallery).append(
				$("<div></div>")
					.addClass("slide")
					.append( $(this).clone() )
			);
		});
		
		return this;
	};
})(jQuery);