
//*******************************************************************
// Skapad av: Daniel Eklund, daniel.eklund@projector.se
// Skapad datum: 2000-04-16
// Modifierad av: 
// Modifierad datum: 
// Kommentar: Detta är ett javascript som kör validation på de fält
//			  som man anger i arrayen.
//*******************************************************************

var changed = false;
//********************************************************************
// Denna funktion sätter flaggan "changed" till true om man ändrar 
// i något fält som anropar denna funktion vid Onchange.                           
//********************************************************************
function SetFlag()
{
	changed = true
}

//********************************************************************
// Denna funktion går igenom alla de fält som man anger i arrayen och 
// kollar så att de är ifyllda och beroende på vad man har angivit 
// vad den ska checka på (date,numeric,text).                                       
//********************************************************************
var save = 0;
var checknumericError = 0;
var error = 0;
var alert_window = '';
function CheckValues(obj) 
{	

	var form = document.forms[obj]

	if(ArrayFields.length != 0)
		{

		var i = 0;
		// Loopar igenom arrayen och kollar fälten som du angivit i arrayen
		while(i < ArrayFields.length)
		{
			// Om inte fältet får vara tomt
			if(ArrayFilled[i] == true)
			{
				if(form.elements[ArrayFields[i]].value == '')
				{
					alert_window = alert_window + '- Du måste skriva något i fältet "'+ ArrayHeadlines[i] +'".<br>';
					//save-värdet måste vara 0 för att man ska kunna spara
					save = save + 1;
				}
				
			}
			
			// Om det ska datum-kollas
			if(ArrayType[i] == 'date')
			{	
				headline = ArrayHeadlines[i];
				isYear(form.elements[ArrayFields[i]].value, headline);
			}
			
			// Om det ska tid-kollas
			if(ArrayType[i] == 'time')
			{	
				headline = ArrayHeadlines[i];
				isTime(form.elements[ArrayFields[i]].value, headline);
			}
			
			// Om det ska email-kollas
			if(ArrayType[i] == 'email')
			{	
				if(form.elements[ArrayFields[i]].value.indexOf('@') == -1)
				{
					alert_window += '- Du har inte angivit en korrekt e-mail address!<br>';
					save = save + 1;
				}
			}
			
			// Om det ska kollas så att värdet är numeriskt alltså 
			// siffrona "0" till "9" 
			if(ArrayType[i] == 'numeric')
			{	
					var z = 0;
					for (z = 0; z < form.elements[ArrayFields[i]].value.length; z++)
					{   
						var checkNumeric = form.elements[ArrayFields[i]].value.charAt(z);						if(isDigit(checkNumeric) == false)						{							checknumericError = checknumericError + 1;						}
					}
					// Om checknumericError är annat än noll blir det fel
					if(checknumericError != 0)
					{
						alert_window = alert_window + '- Du kan endast skriva numeriska heltal i fältet "'+ ArrayHeadlines[i] +'".<br>';
						alert_window += 'Ex. 50000 (inte 50.000, 50 000 eller 49,50)<br>';
						//save-värdet måste vara 0 för att man ska kunna spara
						save = save + 1;
					}
					checknumericError = 0;
			}
			i = i + 1;
			
		}
		if(save == 0)
		{
			// Om man klickat på "save"-knappen så sätts flaggan "changed" till false
			// så att funktionen ConfirmSave inte körs vid OnUnload
				changed = false
				//form.submit();
				// *** Skall ändras till att skicka kommandon till statusfältet.
				i = 0;
				save = 0;
				return true;
		}
		else
		{
			// Kör ut en alert-ruta med alla validation-fel
			alertWindow(alert_window);
			alert_window = ''
			i = 0;
			save = 0;
			return false;
		}
		
		i = 0;
		save = 0;
	}
	else
	{	
		//form.submit();
		// *** Skall ändras till att skicka kommandon till statusfältet.

		i = 0;
		save = 0;
		return true;
	}
}


//********************************************************************
// Denna funktion går igenom kollar så att datum formatet stämer
// alltså (yyyy-mm-dd).
//********************************************************************
var checkdateError = 0;function isYear(s)
{  	if(s != '')	{		if(s.length == 10)
		{
			if(s.indexOf('-') == 4)			{				if(s.indexOf('-',5) == 7)				{
					var ArrayNumbers = s.split('-')
					
					// Kollar år					if((ArrayNumbers[0] >= 1900) && (ArrayNumbers[0] <= 2079))
					{}					else					{						checkdateError = checkdateError + 1;					}
										// Kollar månad
					if((ArrayNumbers[1] >= 1) && (ArrayNumbers[1] <= 12))
					{}					else					{						checkdateError = checkdateError + 1;					}
					
					// Kollar dag
					if((ArrayNumbers[2] >= 1) && (ArrayNumbers[2] <= 31))
					{}					else					{						checkdateError = checkdateError + 1;					}				
				}
				else
				{
					checkdateError = checkdateError +1
				}			}			else
			{
				checkdateError = checkdateError +1
			}
		}		else
		{
			checkdateError = checkdateError +1
		}		
		
		// Om "checkdateError" inte är 0 så är det fel i datum-formatet		if(checkdateError != 0)		{			// Nu går det inte att spara
			save = save + 1;						alert_window = alert_window + '- Fältat "'+headline+'" har skrivits i fel datum format (yyyy-mm-dd).<br>';
			// Nollställning av errorchecken
			checkdateError = 0;		}	}
}

//********************************************************************
// Denna funktion går igenom kollar så att tids formatet stämer
// alltså (hh:mm).
//********************************************************************
var checktimeError = 0;function isTime(s)
{  	if(s != '')	{		if(s.length == 5)
		{
			if(s.indexOf(':') == 2)			{
					var ArrayNumbers = s.split(':')
										if((ArrayNumbers[0] >= 0) && (ArrayNumbers[0] <= 23) && (ArrayNumbers[1] >= 0) && (ArrayNumbers[1] <= 59))					{}					else					{
						checktimeError = checktimeError + 1;
					}															}			else
			{
				checktimeError = checktimeError +1
			}
		}		else
		{
			checktimeError = checktimeError +1
		}		
		
		// Om "checktimeError" inte är 0 så är det fel i tids-formatet		if(checktimeError != 0)		{			// Nu går det inte att spara
			save = save + 1;						alert_window = alert_window + '- Fältet "'+headline+'" har skrivits i fel tids-format (hh:mm).<br>';
			// Nollställning av errorchecken
			checktimeError = 0;		}	}
}


//********************************************************************// Denna funktion använder jag till att isYear-funktionen och för att 
// kolla varje enskild bokstav/siffra om det är ett nummer eller ej.// Den används även till att kolla om ett fält är numeriskt.
//********************************************************************function isDigit(c)
{	return ((c >= "0") && (c <= "9"))   //return ((c >= "0") && (c <= "9") || (c == ",") || (c == "."))
}

