  // von -20 bis 60 °C
  var pressure=new Array(
  103,114,125,137,150,165,181,198,217,237,260,284,310,337,
  368,401,437,476,517,562,611,657,705,759,813,872,935,1002,
  1073,1148,1228,1312,1403,1498,1599,1706,1818,1937,2065,
  2197,2340,2487,2645,2810,2985,3169,3362,3566,3781,4006,4244,
  4493,4755,5030,5320,5623,5942,6276,6627,6995,7381,7785,8208,8652,
  9116,9602,10110,10642,11198,11780,12388,13023,13687,14380,15103,
  15858,16646,17468,18326,19220,20152);  

  var ps=0;
  var p=0;
  var dp=0;


  function get_pressure(t) {
    if ((t>=-20) && (t<60)) 
     {
     var tint=parseInt(t+20);
     var tfloat=parseFloat(t+20);
     var delta=tfloat-tint;
     return parseInt(pressure[tint]+(pressure[tint+1]-pressure[tint])*delta);
     }
    if (t==60) return pressure[80];
    return "[Temperatur nicht zwischen -20 und +60°C]"; 
    }

  function get_dewpoint(p) {
    var n=pressure.length;
    for (i=0;i<n;i++)
      if ((p>pressure[i]) && (p<=pressure[i+1]))
        {
        delta=(p-pressure[i])/(pressure[i+1]-pressure[i]);
        return (-20+i+delta).toFixed(1);
        };
    // should we error?
    alert("Leider liegen Ihre Eingabewerte außerhalb des zulässigen Bereichs. Der zu berechnende Taupunkt liegt nicht im Bereich -20°C bis +60°C. Die Ergebnisse werden nicht richtig sein.");
    if (p<=pressure[0]) return "<-20";
    return ">60";
    }

  // keep for Kompatibility reasons, change element names
  function get_value() {
    var v1=parseFloat(document.getElementById("temp1").value);
    result="Dampfs&auml;ttigungsdruck bei "+v1+" °C: <b>"+get_pressure(v1)+" Pa</b>";
    document.getElementById("result").innerHTML=result;
    }

  function analyse1() {
    var t1=parseFloat(document.getElementById("temp1").value);
    if (t1.toString()=="NaN")
      {
      alert("Bitte geben Sie die Ausgangstemperatur und die Luftfeuchtigkeit an.");
      return false;
      }
    var h1=parseFloat(document.getElementById("rhum1").value);
    if ((t1<-20) || (t1>60)) {
      document.getElementById("result").innerHTML="Fehler: Temperatur muss zwischen -20°C und 30°C liegen.";
      return false;
      }
    if ((h1<0) || (h1>100)) {
      document.getElementById("result").innerHTML="Fehler: Luftfeuchtigkeit muss zwischen 0% und 100% liegen.";
      return false;
      }
    ps=get_pressure(t1);  // dampfsättigungsdruck
    p=ps*h1/100;          // dampfdruck
    dp=get_dewpoint(p);   // taupunkt
    var rho1=(p/461.5/(273.15+t1)*1000).toFixed(1);    // dampfdichte in g/m3
    var rho_max1=(ps/461.5/(273.15+t1)*1000).toFixed(1);
    var text="";
    text+="<h2>Ausgangszustand</h2>";

    text+="<h4>Temperatur: "+t1+"°C</h4><h4>Rel. Luftfeuchte: "+h1+"%</h4>";

    text+="<h4>Taupunkt: "+dp+" °C</h4>Wenn Sie die Luft vom Ausganzszustand ("+t1+"°C, "+h1+"% rel. Luftfeuchte) auf unter "+dp+" °C abkühlen, kann Sie nicht mehr die in ihr enthaltene Feuchtigkeit aufnehmen und es fällt Tauwasser aus. Oder in anderen Worten: Wenn sich in diesem Luftgemisch ein Gegenstand befindet, dessen Temperatur unter "+dp+" °C liegt (z.B. eine ungedämmte Wand, eine gekühlte Flasche...), dann wird sich an diesem Gegenstand Feuchtigkeit niederschlagen.";
    text+="<h4>Wasserdampfdichte: "+rho1+" g/m3</h4>Ein Kubikmeter Luft enthält "+rho1+"g Wasser und kann maximal "+rho_max1+"g aufnehmen.";

    text+="<h4>Dampfsättigungsdruck bei "+t1+"°C: "+ps+" Pa</h4>Ein anderes (für die Berechnung besser geeignetes) Maß für den Taupunkt ist der Dampfsättigungsdruck. Je mehr Wasser sich in der Luft befindet, umso größer ist der Partialdruck des Wasserdampfes. Dieser Dampfdruck kann jedoch nicht beliebig groß werden. Überschreitet er den Dampfsättigungsdruck, dann ist es für das Luft/Dampfgemisch \"einfacher\" (energetisch günstiger) Wasser abzuscheiden, als aufzunehmen.";

    text+="<h4>Dampfdruck bei "+h1+" % Luftfeuchtigkeit: "+p+" Pa</h4>Der Dampfdruck des angegebenen Ausgangszustands beträgt "+h1+" % des Dampfsättigungsdrucks.";

    text+="<br/><br/><br/><h2>Endzustand</h2>";

    // Berechne Endzustand
    var t2=parseFloat(document.getElementById("temp2").value);
    if (t2.toString()=="NaN") {
      text+="Keine Endtemperatur angegeben. Beende Rechnung an dieser Stelle.";
      document.getElementById("result").innerHTML=text;
      return false;
      }
    if ((t2<-20) || (t2>60)) {
      document.getElementById("result").innerHTML="Fehler: Endtemperatur muss zwischen -20°C und 60°C liegen.";
      return false;
      }
    var ps2=get_pressure(t2);       // dampfsättigungsdruck
    var h2=(p/ps2*100).toFixed(1);  // rel. Luftfeuchtigkeit
    var kondensation=0;
    if (h2>100)
      {
      h2=100;
      kondensation=1;
      }
    var rho2=(p/461.5/(273.15+t2)*1000).toFixed(1);// dichte in g/m3
    var rho_max2=(ps2/461.5/(273.15+t2)*1000).toFixed(1);
    
    text+="<h4>Temperatur: "+t2+"°C</h4><h4>Rel. Luftfeuchte: "+h2+" %</h4>";
    if (kondensation)
      {
      text+="Die Temperatur liegt unter dem Taupunkt des Ausgangsgemisches. Die Luft kann nun nur noch "+rho_max2+"g Wasserdampf pro Kubikmeter aufnehmen, würde nach dem Abkühlen aber "+rho2+"g pro Kubikmeter enthalten. Die Differenz kondensiert zu Wasser.";
      }
    else
      {
      text+="<h4>Wasserdampfdichte: "+rho2+" g/m3</h4>Ein Kubikmeter Luft enthält "+rho2+"g Wasser und kann maximal "+rho_max2+"g aufnehmen.";
      }

    text+="<h4>Dampfsättigungsdruck bei "+t2+" °C: "+ps2+" Pa</h4>";

    text+="</br><br/><h2>Hinweise</h2><p>Die Ergebnisse wurden auf eine Stelle nach dem Komma gerundet.Außerdem enthält der Rechenweg verschiedene Näherungen. Die Ergebnisse stellen deshalb keine sehr präzisen Werte dar.</p><p>Bei Erwärmung bzw. Abkühlung wird der Wasserdampfdruck als konstant angenommen. Die Luft darf sich jedoch frei ausdehnen bzw. zusammenziehen. Deshalb ändert sich die Wasserdampfdichte mit der Temperatur.</p>"

    document.getElementById("result").innerHTML=text;
    location.hash="results";
    }

