var DDSPEED = 10;
var DDTIMER = 15;

// main function to handle the mouse events //
function ddMenu(id,d){
  var h = document.getElementById(id + '-ddheader');
  var c = document.getElementById(id + '-ddcontent');
  var j = document.getElementById(id + '-ddjahr');
  var test;
  clearInterval(c.timer);
  if(d == 1){
    clearTimeout(h.timer);
    if(c.maxh && c.maxh <= c.offsetHeight){return}
    else if(!c.maxh){
      c.style.display = 'block';
      c.style.height = 'auto';
      c.maxh = c.offsetHeight;
      c.style.height = '0px';
    }
    c.timer = setInterval(function(){ddSlide(c,1)},DDTIMER);
    test = setTimeout(function(){h.style.display = 'none'; c.style.display = 'block';},DDTIMER); 
  }else{
    h.timer = setTimeout(function(){ddCollapse(c)},50);
    test = setTimeout(function(){h.style.display = 'block'; c.style.display = 'none';},1000);
  }
  if(d == 1){
  	//h.innerHTML = '';
  	//h.style.display = 'none';
  	j.onclick = function(){ ddMenu(id, -1); return false;}
  } else{
  	//h.innerHTML = '<a onClick="ddMenu(\'' + id + '\',1)">Bitte auf eine Jahreszahl klicken.</a>';
  	//h.style.display = 'block';
  	j.onclick = function(){ ddMenu(id, 1); return false;}
  }
}

// collapse the menu //
function ddCollapse(c){
  c.timer = setInterval(function(){ddSlide(c,-1)},DDTIMER);
}

// cancel the collapse if a user rolls over the dropdown //
function cancelHide(id){
  var h = document.getElementById(id + '-ddheader');
  var c = document.getElementById(id + '-ddcontent');
  clearTimeout(h.timer);
  clearInterval(c.timer);
  if(c.offsetHeight < c.maxh){
    c.timer = setInterval(function(){ddSlide(c,1)},DDTIMER);
  }
}

// incrementally expand/contract the dropdown and change the opacity //
function ddSlide(c,d){
  var currh = c.offsetHeight;
  var dist;
  if(d == 1){
    dist = (Math.round((c.maxh - currh) / DDSPEED));
  }else{
    dist = (Math.round(currh / DDSPEED));
  }
  if(dist <= 1 && d == 1){
    dist = 1;
  }
  c.style.height = currh + (dist * d) + 'px';
  c.style.opacity = currh / c.maxh;
  c.style.filter = 'alpha(opacity=' + (currh * 100 / c.maxh) + ')';
  if((currh < 2 && d != 1) || (currh > (c.maxh - 2) && d == 1)){
    clearInterval(c.timer);
  }
}


/*function showNote(nid){
	document.getElementById('bbnote-bottom-' + nid).innerHTML = '<a href=\"#\" onclick=\"javascript:hideNote(' + nid + '); return false\"><b>[Informationen ausblenden]</b></a>';
	document.getElementById('bbnote-short-' + nid).style.display = "none";
	document.getElementById('bbnote-full-' + nid).style.display = "block";
}
function hideNote(nid){
	document.getElementById('bbnote-bottom-' + nid).innerHTML = '<a href=\"#\" onclick=\"javascript:showNote(' + nid + '); return false\"><b>[Mehr Informationen anzeigen]</b></a>';
	document.getElementById('bbnote-short-' + nid).style.display = "block";
	document.getElementById('bbnote-full-' + nid).style.display = "none";
}*/



function getY(obj,relative) {
	var y=0;
	if(typeof(obj)=="object" && document.getElementById) {
		y=obj.offsetTop;
		if(obj.offsetParent && !relative) {
			y+=getY(obj.offsetParent);
		} return y;
	} else  {
		return false;
	}
}
function getObject(element,number) {
var obj=false;
if(element) {
  if(typeof(element)=="object") { obj=element; }
  else if(document.getElementById) {
   number=(number)?number:0;
   if (document.getElementById(element)) { obj=document.getElementById(element); }
   else if (document.getElementsByName(element) && document.getElementsByName(element)[number]) { obj=document.getElementsByName(element)[number]; }
   else if (document.getElementsByTagName && document.getElementsByTagName(element) && document.getElementsByTagName(element)[number]) { obj=document.getElementsByTagName(element)[number]; }
  }
}
return obj;
}

