var menytabellen=document.getElementById("menytabell");
var menytBody=document.getElementById("menytbody");


function sendMenyExt(hierarkiskID,aksjon,level,contextPath) {
//	hierarkiskID += "";
	var temp = hierarkiskID.split('_');
	var emneordID = temp[temp.length - 1];
//	alert(emneordID);
	currentRow = document.getElementById(hierarkiskID);
	var imageSpan = document.getElementById('img_' + hierarkiskID);
	var indentSpan = document.getElementById('indent_' + hierarkiskID);
	var indent = "";
	for (var x = 0; x < level-1; x++){
	   indent = indent + lagExpColMenyExt(contextPath);
	}
	var indentTekst = indent;
	var imageTekst = lagCollapseMenyExt(hierarkiskID,contextPath);
	indentSpan.innerHTML=indentTekst;
	imageSpan.innerHTML=imageTekst;
//	alert(emneordID);

	// Variant 4 betyr at oppkallet kommer fra hierarkisk meny på forsiden. Dette forhindrer feilmelding om at formBean ikke finnes.
    httpRequestComplaining("post", "emneord/velgemneord_utfor", true, setMenyExt, "emneordID=" + emneordID + "&hierarkiskID="+hierarkiskID+"&aksjon=" + aksjon + "&tjenestebeskrivelseID=<%=tjenestebeskrivelseID%>&tjenestemalID=<%=tjenestemalID%>&variant=4");

}



	function lagCollapseMenyExt(hierarkiskID,contextPath) {
		return "<a href=\"javascript:slettRadMenyExt(menytabellen,'" + hierarkiskID + "','" + contextPath + "')\"><img src=\"" + contextPath + "/_img/collapse.gif\" border=\"0\"/></a>";
	}

	function lagExpandMenyExt(hierarkiskID,level,contextPath) {
		return "<a href=\"javascript:sendMenyExt('" + hierarkiskID + "','expandNode'," + level + ",'" + contextPath + "')\"><img src=\"" + contextPath + "/_img/expand.gif\" border=\"0\"/></a>";
	}

	function lagExpColMenyExt(contextPath) {
		return "<img src=\"" + contextPath + "/_img/expcol.gif\" border=\"0\"/>";
	}


