﻿// JavaScript til Daisy. 
// Opdateret: 12-1-2010

var erBestilt, antalBestilt, maxAntalBestillinger, orderType, udgaveVedBestilling;
var contentHolder, txtHolder;

function setWaitCursor()
{
	document.body.style.cursor='wait';
}

function setPointerCursor()
{
	document.body.style.cursor='pointer';
}

function setDefaultCursor()
{
	document.body.style.cursor='default';
}

function nySide(url, side, sort)
{
	setWaitCursor();
	document.keepvals.action = "/content/dk/daisy/" + url;
	document.getElementById("side").value = side;
	document.getElementById("sort").value = sort;  
	document.keepvals.submit();
}

function sorter(URL, sort)
{
    var sortDir = document.getElementById("dir").value;
    
	setWaitCursor();
    if (sortDir == "" || sortDir == null)
    {
        document.getElementById("dir").value = "a";
    }
	
	document.keepvals.action = "/content/dk/daisy/" + URL;
	document.getElementById("side").value = "1";
	
	// Skift sorteringsretning hvis den allerede sorterede kolonne er valgt:
	if (document.getElementById("sort").value == sort)
	{
	    //alert("sortDir = " + sortDir);
	    if (sortDir == "a")
	    {
	        document.getElementById("dir").value = "d";
	    }
	    if (sortDir == "d")
	    {
	        document.getElementById("dir").value = "a";
	    }
	}
	document.getElementById("sort").value = sort;
	document.keepvals.submit();
}

function interval(URL, visning)
{
	setWaitCursor();
	document.keepvals.action = "/content/dk/daisy/" + URL;
	document.getElementById("int").value = visning;
	document.keepvals.submit();
}

function toNextPage(liste, p)
{
	setWaitCursor();
	document.getElementById("side").value = p;
	document.keepvals.action = "/content/dk/daisy/" + liste;
	document.keepvals.submit();
}

function toListe()
{
	setWaitCursor();
	document.keepvals.action = "/content/dk/daisy/" + document.getElementById("liste").value;
	document.keepvals.submit();
}

function toGlobalListe(scope)
{
	setWaitCursor();
	document.keepvals.action = "/content/dk/daisy/arkivskaber_eller_arkivserie_liste";
	document.getElementById("gsc").value = scope; //"gsc" bruges til at styre visningen af søgeresultater på siden GListe.
	document.getElementById("side").value = "1";
	document.keepvals.submit();
}

function toNgSerier(ngid, ngnid)
{
	setWaitCursor();
	document.keepvals.action = "/content/dk/daisy/arkivskabers_arkivserier";
	document.getElementById("ngid").value = ngid;
	document.getElementById("ngnid").value = ngnid;
	document.keepvals.submit();
}

function toNgDetaljer(ngid, ngnid)
{
	setWaitCursor();
	document.keepvals.action = "/content/dk/daisy/arkivskaber_detaljer";
	document.getElementById("ngid").value = ngid;
	if (!isNaN(ngnid)) {
		document.getElementById("ngnid").value = ngnid;
//		alert("ngnid er ikke ikke et nummer!");  	
	}
	document.keepvals.submit();
}

function toHeDetaljer(heid, henid)
{
	setWaitCursor();
	document.keepvals.action = "/content/dk/daisy/arkivserie_detaljer";
	document.getElementById("heid").value = heid;
	document.getElementById("henid").value = henid;
	document.keepvals.submit();
}

function toMeListe(epid, formaalartid)
{
	setWaitCursor();
	document.keepvals.action = "/content/dk/daisy/fysiske_enheder_liste";
	document.getElementById("side").value = 1;
	document.getElementById("epid").value = epid;
	//Udkommenteret 16-6-2009:
	//document.getElementById("formaalartid").value = formaalartid;
	document.getElementById("faid").value = formaalartid;
	document.keepvals.submit();
}

function toMeDetaljer(meid, me2rifid)
{
	setWaitCursor();
	document.keepvals.action = "/content/dk/daisy/fysiske_enheder_detaljer";
	document.getElementById("meid").value = meid;
	document.getElementById("m2rid").value = me2rifid;
	document.keepvals.submit();
}

