function MakeArray(n) {
  this.length=n;
  for (var x=1; x<=n; x++) {
    this[x]=0;
    }
  return this;
}

function beregnTal(dataIn) {
  var x=0;
  var data=0;
  var temp;
  for (x=7; x>=0; x--) 
    {
    temp=Math.round(dataIn/Math.pow(10,x)-0.5);
    data+=temp;
    dataIn-=temp*Math.pow(10,x);
    }
  return data;
  }

alfaString=" abcdefghijklmnopqrstuvwxyzæøå";
vokalString=" aeiouyæøå";
konsoString=" bcdfghjklmnpqrstvwxz";
totalNum=0;
vokalNum=0;
konsoNum=0;
realNum=0;
manglerTal= new MakeArray(9);
manglerMin=0;
manglerMax=0;
datoNum=0;

function CheckNavn(inputForm) {
  data=inputForm.navndata.value.toLowerCase();
  dataLen=data.length;
  for (var x=0; x<=dataLen; x++) {
    if ((alfaString.indexOf(data.substring(x,x+1)) < 0) || dataLen==0) {
      alert("Navnedata er forkert!");
      return false;
      }
    }
  return true;
}

function CheckDato(inputForm) {
  data=inputForm.fodsdata.value;
	dataInt=data.substring(4,8)+data.substring(2,4)+data.substring(0,2)
	data = "" + dataInt;
  dataInt=parseInt(data);
  dataLen=data.length;
  if(dataLen==8 && dataInt>=10000101 && dataInt<=21001231) {
    if (parseInt(data.substring(4,8))<=1231)
      if (parseInt(data.substring(6,8))<=31)
        return true
    }
  alert("\nAar, maaned eller dato er forkert!\n\nProv igen!");
  return false
  }

function BeregnNavn(inputForm) {
  var temp=0;
  var manglerTemp=0;
  totalNum=0;
  vokalNum=0;
  konsoNum=0;
  dataNavn=inputForm.navndata.value;
  data=dataNavn.toLowerCase();
  dataLen=data.length;
  for (var x=1; x<=9; x++) {
    manglerTal[x]=0;
    }
  for (var x=0; x<=dataLen; x++) {
    temp=alfaString.indexOf(data.substring(x,x+1));
    totalNum+=temp;
    if (konsoString.indexOf(data.substring(x,x+1)) < 0) {
      vokalNum+=temp;
      }
    else {
      konsoNum+=temp;
      }
    manglerTemp=temp;
    while (manglerTemp>9) {
      manglerTemp=beregnTal(manglerTemp);
    }
    manglerTal[manglerTemp]++;
    }
  while(totalNum!=22  && totalNum!=11 && totalNum>9) {
    totalNum=beregnTal(totalNum)
    }
  while(vokalNum!=22  && vokalNum!=11 && vokalNum>9) {
    vokalNum=beregnTal(vokalNum)
    }
  while(konsoNum!=22  && konsoNum!=11 && konsoNum>9) {
    konsoNum=beregnTal(konsoNum)
    }
  realNum=totalNum+datoNum;
  while(realNum!=22  && realNum!=11 && realNum>9) {
    realNum=beregnTal(realNum)
    }
  manglerMin=manglerTal[1];
  manglerMax=manglerTal[1];
  for (var x=1; x<=9; x++) {
    if (manglerMin>=manglerTal[x]) {
       manglerMin=manglerTal[x]
    }
    if (manglerMax<=manglerTal[x]) {
       manglerMax=manglerTal[x]
    }
  }
  if (!vokalNum || !konsoNum) {
    alert("\nNavnet kan ikke fuldgyldigt beregnes\nud fra denne numerologis teori.\n\nDer mangler enten vokaler eller konsonanter.")
  }
//alert("\nMotiva: " +vokalNum +"\nIndtryk: " +konsoNum +"\nUdtryk: " +totalNum);
}

function BeregnFodsdag(inputForm) {
  data=inputForm.fodsdata.value;
  while( data.charAt(0)=='0') {
    data = data.replace(/0/,'')
    }
  datoNum=parseInt(data);
  while(datoNum!=22  && datoNum!=11 && datoNum>9) {
    datoNum=beregnTal(datoNum)
    }
}

function UdskrivData(inputForm) {
  if (manglerMin!=manglerMax) {
		var havesNum = "";
    for (var x=1; x<=9; x++) {
      if (manglerMax==manglerTal[x]) {
        havesNum += x;
      }
    }
  }
  if (manglerMin!=manglerMax) {
		var manglerNum = "";
    for (var x=1; x<=9; x++) {
      if (manglerMin==manglerTal[x]) {
        manglerNum += x;
      }
    }
  }
  inputForm.action = 'numerologi.asp'
		+'?vok='+vokalNum
		+'&kon='+konsoNum
		+'&tot='+totalNum
		+'&dat='+datoNum
		+'&rea='+realNum
		+'&hav='+havesNum
		+'&man='+manglerNum
	inputForm.submit();
}

function BeregnData(inputForm) {
  if (CheckNavn(inputForm) && CheckDato(inputForm)) {
    BeregnFodsdag(inputForm);
    BeregnNavn(inputForm);
    UdskrivData(inputForm);
    }
}

function debug(dataIn) {
	alert(
		+'\n' +dataIn
		+'\n' +'vokalNum:\t' +vokalNum
		+'\n' +'konsoNum:\t' +konsoNum
		+'\n' +'totalNum:\t' +totalNum
		+'\n' +'datoNum:\t' +datoNum
		+'\n' +'realNum:\t' +realNum
		+'\n' )
	}