﻿// JavaScript til Daisy. [LH 9. marts 2009].

function trim(s) 
{
	try
	{
		while (s.substring(0,1) == ' ') 
		{
			s = s.substring(1,s.length);
		}
		while (s.substring(s.length-1,s.length) == ' ') 
		{
			s = s.substring(0,s.length-1);
		}
		return s;
	}
	catch (err)
	{
		return "";
	}
}

function validate()
{
	var strNg;
	var strHe;
	var strGlobal;
	var fra;
	var til;
	var submitOK;
	var d;
	var iaar;
	var legal = "abcdefghijklmnopqrstuvwxyzæøåABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ0123456789äëïöüâêîôûáéíóúàèìòùãñõÄËÏÖÜÂÊÎÔÛÁÉÍÓÚÀÈÌÒÙÃÑÕ +-,.:!()[]{}#/?&*";
	var good;
	var nummer = "0123456789";
	var tjek;
	var x;

	var lowercaseFilter;
	var talFilter;
	lowercaseFilter = /[^abcdefghijklmnopqrstuvwxyzæøå0123456789äëïöüâêîôûáéíóúàèìòùãñõ +\-,.:!()\[\]{}#/?&*]/;
//	talFilter = /^[0-9]$/;
	talFilter = /[^0123456789]/;

// Set cursor to hourglass:
	document.body.style.cursor='wait';

	d = new Date();
	iaar = d.getFullYear();

	try
	{
		x=document.forms.soegForm;

		strNg = trim(x.a.value);
		strHe = trim(x.b.value);
		strGlobal = trim(x.c.value);
		fra = trim(x.d.value);
		til = trim(x.e.value);
		
		if (x == null)
		{
		    strGlobal = trim(document.getElementById.c.value);
		}
		
		if (fra == "")
		{
		    fra = "1";
		    document.getElementById("sfd").value = fra;
		}
		if (til == "")
		{
		    til = String(iaar);
		    document.getElementById("sfe").value = til;
		}
	}
	catch (ex)
	{
		// Sæt form-elementerne til tomme strenge, så valideringen kan fortsætte.
		strNg = "";
		strHe = "";
		strGlobal = "";
		fra = "";
		til = "";

		// Hvis afsenderen ikke er den indre søgebox, prøv den eksterne:
		try
		{
			strGlobal = trim(document.getElementById("s").value);
		}
		catch (ex)
		{
				strGlobal = "";
		}
	}

	submitOK = true;

	if ( erUlovlig(fra, talFilter, 0, 4, "årstalsfelter") )
	{
		submitOK = false;
	}

	if ( erUlovlig(til, talFilter, 0, 4, "årstalsfelter") )
	{
		submitOK = false;
	}

	if (submitOK)
	{
		if (til.length < 4 && til != "") 
		{
			alert("Skriv firecifret årstal.");
			submitOK = false;
		}
		if ((fra > iaar) || (til > iaar)) 
		{
			alert("Du kan ikke søge på årstal større end: " + iaar + ".");
			submitOK = false;
		}
		if ((fra != "") && (til != "")) 
		{
			if ((2 * fra) > (2 * til)) 
			{
				alert(fra + " er større end " + til + ". Søgningen kan derfor ikke gennemføres.");
				submitOK = false;
			}
		}
	}

	if (strNg.length + strHe.length + strGlobal.length < 2){
		alert("Du skal skrive mindst 2 bogstaver/tegn i en tekstboks.");
		submitOK = false;
	}
	else if (strNg.length == 1 && strHe.length < 2){
		alert("Du skal skrive mindst 2 bogstaver/tegn i en tekstboks.");
		submitOK = false;
	}
	else if (strHe.length == 1 && strNg.length < 2) {
		alert("Du skal skrive mindst 2 bogstaver/tegn i en tekstboks.");
		submitOK = false;
	}

	if (submitOK == true)
	{
		if ( erUlovlig(strNg, lowercaseFilter, 0, 50, "søgefelter") )
		{
			submitOK = false;
		}
		if ( erUlovlig(strHe, lowercaseFilter, 0, 50, "søgefelter") )
		{
			submitOK = false;
		}
		if ( erUlovlig(strGlobal, lowercaseFilter, 0, 50, "søgefelter") )
		{
			submitOK = false;
		}
	}

	if (submitOK == true) 
	{
		if ((strNg != "") && (strHe == ""))
		{
			x.action = "/content/dk/daisy/arkivskaber_liste";
		}
		else if ((strNg == "") && (strHe != ""))
		{
			x.action = "/content/dk/daisy/arkivserie_liste";
		}
		else if ((strNg != "") && (strHe != ""))
		{
			x.action = "/content/dk/daisy/arkivskaber_og_arkivserie_liste";
		}
		else if ((strNg == "") && (strHe == ""))
		{
			x.action = "/content/dk/daisy/arkivskaber_eller_arkivserie_liste";
		}
		
		if (strGlobal != "")
		{
			x.action = "/content/dk/daisy/arkivskaber_eller_arkivserie_liste";
		}
		return true;
	}
	else 
	{
		x.action = "default.asp";
		document.body.style.cursor='default';
		return false;
	}
}

// Til validering af bestillinger (Medetaljer.asp):
function validateText2(txtField, txt)
{
	var filter;

	switch (txtField)
	{
	case "Navn":
		filter  = /^[a-zA-ZæøåÆÅØ_0-9 ()_\-\+,\.\&]{5,60}$/;   // &-tegn tilføjet. LH 29-sept-2008.
		break;
	case "Postnr":
		filter  = /^[a-zA-ZæøåÆÅØ_0-9 _\-\+,\.]{4,40}$/;
		break;
	case "EMail":
		filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+[a-zA-Z0-9]{2,4}$/;  // email address filter
		break;
	case "BenytSted":
		filter  = /^[a-zA-ZæøåÆÅØ_0-9 _\-\+,\.]{2,60}$/;
		break;
	case "BenytDato":
	case "TilladelseDato": 
		filter  = /^[0-9]{1,2}[ \/\-\.]{1}[0-9]{1,2}[ \/\-\.]{1}[0-9]{4}$/;    //LH 18-feb-2008.
		break;
	case "BenytPlads":
		filter  = /^[0-9]{0,2}$/;
		break;
	case "Tilladelse": 
		filter  = /^[0-9]{4}([\-]{1}[0-9]{1,4}){0,1}[ \/\-\.]{1}[0-9]{1,6}$/;  // Accepterer nu 2 journalnummertyper. LH 7-nov-2008.
		break;	
	default:
		filter  = /^[0-9]{2,4}$/; // Should never be used, of cause.
	}

  var reg = new RegExp(filter);

	//alert("Tekst: " + txt + "\nFilter: " + filter)
	if ((reg.test(txt)) && (txt.length < 200) )
	{
//		alert('YES! Correct text : ' + txt);
		return true;  // text accepted
	}
	else 
	{
//		alert('NO! Incorrect text : ' + txt);
		return false; // text not accepted
	}
}

function validateEx()
{
	var fejlkode;
	var strGlobal;
	var lowercaseFilter;
	lowercaseFilter = /[^abcdefghijklmnopqrstuvwxyzæøå0123456789äëïöüâêîôûáéíóúàèìòùãñõ +\-,.:!()\[\]{}#/?&*]/;

	try
	{
		strGlobal = trim(document.forms.DaisySoegForm.s.value);
	}
	catch (ex)
	{
			strGlobal = "";
	}

	if ( !erUlovlig(strGlobal, lowercaseFilter, 2, 50, "tekstfelter") )
	{
		return true;
	}
	else 
	{
		return false;
	}
}

// Funktionen returnerer true hvis den finder en ulovlig karakter.
function erUlovlig(txt, pattern, minLength, maxLength, feltbetegnelse)
{
	var reg = new RegExp(pattern);

// fejlkode værdier:
// 0 -> alt er okay.
// 1 -> teksten er for kort.
// 2 -> teksten er for lang.
// 3 -> teksten indeholder ugyldige tegn.
	
	if (txt.length < minLength)
	{
		alert("Din tekst er for kort. " + minLength + " er minimumslængden for " + feltbetegnelse + ".");
		return true;
	}

	if (txt.length > maxLength)
	{
		alert("Din tekst er for lang. " + maxLength + " er maximumslængden for " + feltbetegnelse + ".\n" + txt);
		return true;
	}

	var s = txt.toLowerCase();
	if (reg.test(s))
	{
		var k;
		k = s.search(reg);
		alert("Din tekst indeholder ulovlige tegn.\nTegnet: " + txt.charAt(k) + " er ikke tilladt i " + feltbetegnelse + ".");
		return true;
	}

	return false;
}

function resetInputDaisy( input )
{
	if ( input.value == "Indtast navn på arkivskaber eller arkivserie" )
	{
			input.value = '';
		  input.style.color = 'black';
	}
}