//************************************************************************************
// Copyright (c)  2001
// Roskilde Baptistkirke, Vindingevej 32, 4000 Roskilde, Denmark
//************************************************************************************

function FocusField(field, msg) {
   alert(msg);
   field.focus();
   return false;
}

function IsEmailValid(fieldName)
{
   var EmailOk  = true
   var Temp     = document.data.elements[fieldName]
   var AtSym    = Temp.value.indexOf('@')
   var Period   = Temp.value.lastIndexOf('.')
   var Space    = Temp.value.indexOf(' ')
   var Length   = Temp.value.length - 1   // Array is from 0 to length-1
   if ((AtSym < 1) ||                     // '@' cannot be in first position
      (Period <= AtSym+1) ||             // Must be atleast one valid char btwn '@' and '.'
      (Period == Length ) ||             // Must be atleast one valid char after '.'
      (Space  != -1)                     // No empty spaces permitted 
   ) {
      return FocusField(Temp, 'Indtast venligt valid e-mail adresse!');
   } 
   return EmailOk
}

var fcIsRequired = true;
var fcNotRequired = false;

var fcEmail = 0;
var fcAnyChar = 1;
var fcNumber = 2;
var fcInteger   = 3;
var fcDate       = 4;

function IsFieldValid(fieldName, fieldLabel, isRequired, contentsType)
{
   var field = document.data.elements[fieldName];
   if (field) {
       var fieldValue = field.value;
      // Valided Field Contents
      if (fieldValue != "") {
         switch (contentsType) {
            case fcEmail: 
               return IsEmailValid(fieldName); 
            case fcAnyChar:
               break;
            case fcDate:
               {
                  var fieldDate = new Date(fieldValue.substr(4, 4), fieldValue.substr(2, 2), fieldValue.substr(0, 2) );
                  var fieldDate2 = new Date(fieldValue.substr(4, 4), fieldValue.substr(2, 2), fieldValue.substr(0, 2) );
                  if  ((fieldValue.toString().length != 8) || (fieldDate.toString().length < 4)) {
                     FocusField(field, "Indtast venligst valid dato!");
                     return false;
                  } 
               }
               break;
            case fcInteger:
               if (parseInt(fieldValue) != parseInt(fieldValue)) {
                  return FocusField(field, "Indtast venligst valid heltal!")
               } 
               break;
            case fcNumber:
               if (parseFloat(fieldValue) != parseFloat(fieldValue)) {
                  return FocusField(field, "Indtast venligst valid tal!")
               } 
               break;
         }
      }
      if (isRequired && (fieldValue == "")) {
         return FocusField(field, 'Udfyld venligst feltet: ' + fieldLabel + '!')
      }
   } 
   return true;
}

function A(name, label, useLabel, lineBreak, demanded)
{
   this.Name          = name;
   this.Label           = label;
   this.UseLabel   = useLabel;
   this.LineBreak  = lineBreak;
   this.Demanded = demanded;
}

var AddrInfo = new Array(
   new A('Generel'     , 'Kunde Nr: ', true , true  ,  false),
   new A('Organization', 'Firma'     , false, true  ,  false),
   new A('Contact'     , 'Navn'      , false, true  ,  true),
   new A('Street'      , 'Adresse'   , false, true  ,  true),
   new A('PostCode'    , 'Postnr'    , false, false ,  true),
   new A('City'        , 'By'        , false, true  ,  true),
   new A('Country'     , 'Land'      , false, true  ,  false),
   new A('Phone'       , 'Tlf:   '   , true , true  ,  false),
   new A('Fax'         , 'Fax:   '   , true , true  ,  false),
   new A('Email'       , 'Email: '   , true , true  ,  true)
);

function CheckAddress()
{
   for (var idx = 0; idx < AddrInfo.length; idx++) {
      with (AddrInfo[idx]) {

         if (! IsFieldValid(Name, Label, Demanded,  fcAnyChar)) {
            return false;
//         if (document.data.elements[Name]) {
//            if ((document.data.elements[Name].value == "") && Demanded ){
//               alert('Udfyld venligst feltet: ' + Label + '!');
//               document.data.elements[Name].focus();
//               return false;
//            }
         }
      }
   }
   return IsEmailValid('Email');
}
