  // This code is copyright 2003 LED Supply
  //Modifiziert 2005 Rene Bader [http://www.bader-frankfurt.de]
  // Dieses Script darf frei benutzt werden, solange diese Einträge weder verändert noch entfernt werden.

  function my_onclick()
  {
	  // Standard 5% resistor values
	  stdVals = new Object();
	  stdVals[0] = 1;
	  stdVals[1] = 10;
	  stdVals[2] = 11;
	  stdVals[3] = 12;
	  stdVals[4] = 13;
	  stdVals[5] = 15;
	  stdVals[6] = 16;
	  stdVals[7] = 18;
	  stdVals[8] = 20;
	  stdVals[9] = 22;
	  stdVals[10] = 24;
	  stdVals[11] = 27;
	  stdVals[12] = 30;
	  stdVals[13] = 33;
	  stdVals[14] = 36;
	  stdVals[15] = 39;
	  stdVals[16] = 43;
	  stdVals[17] = 47;
	  stdVals[18] = 51;
	  stdVals[19] = 56;
	  stdVals[20] = 62;
	  stdVals[21] = 68;
	  stdVals[22] = 75;
	  stdVals[23] = 82;
	  stdVals[24] = 91;

	  vSource = eval(document.calc.vsource_field.value);
	  vDrop = eval(document.calc.vdrop_field.value);
	  iMax = eval(document.calc.current_field.value) / 1000;

	  if ( vDrop > vSource ) {
		  alert("Die Betriebsspannung muß größer sein als die Spannung der LED! Bitte korregieren sie ihre Eingabe!");
		  return;
	  }
	  if (document.calc.vsource_field.value == 0) {
	  	  alert("Die Bretriebsspannung der LED muß größer 0 sein! Bitte korregieren sie ihre Eingabe!");
		  return;
	  }
	  if (document.calc.current_field.value == 0) {
	  	  alert("Der LED Strom muß größer 0 sein! Bitte korregieren sie ihre Eingabe!");
		  return;
	  }
	  
	  rExact = ( vSource - vDrop ) / ( iMax );

	  // Calculate closest std resistor value
	  q = 0;
	  while (1) {
	  if ( q > 24 ) { q = 0; }
	  if (rExact <= stdVals[q]) {
	  rStd = stdVals[q];
      break;
	  }
	  stdVals[q] *= 10;
	  ++ q;
      }

	  irStd = ( vSource - vDrop ) / rStd;
	  plrStd = vDrop * irStd;
      prrStd = ( vSource - vDrop ) * irStd;

	  // Calculated closest std resistor wattage
	  if ( prrStd <= .1 )
	    { prrStd_string = "1/10"; }
	  else if ( prrStd <= .125 )
	    { prrStd_string = "1/8"; }
	  else if ( prrStd <= .25 )
	    { prrStd_string = "1/4"; }
	  else if ( prrStd <= .5 )
	    { prrStd_string = "1/2"; }
	  else if ( prrStd <= 1 )
	    { prrStd_string = "1"; }
	  else if ( prrStd <= 2 )
	    { prrStd_string = "2"; }
	  else if ( prrStd <= 5 )
	    { prrStd_string = "5"; }
	  else if ( prrStd <= 9 )
	    { prrStd_string = "9"; }
	  else if ( prrStd <= 11 )
	    { prrStd_string = "1"; }
	  else if ( prrStd <= 17 )
	    { prrStd_string = "17"; }
	  else {
		 prrStd_string = " < " + Math.round(prrStd + 1);
	 }

          document.calc.rExact_field.value = Math.round(rExact * 10000) / 10000;
      if (document.calc.rExact_field.value == 0)  document.calc.rExact_field.value = "1"
          document.calc.rStd_field.value = rStd;
  		r = Math.floor(document.calc.rStd_field.value);
  		if (r > 1000) {
    	if (r > 999 && r < 1000000) {document.calc.rStd_field.value = r / 1000 + ' k';}
    	if (r > 999999 && r < 1000000000) {document.calc.rStd_field.value = r / 1000000 + ' M';}
    	if (r > 999999999) {document.calc.rStd_field.value = r / 1000000000 + ' G';}
  		} else {
    	document.calc.rStd_field.value = r ;
  		}          
          document.calc.irStd_field.value = Math.round(irStd * 10000) / 10000;
          document.calc.plrStd_field.value = Math.round(plrStd * 10000) / 10000;
          document.calc.prrStd_field.value = Math.round(prrStd * 10000) / 10000;
          document.calc.prrStd_string_field.value = prrStd_string;
  }
  
  document.calc.mybutton.onclick = my_onclick;