function toMeDetaljerAuto()
{
	document.keepvals.action = "/content/dk/daisy/fysiske_enheder_detaljer";
//	document.getElementById("sender").value = "SendMail.asp";
	document.keepvals.submit();
}

function toBestilling()
{
    //alert("meid = " + meid);
	setWaitCursor();
	document.keepvals.action = "/content/dk/daisy/BestilMagasinenhed";
	//document.getElementById("meid").value = meid;
	document.keepvals.submit();
}

function toLink(url)
{
	setWaitCursor();
	document.keepvals.action = "/content/dk/daisy/" + url + ".asp";
	document.keepvals.submit();
}

function changeTableCellContent(tableId, row, col, txt)
{
	var x;
	x = document.getElementById(tableId).rows[row].cells;
	x[col].innerHTML = txt;
}

function changeCellContent(elementId, txt)
{
	document.getElementById(elementId).innerHTML = txt;
}

function changeCSSObjectClass(elementId, newClass)
{
	document.getElementById(elementId).className = newClass;
}

//Translate til JavaScript linebreaks. 
function replaceLinebreaks(str)
{
	if (str == undefined)
		str = "";
	str = str.replace(/<br>/g, "\n");
	return str;
}

function toClipboard(aTxt) 
{
	window.clipboardData.clearData();
	window.clipboardData.setData('Text', aTxt);
}

function DisableFormElement(elementId)
{
	var x;

	try
	{
		x = document.getElementById(elementId).value;
		if (x.length > 0)
		{
			document.getElementById(elementId).value = "";
		}
		document.getElementById(elementId).disabled = true;
	}
	catch (e)
	{
		// Elementet eksisterer sandsynligvis ikke i dette tilfælde.
		// Continue running function
	}
}

function EnableFormElement(elementId)
{
	try
	{
		document.getElementById(elementId).disabled = false;
	}
	catch (e)
	{
		// Elementet eksisterer sandsynligvis ikke i dette tilfælde.
		// Continue running function
	}
}

function evaluateFieldStatus3(isGlobalField, event)
{
	var x2, x3;

	if (isGlobalField)
	{
		x = document.getElementById("sfc").value;
		if (x.length > 0)
		{
			DisableFormElement("sfa");
			DisableFormElement("sfb");
		}
		else
		{
			EnableFormElement("sfa");
			EnableFormElement("sfb");
		}
	}
	else
	{
		x2 = document.getElementById("sfa").value;
		x3 = document.getElementById("sfb").value;

		if ((x2.length + x3.length) > 0)
		{
			DisableFormElement("sfc");
		}
		else
		{
			EnableFormElement("sfc");
		}
	}
}

function popup(mylink, windowname, theWidth)
 {
	if (! window.focus)return true;
	var href;
	if (typeof(mylink) == 'string')
		 href=mylink;
	else
		 href=mylink.href;
	window.open(href, windowname, 'width=' + theWidth + ',height=800,scrollbars=yes,resizable=yes');
	return false;
}

function submitform(formNavn)
{
    if (document.soegForm.onsubmit())
    {
	    document.soegForm.submit();
    }
//	switch (formNavn)
//	{
//	case 'soegForm':
//		document.soegForm.submit();
//		break;		
//	case 'bestilForm':
//    	document.bestilForm.submit();
//		break;		
//	}
}

function DisableBestilKnap()
{
	document.getElementById("DaisyBestilKnap").style.visibility = "hidden";  //LH 18-feb-2008
}

function EnableBestilKnap()
{
	document.getElementById("DaisyBestilKnap").style.visibility = "visible";  //LH 18-feb-2008
} 

/////////////////////////////////////////////////////////////////////
//////// Functions til brug for visning af hjælpbox: Start. /////////
/////////////////////////////////////////////////////////////////////
var xMousePos = 0;
var yMousePos = 0;
var topicHelp = new Array();
							 // Hjælpetekster til forsiden:
topicHelp[0] = "Skriv navnet eller en del af navnet på en Arkivskaber.<br /><b>Arkivskaber</b> er en" +
								" myndighed, virksomhed, forening eller person, som har skabt et arkiv.";
