﻿/**
* 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", showImage);


var borderboxes = new Array(); 
var growTo = 280;
var shrinkTo = 30;
	
function pulldownRight()
{
	var borderlines = document.getElementById('bilderstrecke').getElementsByTagName('div');
	var index = 0;
	var online = false; 
	var out = 0; 
	for (var i=0, borderline; borderline=borderlines[i]; i++) {
		if (/borderline/.test(borderline.className)) {
			//alert (borderlines[i].getElementsByTagName('a')[0].href + " *** " + location.href);
			if (borderline.getElementsByTagName('a')[0].href == location.href) {
				borderline.style.height = growTo + "px"; 
				online = true; 
				out = index; 
			} else {
				borderline.style.height = shrinkTo + "px"; 
			} 
			borderboxes[index] = borderline;
			index++;
		}
	}

	if (online == false) {
		borderboxes[out].style.height = growTo + "px";  
	}

	for (var j=1; j<borderboxes.length; j++) {
		if (j != out)
		addEvent(borderboxes[j], "mouseover", exchange);
	}
}


function exchange() 
{
	var timer; 
	toGrow = this;

	var time = 25;
	var step = 10;
	
	var toGrow; 
	var toShrink;

	for (var i=0; i<borderboxes.length; i++) {
		if (parseInt(borderboxes[i].style.height) == growTo) {
			toShrink = borderboxes[i];
		} 
		removeEvent(borderboxes[i], "mouseover", exchange);
	}
	
	
	timer = window.setInterval(
	function() {
		// Zielgröße erreicht
		if (parseInt(toGrow.style.height) == growTo) {
			window.clearInterval (timer);
			var dump = ''; 
			for (var i=0; i<borderboxes.length; i++) {
				
				if (borderboxes[i] != toGrow) {
					addEvent(borderboxes[i], "mouseover", exchange);
					dump = dump + ' ' + i;
				}
			}
			//alert (dump)
		}
		if (parseInt(toGrow.style.height) < growTo) {
			toGrow.style.height = (parseInt(toGrow.style.height) + step ) + 'px';
		}
		if (parseInt(toShrink.style.height) > shrinkTo) {
			toShrink.style.height = (parseInt(toShrink.style.height) - step) + 'px';
		}
	}
	, time);
	
}




/**
* showImage  Konfiguration 
*/

var popImageHeader = '<span id="menuTop"><img src="/wp-content/themes/studio-ernst/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;border:none;padding: 0;" />';
	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;
	}
}
