var Rate; //месячная процентная ставка
	var InLim; //Сумма кредита
	var OutLim; //
	var Months;
	var BeginDate;
	var EndDate;
	var ErrorString='';	
	var ContractDate;
	var FPayDate;
	var LPayDate;	
	var AutoKasko=9.99;
//считаем месячный платеж при известном кредите
function MPaymentByCredit(Months,Perc,Credit)
	{
	var res;

	res=Math.ceil(Credit*Perc/(1-Math.pow(1+Perc,-Months)))
	return(res);
}

function DaysInYear(Year){
	var A;
	var B;

	A = new Date(Year,0,1);
	B = new Date(Year,11,31);	
	return((B.getTime()-A.getTime())/(1000 * 60 * 60 * 24))+1;
}

function CountMonths(BeginDate,EndDate){

	var BMonth;
	var BYear;
	var EMonth;
	var EYear;
	var Months;


	BMonth=BeginDate.getMonth();
	BYear=BeginDate.getFullYear();

	EMonth=EndDate.getMonth();
	EYear=EndDate.getFullYear();

	Months=EMonth+(EYear-BYear)*12-BMonth;

	return(Months);
}
function CountDays(BeginDate,EndDate){

	return(Math.round((EndDate.getTime()-BeginDate.getTime())/(1000 * 60 * 60 * 24)));
}
function AddMonth(CurDate,months){
	var Day;
	var Month;
	var Year;
        var monarr = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	var newdate;

	Day=CurDate.getDate();
	Month=CurDate.getMonth();
	Year=CurDate.getFullYear();
	Month=Month+months;
	if (Month>11){
		Month=Month-12;
		Year=Year+1;
	}

	if (DaysInYear(Year)==366){
		monarr[1]=29;
	}
  	if (Day > monarr[Month]){
		Day=monarr[Month];
	}
	newdate=new Date(Year,Month,Day);
	return(newdate)
}

function CountPeriodsDaysInYear(BeginDate,EndDate,Year){
	var FirstYear;  // начальный год вклада
	var LastYear;   // конечный год вклада
	var BeginDay;//
	var EndDay;//
	var YearFDay;//
	var YearLDay;//

	var BD;
	var ED;
	var C;//конец операционного года
	var C2; //временный буф
	var C3;

	FirstYear=BeginDate.getFullYear();
	LastYear=EndDate.getFullYear();


	BeginDay=new Date(BeginDate.getFullYear(),BeginDate.getMonth(),BeginDate.getDate());
	YearFDay=new Date(BeginDate.getFullYear(),0,1);
	BD=Math.ceil((BeginDay.getTime()-YearFDay.getTime())/(1000*60*60*24));

	EndDay=new Date(EndDate.getFullYear(),EndDate.getMonth(),EndDate.getDate());
	YearFDay=new Date(EndDate.getFullYear(),0,1);
	ED=Math.ceil((EndDay.getTime()-YearFDay.getTime())/(1000*60*60*24));


	if ((Year==LastYear)&&(Year==FirstYear)){
	        C2=ED-BD;
	}
	else{
		if ((FirstYear<LastYear)&&(Year==FirstYear)){
			C2=DaysInYear(Year)-BD;
		}
		else {

			if ((FirstYear<LastYear)&&(Year==LastYear)){
				C2=ED
			} 
			else	{

				if ((FirstYear<Year)&&(Year<LastYear)){
					C2=DaysInYear(Year);
				}
				else{
					C2=0;
				}
			}
		}
	}

	return(C2);
}

function CheckValues(mode){
	var buf;
	var MinCredSumm=4000;
	var MaxCredSumm=1000000;
	var MaxCredPart=0.8;
	var MinCredPart=0.2;
	var MinRate=0.09;
	var MaxRate=0.115;
	var ErrorCode=0;
	buf='';

	if (document.calc.price.value > MaxCredSumm/MinCredPart){
if (mode==1){		document.calc.price.value=MaxCredSumm/MinCredPart;}
		ErrorString='Стоимость автомобиля не может быть больше '+MaxCredSumm/MinCredPart+'\n';
		ErrorCode=1;
	}
	if (document.calc.price.value < MinCredSumm/MaxCredPart){
if (mode==1){		document.calc.price.value=MinCredSumm/MaxCredPart;}
		ErrorString=ErrorString+'Стоимость автомобиля не может быть меньше '+MinCredSumm/MaxCredPart+'\n';
		ErrorCode=1;
	}

	if (document.calc.creditpart.value<MinCredPart*100){
if (mode==1){		document.calc.creditpart.value=MinCredPart*100;}
		ErrorString=ErrorString+'Доля кредита в цене автомобиля не может быть меньше '+MinCredPart*100+'%\n';		
		ErrorCode=1;
	}
	if (document.calc.creditpart.value>MaxCredPart*100){
if (mode==1){		document.calc.creditpart.value=MaxCredPart*100;}
		ErrorString=ErrorString+'Доля кредита в цене автомобиля не может быть больше '+MaxCredPart*100+'%\n';
		ErrorCode=1;
	}
	return(ErrorCode);


}

function LoadData(mode)
{
	var tmp;
	var percents=0;
	var days;
	var RateD;
	var i;
	var a;
	var b;


	ContractDate = new Date();
	Months=parseInt(document.calc.creditperiod.options[document.calc.creditperiod.selectedIndex].value);
	FPayDate = AddMonth(ContractDate,1);
	LPayDate = AddMonth(ContractDate,Months);
        if (CheckValues(mode)==0){

		Rate=parseFloat(document.calc.rate.value)/1200;
		InLim=parseFloat(document.calc.price.value)*parseInt(document.calc.creditpart.value)/100;	
		if (document.calc.insur[document.calc.insur.selectedIndex].value==1){
			InLim=InLim+(AutoKasko/100)*parseInt(document.calc.price.value);
	

		}
		document.calc.firstpay.value=parseInt(document.calc.price.value)*(100-parseInt(document.calc.creditpart.value))/100;
		document.calc.creditsumm.value=InLim;

		if (document.calc.benefit[document.calc.benefit.selectedIndex].value==1){//льготное первое погашение

			tmp=Math.ceil(InLim*Rate/(1-Math.pow(1+Rate,1-Months))*100)/100;
//			alert('InLim='+InLim+'\nRate='+Rate+'\nMonths='+Months+'\nResult='+tmp);
			   
                        days=0;

		        for (i=ContractDate.getFullYear();i<=FPayDate.getFullYear();i++){
				days=CountPeriodsDaysInYear(ContractDate,FPayDate,i);
				RateD=document.calc.rate.value/(100*DaysInYear(i));
				percents=percents+days*RateD*InLim;
			}
			document.calc.benefitpay.value=Math.ceil(percents*100)/100;

		
		}
		else{
			tmp=Math.ceil(InLim*Rate/(1-Math.pow(1+Rate,-Months))*100)/100;
			document.calc.benefitpay.value=tmp;
		}

	document.calc.mpayment.value=tmp;
	document.calc.minprofit.value=Math.ceil(tmp*2.5);
	}
	else{
		if (mode==1){alert(ErrorString);}
		ErrorString='';
		document.calc.benefitpay.value='';
		document.calc.firstpay.value='';
		document.calc.creditsumm.value='';
		document.calc.mpayment.value='';
	}

	return(0);
}
//главная функция
function MakeResult()
	{
	if (document.calc.benefit[0].checked){
		OutLim = InLim;
	}else
	{
		OutLim = 0;
	}
	
}