/*  
 * fototools.js
 *
 * Copyright (c) 2005 plainpix.com
 * 2.05.2005 gk
 *
 */

 blenden_ganz = new Array(1,1.4,2,2.8,4,5.6,8,11,16,22,32,45,64,90);
 blenden_halb = new Array(1,1.4,1.8,2,2.4,2.8,3.5,4,4.5,5.6,6.7,8,9.5,11,13,16,19,22,27,32,45,64,90);
 blenden_tmp = new Array();

/*  
 * endblendenwert()  
 *
 * Copyright (c) 2005 plainpix.com
 * 2.05.2005 gk
 *
 */
function endblendenwert() {      
 var i, j, bname, maxblende = 8, tmp, resblende = 0;
 var vorschlag, falsch, str;
 
 if(document.bform.elements['b1'].value == ''){
   alert("Bitte einen Blendenwert im ersten Feld eingeben!");
   document.bform.elements["b1"].focus();
   document.bform.elements["b1"].select()
   return;
 }
 
 if(document.bform.blendenliste[0].checked == true) {
   blenden_tmp = blenden_ganz;
 } else if(document.bform.blendenliste[1].checked == true) {
   blenden_tmp = blenden_halb;
 } else {
   alert("Bitte eine Blendenreihe aktivieren!");
   return;
 }
 
 for(i=1; i < maxblende; i++) {
   falsch = true
   bname = 'b' + i;       // Blendenname
   tmp = document.bform.elements[bname].value;
   tmp = tmp.replace(/,/,".");
   document.bform.elements[bname].value = tmp;
   tmp = eval(tmp);
   for(j=0; j < blenden_tmp.length; j++) {
     if( tmp == blenden_tmp[j] || tmp == undefined ){
	   falsch = false;
	   break;
	 }
   }
   if( falsch ) {
     str = getblendestr(blenden_tmp);
     alert("Bitte nur gültige Blendenwerte eingeben!\n" + str);
	 document.bform.elements[bname].focus();
	 return;
   }
   if(isNaN(tmp) == false) {
     tmp = quadrat(tmp);
	 resblende = resblende + tmp;
   }
 }
 resblende = Math.sqrt(resblende);
 resblende = fto_round(resblende,10);
 document.bform.blende.value = resblende;
 if(document.bform.vfaktor.options[document.bform.vfaktor.selectedIndex].value){
   resblende = (resblende / eval(document.bform.vfaktor.options[document.bform.vfaktor.selectedIndex].value));
   document.bform.incfaktor.value =  fto_round(resblende,10);
 } else {
   document.bform.incfaktor.value = '';
 }
 for(i=0; i < blenden_tmp.length; i++) {
   if( resblende < blenden_tmp[i] ){
     if( i < blenden_tmp.length ){
	   if( (resblende - blenden_tmp[i-1]) < (blenden_tmp[i] - resblende) ){
	     document.bform.vorschlag.value = blenden_tmp[i-1];
		 printblenden(i-1);
	   } else {
	     document.bform.vorschlag.value = blenden_tmp[i];
		 printblenden(i);
	   }
	 }	 
   break;
   } 
 }
 go_tiefenschaerfe( document.bform.vorschlag.value );
}

/*
 * getblendenstr()  
 * p = idx = Index der Voschlagsblende
 *
 * Copyright (c) 2005 plainpix.com
 * 2.05.2005 gk
 */
function getblendestr(a_blende){
 var i, retour = '';
 for(i=0; i < a_blende.length; i++) {
   if( i > 0) {
     retour = retour + '-';
   }
   retour = retour + a_blende[i];
 }
 return(retour);
}

/*
 * printblenden()  
 * p = idx = Index der Voschlagsblende
 *
 * Copyright (c) 2005 plainpix.com
 * 2.05.2005 gk
 */
function printblenden(idx){
 var out = '',i;
  
 document.getElementsByTagName("h5")[0].firstChild.data = "Vorne";
 document.getElementsByTagName("h5")[1].firstChild.data = "Mitte";
 document.getElementsByTagName("h5")[2].firstChild.data = "Hinten";
 
 for(i=0; i < blenden_tmp.length; i++) {
	if( i != idx) {
      out = out + blenden_tmp[i];
	  if(i < (blenden_tmp.length -1) ){
	    out = out + '-';
	  }
	} else {
	  if( i == 0) {
	    out = out + 'ZEIT u. Blenden ändern !-';
	  }
	  document.getElementsByTagName("h5")[0].firstChild.data = out;
	  out = '-';
	  document.getElementsByTagName("h5")[1].firstChild.data = blenden_tmp[i];
	} 
 } 
 document.getElementsByTagName("h5")[2].firstChild.data = out;
}


/*  
 * go_tiefenschaerfe()  
 * p = Der Blendenwert
 *
 * Copyright (c) 2005 plainpix.com
 * 2.05.2005 gk
 */
function go_tiefenschaerfe( bwert ){
 var i;
 for ( i = 0; i < document.tform.blende.options.length; i++) {
   if(bwert == (eval(document.tform.blende.options[i].value)) ){
     document.tform.blende.options[i].selected = true;
  }
 }
 if(document.bform.distanz.value){
   document.bform.distanz.value = document.bform.distanz.value.replace(/,/,".");
   document.tform.entfernung.value = document.bform.distanz.value;
   berechne_ts(); 
 }
}

