// // Globale Variablen // var imgPath; var resized = false; var showing = ''; var clientWidth = 0; var clientHeight = 0; var cX; var cY; var activeId = ''; var activeElement; document.onclick = regId; document.onload = initjs; // // Fuehrt beim Laden einer Seite einige Funktionen zur Initialisierung aus // function initjs() { hide_dt(); if ( self.updateReport ) updateReport(); if ( window.innerWidth ) { clientWidth = window.innerWidth; clientHeight = window.innerHeight; } else if ( document.body.clientWidth ) { clientWidth = document.body.clientWidth; clientHeight = document.body.clientHeight; if ( clientHeight > screen.availHeight ) clientHeight = document.body.clientHeight; } else { clientWidth = document.documentElement.clientWidth; clientHeight = document.documentElement.clientHeight; } } // // Aendert ein Bild beim Ueberfahren mit dem Mauszeiger in ein Bild des selben Namens mit dem // Suffix _hover bzw. zurueck wenn als state nicht "hover" uebergeben wird // function cp( object_id, state, img_name ) { if ( document.getElementById ) { if ( !img_name ) img_name = object_id; if ( !imgPath ) { var searchstr = '(.*)/' + img_name; if ( document.getElementById(object_id).src.search(searchstr) != -1 ) { imgPath = document.getElementById(object_id).src.match(searchstr)[1] + '/'; } } searchstr = img_name + '.*\\.(.*)'; if ( document.getElementById(object_id).src.search(searchstr) != -1 ) { var ending = '.' + document.getElementById(object_id).src.match(searchstr)[1]; } if ( typeof ending != 'undefined' && typeof imgPath != 'undefined' ) { if ( state != 'normal' ) { document.getElementById(object_id).src = imgPath + img_name + "_" + state + ending; } else { document.getElementById(object_id).src = imgPath + img_name + ending; } } } } // // Blendet Absaetze mit einer id von "dyntxt##" aus oder ein // function switch_dt ( id ) { hide_dt(); if ( showing != id ) { document.getElementById("dyntxt"+id).style.display = "inline"; if ( document.getElementById("dyntxt"+id+"_r") ) { document.getElementById("dyntxt"+id+"_r").style.display = "none" } showing = id; } else { showing = ''; } } // // Blendet _alle_ Absaetze mit einer id "dyntxt##" _aus_ // function hide_dt () { var i = 1; while ( document.getElementById("dyntxt"+i) ) { document.getElementById("dyntxt"+i).style.display = "none"; if ( document.getElementById("dyntxt"+i+"_r") ) { document.getElementById("dyntxt"+i+"_r").style.display = "inline" } i++; } } // // Zeigt ein Pop-Up Fenster mit der content-Seite 'pid' an // function info( pid, basePath, pwidth, pheight ) { var size = 'width=' + pwidth + ',height=' + pheight + ','; var path = basePath + 'info/' + pid; window.open(path,'_blank',size+'dependent=yes,status=no,location=no,scrollbars=yes,toolbar=yes'); } // // Ueberpueft, ob alle Pflichtfelder eines Formulars ausgefuellt sind // function validate() { if ( !document.getElementsByName ) return true; var ok = true; for ( i = 0; i < mandatoryFields.length; i++ ) { var field = document.getElementsByName( mandatoryFields[i] ); if ( field[0] == null ) var field = document.getElementsByName( mandatoryFields[i]+'[]' ); if ( field[0] == null ) alert( mandatoryFields[i] ); var fieldType = field[0].type.toLowerCase(); for ( var j = 0; j < field.length; j++ ) { var normalClass = field[j].className.replace( /_warning/, '' ); if ( fieldType == 'text' || fieldType == 'password' || fieldType == 'textarea' ) { var repeatName = field[0].name.replace( /((?:\[\]|))$/, '_repeat$1' ); var repeatField = document.getElementsByName(repeatName)[j]; if ( field[j].value == '' ) { field[j].className = normalClass + '_warning'; ok = false; } else if ( repeatField != null && field[j].value != repeatField.value ) { field[j].className = normalClass + '_warning'; repeatField.className = normalClass + '_warning'; ok = false; } else field[j].className = normalClass; } else if ( fieldType == 'select-one' ) { if ( field[j][field[j].selectedIndex].value == '' ) { field[j].className = normalClass+'_warning'; ok = false; } else field[j].className = normalClass; } else if ( fieldType == 'hidden' ) { if ( field[j].value == '' ) ok = false; } } if ( fieldType == 'radio' || fieldType == 'checkbox' ) { var fieldOk = false; var normalClass = field[0].parentNode.className.replace( /_warning/, '' ); for ( var j = 0; j < field.length; j++ ) { if ( field[j].value != '' && field[j].checked == true ) { fieldOk = true; break; } } for ( var j = 0; j < field.length; j++ ) { if ( fieldOk ) field[j].parentNode.className = normalClass; else field[j].parentNode.className = normalClass + '_warning'; } if ( !fieldOk ) ok = false; } } return ok; } // // Blendet das Element 'elementId' ein oder aus // function toggleDisplay( elementId, dispType ) { if ( !document.getElementById ) return; if ( !document.getElementById(elementId) ) return; if ( dispType === undefined ) var dispType = 'block'; var element = document.getElementById(elementId); if ( element.lockDisplay != undefined && element.lockDisplay == true ) return; element.style.display = ( element.offsetWidth == 0 ) ? dispType : 'none'; } // // Legt fest, ob das Element 'elementId' durch die Funktion // toggleDisplay() aus- und eingeblendet werden kann oder nicht // function toggleLockDisp( elementId ) { if ( !document.getElementById ) return; if ( !document.getElementById(elementId) ) return; var element = document.getElementById( elementId ); var lock = ( element.lockDisplay != undefined ) ? element.lockDisplay : false; element.lockDisplay = !lock; } // // Shortcut für document.getElementById() // function $( id ) { return document.getElementById( id ); } // // An PHP angelehnte Funktionen zur Behandlung von Arrays // function inArray( needle, haystack ) { if ( typeof haystack != 'object' || haystack.length == null ) { alert( 'inArray() argument #2 is not an Array!' ); return false; } for ( var i = 0; i < haystack.length; i++ ) { if ( haystack[i] == needle ) return true; } return false; } function arraySearch( needle, haystack ) { for ( var i = 0; i < haystack.length; i++ ) { if ( haystack[i] == needle ) return i; } return false; } function arrayRemove( needle, haystack ) { var count = 0; for ( var i = 0; i < haystack.length; i++ ) { if ( haystack[i] == needle ) { haystack.splice( i, 1 ); count++; } } return count; } // // Registriert bei Mausklick das unter dem Cursor befindliche Objekt in // activeId // function regId ( event ) { //modified from script at: http://www.quirksmode.org/js/events_properties.html#target if ( event == undefined ) var event = window.event; if ( event == undefined ) return; if ( event.target ) targ = event.target; else if ( event.srcElement ) targ = event.srcElement; if ( targ.nodeType == 3 ) // defeat Safari bug targ = targ.parentNode; if ( targ.id != '' ) activeId = targ.id; cX = event.clientX; cY = event.clientY; }