//あらかじめ表示画像を読み込んでおく
var preload_images = new Array();
for ( i = 0; i < image_url_array.length; i ++ ){
	preload_images[i] = new Image();
	preload_images[i].src = image_url_array[i];
	preload_images[i].alt = image_alt[i];
}

var spd = 50;	//変化させる間隔（ミリ秒単位）
var ntc = 4;	//何%ずつ変化させるか
var cnt = 0;
var timer_id;
var play_on = false;
var autoPlayTime = 3000;
var caption_on = true;
var current_image_index = 0;
var fade_effect = false;

function setOpacity( img, opaval )
{
	document.images[img].filters['alpha'].opacity = opaval;
	document.images[img].style.MozOpacity = opaval / 100;
	document.images[img].style.opacity = opaval / 100;
}

//画像のフェードイン処理
function fadeInImage( img )
{
	if ( fade_effect ){
		if ( document.images[img].complete ){
			setOpacity( img, cnt );
			cnt += ntc;
			if ( 100 <= cnt ){	//フェードイン完了
				clearTimeout( timer_id );
				timer_id = setTimeout( "fadeOutImage('"+img+"')", autoPlayTime );	//一定時間後にフェードアウト開始へ
				return;
			}
		}
		timer_id = setTimeout( "fadeInImage('"+img+"')", spd );
	}
	else{
		timer_id = setTimeout( "fadeOutImage('"+img+"')", autoPlayTime );	//一定時間後にフェードアウト開始へ
	}
}

//画像のフェードアウト処理
function fadeOutImage( img )
{
	if ( fade_effect ){
		clearCaption();
		setOpacity( img, cnt );
		cnt -= ntc;
		if ( cnt <= 0 ){	//フェードアウト完了
			clearTimeout( timer_id );
			if ( current_image_index < image_url_array.length - 1 ){	//まだ次に表示する画像あり
				current_image_index ++;
				setImage( current_image_index );	//新しい画像をセット
				fadeInImage( 'photo' );	//フェードイン開始
			}
			else{	//次に表示する画像なし（自動再生終了）
				play_on = false;	//再生OFF
				var obj = getObject( 'btn_play' );
				obj.src = "/images/btn_play_o.gif";	//画像はプレイマークにする
				//先頭の画像とキャプションを表示しなおしておく
				cnt = 100;
				setOpacity( img, cnt );
				current_image_index = 0;
				setImage( current_image_index );
			}
			return;
		}
		timer_id = setTimeout( "fadeOutImage('"+img+"')", spd );
	}
	else{
		if ( current_image_index < image_url_array.length - 1 ){	//まだ次に表示する画像あり
			current_image_index ++;
			setImage( current_image_index );	//新しい画像をセット
			fadeInImage( 'photo' );	//フェードイン開始
		}
		else{	//次に表示する画像なし（自動再生終了）
			play_on = false;	//再生OFF
			var obj = getObject( 'btn_play' );
			obj.src = "/images/btn_play_o.gif";	//画像はプレイマークにする
			//先頭の画像を表示しなおしておく
			cnt = 100;
			setOpacity( img, cnt );
			current_image_index = 0;
			setImage( current_image_index );
		}
		return;
	}
}

//一つ前の画像を表示
function prevImage()
{
	if ( !play_on && 0 < current_image_index ){
		current_image_index --;
		setImage( current_image_index );
	}
}

//一つ次の画像を表示
function nextImage()
{
	if ( !play_on && current_image_index < image_url_array.length - 1 ){
		current_image_index ++;
		setImage( current_image_index );
	}
}

//画像をセット
function setImage( n )
{
	var obj = getObject( 'photo' );
	obj.src = preload_images[n].src;	//image_url_array[n];
	obj.alt = preload_images[n].alt;	//image_url_array[n];
}

function onLoadImage()
{
	var obj = getObject( 'photo' );
	if ( obj.src == "http://www.globalphotoex.com/images/mov_loading.gif" ){
		return;
	}
	setCaption( current_image_index );
	setPageNum();
}