/* 
 * quadrat()  
 * p = Die zu quadrierende Zahl
 * 2.05.2005 gk
 */
function quadrat(wert){
return ( wert * wert );
}

/*
 * fto_round()  
 * p = Die zu rundene Zahl
 * 2.05.2005 gk
 */
function fto_round(zahl,faktor) {
  return (Math.round(parseFloat(zahl)*faktor)/faktor);
}

/* Unter Verwendung von 
 * alistair@silverlight.co.uk
 * http://www.silverlight.co.uk
 *
 * 2.05.2005 gk
 */
function berechne_ts() {
 document.tform.entfernung.value = document.tform.entfernung.value.replace(/,/,".");
 entfernung = (document.tform.entfernung.value)*1000;
 CoC = (document.tform.format.options[document.tform.format.selectedIndex].value);
 document.tform.zerstreukreis.value = CoC; 
 blende = (document.tform.blende.options[document.tform.blende.selectedIndex].value);
 brennweite = (document.tform.brennweite.options[document.tform.brennweite.selectedIndex].value);
 if (isNaN(entfernung) || entfernung == '')  {
   alert('Bitte geben Sie die Motiventfernung in Meter ein!');
   document.tform.entfernung.focus();
   document.tform.entfernung.select();
 }
 else {
   hyperbrennweite = (brennweite * brennweite) / (blende * CoC);
   document.tform.hyperbrennweite.value  = Math.round(hyperbrennweite) / 1000 + " m";
   dofNear = (hyperbrennweite * entfernung) / (hyperbrennweite + (entfernung - brennweite));
   document.tform.dofNear.value = Math.round(dofNear) / 1000 + " m";
   dofFar = (hyperbrennweite * entfernung) / (hyperbrennweite - (entfernung - brennweite));
   if (dofFar < 0) {
     document.tform.dofFar.value  = "Unendlich";
   }
   else {
     document.tform.dofFar.value  = Math.round(dofFar)/1000+" m";
   }
   dofTotal = Math.round(dofFar - dofNear);
   if (dofTotal < 0) {
     document.tform.dofTotal.value  = "Unendlich";
   }
   else {
     if (dofTotal >= 0 && dofTotal < 0.001) {
       document.tform.dofTotal.value  = ">1 mm ";  
     }
     else {
       document.tform.dofTotal.value = dofTotal / 1000 + " m";  
     }
   }
 }
}

/* Leitzahlrechner
 *
 * Copyright (c) 2009 plainpix.com
 * 3.03.2009 gk
 *
 */
function isTrue( val ) {
    var retour =  true;
    if (isNaN( val ) || ( val == 0)) {
			retour = false;
	} 
    return( retour );
}
function Str_to_Num( str ) {
	return str.toString().replace(/\./, ",")
}
function Num_to_Str( str ) {
	return str.replace(/,/, ".")
}
function isoCalculation() {
    with (document.Leitzahl) {
		var vLeitzahl = Num_to_Str(Leitzahl.value);
		var vEntfernung = Num_to_Str(Entfernung.value);
        var vBlende = Num_to_Str(Blende.value);
        if( isTrue( vLeitzahl ) && isTrue( vEntfernung) ) {
            Blende.value = Str_to_Num(Math.round((10 * vLeitzahl * Math.sqrt(Iso.value / 100)) / vEntfernung) / 10);
            return;
        }
        
        if( isTrue( vLeitzahl ) && isTrue( vBlende ) ) {
            Entfernung.value = Str_to_Num(Math.round((10 * vLeitzahl * Math.sqrt(Iso.value / 100)) / vBlende) / 10);
            return;
        }
        
        if( isTrue( vEntfernung ) && isTrue( vBlende ) ) {
            Leitzahl.value = Math.round((vBlende * vEntfernung) / Math.sqrt(Iso.value / 100));
            return;
        }
        alert( "Es sind mindestens zwei Werte nötig." );
        return;
    } 
}

/* Leitzahlsummenrechner
 *
 * Copyright (c) 2009 plainpix.com
 * 3.03.2009 gk
 *
 */
function lzCalculation(){
    with (document.blitzsumme){ 
        var vGesLZ = 0;
        blitzeintraege.value = str_replace(" ", "", blitzeintraege.value);
        if (checkLZeingabe(blitzeintraege.value)){
            var avBlitz = blitzeintraege.value.split(",");
            for (var vBlitz in avBlitz){
                vGesLZ = vGesLZ + eval(avBlitz[vBlitz] * avBlitz[vBlitz]);
            }
            lzGesamt.value = Math.sqrt(vGesLZ);
            lzGesamt.value = Math.round(lzGesamt.value);
        } else {
            alert("Bitte nur Ziffern durch Komma getrennt eingeben!");
            blitzeintraege.focus();
            blitzeintraege.select()
        }
    }

}

function checkLZeingabe(lzEin) {
  var strZeichen = "0123456789,";
  for (var i = 0; i < lzEin.length; i++){
    if (strZeichen.indexOf(lzEin.charAt(i)) < 0){
      return false;
    }
  }
  return true;
}

function str_replace (search, replace, subject) {
  var result = "";
  var  oldi = 0;
  for (i = subject.indexOf (search)
     ; i > -1
     ; i = subject.indexOf (search, i))
  {
    result += subject.substring (oldi, i);
    result += replace;
    i += search.length;
    oldi = i;
  }
  return result + subject.substring (oldi, subject.length);
}

//  End -->