﻿function setFocus() {
  if(document.forms[0]) {
  document.forms[0].email.focus();
  }
}

function validEmail(email) {
  var sgnPos = email.indexOf("@",1);
  if(sgnPos==-1) {				//snabel-a er obligatorisk
  return false;
  }
  if(sgnPos==0) {				//snabel-a må ikke være første tegn
  return false;
  }
  if(email.indexOf("@",sgnPos+1)!=-1) {		//Kun eet snabel-a
  return false;
  }
  var dotPos = email.indexOf(".",sgnPos+2);	//mindst eet punktum er obligatorisk EFTER snabel-a
  if(dotPos==-1) {
  return false;
  }
  if(email.indexOf("..")!=-1) {			//aldrig 2 punktummer efter hinanden
  return false;
  }
  if(email.slice(email.length-1)==".") {	//punktum må ikke være sidste tegn
  return false;
  }
  var endPos = email.lastIndexOf(".")+1;
  var strDom = email.slice(endPos);
  if(strDom.length<2) {				//Mindst 2 tegn til domænenavn efter sidste punktum
  return false;
  }
  return true;
}

function validInput(email) {
  var approved = true;
  var allowedCharacters = 'abcdefghijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789._@';
  for(n=0; n<email.length; n++) {
    var thisCharacter = email.charAt(n);
    if(allowedCharacters.indexOf(thisCharacter,0)==-1) {
    approved = false;
    break;
    }
  }
  if(!approved) {
  return false;
  }
  return true;
}

function trim(str) {
  while (str.charAt(str.length - 1)==" ")
    str = str.substring(0, str.length - 1);
  while (str.charAt(0)==" ")
    str = str.substring(1, str.length);
  return str;
}

function Validate() {
  var form = document.forms[0];
  var address = trim(form.email.value);
  if(address=='') {
  alert('Indtast din email-adresse');
  form.email.focus();
  }
  else if(!validInput(address)) {
  alert('Gyldige tegn i.f.m. email-adresse er bogstaver fra a til z, tal, punktum, bindestreg, underscore og snabel-a');
  form.email.select();
  }
  else if(!validEmail(address)) {
  alert('Der er indtastet en ugyldig email-adresse\n\nFejlen skyldes sandsynligvis et manglende/fejlplaceret snabel-a eller punktum');
  form.email.select();
  }
  else {
  form.submit();
  }
}
