
/* ================================================================ 
JSON読み込み
=================================================================== */
$(function(){

	// JSON読み込み
	loadDataFile('top.json');

});

/* ================================================================ 
スライドアニメーション
=================================================================== */
function startAnimation(){
	$(".pgnavi").show();
	$(".pgnavi a:first").addClass("active");

	// 画像サイズと枚数の取得
	var imageWidth		= $(".slidebox").width();
	var imageSum		= $(".slidelist img").size();

	// 全ての画像をつなげた横幅に設定
	//var imageReelWidth	= imageWidth * imageSum;
	$(".slidelist").css({'width' : imageWidth * imageSum});

	// タイマーイベント
	var play;
	animeEvent = function(){
		play = setInterval(function(){
			// 次の要素を取得
			$active = $('.pgnavi a.active').next();
			// エレメント数が0であれば最初の要素を代入
			//if ( $active.length === 0) $active = $('.pgnavi a:first');
			// スライドアニメーション関数
			if ( $active.length == 0) {
				$active = $('.pgnavi a:first');
			}
			anime();
		}, 10000); // 秒数
	};
	animeEvent();

	// スライドアニメーション関数
	anime = function(){
		var slidelistPosition	= ($active.attr("rel") - 1) * imageWidth;
		$(".pgnavi a").removeClass('active');
		$active.addClass('active');

		// スライドアニメーション		
		$(".slidelist").fadeOut(0);
		$(".slidelist").animate({ 
			left: -slidelistPosition
		}, 0 );
		$(".slidelist").fadeIn("slow");
	}; 

	// ホバー処理
	$(".slidelist a").hover(function() {
		// タイマーイベントの削除
		clearInterval(play);
	}, function() {
		animeEvent();
	});

	// クリック処理
	$(".pgnavi a").click(function() {
		$active = $(this);
		// タイマーイベントの削除
		clearInterval(play);
		// スライドアニメーション
		anime();
		// タイマーイベント
		animeEvent();

		return false;
	});	
}

/* ================================================================ 
JSONのデータを解析して表示
=================================================================== */
function parseJSON(jsData){
	var data	= eval("("+jsData+")");
	var p		= $('div.slidelist');
	var navi	= $('div.pgnavi');

	// 画像情報毎に処理
	for( var i=0; i<data.js.length; i++ ){
		p.append('<a href="' +  data.js[i].link + '" target="' + data.js[i].target + '"><img src="' + data.js[i].path + '" /></a>');
		navi.append('<a id="pgnavi' + (i + 1) + '" href="#" rel=' + (i + 1) + '>' + (i + 1) + '</a>');
		$(".pgnavi").animate({ 
			right: 17 - (10 - data.js.length) * 33
		}, 0 );
	}
}





// HTTP通信用、共通関数
function createXMLHttpRequest(cbFunc){
	var XMLhttpObject = null;
	try{
		XMLhttpObject = new XMLHttpRequest();
	}catch(e){
		try{
			XMLhttpObject = new ActiveXObject("Msxml2.XMLHTTP");
		}catch(e){
			try{
				XMLhttpObject = new ActiveXObject("Microsoft.XMLHTTP");
			}catch(e){
				return null;
			}
		}
	}
	if (XMLhttpObject) XMLhttpObject.onreadystatechange = cbFunc;
	return XMLhttpObject;
}
/* ================================================================ 
This copyright notice must be untouched at all times.
Copyright (c) 2008 Stu Nicholls - stunicholls.com - all rights reserved.
=================================================================== */
function loadDataFile(fName){
	httpObj = createXMLHttpRequest(displayData);
	if ( httpObj ){
		httpObj.open("GET",fName,true);
		httpObj.send(null);
	}
}
function displayData(){
	if ( (httpObj.readyState == 4) && (httpObj.status == 200) ){
		parseJSON(httpObj.responseText);
		// スライドアニメーション
		startAnimation();
	}
}










