function in_array(needle, haystack, strict) {
    var found = false, key, strict = !!strict;
 
    for (key in haystack) {
        if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {
            found = true;
            break;
        }
    }
 
    return found;
}

/*function attiva(daAttivare, altri, classeDisattiva, classeAttiva)
{
	menu = document.getElementById('menu');
	elementi = menu.getElementsByTagName('div');
	
	for (x = 0; x < elementi.length; x++)
	{
		el = elementi[x];
		id_el = elementi[x].id;
		
		if (id_el.indexOf("content")!=-1)
		{
			sottocategorie = el.getElementsByTagName('a');
			
			for (a = 0; a < sottocategorie.length; a++)
			{
				sottocategoria = sottocategorie[a];
				id_sottocat = sottocategoria.id;
				
				if (id_sottocat != daAttivare)
				{
					sottocategoria.className = classeDisattiva;
				}
				else
				{
					sottocategoria.className = classeAttiva;
				}
			}
		}
	}
}*/

function attivaVoceMenu(daAttivare, livello)
{
	var categorie;
	
	if (livello == 0)
	{
		categorie = document.getElementById('categorie');
	}
	else if (livello == 1)
	{
		categorie = document.getElementById('sottocategorie');
	}
	
	elementi = categorie.getElementsByTagName('a');

	for (x = 0; x < elementi.length; x++)
	{
		el = elementi[x];
		
		el.className = "";
		daAttivare.className = "hover";
	}
}

var menu=function(){
	var array=[]; var el_menu=[]; var speed=10; var timer=10;
	return{
		init:function(t,c){
			var s,ds,l,i,y;
			s=document.getElementById(t); ds=s.getElementsByTagName('a'); l=ds.length; i=y=0;
			for(i=0;i<l;i++){
				var d,did; d=ds[i]; did=d.id;
				if(did.indexOf("menu")!=-1)
				{
					el_menu.push(did.replace('-menu',''));
					y++;
				}
			}
			
			s=document.getElementById(t); ds=s.getElementsByTagName('div'); l=ds.length; i=y=0;
			for(i=0;i<l;i++){
				var d,did; d=ds[i]; did=d.id;
				if(did.indexOf("content")!=-1)
				{
					array.push(did.replace('-content','')); d.maxh=d.offsetHeight;
					if(c!=y){d.style.height='0px'; d.style.display='none'}
					else{d.style.display='block'}
				}
			}
			
			s=document.getElementById(t); ds=s.getElementsByTagName('a'); l=ds.length; i=y=0;
			for(a=0;a<l;a++){
				var d,did; d=ds[a]; did=d.id;
				if(did.indexOf("menu")!=-1)
				{
					if (in_array(did.replace("-menu",""), array))
					{
						d.onclick = new Function("menu.process(this)");
					}
				}
			}
		},
		process:function(d){
			var cl,i; cl=array.length; i=0;
			for(i;i<cl;i++){
				var s,h,c,cd;
				s=array[i]; h=document.getElementById(s+'-menu');
				c=s+'-content'; cd=document.getElementById(c); clearInterval(cd.timer);
				if(h==d&&cd.style.display=='none'){
					cd.style.display='block';
					this.islide(c,1);
					attivaVoceMenu(d, 0);
				}else if(cd.style.display=='block'){this.islide(c,-1)}
			}
		},
		islide:function(i,d){var c,m; c=document.getElementById(i); m=c.maxh; c.direction=d; c.timer=setInterval("menu.slide('"+i +"')",timer)},
		hideall:function(){
			var cl,i; cl=array.length; i=0;
			for(i;i<cl;i++){
				var s,h,c,cd;
				s=array[i]; h=document.getElementById(s+'-menu');
				c=s+'-content'; cd=document.getElementById(c); clearInterval(cd.timer);
				if(cd.style.display=='block'){this.islide(c,-1)}
			}
		},
		slide:function(i){
			var c,m,h,dist; c=document.getElementById(i); m=c.maxh; h=c.offsetHeight;
			dist=(c.direction==1)?Math.round((m-h)/speed):Math.round(h/speed);
			if(dist<=1){dist=1}
			c.style.height=h+(dist*c.direction)+'px'; c.style.opacity=h/c.maxh; c.style.filter='alpha(opacity='+(h*100/c.maxh)+')';
			if(h<2&&c.direction!=1){
				c.style.display='none'; clearInterval(c.timer);
			}else if(h>(m-2)&&c.direction==1){clearInterval(c.timer)}
		}
};}();
