$(function(){
	var iconSlideIntervalId; // setIntervalのIDをとっておいてウィンドウのフォーカスがされたり外れたりしたとき使う
	function setIconSlide(){
		return setInterval(function(){
			$.each($('.iconset'), function(){
				slide($(this).children('li:not(:hidden)'));
			});
		}, 7000);
	}
	
	$('#head_icons').each(function(){
		var loopsliderWidth = $(this).width();
		var loopsliderHeight = $(this).height();
		$(this).children('ul').wrapAll('<div id="loopslider_wrap"></div>');

		var listWidth = $('#loopslider_wrap').children('ul').children('li').width();
		var listCount = $('#loopslider_wrap').children('ul').children('li').length;
		var loopWidth = (listWidth)*(listCount);
		var loopTime = 30000; // アイコンが一周するのにかかる時間
		
		$('#loopslider_wrap').css({
			top: '0',
			left: '0',
			width: ((loopWidth) * 2),
			height: (loopsliderHeight),
			overflow: 'hidden',
			position: 'fixed'
		});

		$('#loopslider_wrap ul').css({
			width: (loopWidth)
		});

		var current = 0;	
		loopsliderPosition();
		function loopsliderPosition(){
			var _loopTime = current != 0 ? loopTime -(loopTime/(loopWidth/-(current))) : loopTime;

			$('#loopslider_wrap').css({left: current});
			current = 0;
			$('#loopslider_wrap').animate({left:'-' + (loopWidth) + 'px'}, _loopTime, 'linear', function(){loopsliderPosition();});
		};
		
		$('#loopslider_wrap>ul').clone().appendTo('#loopslider_wrap');
		
		$(window).bind("focus",function(){ // ウィンドウのフォーカスが外れたらアニメーションを停止する
			loopsliderPosition();
			iconSlideIntervalId = setIconSlide();
		}).bind("blur",function(){ // フォーカスが戻ったら再開する
			current = $('#loopslider_wrap').position().left;
			$('#loopslider_wrap').stop();
			clearInterval(iconSlideIntervalId);
		}); 
	});
	
	function slide(current){
		var next;
		
		if($(current).parent().children('li:hidden').length == 0){
			$('#icons>li>.iconset>li').css('display', 'block');
			next = $(current).parent().children('li:first');
			current = $(current).parent().children('li:last');
			$(current).parent().children('li:hidden').css('display', 'block');
		} else {
			if($(current).next().length == 0){
				next = $(current).siblings().first();
			} else {
				next = $(current).next();
			}
		}

		if($(next).children().attr('src') == $(next).parent().children().first().children().attr('src')){
			$(next).parent().first().append(next);
		}
		
		$(current).css({'z-index': 100, 'width': '200px', display: 'block'});
		$(next).css({'z-index': 50, 'width': '200px', display: 'block'});
		
		$(current).animate({
			width: '0px'
		}, 500, function(){
			$(current).hide();
		});
	}
	
	$('.iconset').each(function(idx){
		var target = $(this).children();
		
		$(target).first().show();
		var pos = $(this).first().position();
		
		$(target).css({
			top: pos.top,
			left: pos.left + (idx*$(target).children().width())
		});
	});
	
	iconSlideIntervalId = setIconSlide();
	
	$('#h1_area').append('<div id="slider_controller" class="close"><a title="sliderController">sliderController</a></div>');
	
	$('#slider_controller').toggle(function(){
		$('#left_area').animate({
			top: 0
		}, 300);
		$('#head_icons').animate({
			opacity: 0,
			height: 0
		}, 300);
		$(this).removeClass('close').addClass('open');
		
		clearInterval(iconSlideIntervalId);
	}, function(){
		$('#left_area').animate({
			top: 150
		}, 300);
		$('#head_icons').animate({
			opacity: 1,
			height: 150
		}, 300);
		$(this).removeClass('open').addClass('close');
		
		iconSlideIntervalId = setIconSlide();
	});
});

