function IsNumeric(sText)
{
var ValidChars = "0123456789.";
var IsNumber=true;
var Char;

try
{
for (i = 0; i < sText.length && IsNumber == true; i++)
{
  Char = sText.charAt(i);
  if (ValidChars.indexOf(Char) == -1)
  {
	 IsNumber = false;
  }
}
return IsNumber;
}
catch(e)
{
	return false;
}
}



function isFilled(inputValue)
{
  try
  {
	if (!inputValue.value || inputValue.value == "")
		return false;
	else
		return true;
  }
  catch(e)
  {
  	return false;
  }
}

function isEmail(theElement)
{
  str = theElement.value;
  if (!(result = ((str != "") && (str.indexOf("@") != -1) && (str.indexOf(".") != -1))))
  {
    theElement.focus();
  }
  return result;
}


function selectIsSelected( radioObject )
{
   var isSelected = false;

   try
   {
	   for( index = 0; index < radioObject.length; index ++ )
	   {
			if( ( radioObject[index].checked == true ) && ( radioObject[index].value ) )
			{
				 isSelected = true;
			}
	   }
	   return isSelected;
    }
    catch(e)
    {
    	return false;
    }
}


function strtoint(s)
{
try
{
  if (IsNumeric(s))
  {
     var number = 0;
     number = parseInt(s);
     return number;
  }
  Else
  {
  	return -1;
  }
}

 catch(e)
 {
 	return -2;
 }
}



function ValiderForm(formen)
{
	var bResult;

	// Nafn
	if (!isFilled(formen.Nafn))
	{
		formen.Nafn.focus();
		alert("Verður að upplýsa nafn.");
		return false
	}

	// Fæðingarár
	
	bResult = isFilled(formen.Far) && IsNumeric(formen.Far.value) && (formen.Far.value.length == 4);
	if (!bResult)
	{
		formen.Far.focus();
		alert("Fæðingarár á að vera 4 stafa tala, t.d. 1960");
		return false
	}
	sFodselsAar = formen.Far.value;
	if ((strtoint(sFodselsAar)<1900) || (strtoint(sFodselsAar)>2008))
	{
		formen.Far.focus();
		alert("Fæðingarár á að vera á bilinu 1900-2008, t.d. 1960");
		return false
	}



	// Fjöldi maraþona
	bResult = isFilled(formen.FjM) && IsNumeric(formen.FjM.value);
	if (!bResult)
	{
		formen.FjM.focus();
		alert("Fjöldi maraþon-hlaupa á að vera 1-3 stafa tala");
		return false
	}
	sFjM = formen.FjM.value;
	if ((strtoint(sFjM)<1) || (strtoint(sFjM)>300))
	{
		formen.FjM.focus();
		alert("Fjöldi maraþon hlaupa á að vera á bilinu 1-300");
		return false
	}

	// Staður	
	if (!isFilled(formen.Stadur))
	{
		formen.Stadur.focus();
		alert("Verður að upplýsa stað.");
		return false
	}
	
	// Ár
	
	bResult = isFilled(formen.Ar) && IsNumeric(formen.Ar.value) && (formen.Ar.value.length == 4);
	if (!bResult)
	{
		formen.Ar.focus();
		alert("Ár á að vera 4 stafa tala, t.d. 2007");
		return false
	}
	sAar = formen.Ar.value;
	if ((strtoint(sAar)<1900) || (strtoint(sAar)>2040))
	{
		formen.Ar.focus();
		alert("Ár á að vera á bilinu 1900-2040, t.d. 2007");
		return false
	}	
	
	// Tímar (klst)
	bResult = isFilled(formen.Timar) && IsNumeric(formen.Timar.value);
	if (!bResult)
	{
		formen.Timar.focus();
		alert("Klst. (klukkustundir) á að vera 1 stafa tala");
		return false
	}
	sTimar = formen.Timar.value;
	if ((strtoint(sTimar)<2) || (strtoint(sTimar) > 11))
	{
		formen.Timar.focus();
		alert("Klst. (klukkustundir) á að vera á bilinu 2-11");
		return false
	}		
	
	// Mínútur 
	bResult = isFilled(formen.Minutur) && IsNumeric(formen.Minutur.value);
	if (!bResult)
	{
		formen.Minutur.focus();
		alert("Mín. (mínútur) á að vera 1-2 stafa tala");
		return false
	}

	sMinutur = formen.Minutur.value;
	if ((strtoint(sMinutur)<0) || (strtoint(sMinutur) > 59))
	{
		formen.Minutur.focus();
		alert("Mín. (mínútur) eiga að vera á bilinu 0-59");
		return false
	}		
	
	// Sekúndur
	bResult = isFilled(formen.Sekundur) && IsNumeric(formen.Sekundur.value);
	if (!bResult)
	{
		formen.Sekundur.focus();
		alert("Sek. (sekúndur) á að vera 1-2 stafa tala");
		return false
	}
	sSekundur = formen.Sekundur.value;
	if ((strtoint(sSekundur)<0) || (strtoint(sSekundur) > 59))
	{
		formen.Sekundur.focus();
		alert("Sek. (sekúndur) eiga að vera á bilinu 0-59");
		return false
	}
		
	
	// Kyn
	if (!selectIsSelected(formen.kyn))
	{
		alert("Það á eftir að gefa upp kyn.");
		return false;
	}
	
	// Lykilorð
	if (!isFilled(formen.Password))
	{
		formen.Password.focus();
		alert("Verður að setja inn lykilorð.");
		return false
	}


	// við náðum svo langt, þannig að allt er í lagi ==> OK
	return true;
}


