﻿<!--

// サブミットフラグ
var isSubmit = false;

/*
#########ポップアップ############
*/

function winOpen(moPath){
	window.open(moPath,"Popup","width=780,height=590,toolbar=0,location=0,directories=0,scrollbars=1,resizable=1,menubar=0");
}

function ctrlWin(moPath) {
	if ((navigator.userAgent.indexOf("Mac") > -1)) {
		if (window.opener) {
			window.opener.location.href = moPath;
			window.opener.focus();
		}else{
			window.open(moPath); 
		}
	}else{
		if (!window.opener.closed) {
			window.opener.location.href = moPath;
			window.opener.focus();
		}else{
			window.open(moPath);
		}
	}
}

/* 
 * ダブルクリックチェック
 * @param validatorチェック結果(validatorチェックがない場合はtrueを設定)
 */
function dblClickCheck(func) {
	if (isSubmit) {
		alert('ただいま処理中です。\nしばらくそのままでお待ち下さい。');
		return false;
	}
	if (!func) {
		return false;
	}
	isSubmit = true;
	return true;
}

/*
 * 表示・非表示の切替
 */
function switchDisplayById(id) {
	if (!document.getElementsByTagName) {
		return;
	}
	var obj = document.getElementById(id);
	if (obj.style.display == "block") {
		obj.style.display = "none";
	}
	else {
		obj.style.display = "block";
	}
}

/* 
 * チェックボックス全オン
 * @param オンにするチェックボックスのid(全て同じidにしておく必要がある)
 */
function allCheckBoxOn(onId) {
  for (formIdx = 0; formIdx < document.forms.length; formIdx++) {
    for (index = 0; index < document.forms[formIdx].elements.length; index++) {
      if (document.forms[formIdx].elements[index].id == onId ) {
        document.forms[formIdx].elements[index].checked = true;
      }
    }
  }
}

/* 
 * チェックボックス全オフ
 * @param オフにするチェックボックスのid(全て同じidにしておく必要がある)
 */
function allCheckBoxOff(onId) {
  for (formIdx = 0; formIdx < document.forms.length; formIdx++) {
    for (index = 0; index < document.forms[formIdx].elements.length; index++) {
      if (document.forms[formIdx].elements[index].id == onId ) {
        document.forms[formIdx].elements[index].checked = false;
      }
    }
  }
}


/*
* 指定されたURLにサブミットする
*
* @param arguments[0] form（必須）
* @param arguments[1] サブミット先URL（必須）
* @param arguments[2] オープン先ウィンドウ（オプション）
* @param arguments[3] オープン元ウィンドウに付ける名前（オプション）
*/
function subProc() {
    arguments[0].action = arguments[1];
    if (2 < arguments.length) {
        arguments[0].target = arguments[2];
    }
    if (3 < arguments.length) {
        window.name = arguments[3];
    }
    arguments[0].submit();
}


/*
* チェックボックスがチェックされているか確認し、
* チェックされていたら、削除確認のダイアログを表示。
* 削除OKなら、指定されたURLにサブミットする。
* 
* @param form（必須）
* @param サブミット先URL（必須）
* @param チェックボックスのID（必須）
*/
function removeConfirm(form, action, id){
	var checkCnt = 0;
    for (index = 0; index < form.elements.length; index++) {
      if (form.elements[index].id == id ) {
		if( form.elements[index].checked == true ){
			checkCnt ++;
	    }
      }
    }
	if( checkCnt == 0 ){
		alert("チェックボックスが選択されていません。");
		return false;
	}
	if( confirm("本当に削除してよろしいですか？") ){
		subProc(form, action);
	} else {
		return false;
	}
}

/*
 * RSSの受信
 */
function readRss(url, blogTopUrl) {
	var parser = new JKL.ParseXML(url);
	var func = function(data) {
    	writeBlog(data, blogTopUrl);
	}
	parser.async(func);
	parser.parse();
}

/*
 * RSS受信時に起動するコールバック関数
 */
