/**
 * Location:	/templates/view/da_DK/default/js/menu.js
 * Copyright:	Neist & Felskov, 2009+
 *
 * Author:		Neist & Felskov
 * Mail:		kontakt@nfdesign.dk
 * Web:			www.nfdesign.dk
 *
 ***********
 *
 * Indeholder funktioner til åbning og lukning af undermenuer.
 */

// Klargør variabler
active_menu=null;

/**
 * openMenu
 *
 **********
 *
 * Åbner den pågældende menu.
 *
 **********
 *
 * Parametre:
 * submenu (object)						Indeholder en reference til undermenuen.
 */
function openMenu(submenu){
	// Hvis menuen er midt i en animation, afbryder vi koden
	if(submenu.inAnimation) return;

	// Indlæs en reference til undermenuens CSS
	var s=submenu.style;

	// Hvis menuen allerede er åbn, lukker vi den i stedet
	if(submenu.offsetHeight>0){
		// Luk menuen
		closeMenu(submenu);

		// Og afbryd yderligere eksekvering af denne kode
		return;
	}

	// Luk evt. åbn menu
	if(active_menu) closeMenu(active_menu);

	// Angiv at menuen er åbn
	submenu.isOpen=true;
	submenu.inAnimation=true;

	// Udregn højden på submenuen
	var list=submenu.getElementsByTagName('li');
	var i=list.length; var j=i; var h=1;

	if(i>0)do{h+=list[j-i].offsetHeight;}while(--i);

	// Slide menuen ned
	new Effect(function(p){s.height=Math.round(h*p)+'px'; ie6Render(); if(p==1){s=null; submenu.inAnimation=false; submenu=null;}},{duration:0.3,ease:true});
	active_menu=submenu;
}

/**
 * closeMenu
 *
 **********
 *
 * Lukker den pågældende menu.
 *
 **********
 *
 * Parametre:
 * submenu (object)						Indeholder en reference til undermenuen.
 */
function closeMenu(submenu){
	// Angiv at menuen er lukket
	submenu.inAnimation=true;

	// Indlæs en reference til undermenuens CSS
	var s=submenu.style; s.overflow='hidden';

	// Udregn højden på submenuen
	var list=submenu.getElementsByTagName('li');
	var i=list.length; var j=i; var h=1;

	if(i>0)do{h+=list[j-i].offsetHeight;}while(--i);

	// Slide menuen op
	new Effect(function(p){s.height=Math.round(h-h*p)+'px'; if(p==1){s=null; submenu.inAnimation=false; submenu=null;}},{duration:0.3,ease:true});
	active_menu=null;
}

/**
 * ie6Render
 *
 **********
 *
 * Håndterer IE6-buggen ved slide-downs ift. footerens placering.
 */
function ie6Render(){
	// Kør kun funktionen i IE6
	if(document.all){
		// Fix bug'en
		var tmp=document.getElementById('footer');
		tmp.style.position='static';
		tmp.style.position='absolute';

		// Ryd hukommelsen
		tmp=null;
	}
}
