window.onload = initDeka; /** * Initialisieren der Seite * (z.B. ändern der FontGrössen) */ function initDeka( ) { if ( document.cookie ) { var arrFontSize = document.cookie.match( /fontsize\s*=\s*[0-9]/i ); if( arrFontSize && arrFontSize.length ) changeFontSize( arrFontSize[ 0 ].substr( 9, 1 ) ); else changeFontSize( 1 ); } // is IE if( document.all && document.URL.indexOf( "#pagetitle" ) >= 0 ) document.all.pagetitle.scrollIntoView( true ); } /** * Ändert die Schriftgrösse durch austauschen einer CSS Datei * Rückgabewert ist immer false um den Link zu deaktivieren */ function changeFontSize( intID ) { intID = parseInt( intID ); var strCSS = "BaseFont11px.css"; var objSizeChangeCont = document.getElementById( "divDirectAccess" ); var arrLinks = objSizeChangeCont.getElementsByTagName("a" ); var objDefault, objBigger; for( var i = 0; i < arrLinks.length; i++ ) { if( getClassName( arrLinks[ i ] ).indexOf("fontsmall") != -1 ) objDefault = arrLinks[ i ] ; else if( getClassName( arrLinks[ i ] ).indexOf("fontbig") != -1 ) objBigger = arrLinks[ i ] ; } removeClass( objDefault, "selectedsmall" ); removeClass( objBigger, "selectedbig" ); switch( intID ) { case 2: strCSS = "BaseFont12px.css"; addClass( objBigger, "selectedbig" ); break; default: strCSS = "BaseFont11px.css"; addClass( objDefault, "selectedsmall" ); } if( document.getElementById( "fontsize" ).href != "/css/" + strCSS ) { // funktioniert nicht mit Opera if(navigator.userAgent.toLowerCase().indexOf("opera") == -1) document.getElementById( "fontsize" ).href = "/css/" + strCSS; var date = new Date( ); // cookie valid for 100 days date.setTime( date.getTime( ) + ( 100 * 24 * 60 * 60 * 1000 ) ); var expires = "; expires=" + date.toGMTString( ); document.cookie = "fontsize=" + intID + expires + "; path=/"; } return false; } /** * Aendert den WertentwicklungsChart im Fondsportrait */ function showFondsChart(key) { // Gueltige Keys definieren var shortIdentifiers = new Array("1m", "6m", "1j", "3j", "5j", "seitAufl"); // Alle Reiter auf inaktiv setzen for(var i = 0; i < shortIdentifiers.length; i++) { if(document.getElementById("fondsChartLink" + shortIdentifiers[i])) removeClass(document.getElementById("fondsChartLink" + shortIdentifiers[i]).parentNode, "sfg_reiteraktiv"); } // Aktiven Reiter ändern if(document.getElementById("fondsChartLink" + key)) addClass(document.getElementById("fondsChartLink" + key).parentNode, "sfg_reiteraktiv"); // Performance Chart wechseln if(document.getElementById("fondsChart")) document.getElementById("fondsChart").src = imgs[key].src; // Link der anderen Reiterseiten anpassen var searchString = "&chart="; for(var i = 0; i < shortIdentifiers.length; i++) { if(document.getElementById("tabLink" + i.toString())) document.getElementById("tabLink" + i.toString()).href = document.getElementById("tabLink" + i.toString()).href.substring(0, document.getElementById("tabLink" + i.toString()).href.indexOf(searchString)) + "&chart=" + key; } // falls es einen Druck-Button gibt, soll der chart-Parameter auch dort angepasst werden if(document.getElementById("linkDruckversion")) { // schaue ob chart-Parameter bereits im bestehenden Link vorhanden ist (als Zeichenkette "&chart=" oder "?chart=") if ( document.getElementById("linkDruckversion").href.indexOf(searchString)==-1 ) searchString = "?chart="; if ( document.getElementById("linkDruckversion").href.indexOf(searchString)>-1 ) { // chart-Parameter existiert bereits => chart-Parameter anpassen var urlLength = document.getElementById("linkDruckversion").href.length; var chartIndex = document.getElementById("linkDruckversion").href.indexOf(searchString); var url = document.getElementById("linkDruckversion").href.substring(0, chartIndex) + searchString + key; // + document.getElementById("linkDruckversion").href.substring(chartIndex + searchString.length + key.length, urlLength); document.getElementById("linkDruckversion").href = url ; } else { // chart-Parameter existiert noch nicht => Parameter anhaengen // falls noch kein Parameter existiert, muss "?" als Prefix verwendet werden sonst "&" var prefix = "&"; if ( document.getElementById("linkDruckversion").href.indexOf("?")==-1 ) prefix = "?"; document.getElementById("linkDruckversion").href = document.getElementById("linkDruckversion").href + prefix + "chart=" + key; } } // Falls Link geklickt wurde, Reload der Seite verhindern return false; } /** * Fügt eine CSS-Klasse zu einem HTML-Element hinzu */ function addClass( objNode, strAdd ) { var strClass = getClassName( objNode ); if( strClass.indexOf( strAdd ) != -1 ) return objNode; setClassName( objNode, trimString( strClass + ' ' + strAdd ) ); } /** * Entfernt eine CSS-Klasse aus einem HTML-Element */ function removeClass( objNode, strRemove ) { var strClass = getClassName( objNode ); setClassName( objNode, trimString( strClass.replace( strRemove, '' ) ) ); } /** * Ermittelt die CSS Klasse eines Elements **/ function getClassName(objNode) { if(objNode.className) return objNode.className; else return objNode.getAttribute("class"); } /** * Setzt den Wert des class-Attributs */ function setClassName( objNode, strClass ) { // Internet Explorer if(objNode.className) objNode.className = strClass; else objNode.setAttribute("class", strClass); } /** * Enfernt Leerzeichen am Anfang und Ende einer Zeichenkette * @param string */ function trimString( strInput ) { if(!strInput) return "" ; return strInput.replace( /^\s+/, "" ).replace( /\s+$/, "" ) ; } function tt(){alert ("hallo");} /** * Prueft Dropdown Listen auf leere Values und * stoppt die Weiterleitung, falls kein Wert an- * gegeben worden ist */ function hasDropdownValue( objSelectbox ) { var objValue = ""; objValue = objSelectbox.options[objSelectbox.selectedIndex].value; objValue = trimString(objValue); if(objValue == "" || objValue == "#") return false; else return true; } /** * Setzt den Status eines Eingabefeldes oder einer Dropdown-Liste und passt * dabei auch die CSS-Klassen fuer deka.de an. */ function setFormFieldStatus(objFormField, boolStatus, boolClearField, strDefaultValue) { // Pruefen, ob Objekt vorhanden ist if(objFormField == null) return false; // Pruefen, ob Feld auch geleert werden soll if(boolClearField != null && boolClearField == true) clearFormField(objFormField, strDefaultValue); // Setze Feld Status und aktualisiere CSS Klassen if(boolStatus != null) { objFormField.disabled = ! boolStatus; setFormFieldCSSByStatus(objFormField, boolStatus); } else return false; } /** * Setzt den Status eines Eingabefeldes oder einer Dropdown-Liste und passt * dabei auch die CSS-Klassen fuer deka.de an. */ function setFormFieldCSSByStatus(objFormField, boolStatus) { // Pruefen, ob Objekt vorhanden ist if(objFormField == null || boolStatus == null) return false; // Setze CSS nach Status if(boolStatus) { addClass(objFormField, "border1c filleda"); removeClass(objFormField, "border1c filledb"); return true; } else { addClass(objFormField, "border1c filledb"); removeClass(objFormField, "border1c filleda"); return true; } } /** * Leert den Inhalt eines Eingabefeldes. Alternativ kann auch ein default Wert mitgegeben * werden, auf den das Feld zurueckgesetzt werden soll. */ function clearFormField(objFormField, strDefaultValue) { // Pruefen, ob Objekt vorhanden ist if(objFormField == null) return false; // Pruefen, ob default Wert angegeben wurde if(strDefaultValue == null) strDefaultValue = ""; // Setze Feld Inhalt objFormField.value = strDefaultValue; return true; } /** * Setzt oder loescht den Default Wert eines Eingabefeldes ja nachdem, * ob dieser bereits im Feld steht oder das Feld leer ist. */ function handleInputFieldDefaultValue(activator, strDefaultValue) { // abbruch, wenn activator nicht vorhanden if(activator == null || activator.value == null) return false; // ueberspringe, wenn kein strDefaultValue vorhanden ist if(strDefaultValue == null) return true; // setze default wert, wenn feld leer ist if(activator.value == "") clearFormField(activator, strDefaultValue); // leere feld, wenn default wert im feld steht else if(activator.value == strDefaultValue) clearFormField(activator); // sonst tue nichts else return false; return true; }