// Allgemeine Funktionen thisDb="/webvdbw/BVDB.nsf/"; function ausgewaehlt(Feld) { // gibt den ausgewählten Text eines Select- Feldes zurück if (Feld) { var sindex=Feld.selectedIndex; if (sindex>=0) return (Feld.options[sindex].text); } return ""; } // *************************** function ausgewaehlterWert(Feld) { // gibt den ausgewählten Wert eines Select- Feldes zurück var sindex=Feld.selectedIndex; if (sindex==-1) return ""; else return (Feld.options[sindex].value); } // *************************** function check(Buttonliste) { // gibt den ausgewählten Wert eines Radio-Buttons zurück if (Buttonliste.length) { for (i=0;i50) alert("Aus Sicherheitsgründen muss das Passwort aus mindestens 5 Zeichen bestehen und darf nicht länger als 50 Zeichen sein."); else { if (pw.substr(0,1)=="(") alert ("Das Passwort darf nicht mit dem Zeichen '(' beginnen."); else if(pw.toLowerCase() == kennung.toLowerCase()) alert ("Aus Sicherheitsgründen darf das Passwort nicht mit der Kennung identisch sein."); else { if (nichtLeer(pw2,"Bitte wiederholen Sie Ihr neues Passwort.")) { if (pw ==Trim(pw2.value)) return true; else alert("Ihre Passwörter stimmen nicht überein."); } } } } pw1.value=""; pw2.value=""; pw1.focus(); return false; } // ************************************************ function gueltigeKennung(kennung) { if (! nichtLeer(kennung,"Geben Sie bitte eine Kennung ein.")) return false; var kennwort=Trim(kennung.value); if (kennwort.length<5 || kennwort.length>50) { alert("Aus Sicherheitsgründen muss die Kennung aus mindestens 5 Zeichen bestehen und darf nicht länger als 50 Zeichen sein."); kennung.focus(); return false; } var treffer=kennwort.match(/[0-9a-zA-Z\ \-\_\ä\Ä\ö\Ö\ü\Ü\ß]+/); //alle gültige Zeichen if (null != treffer) { // irgendein Treffer if (treffer[0].length == kennwort.length ) return true; // alle o.k. } alert ("Die Kennung enthält ungültige Zeichen. Zulässig sind Groß- und Kleinbuchstaben, Ziffern, Bindestrich, Unterstrich und Leerzeichen innerhalb der Kennung (am Anfang und/oder am Ende werden Leerzeichen ignoriert)"); kennung.focus(); return false; } // ************************************************* function nurZiffern(Feld, exakt, Fehlermeldung) { var v = Feld.value; // The string value to be searched if ((exakt>0 && v.length==exakt) || exakt==0) { // genau [exakt] Ziffern oder egal var m = v.match(/[0-9]+/); // One or more digit characters if (null != m) { // if we matched something // if we match the entire string, the lengths will match if (m[0].length == v.length ) return true; // Succeeds validation } } alert (Fehlermeldung); Feld.focus(); return false; // Fails validation } // ********************************************* function LTrim(str) { // Trim leading blanks var i=0; // start at the beginning var found = false; // not yet found a nonblank while(i0 && !found) { if (" " == str.charAt(i)) { i--;} else { found = true; }; // found a nonblank } if (found) { // found a nonblank return(str.substring(0,i+1)); } else { // completely blank string return(""); } } // ***************************************** function Trim(str) { // Trim leading and trailing blanks return(RTrim(LTrim(str))); } // *************************************** function falscheEmailadresse(emailadr) { if (! nichtLeer(emailadr,"Geben Sie bitte eine E-Mail-Adresse ein.")) return true; var email=Trim(emailadr.value); var index=email.indexOf("@"); if (index<0 || email.indexOf(".",index)<0 || email.match(/ /)) { alert ("Bitte geben Sie die E-Mail-Adresse im korrekten Format ein!"); emailadr.focus(); return true; } return false; } // ****************************************** function falschePlz(PLZ, Pflichtfeld) { // prüft deutsche Plz // wenn Pflichtfeld, muss ein Wert angegeben sein if ("Deutschland" != ausgewaehlt(document.forms[0].Land)) return false; // bei Ausland keine Prüfung if (false==Pflichtfeld & ""==PLZ.value) return false; // Plz nicht Pflicht if (nurZiffern(PLZ, 5, "Geben Sie bitte eine gültige Postleitzahl ein")) return false; // genau 5 Ziffern return true; } // **************************************** function nichtLeer(Feld,Fehlertext) { // prüft, ob das Eingabefeld leer ist var Feldinhalt=Trim(Feld.value); if ("" == Feldinhalt) { alert(Fehlertext); Feld.focus(); return false; } return true; } // ************************************* function gueltigeAdresse() { var sAnrede=document.forms[0].Anrede; if ("0" == ausgewaehlterWert(sAnrede)) {alert("Bitte wählen Sie Ihre Anrede"); sAnrede.focus(); return false; } return (nichtLeer(document.forms[0].Nachname,"Geben Sie bitte Ihren Nachnamen ein") && nichtLeer(document.forms[0].Vorname,"Geben Sie bitte Ihren Vornamen ein") && nichtLeer(document.forms[0].Strasse,"Geben Sie bitte Ihre Straße ein") && nichtLeer(document.forms[0].Ort,"Geben Sie bitte Ihren Wohnort ein")) ; } // ******************************************* function gueltigeRgAdresse(form) { var sAnrede=document.forms[0].Anrede_rg; if ("0" == ausgewaehlterWert(sAnrede)) {alert("Bitte wählen Sie Ihre Rechnungsanrede"); sAnrede.focus(); return false; } var sLand=ausgewaehlt(form.Land_rg); var emailOK=true; if (form.EmailAdresse_rg) emailOK = !falscheEmailadresse(form.EmailAdresse_rg); return (nichtLeer(form.Nachname_rg,"Geben Sie bitte den Nachnamen der Rechnungsanschrift ein") && nichtLeer(form.Strasse_rg,"Geben Sie bitte die Straße der Rechnungsanschrift ein") && ("Deutschland" == sLand && nurZiffern(form.PLZ_rg, 5, "Geben Sie bitte eine gültige Postleitzahl der Rechnungsanschrift ein")) && nichtLeer(form.Ort_rg,"Geben Sie bitte den Wohnort der Rechnungsanschrift ein") && emailOK); } // ******************************************* function gueltigeBankdaten(form) { // Bankeinzug return (nichtLeer(form.Kontoinhaber,"Bitte geben Sie den Kontoinhaber ein.") && nichtLeer(form.Bankverbindung,"Bitte geben Sie Ihre Bankverbindung ein.") && nurZiffern(form.BLZ, 8, "Bitte geben Sie Ihre gültige Bankleitzahl ein.") && nichtLeer(form.Kontonummer,"Bitte geben Sie Ihre Kontonummer ein.") && nurZiffern(form.Kontonummer, 0, "Ungültige Kontonummer!")); } // ******************************************* function AdresseHinzufuegen(Adresse) { // für Vorschriften aktuell var promptAdresse=document.forms[0].Adressenliste; var n=promptAdresse.length; if (null == n) n=0; for (i=0;i anzahlNutzer) { alert ("Sie dürfen nicht mehr als "+String(anzahlNutzer)+ " E-Mail-Adressen eingeben!"); return false; } else return true; } // // ***************************************************************************** function AnzahlAuswahl(auswahl) { // prüft die Anzahl der ausgewählten Checkboxes var ausgewaehlt=0; if (null == auswahl) return 0; var n=auswahl.length; if (null==n) {//checkbox hat nur einen Wert if (auswahl.checked) ausgewaehlt=1;} else {for (var i = 0; i=1000000) sZahl=sZahl.substring(0,sZahl.length-6)+"."+sZahl.substring(sZahl.length-6,999); if (zahl>=1000) sZahl=sZahl.substring(0,sZahl.length-3)+"."+sZahl.substring(sZahl.length-3,999); return(sZahl+","+fZahl[1]); } // ************************************************* function showAndHide(idname, flag) { var id=self.document.getElementById(idname); if (id) { if (flag) id.className = "show"; else id.className = "hidden"; } } // ************************************************* function rfdPreis(RfDAuswahl, preisliste, anzahlNutzer) { var preis=0; var gesamtpreis=0; preisliste=preisliste.split(";"); for (var i=0;i 1) preis=preis*(anzahlNutzer+1); gesamtpreis=gesamtpreis+preis; } return gesamtpreis; } // ************************************************* function UngueltigesDatum(datum) { var tempstring=datum.split("."); if (tempstring.length !=3) return true; var tag=tempstring[0]; var monat=tempstring[1]; var jahr=tempstring[2]; if (monat<1 || monat>12) return true; if (tag<1 || tag>tageMax(monat, jahr)) return true; return false; } // ************************************************* function Datumsformat(datum) { var tag="0"+String(datum.getDate()); var monat="0"+String(datum.getMonth()+1); var jahr=String(datum.getFullYear()); tag=tag.substr(tag.length-2,2); monat=monat.substr(monat.length-2,2); return tag+"."+monat+"."+jahr; } // ************************************************* function tageMax(monat, jahr) { // ermittelt den letzten Tag des Monats if (monat==4 || monat==6 || monat==9 || monat==11) return 30; if (monat==2) return 28+(jahr % 4==0) return 31; } // ************************************************* function anteiligerPreis(preis, datum) { var datumS=datum.split("."); var tag=parseInt(datumS[0],10); var monat=parseInt(datumS[1],10); var jahr = parseInt(datumS[2],10); var anzTage=tageMax(monat, jahr)-tag+1; for (var i=monat+1; i<13; i++) anzTage=anzTage+tageMax(i, jahr); var anzTageJahr=337+tageMax(2, jahr); return preis*anzTage/(anzTageJahr); } // ************************************************* function anzahlIp(ipVon, ipBis) { // prüft, ob eine ip eingegeben wurde // falls ipBis eingegeben wurde, muss auch ipVon einen Eintrag haben; die beiden IPs dürfen // sich nur in der letzten Zahlengruppe unterscheiden if ((ipVon.length+ipBis.length) == 0) return 0; if (ipBis.length == 0) return 1; //alles richtig if (ipVon.length == 0) { // Untergrenze fehlt alert ("Geben Sie bitte den Anfangswert des IP-Nummernkreises ein!"); return 99; } var iVon=ipVon.lastIndexOf("."); var iBis=ipBis.lastIndexOf("."); if (iVon<0 | iBis<0) return 1; //Fehler - wird bei späterer Prüfung gemerkt if (ipVon.substr(0, iVon) == ipBis.substr(0, iBis)) { if (Number(ipVon.substr(iVon+1,5)) <= Number(ipBis.substr(iBis+1,5))) return 1; // ok else { //Untergrenze >Obergrenze alert ("Die Obergrenze des IP-Nummernkreises ist kleiner als die Untergrenze!"); return 99; } } else { //unterscheiden sich in den ersten 3 Zifferngruppen alert ("Die Unter- und Obergrenze der IP-Nummernkreise dürfen sich nur in den Nummern nach dem letzten Punkt unterscheiden!"); return 99; } } function checkIp(ipAdresse, ungueltigeIP){ // prüft die formale Richtigkeit einer IP-Adresse var ip=ipAdresse.value; if (ip.length == 0) return true; if (ungueltigeIP) { for (var j=0; j0 && ip[i].length<4) { m=ip[i].match(/[0-9]+/); if (null == m) result=false; else if (m[0].length != ip[i].length) result=false; if (Number(ip[i])>255) result=false; } else result=false; } } if (! result) { alert ("Geben Sie bitte eine korrekte IP-Adresse ein"); ipAdresse.focus(); } return result; } function Gelesen(CBox,Meldung) { if (CBox.checked) return(true); else { alert (Meldung); return(false); } } function gueltigeKarte(form) { if (!nichtLeer(form.Karteninhaber,"Bitte geben Sie den Karteninhaber ein.")) return false; if ("0" == ausgewaehlterWert(form.Kreditkarte)) { alert("Bitte wählen Sie Ihre Kreditkarte."); return false; } if (!isCCValid(form.Kreditkartennummer.value)) { alert ("Bitte geben Sie eine gültige Kreditkartennummer ein."); form.Kreditkartennummer.focus(); return false; } if ("0" == ausgewaehlterWert(form.Ablaufjahr) || "0" == ausgewaehlterWert(form.Ablaufmonat)) { alert("Bitte geben Sie das Ablaufdatum Ihrer Kreditkarte ein."); return false; } return (gueltigesKartendatum(form.Ablaufmonat, form.Ablaufjahr) && nichtLeer(form.KPN,"Bitte geben Sie Ihre Kartenprüfnummer ein.") && nurZiffern(form.KPN, 3, "Bitte geben Sie eine gültige Kartenprüfnummer ein.")) } function gueltigesKartendatum(Ablaufmonat, Ablaufjahr) { // prüft das Ablaufdatum der Kreditkarte var jetzt = new Date(); var datumAktuell=(jetzt.getFullYear() *100) + jetzt.getMonth()+1; var monatKK=ausgewaehlt(Ablaufmonat); var jahrKK=ausgewaehlt(Ablaufjahr); var datumKK=jahrKK+monatKK; if (datumKK 9) nDigit = nDigit - 9; // Single digit answer nCheckSum += nDigit; // Add to the checksum // Switch the multiplier if (2 == nMult) {nMult = 1} else nMult = 2; } // If the final answer is divisible by 10 it is valid if (0 == nCheckSum % 10) { return true; // Valid credit card number } else { return false; // Invalid number } } function swapImage(element, bildname) { var quelle=element.src; var index=quelle.lastIndexOf("."); quelle=quelle.substr(0, index-1)+bildname+quelle.substr(index); element.src=quelle; } function splash(element, bildquelle) { var bild=self.document.getElementById("produktbild"); if ("" == bildquelle) { bild.className="hidden"; element.className="inactive"; } else { bild.src=bildquelle; bild.className="show"; element.className="active"; } }