/**
* 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", initGalery);
var gal_stripeH = 100; 

function initGalery ()
{
	var divs = document.getElementsByTagName('div');
	var first = false;
	var galleryNum = 0; 
	for (var i=0; i<divs.length; i++) {
		var children = new Array(); 
		if (/wrapStripe/.test(divs[i].className)) {
			var boxes = divs[i].getElementsByTagName('div'); 
			for (var j=0; j<boxes.length; j++) {
				if (/stripe/.test(boxes[j].className)) {
					boxes[j].style.height = gal_stripeH + 'px';
					boxes[j].style.backgroundColor = 'white';
					boxes[j].style.overflow = 'hidden';
					children = boxes[j].getElementsByTagName('img');
					for (var l=0; l<children.length; l++) {
						var dif = (gal_stripeH - children[l].getAttribute('height')) / 2;
						children[l].style.marginBottom = dif + 'px';
					}
					
					var original = boxes[j].getElementsByTagName('a');
					var rows = boxes[j].getElementsByTagName('div');
					rows[0].style.marginTop = "0px"; 

					for (var k=0; k<original.length; k++) {
						original[k].onclick = showPic;
					}
				}
				if (/numRows/.test(boxes[j].className)) {
					boxes[j].style.display = 'block';
					var initNums = boxes[j].getElementsByTagName('span');
					for (var k=0; k<initNums.length; k++) {
						//addEvent (initNums[k], "click", scrollToRow);
						initNums[k].onclick = scrollToRow;
					}
				}
				if (/fullImage/.test(boxes[j].className)) {
					//boxes[j].style.height = '500px';
					boxes[j].innerHTML = '<img src="' + children[0].getAttribute ('src').replace('snaps', 'thumbs') + '" />';
				}
			}
			galleryNum = galleryNum + 1; 
		}
	}
}

function showPic() 
{
	var imgBox = this.parentNode.parentNode.parentNode.getElementsByTagName('div');
	for (var i=0; i<imgBox.length; i++) {
		if (/fullImage/.test(imgBox[i].className)) {
			$alt = this.getElementsByTagName('img')[0].getAttribute('alt');
			imgBox[i].innerHTML = '<img src="' + this.href.replace('snaps', 'thumbs') + '" /><p>' + $alt + '</p>';
		}
	}
	return false;
}


function scrollToRow (evt) {
	evt = (evt) ? evt : window.event;
	var elem = (evt.target) ? evt.target : evt.srcElement; 
	
	var timer;
	var scrollTo = 0;
	var scrollFrom = 0; 

	/** elem.parentNode enthält die Nummer der Reihe
		 elem.parentNode.parentNode ist der Wrapper
		
		<div class="wrapStripe">
			<div class="stripe">
				<div class="rows"> … </div>
				<div class="rows"> … </div>
				…
			</div>
			<div class="numRows"> <a>1</a> <a>2</a> … </div>
			<div class="fullImage"> … </div>
		</div>
	**/
	//alert (elem.nodeType + " " + elem.nodeName)
	
	var wrapStripe; 
	var rowToShow; 
	if (elem.nodeType == 3) { // Textknoten
		wrapStripe = elem.parentNode.parentNode.parentNode;
		rowToShow = elem.parentNode.innerHTML;
		
	} else {
		wrapStripe = elem.parentNode.parentNode;
		rowToShow = elem.innerHTML; 
	}

	var stripes = wrapStripe.getElementsByTagName('div');
	var rows = stripes[0].getElementsByTagName('div'); 
	var firstRow = rows[0];
	
	firstRow.scrollFrom = parseInt(firstRow.style.marginTop);
	firstRow.scrollTo = (parseInt(rowToShow) - 1) * -120; 
	
	firstRow.timer = window.setInterval(
	function() {
		if (firstRow.scrollFrom == firstRow.scrollTo) {
			window.clearInterval(firstRow.timer);
			return;
		}	
		if (firstRow.scrollFrom < firstRow.scrollTo) {
			firstRow.scrollFrom = firstRow.scrollFrom + 10;
		}
		if (firstRow.scrollFrom > firstRow.scrollTo) {
			firstRow.scrollFrom = firstRow.scrollFrom - 10;
		}
		
		firstRow.style.marginTop = firstRow.scrollFrom + "px";
	}
	, 100);

	return false;
}
