//Schärfentiefe
function berechne_st()
{
	var entfernung = parseFloat(document.getElementById("Entfernung").value);
	var CoC = parseFloat(document.getElementById("Zerstreuungskreis").value);
	var blende = parseFloat(document.getElementById("Blende").value);
	var brennweite = parseFloat(document.getElementById("Brennweite").value);
	
	//Auf Fehleingabe prüfen
	if (isNaN(entfernung) || entfernung < 0.0001 || isNaN(CoC) || CoC < 0.0001 || isNaN(blende) || blende < 0.5 || isNaN(brennweite) || brennweite < 0.0001)
  {
    document.getElementById("hyperfokaldistanz").innerHTML  = "Fehlerhafte Eingabewerte";
    document.getElementById("nahpunkt").innerHTML  = "Fehlerhafte Eingabewerte";
    document.getElementById("fernpunkt").innerHTML  = "Fehlerhafte Eingabewerte";
    document.getElementById("schaerfentiefe").innerHTML  = "Fehlerhafte Eingabewerte";
    document.getElementById("schaerfentiefevor").innerHTML  = "Fehlerhafte Eingabewerte";
    document.getElementById("schaerfentiefehinter").innerHTML  = "Fehlerhafte Eingabewerte";
  }
  else
  {
    //Angaben in m umrechnen
    CoC = CoC / 1000;
    brennweite = brennweite / 1000; 


	  //Hyperfokaldistanz berechnen
    var Hyperfokal = (brennweite * brennweite) / (blende * CoC) + brennweite;
     
    var nahpunkt = 0.0;
    var fernpunkt = 0.0;
    var schaerfentiefe = 0.0;
    var schaerfentiefevorprozent = 0.0;
    var schaerfentiefehinterprozent = 0.0;
    
    
    nahpunkt = ((Hyperfokal - brennweite) * entfernung) / ((Hyperfokal + entfernung) - (2*brennweite));
    
    //Wenn die Entfernung größer als die Hyperfokaldistanz ist..
    if ((Hyperfokal - entfernung) < 0.000001)
    {
      fernpunkt = 100000.0; //Fernpunkt liegt bei 100km
    }
    else
    {
      fernpunkt = ((Hyperfokal - brennweite) * entfernung) / (Hyperfokal - entfernung);
    }
    
    schaerfentiefe = fernpunkt - nahpunkt;
    
    //Prozente berechnen..
    schaerfentiefevorprozent = (entfernung - nahpunkt) / schaerfentiefe * 100.0;
    schaerfentiefehinterprozent = (fernpunkt - entfernung) / schaerfentiefe * 100.0;
    
    //Ergebnisse anzeigen
    document.getElementById("hyperfokaldistanz").innerHTML  = Math.round(Hyperfokal*100)/100 + "m";
    document.getElementById("nahpunkt").innerHTML  = Math.round(nahpunkt*100)/100 + "m";
    if ( fernpunkt < 100000.0)
    {
      document.getElementById("fernpunkt").innerHTML  = Math.round(fernpunkt*100)/100 + "m";
      document.getElementById("schaerfentiefe").innerHTML  = Math.round(schaerfentiefe*100)/100 + "m";
      document.getElementById("schaerfentiefevor").innerHTML  = Math.round((entfernung-nahpunkt)*100)/100 + "m" + " (" + Math.round(schaerfentiefevorprozent) + "%)";
      document.getElementById("schaerfentiefehinter").innerHTML  = Math.round((fernpunkt-entfernung)*100)/100 + "m" + " (" + Math.round(schaerfentiefehinterprozent) + "%)";    
    }
    else
    {
      document.getElementById("fernpunkt").innerHTML  = "unendlich";
      document.getElementById("schaerfentiefe").innerHTML  = "unendlich";
      document.getElementById("schaerfentiefevor").innerHTML  = Math.round((entfernung-nahpunkt)*100)/100 + "m";
      document.getElementById("schaerfentiefehinter").innerHTML  = "unendlich";
    }
    


	}
}


//Hyperfokaldistanz
function berechne_hfd()
{

	var CoC = parseFloat(document.getElementById("Zerstreuungskreis").value);
	var blende = parseFloat(document.getElementById("Blende").value);
	var brennweite = parseFloat(document.getElementById("Brennweite").value);
	
	//Auf Fehleingabe prüfen
	if ( isNaN(CoC) || CoC < 0.0001 || isNaN(blende) || blende < 0.5 || isNaN(brennweite) || brennweite < 0.0001)
  {
    document.getElementById("hyperfokaldistanz").innerHTML  = "Fehlerhafte Eingabewerte";

  }
  else
  {
    //Angaben in m umrechnen
    CoC = CoC / 1000;
    brennweite = brennweite / 1000; 

	  //Hyperfokaldistanz berechnen
    var Hyperfokal = (brennweite * brennweite) / (blende * CoC) + brennweite;
   
    //Ergebnisse anzeigen
    document.getElementById("hyperfokaldistanz").innerHTML  = Math.round(Hyperfokal*100)/100 + "m";
    document.getElementById("hhyperfokaldistanz").innerHTML  = Math.round(Hyperfokal*100)/200 + "m";


	}
}


//Bildwinkel
function berechne_bw()
{

	var durchmesser = parseFloat(document.getElementById("Durchmesser").value);
	var brennweite = parseFloat(document.getElementById("Brennweite").value);
	
	//Auf Fehleingabe prüfen
	if ( isNaN(durchmesser) || durchmesser < 0.0001 ||  isNaN(brennweite) || brennweite < 0.0001)
  {
    document.getElementById("bildwinkel").innerHTML  = "Fehlerhafte Eingabewerte";

  }
  else
  {

	  //Hyperfokaldistanz berechnen
	  var faktor = (durchmesser/(2*brennweite));
    var bildwinkel = (180/Math.PI) *2*(Math.atan(faktor));

   
    //Ergebnisse anzeigen
    document.getElementById("bildwinkel").innerHTML  = Math.round(bildwinkel*100)/100 + "&deg;";


	}
}