function setMenyExt() {
	/*
	Funksjonen mottar innholdet i en bean representert i et XML-dokument.
	Innholdet kommer som et resultat av et klikk på en pluss-gif.
	*/
    if (_ir_request.readyState == 4) {
        if (_ir_request.status == 200) {
            var doc = _ir_request.responseXML;
            if (doc) {
	            var root = doc.documentElement;
				getDocInfoMenyExt(doc);
			}
		}
        _ir_targetField = null;
    }
}

	function getDocInfoMenyExt(doc){
		var root = doc.documentElement;
		var nds;
		var elementer;
		var startRowID = currentRow.id;
		if(root.hasChildNodes( )) {
			nds=root.childNodes;
			var teller = 0;
			for (var i = 0; i < nds.length; i++){
				var nodenavn= nds[i].nodeName;
				if (nodenavn == 'EnkelLosemneBean') {
					var emneordID = hentVerdiMenyExt(nds[i],"id");
//					alert(emneordID);
					var emneordNavn = hentVerdiMenyExt(nds[i],"name");
//					alert(emneordNavn);
					var hierarkiskID = hentVerdiMenyExt(nds[i],"hierarkiskID");
//					alert(hierarkiskID);
					var hierarkiskNavn = hentVerdiMenyExt(nds[i],"hierarkiskNavn");0
//					alert(hierarkiskNavn);
					var discr = hentVerdiMenyExt(nds[i],"discr");
//					alert(discr);
					var psi = hentVerdiMenyExt(nds[i],"identifier");
//					alert(psi);
					var pID = hentVerdiMenyExt(nds[i],"pid");
//					alert(pID);
					var level = hentVerdiMenyExt(nds[i],"level");
//					alert(level);
					var harBarn = hentVerdiMenyExt(nds[i],"harBarn");
//					alert(harBarn);
//					var checked = hentVerdiMenyExt(nds[i],"checked");
//					alert(checked);
					var contextPath = hentVerdiMenyExt(nds[i],"contextPath");
					var harTilknyttedeBeskrivelser = hentVerdiMenyExt(nds[i],"harTilknyttedeBeskrivelser");
//					alert(harTilknyttedeBeskrivelser);

//					var checkbox = '&nbsp';
//					var checkedValue = "";
//					if (checked=='true')
//						checkedValue="checked";
//					if (discr==2) {
//						checkbox = '<input type="hidden" name="checkbox" value="' + emneordID + '">';
//						checkbox += '<input type="checkbox" onClick="sendTick(this,<%=variant%>)" name="emneordCheck" value="' + emneordID + '" ' +  checkedValue + '>';
//					}

					/*
					Oppretter raden
					*/
					var nyRad = document.createElement('tr');
					currentRow = currentRow.parentNode.insertBefore(nyRad,currentRow.nextSibling);

					// Setter id-atributten
					nyRad.setAttribute("id",hierarkiskID);

					// Lager wraparound-celle
					var wrapAroundCell1 = nyRad.insertCell(-1);
//					var wrapAroundCell2 = nyRad.insertCell(-1);
//					var wrapAroundCell3 = nyRad.insertCell(-1);


					// Bestemmer + eller - (dvs. ingen ting)
					var verdi1 = hentVerdiMenyExt(nds[i],"leafNode");
					var level = hentVerdiMenyExt(nds[i],"level");
					level = parseInt(level);
					var indent = "";
					for (var x = 0; x < level-1; x++)
					{
					   indent = indent + lagExpColMenyExt(contextPath);
					}
					if (verdi1=="false") {
						verdi1 = lagExpandMenyExt(hierarkiskID,level,contextPath);
					} else {
						verdi1 = lagExpColMenyExt(contextPath);
					}

					// Nodenavn (kapitteloverskrift)
					feltnavn = "navn";
					var verdi2 = hentVerdiMenyExt(nds[i],feltnavn);

					var htmlTekst1 = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td valign=\"top\" nowrap style=\"padding-top:2px;padding-right:2px\"><span id=\"indent_" + hierarkiskID + "\">";
					for (var x = 0; x < level-1; x++){
					   htmlTekst1 += lagExpColMenyExt(contextPath);
					}
					htmlTekst1 += "</span><span id=\"img_" + hierarkiskID + "\">";
					if (harBarn == "true")
						htmlTekst1 += lagExpandMenyExt(hierarkiskID,level,contextPath);
					else
						htmlTekst1 += lagExpColMenyExt(contextPath);
					htmlTekst1 += "</span></td><td valign=\"top\">";
					if (harTilknyttedeBeskrivelser == 'true')
						htmlTekst1 += "<a href=\"javascript:visNyStrukturById('"  +  emneordID +"')\">" + emneordNavn + "</a></td></tr></table>";
						//htmlTekst1 += "<a href=\"" + contextPath + "/forsiden_utfor?op=emneord&emneordID=" + emneordID + "\">" + emneordNavn + "</a>";
					else
						htmlTekst1 += emneordNavn;
					htmlTekst1 += "</td></tr></table>";

					wrapAroundCell1.innerHTML=htmlTekst1;
//					wrapAroundCell2.innerHTML=checkbox;
				}
			}
		}
	}



	function hentVerdiMenyExt(obj,feltnavn) {
		var collection = obj.getElementsByTagName(feltnavn);
		var verdi = '';
		if (collection.length > 0) {
			var felt = collection[0];
			if (felt.childNodes.length>0)
				verdi = felt.childNodes[0].nodeValue;
		}
		return verdi;
	}



	function slettRadMenyExt(menytabellen,hierarkiskID,contextPath) {
		/*
		Skifter til [+]-ikon
		*/
		var level = hierarkiskID.split('_').length;
		var imageSpan = document.getElementById('img_'+hierarkiskID);
		imageSpan.innerHTML=lagExpandMenyExt(hierarkiskID,level,contextPath);

		/*
		Alle rader i menytabellen finner vi ved hjelp av metoden rows.
		*/
		var allerader = menytBody.childNodes;

		/*
		Vi lager et nytt array som fylles opp med alle radenes indexID
		Vi må gjøre det slik fordi vi ikke kan slette radene direkte.
		Antall rader i allerader påvirkes av slettingen og forrykker indexID.
		*/
		var disseSkalSlettesArray = new Array;

		for (var i=0; i<allerader.length; i++) {
			var row = allerader[i];
			if (row.nodeName == 'TR') {
				var rowIndex = row.rowIndex;
				var rowID = row.id;

				/*
				Skal slette alle noder som starter pa "emneordID";
				*/
				var pattern = eval('/^' + hierarkiskID + '\\_/');
				var found = rowID.match(pattern);
				// Merk "_" etter hierarkiskID. Denne er lagt på under eval noen linjer over for å
				// unngå å slette linjer i bunnen. F.eks. id=1 vil fjerne 1_12, 1_4_4 OG 13.
				// Ved å legge på "_" for siden å fjerne denne blir alt korrekt.
				if (found == hierarkiskID+"_" && hierarkiskID != rowID) {
					disseSkalSlettesArray[rowIndex] = row;
				}
			}
		}

		/*
		Så snur vi rekkefølgen på disseSkalSlettesArray. Sletter vi fra "bunnen" går
		det bra med indexID i menytabellen vi fjerner rader fra.
		*/
		var arrayReverse = disseSkalSlettesArray.reverse();
		for (variable in arrayReverse) {
			var row = disseSkalSlettesArray[variable];
			menytBody.deleteRow(row.rowIndex);
		}
	}


