//
// 汎用表示ローテーションJavaScript "rotation.js"
// 下記のようなHTMLファイルでdivタグ内の画像をローテーションさせる
// また、画像にリンクを付ける
//
// (usage)
//
// var rotater = new divRotater(divのid, 表示間隔（1/1000秒単位）, リンク先URL, ターゲット);
//
// (example)
//
// <div id="rotation">
// 		<div><img src="〜" /><span><img /></span></div>
// 		<div><img src="〜" /><<span><img /></span>/div>
// 		<div><img src="〜" /><span><img /></span></div>
// </div>
//
// <script type="text/javascript">
//	$(function(){
//		var rotater1 = new divRotater('rotation', 3000, 'http:/uhuru.jp/', '_blank');
//	});
// </scriot>
//
// Copryright: 2010.1 株式会社ウフル
// ライセンス: LGPL 2.0
//

// ローテート管理オブジェクト
var divRotater = function(id, time, url ,target) {
	// 画像が2つ以上ある場合にローテート
	var maxNo = $('#'+id+' > div').length;
	if(maxNo > 1) {
		// ローテートしたい画像をすべて非表示
		$('#'+id+' > div').hide();

		// 各要素にリンクを付ける
		if(target) {
			target = ' target="+target+"';
		}
		if(url) {
			$('#'+id+' > div').each(function(i) {
				$('#'+id+' > div:eq('+i+') >  span > img').wrap('<a href="'+url+'"'+target+'></a>');
			});
		}

		// 1番目の画像を表示
		$('#'+id+' > div:first').show();

		// タイマーをセット。指定した時間おきにrotate()を実行。
		// 時間は1000 = 1秒
		var rotate = "rotate('" + id + "'," + maxNo + ")";
	    this.rotateObj = setInterval(rotate, time);
	}

	return this;
}

// ローテート実行関数
function rotate(id, maxNo) {
	// 表示中の画像番号を取得
	var showNo = 0;
	$('#'+id+' > div').each(function(i) {
		var display = $(this).css('display');
		if(display!='none') {
			showNo = i;
		}
	});

	// 現在の画像を非表示
	$('#'+id+' > div:eq('+showNo+')').hide();

	// 画像番号を1つ増やす
    showNo++;

	// 画像番号が最大画像番号より大きければ1番目の画像番号に戻す
    if(showNo >= maxNo) {
		showNo = 0;
	}

	// 次の画像を表示
	$('#'+id+' > div:eq('+showNo+')').show();
}
