/* (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;
 }
 return;
}
function disableButton( button )
{
 if ( button )
 {
 button.disabled = true;
 }
 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;
}
/* nur positive Werte in Formularfeld zulassen */
function checkValuePositiveInt( formobject )
{
checkValueInt( formobject );
/* prüfe, ob Int-Wert positiv ist, wenn nein setze auf 0 und gib Fehlermeldung aus */
if(formobject.value < 0)
{
formobject.value = 0;
hinweisfenster("Bitte nur positive Werte eingeben!");
}
}
/* Ein- und Ausblenden von FAQ-Eintraegen */
function faqshow(myelement)
{
if ( document.getElementById(myelement+"_antwort").style.display == "block" )
{
if(document.getElementById) document.getElementById(myelement+"_antwort").style.display = "none";
}
else
{
if(document.getElementById) document.getElementById(myelement+"_antwort").style.display = "block";
}
return false;
}
/* Aktivieren und Deaktivieren eines Buttons */
function buttonchange(obj, button)
{
if(window.enableButton && window.disableButton)
{
if(obj.checked)
{
enableButton(document.getElementById('weiterbutton'));
}
else
{
disableButton(document.getElementById('weiterbutton'));
}
}
return true;
}
/* Ein- und Ausblenden von Rechnungsformular */
function rechnungsformular(obj)
{
if(document.getElementById('rechnungpost'))
{
var newstate = "none";
if(obj.checked)
{
newstate = "block";
}
document.getElementById('rechnungpost').style.display = newstate;
}
return true;
}
/* Einstellungen fuer Schieberegler */
var max_w = 1920;
var w_offset = 1920;
var sactive = 0;
/* Aktiviere Schieberegler */
function aktiviereSchiebereglerAufloesung(obj) {
if(obj)
{
obj.onmousemove = function(Ereignis) { 
var maus_x = 0;
if ( document.all ) {
maus_x = window.event.offsetX;
} else {
if ( !Ereignis ) Ereignis = window.event;
maus_x = Ereignis.layerX;
}
sizerMove(maus_x);
};
obj.onmousedown = function(Ereignis) {
var maus_x = 0;
if ( document.all ) {
maus_x = window.event.offsetX;
} else {
if ( !Ereignis ) Ereignis = window.event;
maus_x = Ereignis.layerX;
}
sizerActive(maus_x);
};
obj.onmouseup = function(Ereignis) {
sizerInactive();
};
calculate_format();
}
}
function calculate_format( src_type ) {
if ( !src_type ) src_type = "width";
/* nur weitermachen wenn die 3 grundlegenden Elemente vorhanden sind */
if(document.getElementById("format_size_width") && document.getElementById("format_size_height") && document.getElementById("format_sizerpos"))
{
/* Werte zuruecksetzen */
var format_indiv = 0;
var width = 0;
var height= 0;
/* Werte aus Formularfeldern auslesen */
width = parseInt( document.getElementById("format_size_width").value );
height = parseInt( document.getElementById("format_size_height").value );
/* Mindest- und Maximalwerte beruecksichtigen */
if ( width > 1920 ) width = 1920;
if ( width < 265 ) width = 265;
if ( height > 2880 ) height = 2880;
if ( height < 1 ) height = 1;
/* Anpassung an die Hoehe */
if ( src_type == "height" ) {
width = parseInt( height / 0.707563025 + 0.5 );
if ( width > 1920 ) {
width = 1920;
height = parseInt( width * 0.707563025 + 0.5 );
} else if ( width < 265 ) {
width = 265;
height = parseInt( width * 0.707563025 + 0.5 );
}
} else {
/* Anpassung an die Breite */
height = parseInt( width * 0.707563025 + 0.5 );
if ( height > 2880 ) {
height = 2880;
width = parseInt( height / 0.707563025 + 0.5 );
}
}
/* Hoehe ergaenzen */
height += 35;
/* Ergebnisse schreiben */
document.getElementById("format_size_width").disabled = false;
document.getElementById("format_size_height").disabled = false;
document.getElementById("format_size_width").value = width;
document.getElementById("format_size_height").value = height;
/* berechnen wo der Schieberegler stehen soll und diesen einstellen */
var maus_x = parseInt( (width-w_offset) / (max_w-w_offset) * 148 );
if(!maus_x){maus_x = "0";}
document.getElementById("format_sizerpos").style.backgroundPosition = maus_x+"px 0px";
}
}
function sizerMove( maus_x ) {
if ( sactive == 1 ) {
if ( maus_x > 5 ) maus_x -= 6;
var width = parseInt( (max_w-w_offset) * ( maus_x/148.0 ) ) + w_offset;
//alert("(" + max_w + "-" + w_offset + ") * ( " + maus_x + "/" + 148.0 + " ) ) + " + w_offset + " = " + width);
document.getElementById("format_size_width").value = width;
calculate_format();
}
}
function sizerActive (maus_x) { sactive = 1;sizerMove(maus_x); }
function sizerInactive () { sactive = 0; }
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";
}
