(function($){
	
	var slideWidth = 900,
		slideHeight = 199,
		defaultStyle = {
			left : '900px'
		},
		currentStyle = {
			left : '0px'
		},
		outStyle = {
			left : '-900px'
		},
		easing = 'swing',
		duration = 1000,//動く時間
		wait = 6000,//自動で動くときの待ち時間
		mainTimer = 0,
		moving = false;
	
	$(function(){
		
		var $slides = $('#mainVisualSlide').children(),
			$buttons = $('#mainVisualNavi').children();
		
		function lotate(nextId)
		{
			moving = true;
			
			var $current = $slides.filter('.current');
			if(!nextId)
			{
				$target = ($current.next().length) ? $current.next() : $slides.first();
			}
			else
			{
				$target = $(nextId);
			}
			
			$slides.filter('.next')
				.stop(true)
				.css(defaultStyle)
				.removeClass('next');
			
			$current
				.css(currentStyle)
				.stop(true)
				.animate(outStyle, duration, easing);
			
			$target
				.addClass('next')
				.css(defaultStyle)
				.stop(true)
				.animate(currentStyle, duration, easing, function(){
					$slides.filter('.current')
						.removeClass('current')
						.css(defaultStyle);
						
					$slides.filter('.next')
						.removeClass('next')
						.addClass('current')
						.css(currentStyle);
					
					moving = false;
					
					//最初の一枚目に来たらインターバル解除
					if($(this).prev().length == 0)
					{
						clearInterval(mainTimer);
					}
				});
			
			$buttons
				.removeClass('current')
				.children('[href="#' + $target.attr('id') + '"]')
				.parent()
				.addClass('current');
		}
		
		function buttonsClickHandler(event)
		{
			if(!event.isDefaultPrevented()) event.preventDefault();
			
			if(moving || $(this).parent().hasClass('current')) return false;
			
			clearInterval(mainTimer);
			
			lotate($(this).attr('href'));
			
			return false;
		}
		
		mainTimer = setInterval(lotate, wait);
		
		$buttons
			.children()
			.click(buttonsClickHandler);
		
	});
	
})(jQuery);
