/* copyright by Burkhard Granz, burkhard@granz.de */
function ErrorInField(field,errortext)
{  alert (errortext); field.focus(); field.select();
}
function CheckRequired(field)
{if (""+field.value=="") 
 {ErrorInField(field,"This field is required.")
  return false;}
 return true;
}
function CheckRange(field,val,min,max)
{if ((val<min) || (val>max))
 {ErrorInField(field,"Invalidate range: between "+min+" and "+max)
  return false;}
 return true;
}
function CheckInt(field,min,max,required) 
{if (required) 
 {if ( ! CheckRequired(field)) return false }
 else if (""+field.value=="") return true;
 var val = parseInt(field.value, 10)
 if (isNaN (val))
 {ErrorInField(field,"This is not a validate number");
  return false;}
field.value=val;
return CheckRange(field,val,min,max)
}
function calc_r(r0)
{ if (r0>=2400) return 10;
 if (r0>2000 ) return (70-(r0/40));
 return 20;
}
function calc_p(pn)
{ if (pn>=80) return 1;
 if (pn>30 ) return (1.4 - (pn/200));
 if (pn>15 ) return 1.25;
 return 1.5;
}
function calcRate(frm)
{ if (!CheckInt(frm.r0,500,3000,true)) return;
  if (!CheckInt(frm.g0,16,9999,true)) return;
  d=0;
  for (i=1;i<=9;i++)
  {eval("if (!CheckInt(frm.r"+i+",0,3000,true)) d=1;");
  }
  if (d==1) return;
  k = calc_r(frm.r0.value)*calc_p(frm.g0.value);
  for (i=1;i<=9;i++)
  {eval("d = frm.r0.value-frm.r"+i+".value;");
  if (d==frm.r0.value)
  { eval ("frm.w"+i+".value = '';"+
     "frm.d"+i+".value = '';"+
     "frm.l"+i+".value = '';");
  }
  else
  { if (d<-400) d=-400;
    if (d>400)  d=400;
    eval("frm.w"+i+".value = Math.round(k*(1 - (1/(1+Math.pow(10,-d/400)))));"+
     "frm.d"+i+".value = Math.round(k*(0.5-(1/(1+Math.pow(10,-d/400)))));"+
     "frm.l"+i+".value = Math.round(k*(-(1/(1+Math.pow(10,-d/400)))));")
  }}
}