topicHelp[1] = "Skriv navnet eller en del af navnet på en Arkivserie.<br /><b>Arkivserie</b> er en" + 
								" samlet gruppe af arkivalier. En arkivserie" +
								" kan være alt fra meget lille, fx et register i en regnskabsprotokol, til" +
								" meget stor, fx 3000 journalsager.";
topicHelp[2] = "Skriv navnet eller en del af navnet på en arkivskaber <i>eller</i> en arkivserie.<br />" + 
								"<b>Arkivskaber</b> er en myndighed, virksomhed, forening eller person, som har" +
								" skabt et arkiv.<br />" +
								"<b>Arkivserie</b> er en samlet gruppe af arkivalier." + 
								" En arkivserie kan være alt fra meget lille, fx et register i en regnskabsprotokol, til" +
								" meget stor, fx 3000 journalsager.";
topicHelp[3] = "For at afgrænse søgningen kan du indtaste start og slutår for den periode, du vil undersøge.";

							 // Hjælpetekster til MeDetaljer:
topicHelp[4] = "Skriv dit fulde navn.<br /><b>Ved udlån til myndighed:</b><br />" +
							 "Skriv myndighedens navn, efterfulgt af dit eget navn.";
topicHelp[5] = "Skriv dit postnummer.<br /><b>Ved udlån til myndighed:</b><br />" +
							 "Skriv myndighedens postnummer.";
topicHelp[6] = "Skriv din e-mail-adresse. Har du ingen e-mail, kan du bestille på en almindelig" +
							 " bestillingsseddel på læsesalen.<br />" +
							 "<b>Ved udlån til myndighed:</b><br />Skriv relevant e-mail-adresse.<br />";
topicHelp[7] = "Vælg den læsesal fra listen, hvor du ønsker at benytte arkivalierne.<br />" +
							 "Nogle arkivalier kan kun benyttes på læsesalen i det arkiv, hvor arkivalierne opbevares.";
topicHelp[8] = "Skriv den dato, du ønsker at benytte arkivalierne fra. (skriv dato som: dd.mm.åååå).<br />" +
							 "Bemærk at ekspeditionstiden kan være op til 2 hverdage for arkivalier i fjernmagasin. Ved fjernlån" +
							 " kan ekspeditionstiden være op til 14 dage. Fjernlån er, når man vil benytte arkivalierne på en" +
							 " anden læsesal end der hvor de opbevares. Fx hvis arkivalier fra Landsarkivet i Viborg skal bruges" +
							 " på en læsesal i Odense.<br />" +
							 "For arkivalier i eksternt fjernmagasin kan ekspeditionstiden være længere, se nærmere på" +
							 " <a href=\"http://www.sa.dk\">www.sa.dk</a> under arkivets åbningstider";
topicHelp[9] = "Skriv nummer på læsesalsplads, hvis du befinder dig på læsesalen når du afgiver bestillingen," +
							 " og ønsker at anvende arkivalierne samme dag.<br />" +
							 "<b>Det er ikke muligt at reservere læsesalsplads gennem Daisy</b>. Levering af arkivalier samme" +
							 " dag er kun muligt på hverdage, og hvis bestillingen er afgivet inden kl. 14.30.";
topicHelp[10] = "Udfyldes kun hvis du har fået en adgangstilladelse, udstedt af Rigsarkivet, Landsarkivet for Sjælland," +
								" Landsarkivet for Fyn, Landsarkivet for Nørrejylland, Landsarkivet for Sønderjylland eller Erhvervsarkivet." +
								" I feltet skal du skrive adgangstilladelsens journalnummer.<br />" +
								"<b>Adgangstilladelse</b> er en skriftlig tilladelse til at anvende arkivalier, der ikke umiddelbart er" +
								" tilgængelige. Arkivalier, der er yngre end 20 år, og arkivalier, der indeholder personfølsomme oplysninger," +
								" der er yngre end 75 år, kræver som hovedregel en særlig adgangstilladelse.";

							 // Hjælpetekster til NgListe:
