<!--
// 

function sute(param1,param2){	// 切捨サブルーチン param1=処理数値、param2=指定単位
	var temp=Math.floor(param1/param2)*param2;
	return temp;
}
function amari(param1,param2){	// 余算出サブルーチン param1＝割られる数、param2=割る数
	var
	temp_a=Math.floor(param1/param2),
	temp_b=param1-temp_a*param2;
	return temp_b;
}

var a,b,c,d,e,f,g,h,NOFUGAKU;	// 大域変数。各関数共通使用


function calcuration(){	// ボタンで起動。大域変数に代入→チェック呼出

//入力内容取得。selectedIndexは(選択されている番号-1)なので計算に矯正が必要。
//ただし、月(b,e)については、Dateオブジェクトで扱う値が元々(月-1)なので矯正不要。
with(document){	
	a=eval(calc.deadline_yy.selectedIndex)+1996,	
	b=eval(calc.deadline_mm.selectedIndex),	
	c=eval(calc.deadline_dd.selectedIndex)+1,	
	d=eval(calc.payment_yy.selectedIndex)+1996,
	e=eval(calc.payment_mm.selectedIndex),
	f=eval(calc.payment_dd.selectedIndex)+1,
	NOFUGAKU=document.calc.arrears_tax.value;
}
	if(c>6){c=c+21;}	//28〜31日用。28日→c=7なので修正。
	g=29;
	h=29;
	if(amari(a,4)!=0){g=28;}	//納期年の閏年判定。2月の日数
	if(amari(d,4)!=0){h=28;}	//納付年の閏年判定。2月の日数

	check();	//チェックへ
}


function check(){	//チェック。問題なし→計算呼出

var HizukeError=0,NozeError=0;
	if(NOFUGAKU==""){NozeError=2;}
	if(isNaN(NOFUGAKU)==true){NozeError=1;}
	if((b==1)&&(c>g)){HizukeError=1;}
	if((b==3)&&(c>30)){HizukeError=1;}
	if((b==5)&&(c>30)){HizukeError=1;}
	if((b==8)&&(c>30)){HizukeError=1;}
	if((b==10)&&(c>30)){HizukeError=1;}
	if((e==1)&&(f>h)){HizukeError=1;}
	if((e==3)&&(f>30)){HizukeError=1;}
	if((e==5)&&(f>30)){HizukeError=1;}
	if((e==8)&&(f>30)){HizukeError=1;}
	if((e==10)&&(f>30)){HizukeError=1;}

	if(HizukeError==1){alert("日付の入力が正しくありません。");}
	if(NozeError==1){alert("納付税額が正しくありません。");}
	if(NozeError==2){alert("納付税額が入力されていません。");}

	if((NozeError+HizukeError)==0){main();}	//計算へ
}

function main(){	//計算

with(Math){
	var aft_d;		//1カ月後の日
	if(b==0){aft_d=min(c,g);}
	if(b==1){aft_d=min(c,31);}
	if(b==2){aft_d=min(c,30);}
	if(b==3){aft_d=min(c,31);}
	if(b==4){aft_d=min(c,30);}
	if(b==5){aft_d=min(c,31);}
	if(b==6){aft_d=min(c,31);}
	if(b==7){aft_d=min(c,30);}
	if(b==8){aft_d=min(c,31);}
	if(b==9){aft_d=min(c,30);}
	if(b==10){aft_d=min(c,31);}
	if(b==11){aft_d=min(c,31);}
}

var aft_m=b+1;	//1カ月後の月
if(b==11){aft_m=0;}

var aft_y;		//1カ月後の年
if(b==11){aft_y=a+1;}
else{aft_y=a;}

NOKIBI=new Date(a,b,c);
NOFUBI=new Date(d,e,f);
AFT_NOKIBI=new Date(aft_y,aft_m,aft_d);

with(Math){
	var
	ENTAIBI=floor((NOFUBI.getTime()-NOKIBI.getTime())/(24*60*60*1000)),
	pre_ENT=floor((AFT_NOKIBI.getTime()-NOKIBI.getTime())/(24*60*60*1000));

	ENTAIBI=max(ENTAIBI,0);
	pre_ENT=min(ENTAIBI,pre_ENT);

	var sec_ENT=ENTAIBI-pre_ENT;
}

document.calc.arrears_day.value=ENTAIBI;

NOFUGAKU=eval(NOFUGAKU);
if(NOFUGAKU<2000){NOFUGAKU=0;}
//NOFUGAKU=sute(NOFUGAKU,1000);

var COTE;	// 前年11月末公定歩合の10倍を入力。0.1%未満は切捨後。公定歩合が0.25%なら2
if(a>1999){COTE=5;}	// 平成12年1月1日以降の適用率
if(a>2001){COTE=1;}	// 平成14年1月1日以降の適用率

var pre_RATE=73;
if(a>1999){pre_RATE=Math.min(pre_RATE,40+COTE)}

var
ENT_KIN=NOFUGAKU*pre_RATE/1000*pre_ENT/365+NOFUGAKU*146/1000*sec_ENT/365;
ENT_KIN=(sute(ENT_KIN,100)-100);
if(ENT_KIN<1000){ENT_KIN=0;}

document.calc.arrears_money.value=ENT_KIN;
document.calc.total.value=ENT_KIN + NOFUGAKU;
}

//-->
