/* (C) VIOSYS AG */ /* Umwandeln eines Preis-Strings in einen Centbetrag. */ /* Tausenderpunkte und Dezimaltrennzeichen (Komma) werden entfernt. */ function floatkonvert( wert, vmmwst ) { s = new String( wert ); // wenn vmmwst gesetzt, dann den Punkt durch Komma ersetzen if ( vmmwst == true ) { while ( s.indexOf( '.' ) >= 0 ) { s = s.substring( 0, s.indexOf( '.' ) ) + "," + s.substring( s.indexOf( '.' )+1, s.length ); } } else { // zuerst alle Tausenderpunkte löschen i = s.indexOf( '.' ); while ( i >= 0 ) { s = s.substring( 0, i ) + s.substring( i+1, s.length ); i = s.indexOf( '.' ); } } // Komma entfernen i = s.indexOf( ',' ); if ( i >= 0 ) { var n = s.length - i - 1; if ( n >= 2 ) { s = s.substring( 0, i ) + s.substring( i+1, i+3 ); } else { s = s.substring( 0, i ) + s.substring( i+1, s.length ); for ( j = 0; j < 2 - n; j++ ) s = s + "0"; } } else { s = s + "00"; } // alle führenden Nullen entfernen while ( s.length > 1 && s.charAt( 0 ) == "0" ) { s = s.substring( 1, s.length ); } // Sind nur Ziffern enthalten? if ( isFinite(s) ) { return s;// s ist innerhalb des verarbeitaren Zahlenbereichs } else { return "0";// sonst: Zahl ist zu groß oder Wert enthält Buchstaben } } // Ausgabe eines Preises (Floatwertes) in Cent mit 2 Nachkommastellen und Tausenderpunkten. function floatoutput( wert ) { var s = new String( wert ); // negativer Wert ? var minusz = 0; if ( s.substring( 0, 1 ) == "-" ) { minusz = 1; s = s.substring( 1, s.length ); } // ist ein Punkt enthalten (Floatwert mit Nachkommastellen) var i = s.indexOf( '.' ); if ( i >= 0 ) { // Rundung: erste Nachkommastelle merken var r = parseInt( s.substring( i+1, i+2 ), 10 ); // alle Nachkommastellen entfernen s = s.substring( 0, i ); // Rundung erforderlich ? (0..4 -> abrunden, 5..9 -> aufrunden) if ( r >= 5 ) s = String( parseInt( s, 10 ) + 1 ); } // falls der Betrag < 100 Cent ist, werden führende Nullen eingefügt if ( s.length == 0 ) s = "000"; if ( s.length == 1 ) s = "00" + s; if ( s.length == 2 ) s = "0" + s; // Dezimaltrennung = Komma s = s.substring( 0, s.length - 2 ) + "," + s.substring( s.length - 2, s.length ); // Tausenderpunkte einfügen // --> Position des Kommas suchen var j = s.indexOf( ',' ); while ( j >= 4 ) { j = j - 3; s = s.substring( 0, j ) + "." + s.substring( j, s.length ); } if ( minusz == 1 ) { s = "-" + s; } return s; } // Mehrwertsteuerbetrag aus Nettowert berechnen function calcMwSt( netto, mwst, vmmwst, output ) { var w = parseInt( floatkonvert( netto, false ), 10 ); var m = parseInt( floatkonvert( mwst, vmmwst ), 10 ); w = w * m / 10000; if ( output == "kdvalue" ) { return floatoutput( w ); } else { return document.write( floatoutput( w ) ); } } // Mehrwertsteuerbetrag aus Bruttowert berechnen function calcBruttoMwSt( brutto, mwst, vmmwst, output ) { var w = parseInt( floatkonvert( brutto, false ), 10 ); var m = parseInt( floatkonvert( mwst, vmmwst ), 10 ); w = w - w / (1+m/10000); if ( output == "kdvalue" ) { return floatoutput( w ); } else { return document.write( floatoutput( w ) ); } } // Bruttobetrag berechnen function calcBrutto( netto, mwst, vmmwst, output ) { var m = parseInt( floatkonvert( mwst, vmmwst ), 10 ) + 10000; var n = parseInt( floatkonvert( netto, false ), 10 ); var b = n * m / 10000; if ( output == "kdvalue" ) { return floatoutput( b ); } else { return document.write( floatoutput( b ) ); } } function getValueInt( formobject ) { if ( formobject && formobject.value.length > 0 ) { var wert = parseInt( formobject.value, 10 ); if ( isNaN( wert ) == false ) return wert; } return 0; } function checkValueInt( formobject ) { if ( formobject ) { formobject.value = getValueInt( formobject ); } } function setValueCurrency( formobject, wert ) { if ( formobject ) { formobject.value = floatoutput( wert ); } } function checkValueCurrency( formobject ) { if ( formobject ) { formobject.value = floatoutput( floatkonvert( formobject.value, false ) ); } } function getValueCurrency( formobject ) { if ( formobject ) { return floatkonvert( formobject.value, false ); } return 0; } function checkValueIntFract1( formobject ) { if ( formobject ) { var wert = parseInt( floatkonvert( formobject.value, false ), 10 ); wert = parseInt( (wert+5)/10, 10 ); s = new String( wert ); // falls der Wert < 10 Cent ist, werden führende Nullen eingefügt while ( s.length < 2 ) s = "0" + s; // Dezimaltrennung = Komma s = s.substring( 0, s.length - 1 ) + "," + s.substring( s.length - 1, s.length ); formobject.value = s; } } function getValueDate( formobject ) { if ( formobject && formobject.value && formobject.value.length > 0 ) { var text = formobject.value; var p1 = text.indexOf( "." ); if ( p1 > 0 ) { var text_tag = text.substr( 0, p1 ); var text_rest = text.substr( p1+1 ); var p2 = text_rest.indexOf( "." ); if ( p2 > 0 )// Es wurden Tag, Monat und Jahr { var text_monat = text_rest.substr( 0, p2 ); var text_jahr = text_rest.substr( p2+1 ); } else// Es wurden nur Monat und Jahr eingegeben { var text_monat = text_tag; var text_jahr = text_rest; } // Wandlung der Werte in Zahlen var tag = parseInt( text_tag, 10 );// Basis 10 muss angegeben werden, damit bei führender 0 keine Oktalzahlen vermutet werden (-> Problem bei "08" und "09") var monat = parseInt( text_monat, 10 );// Basis 10 muss angegeben werden, damit bei führender 0 keine Oktalzahlen vermutet werden (-> Problem bei "08" und "09") var jahr = parseInt( text_jahr, 10 );// Basis 10 muss angegeben werden, damit bei führender 0 keine Oktalzahlen vermutet werden (-> Problem bei "08" und "09") // Prüfung der Gültigkeit if ( isNaN(tag) == false && tag >= 1 && tag <= 31 && isNaN(monat) == false && monat >= 1 && monat <= 12 && isNaN(jahr) == false && jahr > 0 ) { // wurde das Jahr 4-stellig eingegeben? if ( jahr < 100 ) { if ( jahr < 10 ) jahr += 2000; else jahr += 1900; } // manche Monate haben 30, andere 31 Tage if ( tag < 31 || monat == 1 || monat == 3 || monat == 5 || monat == 7 || monat == 8 || monat == 10 || monat == 12 ) { // Prüfung auf Schaltjahr if ( monat != 2 || tag <= 28 || (tag == 29 && jahr%4 == 0 && (jahr%400 == 0 || jahr%100 != 0))) { return tag + "." + monat + "." + jahr; } } } } } return "TT.MM.JJJJ"; } function getValueTime( formobject ) { if ( formobject && formobject.value && formobject.value.length > 0 ) { var text = formobject.value; var p1 = text.indexOf( ":" ); if ( p1 > 0 ) { var text_stunde = text.substr( 0, p1 ); var text_minute = text.substr( p1+1 ); // Wandlung der Werte in Zahlen var stunde = parseInt( text_stunde, 10 );// Basis 10 muss angegeben werden, damit bei führender 0 keine Oktalzahlen vermutet werden (-> Problem bei "08" und "09") var minute = parseInt( text_minute, 10 );// Basis 10 muss angegeben werden, damit bei führender 0 keine Oktalzahlen vermutet werden (-> Problem bei "08" und "09") } else { // Wandlung der Werte in Zahlen var stunde = parseInt( text, 10 );// Basis 10 muss angegeben werden, damit bei führender 0 keine Oktalzahlen vermutet werden (-> Problem bei "08" und "09") var minute = 0;// Basis 10 muss angegeben werden, damit bei führender 0 keine Oktalzahlen vermutet werden (-> Problem bei "08" und "09") } // Prüfung der Gültigkeit if ( isNaN(stunde) == false && stunde >= 0 && stunde <= 23 && isNaN(minute) == false && minute >= 0 && minute <= 59 ) { var minute_text = ""; if ( minute < 10 ) { minute_text = "0" + minute; } else { minute_text = minute; } return stunde + ":" + minute_text; } } return "H:MM"; } function getValueTimeInt( text ) { if ( text.length > 0 ) { var p1 = text.indexOf( ":" ); if ( p1 > 0 ) { var text_stunde = text.substr( 0, p1 ); var text_minute = text.substr( p1+1 ); // Wandlung der Werte in Zahlen var stunde = parseInt( text_stunde, 10 );// Basis 10 muss angegeben werden, damit bei führender 0 keine Oktalzahlen vermutet werden (-> Problem bei "08" und "09") var minute = parseInt( text_minute, 10 );// Basis 10 muss angegeben werden, damit bei führender 0 keine Oktalzahlen vermutet werden (-> Problem bei "08" und "09") } else { // Wandlung der Werte in Zahlen var stunde = parseInt( text, 10 );// Basis 10 muss angegeben werden, damit bei führender 0 keine Oktalzahlen vermutet werden (-> Problem bei "08" und "09") var minute = 0;// Basis 10 muss angegeben werden, damit bei führender 0 keine Oktalzahlen vermutet werden (-> Problem bei "08" und "09") } // Prüfung der Gültigkeit if ( isNaN(stunde) == false && stunde >= 0 && isNaN(minute) == false && minute >= 0 && minute <= 59 ) { return stunde * 60 + minute; } } return 0; } function getValueDateSQL( text ) { if ( text.length > 0 ) { var p1 = text.indexOf( "." ); if ( p1 > 0 ) { var text_tag = text.substr( 0, p1 ); var text_rest = text.substr( p1+1 ); var p2 = text_rest.indexOf( "." ); if ( p2 > 0 )// Es wurden Tag, Monat und Jahr { var text_monat = text_rest.substr( 0, p2 ); var text_jahr = text_rest.substr( p2+1 ); } else// Es wurden nur Monat und Jahr eingegeben { var text_monat = text_tag; var text_jahr = text_rest; } // Wandlung der Werte in Zahlen var tag = parseInt( text_tag, 10 );// Basis 10 muss angegeben werden, damit bei führender 0 keine Oktalzahlen vermutet werden (-> Problem bei "08" und "09") var monat = parseInt( text_monat, 10 );// Basis 10 muss angegeben werden, damit bei führender 0 keine Oktalzahlen vermutet werden (-> Problem bei "08" und "09") var jahr = parseInt( text_jahr, 10 );// Basis 10 muss angegeben werden, damit bei führender 0 keine Oktalzahlen vermutet werden (-> Problem bei "08" und "09") // Prüfung der Gültigkeit if ( isNaN(tag) == false && tag >= 1 && tag <= 31 && isNaN(monat) == false && monat >= 1 && monat <= 12 && isNaN(jahr) == false && jahr > 0 ) { // wurde das Jahr 4-stellig eingegeben? if ( jahr < 100 ) { if ( jahr < 10 ) jahr += 2000; else jahr += 1900; } // manche Monate haben 30, andere 31 Tage if ( tag < 31 || monat == 1 || monat == 3 || monat == 5 || monat == 7 || monat == 8 || monat == 10 || monat == 12 ) { // Prüfung auf Schaltjahr if ( monat != 2 || tag <= 28 || (tag == 29 && jahr%4 == 0 && (jahr%400 == 0 || jahr%100 != 0))) { return jahr + "-" + monat + "-" + tag; } } } } } return ""; } function getValueDateInt( text ) { if ( text.length > 0 ) { var p1 = text.indexOf( "." ); if ( p1 > 0 ) { var text_tag = text.substr( 0, p1 ); var text_rest = text.substr( p1+1 ); var p2 = text_rest.indexOf( "." ); if ( p2 > 0 )// Es wurden Tag, Monat und Jahr { var text_monat = text_rest.substr( 0, p2 ); var text_jahr = text_rest.substr( p2+1 ); } else// Es wurden nur Monat und Jahr eingegeben { var text_monat = text_tag; var text_jahr = text_rest; } // Wandlung der Werte in Zahlen var tag = parseInt( text_tag, 10 );// Basis 10 muss angegeben werden, damit bei führender 0 keine Oktalzahlen vermutet werden (-> Problem bei "08" und "09") var monat = parseInt( text_monat, 10 );// Basis 10 muss angegeben werden, damit bei führender 0 keine Oktalzahlen vermutet werden (-> Problem bei "08" und "09") var jahr = parseInt( text_jahr, 10 );// Basis 10 muss angegeben werden, damit bei führender 0 keine Oktalzahlen vermutet werden (-> Problem bei "08" und "09") // Prüfung der Gültigkeit if ( isNaN(tag) == false && tag >= 1 && tag <= 31 && isNaN(monat) == false && monat >= 1 && monat <= 12 && isNaN(jahr) == false && jahr > 0 ) { // wurde das Jahr 4-stellig eingegeben? if ( jahr < 100 ) { if ( jahr < 10 ) jahr += 2000; else jahr += 1900; } // manche Monate haben 30, andere 31 Tage if ( tag < 31 || monat == 1 || monat == 3 || monat == 5 || monat == 7 || monat == 8 || monat == 10 || monat == 12 ) { // Prüfung auf Schaltjahr if ( monat != 2 || tag <= 28 || (tag == 29 && jahr%4 == 0 && (jahr%400 == 0 || jahr%100 != 0))) { return (jahr * 12 + monat) * 31 + tag; } } } } } return 0; } function checkValueDate( formobject ) { if ( formobject ) { formobject.value = getValueDate( formobject ); } } function checkValueTime( formobject ) { if ( formobject ) { formobject.value = getValueTime( formobject ); } } function getRadioValue( formobject ) { if ( formobject ) { for ( var i=0; i < formobject.length; i++ ) { if ( formobject[i].checked == true ) { return formobject[i].value; } } } return ''; } function checkEmail( formobject, errortext ) { if ( formobject ) { var text = formobject.value; var laenge = text.length; if ( laenge > 0 ) { var error = 0; var punkt = text.lastIndexOf( "." ); var at = text.lastIndexOf( "@" ); // Punkt und @-Zeichen müssen vorhanden sein if ( punkt < 0 ) error = 1; if ( at < 0 ) error = 1; // der letzte Punkt muss nach dem @-Zeichen stehen if ( punkt >= 0 && at >= 0 && punkt < at ) error = 1; // nach dem letzten Punkt müssen noch mind. 2 Zeichen folgen if ( laenge - punkt - 1 < 2 ) error = 1; // vor dem @-Zeichen muessen mind. 2 Zeichen stehen if ( at < 2 ) error = 1; // zwischen Punkt und @-Zeichen muessen mind. 3 Zeichen stehen if ( punkt - at -1 < 3 ) error = 1; // es darf kein Leerzeichen enthalten sein for ( var i=0; i < laenge; i++ ) { if ( text.charAt(i) == ' ' ) error = 1; } if ( error == 1 ) { if ( errortext && errortext.length > 0 ) { alert( errortext ); } return false; } } } return true; } // FJ, 28.03.2006 // die Buttons sollen nach Klick sofort disabled werden var button = ""; var button_bgcolor = ""; var button_color = ""; var button_bgimage = ""; var lasttime = 0; function ButtonEnable() { var jetzt = new Date(); if ( jetzt.getTime() - lasttime < 1500 ) { lasttime = jetzt.getTime(); setTimeout( "ButtonEnable();", 1000 ); } else { if ( button ) { button.disabled = false; button.style.backgroundColor = button_bgcolor; button.style.color = button_color; button.style.backgroundImage = button_bgimage; } } } function ButtonDisable( object ) { button = object; if ( button ) { button.disabled = true; button_bgimage = object.style.backgroundImage; button_bgcolor = object.style.backgroundColor; button_color = object.style.color; button.style.backgroundImage = 'none'; button.style.backgroundColor = '#dddddd'; button.style.color = '#aaaaaa'; var jetzt = new Date(); lasttime = jetzt.getTime(); setTimeout( "ButtonEnable();", 1000 ); } } function showBox( nodeid ) { if ( document.getElementById(nodeid) ) { document.getElementById(nodeid).style.display = 'block'; return true; } return false; } function hideBox( nodeid ) { if ( document.getElementById(nodeid) ) { document.getElementById(nodeid).style.display = 'none'; return true; } return false; } function show( obj ) { if ( document.getElementById( obj ) ) { document.getElementById(obj).style.display = 'block'; } } function hide( obj ) { if ( document.getElementById( obj ) ) { document.getElementById(obj).style.display = 'none'; } }