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)>2020))
	{
		formen.Far.focus();
		alert("Fæðingarár á að vera á bilinu 1900-2020, t.d. 1960");
		return false
	}



	// Fjöldi þríþrauta
	bResult = isFilled(formen.FjM) && IsNumeric(formen.FjM.value);
	if (!bResult)
	{
		formen.FjM.focus();
		alert("Fjöldi þríþrauta á 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 þríþrauta á 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)>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 stafa tala");
		return false
	}
	sTimar = formen.Timar.value;
	if ((strtoint(sTimar)<2) || (strtoint(sTimar) > 99))
	{
		formen.Timar.focus();
		alert("Klst. (klukkustundir) á að vera á bilinu 2-99");
		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 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);

}	

