function result()
{
 document.calculat.rasch_s.select();
 //document.calculat.rasch_s.focus(); 
 //Индификатор ошибок. При любом значении кроме 0 результат выводиться не будет...
 error = 0;
 //Удостоверяемся, что все введёные значения - числа
 if(isNaN(document.calculat.sr_kr.value) || isNaN(document.calculat.col_sem.value) || isNaN(document.calculat.proc.value) || isNaN(document.calculat.p_v.value) || isNaN(document.calculat.rasch_s.value))
 {
 alert("Вы ввели нечисловое значение...");
 error = 1;
 }
 //Проверяем срок кредита
 if(document.calculat.sr_kr.value<1 || document.calculat.sr_kr.value>99)
 {
 alert("Срок кредита не может быть меньше года и больше 99 лет!");
 error = 1;
 }
 //Проверяем количество членов семьи.
 if(document.calculat.col_sem.value<1)
 {
 alert("Вас в семье минимум один человек. Зачем указали меньше?:-)");
 error = 1;
 }
 //Проверяем процентную ставку
  if(document.calculat.proc.value>100 || document.calculat.proc.value<5)
  {
 alert("Процентная ставка должна быть больше 5, но меньше 100.");
 error = 1;
  }
  if((document.calculat.p_v_w.checked || document.calculat.rasch.value=='firstpay') && document.calculat.p_v.value>100)
  {
 alert("Первый взнос в процентах не может быть больше 100");
 error = 1;
  }
 //Проверяем первый взнос:
 if(document.calculat.p_v.value<0)
 {
 alert("Первый взнос не бывает меньше нуля!");
 }
 if(error!=1)
 {
 switch (document.calculat.rasch.value)
  {
//По квартире
case "cost":
     if(document.calculat.p_v_w.checked)
     {
     res_f_fp = Math.round(document.calculat.rasch_s.value * document.calculat.p_v.value)/100; //Первый платёж (если указан в процентах
     }
     else
     {
     res_f_fp = document.calculat.p_v.value; //Первый платёж (если указан не в процентах)
     }
     res_cred = Math.round((parseFloat(document.calculat.rasch_s.value)-res_f_fp)*100)/100; //Сумма кредита

     //Блок узнавания ежемесячного платежа
     p = parseFloat(document.calculat.proc.value)/1200;
     n = parseFloat(document.calculat.sr_kr.value)*12;
     res_month_p = (p+p/(Math.pow(1+p,n)-1))*100; //Ежем. плат. %
     ezm = res_month_p*res_cred/100;
     res_month = Math.round(ezm*100)/100; //Ежем. плат. деннг.
     //Конец блока

     res_f_zp = Math.round(res_month/60*100);
     res_f_zp = Math.round(res_f_zp/(1-0.05*document.calculat.col_sem.value)); //Доход семьи

     res_cost = document.calculat.rasch_s.value; // Стоимость квартиры
     if(parseFloat(res_cost)<parseFloat(res_f_fp)) {alert('1 Расчет невозможен. Обратите внимание на соответствие первого взноса и стоимости недвижимости! 1');error=1;}
break;

//По кредиту
case "credit":
     res_cred = parseFloat(document.calculat.rasch_s.value); //Сумма кредита
  if(!document.calculat.p_v_w.checked && document.calculat.p_v.value>res_cred)
  {
  alert("Первый взнос указан больше суммы кредита!");
  error=1;  
  }
     if(document.calculat.p_v_w.checked)
     {
     res_f_fp = parseFloat(document.calculat.p_v.value); //Первый платёж (если указан в процентах
     res_cost = Math.round(res_cred/(1 - res_f_fp/100)*100)/100; //Стоимость квартиры
     res_f_fp = res_cost*res_f_fp/100
     }
     else
     {
     res_f_fp = parseFloat(document.calculat.p_v.value); //Первый платёж (если указан не в процентах)
     res_cost = Math.round(res_cred+res_f_fp); //Стоимость квартиры
     }

     //Блок узнавания ежемесячного платежа
     p = parseFloat(document.calculat.proc.value)/1200;
     n = parseFloat(document.calculat.sr_kr.value)*12;
     res_month_p = (p+p/(Math.pow(1+p,n)-1))*100; //Ежем. плат. %
     ezm = res_month_p*res_cred/100;
     res_month = Math.round(ezm*100)/100; //Ежем. плат. деннг.
     //Конец блока
     res_f_zp = Math.round(res_month/60*100);
     res_f_zp = Math.round(res_f_zp/(1-0.05*document.calculat.col_sem.value)); //Доход семьи


break;

//По платежам
case "monthlypay":
     res_month = parseFloat(document.calculat.rasch_s.value); //Ежем. плат. деннг
     p = parseFloat(document.calculat.proc.value)/1200;
     n = parseFloat(document.calculat.sr_kr.value)*12;
     res_month_p = (p+p/(Math.pow(1+p,n)-1))*100; //Ежем. плат. %
     res_cred = Math.round(res_month*100/res_month_p); //Сумма кредита

     if(document.calculat.p_v_w.checked)
     {
     res_cost = Math.round(res_cred / (1-document.calculat.p_v.value/100));
     res_f_fp = Math.round(res_cost * document.calculat.p_v.value)/100; //Первый платёж (если указан в процентах
     }
     else
     {
     res_f_fp = parseFloat(document.calculat.p_v.value); //Первый платёж (если указан не в процентах)
     }
     res_cost = Math.round(res_cred+res_f_fp); //Стоимость квартиры
    
     res_f_zp = Math.round(res_month/60*100);
     res_f_zp = Math.round(res_f_zp/(1-0.05*document.calculat.col_sem.value)); //Доход семьи

     if(parseFloat(res_cost)<parseFloat(res_f_fp)) {alert('2 Расчет невозможен. Обратите внимание на соответствие первого взноса и стоимости недвижимости! 2');error=1;}
break;

//По доходу
case "zp":
     res_f_zp = parseFloat(document.calculat.rasch_s.value); //Доход
     res_month = Math.round(res_f_zp*(1-0.05*document.calculat.col_sem.value)*60/100);
     p = parseFloat(document.calculat.proc.value)/1200;
     n = parseFloat(document.calculat.sr_kr.value)*12;
     res_month_p = (p+p/(Math.pow(1+p,n)-1))*100; //Ежем. плат. %
     res_cred = Math.round(res_month*100/res_month_p); //Сумма кредита

     if(document.calculat.p_v_w.checked)
     {
     res_cost = Math.round(res_cred / (1-document.calculat.p_v.value/100));
     res_f_fp = Math.round(res_cost * document.calculat.p_v.value)/100; //Первый платёж (если указан в процентах
     }
     else
     {
     res_f_fp = parseFloat(document.calculat.p_v.value); //Первый платёж (если указан не в процентах)
     }
     res_cost = Math.round(res_cred+res_f_fp); //Стоимость квартиры
     if(parseFloat(res_cost)<parseFloat(res_f_fp)) {alert('3 Расчет невозможен. Обратите внимание на соответствие первого взноса и стоимости недвижимости! 3');error=1;}
break;

case "firstpay":
     res_f_fp = parseFloat(document.calculat.rasch_s.value); //Первый платёж
     res_f_fp2 = parseFloat(document.calculat.p_v.value); //Первый платёж в %
      if(res_f_fp==0 || res_f_fp2==0)
      {
      alert ('Первый платёж и первый платёж в процентах должны быть больше 0!');

      error=1;

      }
     res_cost = Math.round(res_f_fp/res_f_fp2*100); //Стоимость квартиры
     res_cred = res_cost-res_f_fp; //Сумма кредита
     //Блок узнавания ежемесячного платежа
     p = parseFloat(document.calculat.proc.value)/1200;
     n = parseFloat(document.calculat.sr_kr.value)*12;
     res_month_p = (p+p/(Math.pow(1+p,n)-1))*100; //Ежем. плат. %
     ezm = res_month_p*res_cred/100;
     res_month = Math.round(ezm*100)/100; //Ежем. плат. деннг.
     //Конец блока
     res_f_zp = Math.round(res_month/60*100);
     res_f_zp = Math.round(res_f_zp/(1-0.05*document.calculat.col_sem.value)); //Доход семьи

     if(parseFloat(res_cost)<parseFloat(res_f_fp)) {alert('4 Расчет невозможен. Обратите внимание на соответствие первого взноса и стоимости недвижимости! 4');error=1;}
break;
  }
  if(!error)
  {
 document.calculat.res_st.value = res_cost;
 document.calculat.res_sm.value = res_cred;
 document.calculat.res_pl.value = res_month;
 document.calculat.res_zp.value = res_f_zp;
 document.calculat.res_pr.value = res_f_fp;
 document.calculat.pereplata.value = Math.round((n*res_month-res_cred)*100)/100;
  }
 }
} 

//Функция замены надписи...
function change()
{
 rasch_text = document.calculat.rasch.value;
 switch (rasch_text)
 {
 case 'cost': 
 rasch_t.innerHTML = "Укажите стоимость квартиры";
 document.calculat.p_v_w.style.visibility = "visible";
 break;
 case 'credit': 
 rasch_t.innerHTML = "Укажите сумму кредита";
 document.calculat.p_v_w.style.visibility = "visible";
 break;
 case 'monthlypay': 
 rasch_t.innerHTML = "Укажите сумму ежемесячного платежа";
 document.calculat.p_v_w.style.visibility = "visible";
 break;
 case 'zp': 
 rasch_t.innerHTML = "Укажите доход семьи после уплаты налогов";
 document.calculat.p_v_w.style.visibility = "visible";
 break;
 case 'firstpay': 
 rasch_t.innerHTML = "Укажите величину первого взноса";
 document.calculat.p_v_w.style.visibility = "hidden";
 break;
 }
}