//キャプションをセット
function setCaption( n )
{
	var obj = getObject( 'caption' );
	obj.innerHTML = image_caption_array[n];
}

//キャプションをクリア
function clearCaption()
{
	var obj = getObject( 'caption' );
	obj.innerHTML = "&nbsp;"
}

//ページ番号をセット
function setPageNum()
{
	var obj = getObject( 'pagenum' );
	obj.innerHTML = (current_image_index + 1) + "/" + image_url_array.length;
}


//スライドショー初期化
function startImage()
{
	current_image_index = 0;
	setImage( current_image_index );	//先頭の画像をセット
	show_or_hidden( 'caption', 'block' );
	setCaption( current_image_index );	//先頭の画像のキャプションをセット
	setPageNum();
}


//プレイボタンクリック
function onClickPlay()
{
	play_on = !play_on;
	if ( play_on ){	//再生ONにされた
		//自動再生を実行する
		var obj = getObject( 'btn_play' );
		obj.src = "/images/btn_stop_o.gif";	//画像はポーズマークにする
		cnt = 100;
		fadeOutImage( 'photo' );	//いま表示している画像のフェードアウト開始
	}
	else{	//再生OFFにされた
		var obj = getObject( 'btn_play' );
		obj.src = "/images/btn_play_o.gif";	//画像はプレイマークにする
		clearTimeout( timer_id );
		cnt = 100;
		setOpacity( 'photo', cnt );
	}
}

//キャプションボタンクリック
function onClickCaption()
{
	caption_on = !caption_on;
	var obj = getObject( 'btn_onoff' );
	if ( caption_on ){	//キャプションONにされた
		obj.src = "/images/btn_cap_on_o.gif";
		show_or_hidden( 'caption', 'block' );
	}
	else{	//キャプションOFFにされた
		obj.src = "/images/btn_cap_off_o.gif";
		show_or_hidden( 'caption', 'none' );
	}
}

//キャプションボタンにマウスオーバー
function onMouseOverCaption()
{
	var obj = getObject( 'btn_onoff' );
	if ( caption_on ){	//キャプションはONにされている
		obj.src = "/images/btn_cap_on_o.gif";
	}
	else{	//キャプションはOFFにされている
		obj.src = "/images/btn_cap_off_o.gif";
	}
}

//キャプションボタンからマウスアウト
function onMouseOutCaption()
{
	var obj = getObject( 'btn_onoff' );
	if ( caption_on ){	//キャプションはONにされている
		obj.src = "/images/btn_cap_on.gif";
	}
	else{	//キャプションはOFFにされている
		obj.src = "/images/btn_cap_off.gif";
	}
}

//プレイボタンにマウスオーバー
function onMouseOverPlay()
{
	var obj = getObject( 'btn_play' );
	if ( play_on ){	//自動再生中
		obj.src = "/images/btn_stop_o.gif";	//ポーズボタンのマウスオーバー画像を表示
	}
	else{	//自動再生中ではない
		obj.src = "/images/btn_play_o.gif";	//プレイボタンのマウスオーバー画像を表示
	}
}

//プレイボタンからマウスアウト
function onMouseOutPlay()
{
	var obj = getObject( 'btn_play' );
	if ( play_on ){	//自動再生中
		obj.src = "/images/btn_stop.gif";	//ポーズボタンのデフォルト画像を表示
	}
	else{	//自動再生中ではない
		obj.src = "/images/btn_play.gif";	//プレイボタンのデフォルト画像を表示
	}
}

//オブジェクトの表示・非表示
function show_or_hidden( nm, display )
{
	var obj = getObject( nm );
	if ( obj && obj.style ){ 
		obj.style.display = display;
	}
}

//オブジェクトの取得
function getObject( nm )
{
//	var obj = document.all && document.all( nm ) || document.getElementById && document.getElementById( nm );
	var obj = MM_findObj( nm );
	return obj;
}
