/**
 *	
 * 二次元配列の長さを取得
 *
 * 渡された二次元配列の長さを取得する
 *
 * 引数
 * 	valArray：判定を行う二次元配列
 *
 * 戻り値
 * 	arrayLenth : 配列の長さ
 *
 **/
function get_array_length(valArray)
{

	var arrayLenth = 0;

	for(key in valArray){ arrayLenth++; }

	return arrayLenth;

}

/**
 *	
 * javascript用のナンバーフォーマット
 *
 * 渡された値をナンバーフォーマットして返す
 *
 * 引数
 * 	value：ナンバーフォーマットを行う値
 *
 * 戻り値
 * 	value：ナンバーフォーマット後の値
 *
 **/
// 
function java_number_format(value) {

	// 値が数値でない場合は失敗
	if (Minus_Number(value) == false) { return value; }

	// 長さが３より上でない場合は処理を行わない。
	if (String(value).length > 3) {
	
		var formatArray = new Array();    // 一時格納用配列
		var count       = 0;              // カウント用変数
		var formatStr   = String(value);  // 値のストリング
		var minusFlg    = "";             // マイナス値用変数
		
		// 先頭の値が「-」の場合は先に切り出しを行う
		if (String(formatStr).substr(0, 1) == "-") {
		
			minusFlg  = formatStr.substr(0, 1);
			formatStr = formatStr.slice(1);
		
		}
		    
		// 変数を切り出して、配列に格納していく
		while (formatStr.length != 0) {
		
			if (formatStr.length > 3) {
			
				formatArray[count] = formatStr.slice(formatStr.length - 3);
				formatStr          = formatStr.substr(0, formatStr.length - 3);
			
			} else {
		
				formatArray[count] = formatStr;
				formatStr          = "";
		
			}
			
			// 5回以上ループするエラー(最大１京まで)
			if (count > 5) { return value; }
		
			count++;
		
		}
		
		// 結果格納の初期化
		value = "";
		
		// カンマを間に入れて文字列の組立る
		for (var i = formatArray.length - 1; i >= 0; i--) { value += "," + formatArray[i]; }
		
		// 先頭のカンマ除去
		value = value.substr(1, value.length);
		
		if (minusFlg.length == 1) { value = "-" + value; } 
	
	}
	
	return value;

}

/**
 *	
 * javascript用のexplode
 *
 * 渡された値を区切り文字ごとに配列に格納して返す
 *
 * 引数
 * 	value      ：explodeする文字列
 * 	delimita   ：文字列を区切るデリミタ
 * 	arrayLength：配列の要素数（省略可）
 *
 * 戻り値
 * 	valueArray：explode後の配列
 *
 **/
function java_explode(value, delimita, arrayLength) {

	var valueArray = new Array();      // リターン用配列
	var count      = 0;                // カウント用変数
	var deliCount  = 0;                // デリミタの検索結果格納変数
	var maxArray   = java_explode.arguments[2]? java_explode.arguments[2]: 0; // 配列の要素数調整用変数(省略可)
	
	while (value.length != 0) {
	
		// デリミタで指定した文字の場所を検索
		deliCount = value.indexOf(delimita);
		
		// 検索結果により処理を分割する
		if (deliCount > 0) {
			
			valueArray[count] = value.substr(0, deliCount);
			value             = value.slice(deliCount + 1, value.length);
			
		} else if(deliCount < 0){
		
			valueArray[count] = value;
			value             = "";
		
		} else {
		
			valueArray[count] = "";
			value             = value.slice(deliCount + 1, value.length);
		
		}
			
		// 指定した要素数を超えるとエラー
		if (maxArray > 0 && (count + 1) == maxArray) { return valueArray; }
		
		// 100回数以上ループするエラー
		if (count > 100) { return valueArray; }

		count++;
	
	}
	
	// 指定した要素数に満たない場合は空文字を入れて返す
	if (valueArray.length < maxArray) {
	
		for (i = valueArray.length; i < maxArray; i++) { valueArray[i] = ""; }
	
	}
	
	return valueArray;

}

/**
 *
 * 指定のクラス名の全てをオブジェクトとして取得
 *
 * 引数
 * 	className  ：取得するクラス名
 *
 * 戻り値
 * 	classNameObj：取得したオブジェクト
 *
 **/
document.getElementsByClassName = function (className) {

    var i, j, eltClass;
    
    var objAll = document.getElementsByTagName ? document.getElementsByTagName("*") : document.all;
    
    var classNameObj = new Array();
    
    for (i = 0; i < objAll.length; i++) {
    
        eltClass = objAll[i].className.split(/¥s+/);
        
        for (j = 0; j < eltClass.length; j++) {
            if (eltClass[j] == className) {
                classNameObj.push(objAll[i]);
                break;
            }
        }
    }
    
    return classNameObj;
}

/**
*
* 指定のクラス名の全てのdisplayを表示する
*
* 引数
* 	className  ：表示するクラス名
*
**/
function class_open(className) {
    classNameObj = document.getElementsByClassName(className);
    for(i = 0; i < classNameObj.length; i++) {
        classNameObj[i].style.display = "";
    }
}

/**
*
* 指定のクラス名の全てのdisplayを非表示する
*
* 引数
* 	className  ：非表示するクラス名
*
**/
function class_close(className) {
    classNameObj = document.getElementsByClassName(className);
    for(i = 0; i < classNameObj.length; i++) {
        classNameObj[i].style.display = "none";
    }
}

/**
*
* 指定のエレメント名の全てを無効化にする
*
* 引数
* 	elementName ：無効化するエレメント名
*
**/
function change_element_disabled(elementName) {

	var targetObj = document.getElementsByName(elementName);
 
	for (i = 0; i < targetObj.length; i++) {
		targetObj[i].disabled = true;
	}
}

/**
*
* 選択されている値を取得する
*
* 引数
* 	elementName ：取得するエレメント名
*
 * 戻り値
 * 	select_value：選択されている値
 * 
**/
//
function get_selected_value(elementName) {

	var targetObj = document.getElementsByName(elementName);
	var select_value = '';
 
	if(targetObj[0].type == 'radio') {
	 
		for (i = 0; i < targetObj.length; i++) {
			if (targetObj[i].checked == true) {
				select_value = targetObj[i].value;
				break;
			}
		}
	
	} else {
		select_value = targetObj[0].value;
	}
	
	return select_value;

}
