// Javascript for http://scootergrisen.dk



// Javascript i <body> vil blive udført mens siden hentes.
// Javascript i <head> vil blive udført når koden kaldes.
// document.write("</a>"); laver fejl når den valideres . skriv i stedet: <\/a>
// onclick="window.print() return false;" - return false; betyder at siden ikke scroller til href="#" til toppen.
// variabel += '';  // konverter til string

// med : if(typeof track_visitor == \'function\') { track_visitor(139030, ""); }
// kan man undgå at kalde funktioner når man ikke er online sådan at det giver valideringsfejl
// fordi funktionen jo ikke findes når den kaldes fra nettet



// enheder

// tryk
psi = "PSI";
kgcm2 = "Kg/cm²";
bar = "Bar";
kpascal = "Kpascal";

// moment af kraft
nm = "Nm";
lbft = "Lb-Ft";
kgm = "Kg-m";



function lavom(valg, data){

   if(valg == "fra"){

      data += ''; // konverter til string
      data = data.replace(/\,/, "."); // erstat komma med punktum
      data = parseFloat(data, 10); // antal tal

   }

   if(valg == "til"){

      data = data.toFixed(3);
      data += '';
      data = data.replace(/\./, ",");

   }

   return data;

}



function udregn_volume(formnavn){

   var volume = 0;
   var boring = formnavn.dataind_boring.value;
   var slaglengde = formnavn.dataind_slaglengde.value;

   boring = lavom("fra", boring);
   slaglengde = lavom("fra", slaglengde);

   volume = (Math.PI/4*Math.pow(boring,2)*slaglengde/1000);
   
   if(isFinite(volume)){

      volume = lavom("til", volume);
      volume += " cm³";

   }else{

      volume = "";

   }
   
   formnavn.dataud_volume.value = volume;

}



function udregn_forbvolume(formnavn){

   var forbvolume = 0;
   var slagvolume = formnavn.forb_dataind_slagvolume.value;
   var kompression = formnavn.forb_dataind_kompression.value;

   slagvolume = lavom("fra", slagvolume);
   kompression = lavom("fra", kompression);

   if(isFinite(slagvolume) && isFinite(kompression)){

      forbvolume = (slagvolume/(kompression - 1));
   
      if(isFinite(forbvolume)){

         forbvolume = lavom("til", forbvolume);
         forbvolume += " cm³";

      }else{

         forbvolume = "";

      }

   
   }else{

      forbvolume = "";

   }

   formnavn.forb_dataud_forbvolume.value = forbvolume;

}



