

function calcspur1(form,index)
{
  var m_in = 2.54e-2;    // metre per international inch (exact, NIST)
  var m_ft = 3.048e-1;   // metre per international foot (exact, NIST)
  var m_mi = 1.609344e3; // metre per international mile (exact, NIST)

  if(form.massstab.checked)
    {
    // Modus Massstabs-Ermittlung
      if(index>=0 && index<2)
        {
          if(index==0) v=parseFloat(form.mmm.value)*0.001;
          if(index==1) v=parseFloat(form.mcm.value)*0.01;
          form.mmm.value=ausfst(v/0.001,3);
          form.mcm.value=ausfst(v/0.01,3);
          return;
        }
      if(index>1)
        {
          if(form.mmm.value <= 0) { warnings(2); resetcase(form); return; }
          if(index==2) v=parseFloat(form.rmm.value)*0.001; // mm real
          if(index==3) v=parseFloat(form.rmt.value);       // m  real
          if(index==4) v=parseFloat(form.rcm.value)*0.01;  // cm real
          if(index==5) v=parseFloat(form.rmi.value)*m_mi;  // mi real
          if(index==6) v=parseFloat(form.rft.value)*m_ft;  // ft real
          if(index==7) v=parseFloat(form.rin.value)*m_in;  // in real
          scal = v / parseFloat(form.mmm.value) * 1000.;
          form.sca.value=ausfst(scal,3);
          form.massstab.checked = false;
          return;
        }
    }
  else
    {
    // Modus Massstabsumrechnung

      if(index==-2) { form.mmm.value=""; form.rmm.value=""; form.rmt.value="";
                      form.rcm.value=""; form.mcm.value=""; form.rmi.value="";
                      form.rft.value=""; form.rin.value="";
                      form.sca.value = parseFloat(form.sca.value);
                      return; }
      if(index==-1) { v=form.storev.value; if(v==0) return; }  // Rechenbasis ist Meter Original
      var scal = parseFloat(form.sca.value);
      if(!isFinite(scal) || scal<=0) {warnings(1); return;}
 if(index==1) v=parseFloat(form.mcm.value)*0.01*scal;     // cm modell
      if(index==0) v=parseFloat(form.mmm.value)*0.001*scal;     // mm modell
      if(index==2) v=parseFloat(form.rmm.value)*0.001;         // mm real
      if(index==3) v=parseFloat(form.rmt.value);               // m  real
      if(index==4) v=parseFloat(form.rcm.value)*0.01;          // cm real

      if(index==1) v=parseFloat(form.mcm.value)*0.01*scal;     // cm modell
      if(index==5) v=parseFloat(form.rmi.value)*m_mi;          // mi real
      if(index==6) v=parseFloat(form.rft.value)*m_ft;          // ft real
      if(index==7) v=parseFloat(form.rin.value)*m_in;          // in real
      form.storev.value=v;

      // Ausgabe mit wählberen signifikanten Stellen auskommemtiert
      // bei aktivierung muss Ausgabe mit vorgegebenen Nachkommastellen
      // (hierunter) deaktiviert werden und Auswahlfeld in masstab-rechner.php
      // wieder aktiviert werden.
      // form.mmm.value=ausga(form,v/0.001/scal);   // mm modell
      // form.rmm.value=ausga(form,v/0.001);       // mm real
      // form.rmt.value=ausfst(form,v);             // m  real
      // form.rcm.value=ausga(form,v/0.01);        // cm real
      // form.mcm.value=ausga(form,v/0.01/scal);   // cm modell
      // form.rmi.value=ausga(form,v/m_mi);        // mi real
      // form.rft.value=ausga(form,v/m_ft);        // ft real
      // form.rin.value=ausga(form,v/m_in);        // in real

      form.mmm.value=ausfst(v/0.001/scal,2);   // mm modell
      form.rmm.value=ausfst(v/0.001,2);       // mm real
      form.rmt.value=ausfst(v,4);             // m  real
      form.rcm.value=ausfst(v/0.01,3);        // cm real
      form.mcm.value=ausfst(v/0.01/scal,3);   // cm modell
      form.rmi.value=ausfst(v/m_mi,4);        // mi real
      form.rft.value=ausfst(v/m_ft,4);        // ft real
      form.rin.value=ausfst(v/m_in,3);        // in real
    }
  return;
}
function resetcase(form)
{
  if(form.massstab.checked)
    {
      form.sca.value="";
      resetval(form);
    }
  return;
}
function resetval(form)
{
  form.mmm.value="";
  form.rmm.value="";
  form.rmt.value="";
  form.rcm.value="";
  form.mcm.value="";
  form.rmi.value="";
  form.rft.value="";
  form.rin.value="";
  return;
}
