/*JavaScript Document*/ var Compat = { addEventHandler: function(element, event, handler) { var _tmp, _onevent; if (!element || !event ) return false; if (element.addEventListener) /*DOM-konform*/ element.addEventListener(event, handler, false); else { _onevent = 'on'+event; if (element.attachEvent) /*IE*/ element.attachEvent(_onevent, handler); else { /*ältere Browser*/ _tmp = element[_onevent]; element[_onevent] = typeof _tmp == 'function' ? (function() { _tmp(); handler(); }) : handler; } } }, removeEventHandler: function (element, event, handler) { var _tmp, _onevent; if (!element || !event ) return false; if (element.removeEventListener) /*DOM-konform*/ element.removeEventListener(event, handler, false); else { _onevent = 'on'+event; if (element.detachEvent) /*IE*/ element.detachEvent(_onevent, handler); else { /*ältere Browser*/ element[_onevent] = ""; } } }, getTarget: function (event) { return typeof event.target == "undefined" ? window.event.srcElement : event.target; }, clientX: function (event) { return window.event ? window.event.clientX : event.clientX; }, clientY: function (event) { return window.event ? window.event.clientY : event.clientY; }, stopPropagation: function(event) { if (typeof event.target == "undefined") window.event.cancelBubble = true; else if (event.stopPropagation) event.stopPropagation(); }, /*von Luk hinzugefügt*/ $Id: function (el_id) { return document.getElementById(el_id); }, $Tag: function (el_tag) { return document.getElementsByTagName(el_tag); }, $Name: function (el_name) { return document.getElementsByName(el_name); }, $Class: function (el_class) { var all_obj, ret_obj = new Array(), j = 0, teststr; if(document.all) all_obj = document.all; else if(document.getElementsByTagName && !document.all) all_obj = document.getElementsByTagName("*"); for(i = 0; i < all_obj.length; i++) { if(all_obj[i].className.indexOf(el_class) != -1){ teststr = "," + all_obj[i].className.split(" ").join(",") + ","; if(teststr.indexOf("," + el_class + ",") != -1){ ret_obj[j] = all_obj[i]; j++; } } } return ret_obj; }, $Type: function (el_type) { var all_obj, ret_obj = new Array(), j = 0, teststr; if(document.all) all_obj = document.all; else if(document.getElementsByTagName && !document.all) all_obj = document.getElementsByTagName("*"); for(i = 0; i < all_obj.length; i++) { if(all_obj[i].type && all_obj[i].type.indexOf(el_type) != -1){ teststr = "," + all_obj[i].type.split(" ").join(",") + ","; if(teststr.indexOf("," + el_type + ",") != -1){ ret_obj[j] = all_obj[i]; j++; } } } return ret_obj; }, $Attribute: function (el_atr, el_atr_val) { var all_obj, ret_obj = new Array(), j = 0, teststr; if(document.all) all_obj = document.all; else if(document.getElementsByTagName && !document.all) all_obj = document.getElementsByTagName("*"); for(i = 0; i < all_obj.length; i++) { if(all_obj[i].getAttributeNode(el_atr) && all_obj[i].getAttribute(el_atr) == el_atr_val){ ret_obj[j] = all_obj[i]; j++; } } return ret_obj; }, getStyle: function (el_id) { return Compat.$Id(el_id).style; }, /* utility functions */ log: function(text,replace) { var logarea = document.getElementById("log"); if (!logarea) return; if (replace) { while(logarea.hasChildNodes()) logarea.removeChild(logarea.firstChild); } logarea.appendChild(document.createElement("p"). appendChild(document.createTextNode(text))); } } var compareDivs = { init: function(){ if(!Compat.$Id('mainContent')) return false; var mainHeight= Compat.$Id('mainContent').offsetHeight; var heighest = compareDivs.getHeighest(); if(mainHeight < heighest) Compat.$Id('mainContent').style.height = heighest+'px'; }, getHeighest: function(){ var divs = compareDivs.vertDivs(); var Heihgts = new Array(); for(var i = 0; i < divs.length; i++) { Heihgts.push(divs[i].offsetHeight); } Heihgts.sort(compareDivs.numSort); Heihgts.reverse(); return Heihgts[0]; }, vertDivs: function(){ var allDivs = ['sidebar1', 'sidebar2', 'banner_rechts', 'sizer']; /*hier alle möglichen vertikalen divs eintragen*/ var currDivs = new Array(); for(var d = 0; d < allDivs.length; d++){ if(Compat.$Id(allDivs[d])) currDivs.push(Compat.$Id(allDivs[d])); } return currDivs; }, numSort: function(a, b) { return a - b; }, checkHeight: function(){ var panels = Compat.$Class('CollapsiblePanelOpen'); var mainDiv = Compat.$Id('mainContent'); var mainHeight= mainDiv.offsetHeight; var heighest = compareDivs.getHeighest(); var sumHeight = 0; var topSpace = 300; for(var p = 0; p < panels.length; p++) sumHeight += panels[p].offsetHeight-25; var styleHeight = topSpace+sumHeight+20; if(topSpace+sumHeight > mainHeight) { mainDiv.style.height = styleHeight+'px'; } else { if(topSpace+sumHeight > heighest) mainDiv.style.height = styleHeight+'px'; else mainDiv.style.height = heighest+'px'; } } } function xpos(event) { return window.event ? (window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft) : event.clientX + window.scrollX; } function ypos(event) { return window.event ? (window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop) : event.clientY + window.scrollY; } Compat.addEventHandler(window, "load", compareDivs.init);