Element.addMethods({

    observe: Event.observe,
    stopObserving: Event.stopObserving,

    maximizeHeight: function(element) {
        element = $(element);
        if(element) {
	
		    var parent = element.parentNode;
		    if(parent)
		    {
		    
			    var borderTopWidth = parseInt(element.getStyle("border-top-width"));
			    if(isNaN(borderTopWidth)) {
				    borderTopWidth = 0;
				}
			    var borderBottomWidth = parseInt(element.getStyle("border-bottom-width"));
			    if(isNaN(borderBottomWidth)) {
				    borderBottomWidth = 0;
				}
			    var paddingTop = parseInt(element.getStyle("padding-top"));
			    if(isNaN(paddingTop)) {
				    paddingTop = 0;
				}
			    var paddingBottom = parseInt(element.getStyle("padding-bottom"));
			    if(isNaN(paddingBottom)) {
				    paddingBottom = 0;
				}
				//var heightOffset = 0;
				var parentHeight = parent.offsetHeight;
			    var heightOffset = borderTopWidth + borderBottomWidth + paddingTop + paddingBottom;//(navigator.userAgent.toLowerCase().indexOf("safari") > -1) ? 0 : 1;
			    //alert("borderTop = " + borderTopWidth);alert("borderBottom = " + borderBottomWidth);alert("paddingTop = " + paddingTop);alert("paddingBottom = " + paddingBottom);
			    //var parentHeight = parent.getHeight();
			    var siblingHeight = 0;
    			
			    //alert("parentHeight = " + parentHeight);alert("heightOffset = " + heightOffset);
    		
			    var siblings = element.siblings();
			    for(var i = 0; i < siblings.length; i++)
			    {
    			
			        //alert(siblings[i].nodeName + " " + siblings[i].className + ", " + siblings[i].offsetHeight);
    			    
			        //alert(siblings[i] + "," + siblings[i].offsetHeight);
    			
				    if(siblings[i].offsetHeight && siblings[i].tagName.toLowerCase() != "script")
					    siblingHeight += siblings[i].offsetHeight;
    					
			    }
			    //alert(parentHeight + ", " + siblingHeight + "," + heightOffset);
			    element.style.height = (parentHeight - (siblingHeight + heightOffset)) + "px";
    			
			    //alert("siblingHeight = " + siblingHeight);alert("height = " + elem.style.height);
    		
		    }
    	
	    }
	    return element;
    }

});
