// JavaScript Document 


function getElementsByTitle (title) {
	var all = document.all ? document.all : document.getElementsByTagName('*');
	var elements = new Array();
	for (var e = 0; e < all.length; e++)
		if (all[e].title == title)
			elements[elements.length] = all[e];
	return elements;
}

function getElementsByIDPrefix (prefix) {
	var all = document.all ? document.all : document.getElementsByTagName('*');
	var elements = new Array();
	for (var e = 0; e < all.length; e++)
		if (all[e].id.indexOf(prefix) == 0)
			elements[elements.length] = all[e];
	return elements;
}

var pageLayer = {
    layerElement    : null,
    maxLayerOpacity : 0.5,
    
    addRemoveLayer : function() {
        if (this.layerElement == null) {
            // create layer element
            this.layerElement = document.createElement('div');
            this.footeroverlay = document.createElement('div');
			

            // attach event
            this.layerElement.onmousedown = function() {
                pageLayer.fadeLayer(-0.1, pageLayer.maxLayerOpacity);
				
				//offene popups schliessen bei klick auf abdunklung
				var i = 0;
/*				var A = getElementsByTitle('popup');*/
				var A = getElementsByIDPrefix('pop');
				for(i=0;i<A.length;i++)
				document.getElementById(A[i].id).style.display = 'none';
				
            }
			
            
            // set styles of layer element
            this.layerElement.style.position        = 'absolute';
            this.layerElement.style.top             = '140px';
            this.layerElement.style.left            = '53px';
            this.layerElement.style.width           = '894px';
			
			// hoehe aus content und head auslesen
			var contenthoehe = parseInt(document.getElementById('content').offsetHeight);
		
			var hoehe = contenthoehe - 1;
			this.layerElement.style.minHeight       =  hoehe + 'px';    // for IE
			this.layerElement.style.height          =  hoehe + 'px';
			
            this.layerElement.style.backgroundColor = '#000';
			this.layerElement.style.zIndex = '100';
			
			
			// set styles of layer footeroverlay
            this.footeroverlay.style.position        = 'absolute';
			var footeroverlaytop = contenthoehe + 140;
            this.footeroverlay.style.top             = footeroverlaytop + 'px';
            this.footeroverlay.style.left            = '52px';
            this.footeroverlay.style.width           = '896px';
			this.footeroverlay.style.minHeight       = '20px';    // for IE
            this.footeroverlay.style.height          = '20px';

            this.footeroverlay.style.backgroundColor = '#000';
			this.footeroverlay.style.opacity = '0';
			this.footeroverlay.style.filter = 'Alpha(opacity=0)';
			
			
            
            // add layer to body
			var c = document.getElementById("base")
			c.appendChild(this.layerElement);
			c.appendChild(this.footeroverlay);
			

        } else {
            // remove layer
			var c = document.getElementById("base")
			c.removeChild(this.layerElement);
			c.removeChild(this.footeroverlay);
		
			//offene popups schliessen bei klick auf close
			var i = 0;
/*			var A = getElementsByTitle('popup');*/
			var A = getElementsByIDPrefix('pop');
			for(i=0;i<A.length;i++)
			document.getElementById(A[i].id).style.display = 'none';
			
            this.layerElement = null;
        }
    },
    
    fadeLayer : function(addend) {
        var opacity;
        
        // if not called by timeout
        if (arguments[1] == null) {
            // add layer
            this.addRemoveLayer();
            
            if (addend > 0) {
                opacity = 0;
            } else if (addend < 0) {
                opacity = this.maxLayerOpacity;
            } else {
                return;
            }
        } else {
            opacity = arguments[1];
        }
        
        opacity += addend;
        
        // prevent rounding errors
        opacity = Math.round(opacity * 10) / 10;
        
        // if maximum or minimum is exceeded
        if (opacity > this.maxLayerOpacity) {
            return;
        } else if (opacity < 0) {
            // remove layer before exit
            this.addRemoveLayer();
            return;
        }
		
        
        // check for Internet Explorer
        if (navigator.userAgent.indexOf('MSIE') > -1) {
            this.layerElement.style.filter = 'Alpha(opacity=' + (opacity * 100) + ')';
        } else {
            this.layerElement.style.opacity = opacity;
        }
        
        setTimeout('pageLayer.fadeLayer(' + addend + ', ' + opacity + ');', 20);
    }
};

