function DoCalc (u,p,k){
  var P, I;
  var res;

  if ((i = u.indexOf(','))>=0) u= u.substring(0,i)+'.'+u.substring(i+1,u.length);
  if ((i = p.indexOf(','))>=0) p= p.substring(0,i)+'.'+p.substring(i+1,p.length);
  if ((i = k.indexOf(','))>=0) k= k.substring(0,i)+'.'+k.substring(i+1,k.length);

  res="";
  if (u!=0 && k>0)
  { 
    I=k*p*1000/u;
    P=I*220/1000;
    if (!isNaN(P) && !isNaN(I))
    {
      res+="<div><h2>Необходимая мощность стабилизатора&nbsp;&mdash;</h2><big>"+Math.floor(P*10+0.5)/10+"</big> кВА<br></div>";
      res+="<div><h2>Максимальная сила входного тока&nbsp;&mdash;</h2><big>"+Math.floor(I*10+0.5)/10+"</big> А<br></div>";
    }
  }
  if (220<u || u<=70)
    res="<font color=red>Ошибка входных данных.<br> Нижний уровень напряжения в сети должен быть от 70 до 220 вольт.</font><br>";
  if (res=="")
    res+="<font color=red>Ошибка входных данных.<br> Введите корректно числа.</font><br>";
    
  document.getElementById('CalcRes').innerHTML=res;
  return false;
}


var calc = {
  recalc: function() {
    DoCalc(document.CalcForm.u.value,document.CalcForm.p.value,document.CalcForm.k.value);
    delete this.timeoutID;
    this.setup();
  },

  setup: function() {
    this.cancel();
    var self = this;
    this.timeoutID = window.setTimeout(function() {self.recalc();}, 100);
  },

  cancel: function() {
    if(typeof this.timeoutID == "number") {
      window.clearTimeout(this.timeoutID);
      delete this.timeoutID;
    }
  }
};

calc.setup();

