(function($){
	
	$.fn.helpLayer = function (){
		var slides = {};
		var currentSlide = -1;
		var _locked = true;
		var numslides = 0;
		var $overlay = $('<div id="help-layer-overlay"></div>').hide();
		
		var $frame = $('<div id="help-layer">'
					  +'<div class="top"></div>'
					  +'<div class="middle">'
					  +'<div class="close-button"><a href="#">close</a></div>'
					  +'<div class="header">header</div>'
					  +'<div class="content-wrapper"><div class="content"></div></div>'
					  +'<div class="buttons"><a class="prev" href="#">prev</a><span class="spacer"></span><a class="next" href="#">next</a></div>'
					  +'</div>'
					  +'<div class="bottom"></div>'
					  +'</div>').hide();

		
		init();		
		
		$(this).click(function(){
			currentSlide = -1;
			show();
		
			return false;	
		});
		
		function init(){
			$frame.find('.header').html($("#help-layer-slides h1").html());
			$("#help-layer-slides").after($frame);
			$("#help-layer-slides").after($overlay);
			$("#help-layer-slides .slide").each(function(i){
				++numslides;
				slides[i] = $(this);
			});
			
			$frame.find(".close-button a").click(function(){close(); return false;});
			$frame.find(".buttons .prev").click(function(){prev(); return false;});
			$frame.find(".buttons .next").click(function(){next(); return false;});
			
			
			$(window).resize(handleResize);
			
		}
		
		
		function show(){
			currentSlide = -1;
			showSlide();
			handleResize();
			$frame.fadeIn("slow");
			$overlay.show();	
		}
		
		function close(){
			$frame.fadeOut("slow");
			$overlay.hide();
		}
		
		function handleResize(){
			$frame.css('left',($(window).width() / 2 - $frame.width() / 2) + "px");
			$overlay.css('width',$(window).width() + "px");
			$overlay.css('height',$(document).height() + "px");
		}
		
		function toggleNextPrev(){
			
			
			if(currentSlide == (numslides -1) || numslides == 1)
				$frame.find(".buttons .next").hide();
			else
				$frame.find(".buttons .next").show();
			
			if(currentSlide == 0)
				$frame.find(".buttons .prev").hide();
			else
				$frame.find(".buttons .prev").show();
			
			if((numslides -1) < 1)
				$frame.find(".buttons").hide();
			else
				$frame.find(".buttons").show();	
				
		}
		
		function next(){
			if(_locked)
				return false;

			++currentSlide;
			showSlide();
		}
		
		function prev(){
			if(_locked)
				return false;
			
			--currentSlide;
			showSlide();
		}
		
		function showSlide(slideNumber){
			
			if(currentSlide != -1)
				
				$frame.find(".content-wrapper .content").fadeOut("slow", function(){
						$frame.find(".content-wrapper .content").html(slides[currentSlide].html());
						$frame.find(".content-wrapper .content").fadeIn("slow", function(){
							_locked = false;
						});
				});
			else{
				currentSlide = 0;
				$frame.find(".content-wrapper .content").html(slides[currentSlide].html());
				_locked = false;
			}
			
			toggleNextPrev();
	
		}
		
	}
	
})(jQuery);

$(document).ready(function(){
	$('.help-layer').helpLayer();	
});