/************************************************************************************************************
Ajax dynamic content
Copyright (C) November, 2005  DTHMLGoodies.com, Alf Magne Kalleland

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA

Dhtmlgoodies.com., hereby disclaims all copyright interest in this script
written by Alf Magne Kalleland.

Alf Magne Kalleland, 2006
Owner of DHTMLgoodies.com


************************************************************************************************/

var slideshow2_noFading = false;
var slideshow2_timeBetweenSlides = 8000; // 次の写真が出てくるまでの時間;
var slideshow2_fadingSpeed = 40; // オーバーラップ時のスピード;
var slideshow2_fadingbit = 4; // オーバーラップ時のきざみ幅;

var shuffle_swicth = 1; // シャッフルスイッチ;
var start_rag = 500; // 最初に白紙から変わる時間;


var slideshow2_stats = new Array();

var slideshow2_slideIndex = new Array();
var slideshow2_slideIndexNext = new Array();
var slideshow2_imageDivs = new Array();
var slideshow2_currentOpacity = new Array();
var slideshow2_imagesInGallery = new Array();
var Opera = navigator.userAgent.indexOf('Opera')>=0?true:false;

var image_length='';   // 画像数;


// 配列をシャッフル、１個目(白紙)の位置は変えない;
var linkTo = new Array('a','b','c','d','e','f','g')
function rdmArray(list) {
	var i = list.length;
	while(i){
		if(i==list.length){
			var j = 0;
		}else{
			var j = Math.floor(Math.random()*i);
		}
		var t = list[--i];
		list[i] = list[j];
		list[j] = t;
	}
	return list.reverse();
}



function createParentDivs(imageIndex,divId){
	if(imageIndex==slideshow2_imagesInGallery[divId]){
		showGalleryInitialize(divId);
	}else{
		var imgObj = document.getElementById(divId + '_' + imageIndex);	
		if(Opera)imgObj.style.position = 'static';
		if(!slideshow2_imageDivs[divId])slideshow2_imageDivs[divId] = new Array();
		slideshow2_imageDivs[divId][slideshow2_imageDivs[divId].length] =  imgObj;

		imgObj.style.visibility = 'hidden';	
		imageIndex++;
		createParentDivs(imageIndex,divId);	
	}
}

var nowimg=0;
var nextimg=1;
var divIdnam='';
function gorap(nam){
	nextimg=nam;
	if(nowimg!=nextimg){
		showGalleryDirect(divIdnam);
	}
}

// オーバーラップの準備初期設定;
function showGalleryInitialize(divId){

	// 配列を一枚目は白紙にしたままで画像配列をシャッフルする;
	if(shuffle_swicth==1){ slideshow2_imageDivs[divId] = rdmArray(slideshow2_imageDivs[divId]); }

	slideshow2_currentOpacity[divId]=100;

	// 今の画像と次の画像を指定;
	slideshow2_slideIndex[divId]=nowimg;
	slideshow2_slideIndexNext[divId] = nextimg;

	// Displaying image divs;
	// Opera対策　わからん;
	slideshow2_imageDivs[divId][slideshow2_slideIndex[divId]].style.visibility = 'visible';
	if(Opera)slideshow2_imageDivs[divId][slideshow2_slideIndex[divId]].style.display = 'inline';
	if(navigator.userAgent.indexOf('Opera')<0){
		slideshow2_imageDivs[divId][slideshow2_slideIndexNext[divId]].style.visibility = 'visible';
	}

	// 移り変わるスタート時点での、今出ている画像と次に出てくる画像の透明度の設定;
	if(document.all){
		// IE rules;
		slideshow2_imageDivs[divId][slideshow2_slideIndex[divId]].style.filter = 'alpha(opacity=100)';
		slideshow2_imageDivs[divId][slideshow2_slideIndexNext[divId]].style.filter = 'alpha(opacity=1)';
	}else{
		// firefoxでの画面のちらつきを避けるため、1と0は使わない;
		slideshow2_imageDivs[divId][slideshow2_slideIndex[divId]].style.opacity = 0.99;
		slideshow2_imageDivs[divId][slideshow2_slideIndexNext[divId]].style.opacity = 0.01;
	}

	divIdnam=divId;

	// 自動的スタート;
	setTimeout('gorap(1)',start_rag)
}


