/****************** Rainer Wagener, wagener [ed] rohschnitt.de **********************/

var schriftg;
var schriftf;
var monitor;
var monite;
var res;
var comp_reso;
var comp_g;
var comp_f;
var comp_m;

function standard()
{
   res = screen.width;
   res += " x ";
   res += screen.height;

   document.forms[0].elements[0].value = res;

   if(document.cookie)
   {
      schriftg = (wertholen("schriftg") != "") ? wertholen("schriftg") : "12px";
      schriftf = (wertholen("schriftf") != "") ? wertholen("schriftf") : "Arial";
      monitor = (wertholen("monitor") != "") ? wertholen("monitor") : "";
      comp_reso = (wertholen("comp_reso") != "") ? wertholen("comp_reso") : "1024 x 768";
      comp_g = (wertholen("comp_g") != "") ? wertholen("comp_g") : "12px";
      comp_f = (wertholen("comp_f") != "") ? wertholen("comp_f") : "Arial";
      comp_m = (wertholen("comp_m") != "") ? wertholen("comp_m") : "15 Zoll";
   }

   else
   {
      schriftg = "12px";
      schriftf = "Arial";
      monitor = "";
      comp_reso = "1024 x 768";
      comp_g = "12px";
      comp_f = "Arial";
      comp_m = "15 Zoll";
   }

   document.forms[0].elements[1].value = schriftg;
   document.forms[0].elements[2].value = schriftf;
   document.forms[0].elements[3].value = monitor;
   document.forms[0].elements[5].value = comp_reso;
   document.forms[0].elements[6].value = comp_g;
   document.forms[0].elements[8].value = comp_f;
   document.forms[0].elements[9].value = comp_m;

   sizer();
}

function sizer()
{
   schriftg = parseFloat(document.forms[0].elements[1].value).toString();
   schriftg += "px";
   document.getElementById("test").style.fontSize = schriftg;
   document.forms[0].elements[1].value = schriftg;

   schriftf = document.forms[0].elements[2].value.toString();
   document.getElementById("test").style.fontFamily = schriftf;
   document.forms[0].elements[2].value = schriftf;

   monitor = parseFloat(document.forms[0].elements[3].value).toString();
   monitor = (isNaN(monitor)) ? "" : (monitor + " Zoll");
   document.forms[0].elements[3].value = monitor;

   monite = (monitor=="") ? " auf einem Monitor von unbekannter Größe " : " auf einem \"" + monitor + "\" Monitor";

   var a = document.forms[0].elements[5].value;
   a = a.replace(/\s/g, "");
   var a1 = parseFloat(a);
   var a2 = parseFloat(a.slice(a.indexOf("x")+1));

   comp_reso = a1 + " x " + a2;
   document.forms[0].elements[5].value = comp_reso;

   comp_g = parseFloat(document.forms[0].elements[6].value).toString();
   comp_g += "px";
   document.getElementById("test_2").style.fontSize = comp_g;
   document.forms[0].elements[6].value = comp_g;

   comp_f = document.forms[0].elements[8].value.toString();
   document.getElementById("test_2").style.fontFamily = comp_f;
   document.forms[0].elements[8].value = comp_f;

   comp_m = parseFloat(document.forms[0].elements[9].value).toString();
   comp_m += " Zoll";
   document.forms[0].elements[9].value = comp_m;

   if(monitor == "")
      document.getElementById("test_2").style.fontWeight = "600";
   else
      document.getElementById("test_2").style.fontWeight = "500";
      
   umsetzen();

   document.cookie = "schriftg=" + schriftg;
   document.cookie = "schriftf=" + schriftf;
   document.cookie = "monitor=" + monitor;
   document.cookie = "comp_g=" + comp_g;
   document.cookie = "comp_f=" + comp_f;
   document.cookie = "comp_m=" + comp_m;
   document.cookie = "comp_reso=" + comp_reso;
}

function umsetzen()
{
   if(monitor != "")
   {
      var mon_pr = parseFloat(document.forms[0].elements[3].value).toString();
      var comp_m_pr = parseFloat(document.forms[0].elements[9].value).toString();

      var a = document.forms[0].elements[0].value;
      a = a.replace(/\s/g, "");
      var a1 = parseFloat(a);
      var a2 = parseFloat(a.slice(a.indexOf("x")+1));

      var ownppi = Math.sqrt((Math.pow(a1, 2) + Math.pow(a2, 2))/Math.pow(mon_pr, 2));

      var b = document.forms[0].elements[5].value;
      b = b.replace(/\s/g, "");
      var b1 = parseFloat(b);
      var b2 = parseFloat(b.slice(b.indexOf("x")+1));

      var comppi = Math.sqrt((Math.pow(b1, 2) + Math.pow(b2, 2))/Math.pow(comp_m_pr, 2));

      var faktor = ownppi/comppi;
      var font_corr = (parseFloat(document.forms[0].elements[6].value)*faktor).toString();
      var corr_aus = font_corr;
      font_corr += "px";

      document.getElementById("test_2").style.fontSize = font_corr;
      document.forms[0].elements[7].value = corr_aus.substring(0, (corr_aus.indexOf(".")+3)) + " px";
      document.forms[0].elements[4].value = ownppi.toString().substring(0, (ownppi.toString().indexOf(".")+3)) + " px/inch";
      document.forms[0].elements[10].value = comppi.toString().substring(0, (comppi.toString().indexOf(".")+3)) + " px/inch";
   }

   var ausgabe = "Dies ist ein \"" + schriftg + "\" großer Testtext in \"" + schriftf + "\"" + monite + " mit einer Auflösung von \"" + res + "\".";

   var ausgabe_2 = (monitor != "") ? "Dies ist ein \"" + comp_g + "\" großer Testtext in \"" + comp_f + "\" auf einem \"" + comp_m + "\" Monitor mit einer Auflösung von \"" + comp_reso + "\"." : "Bitte die *eigene Monitorgröße* eingeben, dann erscheint hier ein Vergleichstext!";

   if(window.event)
   {
   document.getElementById("test").innerText = ausgabe;
   document.getElementById("test_2").innerText = ausgabe_2;
   }

   else
   {
      document.getElementById("test").firstChild.data = ausgabe;
      document.getElementById("test_2").firstChild.data = ausgabe_2;
   }
}

function wertholen(b)
{
    var Wert = "";
    if(document.cookie.indexOf(b)!= -1)
    {
       var bl = document.cookie;
       var Wertstart = bl.indexOf(b) +  b.length + 1;
       var Wertende = (bl.indexOf(";", Wertstart)!=-1)? bl.indexOf(";", Wertstart):bl.length;
       Wert = bl.substring(Wertstart,Wertende);
    }
    return Wert;
}
