/**
* John Resig, erklärt bei quirksmode
*
*/
function addEvent( obj, type, fn )
{
   if (obj.addEventListener) {
      obj.addEventListener( type, fn, false );
   } else if (obj.attachEvent) {
      obj["e"+type+fn] = fn;
      obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
      obj.attachEvent( "on"+type, obj[type+fn] );
   }
}

function removeEvent( obj, type, fn )
{
   if (obj.removeEventListener) {
      obj.removeEventListener( type, fn, false );
   } else if (obj.detachEvent) {
      obj.detachEvent( "on"+type, obj[type+fn] );
      obj[type+fn] = null;
      obj["e"+type+fn] = null;
   }
}

addEvent(window, 'load', falldown);
var fall = new Array();
var toGrow;
var toShrink;
var aktiv;

function grow()
{
	if (parseInt(toGrow.style.height) < 18 || parseInt(toShrink.style.height) != 0 ) {
		toGrow.style.height = (parseInt(toGrow.style.height) + 1) + "em";
		toShrink.style.height = (parseInt(toShrink.style.height) - 1) + "em";
	} else {
		window.clearInterval(aktiv);
		for (var i in fall) {
			addEvent(fall[i][1], 'mouseover', moveUpDown);
		}
	}
}

function falldown() {
var divs = document.getElementsByTagName('div');
var href = window.location.href.split('/');
var file = href[href.length-1];
var id;

switch (file) {
   case 'design.shtml': 
   case 'designContent.shtml':
   case 'designFarben.shtml':
   case 'statistik.shtml':
   case 'domainumzug.shtml':
      toGrow = document.getElementById('online');
      id = "online";
      break;
	case 'index.shtml':  
      toGrow = document.getElementById('webdesign');
      id = "webdesign";
      break; 
	case 'leistungen.shtml': 
      toGrow = document.getElementById('leistungen');
      id = "leistungen";
      break; 
	case 'redaktion.shtml': 
      toGrow = document.getElementById('redaktion');
      id = "redaktion";
      break; 
	case 'portfolio.shtml': 
      toGrow = document.getElementById('portfolio');
      id = "portfolio";
      break; 
    case 'impressum.shtml': 
    case 'anfrage.php': 
      toGrow = document.getElementById('informationen');
      id = "informationen";
      break; 
	default: 
		toGrow = document.getElementById('webdesign');
      id = "webdesign";
      break;
	} 

	for (var i=0; i<divs.length; i++) {
		if (/falldown/.test(divs[i].className)) {
			// Die falldown-Box des aktuellen divs bekommt die Höhe zugewiesen, 
			// alle anderen bekommen Höhe 0
			fall[divs[i].getAttribute('id')] = new Array(divs[i], divs[i].parentNode.firstChild);
			if (id == divs[i].getAttribute('id')) {
				divs[i].style.height = '18em';
			} else {
				divs[i].style.height = '0em';
			}
		}
	}

	for (var i in fall) {
		addEvent(fall[i][1], 'mouseover', moveUpDown);
	}

}

function moveUpDown(evt)
{
	evt = (evt) ? evt : window.event;
	var elem = (evt.target) ? evt.target : evt.srcElement; 

	var obj = elem.nextSibling;

	while (obj && obj.nodeType != 1) { obj = obj.nextSibling; }
	
	if (obj && obj.style.height != '18em') {
	for (var j in fall) {
		if (document.getElementById(j).style.height == '18em') {
			toShrink = document.getElementById(j);
		}
	}
	if (/falldown/.test(obj.className)) {
		toGrow = obj;
	}
	for (var i in fall) {
		removeEvent(fall[i][1], 'mouseover', moveUpDown);
	}
	aktiv = window.setInterval("grow()", 1);
	}
}

addEvent(window, "load", showImage);
/**
 Konfiguration 
*/

var popImageHeader = '<span id="menuTop"><img src="/images/minitouch.gif" /></span>';

/** 
* showImage Zeigt Popup-Fenster mit einer größeren Version eines Bildes
* ohne dafür ein Browserfenster zu öffnen. Bilder müssen dafür innerhalb eines
* a-Tags mit der Klasse popup stehen. Das Skript funktioniert sowohl bei einem
* Klick als auch bei einer Navigation mit der Tastatur.
*/

function getKey(event) {
	event = event || window.event;
	return event.which;
}

function showImage()
{
	var pageImages = document.images;
	for (i=0; i<pageImages.length; i++) {
		if (/popImage/.test(pageImages[i].parentNode.className)) {
			pageImages[i].parentNode.onclick = openRequestedPopup;
			pageImages[i].parentNode.onfocus = openRequestedPopup;
		}
	}
}

function openRequestedPopup() 
{
    if (document.getElementById('thePopUp')) {
		var thisPopup = document.getElementById('thePopUp');
		thisPopup.parentNode.removeChild (thisPopup);
	}
	var newImageContainer = document.createElement('span');
    newImageContainer.setAttribute ('id','thePopUp');
    newImageContainer.innerHTML = popImageHeader + '<img src="' + this.href + '" style="display: block;" />';
	this.parentNode.insertBefore (newImageContainer,this);
	addEvent (document,'keydown', function(event) { removePopupByX(event,newImageContainer) }, false);
	addEvent (newImageContainer,'click', function(event) {newImageContainer.parentNode.removeChild(newImageContainer)}, false);
    return false;
}

function removePopupByX (event, obj)
{ 
	var key = String.fromCharCode(getKey(event));
	if (document.getElementById('thePopUp') && key == "X" || key == "x") {
		obj.parentNode.removeChild(obj);
		return false;
	}
}