function ValiderBreytingaForm(formen, checkstadur)
{
	var bResult;

	// Nafn
	if (!isFilled(formen.Nafn))
	{
		formen.Nafn.focus();
		alert("Verður að upplýsa nafn.");
		return false
	}

	// Fæðingarár
	
	bResult = isFilled(formen.Far) && IsNumeric(formen.Far.value) && (formen.Far.value.length == 4);
	if (!bResult)
	{
		formen.Far.focus();
		alert("Fæðingarár á að vera 4 stafa tala, t.d. 1960");
		return false
	}
	sFodselsAar = formen.Far.value;
	if ((strtoint(sFodselsAar)<1900) || (strtoint(sFodselsAar)>2000))
	{
		formen.Far.focus();
		alert("Fæðingarár á að vera á bilinu 1900-2000, t.d. 1960");
		return false
	}


	// Fjöldi maraþona
	bResult = isFilled(formen.FjM) && IsNumeric(formen.FjM.value);
	if (!bResult)
	{
		formen.FjM.focus();
		alert("Fjöldi hlaupa á að vera 1-3 stafa tala");
		return false
	}
	sFjM = formen.FjM.value;
	if ((strtoint(sFjM)<1) || (strtoint(sFjM)>300))
	{
		formen.FjM.focus();
		alert("Fjöldi maraþon hlaupa á að vera á bilinu 1-300");
		return false
	}

	// Staður (eingöngu í Maraþonskrá)	
	if (checkstadur)
	{
		if (!isFilled(formen.Stadur))
		{
			formen.Stadur.focus();
			alert("Verður að upplýsa stað.");
			return false
		}
	}
	
	// Ár
	
	bResult = isFilled(formen.Ar) && IsNumeric(formen.Ar.value) && (formen.Ar.value.length == 4);
	if (!bResult)
	{
		formen.Ar.focus();
		alert("Ár á að vera 4 stafa tala, t.d. 2007");
		return false
	}
	sAar = formen.Ar.value;
	if ((strtoint(sAar)<1900) || (strtoint(sAar)>2020))
	{
		formen.Ar.focus();
		alert("Ár á að vera á bilinu 1900-2020, t.d. 2007");
		return false
	}	
	
	// Tímar (klst)
	bResult = isFilled(formen.Timar) && IsNumeric(formen.Timar.value);
	if (!bResult)
	{
		formen.Timar.focus();
		alert("Klst. (klukkustundir) á að vera 1-2 stafa tala");
		return false
	}
	sTimar = formen.Timar.value;
	if ((strtoint(sTimar)<2) || (strtoint(sTimar) > 15))
	{
		formen.Timar.focus();
		alert("Klst. (klukkustundir) á að vera á bilinu 2-15");
		return false
	}		
	
	// Mínútur 
	bResult = isFilled(formen.Minutur) && IsNumeric(formen.Minutur.value);
	if (!bResult)
	{
		formen.Minutur.focus();
		alert("Mín. (mínútur) á að vera 1-2 stafa tala");
		return false
	}

	sMinutur = formen.Minutur.value;
	if ((strtoint(sMinutur)<0) || (strtoint(sMinutur) > 59))
	{
		formen.Minutur.focus();
		alert("Mín. (mínútur) eiga að vera á bilinu 0-59");
		return false
	}		
	
	// Sekúndur
	bResult = isFilled(formen.Sekundur) && IsNumeric(formen.Sekundur.value);
	if (!bResult)
	{
		formen.Sekundur.focus();
		alert("Sek. (sekúndur) á að vera 1-2 stafa tala");
		return false
	}
	sSekundur = formen.Sekundur.value;
	if ((strtoint(sSekundur)<0) || (strtoint(sSekundur) > 59))
	{
		formen.Sekundur.focus();
		alert("Sek. (sekúndur) eiga að vera á bilinu 0-59");
		return false
	}
		
	
	// Kyn
	if (!selectIsSelected(formen.kyn))
	{
		alert("Það á eftir að gefa upp kyn.");
		return false;
	}
	
	// Nafn breytanda
	if (!isFilled(formen.NafnBreytanda))
	{
		formen.NafnBreytanda.focus();
		alert("Vinsamlegast sláðu inn nafn þitt í reitinn 'Þitt nafn'.");
		return false
	}

	// Nafn breytanda
	if (!isFilled(formen.Athugasemd))
	{
		formen.Athugasemd.focus();
		alert("Vinsamlegast sláðu inn nokkur orð er lýsa leiðréttingunni, t.d. Fjöldi maraþona leiðréttur.");
		return false
	}

	
	// við náðum svo langt, þannig að allt er í lagi ==> OK
	return true;
}