function getScrollXY() {
	var scrOfX = 0, scrOfY = 0;

	if( typeof( window.pageYOffset ) == 'number' ) {
		//Netscape compliant
		scrOfY = window.pageYOffset;
		scrOfX = window.pageXOffset;
	} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
		//DOM compliant
		scrOfY = document.body.scrollTop;
		scrOfX = document.body.scrollLeft;
	} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
		//IE6 standards compliant mode
		scrOfY = document.documentElement.scrollTop;
		scrOfX = document.documentElement.scrollLeft;
	}
	return [ scrOfY ];
}
function currentYPosition() {
    // Firefox, Chrome, Opera, Safari
    if (self.pageYOffset) return self.pageYOffset;
    // Internet Explorer 6 - standards mode
    if (document.documentElement && document.documentElement.scrollTop)
        return document.documentElement.scrollTop;
    // Internet Explorer 6, 7 and 8
    if (document.body.scrollTop) return document.body.scrollTop;
    return 0;
}
function elmYPosition(eID) {
    var elm = document.getElementById(eID);
    var y = (elm.offsetTop + 1);
    var node = elm;
    while (node.offsetParent && node.offsetParent != document.body) {
        node = node.offsetParent;
        y += node.offsetTop;
    } return y;
}
function smoothScroll(eID) {
    var startY = currentYPosition();
    var stopY = elmYPosition(eID);
    var distance = stopY > startY ? stopY - startY : startY - stopY;
    if (distance < 100) {
        scrollTo(0, stopY); return;
    }
    var speed = Math.round(distance / 100);
    if (speed >= 20) speed = 20;
    var step = Math.round(distance / 25);
    var leapY = stopY > startY ? startY + step : startY - step;
    var timer = 0;
    if (stopY > startY) {
        for ( var i=startY; i<stopY; i+=step ) {
            setTimeout("window.scrollTo(0, "+leapY+")", timer * speed);
            leapY += step; if (leapY > stopY) leapY = stopY; timer++;
        } return;
    }
    for ( var i=startY; i>stopY; i-=step ) {
        setTimeout("window.scrollTo(0, "+leapY+")", timer * speed);
        leapY -= step; if (leapY < stopY) leapY = stopY; timer++;
    }
}
// Bei Laden
function naviScroll() {
    // Fixes Element holen
    var fix = document.getElementById('fixed');
    //var ncont = document.getElementById('navi');
    if(getScrollXY() != 0) { fix.style.position = "fixed"; }
    
    // beim Scrollen
    var navh = getY(getObject("navende"));
    var bzeile = getElementsByClass('bzeilelink');
    var jahroverlay = document.getElementById("jahroverlay");
	/*for(g=0; g<bzeile.length; g++) {
		document.getElementById(bzeile[g].id).style.display = "block";
	}*/
    var jahre = getElementsByClass('bilder-liste-jahr');
    var zeileh = jahre[0].offsetHeight;
    var positions = new Array();
	for(i=0; i<jahre.length; i++) {
		positions[i] = new Array();
		positions[i]['jahr'] = jahre[i].title;
		var tid = jahre[i].id;
		positions[i]['position'] = getY(getObject(tid));
		//document.getElementById("ausgabe").innerHTML = positions[i]['position'];
		//document.getElementById("jahreszahl-" + positions[i].jahr).style.background = "#bbbbbb";
		//jahre[i].style.display = 'none';
	}
    window.onscroll = function (e) {
    	var posy = getY(getObject("fixed"));
    	var navy = getY(getObject("bilder-links"));
    	
    	var endy = getY(getObject("endoff"));
    	var scrolly = getScrollXY();
    	if ( (navy - scrolly) > 0) {
    		fix.style.top = "48px";
    	} else if ( (Number(scrolly) + Number(navh)) >= (endy + navy) ) {
    		fix.style.top = (endy - Number(navh) + 48) + "px";
    	} else {
    		fix.style.top = "48px";
    	}
    	//if ( (navy - scrolly) <= 0 ) {
    	//getObject("navende").innerHTML = (endy);
    	if ( ((navy - scrolly) <= -1)  && !((Number(scrolly) + Number(navh)) >= (endy + navy))) {
        // Scrollwert
        //var top = (scrolly - getY(getObject("bilder-links")));
        if(!((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i)))) {
        //setOpacity(jahroverlay, 0);
        //fadeIn("jahroverlay");
        
        fix.style.position = "fixed";
        } else {
        	//fix.style.top = (scrolly - navy) + "px";
        }
        
    	} else {
    	fix.style.position = "absolute";
    	}
    	//jahroverlay.innerHTML = zeileh;
    	if ( ((navy - scrolly) <= -1) && !((Number(scrolly) + zeileh) >= (endy + 1) )) {
    		jahroverlay.style.position = "fixed";
    		jahroverlay.style.top = "0px";
    		jahroverlay.style.display = "block";
    		//jahroverlay.style.opacity = "0.95";
    	} else {
    		if((navy - scrolly) >= -1) {
    			jahroverlay.style.display = "none";
    		} else {
    			jahroverlay.style.top = (endy - zeileh - navy + "px");
    			jahroverlay.style.position = "absolute";
    			
    		}
    	}
    	
    	var posy = getY(getObject("bilder-rechts"));
    	//var scrolly = getScrollXY();    	
    	var topscrollpos = getScrollXY();
    	for(i=0; i<positions.length; i++) {
    		var currpos = topscrollpos - (positions[i].position - positions[0].position);
    		if((i+1) < positions.length) {
    			var nextpos = topscrollpos - (positions[(i+1)].position - positions[0].position);
    		} else {
    			var nextpos = "-1";
    		}
    		//document.getElementById("ausgabe").innerHTML = currpos + "-" + nextpos;
			if(((currpos - posy) >= 0) && ((nextpos - posy) < 0)) {
				document.getElementById("jahreszahl-" + positions[i].jahr).className = "bilder-zeile-curr";
				if((currpos - posy) >= 0) jahroverlay.innerHTML = positions[i].jahr;
			} else {
				document.getElementById("jahreszahl-" + positions[i].jahr).className = "bilder-zeile";
			}
			
   	 	}
    }
    
    
}

