/*
* 
* カルーセルスクリプト
*
* Copyright: (c) 2009 dmp.co.jp
**************************************/
var tolCarrouselFrameArray;
/*try{
	window.addEventListener("load",tolCarrouselInit,false);
}catch(e){
		window.attachEvent("onload",tolCarrouselInit);
}*/
function tolCarrouselInit(){
	//
	//
	tolCarrouselFrameArray = document.getElementsByClassName('tolCarrouselFrame');
	for (var i = 0; i < tolCarrouselFrameArray.length; i++){
		var wrap = document.getElementsByClassName('tolCarrouselWrap', tolCarrouselFrameArray[i])[0];
		var inner = document.getElementsByClassName('tolCarrouselInner', wrap)[0];
		inner.lock = false;
		inner.leftDec = 0;
		inner.tolCarrouselTargetX = 0;
		inner.style.left = "12px";
		var tmp = document.getElementsByClassName('tolCarrouselItem', wrap);
		for (var j = 0; j < tmp.length; j++){
		tmp[j].style.position = "absolute";
		tmp[j].style.left = (160 * j) + "px";
		tmp[j].style.top = "0px";
		}
		Event.observe(inner,'mouseover',tolCarrouselRollOver(inner));
		Event.observe(inner,'mouseout',tolCarrouselRollOut(inner));
		var btleft = document.getElementsByClassName('tolCarrouselLeftBt', tolCarrouselFrameArray[i])[0];
		var btright = document.getElementsByClassName('tolCarrouselRightBt', tolCarrouselFrameArray[i])[0];
		Event.observe(btleft,'click',tolCarrouselLeftBtClick(inner));
		Event.observe(btleft,'mouseout',tolCarrouselRollOut(inner));
		Event.observe(btright,'click',tolCarrouselRightBtClick(inner));
		Event.observe(btright,'mouseout',tolCarrouselRollOut(inner));
		//maxWidth
		if(navigator.userAgent.indexOf("MSIE 6")!=-1 || navigator.userAgent.indexOf("MSIE 5")!=-1){
			Event.observe(window,'resize',tolCarrouselFrameMaxWidth);
		}else{
			tolCarrouselFrameArray[i].style.maxWidth = ((tmp.length -1) * 160 + 12 + 12)  + "px";
		}
	}
	setInterval(tolCarrouselControl,1000/60);
	setInterval(tolCarrouselIntervalMotion,3000);
	setInterval(tolCarrouselCentering,1000/20);
}
function tolCarrouselCentering(){
	for (var i = 0; i < tolCarrouselFrameArray.length; i++) {
		var offset = Math.round((tolCarrouselFrameArray[i].parentNode.offsetWidth - tolCarrouselFrameArray[i].offsetWidth)/2);
		tolCarrouselFrameArray[i].style.left = offset + "px";
	}
}
function tolCarrouselFrameMaxWidth(){
	for (var i = 0; i < tolCarrouselFrameArray.length; i++){
		var tmp = document.getElementsByClassName('tolCarrouselItem', tolCarrouselFrameArray[i]);
		var tmp_width = ((tmp.length -1) * 160 + 12 + 12);
		if( document.body.clientWidth > ( tmp_width + 20 + 180 + 300 + 40 ) ){
			tolCarrouselFrameArray[i].style.width = tmp_width + "px";
		}else{
			tolCarrouselFrameArray[i].style.width = "100%";
		}
	}
}
function tolCarrouselRollOver( target ){
	var retFunc = function event( mouseEvent ){
		target.lock = true;
	};
	return retFunc;
}
function tolCarrouselRollOut( target ){
	var retFunc = function event( mouseEvent ){
		target.lock = false;
	};
	return retFunc;
}
function tolCarrouselLeftBtClick( target ){
	var retFunc = function event( mouseEvent ){
		target.tolCarrouselTargetX += 160;
		target.lock = true;
	}
	return retFunc;
}
function tolCarrouselRightBtClick( target ){
	var retFunc = function event( mouseEvent ){
		target.tolCarrouselTargetX -= 160;
		target.lock = true;
	}
	return retFunc;
}
function tolCarrouselIntervalMotion(){
	for (var i = 0; i < tolCarrouselFrameArray.length; i++){
		var wrap = document.getElementsByClassName('tolCarrouselWrap', tolCarrouselFrameArray[i])[0];
		var inner = document.getElementsByClassName('tolCarrouselInner', wrap)[0];
		if(!inner.lock) inner.tolCarrouselTargetX -= 160;
	}
}
function tolCarrouselControl( ){
	for (var i = 0; i < tolCarrouselFrameArray.length; i++){
		tolCarrouselFrameArray[i].blur();
		var inner = document.getElementsByClassName('tolCarrouselInner', tolCarrouselFrameArray[i])[0];
		inner.leftDec = (inner.leftDec*4 + inner.tolCarrouselTargetX) /5; 
		var wrapLeft = inner.leftDec;
		var wrapWidth = Number(inner.style.width.split("px")[0]);
		var tmp = document.getElementsByClassName('tolCarrouselItem', tolCarrouselFrameArray[i]);
		if(wrapLeft < -160 * tmp.length){
			wrapLeft += 160 * tmp.length;
			inner.tolCarrouselTargetX += 160 * tmp.length;
		}
		if(wrapLeft > 0){
			wrapLeft -= 160 * tmp.length;
			inner.tolCarrouselTargetX -= 160 * tmp.length;
		}
		for (var j = 0; j < tmp.length; j++){
			if( Math.abs(wrapLeft / 160) > (j+1)){
				tmp[j].style.left = ((160 * j) + 160 * tmp.length)+"px";
			} else{
				tmp[j].style.left = (160 * j) + "px";
			}
		}
		inner.style.left = String(Math.round(wrapLeft)+12) + "px";
		inner.leftDec = wrapLeft;
	}
}