function ValiderUploadform(formen)
{
	// File1
	if (!isFilled(formen.file1))
	{
		formen.file1.focus();
		alert("Verður að setja inn skráarheiti.");
		return false
	}
	// við náðum svo langt, þannig að allt er í lagi ==> OK
	return true;	
}


function validate_filterform(formen)
{
	if (isFilled(formen.FilterFarFra))
	{
		sFarFra = formen.FilterFarFra.value;
		if ((strtoint(sFarFra)<1900) || (strtoint(sFarFra) > 2000))
		{
			formen.FilterFarFra.focus();
			alert("Fæðingarár á að vera á bilinu 1900-2000");
			return false
		}	
	}
	
	if (isFilled(formen.FilterFarTil))
	{
		sFarTil = formen.FilterFarTil.value;
		if ((strtoint(sFarTil) < 1900) || (strtoint(sFarTil) > 2000))
		{
			formen.FilterFarTil.focus();
			alert("Fæðingarár á að vera á bilinu 1900-2000");
			return false
		}	
	}
	
	return true;
}

function validate_sletform(formen)
{
	
	bResult = isFilled(formen.id) && IsNumeric(formen.id.value);
	if (!bResult)
	{
		formen.id.focus();
		alert("Id á að vera 1 - 4 stafa tala");
		return false
	}

	if (isFilled(formen.id))
	{
		vaerdi = formen.id.value;
		if ((strtoint(vaerdi)<0) || (strtoint(vaerdi) > 10000))
		{
			formen.id.focus();
			alert("Id á að vera á bilinu 0-10000");
			return false
		}	
	}
	
	return true;
}



function setCookie(name, value, expire) 
{   
  document.cookie = name + "=" + escape(value)  + ("; expires=" + expire.toGMTString());
}  

function saveCookie(feltnavn,value) 
{
   var today = new Date();   
   var expires = new Date();   
   expires.setTime(today.getTime() + 365*1000*60*60*24)   // sæt expires 1 år frem
   setCookie(feltnavn, value, expires);
}

function getCookie(Name, sDefault) 
{   
 var search = Name + "="
 if (document.cookie.length > 0) 
 { 
   offset = document.cookie.indexOf(search)
   if (offset != -1) 
   { offset += search.length
     end = document.cookie.indexOf(";", offset)          
     if (end == -1) 
	 {
	   end = document.cookie.length
	 }  
    sValue = unescape(document.cookie.substring(offset, end))
    
    // sæt defaultværdi, hvis værdien er null
    if (sValue == null)
    {
       sValue = sDefault;
    }
    return sValue
   }
   else 
     return sDefault;
 }
 else
 {
   return sDefault;
 }
}   



 // BRUG : <INPUT onKeyPress="window.status = getkey(event)">
 
 function getkey(e)
 {
	if (window.event)
		return window.event.keyCode;
	else if (e)
		return e.which;
	else
		return null;
 }
 
 // Brug:  onKeyPress="return submitenter(this,event)">
 
 function submitenter(myfield,e) 
 {
 var keycode;
 if (window.event) keycode = window.event.keyCode;
 else if (e) keycode = e.which;
 else return true;
 
 if (keycode == 13)
	    {
    myfield.form.submit();
    return false;
    }
 else
    return true;
 }
 
 // Most of the time you'll want to use 
 // onKeyPress to restrict which characters can be typed in the field. 
 // To simplify the process of checking if the typed character is one of an acceptable group of 
 // characters we can use the following function. 
 // The function goodchars() uses getkey() so make sure you copy both of them into your page. 
 
 // BRUG : <INPUT NAME=INT onKeyPress="return goodchars(event,'0123456789')">
 
 
 
 function goodchars(e, goods)
 {
 var key, keychar;
 key = getkey(e);
 if (key == null) return true;
 
 // get character
 keychar = String.fromCharCode(key);
 keychar = keychar.toLowerCase();
 goods = goods.toLowerCase();
 
 // check goodkeys
 if (goods.indexOf(keychar) != -1)
 {
 	return true;
 }
 
 // control keys
 if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 )
    return true;
 
 // else return false
 return false;
 }


function GemFilterCookies(formen)
{
	
//	saveCookie("FilterFarFra",formen.FilterFarFra.value);
//	saveCookie("FilterFarTil",formen.FilterFarTil.value);

}	

