﻿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 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 validCharacters(email) {
  var validInput = true;
  var allowedCharacters;
  var i;
  var traversedCharacter;
  var allowedCharacters = 'abcdefghijklmnopqrstuvwxyz-ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789._@';
  for(i=0; i<email.length; i++) {
    traversedCharacter = email.charAt(i);
    if(allowedCharacters.indexOf(traversedCharacter,0)==-1) {
    validInput = false;
    break;
    }
  }
  if(!validInput) {
  return false;
  }
  else {
  return true;
  }
}

function checkForm(form, mode) {
  var categories = form.elements.length-1;
  form.email.value = trim(form.email.value);
  if(form.email.value=='') {
  alert('Indtast email adresse');
  form.email.focus();
  return false;
  }
  if(!validCharacters(form.email.value)) {
  alert('Gyldige tegn i.f.m. email adresse er bogstaver fra a til z, tal, punktum, bindestreg, underscore og snabel-a');
  form.email.focus();
  form.email.select();
  return false;
  }
  if(!validEmail(form.email.value)) {
  alert('Der er indtastet en ugyldig email adresse \n\nFejlen skyldes sandsynligvis et manglende/fejlplaceret snabel-a eller punktum');
  form.email.focus();
  form.email.select();
  return false;
  }
  if(categories>2) {
    var count = 0;
    for(var n=1; n<categories; n++) {
    if(form.elements[n].checked==true) count += 1;
    }
    if(count==0) {
    alert('Vælg mindst een nyhedskategori');
    return false;
    }
  }
  if(mode==1) {
  document.getElementById("feedback1").innerHTML = '<span class=\"feedback\">Vent mens instruktioner sendes...</span>';
  }
  else {
  document.getElementById("feedback2").innerHTML = '<span class=\"feedback\">Vent mens instruktioner sendes...</span>';
  }
  return true;
}