function contentLength(elementId,field,maxlength) {

  function trim(s)
  {
    var l=0; var r=s.length -1;
    while(l < s.length && s[l] == ' ')
    { l++; }
    while(r > l && s[r] == ' ')
    { r-=1; }
    return s.substring(l, r+1);
  }

  function replaceStr(s) {
    var r
    r = s.replace(/<!--empty-->/g, "")
    r = r.replace(/\n/g, "");
    r = r.replace(/\t/g, "");
    r = r.replace(/\r/g, "");
    r = r.replace(/ /g, "");
    return r;
  }

  var cLength = charFilter(field).length;
  var cElement = document.getElementById(elementId);
  var cInnerStr = trim(replaceStr(cElement.innerHTML));

  if ( cLength > 0 || cInnerStr.length > 0 ) {
    if ( cLength > maxlength ) cElement.style.color = "red";
    else cElement.style.color = "";

    cElement.innerHTML = "&#160;(Anslag: " + charFilter(field).length + ")";
  }
}


function charFilter(field) {
  strVal = new String(field.value);

  for (i = 0; i < strVal.length; i++) {
    if (strVal.charCodeAt(i) > 255 ) {
      switch (strVal.charCodeAt(i)) {
        case 8211:
          strVal = strVal.replace(strVal.charAt(i), "&#8211;"); /* – : &ndash; */
          break;
        case 8212:
          strVal = strVal.replace(strVal.charAt(i), "&#8212;"); /* — : &mdash; */
          break;
        case 8216:
          strVal = strVal.replace(strVal.charAt(i), "&#8216;"); /* ‘ : &lsquo; */
          break;
        case 8217:
          strVal = strVal.replace(strVal.charAt(i), "&#8217;"); /* ’ : &rsquo; */
          break;
        case 8218:
          strVal = strVal.replace(strVal.charAt(i), "&#8218;"); /* ‚ : &sbquo; */
          break;
        case 8220:
          strVal = strVal.replace(strVal.charAt(i), "&#8220;"); /* “ : &ldquo; */
          break;
        case 8221:
          strVal = strVal.replace(strVal.charAt(i), "&#8221;"); /* ” : &rdquo; */
          break;
        case 8222:
          strVal = strVal.replace(strVal.charAt(i), "&#8222;"); /* „ : &bdquo; */
          break;
        case 8224:
          strVal = strVal.replace(strVal.charAt(i), "&#8224;"); /* † : &dagger; */
          break;
        case 8225:
          strVal = strVal.replace(strVal.charAt(i), "&#8225;"); /* ‡ : &Dagger; : */
          break;
        case 8226:
          strVal = strVal.replace(strVal.charAt(i), "&#8226;"); /* • : &bull; */
          break;
        case 8230:
          strVal = strVal.replace(strVal.charAt(i), "&#8230;"); /* … : &hellip; */
          break;
        case 8240:
          strVal = strVal.replace(strVal.charAt(i), "&#8240;"); /* ‰ : &permil; */
          break;
        case 8249:
          strVal = strVal.replace(strVal.charAt(i), "&#8249;"); /* ‹ : &lsaquo; */
          break;
        case 8250:
          strVal = strVal.replace(strVal.charAt(i), "&#8250;"); /* › : &rsaquo; */
          break;
        case 8364:
          strVal = strVal.replace(strVal.charAt(i), "&#8364;"); /* € : &euro; : &#x20ac; :&#8364; */
          break;
        case 8482:
          strVal = strVal.replace(strVal.charAt(i), "&#8482;"); /* ™ : &trade; */
          break;
        default:
          strVal = strVal.replace(strVal.charAt(i), " "); /* */
      }
    }
  }
  return strVal;
}

// form validation start
function emailValidationNew(entered, alertbox) {
  with (entered) {
    if (value.length > 0) {
      apos = value.indexOf("@");
      dotpos = value.lastIndexOf(".");
      lastpos = value.length - 1;
      if (apos < 1 || dotpos - apos < 2 || lastpos - dotpos < 2) {
        if (alertbox) {
          alert(alertbox);
        }
        return false;
      }
      else {
        return true;
      }
    }
  }
  return true;
}