function udregn_kompression(formnavn){

   var kompression = 0;
   var forbvolume = formnavn.kompression_dataind_forbvolume.value;
   var slagvolume = formnavn.kompression_dataind_slagvolume.value;

   forbvolume = lavom("fra", forbvolume);
   slagvolume = lavom("fra", slagvolume);

   if(isFinite(forbvolume) && isFinite(slagvolume)){

      kompression = ((forbvolume + slagvolume) / forbvolume);
   
      if(isFinite(kompression)){

         kompression = lavom("til", kompression);
         kompression += ':1';

      }else{

         kompression = "";

      }

   
   }else{

      kompression = "";

   }

   formnavn.kompression_dataud_kompression.value = kompression;

}


   
function omregn_benzinforbrug(formnavn){

   if(formnavn.dataind.value){

      var fraogtilvalg = formnavn.fraogtil.value;
      var res1 = 0;
      var res2 = 0;
      var tal = formnavn.dataind.value;

      tal = lavom("fra", tal);

      switch(fraogtilvalg){

      // Til MPG (US)
      // MPGUS ≈ (3.785 / 1.609) * KMPL ≈ 2.352 * KMPL
      // MPGUS ≈ 100 * (3.785 / 1.609) / LPHKM ≈ 235 / LPHKM
      // MPGUS ≈ 1.201 * MPGIMP

      // Til MPG (Imp)
      // MPGIMP ≈ (4.546 / 1.609) * KMPL ≈ 2.825 * KMPL
      // MPGIMP ≈ 100 * (4.546 / 1.609) / LPHKM ≈ 282 / LPHKM
      // MPGIMP ≈ 0.833 * MPGUS

      // Til km/L
      // KMPL ≈ (1.609 / 3.785) * MPGUS ≈ 0.425 * MPGUS
      // KMPL ≈ (1.609 / 4.546) * MPGIMP ≈ 0.354 * MPGIMP
      // KMPL = 100 / LPHKM

      // Til L/100 km
      // LPHKM ≈ 100 * (3.785 / 1.609) / MPGUS ≈ 235 / MPGUS
      // LPHKM ≈ 100 * (4.546 / 1.609) / MPGIMP ≈ 282 / MPGIMP
      // LPHKM = 100 / KMPL

      // omregner mpg til liter pr mil

	  case "mpgimptilkml":

            res1 = tal*0.3540054835;
            res2 = 2.824815/tal;
            break;

         case "mpgustilkml":

            res1 = tal*0.4251438581;
            res2 = 2.352145/tal;
            break;

         case "kmltilmpgimp":

            res1 = tal*2.824815;
            res2 = 0.354838709/tal;
            break;

         case "kmltilmpgus":

            res1 = tal*2.352145;
            res2 = 0.425806451/tal;
            break;

      }

      if(isFinite(res1)){

         res1 = lavom("til", res1);
         res2 = lavom("til", res2);

      }else{

         res1 = "";
         res2 = "";

      }

      switch(fraogtilvalg){

         case "kmltilmpgimp":
         case "kmltilmpgus":

            if(res1 != ""){

               formnavn.dataud_resultat1.value = res1 + " mpg";
               formnavn.dataud_resultat2.value = res2 + " gpm";

            }

            break;

         case "mpgimptilkml":
         case "mpgustilkml":

            if(res1 != ""){

               formnavn.dataud_resultat1.value = res1 + " km/l";
               formnavn.dataud_resultat2.value = res2 + " l/km";

            }

            break;

      }

   }
   
}


   
function konverter(formnavn, slags){

   var fraogtilvalg = formnavn.fraogtil.value;
   var fra = formnavn.dataind.value;
   var til = 0;

   fra = lavom("fra", fra);
   til = lavom("fra", til);
   
   if(slags == "daktryk"){

      switch(fraogtilvalg){
   
         case "kgcm2tilpsi":     til = (fra * 14.223);   break;    
         case "kgcm2tilbar":     til = (fra / 1.02);     break;    
         case "kgcm2tilkpascal": til = (fra * 98.07);    break;    
         case "psitilbar":       til = (fra * 0.068948); break;    
         case "psitilkgcm2":     til = (fra / 14.223);   break;    
         case "psitilkpascal":   til = (fra * 6.895);    break;    
         case "bartilpsi":       til = (fra / 0.068948); break;    
         case "bartilkgcm2":     til = (fra * 1.02);     break;
         case "bartilkpascal":   til = (fra * 100);      break;    
         case "kpascaltilkgcm2": til = (fra / 98.07);    break;    
         case "kpascaltilpsi":   til = (fra / 6.895);    break;    
         case "kpascaltilbar":   til = (fra / 100);      break;    
   
      }

   }else if(slags == "moment"){

      switch(fraogtilvalg){
   
         case "nmtilkgm":        til = (fra * 0.102);   break;    
         case "nmtillbft":       til = (fra * 0.738);   break;    
         case "kgmtilnm":        til = (fra * 9.804);   break;    
         case "kgmtillbft":      til = (fra * 7.233);   break;    
         case "lbfttilnm":       til = (fra * 1.356);   break;    
         case "lbfttilkgm":      til = (fra * 0.138);   break;    
   
      }

   }else if(slags == "effekt"){

      switch(fraogtilvalg){
   
         // metrisk
         case "kwtilhkmet":         til = (fra * 1.36);   break;    
         // mechanical
         case "kwtilhkmec":         til = (fra * 1.34102);   break;    
         // metrisk
         case "hkmettilkw":         til = (fra * 0.735499);   break;    
         // mechanical
         case "hkmectilkw":         til = (fra * 0.7456999);   break;    
   
      }

   }else if(slags == "hastighed"){

      switch(fraogtilvalg){
   
         case "kmttilmph":         til = (fra * 0.6214);   break;    
         case "mphtilkmt":         til = (fra * 1.609);   break;    
   
      }

   }

   if(isFinite(til)){

      til = lavom("til", til);

      switch(fraogtilvalg){
   
         case "kgcm2tilpsi":     til += " " + psi;       break;
         case "kgcm2tilbar":     til += " " + bar;       break;
         case "kgcm2tilkpascal": til += " " + kpascal;   break;
         case "psitilbar":       til += " " + bar;       break;
         case "psitilkgcm2":     til += " " + kgcm2;     break;
         case "psitilkpascal":   til += " " + kpascal;   break;
         case "bartilpsi":       til += " " + psi;       break;
         case "bartilkgcm2":     til += " " + kgcm2;     break;
         case "bartilkpascal":   til += " " + kpascal;   break;
         case "kpascaltilkgcm2": til += " " + kgcm2;     break;
         case "kpascaltilpsi":   til += " " + psi;       break;
         case "kpascaltilbar":   til += " " + bar;       break;

         case "nmtilkgm":        til += " " + kgm;       break;
         case "nmtillbft":       til += " " + lbft;      break;
         case "kgmtilnm":        til += " " + nm;        break;
         case "kgmtillbft":      til += " " + lbft;      break;
         case "lbfttilnm":       til += " " + nm;        break;
         case "lbfttilkgm":      til += " " + kgm;       break;
   
      }

   }else{

      til = "";

   }

   formnavn.dataud.value = til;
   
}


   
function visforbrugtabel(){

   var liter  = [1,4.52,4.91,4.91,5.23,4.31,4.42,4.68,5,4.89,5.3,5.45,5.23,5.5,5.56,5.5,4.64,4.97];
   var km     = [0,36,242,410,600,761,925,1088,1278.9,1431,1617,1810.9,2040,2279.5,2528.5,2782.6,3038,3245.5,3475.5];
   var kml    = [];
   var kmkort = [];

   var qliter  = [];
   var qkml    = [];
   var qkmkort = [];
   var qkm     = [];
 
   var kmlsammenlagt = 0;
   var count = 0;
   var hojeste = 0;
   var laveste = 1000;
   var gennemsnit = 0;

   for (loop = 0; loop < liter.length; loop++){

      kml[loop] = ((km[loop+1] - km[loop]) / liter[loop]);
      kmkort[loop] = (km[loop+1] - km[loop]);

   }

   document.write('<div style="border-top:2px solid #aaa; margin-top:20px; margin-bottom:20px;"></div>');
   document.write('<form id="benzinforbrugform">');


   for (loop = 2; loop < liter.length; loop++){

      qliter[loop] = liter[loop].toFixed(2);
      qkmkort[loop] = kmkort[loop].toFixed(0);
      qkml[loop] = kml[loop].toFixed(0);
      qkm[loop] = km[loop].toFixed(0);

      qliter[loop] += '';
      qliter[loop] = qliter[loop].replace(/\./, ",");

      document.write('<div class="forbruglinie">');
      document.write('Tanket <input style="border-width:0px;" type="text" size="3" name="liter" value="'+qliter[loop]+'"/> liter ,');
      document.write('kørt <input style="border-width:0px;" type="text" size="3" name="kmkort" value="'+qkmkort[loop]+'"/> km, hvilket giver ');
      document.write(' <input style="border-width:0px;" type="text" size="3" name="kml" value="'+qkml[loop]+'"/> km/liter.');
      document.write(' (Speedometer <input style="border-width:0px;" type="text" size="3" name="km" value="'+qkm[loop]+'"/> km )');
      document.write('</div>');

   }

   for (loop = 2; loop < kml.length; loop++){

      kmlsammenlagt += kml[loop];
      count++;

      if(kml[loop] > hojeste){

         hojeste = kml[loop];

      }

      if(kml[loop] < laveste){

         laveste = kml[loop];

      }

   }

   gennemsnit = kmlsammenlagt / count;

   hojeste = hojeste.toFixed(0);
   laveste = laveste.toFixed(0);
   gennemsnit = gennemsnit.toFixed(0);
   
   document.write('<div style="border-top:2px dotted #aaa; margin-top:20px; margin-bottom:20px;"></div>');
   document.write('<div class="forbruglinie">Laveste km/liter : <input style="border-width:0px;" type="text" size="4" name="" value="'+laveste+'"/> km/liter.</div>');
   document.write('<div class="forbruglinie">Højeste km/liter : <input style="border-width:0px;" type="text" size="4" name="" value="'+hojeste+'"/> km/liter.</div>');
   document.write('<div style="border-top:2px dotted #aaa; margin-top:20px; margin-bottom:20px;"></div>');
   document.write('<div class="forbruglinie">Gennemsnitlig forbrug : <input style="border-width:0px;" type="text" size="4" name="" value="'+gennemsnit+'"/> km/liter.</div>');

   document.write('</form>');

}




