//================================================================================== //================================================================================== // // Tools-MODUL Projektbezogene Methoden und Objekte // OO-PROGRAMMIERUNG // AUTOR: DF // ERSTELLT: 09.05.2005 // //================================================================================== //================================================================================== // ============================================================ // Klasse Tools // ============================================================ function Tools() { } // ------------------------------------------------------------ // Private Klasseneigenschaften // ------------------------------------------------------------ // ------------------------------------------------------------ // Private Instanzmethoden // ------------------------------------------------------------ // ------------------------------------------------------------ // Öffentliche Instanzmethoden // ------------------------------------------------------------ // ------------------------------------------------------------ // Öffentliche Klasseneigenschaften // ------------------------------------------------------------ // ------------------------------------------------------------ // Private Klassenmethoden // ------------------------------------------------------------ // ------------------------------------------------------------ // Öffentliche Klassenmethoden // ------------------------------------------------------------ Tools.openMicrosite = function(htmlElement, properties) { if (!arguments.length) { return false; } var url = ''; var docSource = ''; var tagName = htmlElement['tagName']; tagName = tagName.toLowerCase(); if (tagName == 'form'){ var nameValuePeer = []; for (var i=0; i\n
\n'; docSource += '
\n'; for (var f=0; f\n'; } } } else { if (nameValuePeer[f]['value']){ docSource += '\n'; } } } docSource += '\n
\n'; } try { htmlElement.reset(); } catch(e){ } } else if (tagName == 'a' || tagName == 'area'){ url += htmlElement.href; } var windowProps = ''; if (arguments[1]){ windowProps = properties; } else { windowProps = 'width=800,height=600,scrollbars=yes,locationbar=no,menubar=no'; } var fenster = window.open(url, 'Micorsite', windowProps); if (docSource.length){ var doc = fenster.document; doc.open(); doc.write(docSource); doc.close(); } fenster.focus(); return false; } Tools.getCookieValue = function(cookieName){ var cookieValue = ''; if (! navigator.cookieEnabled){ alert('Ihr Browser erlaubt keine Cookies!'); return cookieValue; } if (! cookieName){ return cookieValue; } var allCookies = document.cookie; var allCookiesArr = allCookies.split(/\;/); var regExp = new RegExp('^' + cookieName + '='); for (var i=0; i= 4000){ alert('Das Cookie kann nicht gespeichert werden.\nDie Datenmenge übersteigt die maximal zu speichernde Datenmenge eines Cookies.\nBitte überprüfen Sie Ihre Daten.'); return false; } cookieValue = cookieValue.replace(/;/,'###'); var cookieStr = ''; if (valueType == 'int'){ cookieStr = cookieName +'=' + cookieValue +';'; } else { cookieStr = cookieName +'="' + cookieValue +'";'; } if (expDate){ cookieStr += ' expires='+ expDate +';'; } if (path){ cookieStr += ' path='+ path + ';'; } version = 3; if (version && version.toString().length){ cookieStr += ' version="'+ version + '";'; } document.cookie = cookieStr; } Tools.DateToGMTStringCookie = function(date){ if (! date){ return false; } var str = ''; var gtm = ''; var gtmJS = date.toGMTString(); var gtmArr = gtmJS.split(/ /); for (var i=0; i1 && i<4){ gtm += '-'; } else if (i > 0){ gtm += ' '; } gtm += gtmArr[i]; } return gtm; } Tools.confirmURL = function(url){ if (! url){ return false; } var conf = confirm('Möchten Sie den Datensatz wirklich löschen?'); if (conf) { return url; } } Tools.checkRequiredData = function(htmlElement) { if (!arguments.length) { return false; } var _dataType = new RegExp(' \\[datatype\\='); var _required = new RegExp(' \\[required'); var _requiredOn = new RegExp(' \\[requiredOn\\]'); var _requiredOr = new RegExp(' \\[requiredOr\\]'); var tagName = htmlElement['tagName']; tagName = tagName.toLowerCase(); if (tagName == 'form'){ for (var i=0; i>'+ shownElemName +'<< oder >>'+ shownElemNameOr +'<< aus!'); } else { alert('Bitte füllen Sie das Feld >>'+ shownElemName +'<< aus!'); } if (htmlElement.elements[i].type != 'hidden') { htmlElement.elements[i].focus(); } return false; } if (!dataTypeElemHasDataTypeValue){ var shownElemName = htmlElement.elements[i].name; if (htmlElement.elements[i].title){ shownElemName = htmlElement.elements[i].title; } if (htmlElement.elements[i].type != 'hidden') { htmlElement.elements[i].focus(); } return false; } } return true; } } Tools.checkRequiredDataFormFragment = function(htmlElement, elem) { if (arguments.length != 2) { return false; } var _dataType = new RegExp(' \\[datatype\\='); var _required = new RegExp(' \\[required'); var _requiredOn = new RegExp(' \\[requiredOn\\]'); var _requiredOr = new RegExp(' \\[requiredOr\\]'); var tagName = htmlElement['tagName']; tagName = tagName.toLowerCase(); if (tagName == 'form'){ for (var i=0; i>'+ shownElemName +'<< oder >>'+ shownElemNameOr +'<< aus!'); } else { alert('Bitte füllen Sie das Feld >>'+ shownElemName +'<< aus!'); } if (htmlElement.elements[i].type != 'hidden') { htmlElement.elements[i].focus(); } return false; } if (!dataTypeElemHasDataTypeValue){ var shownElemName = htmlElement.elements[i].name; if (htmlElement.elements[i].title){ shownElemName = htmlElement.elements[i].title; } if (htmlElement.elements[i].type != 'hidden') { htmlElement.elements[i].focus(); } return false; } } return true; } } Tools.isChildOfElement = function(parentElem, childElem) { if (arguments.length != 2) { return false; } var nextElem = childElem; while (nextElem && nextElem.nodeName.toLowerCase() != 'body'){ if (nextElem == parentElem){ return true; } nextElem = nextElem.parentNode; } return false; } Tools.checkDataTypeElement = function(elem) { if (!arguments.length) { return false; } if (elem == undefined){ return false; } var _dataTypeDE = new RegExp(' \\[datatype\\=Date\\_DE\\]'); var _dataTypeCMS = new RegExp(' \\[datatype\\=Date\\_CMS\\]'); var _dataTypeMail = new RegExp(' \\[datatype\\=Mail\\]'); var _dataTypeAge = new RegExp(' \\[datatype\\=Age\\]'); var _dataTypeLedgerNr = new RegExp(' \\[datatype\\=LedgerNr\\]'); var _dataTypeInteger = new RegExp(' \\[datatype\\=Integer\\]'); var _value = ''; if (elem.type == 'select-one'){ if (elem.selectedIndex < 0){ return false; } _value = Tools.stripSpace(elem.options[elem.selectedIndex].value); } else if (elem.type == 'select-multiple'){ for (var ii=0; ii 0 && parseInt(value) < 130)) { var str = ''; if (parseInt(value) > 120){ str += 'Herzlichen Glückwunsch zu Ihrem sehr hohen Alter!!\n' } else { str += 'Sie sind leider noch nicht geboren!!\n'; } str += 'Bitte geben Sie eine Zahl zwischen 1 und 130 ein!' alert(str); return false; } return true; } Tools.validateLedgerNumber = function(value) { if (! arguments.length) { return; } if (! value.match(/^(\d\d?\d?\d?\d?\d?\d?\d?\d?\d?)$/)) { alert('Bitte geben Sie eine Zahl mit 1 - 10 Stellen ein!'); return false; } return true; } Tools.validateDateFormat = function(value, variant) { if (! arguments.length) { return; } if (variant == 'CMS'){ if (! value.match(/^(\d\d\d\d)\-(\d\d)\-(\d\d)$/)) { alert('Bitte geben Sie das Datum im Format jjjj-mm-dd an!'); return false; } } else { if (! value.match(/^(\d\d?)\.(\d\d?)\.(\d\d\d\d)$/)) { alert('Bitte geben Sie das Datum im Format tt.mm.jjjj an!'); return false; } } return true; } Tools.validateMailFormat = function(value) { if (!arguments.length) { return false; } var regEx = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)(\\@)([a-zA-Z0-9\\-\\.]+)(\\.)([a-zA-Z]{2,4})$'); if (! value.match(regEx)){ alert('Bitte geben Sie eine gültige E-Mail-Adresse an!'); return false; } return true; } Tools.checkRequiredElement = function(elem) { if (!arguments.length) { return false; } if (elem == undefined){ return false; } var _multipleRegEx = new RegExp(' \\[multiple\\]'); var _multiple = false; if(elem.className.toString().match(_multipleRegEx)){ _multiple = true; } if (_multiple){ return Tools.checkRequiredElementMultiple(elem); } return Tools.checkRequiredElementSingle(elem); } Tools.checkRequiredElementMultiple = function(elem) { if (!arguments.length) { return false; } if (elem == undefined){ return false; } var requiredValue = ''; var arr = document.getElementsByName(elem.name); for (var i=0; i= size){ elem.value = _value.substring(0, size); } } } Tools.validateEmail = function(elem) { if (!arguments.length) { return false; } var _value = Tools.stripSpace(elem.value); var regEx = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)(\\@)([a-zA-Z0-9\\-\\.]+)(\\.)([a-zA-Z]{2,4})$'); if (! _value.match(regEx)){ alert('Bitte geben Sie eine gültige E-Mail-Adresse an!'); elem.focus(); } } Tools.validateURL = function(elem) { if (!arguments.length) { return false; } var _value = Tools.stripSpace(elem.value); var regEx = new RegExp('^(http:\/\/|https:\/\/|mailto:\/\/|ftp:\/\/|\/)'); if (! _value.match(regEx)){ alert('Bitte geben Sie eine gültige URL an!\nEine gültige URL muß mit http://, https://, etc. anfangen'); elem.focus(); } } Tools.openLinkinOpener = function(url) { if (!arguments.length) { return false; } var root; if (window.opener){ root = window.opener; } if (parent.opener){ root = parent.opener; } if (parent.top.opener){ root = parent.top.opener; } if (! root){ return true; } root.location = url; root.focus(); return false; } Tools.submitQuichsearch = function(htmlElement) { if (!arguments.length) { return false; } var tagName = htmlElement['tagName']; tagName = tagName.toLowerCase(); if (tagName == 'form'){ var regExp = new RegExp('Stichwort|Stichwort eingeben|Suchwort|Suchwort eingeben|Suchbegriff|Suchbegriff eingeben'); for (var i=0; i 122){ return; } var idPostfix = elem.id.toString().replace(/_token/,''); if (key == 8){ var nextIdx = '_token' + parseFloat(parseFloat(idPostfix) - 1); var nextElem = document.getElementById(nextIdx); if (elem.value){ elem.value = ''; return; } } else { var nextIdx = '_token' + parseFloat(parseFloat(idPostfix) + 1); var nextElem = document.getElementById(nextIdx); elem.value = String.fromCharCode(key); } if (nextElem){ nextElem.focus(); return; } var submitBut = document.getElementById('submit-form'); if (submitBut && parseFloat(idPostfix) >= 4){ submitBut.focus(); } return; } // ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Tools.reloadCounter = 0; Tools.reloadCodeField = function(url){ if (arguments.length != 1) { return; } Ajax.cursorWait(); Tools.reloadCounter++; url += '&__RC=' + Tools.reloadCounter; //alert('aufruf: ' + url); var img = new Image(); img.className = "form-code-validate-secure"; img.onload = function () {Tools.drawCodeField(this);} img.src = url; return false; } // ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Tools.drawCodeField = function(img){ if (arguments.length != 1) { return; } //alert('nach bild-onload: ' + img.src); img.onload = ''; var elem = document.getElementById('_sicherheitscode_'); elem.innerHTML = ''; elem.appendChild(img); /* var str = '
'; elem.innerHTML = str; */ Ajax.cursorFinished(); return false; } Tools.setBank = function(elem, url){ if (arguments.length != 2) { return; } var reqUrl = url + elem.value; Ajax.cursorWait(); var myAjax = Ajax.createInstance(); myAjax.setAsynchron(false); myAjax.setMethod('GET'); myAjax.setURL(reqUrl); myAjax.open(); myAjax.sendNull(); var setBank = Tools._setBank(myAjax, elem); Ajax.cursorFinished(); } Tools._setBank = function(ajax, elem){ if (arguments.length != 2) { return; } if (ajax.getReadyState() != 4){ return Ajax.cursorWait(); } if (ajax.getReadyState() == 4){ Ajax.cursorFinished(); var xml = ajax.getReadableXMLNode(); //alert(ajax.getResponseText()); //alert(xml); if (! xml){ alert('Es ist ein Fehler aufgetreten!'); return; } var bankAnzeigeElem = document.getElementById('_Kreditinstitut_'); var bankCGIElem = document.getElementById('konto_bank'); var code = ajax.getSingleNodeValue('code'); if (code == 'fail'){ alert('Die Bankleitzahl konnte nicht ermittelt werden.\nBitte überprüfen Sie Ihre Angaben'); bankAnzeigeElem.innerHTML = 'wird automatisch eingefügt'; bankCGIElem.value = ''; elem.value = ''; elem.focus(); return false; } var bankName = ajax.getSingleNodeValue('bank'); bankCGIElem.value = bankName; if (bankAnzeigeElem) { bankAnzeigeElem.innerHTML = bankName; } } return true; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////