/**********************************************
***********************************************
**
** meny.js - for menyer med inntil 10 elementer
**
***********************************************
**********************************************/

var meny_skjul_timeout = new Array();

/**************************************
*
* oppdaterMeny
*
* Går gjennom drop-down-menyen og setter riktig posisjon for alle elementer
* Tar inn antall elementer, returnerer ingenting
*
**************************************/

function oppdaterMeny( antall_elementer ) {

	negativ_x = document.getElementById( "toppmeny_1" ).offsetLeft;
	parent_x = document.getElementById( "toppmeny_1" ).offsetParent.offsetLeft;

	for ( i = 0; i <= antall_elementer; i++ ) {

		// sett opp navnet til elementet det skal justeres etter, deretter det som skal justeres		
		var tilhorende_toppmeny = "toppmeny_" + i;
		var meny_til_oppdatering = "menyliste_" + i;

		
		// juster kun om det finnes et menyelement
		if ( document.getElementById( meny_til_oppdatering )) {
			
			
			start_x = document.getElementById( tilhorende_toppmeny ).offsetLeft;
			start_width = document.getElementById( tilhorende_toppmeny ).offsetWidth;
			
			// sett venstre kant på menyelement til å starte litt før første bokstav i toppelement
			document.getElementById( meny_til_oppdatering ).style.left = (start_x - negativ_x + parent_x + 119) + "px";
			
			// om bredde av menyelement er mindre en bredde av toppelement, sett den lik toppelements bredde
			if (document.getElementById( meny_til_oppdatering ).offsetWidth < start_width ) {
				document.getElementById( meny_til_oppdatering ).style.width = start_width + "px";
			}
		}
	}
}


/**************************************
*
* visMeny
*
* Viser riktig drop-down-meny
* Tar inn objektet som har kalt den, returnerer ingenting
*
**************************************/

function visMeny( kalt_av_id ) {
	
	/*****************************************
	*
	* Finn hvilket toppmenyelement det gjelder
	*
	*****************************************/
	
	//document.getElementById(kalt_av_id).style.color = "#844281";
	//document.getElementById(kalt_av_id).style.background-color = "#fff";
	
	// trekk ut nr fra id-en til toppmenyelementet

	var kalt_av_id_siffer = kalt_av_id.substring(kalt_av_id.length - 1);
	
	// finn id for meny som skal vises
	var meny_til_visning = "menyliste_" + kalt_av_id_siffer;
	
	if (document.getElementById(meny_til_visning)) {
		
		document.getElementById(meny_til_visning).style.opacity = 0;
		document.getElementById(meny_til_visning).style.filter = "alpha(opacity=00)";
		document.getElementById(meny_til_visning).style.visibility = "visible";

		clearTimeout(meny_skjul_timeout[kalt_av_id_siffer]);

		oekOpacity(meny_til_visning, 0.05, 10, 1);

	}
	
}


/**********************************************************************
*
* oekOpacity() - øker synligheten til et objekt
*
* tar inn følgende:
*
* skal_oekes - id (tekststreng) til objektet som skal få økt synlighet
* trinn - (float) hvor mye synligheten skal økes per trinn
* trinn_ms (int) hvor mange millisekund det skal være mellom hvert trinn
* maal (float) hvor stor synlighet som er målet
*
***********************************************************************/

function oekOpacity(skal_oekes, trinn, trinn_ms, maal) {
	
	// i utgangspunkt skal økning fortsettes
	var fortsett = true;
	
	/******************************************************
	*
	* Om det finnes en opacity-egenskap i elementets style,
	* og om denne er mindre enn maal, skal både opacity og
	* filter settes
	*
	******************************************************/
	
	if( document.getElementById(skal_oekes).style.opacity && document.getElementById(skal_oekes).style.opacity < maal ) {
		
		var opacity = parseFloat(document.getElementById(skal_oekes).style.opacity);
			
		var ny_opacity = opacity + trinn;
		if ( ny_opacity > maal ) {
			ny_opacity = maal;
		}		

		document.getElementById(skal_oekes).style.opacity = ny_opacity.toString();			
		
		// regn ut ny filter-opacity fra ny_opacity
		var ny_filter_opacity = ny_opacity * 100;
		
		var ny_filter_streng = "alpha(opacity="+ ny_filter_opacity +")";
		
		// sett filter lik ny filterstreng
		document.getElementById(skal_oekes).style.filter = ny_filter_streng;

	}
	
	
	/*********************************************************
	*
	* Om det kun finnes filter-egenskapet i elementets
	* style, og om denne er mindre enn målet, så settes denne.
	*
	*********************************************************/
	
	else if (document.getElementById(skal_oekes).style.filter && document.getElementById(skal_oekes).style.filter.substring(16, 17) != "0" ) {
		var filter_opacity = parseInt(document.getElementById(skal_oekes).style.filter.substring(14, 16));
		
		if(filter_opacity < ( maal * 100))
		{
			var ny_filter_opacity = filter_opacity + (trinn * 100);
			
			if (ny_filter_opacity > 100) {
				ny_filter_opacity = 100;
			}
			
			var filter_streng = "alpha(opacity="+ ny_filter_opacity +")";
			
			document.getElementById(skal_oekes).style.filter = filter_streng;
			
		}
	}
	else {
		// siden ingen økning ble gjennomført skal man ikke forsøke å øke en gang til
		fortsett = false;
	}
	
	
	/**************************************************************
	*
	* Om fortsett er satt -
	* sett ny økning etter et antall millisekund angitt av trinn_ms
	*
	**************************************************************/	
	
	if ( fortsett ) {
		var timeout_string = "oekOpacity( \"" + skal_oekes +"\", "+ trinn +", "+ trinn_ms +", "+ maal +" )";

		setTimeout(timeout_string, trinn_ms);
	}
}


/***************************************
*
* toppSkjulMeny() - setter timeout
* for å skjule meny
*
* tar inn id-en til menyens toppelement
*
**************************************/

function toppSkjulMeny( kalt_av_id ) {
	

	var kalt_av_id_siffer =  kalt_av_id.substring( kalt_av_id.length - 1);

	var skal_skjules = "menyliste_" + kalt_av_id_siffer;
	
	// sett opp kommando for skjuling av meny		
	var timeout_string = "skjulMeny('"+ skal_skjules +"')";

	// sett timeout for skjuling av meny
	meny_skjul_timeout[kalt_av_id_siffer] = setTimeout(timeout_string, 500);
	
}


/***********************************
*
* skjulMeny() - skjuler en meny
* tar id til menyen som skal skjules
*
***********************************/

function skjulMeny( skal_skjules ) {
	
	if ( document.getElementById(skal_skjules) ) {
		//var meny_siffer = skal_skjules.substring(skal_skjules.length - 1);
		document.getElementById(skal_skjules).style.opacity = 0;
			if ( document.getElementById(skal_skjules).style.filter )
				document.getElementById(skal_skjules).style.filter = "alpha(opacity=00)";
		document.getElementById(skal_skjules).style.visibility = "hidden";
	}
}


function menyMusOver( meny_id ) {

	meny_siffer = meny_id.substring(meny_id.length - 1);
	
	//document.getElementById(meny_id).style.text-decoration = 'underline';
	
	clearTimeout(meny_skjul_timeout[meny_siffer]);

}