<!--
/*
 * @(#)ChJComboBoxTypeA.js
 * USK  hiroshi_ueki
 * 発注機関コンボボックスデータ作成スクリプトファイル
 * 以下のデータを扱う
 *	・発注機関の名称
 *
 * @author	Nihon Unisys Software Kaisha, Ltd.
 * @version	1.0 2000/12/05
 */

 /*
 * 省庁コンボボックスオブジェクト
 */ 
 var formMinistries	= new Object();

 /*
 * 発注機関・部局コンボボックスオブジェクト
 */ 
 var formBukyoku	 = new Object();

 /*
 * 発注者名・事務所コンボボックスオブジェクト
 */ 
 var formHachushaJ = new Object();

 /*
 * 並び順【発注者名・事務所】
 */
 var formOrder	 = new Object();

	/**
	 * 配列の長さを返す関数
	 *
	 * @param	aryName 配列名
	 */
	function getOptionLength(aryName) {
		var aryLength = 0;	// 配列の長さ
		
		/* 配列名 ＝ 発注者事務所 */
		if(aryName.match("Hachusha")) {
			aryLength = aryHachusha.length;
		}
		return aryLength;
	}

	/**
	 * 発注機関のコンボボックスフォームオブジェクトを代入する関数
	 * @param form  フォームオブジェクト
	 */
	function setFormObjectValue(form) {
		// フォームオブジェクトをグローバル変数に代入
			this.formBukyoku	= form.Bukyoku;		// 発注機関・局
			this.formHachushaJ	= form.HachushaJ;		// 発注者名・事務所
	}

	/**
	 * 配列中に格納されている値の長さ(最大値)を返す関数
	 * [配列中の名前文字数が最大のもの] * [パラメータ値の文字列] * 4を返す。
	 * 4をかけるのは[全角文字 = 半角文字 * 4]と仮定して。
	 *
	 * @param ch 文字列
	 * @param	aryName 配列名
	 * @return [配列中の名前文字数が最大のもの] * [パラメータ値の文字列] * 4
	 */
	function getInitString(ch,aryName) {
		var maxValue = -1;	// 文字数の最大値を保持
		var count;			// カウント
		
		/* 配列名 ＝ 発注者事務所 */
		if(aryName.match("Hachusha")) {
			for (count = 0; count < aryHachusha.length; count++) {
				maxValue = Math.max(maxValue,aryHachusha[count][1].length);
			}
		}
		
		/* ブラウザ別に'maxValue'の値を変更 */
		if(navigator.appName.charAt(0)=="N"){ 		// ネットスケープ
			maxValue *= 3.1;	// 表示を考慮し、3を掛ける	
		}
		else if(navigator.appName.charAt(0)=="M"){ 	// マイクロソフト
			maxValue *= 2;	// 表示を考慮し、2を掛ける	
		}else {
			maxValue *= 4;		
		}
		
		var result = "";	// 結果リターンオブジェクト
		/* 引数の文字列で結果リターンオブジェクトを作成する */
		for (count = 0; count < maxValue; count++) {
			result += ch;
		}
		return result;
	}

	/**
	 * 発注機関・部局のコンボボックス"option"部にデータを挿入する関数
	 * @param form  フォームオブジェクト
	 */
	function setBukyokuComboValue(form) {
		var count = 0;		// 配列のカウント
		var setCount = 0;	// "option"部にデータを挿入するカウント
		setFormObjectValue(form); // フォームオブジェクトを代入

		/* データの挿入 */
		for (count = 0; count < aryBukyoku.length; count++) {
			var bukyokuBango =  aryBukyoku[count][0].substr(0,4);
			/* 省庁の値と、部局の上４桁の値が同一、もしくは初期設定値なら */
			if('0000' == bukyokuBango){
				formBukyoku.options[setCount].value = aryBukyoku[count][0];
				formBukyoku.options[setCount].text = aryBukyoku[count][1];
				setCount++;		// 値の挿入数カウント
			}
		}

		formBukyoku.selectedIndex = 0;	// フォーカスを初期化

		/* 発注者名・事務所の全てのフィールドをクリア */
		var space = getInitString(" ","Hachusha"); // 挿入するスペースを獲得
		for (i = 0; i < formHachusha.length; i++) {
			formHachusha.options[i].value = "";
			formHachusha.options[i].text = space;
		}
		
		formHachusha.selectedIndex = 0;	// フォーカスを初期化

	}

	/**
	 * 発注者名・事務所コンボボックスの"option"部にデータを挿入する関数。
	 * @param orber  発注者名・事務所の並び順
	 * @param form  フォームオブジェクト
	 */
	function setHachushaComboValue(form) {
		var count = 0;		// 配列のカウント
		var setCount = 0;	// "option"部にデータを挿入するカウント
		var bukyokuBango = 0;

		setFormObjectValue(form); // フォームオブジェクトを代入
		// 選択された省庁
		for (i = 0; i < form.Hachusha.length; i++) { 
			if(form.Hachusha[i].checked) {
				var bukyokuBango = form.Hachusha[i].value;
			}							//チェックされた地方整備局の値を代入
		}
		/*
		 * 	発注者・事務所名データの挿入処理
		 */
		/* コード順の並び */
		for (count = 0; count < aryHachusha.length; count++) {
			var hachushaBango =  aryHachusha[count][0].substr(0,7);
			/* 部局の値と、発注者・事務所名の上7桁の値が同一、もしくは初期設定値なら */
			if((bukyokuBango == hachushaBango)||('0000000' ==hachushaBango)){
				form.HachushaJ.options[setCount].value = aryHachusha[count][0];
				form.HachushaJ.options[setCount].text = aryHachusha[count][1];
				setCount++;
			}
		}
		//発注者名・事務所のその他フィールドをクリア
		var space = getInitString(" ","Hachusha");		// 挿入するスペースを獲得
		for (; setCount <formHachushaJ.length; setCount++) {
			form.HachushaJ.options[setCount].value = "";
			form.HachushaJ.options[setCount].text = space;
		}
		formHachushaJ.selectedIndex = 0;	// フォーカスを初期化

	}

	/**
	 * 事務所指定コンボボックスoption部をクリア
	 * 
	 */
	function clearComboValue(form) {
		var space = getInitString(" ","Hachusha");		// 挿入するスペースを獲得
		for(i = 0 ; i < aryHachusha.length; i++) {
			form.HachushaJ.options[i].value= "";
			form.HachushaJ.options[i].text = space;
			formHachushaJ.selectedIndex = 0;	
		}
	}

//-->