function emailValidation(entered, alertbox) {
  with (entered) {
    apos = value.indexOf("@");
    dotpos = value.lastIndexOf(".");
    lastpos = value.length - 1;
    if (apos < 1 || dotpos - apos < 2 || lastpos - dotpos < 2) {
      if (alertbox) {
        alert(alertbox);
      }
      return false;
    }
    else {
      return true;
    }
  }
}

function emptyValidation(entered, alertbox) {
  with (entered)
  {
    if (value == null || value == "") {
      if (alertbox != "") {
        alert(alertbox);
      }
      return false;
    }
    else {
      return true;
    }
  }
}

function passwordValidation(password, passwordRetype, alertbox) {
  if (password.value != passwordRetype.value) {
    if (alertbox != "") {
      alert(alertbox);
    }
    return false;
  }
  else {
    return true;
  }
}

function radiogroupValidation(entered, alertbox) {
  with (entered)
  {
    for (var i = 0; i < entered.length; i++) {
      if (entered[i].checked)
        return true;
    }
    if (alertbox != "") {
        alert(alertbox);
    }
    return false;
  }
}

function checkboxGroupValidation(arrNames, alertbox) {
  for (var i = 0; i < arrNames.length; i++) {
    if (form[arrNames[i]].checked) {
      return true;
    }
  }
  alert(alertbox);
  return false;
}

function checkboxGroupValidationMinValgtOgMaksValgt(arrNames, min, maks, alertbox) {
  var antalValgte = 0;
  for (var i = 0; i < arrNames.length; i++) {
    if (form[arrNames[i]].checked) {
      antalValgte++;
    }
  }
  if (antalValgte <= maks && antalValgte >= min) {
    return true;
  }
  alert(alertbox);
  return false;
}

function checkboxValidation(entered, alertbox) {
  if (entered.checked) {
    return true;
  }
  alert(alertbox);
  return false;
}

function dropdownboxValidation(entered, alertbox) {
  with (entered)
  {
    if (entered.options[entered.selectedIndex].value != "0") {
      return true;
    }
    if (alertbox != "") {
      alert(alertbox);
    }
    return false;
  }
}

function dropdownValidation(entered, alertbox) {
  with (entered)
  {
    if (entered.options[entered.selectedIndex].value != "") {
      return true;
    }
    if (alertbox != "") {
      alert(alertbox);
    }
    return false;
  }
}

function integerValidation(entered, alertbox) {
  if (entered.value.length > 0) {
    for (i = 0; i < entered.value.length; i++) {
      if ((entered.value.charAt(i) > "9") || (entered.value.charAt(i) < "0")) {
        alert(alertbox);
        return false;
      }
    }
  }
  return true;
}

function cprValidation(entered, alertbox) {
  if (entered.value == "") {
    return true
  }
  else if (entered.value.length == 10) {
    for (i = 0; i < entered.value.length; i++) {
      if ((entered.value.charAt(i) > "9") || (entered.value.charAt(i) < "0")) {
        alert(alertbox);
        return false;
      }
    }
    // modulus tjek
    var modArray = new Array(4, 3, 2, 7, 6, 5, 4, 3, 2, 1);
    var sum = 0;
    for (i = 0; i < entered.value.length; i++) {
      sum += modArray[i] * parseInt(entered.value.charAt(i));
    }
    if (sum % 11 != 0) {
      alert(alertbox);
      return false;
    }
  }
  else {
    alert(alertbox);
    return false
  }
  return true;
}

function timeValidation(entered, alertbox) {
  if (entered.value == "") {
    return true
  }
  else if (entered.value.length == 5) {
    var failed = false;

    if(entered.value.charAt(0));

    if ((entered.value.charAt(0) > "9") || (entered.value.charAt(0) < "0")) {
      failed = true;
    }
    if ((entered.value.charAt(1) > "9") || (entered.value.charAt(1) < "0")) {
      failed = true;
    }
    if (entered.value.charAt(2) != ":") {
      failed = true;
    }
    if ((entered.value.charAt(3) > "9") || (entered.value.charAt(3) < "0")) {
      failed = true;
    }
    if ((entered.value.charAt(4) > "9") || (entered.value.charAt(4) < "0")) {
      failed = true;
    }

    if (failed) {
      alert(alertbox);
      return false
    }
  }
  else {
    alert(alertbox);
    return false
  }
  return true;
}

