/*メニューロール用共通変数*/
//現在画面にセットされているメニュー
var nowSetEntry = new Array();
//対象メニューの内容物(innerHTML)
var rollMenuValue = new Array();
//対象メニューの参照配列
var getTags = new Array();
//メニュー個数
var rollMenuNum = 0;
//メニューひとつあたりの横幅
var rollMenuWidth = 197;
//イージングスクロール用ID
var intervalIDMenuRoll = 0;
//自動スクロール用ID
var intervalIDMenuAutoRoll = 0;
//ロールアウト用ID
var intervalIDMouse = 0;
//自動スクロール待ち時間
var menuWaitTime = 5 * 1000;
//スクロールのイージング
var easing = 0.5;
//動作許可フラグ
var actionFlg = false;

//初期設定
function rollMenuIni(){
	//初期値保存
	var target = document.getElementById("rollMenuInner");
	getTags = target.getElementsByTagName("dl");
	rollMenuNum = getTags.length;
	for(i=0; i<rollMenuNum; i++){
		rollMenuValue[i] = getTags[i].innerHTML;
	}
	
	//初期表示
	nowSetEntry = [rollMenuNum-2,rollMenuNum-1,0,1,2];
	rollMenuReset(target,nowSetEntry);
}

// 表示切替
function ChangeView(index) {
	clearTimeout(intervalIDMouse);
	if(actionFlg != false){
		clearTimeout(intervalIDMenuAutoRoll);
		
		document.getElementById("rollMenu" + nowSetEntry[1]).className = "";
		document.getElementById("rollMenu" + nowSetEntry[2]).className = "";
		document.getElementById("rollMenu" + nowSetEntry[3]).className = "";
		
		if(index == 'center'){
			index = nowSetEntry[2];
			intervalIDMenuAutoRoll = setTimeout("menuRollMove('right')",menuWaitTime);
		}
		
		document.getElementById("rollMenu" + index).className = "current";
		
		var n = 0;
		while (n < rollMenuNum) {
			document.getElementById("changeview".concat(n)).style.visibility = "hidden";
			n++;
		}
		document.getElementById("changeview".concat(index)).style.visibility = "visible";
	}
}

function rollMenuMouseOver(){
	clearTimeout(intervalIDMouse);
}
function rollMenuMouseOut(){
	if(actionFlg != false){
		intervalIDMouse = setTimeout("ChangeView('center')",500);
	}
}

function menuRollMove(move) {
	if(actionFlg != false){
		actionFlg = false;
		clearInterval(intervalIDMenuAutoRoll);
		getTags[2].className = "";
		target = document.getElementById("rollMenuInner");
		var targetX = parseInt(target.style.left.split("px")[0]);
		if(move == "right"){
			targetX -= rollMenuWidth; 
			for(i=0; i<5; i++){
				nowSetEntry[i] = nowSetEntry[i] + 1;
				if(nowSetEntry[i] > (rollMenuNum-1)){
					nowSetEntry[i] -= rollMenuNum;
				}
			}
		}
		else{
			targetX += rollMenuWidth;
			for(i=0; i<5; i++){
				nowSetEntry[i] = nowSetEntry[i] - 1;
				if(nowSetEntry[i] < 0){
					nowSetEntry[i] += rollMenuNum;
				}
			}
		}
		intervalIDMenuRoll = setInterval("targetEasingMove('rollMenuInner','"+targetX+"')",100);
	}
}
function targetEasingMove(target,targetX){
	var target_t = document.getElementById(target);
	var nowX = parseInt(target_t.style.left.split("px")[0]);
	var moveX = Math.round((targetX - nowX) * easing);
	if(Math.abs(moveX) > 1){
		target_t.style.left = "" + (nowX + moveX) + "px";
	}
	else{
		clearInterval(intervalIDMenuRoll);
		target_t.style.left = "" + targetX + "px";
		rollMenuReset(target_t,nowSetEntry);
	}
}
function rollMenuReset(target,setAry){
	target.style.left = "-" + rollMenuWidth + "px";
	
	for(i=0; i<rollMenuNum; i++){
		target = document.getElementById("rollMenu" + i);
		target.style.display = "none";
		target.className = "";
	}
	for(i=0; i<5; i++){
		target = document.getElementById("rollMenu" + setAry[i]);
		target.style.display = "block";
		target.style.left = (i * rollMenuWidth) + "px";
	}
	
	intervalIDMenuAutoRoll = setTimeout("menuRollMove('right')",menuWaitTime); 
	actionFlg = true;
	ChangeView('center');
	document.getElementById("rollMenu" + setAry[2]).className = "current";
}