function writeBlog(data, blogTopUrl) {
	var blogHtml = '<ul>';
	blogHtml += '<li><a href="' + blogTopUrl + '" target="_blank">blog トップページ</a></li>';
	if (typeof data["rdf:RDF"].item != 'undefined') {
		// 1件のみ
		if (typeof data["rdf:RDF"].item.length == 'undefined') {
			blogHtml += '<li><a href="' + data["rdf:RDF"].item.link + '" target="_blank">' + data["rdf:RDF"].item.title;
			if (typeof data["rdf:RDF"].item["dc:date"] != 'undefined') {
				blogHtml += '（' + data["rdf:RDF"].item["dc:date"].substr(5, 5).replace(/-/, "/") + '）';
			}
			blogHtml += '</a></li>';
		}
		// 2件以上
		if (typeof data["rdf:RDF"].item[0] != 'undefined') {
			blogHtml += '<li><a href="' + data["rdf:RDF"].item[0].link + '" target="_blank">' + data["rdf:RDF"].item[0].title;
			if (typeof data["rdf:RDF"].item[0]["dc:date"] != 'undefined') {
				blogHtml += '（' + data["rdf:RDF"].item[0]["dc:date"].substr(5, 5).replace(/-/, "/") + '）';
			}
			blogHtml += '</a></li>';
		}
		if (typeof data["rdf:RDF"].item[1] != 'undefined') {
			blogHtml += '<li><a href="' + data["rdf:RDF"].item[1].link + '" target="_blank">' + data["rdf:RDF"].item[1].title;
			if (typeof data["rdf:RDF"].item[1]["dc:date"] != 'undefined') {
				blogHtml += '（' + data["rdf:RDF"].item[1]["dc:date"].substr(5, 5).replace(/-/, "/") + '）';
			}
			blogHtml += '</a></li>';
		}
		if (typeof data["rdf:RDF"].item[2] != 'undefined') {
			blogHtml += '<li><a href="' + data["rdf:RDF"].item[2].link + '" target="_blank">' + data["rdf:RDF"].item[2].title;
			if (typeof data["rdf:RDF"].item[2]["dc:date"] != 'undefined') {
				blogHtml += '（' + data["rdf:RDF"].item[2]["dc:date"].substr(5, 5).replace(/-/, "/") + '）';
			}
			blogHtml += '</a></li>';
		}
	}
	blogHtml += '</ul>';
	document.getElementById('blog').innerHTML = blogHtml;
}

/*
 * id 属性が指定された prefix + 0,1,2,... の要素からランダムに抽出した最大 max 個を表示(style.display="block")します。
 * 要素数が max 個未満のときは全要素を表示します。
 */
function showElementsByIdPrefix(prefix, max) {
	var length = 0;
	for (i = 0;; ++i) {
		var element = document.getElementById(prefix + i);
		if (typeof element == "undefined" || element == null) {
			break;
		}
		length = i + 1;
	}
	var numbers = uniqueRandom(0, length, max);
	for (i = 0; i < numbers.length; ++i) {
		document.getElementById(prefix + numbers[i]).style.display = "block";
	}
}

/*
 * min 以上 max 未満の範囲内、quantity 個の重複しない整数の乱数を配列で返します。
 * (max - min) < quantity のときは (max - min) 個の整数の乱数を返します。
 * quantity が指定されていないときは配列ではなく一つの整数を返します。
 */
function uniqueRandom(min, max, quantity) {
	if (arguments.length == 2) {
		return min + Math.floor(Math.random() * (max - min));
	}
	if (2 < arguments.length) {
		if ((max - min) < quantity) {
			quantity = max - min;
		}
		var numbers = new Array();
		var idx = 0;
		while (numbers.length < quantity) {
			var r = min + Math.floor(Math.random() * (max - min));
			var unique = true;
			for (i = 0; i < numbers.length; ++i) {
				if (numbers[i] == r) {
					unique = false;
					break;
				}
			}
			if (unique) {
				numbers[idx++] = r;
			}
		}
		return numbers;
	}
}

-->

