var imgdir = '';
var empty_image = '/docs/50/layout/empty.png';
var imgpointer = 0;
var numpics = 4;
var blend_dur = 1000;
var blend_steps = 10;
var show_dur = 10000;
var interval = 200;
var temp_progress;
var ie = false;
var pics1 = new Array();
var pics2 = new Array();
var pics2_opacity = new Array();

window.onload = init;

function init() {
	bauForum();
	imagefade();
}

function bauForum() {
	var divs = document.getElementById('main').getElementsByTagName('div');
	for(i in divs) {
		if(divs[i].className == 'content Frage' || divs[i].className == 'content unpublished Frage') {
			var question = divs[i];
			
			//onclick Handler zum Einblenden der Anwort
			var heading = question.getElementsByTagName('h3')[0];
			heading.onclick = function() { displayAnswer(this.parentNode); };
			
			//Standardmäßig alle Antworten ausblenden
			var question_divs = divs[i].getElementsByTagName('div');
			for(j in question_divs) {
				if(question_divs[j].className == 'body') {
					var answer = question_divs[j];
					answer.style.height = '0';
					answer.style.overflow = 'hidden';
				}
			}
		}
	}
}

function displayAnswer(question) {
	//alle Fragen ausblenden
	var divs = document.getElementById('main').getElementsByTagName('div');
	for(i in divs) {
		if(divs[i].className == 'post selected') {
			divs[i].className = 'post';
		}
	}
	//gewählte Frage einblenden
	question.className += ' selected'; // question is div.post
}

function imagefade() {
    if (images != null) {
        setupDOM();
        el1 = document.getElementById( 'if_layer0' );
        el2 = document.getElementById( 'if_layer1' );
        
        for( var i = 0; i < numpics; i++ ) {
            pics1.push( el1.childNodes[i].firstChild );
            pics2.push( el2.childNodes[i].firstChild );
            pics2_opacity.push(0);
        }
        
        ie = pics1[0].filters?true:false;
        
        startfade( 0 );
    }
}

function setupDOM() {
  var imagefade = document.createElement('div');
  imagefade.setAttribute('id', 'imagefade');
  
  var layers = Array();
  for (var nr = 0; nr < 2; nr++) {
    layers[nr] = document.createElement('ul');
    layers[nr].id = 'if_layer' + nr;
    for (var i = 0; i < numpics; i++) {
      var li = document.createElement('li');
      var img = document.createElement('img');
      img.style.display = 'none';
      li.appendChild(img);
      layers[nr].appendChild(li);
    }
  }
  
  imagefade.appendChild(layers[0]);
  imagefade.appendChild(layers[1]);
  document.getElementById('header').appendChild(imagefade);
}

function startfade( nr ) {
	fadepic( nr++ );
	if ( nr < pics1.length )
	setTimeout( "startfade(" + nr + " )", interval );
}

function fadepic( nr ) {
	if ( pics2_opacity[nr] < 100 ) {
		pics2[nr].src = imgdir+nextpic();
		pics2[nr].style.display = 'block';
		fadein( nr, 0 );
	}
	else {
		pics1[nr].src = imgdir+nextpic();
		pics1[nr].style.display = 'block';
		fadeout( nr, 0 );
	}
	setTimeout( "fadepic( "+nr+" )", show_dur );
}

function fadein( nr, progress ) {
	assign_opacity( nr, progress );
	if( progress <= 100 )
		setTimeout( "fadein(" + nr + ", "+ ( progress + 100 / blend_steps ) + ")", blend_dur / blend_steps );
}

function fadeout( nr, progress ) {
	assign_opacity( nr, 100 - progress );
	if( progress <= 100 )
		setTimeout( "fadeout(" + nr + ", "+ ( progress + 100 / blend_steps ) + ")", blend_dur / blend_steps );
}

function assign_opacity( nr, value ) {
	if( ie ) pics2[nr].style.filter = 'Alpha(opacity=' + value + ')';
	else pics2[nr].style.opacity = value / 100;
	pics2_opacity[nr] = value;
}
	

function blend ( nr, progress ) {

	if ( progress != 100 ) {
		progress += 100 / blend_steps;
		if ( ie ) {
			pics1[nr].style.filter = 'Alpha(opacity=' + (100 - progress) + ')';
			pics1[nr].style.filter = 'Alpha(opacity=' + progress + ')';
		} else {			
			pics2[nr].style.opacity = 1 - progress / 100;		
			pics2[nr].style.opacity = progress / 100;
		}
		
		setTimeout( "blend( "+nr+", "+progress+" )", blend_dur / blend_steps );
	}
}

function nextpic() {
	var pic = images[ imgpointer ];
	imgpointer = (imgpointer + 1) % images.length;
	return pic;
}