// スライドスタート(1);
// オーバーラップさせる準備;
function showGalleryDirect(divId){

	slideshow2_currentOpacity[divId]=100;

	// 今の画像と次の画像を指定;
	slideshow2_slideIndex[divId]=nowimg;
	slideshow2_slideIndexNext[divId] = nextimg;

	// Displaying image divs;
	// Opera対策　わからん;
	slideshow2_imageDivs[divId][slideshow2_slideIndex[divId]].style.visibility = 'visible';
	if(Opera)slideshow2_imageDivs[divId][slideshow2_slideIndex[divId]].style.display = 'inline';
	if(navigator.userAgent.indexOf('Opera')<0){
		slideshow2_imageDivs[divId][slideshow2_slideIndexNext[divId]].style.visibility = 'visible';
	}

	// 移り変わるスタート時点での、今出ている画像と次に出てくる画像の透明度の設定;
	if(document.all){
		// IE rules;
		slideshow2_imageDivs[divId][slideshow2_slideIndex[divId]].style.filter = 'alpha(opacity=100)';
		slideshow2_imageDivs[divId][slideshow2_slideIndexNext[divId]].style.filter = 'alpha(opacity=1)';
	}else{
		// firefoxでの画面のちらつきを避けるため、1と0は使わない;
		slideshow2_imageDivs[divId][slideshow2_slideIndex[divId]].style.opacity = 0.99;
		slideshow2_imageDivs[divId][slideshow2_slideIndexNext[divId]].style.opacity = 0.01;
	}

	// 初期変数値設定・オーバーラップの準備設定したら実行;
	// 停止中。すぐに始める。ここで待たずに写真が出終わった時点で待つ。
	// setTimeout('revealImage("' + divId + '")',slideshow2_timeBetweenSlides);
	revealImage(divId);
}



// スライド中(2);
// じっさいに画像をオーバーラップさせる;
function revealImage(divId){

	if(slideshow2_noFading){
		slideshow2_imageDivs[divId][slideshow2_slideIndex[divId]].style.visibility = 'hidden';
		if(Opera)slideshow2_imageDivs[divId][slideshow2_slideIndex[divId]].style.display = 'none';
		showGallery(divId);
		return;
	}

	// 今出てる画像の透明度をだんだん下げて、次に出る画像の透明度をだんだん上げる;
	slideshow2_currentOpacity[divId]-=slideshow2_fadingbit;
	if(document.all){
		slideshow2_imageDivs[divId][slideshow2_slideIndex[divId]].style.filter = 'alpha(opacity='+slideshow2_currentOpacity[divId]+')';
		slideshow2_imageDivs[divId][slideshow2_slideIndexNext[divId]].style.filter = 'alpha(opacity='+(100-slideshow2_currentOpacity[divId])+')';
	}else{
		// firefoxでの画面のちらつきを避けるため、1と0は使わない;
		slideshow2_imageDivs[divId][slideshow2_slideIndex[divId]].style.opacity = Math.max(0.01,slideshow2_currentOpacity[divId]/100);
		slideshow2_imageDivs[divId][slideshow2_slideIndexNext[divId]].style.opacity = Math.min(0.99,(1 - (slideshow2_currentOpacity[divId]/100)));
	}

	if(slideshow2_currentOpacity[divId]>0){
		// 今の画像が消えて、次の画像が完全で出終わるまで、これを続ける;
		setTimeout('revealImage("' + divId + '")',slideshow2_fadingSpeed);
	}else{
		// 今の画像が消えて、次の画像が完全に出終わったら、前の画像を非表示にする;
		slideshow2_imageDivs[divId][slideshow2_slideIndex[divId]].style.visibility = 'hidden';
		if(Opera)slideshow2_imageDivs[divId][slideshow2_slideIndex[divId]].style.display = 'none';
		// 出ている画像以外を非表示にする;
		for(i=0; i<slideshow2_imagesInGallery[divId]; i++){
			if(i!=slideshow2_slideIndexNext[divId]){
				slideshow2_imageDivs[divId][i].style.visibility = 'hidden';
				if(Opera)slideshow2_imageDivs[i].style.display = 'none';
			}
		}
		// スライドフィックス(3);
		// 次のオーバーラップへの準備設定へ;
		nowimg=slideshow2_slideIndexNext[divId]; // 次の画像だった変数を今の画像変数にする;
		// スライドショーをずうっと続ける;
		nextimg+=1;
		if(nextimg >= image_length){ nextimg=1; } // 1枚目は白紙だから2枚目にもどる;

		// 次に移るまで待つ。写真を見せている時間;
		// 画像数が２枚以下(白紙ともう１枚だけ)のときは１枚出して止める;
		if(image_length > 2){
			setTimeout('showGalleryDirect("' + divId + '")',slideshow2_timeBetweenSlides);
		}

		// キャプション用テキストを指定(停止中);
		// setCaption(caption_text[slideshow2_slideIndexNext[divId]]);

	}
}


