/* Copyright (C) 2008 PLOTT CO.,LTD. ===========================================*
 *
 *	標準関数
 *
 *	Create Date 	: 2008/1/11
 *	Creator			: T.Kinoshita
 *	Note			: 20080516 関数NumberFormatJs追加 T.Kinoshita
 *
 * =============================================================================*/

	/* 半角カナを全角カナに変換する ------------------------------------------------*
	 *	[引数]
	 *		this_field	->	this固定
	 *	[戻値]
	 *		全角カナ
	 *------------------------------------------------------------------------------*/
	function KanaH2Z(this_field) {
		var i;
		var str = this_field.value;
		var han = "ｱｲｳｴｵｶｷｸｹｺｻｼｽｾｿﾀﾁﾂﾃﾄﾅﾆﾇﾈﾉﾊﾋﾌﾍﾎﾏﾐﾑﾒﾓﾔﾕﾖﾗﾘﾙﾚﾛﾜｦﾝｧｨｩｪｫｬｭｮｯ､｡ｰ｢｣ﾞﾟ";
		var zen = "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォャュョッ、。ー「」";
			zen+= "　　　　　ガギグゲゴザジズゼゾダヂヅデド　　　　　バビブベボ　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　";
			zen+= "　　　　　　　　　　　　　　　　　　　　　　　　　パピプペポ　　　　　　　　　　　　　　　　　　　　　　　　　　　　　　";
		var res = "";
		for (i=0; i<str.length; i++){
			var c = str.charAt(i);							//入ってきた文字の一字を取り出す
			var cnext = str.charAt(i+1);					//入ってきた文字の一字＋１を取り出す
			var n = han.indexOf(c,0);						//cが半角カナかどうかを調べる
			var nnext = han.indexOf(cnext,0);				//cnextが半角カナかどうかを調べる
			if (n >= 0){									//文字が0より大きいかどうか
				if (nnext == 60){							//もし次の文字が60（ﾞ）だったら
					c = zen.charAt(n+60);					//cに（ﾞ）をつける処理
					i++;
				}else if (nnext == 61){						//もし次の文字が61（ﾟ）だったら
					c = zen.charAt(n+120);					//cに（ﾟ）をつける処理
					i++;
				}else{
					c = zen.charAt(n);
				}
			}
			if ((n != 60) && (n != 61)){
				res += c;
			}
		}
		this_field.value = res;
	}

	/* 全角数字を半角数字に変換する ------------------------------------------------*
	 *	[引数]
	 *		this_field	->	this固定
	 *	[戻値]
	 *		全角カナ
	 *------------------------------------------------------------------------------*/
	function NumberZ2H(this_field) {
		var i;
		var c,n;
		var motoText = this_field.value;
		han = "0123456789-------";
		zen = "０１２３４５６７８９ー－―（）()";
		str = "";
		for ( i=0;i<motoText.length;i++ ) {
			c = motoText.charAt(i);
			n = zen.indexOf(c,0);
			if ( n >= 0 ) {
				c = han.charAt(n);
			}
			str += c;
		}
		this_field.value = str;
	}

	/* number_format ---------------------------------------------------------------*
	 *	[引数]
	 *		x	->	数値
	 *	[戻値]
	 *		結果
	 *------------------------------------------------------------------------------*/
	function NumberFormatJs(x) {								// 引数の例としては 95839285734.3245
		var s = "" + x;											// 確実に文字列型に変換する。例では "95839285734.3245"
		var p = s.indexOf(".");									// 小数点の位置を0オリジンで求める。例では 11
		if (p < 0) {											// 小数点が見つからなかった時
			p = s.length;										// 仮想的な小数点の位置とする
		}
		var r = s.substring(p, s.length);						// 小数点の桁と小数点より右側の文字列。例では ".3245"
		for (var i = 0; i < p; i++) {							// (10 ^ i) の位について
			var c = s.substring(p - 1 - i, p - 1 - i + 1);		// (10 ^ i) の位のひとつの桁の数字。例では "4", "3", "7", "5", "8", "2", "9", "3", "8", "5", "9" の順になる。
			if (c < "0" || c > "9") {							// 数字以外のもの(符合など)が見つかった
				r = s.substring(0, p - i) + r;					// 残りを全部付加する
				break;
			}
			if (i > 0 && i % 3 == 0) {							// 3 桁ごと、ただし初回は除く
				r = "," + r;									// カンマを付加する
			}
			r = c + r;											// 数字を一桁追加する。
		}
		return r;												// 例では "95,839,285,734.3245"
	}

	 /* number_format ---------------------------------------------------------------*
	 *	[引数]
	 *		x	-> 長さ
	 *		b	-> ランダム文字列の使用文字に追加する文字
	 *	[戻値]
	 *		結果
	 *------------------------------------------------------------------------------*/
	var randobet = function(n, b) {
			b = b || '';
			var a = 'abcdefghijklmnopqrstuvwxyz'
				+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
				+ '0123456789'
				+ b;
			a = a.split('');
			var s = '';
			for (var i = 0; i < n; i++) {
		    	s += a[Math.floor(Math.random() * a.length)];
			}
			return s;
		};


