/**
 * NBR.moveInputValue
 * チェックされたチェックボックスのvalueを他のinputのvalueに追加・削除するメソッド
 * HTMLコーディングルール
 * 値を格納したいinput要素のidを「checkboxのname属性値 + 接尾辞(_hidden)」にする
 *
 * [コーディング例]
 * <input type="text" name="target" id="hoge_hidden" value="" />
 * <input type="checkbox" name="hoge" value="値A" onclick="NBR.moveInputValue(this);" /> 値A
 * <input type="checkbox" name="hoge" value="値B" onclick="NBR.moveInputValue(this); /> 値B
 */
 
if(typeof NBR == 'undefined') var NBR = function(){};

/**
 * @param checkbox input要素
 * @param bAlert   アラート確認するかどうか
 */
NBR.moveInputValue = function(checkbox, bAlert) {
	// 隠しinputのidの接尾辞
	var ext = "_hidden";
	// 値をつなぐ文字
	var sConcat = ", ";
	var sConcatLength = sConcat.length;
	var targetObj = document.getElementById(checkbox.name + ext);
	if(targetObj != null) {
		if(checkbox != null) {
			if(checkbox.checked) {
				// 該当文字列の追加
				targetObj.value += (targetObj.value == "")? checkbox.value : sConcat + checkbox.value;
			} else {
				// 該当文字の削除
				targetObj.value += sConcat;
				targetObj.value = targetObj.value.split(checkbox.value + sConcat).join("");
				sLength = targetObj.value.length - sConcatLength;
				if(targetObj.value.length > 0) {
					targetObj.value = targetObj.value.substr(0, sLength);
				}
			}
		}
		if(bAlert) {
			alert(targetObj.name + " : " + targetObj.value);
		}
	}
}