function visNyStruktur(psi) {
	AjaxUtils.getNyLosstrukturBean(psi, function (data) {
		skrivNyLosstruktur(data);
	});
}

function visNyStrukturById(id) {
	AjaxUtils.getNyLosstrukturBeanStruts2(id, function (data) {
		skrivNyLosstruktur(data);
	});
}

function skrivNyLosstruktur(bean) {
	// Bygg opp innholdet i innholdsdiv
	var tekst = '';
	// Overskriften
//	tekst += '<div style="font-size: 20px; padding-bottom:7px">' + bean.tittel + '</div>';
	tekst += '<h1>' + bean.tittel + '</h1>';

	// Brødsmuler
	tekst += 'Du er her: ';
	var lvbArr1 = bean.brodsmuler;
	for (var i=0; i<lvbArr1.length;++i) {
		var lvb = lvbArr1[i];
		tekst += '<a href="javascript:void visNyStrukturById(\'' + lvb.label + '\')">' + lvb.value + '</a>';
		if (i<lvbArr1.length-1)
			tekst += ' > ';
	}
	tekst += '<p>';

	// Beskrivelsen
	tekst += '' + bean.beskrivelse + '<p>';

	// Overskrift nivå 2 (Undertemaer eller Emneord)
	if (bean.level == 1)
		tekst += 'Undertemaer:<br>';
	else if (bean.level == 2)
		tekst += 'Emner:<br>';

	// Emneordene
	if (bean.level < 3) {
		tekst += '';
		var lvbArr = bean.underliggende;
		for (var i=0; i<lvbArr.length;++i) {
			var lvb = lvbArr[i];
			tekst += '<a href="javascript:void visNyStrukturById(\'' + lvb.label + '\')">' + lvb.value + '</a>';
			if (i<lvbArr.length-1)
				tekst += ', ';
		}
		tekst += '';
	}

	// Tjenestebeskrivelsene
	if (bean.tjenestebeskrivelser) {
		tekst += "<p>";
		var lvb = bean.tjenestebeskrivelser;
		//var color = '#D7DBFD'
		var color = '#FFFFFF'
//		tekst += '<div>Tjenestebeskrivelser:</div>';
		//tekst += '<table border="0" cellpadding="1" cellspacing="1">';
//		tekst += '<tr bgcolor="' + color + '"><td valign="top">Navn</td><td valign="top">Ingress</td></tr>';
		var even = true;
		for (var i=0;i<lvb.length;++i) {
			even = !even;
//			color = even ? '#D7DBFD' : '#FFFFFF';
			//tekst += '<tr bgcolor="' + color + '"><td valign="top">' + lvb[i].label + '</td><td valign="top">' + lvb[i].value + '</td></tr>';
			var tittel = lvb[i].label;
			var ingress = lvb[i].value;
			/*
			 * Skreller vekk <p> og </p> fra ingressen
			 */
			var start = 3;
			var stopp = ingress.length - 4;
			var startstreng = ingress.substring(0,start);
			var sluttstreng = ingress.substring(stopp);
			if (startstreng != '<p>')
				start = 0;
			if (sluttstreng != '</p>')
				stopp = ingress.length;
			ingress = ingress.substring(start,stopp);
			tekst += '<div class="tittelEmneord">' + tittel + '</div>';
			tekst += ingress + '<p>';
		}
		//tekst += '</table>';
	}
	var innholdsfelt = document.getElementById('hovedfelt');
	//alert(tekst);
	innholdsfelt.innerHTML=tekst;
}