topicHelp[11] = "Årstallene i Fra og Til er start- og slutår på arkivskaberen.<br />";
topicHelp[12] = "<b>Arkivskaber</b> er en myndighed, virksomhed, forening eller person, som har skabt et arkiv.<br />";
topicHelp[13] = "<b>Arkivserie</b> er en samlet gruppe af arkivalier. En arkivserie kan være alt fra meget lille," +
							  "  fx et register i en regnskabsprotokol, til meget stor, fx 3.000 journalsager.";

							 // Hjælpetekster til HeListe og NgSerier:
topicHelp[14] = "Årstallene i Fra og Til er start- og slutår på arkivserien.<br />";
topicHelp[15] = "<b>Arkivskaber</b> er en myndighed, virksomhed, forening eller person, som har skabt et arkiv.<br />";
topicHelp[16] = "<b>Arkivserie</b> er en samlet gruppe af arkivalier. En arkivserie kan være alt fra meget lille," +
							  "  fx et register i en regnskabsprotokol, til meget stor, fx 3.000 journalsager.";

							 // Hjælpetekster til NgHeListe og NgSerier:
topicHelp[17] = "Årstallene i Fra og Til er start- og slutår på arkivskaberen.<br />";
topicHelp[18] = "<b>Arkivskaber</b> er en myndighed, virksomhed, forening eller person, som har skabt et arkiv.<br />";
topicHelp[19] = "<b>Arkivserie</b> er en samlet gruppe af arkivalier. En arkivserie kan være alt fra meget lille," +
							  "  fx et register i en regnskabsprotokol, til meget stor, fx 3.000 journalsager.";

							 // Hjælpetekster til GListe:
topicHelp[20] = "Hvis der står <q>vis arkivserier</q> i kolonnen Arkivserie eller kolonnen er tom," +
								" angiver årstallene start- og slutår på arkivskaberen." +
								" Hvis der i kolonnen Arkivserie står en navngiven arkivserie, angiver årstallene start- og slutår på arkivserien.";
topicHelp[21] = "<b>Arkivskaber</b> er en myndighed, virksomhed, forening eller person, som har skabt et arkiv.<br />";
topicHelp[22] ="<b>Arkivserie</b> er en samlet gruppe af arkivalier. En arkivserie kan være alt fra meget lille," +
							  "  fx et register i en regnskabsprotokol, til meget stor, fx 3.000 journalsager.";

							 // Hjælpetekster til NgDetaljer:
topicHelp[23] = "Arkivnummer er et nummer alle arkivskabere er blevet tildelt af Statens Arkiver. Det kaldes også proveniensnummer." + 
                                " Nummeret anvendes i forbindelse med bestilling, hvis bestilling ikke foretages i Daisy.";
topicHelp[24] = "Klik på kolonneoverskrift, hvis <q>Fra</q> eller <q>Til</q> er understreget, for at ændre sorteringsrækkefølge.<br />" +
								"Årstal i Fra og Til angiver yderår på forbindelsen mellem arkivskaberne.";
topicHelp[25] = "Organsatorisk enhed, som er den aktuelle arkivskabers overordnede. Det kan fx være et ministerium," +
								" der er overordnet til et kontor i samme ministerium";
topicHelp[26] = "Klik på kolonneoverskrift for at ændre sorteringsrækkefølge.<br />" +
								" <b>Arkivskabere internt underordnet:</b> Organisatorisk enhed, som er en del af og underlagt en" +
								" overordnet myndighed. Det kan fx være et kontor i et ministerium.";
topicHelp[27] = "Klik på kolonneoverskrift for at ændre sorteringsrækkefølge.<br />" +
								" <b>Arkivskabere nedsat af:</b> Midlertidig nedsatte ad hoc udvalg, undersøgelseskommissioner m.v," + 
								" som ikke er un¬derlagt en overordnet myndigheds instruksbeføjelser.";

								// Hjælpetekster til HeDetaljer:
topicHelp[28] = "Der kan være flere eksemplarer af en arkivserie, f.eks. det originale papireksemplar og en" + 
								" kopi på mikrofilm.";
