//================================================================================== //================================================================================== // // 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.randomize = function(n) { if (arguments.length!=1) { return false; } var sum = n * Math.random(); var randomNumber = Math.floor(sum)+1; return randomNumber; } 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'; docSource += '
\n'; for (var f=0; f\n'; } } } else { if (nameValuePeer[f]['value']){ docSource += '\n'; } } } docSource += '\n
\n'; } } 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.createDatebasedLink = function(url, field) { if (arguments.length!=2) { return false; } var datum = new Date(); var day = datum.getDate(); if (day < 10){ day = '0' + day; } var month = datum.getMonth(); month++; if (month < 10){ month = '0' + month; } var year = datum.getFullYear(); var cmsdate = year + '' + month + '' + day; var newURL = ''; if (url){ newURL += url; if (field){ newURL += '&' + field + '=' + cmsdate; } } if (newURL){ window.location = newURL; } 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 = cookieName +'="' + cookieValue +'";'; expiresDate = new Date(2006,11,3); 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 _dateTypeDE = new RegExp(' \\[datatype\\=Date\\_DE\\]'); var _dateTypeCMS = new RegExp(' \\[datatype\\=Date\\_CMS\\]'); var _dateTypeMail = new RegExp(' \\[datatype\\=Mail\\]'); var _dateTypeLedgerNr = new RegExp(' \\[datatype\\=LedgerNr\\]'); var _datePLZDE = new RegExp(' \\[datatype\\=PLZ_DE\\]'); var _dateURL = new RegExp(' \\[datatype\\=URL\\]'); 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= 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