// **************************************************************************
// * Den här filen innehåller allmänna JavaScript, det vill säga script som *
// * kan användas på flera, olika sidor.                                    *
// *                                                                        *
// **************************************************************************

// ---------------------------------------- A ----------------------------------------

// Funktion för att ändra bakgrundsfärgen på ett objekt,
// företrädesvis en textbox
// Kan anropas på följande vis:
// AndraBakgrundsfarg(this, '#FFFFFF');
function AndraBakgrundsfarg(objekt, farg)
{
	// Sätter bakgrundsfärgen hos objekt till farg
	objekt.style.background = farg;
}

// ---------------------------------------- B ----------------------------------------

// Funktion för att lägga till aktuell webbsida
// bland användarens favoriter
// Anmärkning:
// Å unescape("%C5")
// Ä unescape("%C4")
// Ö unescape("%D6")
// å unescape("%E5")
// ä unescape("%E4")
// ö unescape("%F6")
// Kan anropas på följande vis:
// BokmarkaAktuellWebbsida();
function BokmarkaAktuellWebbsida()
{
	// Kontrollerar om webbläsaren stöder AddFavorite eller ej
	if(document.all)
	{
		// ...
		window.external.AddFavorite(location.href, document.title);
	}
	else
	{
		// Användaren får ett meddelande om att webbläsaren inte stöder AddFavorite
		// och att webbsidan istället kan bokmärkas med CTRL + D
		alert("Din webbl" + unescape("%E4") + "sare har inte st" + unescape("%F6") + "d f" + unescape("%F6") + "r denna funktion.\n" +
			  "Bokm" + unescape("%E4") + "rk sidan manuellt med <CTRL+D>, eller motsvarande.");
	}
}

// ---------------------------------------- R ----------------------------------------

// Funktion för att räkna antalet ord i ett textfält
// Kan anropas på följande vis:
// RaknaAntalOrd(this, 'antalOrd');
function RaknaAntalOrd(faltMedOrd, namnPaFaltMedAntalOrd)
{
	// Sparar undan textfältet som ska visa antalet ord i texten
	var faltMedAntalOrd = document.getElementById(namnPaFaltMedAntalOrd);

	// Är textfältet med orden tomt?
	if(faltMedOrd.value == "")
	{
		// Ja, varför antalet ord skrivs ut som noll
		faltMedAntalOrd.value = 0;
	}
	else
	{
		// Nej

		// Deklarerar och initierar variabel som ska
		// innehålla det sammanlagda antalet ord
		var antalOrd = 0;

		// Sparar undan texten med ord
		var textMedOrd = faltMedOrd.value;

		// Skapar utifrån texten med ord en array
		// där varje element motsvarar ett ord
		var arrayMedOrd = textMedOrd.split(' ');

		// Går igenom varje element i arrayen
		for(var i = 0; i < arrayMedOrd.length; i++)
		{
			// Är array-elementet "tomt"?
			if(arrayMedOrd[i] != "")
			{
				// Nej, varför antalet ord plussas på med ett
				antalOrd++;
			}
		}

		// Skriver ut hur många ord texten innehåller
		faltMedAntalOrd.value = antalOrd;
	}
}

// Funktion för att räkna antalet tecken i ett textfält
// samt begränsa dem till maxantalet
// Kan anropas på följande vis:
// RaknaBegransaTecken(this, document.Form1.textfalt, 40);
function RaknaBegransaTecken(faltetMedSkrivnaTecken, faltetMedAntalTecken, maxAntalTecken)
{
	// Är antalet skrivna tecken fler än det maximala antalet tillåtna tecken?
	if(faltetMedSkrivnaTecken.value.length > maxAntalTecken)
	{
		// Ja, vilket innebär att tecken utöver det maximalt antal tillåtna tas bort
		faltetMedSkrivnaTecken.value = faltetMedSkrivnaTecken.value.substring(0, maxAntalTecken);
	}
	else
	{
		// Nej, vilket innebär att kvarvarande antal tecken ska skrivas ut
		faltetMedAntalTecken.value = maxAntalTecken - faltetMedSkrivnaTecken.value.length;
	}
}

// ---------------------------------------- S ----------------------------------------

// Funktion för att markera, eller välja, all inskriven text i en textbox
// Kan anropas på följande vis:
// MarkeraAllTextITextruta(this);
function MarkeraAllTextITextruta(objekt)
{
	// Är textrutan tom?
	if(objekt.value == "")
	{
		// Ja, och därför ska inget hända
		return;
	}
	else
	{
		// Nej, och därför ska all inskriven text markeras så att
		// användaren direkt kan skriva över det tidigare ordet
		objekt.select();
	}
}

// ---------------------------------------- ? ----------------------------------------


// ---------------------------------------- ? ----------------------------------------
