/* http://css-tricks.com/startstop-slider/ */

$(function () {
	$("#index_topics ul li").addClass('slide');
});



var delayLength = 8000;


function doMove(panelWidth, tooFar) {
	var leftValue = $("#mover").css("left");
	
	// Fix for IE
	if (leftValue == "auto") { leftValue = 0; };
	
	var movement = parseFloat(leftValue, 10) - panelWidth;
	
	if (movement == tooFar) {
		$(".slide p.more").animate({"right": -200,opacity: 0},300);
		$("#mover").animate({opacity: 0.2},400);
			$("#mover").animate({"left": 0},1200, function(){
				$(".slide p.more").animate({"right": 15,opacity: 1},1300);
			});
		$("#mover").animate({opacity: 1},800);
	}
	else {
		$(".slide p.more").animate({opacity: 0},600);
		$("#mover").animate({opacity: 0.2},400,function(){
				$(".slide p.more").animate({"right": -100});
			});
			$("#mover").animate({"left": movement},1200, function(){
				$(".slide p.more").animate({"right": 15,opacity: 1},800);
			});
		$("#mover").animate({opacity: 1},800);
	}
}

$(function(){
	
	var $slide1 = $("#index_topics ul li:first-child");

	var panelWidth = $slide1.css("width");
	var panelPaddingLeft = $slide1.css("paddingLeft");
	var panelPaddingRight = $slide1.css("paddingRight");

	panelWidth = parseFloat(panelWidth, 10);
	panelPaddingLeft = parseFloat(panelPaddingLeft, 10);
	panelPaddingRight = parseFloat(panelPaddingRight, 10);

	panelWidth = panelWidth + panelPaddingLeft + panelPaddingRight;
	
	var numPanels = $(".slide").length;
	var tooFar = -(panelWidth * numPanels);
	var totalMoverwidth = numPanels * panelWidth;
	$("#mover").css("width", totalMoverwidth);

	$("#index_topics").append('<a href="#" id="slider-stopper" title="スライドを停止/再開">STOP</a>');

	sliderIntervalID = setInterval(function(){
		doMove(panelWidth, tooFar);
	}, delayLength);
	
	$("#slider-stopper").click(function(){
		if ($(this).text() == "STOP") {
			clearInterval(sliderIntervalID);
		 	$(this).text("START");
		 	$(this).css("background-position","-30px 0");
		}
		else {
			sliderIntervalID = setInterval(function(){
				doMove(panelWidth, tooFar);
			}, delayLength);
		 	$(this).text("STOP");
		 	$(this).css("background-position","0 0");
		}
		 
	});

});
