//---new page--- function fnInitialize() { document.WebBaseFlags = 0; //new page? var this_rid = getPageRID(); var current_rid_string= GetCookie("WEBBASE_COOKIE_RID"); if (current_rid_string==null || this_rid==parseInt(current_rid_string,10)) { document.onkeyup = onKeyUp; var script_rid = parseInt(GetCookie("WEBBASE_SCRIPT_RID"),10); if (this_rid!=script_rid) { SetCookie("WEBBASE_SCRIPT_RID",this_rid); } if (this_rid!=script_rid) { document.WebBaseFlags |= 1; //app message was shown showApplicationMsg(); //wird nur einmal beim ersten Laden der Seite ausgef?hrt (f?r Fehlermeldungen) } } else { //forward to end of history - some better ideas??? document.body.innerHtml="old content!"; history.forward(); alert("Der Zurück-Button wird nicht unterstützt."); } } function fnWait() { return; // OFFEN if (WAITBOX!=null) { WAITBOX.style.cursor="wait"; } } function fnNoWait() { return; // OFFEN if (WAITBOX!=null) { WAITBOX.style.cursor="default"; } } function submitActionConfirm(srcElement,message,action,code,beanid) { if (confirm(message)) submitAction(srcElement,action,code,beanid) } //for form buttons function submitAction(srcElement,action,code,beanid) { submitForm(srcElement.form,action,code,beanid) } function submitForm(form,action,code,beanid) { fnWait(); if (form!=null) { form.webbase_action.value = action; form.webbase_code.value = code; form.webbase_beanid.value = beanid; form.webbase_ctrlflgs.value = document.WebBaseFlags; form.submit(); } else { alert("Error in submitAction():\nFORM-Element not found."); } } //for real links function linkActionConfirm(message,action,code,beanid) { if (confirm(message)) linkAction(action,code,beanid); } function linkAction(action,code,beanid) { fnWait(); var rid = getPageRID(); var url = getCtrlURL(); url = url + (url.indexOf("?")==-1?"?":"&") + "webbase_rid="+rid; url = url + "&webbase_action=" + action; url = url + "&webbase_code=" + code; url = url + "&webbase_beanid=" + beanid; url = url + "&webbase_ctrlflgs=" + document.WebBaseFlags; document.location.href = url; } //for links that calls submit like form buttons / (works only in IE5.x --> nicht mehr) function submitLink(srcElement,action,code,beanid) { ie = (document.all) ? 1 : 0 var form; if (ie) { form = findParentForm(srcElement); } else { form = document.forms[0]; } submitForm(form,action,code,beanid); } function findParentForm(element) { if (element==null) return null; if (element.tagName=="FORM") return element; return findParentForm(element.parentElement); } //---SUBMIT end--- //---cookie helper begin--- function SetCookie(sName, sValue) { date = new Date(); document.cookie = sName + "=" + escape(sValue); } function ClearCookie(sName) { date = new Date() date.setHours(-24) document.cookie = sName + "=" + escape(""); } function GetCookie(sName) { // cookies are separated by semicolons var aCookie = document.cookie.split("; "); for (var i=0; i < aCookie.length; i++) { // a name/value pair (a crumb) is separated by an equal sign var aCrumb = aCookie[i].split("="); if (sName == aCrumb[0]) return unescape(aCrumb[1]); } // a cookie with the requested name does not exist return null; } function isString(s) { return (s!="null" && s!="undefined" && s!=""); } //---cookie helper end--- //---KEY handler begin--- function onKeyUp() { if (document.all) { // only on IE var alt = event.altKey | event.altLeft; var ctrl = event.ctrlKey | event.ctrlLeft; var shift = event.shiftKey | event.shiftLeft; if (ctrl && alt && shift) { linkAction("DirectKey", event.keyCode, ""); } } } //---KEY handler end--- //--- Anwendung beenden--- function fnQuit() { } //--- Anwendung beenden--- //---generic Client Events--- function doQuit(srcElement,code,beanid) { linkAction("IMCQuit","",""); //send to controller } function doLogon(srcElement,code,beanid) { linkAction("IMCLogon",code,""); //send to controller } function doClientHelp(srcElement,HtmlHelpFile,beanid) { window.open(HtmlHelpFile,"webbase_help_win","width=640,height=480,status=no,toolbar=no,menubar=no,location=no,resizeable=yes,scrollbars=yes").focus(); } function doServerHelp(srcElement,Topic,beanid) { linkAction("help",Topic,beanid); } function doAlert(srcElement,Text) { alert(Text); } //---generic Client Events--- function clearAlfaCookies() { ClearCookie( "AlfaUmg" ); ClearCookie( "AlfaInst" ); ClearCookie( "AlfaUser" ); ClearCookie( "AlfaEnv" ); } //old ALFA 1.4.x function AlfaInit(AppCode, curUmg, curInst, curUser) { return true; } var ZAHL_SPLIT_DEC = ","; var ZAHL_SPLIT_GROUP = "."; var ZAHL_SPLIT_GROUP_RE = /\./g; var VALID_ZAHL_PATTERNS = new Array(); function initABcdInputChecks() { VALID_ZAHL_PATTERNS[0] = /^[+]?[1-9]+\d+$/; VALID_ZAHL_PATTERNS[1] = /^[+]?\d$/; VALID_ZAHL_PATTERNS[2] = /^[+]?[1-9]+\d*\.\d+$/; VALID_ZAHL_PATTERNS[3] = /^[+]?0\.\d+$/; } initABcdInputChecks(); function getDoubleFromABcdValue(idName) { var element = document.getElementById(idName); if (element == null) return 0; return filterInvalCharFromABcd(element.value) * 1; } function setDoubleToABcdValue(idName, zahl, nachkomma) { document.getElementById(idName).value = format_ABcd(zahl, nachkomma); } function filterInvalCharFromABcd(x) { y = x.replace (ZAHL_SPLIT_GROUP_RE, "" ); y = y.replace (ZAHL_SPLIT_DEC, "." ); return y; } function onBlurADate(obj) { var erg = isValidADate(obj); if (erg == true) { if (obj.value.length > 0) format_ADate(obj); return true; } else { alert("Datum '" + obj.value + "' nicht korrekt"); obj.value = ''; obj.focus(); return false; } } function onBlurAStringFirstLetter(obj) { if (obj.value.length > 0) { rest = obj.value.substring(1, obj.value.length); ergebnis = obj.value.charAt(0).toUpperCase() + rest; obj.value = ergebnis; } } function onBlurADax(obj) { var erg = isValidADax(obj); if (erg == true) { if (obj.value.length > 0) format_ADax(obj); return true; } else { alert("Datum '" + obj.value + "' nicht korrekt"); obj.value = ''; obj.focus(); return false; } } function onBlurADaxTTMM(obj) { var erg = isValidADaxTTMM(obj); if (erg == true) { if (obj.value.length > 0) format_ADaxTTMM(obj); return true; } else { alert("Datum '" + obj.value + "' nicht korrekt"); obj.value = ''; obj.focus(); return false; } } function onBlurABcd(obj,vorkomma,nachkomma) { return onBlurABcdFormat(obj,vorkomma,nachkomma,true); } function onBlurABcdFormat(obj,vorkomma,nachkomma,jnTausenderPunkt) { var zahl = filterInvalCharFromABcd(obj.value); if (zahl.length <= 0) return true; var erg = isValidABcd(zahl, vorkomma, nachkomma); if (erg == true) { if (jnTausenderPunkt) { obj.value = format_ABcd(zahl, nachkomma); } else { obj.value = zahl; } return true; } else { alert("Betrag '" + obj.value + "' nicht korrekt"); obj.value = format_ABcd(0, nachkomma); obj.focus(); return false; } } function onBlurABcdPLZ(obj,vorkomma,nachkomma) { var zahl = filterInvalCharFromABcd(obj.value); if (zahl.length <= 0) return true; var erg = isValidABcd(zahl, vorkomma, nachkomma); if (erg == true) { obj.value = zahl; return true; } else { alert("Postleitzahl '" + obj.value + "' muss nummerisch sein"); obj.focus(); return false; } } function isValidABcd(zahl, vorkomma, nachkomma) { if (zahl.length == 0) return true; if (hasValidPattern(zahl, VALID_ZAHL_PATTERNS)==false) return false; if (validVorNachkomma(zahl, vorkomma, nachkomma) == false) return false; return true; } function hasValidPattern(value, patterns) { var i; for(i=0; i < patterns.length; i++) { if (patterns[i].test(value) == true) return true; } return false; } function validVorNachkomma(value, vorkomma, nachkomma) { var vor = vorkomma * 1; var nach = nachkomma * 1; if (vor == 0 && nach == 0) return true; // falls nicht definiert var kommapos = value.indexOf("."); if (kommapos > 0) { if (value.substring(0, kommapos).length > vor) return false; if (value.substring(kommapos+1).length > nach) return false; } else { if (value.length > vor) return false; } return true; } function format_ABcd(zahl, nk) { var value = zahl + ""; if (nk == null) nk = 0; var minus = false; if (value.charAt(0) == '-') { minus = true; value = value.substring(1); } var vorkomma = value; var nachkomma= "0"; var kommapos = value.indexOf("."); if (kommapos >= 0) { vorkomma = value.substring(0, kommapos); nachkomma= value.substring(kommapos+1); } nachkomma = nachkomma.substr(0,nk); while(nachkomma.length < nk) { nachkomma = nachkomma + "0"; } if (vorkomma.indexOf(ZAHL_SPLIT_GROUP) < 0) { vorkomma = format_ABcd_Vorkomma(vorkomma); } if (minus) { value = "-" + vorkomma; } else { value = vorkomma; } if (nk > 0) { value = value + ZAHL_SPLIT_DEC + nachkomma; } return value; } function format_ABcd_Vorkomma(intval) { if (intval == null || intval.length == 0) return "0"; var value = ""; var count = 0; for(var index=intval.length; index >= 0; index--) { if (intval.charAt(index) >= "0" && intval.charAt(index) <= "9") { if (count == 3) { value = ZAHL_SPLIT_GROUP + value; count = 0; } value = intval.charAt(index) + value; ++count; } } return value; } var DATE_DEFAULT_SEP = "."; var DATE_SPLIT = /[\-\/\.\ ]/; /* Trennzeichen */ var VALID_DATE_PATTERNS = new Array(); var VALID_DATE_CHARS = "0123456789-/.,*+ "; var VALID_DAX_PATTERNS = new Array(); var VALID_DAX_PATTERNS_TTMM = new Array(); function initDate4Validation() { VALID_DATE_PATTERNS[0] = /^\d\d?[\-\/\.\ ]+\d\d?[\-\/\.\ ]+\d\d\d\d$/; VALID_DATE_PATTERNS[1] = /^\d\d\d\d\d\d\d\d$/; } function initDax4Validation() { VALID_DAX_PATTERNS[0] = /^\d\d?[\-\/\.\ ]+\d\d\d\d$/; VALID_DAX_PATTERNS[1] = /^\d\d\d\d\d\d$/; } function initDaxTTMM4Validation() { VALID_DAX_PATTERNS_TTMM[0] = /^\d\d?[\-\/\.\ ]+\d\d$/; VALID_DAX_PATTERNS_TTMM[1] = /^\d\d\d\d$/; } initDate4Validation(); initDax4Validation(); initDaxTTMM4Validation(); /* Liefert der Datumsstring als Array von y,m,t Diese Funktion ist landesspezifisch */ function date_getParts(value) { var result; if (DATE_SPLIT.test(value)) { result = value.split(DATE_SPLIT); x = result[0]; result[0] = result[2]; result[2] = x; } else { result = new Array(); result[2] = value.substring(0,2); result[1] = value.substring(2,4); result[0] = value.substring(4); } return result; } function dax_getParts(value, isDax) { var result; if (DATE_SPLIT.test(value)) { result = value.split(DATE_SPLIT); x = result[0]; result[0] = result[1]; result[1] = x; } else { result = new Array(); result[1] = value.substring(0,2); result[0] = value.substring(2); } return result; } function format_ADax(field) { var result = dax_getParts(field.value); field.value = fillWithNull(result[1],2) + DATE_DEFAULT_SEP + fillWithNull(result[0],4); } function format_ADaxTTMM(field) { var result = dax_getParts(field.value); field.value = fillWithNull(result[1],2) + DATE_DEFAULT_SEP + fillWithNull(result[0],2); } function format_ADate(field) { var result = date_getParts(field.value); field.value = fillWithNull(result[2],2) + DATE_DEFAULT_SEP + fillWithNull(result[1],2) + DATE_DEFAULT_SEP + fillWithNull(result[0],4); return result; } function fillWithNull(value, fillLength) { while(value.length < fillLength) value = "0" + value; return value; } /* Validierung : DATUM */ function isInteger(s) { var reInteger = /^\d+$/; return reInteger.test(s) } function isDateYear(y) { return isInteger(y); } function isDateMonth(m) { if (!isInteger(m)) return false; return ( m >= 1 && m <= 12 ); } function isDateDay(d) { if (!isInteger(d)) return false; return (d >= 1 && d <= 31); } function isDate(y, m, d) { if (!isDateYear(y)) return false; if (!isDateMonth(m)) return false; if (!isDateDay(d)) return false; var daysInMonth = new Array(); daysInMonth[1] = 31; daysInMonth[2] = 29; /* must programmatically check this */ daysInMonth[3] = 31; daysInMonth[4] = 30; daysInMonth[5] = 31; daysInMonth[6] = 30; daysInMonth[7] = 31; daysInMonth[8] = 31; daysInMonth[9] = 30; daysInMonth[10] = 31; daysInMonth[11] = 30; daysInMonth[12] = 31; var intYear = parseInt(y, 10); var intMonth = parseInt(m, 10); var intDay = parseInt(d, 10); /* catch invalid days, except for February */ if (intDay > daysInMonth[intMonth]) return false; if ((intMonth == 2) && (intDay > daysInFebruary(intYear))) return false; function daysInFebruary (year) { /* February has 29 days in any year evenly divisible by four, EXCEPT for centurial years which are not also divisible by 400. */ return ( ((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0) ) ) ? 29 : 28 ); } return true; } function isDateRange(y, m, d, datVon, datBis) { datStr = "" + y + m + d; x = ( datStr >= datVon && datStr <= datBis ); return x; } function isValidADate(field) { if (field.value.length == 0) return true; if (hasValidPattern(field.value, VALID_DATE_PATTERNS)==false) return false; var parts = date_getParts(field.value); /* in der Form y,m,t */ if (! isDate(parts[0], parts[1], parts[2])) return false; return true; } function isValidADax(field) { if (field.value.length == 0) return true; if (hasValidPattern(field.value, VALID_DAX_PATTERNS)==false) return false; var parts = date_getParts(field.value); /* in der Form y,m,t */ return true; } function isValidADaxTTMM(field) { if (field.value.length == 0) return true; if (hasValidPattern(field.value, VALID_DAX_PATTERNS_TTMM)==false) return false; var parts = date_getParts(field.value); /* in der Form y,m,t */ return true; } function setDisabled(disabled, field, clear) { element = document.getElementById(field); if (disabled) { element.style.backgroundColor='#EEEEEE'; element.disabled = true; if (clear) element.value = ""; } else { element.style.backgroundColor='#FFFFFF'; element.disabled = false; } } function setDisabledCheckbox(disabled, field) { element = document.getElementById(field); if (disabled) { element.style.backgroundColor='#EEEEEE'; element.disabled = true; element.checked = false; } else { element.style.backgroundColor='#FFFFFF'; element.disabled = false; } } function setDisabledRadio(disabled, field, length) { for (var i=0; i