﻿function setFocus() {
document.forms[0].elements[0].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 getLabel(string) {
var regExp = /<\/?[^>]+>/gi;
string = string.replace(regExp,"");
return string;
}

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 total = form.elements.length-2;
  var proceed = true;
  var cellID, label, elmType, len;
  for(var i=0; i<total; i++) {
    elmType = form.elements[i].type;
    if((elmType!='checkbox')&&(elmType!='hidden')) {
      form.elements[i].value = trim(form.elements[i].value);
      cellID = 'cell' + form.elements[i].name.slice(1);
      label = getLabel(document.getElementById(cellID).innerHTML);
      if(elmType=='text') {
        if(label.indexOf("*")!=-1) {
          if(form.elements[i].value=='') {
          len = label.length-7;
          alert('Indtast ' + label.slice(0,len).toUpperCase());
          form.elements[i].focus();
          proceed = false;
          break;
          }
          if(label.indexOf("Email")!=-1) {
            var address = form.elements[i].value;
            if(!validInput(address)) {
            alert('Gyldige tegn i.f.m. EMAIL er bogstaver fra a til z, tal, punktum, bindestreg, underscore og snabel-a');
            form.elements[i].select();
            proceed = false;
            break;
            }
            else if(!validEmail(address)) {
            alert('Der er indtastet en ugyldig EMAIL adresse\n\nFejlen skyldes sandsynligvis et manglende/fejlplaceret snabel-a eller punktum');
            form.elements[i].select();
            proceed = false;
            break;
            }
          }
        }
      }
      else if(elmType=='select-one') {
        if( (label.indexOf("*")!=-1) && (form.elements[i].selectedIndex==0) ) {
        len = label.length-7;
        alert('Vælg ' + label.slice(0,len).toUpperCase());
        form.elements[i].focus();
        proceed = false;
        break;
        }
      }
    }
  }
  if(proceed) {
    if(rolodex==true) {
      var populated = false;
      for(var i=2; i<total-2; i++) {
        if(form.elements[i].type=='checkbox') {
          if(form.elements[i].checked==true) {
          populated = true;
          break;
          }
          else {
          temp = form.elements[i].name;	//fx e9_22
          }
        }
      }
      if(!populated) {
      cutoff = temp.indexOf("_");
      elmID = temp.slice(0,cutoff);	//giver her e9
      cellID = 'cell' + elmID.slice(1);
      label = getLabel(document.getElementById(cellID).innerHTML);
      len = label.length-7;
      alert('Afkryds mindst eet felt under ' + label.slice(0,len).toUpperCase());
      proceed = false;
      }
    }
    if(proceed) {
    form.f1.value = form.e1.value.slice(0,1).toLowerCase();
    form.f2.value = form.e2.value.slice(0,1).toLowerCase();
    document.getElementById("formcontrol").innerHTML = '<span class="feedback">Vent mens formularen sendes...</span>';
    form.submit();
    }
  }
}