// 画像ブロックの変数設定;
function initImageGallery(divId){
	// ブロックを取得;
	var slideshow2_galleryContainer = document.getElementById(divId);

	slideshow2_slideIndex[divId] = -1;
	slideshow2_slideIndexNext[divId] = false;

	// ブロック内のimgを配列化;
	var galleryImgArray = slideshow2_galleryContainer.getElementsByTagName('img');
	for(var no=0;no<galleryImgArray.length;no++){
		galleryImgArray[no].id = divId + '_' + no;
	}

	slideshow2_imagesInGallery[divId] = galleryImgArray.length;
	image_length=galleryImgArray.length; // 配列の長さを画像数に代入;
	createParentDivs(0,divId);

}



// ブロック内のテキスト変更;
function setCaption(nam){
	if(document.layers){
		// netscape 4.x;
		document.layers['caption_id'].document.write(nam);
		document.layers['caption_id'].document.close();
	}else if(!document.all && document.getElementById){
		// (netscape 6) safari, firefox+Mac, firefox+Windows;
		document.getElementById('caption_id').innerHTML = nam;
	}else if(document.all){
		// (explorer4.x,5) ie7, ie6;
		caption_id.innerHTML = nam;
	}
}











// 未使用;

// オーバーラップの準備設定;
function showGallery(divId){
	// 画像めくり順の設定;
	if(slideshow2_slideIndex[divId]==-1)slideshow2_slideIndex[divId]=0; else slideshow2_slideIndex[divId]++;
	if(slideshow2_slideIndex[divId]==slideshow2_imageDivs[divId].length)slideshow2_slideIndex[divId]=0;
	slideshow2_slideIndexNext[divId] = slideshow2_slideIndex[divId]+1;
	if(slideshow2_slideIndexNext[divId]==slideshow2_imageDivs[divId].length)slideshow2_slideIndexNext[divId] = 0;

	slideshow2_currentOpacity[divId]=100;

	// Displaying image divs;
	// Opera対策　わからん;
	slideshow2_imageDivs[divId][slideshow2_slideIndex[divId]].style.visibility = 'visible';
	if(Opera)slideshow2_imageDivs[divId][slideshow2_slideIndex[divId]].style.display = 'inline';
	if(navigator.userAgent.indexOf('Opera')<0){
		slideshow2_imageDivs[divId][slideshow2_slideIndexNext[divId]].style.visibility = 'visible';
	}

	// 移り変わるスタート時点での、今出ている画像と次に出てくる画像の透明度の設定;
	if(document.all){
		// IE rules;
		slideshow2_imageDivs[divId][slideshow2_slideIndex[divId]].style.filter = 'alpha(opacity=100)';
		slideshow2_imageDivs[divId][slideshow2_slideIndexNext[divId]].style.filter = 'alpha(opacity=1)';
	}else{
		// firefoxでの画面のちらつきを避けるため、1と0は使わない;
		slideshow2_imageDivs[divId][slideshow2_slideIndex[divId]].style.opacity = 0.99;
		slideshow2_imageDivs[divId][slideshow2_slideIndexNext[divId]].style.opacity = 0.01;
	}

	// 初期変数値設定・オーバーラップの準備設定したら実行せずに待機;
	//setTimeout('revealImage("' + divId + '")',slideshow2_timeBetweenSlides);
	divIdnam=divId;
}


