var Layer = { // äöü

	layerContainer: null,
	
	log: function(log) {
		if (console != 'undefined')
			console.log(log);
	},
	
	init: function() {
		layerBackground = new Element('div');
		layerBackground.id = 'layerBackground';
		layerBackground.addClass('layerBackground');
		layerBackground.addClass('hide');
		layerBackground.setOpacity(0.2);
		layerBackground.injectInside(document.body);
		
		layerContainer = new Element('div');
		layerContainer.id = 'layerContainer';
		layerContainer.addClass('layerContainer');
		layerContainer.addClass('layer');
		layerContainer.addClass('hide');
		layerContainer.injectInside(document.body);
		
		layerClose = new Element('div');
		layerClose.addClass('layerClose');
		layerClose.id = 'layerClose';
		layerClose.setHTML('');
		layerClose.onclick = this.hide;
		layerClose.injectInside(layerContainer);
		
		layerContent = new Element('div');
		layerContent.id = 'layerContent';
		layerContent.addClass('layerContent');
		//layerContent.addClass('hide');
		layerContent.injectInside(layerContainer);
		
		this.layerContainer = true;
	},
	
	pos: function() {
		var windowHeight = window.getHeight();
		var windowWidth = window.getWidth();
		var windowScrollTop = window.getScrollTop();
		var windowScrollLeft = window.getScrollLeft();
		var layerSize = $('layerContainer').getSize();
		var layerScrollSize = $('layerContainer').getScrollSize();
		var layerWidth = layerScrollSize.x;
		$('layerContainer').setStyle('width', layerWidth + 'px');
		$('layerClose').setStyle('marginLeft','auto');
		var layerHeight = layerSize.y;		
		var leftPos = Math.round((windowWidth - layerWidth) / 2) + windowScrollLeft;
		var topPos = Math.round((windowHeight - layerHeight) / 2) + windowScrollTop;
		
		if (topPos < 0)
			topPos = 0;
		
		$('layerContainer').setStyles({left: leftPos + 'px', top: topPos + 'px'});
		//$('layerBackground').setStyles({height: window.getScrollHeight() + 'px', width: window.getScrollWidth() + 'px'});
		$('layerBackground').setStyles({height: (windowHeight == window.getScrollHeight()) ? windowHeight : window.getScrollHeight() + 'px', width: windowWidth + 'px'});
	},
	
	show: function(layerID, loading) {
		if (!this.layerContainer)	this.init();
			
		if (!$(layerID)) {	
			this.log('layer: '+layerID+' not found');
			var div = new Element('div');
			div.id = layerID;
			//div.addClass('layer');
			div.injectInside(document.body);
		}
		
		/* IE hide controls */
		//$ES('select').setStyle('visibility', 'hidden');
		$$('select').each(function(element) {
			if (!element.hasClass('nohide'))
				element.setStyle('visibility', 'hidden');
		});
		
		$('layerContent').empty();
		$(layerID).injectInside($('layerContent'));
		$(layerID).removeClass('hide');
		
		if (loading) {
			$(layerID).setHTML('Bitte warten ... <a href="#" onclick="Layer.hide(); return false;">Abbrechen</a>');
		}
		
		$('layerContainer').setOpacity(0);
		$('layerBackground').removeClass('hide');
		$('layerContainer').removeClass('hide');
		$('layerContent').removeClass('hide');
		$('layerContainer').effect('opacity', {duration:250}).custom(0,1);
		
		this.pos();
		
	},

	hide: function(nofade) {
		nofade = true;		
		if (nofade == null || !nofade) {
			$('layerContainer').effect('opacity', {duration:250, onComplete:function() {
				Layer.hideDone();
			}}).custom(1,0);
		} else {
			Layer.hideDone();
		}
		$('layerContainer').setStyle('width', '');
		$('layerClose').setStyle('marginLeft', '0');
		/* IE show controls */
		//$ES('select').setStyle('visibility', 'visible');
		$$('select').each(function(element) {
			if (!element.hasClass('nohide'))
				element.setStyle('visibility', 'visible');
		});
		
	},

	hideDone: function() {
		$('layerContainer').addClass('hide');
		$('layerContent').addClass('hide');
		$('layerContent').getFirst().addClass('hide');
		$('layerContent').getFirst().injectInside(document.body);
		$('layerBackground').addClass('hide');
	},
	shakeMe: function(start) {
		start = start || $E('.layerContainer').getStyle('marginLeft').toInt();
		var times = 0;
		var jump = 10;
		var shake = window.setInterval(function () {
			jump = jump * -1;
			$E('.layerContainer').setStyle('marginLeft', start + jump + 'px');
			times = times + 1;
			if (times === 6) {
				$clear(shake);
				$E('.layerContainer').setStyle('marginLeft', start + 'px');
			}
		}, 25);
	}
	
	
}