(function(){
	if(!window.S) window['S'] = {};
	
	var endLeft = true;
	var endRight = false;
	var isAnim = false;
	var whichPane = 1;
	
	function init(){
		
	}
	
	function slideRight(){
		if(!isAnim){
			isAnim = true;
			var stop_anim = false;
			$('div.pane').each(function(index) {
				var left_prop = isNaN(parseInt($(this).css('left'))) ? 0 : parseInt($(this).css('left'));
				if(index == 0){
					switch(left_prop){
						case (-$(this).outerWidth() * 2):
							stop_anim = true;
							whichPane = 3;
							break;
						case 0:
							whichPane = 2;
							break;
						case (-$(this).outerWidth()):
							whichPane = 3;
							break;
					}
				}
				
				if(!stop_anim){
					var left_pos = left_prop - $(this).outerWidth();
					$(this).animate(
						{
						  left: left_pos
						},
						'slow',
						'swing',
						function(){
							isAnim = false;
							
						}
					);
				}else{
					S.jump(1);
					isAnim = false;
				}
			  });
				S.indicatePane(whichPane);
		}
	}
	window['S']['slideRight'] = slideRight;
	
	function slideLeft(){
		if(!isAnim){
			isAnim = true;
			var stop_anim = false;
			$('div.pane').each(function(index) {
				var left_prop = isNaN(parseInt($(this).css('left'))) ? 0 : parseInt($(this).css('left'));
				
				if(index == 0){
					
					switch(left_prop){
						case (-$(this).outerWidth() * 2):
							whichPane = 2;
							break;
						case 0:
							stop_anim = true;
							whichPane = 1;
							break;
						case (-$(this).outerWidth()):
							whichPane = 1;
							break;
					}
					
				}
				
				if(!stop_anim){
					var left_pos = left_prop + $(this).outerWidth();
					$(this).animate({
					  left: left_pos
					}, 'slow',
					'swing',
					function(){isAnim=false});
				}else{
					S.jump(3);
					isAnim = false;
				}
			  });
				S.indicatePane(whichPane);

		}
	}
	window['S']['slideLeft'] = slideLeft;
	
	function jump(i){
		if(!isAnim){
			isAnim = true;

			if(i != whichPane){ // 3 we're on 2
				whichPane = i;
				$('div.pane').each(function(index) {
					var left_prop = isNaN(parseInt($(this).css('left'))) ? 0 : parseInt($(this).css('left'));
					
					if(index == 0){
						switch(left_prop){
							case 0:
								startPane = 1;
								break;
							case (-$(this).outerWidth()):
								startPane = 2;
								break;
							case (-$(this).outerWidth() * 2):
								startPane = 3;
								break;
						}
					}
					if(i < startPane){
						var diff 		= startPane - i;
						var left_pos 	= left_prop + $(this).outerWidth() * diff;
					}else{
						var diff 		= i - startPane;
						var left_pos 	= left_prop - $(this).outerWidth() * diff;
					}
					
					$(this).animate({
					  left: left_pos
					}, 'slow',
					'swing',
					function(){isAnim=false});
				  });
				S.indicatePane(whichPane);
			}
		}
	}
	window['S']['jump'] = jump;
	
	function indicatePane(i){
		$('#indicators span').each(
			function(index){
				if(index+1 == i){
					$(this).addClass('on');
				}else{
					$(this).removeClass('on');
				}
			}
		);
	}
	window['S']['indicatePane'] = indicatePane;
	
	init();
})();
