/*******************************************************************************
     			         javascript accordeon-effect
********************************************************************************     			
(c)2009 michael leigeber, www.leigeber.com/2009/03/accordion/

changes and additions on 2009-03-15 by arthur van zuylen, www.vanzuylen.org:
1. <div class="acc-section"> now is <ul class="acc-section">
   to make the HTML semantically more correct by using nested unordered lists
  
2. header element tag <h3> now is a link <a href="">
   so you can still show/hide the content (for instance with a simple PHP-script)
   if users have disabled javascript in their browser 
  
3. to make this work the accordeon script is activated "onmousedown" and the 
   slider function has been extended with an extra "onclick" function which 
   avoids that the link will be followed:
      h.onclick = function() {
         return false;
      }

4. when an accordeon opens the current class of link is retrieved; then a blank 
   space plus the className for the active state is appended:
   var ocn=h.className; h.className=(ocn + ' ' + this.s);
   
   and vice versa when an accordeon closes:
   var ocn=h.className.split(' '); h.className=ocn[0];

5. optimized slider time for quicker effect in Windows Explorer:
   Math.ceil(d/10) now is Math.ceil(d/2)
   
6. replaced init-function accordeon to this external javascript   
*******************************************************************************/

var TINY={};

function T$(i){return document.getElementById(i)}
function T$$(e,p){return p.getElementsByTagName(e)}

TINY.accordion=function(){
	function slider(n){this.n=n; this.h=[]; this.c=[]}
	slider.prototype.init=function(t,e,m,o,k){
		var a=T$(t), i=x=0; this.s=k||'', w=[], n=a.childNodes, l=n.length; this.m=m||false;
		for(i;i<l;i++){if(n[i].nodeType!=3){w[x]=n[i]; x++}} this.l=x;
		for(i=0;i<this.l;i++){
			var v=w[i]; this.h[i]=h=T$$(e,v)[0]; this.c[i]=c=T$$('ul',v)[0]; h.onmousedown=new Function(this.n+'.pr(false,this)');
			if(o==i){var ocn=h.className; h.className=(ocn + ' ' + this.s); c.style.height='auto'; c.d=1}else{c.style.height=0; c.d=-1}
			h.onclick = function() {
				return false;
			}
		}
	};
	slider.prototype.pr=function(f,d){
		for(var i=0;i<this.l;i++){
			var h=this.h[i], c=this.c[i], k=c.style.height; k=k=='auto'?1:parseInt(k); clearInterval(c.t);
			if((k!=1&&c.d==-1)&&(f==1||h==d)){
				c.style.height=''; c.m=c.offsetHeight; c.style.height=k+'px'; c.d=1; var ocn=h.className; h.className=(ocn + ' ' + this.s); su(c,1)
			}else if(k>0&&(f==-1||this.m||h==d)){
				c.d=-1; var ocn=h.className.split(' '); h.className=ocn[0]; su(c,-1)
			}
		}
	};
	function su(c){c.t=setInterval(function(){sl(c)},10)};
	function sl(c){
		var h=c.offsetHeight, d=c.d==1?c.m-h:h; c.style.height=h+(Math.ceil(d/2)*c.d)+'px';
		c.style.opacity=h/c.m; c.style.filter='alpha(opacity='+h*100/c.m+')';
		if((c.d==1&&h>=c.m)||(c.d!=1&&h==1)){if(c.d==1){c.style.height='auto'} clearInterval(c.t)}
	};
	return{slider:slider}
}();

// initialiseer accordeon
var parentAccordion=new TINY.accordion.slider('parentAccordion');
parentAccordion.init('acc','a',false,1,'actief');
