//////////////////////////////////////////////////////////////////
/// slider
//////////////////////////////////////////////////////////////////
/*
初期設定
------------------------------------------------------------*/
//切替間隔 ／ 単位：秒
var rcIntervalTime=5;

//スクロール速度 小＝高速 ／ 単位：1000分の1秒
var rcScrlSpeed=50;

//ブロック幅 ／ 単位：px
var itemWidth=94;

//表示ブロック数
var itemNumber=3;


//ブロック指定
var rcBlockId="SLIDE";
var rcBlockInnerId="SLIDE_INNER";
var rcBlockItemId="SLIDE_ITEM";


/*
処理内部初期設定
------------------------------------------------------------*/
var rcFlag=0,rcFlagTrig,rcTimerId;
//スクロール加算値
var scrlAdd=100;
//スクロール加速度値
var scrlAccel=1.125;


/*
ハンドラ ＋ フラグ判定
------------------------------------------------------------*/
var goWhere,touchFlag=0;
var recomend=function(rcFlagTrig,vl){
	goWhere=vl;
	if(rcFlagTrig){
		if(touchFlag==0) rcContrl();
		clearTimeout(rcTimerId);
		rcFlag=1;
	}else if(rcFlag==0){
		if(touchFlag==0) rcTimerSub(rcFlagTrig);
	}
}

/*
スクロール判定
------------------------------------------------------------*/
var idBItem,sLeft,sLeftNext,init,count,lenTnLi,itemNumberFlag,itemNumberGate;
var rcContrl=function(){
	sLeft=0;
	sLeftNext=0;
	idBItem=document.getElementById(rcBlockItemId);
	init=(idBItem.style.left)?idBItem.style.left.replace("px",""):0;
	count=(init)?Math.abs(init/itemWidth):0;
	lenTnLi=getRcList(0).length;
	itemNumberFlag=lenTnLi-count-itemNumber;
	if(goWhere) itemNumberGate=(0<itemNumberFlag&&itemNumberFlag<itemNumber)?itemNumberFlag:itemNumber;
	else itemNumberGate=(0<count&&count<itemNumber)?count:itemNumber;
	if((goWhere&&(count+itemNumber)>=lenTnLi)||(!goWhere&&count==0)){
		scrAll();
	}
	else scrlMain();
}

/*
スクロール
------------------------------------------------------------*/
/*1スクロール
--------------------------------------------------*/
var scrlMain=function(){
	if(sLeftNext<itemWidth*itemNumberGate){
		sLeft=(eval(sLeft)+scrlAdd)/scrlAccel;
		sLeftNext=(eval(sLeft)+scrlAdd)/scrlAccel;
		idBItem.style.left=(goWhere)?-(Math.abs(init)+sLeft)+"px":-(Math.abs(init)-sLeft)+"px";
		timerId=setTimeout(function(){scrlMain()},rcScrlSpeed);
		touchFlag=1;
	}else{
		idBItem.style.left=(goWhere)?-(itemWidth*(count+itemNumberGate))+"px":-(itemWidth*(count-itemNumberGate))+"px";
		touchFlag=0;
	}
}

/*フルスクロール
--------------------------------------------------*/
var scrAll=function(){
	if(sLeftNext<itemWidth*itemNumber){
		sLeft=(eval(sLeft)+scrlAdd)/scrlAccel;
		sLeftNext=(eval(sLeft)+scrlAdd)/scrlAccel;
		idBItem.style.left=(goWhere)?-(Math.abs(init)-sLeft*(lenTnLi/itemNumber-1))+"px":-(Math.abs(init)+sLeft*(lenTnLi/itemNumber-1))+"px";
		timerId=setTimeout(function(){scrAll()},rcScrlSpeed);
		touchFlag=1;
	}else{
		idBItem.style.left=(goWhere)?"0px":-itemWidth*(lenTnLi-itemNumber)+"px";
		touchFlag=0;
	}
}

/*
リスト取得
------------------------------------------------------------*/
var getRcList=function(num){
	var idDiv=document.getElementById(rcBlockId);
	var tnUl=idDiv.getElementsByTagName("ul");
	var tnLi=tnUl.item(num).getElementsByTagName("li");
	return tnLi;
}

/*
タイマー制御
------------------------------------------------------------*/
var timerFlag=0;
var rcTimerSub=function(flagTrig,vl){
	if(timerFlag==1) rcContrl();
	timerFlag=1;
	rcTimerId=setTimeout(function(){rcTimerSub();},rcIntervalTime*1000);
}



//////////////////////////////////////////////////////////////////
/// 汎用id表示切り替え
//////////////////////////////////////////////////////////////////

var switchBlock=function(id,vl){
	var elm=document.getElementById(id);
	elm.style.display=vl;
}

