/*-------基本料率をコンバート（元はshaho_ritsu******.js）--------*/

//健康保険料率
//var kenpo_ryoritsu = kenpo_ritsu * 1000;
//介護保険料率
//var kaigo_ryoritsu = kaigo_ritsu * 1000;
//厚生年金保険料率
//var nenkin_ryoritsu = nenkin_ritsu * 1000;

//健保上限
var kenpo_limit = 5400000;
//介護上限
var kaigo_limit = 5400000;
//年金上限
var nenkin_limit = 1500000;

/*-----------------------------*/


//メイン関数
function js_main(){
	//賞与額
	var syoyogaku = 0;
	//健保標準賞与額
	var hyojun_kenpogaku = 0;
	//介護標準賞与額
	var hyojun_kaigogaku = 0;
	//厚生年金標準賞与額
	var hyojun_nenkingaku = 0;
	//健康保険料
	var kenpo_gaku = 0;
	//介護保険料
	var kaigo_gaku = 0;
	//厚生年金保険料
	var nenkin_gaku = 0;
	//都道府県番号をフォームから取得
	var pref_no = document.getElementById("f1").pref.selectedIndex;
	//賞与額をフォームから取得
	syoyogaku= parseInt(document.getElementById("f1").shoyogaku.value);
	//入力値をチェックしてから実行
	if(retbool_checkValue(syoyogaku)){
		
		//１．健保の標準賞与額算出
		//上限調整
		hyojun_kenpogaku = ret_limitKenpo(syoyogaku);
		//1000円未満切り捨て
		hyojun_kenpogaku = ret_floor1000(hyojun_kenpogaku);
		
		//２．介護保険の標準賞与額算出
		//上限調整
		hyojun_kaigogaku = ret_limitKaigo(syoyogaku);
		hyojun_kaigogaku = ret_floor1000(hyojun_kaigogaku);
		
		//３．厚生年金保険の標準賞与額算出
		hyojun_nenkingaku = ret_limitNenkin(syoyogaku);
		hyojun_nenkingaku = ret_floor1000(hyojun_nenkingaku);
		
		//健康保険料の計算
		kenpo_gaku = Math.floor((hyojun_kenpogaku * kenpo_ritsu[pref_no-1]*1000) / 2);
		//介護保険料の計算
		kaigo_gaku = Math.floor((hyojun_kaigogaku * kaigo_ritsu * 1000) / 2);
		//厚生年金保険料の計算
		nenkin_gaku = Math.floor((hyojun_nenkingaku * nenkin_ritsu * 1000) / 2);
		
		//フォームに吐き出す
		document.getElementById("f1").kenpo.value = addComma(kenpo_gaku);
		document.getElementById("f1").kaigo.value = addComma(kaigo_gaku);
		document.getElementById("f1").nenkin.value = addComma(nenkin_gaku);


		//クッキー設定
 		mySetCookie("syaho_calc_sheet",get_pref_number(),365);

	}
}

//入力値チェック
function retbool_checkValue(input_value) {
	bool_flag = true;
	if (document.getElementById("f1").pref.selectedIndex == 0) {
		bool_flag = false;
		alert("都道府県を選択して下さい。");
	}
	if (isNaN(input_value)) {
		bool_flag = false;
		alert("数字を入力して下さい。");
	}
	if (input_value <= 0) {
		bool_flag = false;
		alert("正しい金額を入力して下さい");
	}
	return bool_flag;
}

//健保の標準賞与額の上限を超える額を上限に修正
function ret_limitKenpo(input_value){
	//返り値
	var retvalue = 0;
	if(input_value > kenpo_limit){
		retvalue = kenpo_limit;
	}
	else {
		retvalue = input_value;
	}

	return retvalue;
}

//介護保険の標準賞与額の上限を超える額を上限に修正
function ret_limitKaigo(input_value){
	//返り値
	var retvalue = 0;
	if(input_value > kaigo_limit){
		retvalue = kaigo_limit;
	}
	else {
		retvalue = input_value;
	}
	return retvalue;
}

//厚生年金保険の標準賞与額の上限を超える額を上限に修正
function ret_limitNenkin(input_value){
	//返り値
	var retvalue = 0;
	if(input_value > nenkin_limit){
		retvalue = nenkin_limit;
	}
	else {
		retvalue = input_value;
	}

	return retvalue;
}

//1,000円未満切り捨て
function ret_floor1000(input_value){
	var retvalue=0;
	retvalue = Math.floor(input_value / 1000);
	return retvalue;
}

//カンマを付加する
function addComma(str){
	var str = new String(str);
	var str_len = str.length;

	if(str_len % 3 == 0){
	sep = str_len / 3 - 1;
	} else {
	sep = Math.floor(str_len/3);
	}

	i=3;
	for(j=0; j<sep; j++){
		str = str.substring(0,str_len - i) + "," + str.substring(str_len - i,str_len);
		str_len++;
		i++;
		i+=3;
	}
	return str;
}

//クッキーに登録
function mySetCookie(myCookie,myValue,myDay){
   myExp = new Date();
   myExp.setTime(myExp.getTime()+(myDay*24*60*60*1000));
   myItem = "@" + myCookie + "=" + escape(myValue) + ";";
   myExpires = "expires="+myExp.toGMTString();
   document.cookie =  myItem + myExpires;
}

//クッキーを取り込む汎用関数
function myGetCookie(myCookie){
   myCookie = "@" + myCookie + "=";
   myValue = null;
   myStr = document.cookie + ";" ;
   myOfst = myStr.indexOf(myCookie);
   if (myOfst != -1){
      myStart = myOfst + myCookie.length;
      myEnd   = myStr.indexOf(";" , myStart);
      myValue = unescape(myStr.substring(myStart,myEnd));
   }
   return myValue;
}

//クッキーを元に都道府県セレクトを設定する
function set_pref_select() {
	var val = eval(myGetCookie('syaho_calc_sheet'));
	document.getElementById("f1").pref.selectedIndex = val;
}

//都道府県選択を変えたとき、他をクリアする
function clear_result(){
	with(document.getElementById("f1")){
		kenpo.value = "";
		kaigo.value = "";
		nenkin.value = "";
	}
}

//選択されている都道府県ナンバー取得
function get_pref_number() {
	return document.getElementById("f1").pref.selectedIndex;
}
