function FormCalcValidate(field)


{
 if(!DtIntegCost || !field) return;
 
 TotalIntegCost = $('TotalCost')['TotalIntegCost'].value;
 FirstPayCur    = $('CalcCredit')['FirstPayCur'];
 FirstPayRate   = $('CalcCredit')['FirstPayRate'];
 SumCreditCur   = $('CalcCredit')['SumCreditCur'];
 SumCreditRate  = $('CalcCredit')['SumCreditRate'];
 TermCredit     = $('CalcCredit')['TermCredit'];
 onSumCredit    = $('CalcCredit')['onSumCredit'];
 
 switch(field)
 {
  case "FirstPayCur":
   // to Int
   FirstPayCur.value = FirstPayCur.value * 1;
   
   if(FirstPayCur.value >= TotalIntegCost * 0.2)
   {
     if(onSumCredit[0].checked)
     {
       if(FirstPayCur.value > TotalIntegCost * 0.8) FirstPayCur.value = (TotalIntegCost * 0.8).toFixed(2);
       if(SumCreditCur.value > FirstPayCur.value)
       {
         SumCreditCur.value  = (TotalIntegCost * 0.1).toFixed(2);
         SumCreditRate.value = 10;
       }
     }else{
       if(FirstPayCur.value > TotalIntegCost * 0.9) FirstPayCur.value = (TotalIntegCost * 0.9).toFixed(2);
     }
     
     FirstPayRate.value = Math.round(FirstPayCur.value / TotalIntegCost * 100);
     
     onSumCredit[0].disabled=false;   //    (onSumCredit[0]).enable();
     onSumCredit[1].disabled=false;   //    (onSumCredit[1]).enable();   

   }else{
    FirstPayRate.value = Math.round(FirstPayCur.value / TotalIntegCost * 100);
    // блокируем радиобаттон страховка, т.к. при ПП% < 20 страховка не предусмотрена
    (onSumCredit[1]).checked = "checked";
    (onSumCredit[0]).disable();
    (onSumCredit[1]).disable();
    
    FormCalcValidate("onSumCredit");
   }
   
   // при вводе в калькуляторе ПП валюта устанавливаем значение скроллера
   if(SliderFirstPayRate.value != FirstPayRate.value)
   {
    SliderFirstPayRate.setValue(FirstPayRate.value);
   }
   
  break;
  
  case "FirstPayRate":
   // to Int
   FirstPayRate.value = FirstPayRate.value * 1;
   //if(!(FirstPayRate.value * 1) || FirstPayRate.value < 15) FirstPayRate.value = 15; // MARIA ASKED TO BLOCK???
   if(!(FirstPayRate.value * 1) || FirstPayRate.value < 0) FirstPayRate.value = 0;
   //if(FirstPayRate.value >= 15)
   if(FirstPayRate.value >= 0)
   {
     if(onSumCredit[0].checked)
     {
       if(FirstPayRate.value > 80) FirstPayRate.value = 80;
       if(SumCreditRate.value > FirstPayRate.value)
       {
         SumCreditCur.value  = (TotalIntegCost * 0.1).toFixed(2);
         SumCreditRate.value = 10;
       }
     }else{
       if(FirstPayRate.value > 90) FirstPayRate.value = 90;
     }
     
     FirstPayCur.value = (TotalIntegCost * (FirstPayRate.value / 100)).toFixed(2);
     
     onSumCredit[0].disabled=false;//     (onSumCredit[0]).enable();
     onSumCredit[1].disabled=false;//     (onSumCredit[1]).enable();  
   }else{
     FirstPayCur.value = (TotalIntegCost * (FirstPayRate.value / 100)).toFixed(2);
     // блокируем радиобаттон страховка, т.к. при ПП% < 30 страховка не предусмотрена
     (onSumCredit[1]).checked = "checked";
     (onSumCredit[0]).disable();
     (onSumCredit[1]).disable();
     FormCalcValidate("onSumCredit");
   }
   
   // при вводе в калькуляторе ПП процентов устанавливаем значение скроллера
   if(SliderFirstPayRate.value != FirstPayRate.value)
   {
    SliderFirstPayRate.setValue(FirstPayRate.value);
   }
  break;
  
  case "SumCreditCur":
   if(!FirstPayCur || onSumCredit[0].disabled || onSumCredit[1].checked)
   {
    SumCreditCur.value = "";
    SumCreditRate.value = "";
    break;
   }
   if(!(SumCreditCur.value * 1) || SumCreditCur.value > (FirstPayCur.value - TotalIntegCost * 0.1) || SumCreditCur.value > TotalIntegCost / 100 * (90 - FirstPayRate.value))
   {
    SumCreditCur.value  = (FirstPayCur.value - TotalIntegCost * 0.1).toFixed(2);
    SumCreditRate.value = Math.round(FirstPayCur.value / TotalIntegCost * 100 - 10);
    // фикс бага при котором сумма процентов пп и страховки превышает 90
    // пример: при вводе пп[%] = 55 и страховка[%] = 56 -> страховка сбрасывается на "пп[%] - 10" что в сумме будет > 90 и соотвественно
    // является ошибкой расчета
    if(SumCreditCur.value > TotalIntegCost / 100 * (90 - FirstPayRate.value))
    {
     SumCreditRate.value = 90 - FirstPayRate.value;
     SumCreditCur.value  = (  TotalIntegCost / 100 * SumCreditRate.value  ).toFixed(2);
    }
    break;
   }
   SumCreditRate.value = Math.round(SumCreditCur.value / TotalIntegCost * 100);
  break;  
  
  case "SumCreditRate":
   if(!FirstPayCur || onSumCredit[0].disabled || onSumCredit[1].checked)
   {
    SumCreditCur.value  = "";
    SumCreditRate.value = "";
    break;
   }
   
   if(!(SumCreditRate.value * 1) || SumCreditRate.value > FirstPayRate.value - 10 || SumCreditRate.value > 90 - FirstPayRate.value)
   {
    SumCreditCur.value  = (TotalIntegCost / 100 * (FirstPayRate.value - 10)).toFixed(2);
    SumCreditRate.value = FirstPayRate.value - 10;
    // фикс бага при котором сумма процентов пп и страховки превышает 90
    // пример: при вводе пп[%] = 55 и страховка[%] = 56 -> страховка сбрасывается на "пп[%] - 10" что в сумме будет > 90 и соотвественно
    // является ошибкой расчета
    if(SumCreditRate.value > 90 - FirstPayRate.value)
    {
     SumCreditRate.value = 90 - FirstPayRate.value;
     SumCreditCur.value  = (  TotalIntegCost / 100 * SumCreditRate.value  ).toFixed(2);
    }
    break;
   }
   SumCreditCur.value = (TotalIntegCost * (SumCreditRate.value / 100)).toFixed(2);
  break;
  
  case "onSumCredit":
   if(onSumCredit[0].checked)
   {
    if(FirstPayRate.value > 80)
    {
     FirstPayCur.value  = (TotalIntegCost * 0.8).toFixed(2);
     FirstPayRate.value = 80;
     // если ПП[проценты] > 80 и активирован бутон СТРАХОВКА устанавливаем значение скроллера равное 80
     SliderFirstPayRate.setValue(FirstPayRate.value);
    }
    SumCreditCur.value  = (TotalIntegCost * 0.1).toFixed(2);
    SumCreditRate.value = 10;
   }else{
    SumCreditCur.value  = "";
    SumCreditRate.value = "";
   }
  break;
  
  case "TermCredit":
   if(TermCredit.value < 12) TermCredit.value = 12;
   if(TermCredit.value > 60) TermCredit.value = 60;
   // при вводе в калькуляторе Срока Кредита обновляем скроллер в Шапке который в свою очередь обновит скроллер в калькуляторе
   if(SliderVisualTermCredit.value != TermCredit.value)
   {
    SliderVisualTermCredit.setValue(TermCredit.value);
   }
  break;
 }

}
