/*
----------------------------------------
	Browser Check

	in
	  none

	return
	  Macintosh IE: 			"Mac-IE"
	  Macintosh Netscape:		"Mac-NS"
	  Windows IE:				"Win-IE"
	  Windows Netscape:			"Win-NS"
	  etc Macine or Browser:	"Etc"
----------------------------------------
*/
function browser_type()
{
	var result;

	var platform = navigator.platform;
	var app = navigator.appName;

	switch (platform.substring(0,3)) {
		case "Win":
		case "Mac":
			result = platform.substring(0,3) + "-";
			break;

		default:
			result = "Etc";
			break;
	}

	if (result != "Etc") {
		switch (app) {
			case "Microsoft Internet Explorer":
				result = result + "IE";
				break;

			case "Netscape":
				result = result + "NS";
				break;

			default:
				result = "Etc";
				break;
		}
	}

	return result;
}

/*
----------------------------------------
	numeric value check & return

	in
	  1 character

	return
	  then numeric: numeric
	 
----------------------------------------
*/
function numeric_return(c)
{
	var result;

	switch (c) {
		case "0":
		case "1":
		case "2":
		case "3":
		case "4":
		case "5":
		case "6":
		case "7":
		case "8":
		case "9":
			result = c;
			break;

		default:
			result = "";
			break;
	}

	return result;
}

/*
----------------------------------------
	character value check & alert

	in
	  text field object

	return
	  true : OK
	  false: text field select & alert
	 
----------------------------------------
*/
function txt_char_check(txt)
{
	var chk_char = new Array("'", "\"", "\\", "%");		// ', ", \, %のエラー文字をセット

	var txt_value = txt.value;

	var err = true;

	for (var i = 0; i < txt_value.length; i++) {
		for (var j = 0; j < chk_char.length; j++) {
			if (chk_char[j] == txt_value.charAt(i)) {
				err = false;
				break;
			}
		}
	}

	if (!err) {
		alert("\' \" \\ % の文字は使用できません。\n半角でなく全角文字であれば入力可能です。");
		txt.focus();
	}

	return err;
}

/*
----------------------------------------
	day check

	in
	  yy=year, mm=month, dd=day

	return
	  true, false
	 
----------------------------------------
*/
function date_check(yy, mm, dd)
{
	var max_day = new Array(0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

	if (((yy % 4) == 0) && ((yy % 100) != 0)) {
		max_day[2] = 29;
	}

	if ((yy % 400) == 0) {
		max_day[2] = 29;
	}

	if (max_day[mm] >= dd) {
		return true;
	} else {
		return false;
	}
}

//３桁ごとにカンマで区切る（右から）
/*
----------------------------------------
	money value grant comma

	in
	  value in text field object

	return
	  comma text
----------------------------------------
*/
function segmentize_currency(val)
{
	if (val == '') {
		return val;
	}

	var txt_value = String(Number(segmentize_currency_clear(val)));

	var num;

	var result = "";
	var tp = 0;

	var minus = '';

	if (txt_value.charAt(0) == '-') {
		minus = '-';
	}

	for (var i = txt_value.length-1 ; i >= 0; i--) {
		num = numeric_return(txt_value.charAt(i));

		if (num != "") {
			result = result + num;
			tp++;
		}

		if (tp == 3) {
			result = result + ",";
			tp = 0;
		}
	}

	if (result.charAt(result.length-1) == ",") {
		txt_value = ""
	} else {
		txt_value = result.charAt(result.length-1)
	}

	for (var i = result.length-2 ; i >= 0; i--) {
		txt_value = txt_value + result.charAt(i);
	}

	return minus + txt_value;
}

/*
----------------------------------------
	money value clear comma

	in
	  value in text field object

	return
	  non comma text
----------------------------------------
*/
function segmentize_currency_clear(val)
{
	var txt_value = String(val);

	var result = "";

	var minus = '';

	if (txt_value.charAt(0) == '-') {
		minus = '-';
	}

	for (var i = 0 ; i < txt_value.length; i++) {
		result = result + numeric_return(txt_value.charAt(i));
	}

	return minus + result;
}

/*
----------------------------------------
	decimal round function

	in
	  val:	decimal
	  keta:  yuukou keta

	return
	  round value
----------------------------------------
*/
function decimal_round(val, keta)
{
	var num = Number(val);

	var num_abs = Math.floor(num);

	var num_dec = num - num_abs;

	var num_div = keta * 10;

	if (num_div == 0) {
		return Math.round(num);
	} else {
		num_dot = Math.round(num_dec * num_div);
		return num_abs + (num_dot / num_div);
	}
}

