/* 以下、連動配列の処理関数 sc(SelName,SelIndex) */
/* 引数
     SelName  ; 要素（Select）の名前
     SelIndex : 選択された要素（Option）の番号   */

function sc(SelName,SelIndex){

	if( 9 >= SelIndex ){ SelIndex = "0" + SelIndex; }  // 桁合わせの処理

	if( SelName.indexOf("-1") >= 0 ){                  // 子が変動した場合（孫を初期化・修整）

		SelName  = SelName.slice(0,SelName.length -2); // 子の名前の末尾から2文字を除去
		var pobj = document.getElementById(SelName);   // 親を特定
		var pIndex = pobj.selectedIndex;               // 親の選択状況を把握
		if( 9 >= pIndex ){ pIndex = "0" + pIndex; }    // 桁合わせの処理
		var gnam = SelName + "-2";                     // 孫の名前   gnam : Grandchild Name

		if( document.getElementById(gnam) ){           // 孫が存在する場合に行う処理
			var gobj = document.getElementById(gnam);  // 孫を特定   gobj : Grandchild Object
			var glgh = gobj.options.length;            // 孫の要素数 glgh : Grandchild Length

			for( i=1; glgh>i; i++){
				gobj.options[1] = null;                // 孫を要素を初期化
			}

		}

		if( SelIndex == "00" ){ return false; }        // 子が "---" の時は孫を生成しない

		var Aname = SelName + pIndex + SelIndex;       // 孫に適用する配列名を生成
		var Aobj = eval(Aname);                        // 配列名に相当するオブジェクトを特定
		var Algh = Aobj.length;
		for(i=0; Algh > i; i++){                       // 配列の要素数だけ孫の要素を生成
			gobj.options[i+1] = new Option(Aobj[i]);
			gobj.options[i+1].value = Aobj[i];
		}

	} else {                                           // 親が変動した場合（説明は略）

		var cnam = SelName + "-1";
		var cobj = document.getElementById(cnam);
		var clgh = cobj.options.length ;
		for( i=1; clgh>i; i++){
			cobj.options[1] = null;
		}
		var gnam = SelName + "-2";
		if( document.getElementById(gnam) ){
			var gobj = document.getElementById(gnam);
			var glgh = gobj.options.length;
			for( i=1; glgh>i; i++){
				gobj.options[1] = null;
			}
		}

		if( SelIndex == "00" ){ return false; }        // 親が "---" の時は子を生成しない

		var Aname = SelName + SelIndex;
		var Aobj = eval(Aname);
		var Algh = Aobj.length;
		for(i=0; Algh > i; i++){
			cobj.options[i+1] = new Option(Aobj[i]);
			cobj.options[i+1].value = Aobj[i];
		}

	}
	var Tname = SelName + "-all";
	var Tobj  = document.getElementById(Tname);
	Tobj.value = "";
}



/* 以下、テキストボックスに選択内容を書き出す関数 fc(SelName,SelValue) */
/* 引数
     SelName  ; 要素（Select）の名前
     SelValue : 選択された要素（Option）の内容   */

function fc(SelName,SelValue){

	SelName    = SelName.slice(0,SelName.length -2); // 名前の末尾から2文字を除去
	var pobj   = document.getElementById(SelName);   // 親を特定
	var pIndex = pobj.selectedIndex;                 // 親の選択状況を把握
	var vText  = pobj.options[pIndex].value;         // 親の選択内容を取得

	var cnam   = SelName + "-1";                     // 子の名前 cnam : Child Name
	var cobj   = document.getElementById(cnam);      // 子を特定 cobj : Child Object
	var cIndex = cobj.selectedIndex;                 // 子の選択状況を把握
	    vText += "：" + cobj.options[cIndex].value;  // 子の選択内容を追加

	var gnam   = SelName + "-2";                     // 孫の名前 gnam : Grandchild Name
	if( document.getElementById(gnam) ){
		vText     += "：" + SelValue;
	}

	var Tname = SelName + "-all";
	var Tobj  = document.getElementById(Tname);
	Tobj.value = vText;
}