/*---------------------------------------------------------------------------------- Meldungen. ----------------------------------------------------------------------------------*/ strDateSeparator = '.'; strDateFormat = 'DMY'; arrMessages = new Array(12); arrMessages[0] = new String("Das angegebene Datum ist nicht korrekt.\nBitte trennen Sie Tag, Monat und Jahr mittels '" + strDateSeparator + "'."); arrMessages[1] = new String("Das angegebene Datum ist nicht korrekt.\nDas Jahr muss grösser 1582 sein."); arrMessages[2] = new String("Das angegebene Datum ist nicht korrekt.\nDer Monat muss zwischen 1 und 12 liegen."); arrMessages[3] = new String("Das angegebene Datum ist nicht korrekt.\nDer Tag muss zwischen 1 und %s liegen."); arrMessages[4] = new String("Das angegebene Datum ist nicht korrekt.\nBitte geben Sie eine 1...2-stellige Tageszahl an."); arrMessages[5] = new String("Das angegebene Datum ist nicht korrekt.\nBitte geben Sie eine 1...2-stellige Monatszahl an."); arrMessages[6] = new String("Das angegebene Datum ist nicht korrekt.\nBitte geben Sie eine 4-stellige Jahreszahl an."); arrMessages[7] = new String("Eine APAX-ID muß mit einer Ziffer oder\ndem Zeichen \"X\" beginnen."); arrMessages[8] = new String("Eine APAX-ID darf mit dem Zeichen \"X\" an der\nersten Stelle maximal 10 Zeichen lang sein."); arrMessages[9] = new String("Eine APAX-ID darf ohne das Zeichen \"X\" an der\nersten Stelle maximal 9 Zeichen lang sein."); arrMessages[10] = new String("Eine APAX-ID darf lediglich Ziffen und optional\nan erster Stelle das Zeichen \"X\" enthalten."); arrMessages[11] = new String("Es muß eine APAX-ID größer 0 angegeben werden."); arrMessages[12] = new String("Die angegebene E-Mail-Adresse ist nicht korrekt."); /*---------------------------------------------------------------------------------- Anzahl Tage der Monate. ----------------------------------------------------------------------------------*/ arrNumberOfDaysPerMonth = new Array(11); arrNumberOfDaysPerMonth[0] = 31; arrNumberOfDaysPerMonth[1] = 28; arrNumberOfDaysPerMonth[2] = 31; arrNumberOfDaysPerMonth[3] = 30; arrNumberOfDaysPerMonth[4] = 31; arrNumberOfDaysPerMonth[5] = 30; arrNumberOfDaysPerMonth[6] = 31; arrNumberOfDaysPerMonth[7] = 31; arrNumberOfDaysPerMonth[8] = 30; arrNumberOfDaysPerMonth[9] = 31; arrNumberOfDaysPerMonth[10] = 30; arrNumberOfDaysPerMonth[11] = 31; /*================================================================================== Überprüft den Parameter "strDate" auf ein korrektes Datum anhand der Einstellungen von "strDateFormat" und "strDateSeparator". Falls korrekt, wird "OK" zurückgegeben. Ansonsten liefert die Funktion eine Fehlermeldung. ==================================================================================*/ function checkdate(strDate, strHiddenField) { arrPos = new Array(2); arrPos[0] = new Array(1); arrPos[2] = new Array(1); arrPos[1] = new Array(1); var strMessage = new String; strMessage = ''; var intCounter; var intDummyDay; var intDummyMonth; var intDummyYear; var intNumberOfDaysInMonth; var intPosPoint1; var intPosPoint2; //strDate = document.forms[0].ClosingPeriod.value; strUserDate = new String(strDate); intPosPoint1 = strUserDate.indexOf(strDateSeparator); intPosPoint2 = strUserDate.lastIndexOf(strDateSeparator); /*-------------------------------------------------------------------------------- Auf korrekte Trennzeichen zwischen Tag, Monat und Jahr prüfen.. --------------------------------------------------------------------------------*/ if ((intPosPoint1 != -1) && (intPosPoint2 != -1) && (intPosPoint2 > (intPosPoint1 + 1))) { arrPos[0][0] = 0; arrPos[0][1] = intPosPoint1; arrPos[1][0] = intPosPoint1 + 1; arrPos[1][1] = intPosPoint2; arrPos[2][0] = intPosPoint2 + 1; arrPos[2][1] = strUserDate.length + 1; for (intCounter = 0; intCounter < 3; intCounter++) { switch (strDateFormat.substr(intCounter, 1)) { case "D": intDummyDay = strUserDate.substring(arrPos[intCounter][0], arrPos[intCounter][1]); break; case "M": intDummyMonth = strUserDate.substring(arrPos[intCounter][0], arrPos[intCounter][1]); break; case "Y": intDummyYear = strUserDate.substring(arrPos[intCounter][0], arrPos[intCounter][1]); break; } } /*------------------------------------------------------------------------------ Tag, Monat und Jahr auf Ganzzahlen prüfen. ------------------------------------------------------------------------------*/ if (!CheckInteger(intDummyDay)) strMessage = arrMessages[4]; if (!CheckInteger(intDummyMonth)) strMessage = arrMessages[5]; if (!CheckInteger(intDummyYear)) strMessage = arrMessages[6]; /*------------------------------------------------------------------------------ Auf korrekte Tages-, Monats- und Jahreszahlbeschränkungen prüfen. ------------------------------------------------------------------------------*/ intDummyDay = parseInt(intDummyDay, 10); intDummyMonth = parseInt(intDummyMonth, 10); intDummyYear = parseInt(intDummyYear, 10); if (intDummyYear < 10) intDummyYear = 20 + '0' + intDummyYear if (intDummyYear >= 10 && intDummyYear <= 99) intDummyYear = '20' + intDummyYear // if (intDummyYear >= 49 && intDummyYear <= 99) intDummyYear = '19' + intDummyYear if (intDummyYear >= 1753) { if (intDummyMonth >= 1 && intDummyMonth <= 12) { intNumberOfDaysInMonth = NumberOfDaysInMonth(intDummyYear, intDummyMonth); if (intDummyDay >= 1 && intDummyDay <= intNumberOfDaysInMonth) strMessage = "OK"; else strMessage = arrMessages[3].replace(/%s/, intNumberOfDaysInMonth); } else strMessage = arrMessages[2]; } else strMessage = arrMessages[1]; } else{ strMessage = arrMessages[0]; } if (strMessage != 'OK'){ document.forms[0].hMessage.value = strMessage; } else{ document.forms[0].hMessage.value = ''; document.forms[0].elements[strHiddenField].value = intDummyDay + strDateSeparator + intDummyMonth + strDateSeparator + intDummyYear; } } /*================================================================================== Überprüft den Parameter "varValue" auf eine best. Länge "intLength" und auf eine Ganzzahl. ==================================================================================*/ function CheckInteger(varValue, intLength) { var intCounter; strValue = new String(varValue); strOKChars = new String("0123456789"); if (strValue.length < parseInt(intLength, 10)) return false; else { for (intCounter = 0; intCounter < strValue.length; intCounter++) { if (strOKChars.indexOf(strValue.charAt(intCounter)) < 0) return false; } } return true; } /*================================================================================== Gibt den Tages-, Monats- bzw. Jahresteil des Datumsstrings "strDate" zurück, abhängig von den Einstellungen in "strDateFormat", "strDateSeparator" und "strPart" ("D" = Tag, "M" = Monat, "Y" = Jahr). ==================================================================================*/ function GetDatePart(strDate, strPart) { var intPosPart; var intPosLeft; var intPosPoint1; var intPosPoint2; var intPosRight; var strDateValue = new String(strDate); intPosPart = strDateFormat.indexOf(strPart); intPosPoint1 = strDateValue.indexOf(strDateSeparator); intPosPoint2 = strDateValue.lastIndexOf(strDateSeparator); switch (intPosPart) { case 0: intPosLeft = 0; intPosRight = intPosPoint1; break; case 1: intPosLeft = intPosPoint1 + 1; intPosRight = intPosPoint2; break; case 2: intPosLeft = intPosPoint2 + 1; intPosRight = strDateValue.length + 1; break; } return strDateValue.substring(intPosLeft, intPosRight); } /*================================================================================== Gibt die Anzahl der Tage im Monat "intMonth" des Jahres "intYear" zurück. ==================================================================================*/ function NumberOfDaysInMonth(intYear, intMonth) { return arrNumberOfDaysPerMonth[intMonth - 1] + (intMonth == 2 ? Leapyear(intYear) : 0) } /*================================================================================== Gibt "1" zurück, falls das angegebene Jahr "intYear" ein Schaltjahr war/ ist, ansonsten "0". ==================================================================================*/ function Leapyear(intYear) { if ( (intYear % 4 == 0) && ((intYear % 100 != 0) || (intYear % 400 == 0))) return 1; return 0; } /*================================================================================== Konvertiert eine URL, die ein/mehrere Ampersand (=&) beinhaltet in UNICODE-Ampersand (=%26) ==================================================================================*/ function ConvertAmpInURL(strText) { var strURL = strText.replace(/&/g, '%26'); return strURL; } /*Alte Version function checkCharacters(strText) { // Sonderzeichen sind hier ", %, ', \, &, <, > for (intCounter = 0; intCounter < strText.length; intCounter++) { if (strText.charCodeAt(intCounter) == 37 || strText.charCodeAt(intCounter) == 39 || strText.charCodeAt(intCounter) == 92 || strText.charCodeAt(intCounter) == 38 || strText.charCodeAt(intCounter) == 60 || strText.charCodeAt(intCounter) == 62 || strText.charCodeAt(intCounter) == 35) { return true; break; } } }*/ function checkCharacters(strText) { // Sonderzeichen sind hier <, > for (intCounter = 0; intCounter < strText.length; intCounter++) { if (strText.charCodeAt(intCounter) == 60 || strText.charCodeAt(intCounter) == 62 || strText.charCodeAt(intCounter) == 38) { return true; break; } } } function AnsageDatumsFeld(language){ if (language == 'EN'){ alert('The date format is incorrect (dd.mm.yyyy)'); } else{ alert('Das Datumsformat ist falsch (TT.MM.YYYY)'); } } function TextTrimmer(TextToChange){ var reg = /^[\r\n]{1}/; while (TextToChange.charAt(0) == ' ' || reg.exec(TextToChange.charAt(0))) { TextToChange = TextToChange.substring(1,TextToChange.length); }; var reg = /[\r\n]{1}$/; while (TextToChange.charAt(TextToChange.length - 1) == ' ' || reg.exec(TextToChange.charAt(TextToChange.length - 1))) { TextToChange = TextToChange.substring(0, (TextToChange.length - 1)); }; return TextToChange; } function GtLtReplacer(TextToChange){ var OldLesserThan = '<'; var NewLesserThan = '<'; var OldGreaterThan = '>'; var NewGreaterThan = '>'; TextToChange = TextToChange.replace(OldLesserThan, NewLesserThan); TextToChange = TextToChange.replace(OldGreaterThan, NewGreaterThan); return TextToChange; }