function urlValidation(entered, alertbox) {
  if (entered.value.length > 0) {
    dotpos  = entered.value.lastIndexOf(".");
    httppos = entered.value.lastIndexOf("http://");
    httpspos  = entered.value.lastIndexOf("https://");
    lastpos = entered.value.length - 1;
    if ( (lastpos - dotpos < 2) || (dotpos < 1) || ((httppos != 0 && httpspos != 0)) ) {
      if (alertbox) {
        alert(alertbox);
      }
      return false;
    }

  }
  return true;
}

function postnrValidation(entered, alertbox) {
  if (entered.value == "") {
    return true
  }
  else if (entered.value.length == 4) {
    for (i = 0; i < entered.value.length; i++) {
      if ((entered.value.charAt(i) > "9") || (entered.value.charAt(i) < "0")) {
        alert(alertbox);
        return false;
      }
    }
  }
  else {
    alert(alertbox);
    return false
  }
  return true;
}

function maxLengthValidation(entered, maxLength, alertbox) {
  if (entered.value.length > maxLength) {
    alert(alertbox);
    return false;
  }
  return true;
}

function cvrValidation(entered, alertbox) {
  if (entered.value == "") {
    return true
  }
  else if (entered.value.length == 8) {
    for (i = 0; i < entered.value.length; i++) {
      if ((entered.value.charAt(i) > "9") || (entered.value.charAt(i) < "0")) {
        alert(alertbox);
        return false;
      }
    }
    // modulus tjek
    var modArray = new Array(2, 7, 6, 5, 4, 3, 2);
    var sum = 0;
    for (i = 0; i < (entered.value.length - 1); i++) {
      sum += modArray[i] * parseInt(entered.value.charAt(i));
    }

    var lastCiffer = sum % 11;
    if (lastCiffer != 0) {
      lastCiffer = 11 - lastCiffer;
    }
    if((lastCiffer == parseInt(entered.value.charAt(7))) == false) {
      alert(alertbox);
      return false;
    }
  }
  else {
    alert(alertbox);
    return false
  }
  return true;
}

function dateValidationDDMMYYYY(entered, alertbox) {
  with (entered) {
    if (value != null && value != "") {
      if (checkValidDateDDMMYYYY(value) == false) {
        if (alertbox) {
          alert(alertbox);
        }
        return false;
      }
    }
  }
  return true;
}


function checkValidDateDDMMYYYY(dateStr) {
  var myRE = /\-/g;
  var dateSplitArray = dateStr.split(myRE);

  if (dateSplitArray.length != 3) return false;

  if (isNaN(dateSplitArray[2])) return false;
  if (isNaN(dateSplitArray[1])) return false;
  if (isNaN(dateSplitArray[0])) return false;


  var numDay   = parseInt(removeZero(dateSplitArray[0]));
  if ((numDay <= 0) || (numDay > 31)) return false;

  var numMonth = parseInt(removeZero(dateSplitArray[1]));
  if ((numMonth < 1) || (numMonth > 12)) return false;
  if ((numMonth == 2) && (numDay > 29)) return false;
  if (((numMonth == 4) || (numMonth == 6) || (numMonth == 9) || (numMonth == 11)) && (numDay > 30)) return false;
  if ((numMonth == 2) && (numDay == 29)) {
    if ((numYear % 4) != 0) return false;
    if (((numYear % 100) == 0) && ((numYear % 400) != 0)) return false;
  }

  var numYear  = parseInt(parseInt(dateSplitArray[2]));

  if ((numYear <= 0) || (numYear > 9999)) return false;
  if (numYear < 1000) return false;
  if (numYear < 50) {
    numYear = numYear + 2000;
  }
  else if (numYear < 100) {
    numYear = numYear + 1900
  }
  return true;
}

function removeZero(Str) {
  var i = 0;
  while (i < Str.length) {
    if (Str.indexOf(i) != "0") {
      return Str.substring(i,Str.length);
    }
  i++;
  }
}
// form validation slut

