//画像BBSの画像をランダムに表示する

	//最後の画像番号
	var imgEnd = 248;
	//セットする画像の枚数。
	var imgMaxCount = 100; 
	//新しい画像とする枚数。
	var imgNewCount = 20; 
	//画像の最大幅＆高さ(ピクセル)
	var imgMaxSize = 240;
	
	//ターゲットコンテナのIDを保存する変数
	var targetID = "";
	//初期時のHTMLを保存する変数
	var initHtml = "";
	
	//画像サイズ取得用イメージオブジェクト
	var workimg = new Image();

function start_random_img(ID) {
	
	//画像の表示コンテナのIDを保存
	targetID = ID;
	
	//初期時のHTMLを保存
	initHtml = document.getElementById(targetID).innerHTML;
	
	//画像表示開始
	random_img();
}


function random_img() {
	
	//URL指定
	var url    = "/cgi-bin/randimg/randimg.cgi?";
	var imgDir = "/cgi-bin/joyful/img/"
	
	// JKL.ParseXMLオブジェクトを生成
	var http = new JKL.ParseXML.Text(url);
	
	if(http){
		//コールバック関数設定
		var func = function (data) {
			//返ってきたテキストデータから画像ファイル名を取得しセット
			set_imgSrc(data.substring(data.indexOf("<randimg>",0)+"<randimg>".length,data.indexOf("</randimg>",0)));
		}
		//非同期モードセット
		http.async(func);
		//データ取得
		http.parse();
	}else{
		//JKL.ParseXMLオブジェクトが生成できないブラウザは従来通り
		var imgRand
		if(Math.floor(Math.random() * 3) < 2){
			imgRand = Math.floor(Math.random() * imgNewCount);
		}else{
			imgRand = Math.floor(Math.random() * imgMaxCount);
		}
		imgRand = imgEnd - imgRand;
		//イメージオブジェクトに生成したファイル名をセット
		set_imgSrc(imgDir + imgRand + ".jpg");
	}
}

function set_imgSrc(imgSrc) {
	
	//読み込み画像の設定
	workimg.src = imgSrc;
	
	//イベントを利用して画像の有無を確認するためにダミーのHTMLを出力
	document.getElementById(targetID).innerHTML = initHtml + "<img src='" + workimg.src + "' onload='set_img();' onerror='retry_img();' height='0' width='0' style='display: none;'>";
}

function set_img() {
	
	if (!workimg.complete){
		//ロードが完了していない場合は再度チェック
		setTimeout("set_img()",1000);
		return;
	}
	
	//画像のロードが完了してるはずなので大きさを取得
	var DispWidth = workimg.width;
	var DispHeight = workimg.height;
		
	//最大サイズを越えている場合はアスペクト比を保って縮小する
	if(DispWidth > DispHeight){
		if (DispWidth > imgMaxSize) {
			DispWidth  = imgMaxSize;
			DispHeight = parseInt(workimg.height * (imgMaxSize / workimg.width));
		}
	}else{
		if (DispHeight > imgMaxSize) {
			DispWidth  = parseInt(workimg.width * (imgMaxSize / workimg.height));
			DispHeight = imgMaxSize;
		}
	}
	
	//画像の設定
	document.getElementById(targetID).innerHTML = "<a href='" + workimg.src +"' target='Photo'><img src='" + workimg.src +"' width='" + DispWidth + "' height='" + DispHeight + "' border='1'></a>";
	//HTMLも更新
	initHtml = document.getElementById(targetID).innerHTML;
	
	//ひっそりと別画像をに切替
	setTimeout("random_img()",15000);
}

function retry_img() {
	
	//エラー時は時間を置いて再挑戦
	setTimeout("random_img()",3000);
}
