/**********************************
CREATED BY TIM DE VOS, IFOX

<div id="slideopen_geopend[ID]" status="open|closed">TEKST</div>		=>	div met complete inhoud

<div id="slideopen_gesloten[ID]">TEKST</div>							=> 	div met gesloten inhoud 						(optioneel)

<div id="slideopen_sluiten[ID]">SLUITEN</div>							=> 	div met button met caption "sluiten" o.i.d. 	(optioneel)

<div id="slideopen_openen[ID]">OPENEN</div>								=> 	div met button met caption "openen" o.i.d. 		(optioneel)

<a href="#" onclick="slideopen('ID');return false"> 					=> 	functie om te sluiten

**********************************/

var slideopen_divs			= new Object;
var slideopen_speed			= 2.5; 				// 1 t/m n =>				1 = super snel, 10 = traag, 20 = sloom, etc.
var slideopen_multiple		= true;				// true 					meerdere tegelijk open | false = 1 item open, de rest sluit
var slideopen_cacheajax		= false;				// true 					meerdere tegelijk open | false = 1 item open, de rest sluit


// HIERONDER NIETS MEER AANPASSEN
var slideopen_active		= false				

function hide(id){
	if(document.getElementById(id)){
		document.getElementById(id).style.display = 'none';
	}
}

function show(id){
	if(document.getElementById(id)){
		document.getElementById(id).style.display = 'block';
	}
}

function resize(id, newHeight){
	document.getElementById(id).style.height = newHeight + 'px';			
}

function slideopen_init(){
	var divarray = document.getElementsByTagName("div");    
	for(var ii=0;ii<divarray.length;ii++){  
		var attributeID = String(divarray[ii].getAttribute('id'));
		if(attributeID.toLowerCase().indexOf('slideopen_geopend[') > -1){
			idnaamarray 								= attributeID.toLowerCase().split('[');
			idnaamarray 								= idnaamarray[1].split(']');															 
			id											= idnaamarray[0];
			slideopen_divs[id] 							= new Object;
			slideopen_divs[id].id						= id;				
			slideopen_initdiv(id);
		}
	}			
}
function slideopen_initdiv(id){
	var status 		= String(document.getElementById('slideopen_geopend['+id+']').getAttribute('status'));			
	show('slideopen_gesloten['+id+']');
	show('slideopen_geopend['+id+']');
	if(!slideopen_divs[id].maxHeight){
		slideopen_divs[id].maxHeight				= parseInt(document.getElementById('slideopen_geopend['+id+']').offsetHeight);
	}else{
		var currentheight = parseInt(document.getElementById('slideopen_geopend['+id+']').offsetHeight);		
		document.getElementById('slideopen_geopend['+id+']').style.overflow	= 'visible';
		document.getElementById('slideopen_geopend['+id+']').style.height	= 'auto';
		slideopen_divs[id].maxHeight				= parseInt(document.getElementById('slideopen_geopend['+id+']').offsetHeight);
		document.getElementById('slideopen_geopend['+id+']').style.overflow	= 'hidden';	
		document.getElementById('slideopen_geopend['+id+']').style.height	= currentheight + 'px';			
	}
	
	if(document.getElementById('slideopen_gesloten['+id+']')){
		slideopen_divs[id].minHeight				= parseInt(document.getElementById('slideopen_gesloten['+id+']').offsetHeight);
		show('slideopen_gesloten['+id+']');
	}else{
		slideopen_divs[id].minHeight				= 0;				
	}
	
	

	if(status == 'open'){
		slideopen_active = id;
		slideopen_divs[id].status					= 'open';			
		hide('slideopen_openen['+id+']');
		show('slideopen_sluiten['+id+']');				
		resize('slideopen_geopend['+id+']', slideopen_divs[id].maxHeight);
		show('slideopen_geopend['+id+']');								
		hide('slideopen_gesloten['+id+']');												
	}else{
		slideopen_divs[id].status					= 'closed';							
		show('slideopen_openen['+id+']');
		hide('slideopen_sluiten['+id+']');				
		resize('slideopen_geopend['+id+']', slideopen_divs[id].minHeight);
		hide('slideopen_geopend['+id+']');
		show('slideopen_gesloten['+id+']');
	}

	if(slideopen_divs[id].minHeight >= slideopen_divs[id].maxHeight){
		hide('slideopen_openen['+id+']');
		hide('slideopen_sluiten['+id+']');
		hide('slideopen_geopend['+id+']');
		show('slideopen_gesloten['+id+']');
	}
}

function slideopen(id,ajaxURL){
	if(slideopen_divs[id]){
		if(slideopen_divs[id].minHeight >= slideopen_divs[id].maxHeight){
			hide('slideopen_openen['+id+']');
			hide('slideopen_sluiten['+id+']');
			hide('slideopen_geopend['+id+']');
			show('slideopen_gesloten['+id+']');
		}else{
			if(slideopen_divs[id].status == 'open'){
				slideopen_divs[id].status = 'close';
			}else{
				if(slideopen_active != id && slideopen_active && slideopen_multiple == false){
					if(slideopen_active != false){
						slideopen(slideopen_active)
					}
				}
				slideopen_active = id;
				slideopen_divs[id].status = 'open';		
			}
			
			
			if(ajaxURL && (slideopen_divs[id].loaded != true || slideopen_cacheajax == false) && slideopen_divs[id].status == 'open'){
				startRequest(ajaxURL,'slideopen_geopend['+id+']',false,'slideopen_initdiv(\''+id+'\');slideopenStart(\''+id+'\')')
				slideopen_divs[id].loaded = true;
			}else{
				slideopenStart(id)
			}
		}
	}else{
		alert('Pagina nog niet uitgeladen, even geduld aub..');
	}
}	

function slideopenStart(id){
	show('slideopen_geopend['+id+']');		
	hide('slideopen_gesloten['+id+']');			
	clearTimeout(slideopen_divs[id].timeout);
	
	if(slideopen_divs[id].status == 'open'){
		hide('slideopen_openen['+id+']');
		show('slideopen_sluiten['+id+']');		
		slideopen_timeout(id)			
	}else{
		show('slideopen_openen['+id+']');
		hide('slideopen_sluiten['+id+']');							
		slideopen_timeout(id)					
	}
}	



function slideopen_timeout(id){
	divElement = document.getElementById('slideopen_geopend['+id+']');

	if(slideopen_divs[id].status == 'open'){
		target = slideopen_divs[id].maxHeight
	}else{
		target = slideopen_divs[id].minHeight
	}
	speed 		= (target - parseInt(divElement.offsetHeight)) / slideopen_speed		
	if(Math.abs(speed) > 1){
		newheight 	= parseInt(divElement.style.height) + speed;		
		resize('slideopen_geopend['+id+']',newheight);
		slideopen_divs[id].timeout = setTimeout('slideopen_timeout(\''+id+'\')',30);
	}else{
		resize('slideopen_geopend['+id+']',target);	
		if(slideopen_divs[id].status == 'close'){
			hide('slideopen_geopend['+id+']')
			show('slideopen_gesloten['+id+']')
		}
	}
}	