topicHelp[29] = "Fysisk enhed er en arkivpakke, kartoteksæske, protokol mv, der indgår i en arkivserie.";
topicHelp[30] = "Angiver hvilken type elektronisk arkivsystem, der er tale om.<br />" +
								"<b>ESDH-system:</b> Forkortelse af Elektronisk Sags- og Dokument Håndteringssystem. Et IT-system" +
								" (database), hvor både journaloplysninger og journalsager er skabt og lagret i en database.<br />" +
								"<b>Journal:</b> I journalen registreres oplysninger om indholdet i journalsagerne.<br />" +
								"<b>Register:</b> Et register er en (databaser) der opsamler og arkiverer oplysninger i forbindelse" +
								" med en myndigheds virksomhed. Registrets formål kan fx være statistik, kontrol, administration" +
								" eller forskning. Eksempler på registre er CPR, BBR, Landspatientregisteret mv.";
topicHelp[31] = "Et elektronisk arkivsystem kan være afleveret til Statens Arkiver i flere arkiveringsversioner," + 
								" hvor hver version indeholder forskellige data. F.eks. kan den første arkiveringsversion af et" + 
								" elektronisk arkivsystem indeholde data fra perioden 1995-1999, mens den anden version kan" +
								" indeholde data fra perioden 1995-2004.";

							 // Hjælpetekster til forsiden:
topicHelp[32] = "Skriv hele proveniensnummeret eller første del af proveniensnummeret.<br />" + 
								" (f.eks. \"2+0031\".)";
topicHelp[33] = "Arkivskabere og arkivserier som er markeret som kladder medtages i søgeresultatet.";

							 // Endnu en hjælpetekst til MeDetaljer:
topicHelp[34] = "Udfyldes kun hvis du har fået en adgangstilladelse, udstedt af donator af arkivalierne." +
								" Donator er den person, virksomhed mv. som har afleveret arkivalierne til Statens Arkiver." +
								" I feltet skal du skrive adgangstilladelsens dato.<br />" +
								"<b>Adgangstilladelse</b> er en skriftlig tilladelse til at anvende arkivalier, der ikke umiddelbart" +
								" er tilgængelige. Normalt er det Statens Arkiver der giver adgangstilladelse til arkivalier," +
								" der ikke umiddelbart er tilgængelige, men for visse privatarkiver gives tilladelsen af donator selv.";

							 // Endnu en hjælpetekst til MeDetaljer:
topicHelp[35] = "Hvis du er ansat i Statens Arkiver kan du vælge dit eget navn på listen."; 

							 // Endnu en hjælpetekst til NgSerier:
topicHelp[36] = "Bestemmelser udstedt af Statens Arkiver, som fastsætter hvilke arkivalier der skal bevares, og hvilke der skal kasseres."; 

							 // Endnu en hjælpetekst til HeDetaljer:
topicHelp[37] = "Reference er en henvisning til registrering i ældre registraturer (dvs. fortegnelse over hvilke typer protokoller" +
                                " og dokumenter der findes i et arkiv) og guider (bøger, der gennemgår Statens Arkivers samlinger)."; 

							 // Endnu to hjælpetekster til MeListe:
topicHelp[38] = "Pakkenummer for de fysiske enheder."; 
topicHelp[39] = "<q>Indhold fra</q> angiver det første element i en fysisk enhed (f.eks. den første sag) og <q>Indhold til</q> det" +
                                " sidste element i en fysisk enhed."; 

