(function($) {
	var si = null; var h = '';
	
	$(function () {
		var si = setInterval(hashChange, 100);
		
		$('.hoverable').hover(function() {
			$(this).addClass('over');
		}, function() {
			$(this).removeClass('over');
		});

		$('#next-slide').click(function () {
			return direct(1);
		});

		$('#prev-slide').click(function () {   
			return direct(-1);
		});
		
		$('#hidden-points').text($('li:hidden').length);
		
		$('#slides .slide h2:first-child').addClass('first');
	});

	function direct(num) {
		var now = h.substring(1) * 1;
		var count = ($('#count').text()) * 1;

		if((now+num) > 0 && (now+num) <= count) {
			document.location.hash = (now+num);
		}
	}
	
	function showPoint() {
		$('#slides .current li:hidden:first').css('display', 'list-item');
		
		$('#hidden-points').text($('#slides .current li:hidden').length);
	}
	
	function hidePoint() {
		$('#slides .current li:visible:last').hide();
		
		$('#hidden-points').text($('#slides .current li:hidden').length);
	}

	(function() {
		var keys = {
			37:function() {direct(-1)}, //left
			38:function() {hidePoint()}, //up
			39:function() {direct(1)}, //right
			40:function() {showPoint()} //down
		};
		var fn;
		$(document).keyup(function(e) {
			//console.log(e);
			if(fn=keys[e.keyCode]) fn();
		});
	})();
	
	function hashChange() {
		if(h != document.location.hash) {
			h = document.location.hash;
			
			//if exists
			if($('#slides #slide-' + h.substring(1)).size() > 0) {
				$('#slides .slide:visible').fadeOut(500).removeClass('current');
				$('#slides #slide-' + h.substring(1)).fadeIn(500).addClass('current');
				
				$('#slide').text(h);
				$('#hidden-points').text($('#slides .current li:hidden').length);
			}
		}
		else {}
	}

})(jQuery);
