//-------------------------- //...JS File by DLR RNH 2008 //...UTF-8 Format //-------------------------- function myPrepSite(){ if (myCheckForm(document.frmInput) == false){ return; } if (document.frmInput.sid.selectedIndex == 0 || document.frmInput.kid.selectedIndex == 0){ return; } document.frmInput.submit(); } function myCheckForm(frm) { var msg1 = "HINWEIS - Bisherige Wassergaben:\n\nIhre Zahlenangabe in l/Baum oder l/qm entspricht nicht dem zulässigen Format 'xxx.x' bzw. 'xxx' !\n\nÜberprüfen Sie bitte Ihre Eingabe..."; var msg2 = "HINWEIS - Bisherige Wassergaben:\n\nIhre Eingabe ist nicht zulässig!\n\nZulässiger Wertebreich für Eingaben in l/Baum: 0.1-999.9\nZulässiger Wertebreich für Eingaben in l/qm: 1-999\n\nÜberprüfen Sie bitte Ihre Eingabe..."; var nMin=0.0; var nMax=0.0; var strDirty; var strClean; if (frm.wg.value == "") { //Do nothing return true; } else { strDirty = frm.wg.value; strClean = strDirty.replace(/,/,"."); } if (frm.sw.checked) {nMin=1; nMax=999;} else {nMin=0.1; nMax=999.9;} if (isNaN(strClean) == true) { alert(msg1); frm.wg.value = ""; frm.wg.focus(); return false; } if (parseFloat(strClean) < nMin || parseFloat(strClean) > nMax) { alert(msg2); frm.wg.value = ""; frm.wg.focus(); return false; } else {frm.wg.value = strClean;} return true; } function myResetInput() { var lRows; var i; var j; var obj; var arrFld = new Array("tfKorr","tfInMM","tfInL"); lRows = Number(document.getElementsByName("lRows")[0].value); if (lRows == 0) { return;} for (i=1; i<= lRows; i++) { for (j=0; j<=2;j++) { obj = document.getElementsByName(arrFld[j]+i)[0]; if (obj.value != "") { obj.value = ""; } } } myUpdateView(false); } function myRoundC(zahl) { var dRet= 0.0; if (isNaN(zahl) == true) { return dRet; } dRet = Math.floor(zahl * 10 + 0.5) / 10; return dRet; } function myCheckSheet() { var lRows; var i; var j; var obj; var strDirty; var strClean; var arrFld = new Array("tfKorr","tfInMM","tfInL"); var arrMsg1 = new Array("","",""); var arrMsg2 = new Array("","",""); var arrMin = new Array(-50,1,0.1); var arrMax = new Array(50,999,999.9); arrMsg1[0] = "HINWEIS - Korrektur Niederschlag:\n\nGeben Sie eine Fliesskommazahl im Format xx.x ein (Vorzeichen optional)!"; arrMsg1[1] = "HINWEIS - Korrektur Kronenberegnung:\n\nIhre Zahlenangabe in l/qm entspricht nicht dem zulässigen Format 'xxx' !\n\nÜberprüfen Sie bitte Ihre Eingabe..."; arrMsg1[2] = "HINWEIS - Korrektur Tropfberegnung:\n\nIhre Zahlenangabe in l/Baum entspricht nicht dem zulässigen Format 'xxx.x' oder 'xxx'!\\n\\nÜberprüfen Sie bitte Ihre Eingabe..."; arrMsg2[0] = "HINWEIS - Korrektur Niederschlag:\n\nGeben Sie eine Fliesskommazahl im Bereich -50.0 bis 50.0 ein !"; arrMsg2[1] = "HINWEIS - Korrektur Kronenberegnung:\n\nIhre Eingabe ist nicht zulässig!\n\nZulässiger Wertebreich für Eingaben in l/qm: 1-999\n\nÜberprüfen Sie bitte Ihre Eingabe..."; arrMsg2[2] = "HINWEIS - Korrektur Tropfberegnung:\n\nIhre Eingabe ist nicht zulässig!\n\nZulässiger Wertebreich für Eingaben in l/Baum: 0.1-999.9\n\nÜberprüfen Sie bitte Ihre Eingabe..."; lRows = Number(document.getElementsByName("lRows")[0].value); if (lRows == 0) { return false;} for (i=1; i<= lRows; i++) { for (j=0; j<=2;j++) { obj = document.getElementsByName(arrFld[j]+i)[0]; if (obj.value != "") { strDirty = obj.value; strClean = strDirty.replace(/,/,"."); if (isNaN(strClean) == true) { alert(arrMsg1[j]); obj.value = ""; obj.focus(); return false; } if (parseFloat(strClean) < arrMin[j] || parseFloat(strClean) > arrMax[j]) { alert(arrMsg2[j]); obj.value = ""; obj.focus(); return false; } else {obj.value = strClean;} } } } return true; } function myUpdateView(state) { //...Beobachtungszeitraum var lRows; //...Bilanz- und Niederschlagssumme bis zum Tag X var dBilanzX = 0.0; var dNSumX = 0.0; //...Tageswerte var dPENXK = 0.0; var dNNX= 0.0; var dtfKorr=0.0; var dtfInMM=0.0; var dtfInL=0.0; ; //...Empfehlung am Tag X var dMM2L; var iLim; var dEmpfMMX=0.0; var dEmpfLX=0.0; //...Hilfsvariablen var strTmp; var i; var j; var objCell; var objView; var objCellB; var objViewB; if (state) { if (myCheckSheet() == false) return; } //Anzahl d. Zeilen lRows = Number(document.getElementsByName("lRows")[0].value); if (lRows == 0) { return;} //alert("Zeilenzahl: " + lRows); //Startbilanz strTmp = document.getElementsByName("dBilanzStart")[0].value; if (strTmp == "") { dBilanzX = 0.0;} else { dBilanzX = parseFloat(strTmp);} //Bish. Niederschlagssumme strTmp = document.getElementsByName("dNNSumStart")[0].value; if (strTmp == "") { dNSumX = 0.0;} else { dNSumX = parseFloat(strTmp);} //Umrechnungsfaktor Fläche zu Baum strTmp = document.getElementsByName("dMM2L")[0].value; if (strTmp == "") { dMM2L = 1;} else { dMM2L = parseFloat(strTmp);} //Defizit-Grenzwert iLim = document.frmInput.lim.selectedIndex; if (iLim == 0) iLim++; //Zeilen aktualisieren for (i=1; i<= lRows; i++) { //Tagesverdunstung und Niederschlag dPENX = parseFloat(document.getElementById("dPENXK" + i).firstChild.nodeValue); dNNX = parseFloat(document.getElementById("dNNX" + i).firstChild.nodeValue); //Korrektur - Niederschlag strTmp = document.getElementsByName("tfKorr"+i)[0].value; if (strTmp != "") {dtfKorr = parseFloat(strTmp);} else {dtfKorr = 0.0;} //Korrektur - Wassergabe in l/qm strTmp = document.getElementsByName("tfInMM"+i)[0].value; if (strTmp != "") {dtfInMM = parseFloat(strTmp);} else {dtfInMM = 0.0;} //Korrektur - Wassergabe in l/Baum strTmp = document.getElementsByName("tfInL"+i)[0].value; if (strTmp != "") { //Umrechnen in l/qm dtfInL = myRoundC(parseFloat(strTmp)/dMM2L); } else {dtfInL = 0.0;} //Niederschlagsbilanz kumuliert für Anzeigezwecke dNSumX = dNSumX + dNNX + dtfKorr; document.getElementById("dNNSumX" + i).firstChild.nodeValue = dNSumX.toFixed(1); //Verdunstungsbilanz pro Tag und Entwicklungsstadium //u. Gesamtbilanz objCell = document.getElementById("dEmpfC"+ i); objView = document.getElementById("dEmpfMMX" + i); objCellB = document.getElementById("dEmpfCB"+ i); objViewB = document.getElementById("dEmpfLX" + i); //Bilanz für Stadium aktualisieren dBilanzX = dBilanzX + dPENX - dNNX - dtfKorr - dtfInMM - dtfInL; //alert("Bilanz: " + dBilanzX + " Verd: " + dPENX + " Ns: " + dNNX + " NSKorr: " + dtfKorr + " mm-Korr: " + dtfInMM + " l/Baum: " + dtfInL); if ( dBilanzX < 0) { dEmpfMMX = 0.0; dEmpfLX = 0.0; objCell.bgColor = "#CCFFCC"; objCellB.bgColor = "#CCFFCC"; } else { dEmpfMMX = myRoundC(dBilanzX); dEmpfLX = myRoundC(dBilanzX * dMM2L); if (dBilanzX > iLim) { objCell.bgColor = "#FF8080"; objCellB.bgColor = "#FF8080"; } else { objCell.bgColor = "#CCFFCC"; objCellB.bgColor = "#CCFFCC"; } } objView.firstChild.nodeValue = dEmpfMMX.toFixed(1); objViewB.firstChild.nodeValue = dEmpfLX.toFixed(1); } }