function showTip(e, nr)
{
	var box = document.getElementById('mitTip');
	var tip = document.getElementById('TipIndhold');
	var offX = 30;
	var offY = -20;
	var text = "";
	var x = 100;
	var y = 100;

	// code to calculate mouse position adapted from http://javascript.about.com/library/blmousepos.htm
    if (e.pageX) 
		{ 
			//Firefox kommer her.
			x = e.pageX; 
		}
    else if (e.clientX) 
		{
			x = e.clientX;
			if (document.documentElement.scrollLeft)
			{ 
				x = x + document.documentElement.scrollLeft; 
			}
			else
			{ 
				//IE6 kommer her.
				x = x + document.body.scrollLeft - 50; //Rettet 2-9-2009 LH.
			}
		}

    if (e.pageY) 
		{ 
			//Firefox kommer her.
			y = e.pageY; 
		}
    else if (e.clientY) 
		{
			y = e.clientY;
			if (document.documentElement.scrollTop)
			{ 
				y = y + document.documentElement.scrollTop; 
			}
			else
			{
				//IE6 kommer her.
				y = y + document.body.scrollTop - 110; //Rettet 2-9-2009 LH.
				if (y < 125) //Tilføjet 2-9-2009 LH.
				{
				    y = 132;
				} 
			}
		}

	try
	{
		if (document.getElementById("BestilBenytSted") != null)
		{
		    if (nr == 4 || nr == 7)
		    {
			    document.getElementById("BestilBenytSted").style.visibility = "hidden"; //LH 18-feb-2008
		    }
		}
		if (document.getElementById("BestilBenytSted") != null && document.getElementById("ComboArkivarBestilling") != null)
		{
		    if (nr == 35)
		    {
			    document.getElementById("ComboArkivarBestilling").style.visibility = "hidden"; //LH 18-feb-2008
			    document.getElementById("BestilBenytSted").style.visibility = "hidden"; //LH 18-feb-2008
		    }
		}
		box.style.left = (offX + x) + 'px';
		box.style.top = (offY + y) + 'px';
		text = topicHelp[nr];
		tip.innerHTML = text;
		box.style.visibility = "visible";  
	}
	catch (ex)
	{
	}
}


function hideTip()
{
	try
	{
		// IE combobox bug hotfix:
		if (document.getElementById("BestilBenytSted") != null && document.getElementById("ComboArkivarBestilling") != null)
		{
		    document.getElementById("BestilBenytSted").style.visibility = "visible"; //LH 18-feb-2008
		    document.getElementById("ComboArkivarBestilling").style.visibility = "visible";
		}
	}
	catch (ex)
	{
	}
	var box = document.getElementById('mitTip');
	box.style.visibility = "hidden";
}

function flipVisibility(objId, linkId)
{
    var x;
    x = document.getElementById(objId);
    if (x != null)
    {
        if (x.style.visibility == "visible"  || x.style.visibility == "")
        {
            contentHolder = x.innerHTML;
            x.innerHTML = "";
            x.style.visibility = "hidden";
            document.getElementById("PlusMinus").innerHTML = "<img src=\"/images/PlusBox.gif\" alt=\"vis tekst\" style=\"border: none; vertical-align: bottom;\" onclick=\"flipVisibility('BKFilLinks', 'flipLink');\" />";
            document.getElementById(linkId).innerHTML = "Vis bevarings- og kassationsbestemmelser";
        }
        else if (x.style.visibility == "hidden")
        {
            x.innerHTML = contentHolder;
            x.style.visibility = "visible";
            document.getElementById("PlusMinus").innerHTML = "<img src=\"/images/MinusBox.gif\" alt=\"vis tekst\" style=\"border: none; vertical-align: bottom;\" onclick=\"flipVisibility('BKFilLinks', 'flipLink');\" />";
            document.getElementById(linkId).innerHTML = "Skjul bevarings- og kassationsbestemmelser";
        }
    }
}

function saveTxt(objId)
{
    if (document.getElementById(objId) != null)
    {
	    txtHolder = document.getElementById(objId).innerHTML;
	}
}

function txtLimit(objId, maxLength)
{
	var txt;

    if (document.getElementById(objId) != null)
    {
        //alert("--> " + txtHolder);
	    txt = document.getElementById(objId).innerHTML;
    	
	    if (txt.length > maxLength)
	    {
		    document.getElementById(objId).innerHTML = txtHolder.substr(0, (maxLength - 3)) + "...";
		    document.getElementById("nLink").innerHTML = "Vis hele teksten";
	    }
	    else 
	    {
		    document.getElementById(objId).innerHTML = txtHolder;
		    document.getElementById("nLink").innerHTML = "Vis forkortet tekst";
	    }
	}
}

/////////////////////////////////////////////////////////////////////
//////// Functions til brug for visning af hjælpbox: Slut. //////////
/////////////////////////////////////////////////////////////////////

