var browser = ""; var browserie = ""; if (navigator.appName.indexOf("Opera") != -1) { browser = "opera"; } else if (navigator.appName.indexOf("Explorer") != -1) { if(window.XMLHttpRequest){browserie = "7";}else{browserie = "6";} browser = "ie"; } else if (navigator.appName.indexOf("Netscape") != -1) { browser = "netscape"; } else { browser = "anderer"; } /* (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, onlytag ) { if ( formobject && formobject.value && formobject.value.length > 0 ) { var text = formobject.value; if ( text.length == 8 && text.indexOf( "." ) < 0 ) { text = text.substr( 0, 2 ) + "." + text.substr( 2, 2 ) + "." + text.substr( 4, 4 ); } 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; } if ( onlytag > 0 ) { tag = onlytag; } // 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))) { var tag2 = String(tag); var monat2 = String(monat); if ( tag2.length < 2 ) tag2 = "0" + tag2; if ( monat2.length < 2 ) monat2 = "0" + monat2; return tag2 + "." + monat2 + "." + jahr; } } } } return "TT.MM.JJJJ"; } // wenn nichts übergeben wurde, wird auch nichts zurückgegeben return ""; } 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, 0 ); } } // setzt das Datum ggf. auf den 1. des Monats function checkValueDate1( formobject ) { if ( formobject ) { formobject.value = getValueDate( formobject, 1 ); } } 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 Formular-Buttons sollen nach Klick sofort disabled werden // automatisches enablen 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 enableButton( button ) { if ( button ) { button.disabled = false; button.style.backgroundImage = 'none'; button.style.backgroundColor = '#d4d0c8'; button.style.color = '#000000'; } return; } function disableButton( button ) { if ( button ) { button.disabled = true; button.style.backgroundImage = 'none'; button.style.backgroundColor = '#dddddd'; button.style.color = '#999999'; } return; } function setCheckedValue(objid, value) { // Liste aller input-Felder ermitteln list = document.getElementById(objid).getElementsByTagName("input"); for(x = 0; x < list.length; x++) { if( list[x].type == "checkbox" ) { list[x].checked = value; } } } function countCheckedValues( objid ) { var anzahl = 0; // Liste aller input-Felder ermitteln list = document.getElementById(objid).getElementsByTagName("input"); for(x = 0; x < list.length; x++) { if( list[x].type == "checkbox" ) { if ( list[x].checked == true ) { anzahl = anzahl + 1; } } } return anzahl; } function disableField( obj ) { if ( obj ) { obj.disabled = true; obj.style.backgroundColor = '#dddddd'; obj.style.color = '#999999'; return true; } return false; } function enableField( obj ) { if ( obj ) { obj.disabled = false; obj.style.backgroundColor = '#ffffff'; obj.style.color = '#000000'; return true; } return false; } function checkValuePositiveInt( formobject ) { checkValueInt( formobject ); if(formobject.value < 0) { formobject.value = 0; hinweisfenster("Bitte nur positive Werte eingeben!"); } } var sajax_debug_mode = false; var sajax_request_type = "GET"; var sajax_target_id = ""; var sajax_failure_redirect = ""; function sajax_debug(text) { if (sajax_debug_mode) alert(text); } function sajax_init_object() { sajax_debug("sajax_init_object() called..") var A; var msxmlhttp = new Array('Msxml2.XMLHTTP.5.0','Msxml2.XMLHTTP.4.0','Msxml2.XMLHTTP.3.0','Msxml2.XMLHTTP','Microsoft.XMLHTTP'); for (var i = 0; i < msxmlhttp.length; i++) { try { A = new ActiveXObject(msxmlhttp[i]); } catch (e) { A = null; } } if(!A && typeof XMLHttpRequest != "undefined") A = new XMLHttpRequest(); if (!A) sajax_debug("Could not create connection object."); return A; } var sajax_requests = new Array(); function sajax_cancel() { for (var i = 0; i < sajax_requests.length; i++) sajax_requests[i].abort(); } function sajax_do_call(func_name, args) { var i, x, n; var uri; var post_data; var target_id; var returns; sajax_debug("in sajax_do_call().." + sajax_request_type + "/" + sajax_target_id); target_id = sajax_target_id; if (typeof(sajax_request_type) == "undefined" || sajax_request_type == "") sajax_request_type = "GET"; uri = "/cgi-bin/vm/vio.matrix"; if (uri.indexOf("?") == -1) uri += "?rs=" + escape(func_name); else uri += "&rs=" + escape(func_name); uri += "&rst=" + escape(sajax_target_id); uri += "&rsrnd=" + new Date().getTime(); uri += "&kd=456eaa4aee05274"; uri += "&or=1"; uri += "&typ=SAJAX%23sajax_response"; for (i = 0; i < args.length-1; i++) uri += "&rsarg"+i+"=" + escape(args[i]); post_data = null; x = sajax_init_object(); if (x == null) { if (sajax_failure_redirect != "") { location.href = sajax_failure_redirect; return false; } else { sajax_debug("NULL sajax object for user agent:\n" + navigator.userAgent); return false; } } else { x.open(sajax_request_type, uri, true); sajax_requests[sajax_requests.length] = x; x.onreadystatechange = function() { if (x.readyState != 4) return; sajax_debug("received " + x.responseText); var status; var data; var data_pic; var txt = x.responseText.replace(/^\s*|\s*$/g,""); status = txt.charAt(0); data = txt.substring(2); var daten = data; daten = daten.split("|"); if(daten.length>1) { target_id = daten[0].replace(/\"/g, ""); data = daten[1]; data_pic = daten[2]; } if (status == "") { } else if (status == "-") alert("Error: " + data); else { if(data_pic && data_pic != "\"") { data_pic=data_pic.replace(/\"/,""); data2 = "" + data + "