//
//
//
function get_multible_value(fieldname) {
  var val = "";
  var inputs = document.getElementsByTagName("input");

  for (var i=0; i<inputs.length; i++) {
    var input = inputs[i];

    if ((input.type == "checkbox") && (input.className == "multible") && input.checked &&
        (input.id.substr(input.id.lastIndexOf(fieldname)) == fieldname)) {

      if (val.length==0) {
        val = input.value;
      } else {
        val = val + "|" + input.value;
      }
    }
  }

  return val;
}
//
//
//
function get_multible_count(fieldname) {
  var count = 0;
  var inputs = document.getElementsByTagName("input");

  for (var i=0; i<inputs.length; i++) {
    var input = inputs[i];

    if ((input.type == "checkbox") && (input.className == "multible") && input.checked &&
          (input.id.substr(input.id.lastIndexOf(fieldname)) == fieldname)) {
      count++;
    }
  }

  return count;
}
//
//
//
function multibleValidation(fieldname, alertbox) {
  if (get_multible_count(fieldname)>0) {
    return true;
  }
  alert(alertbox);
  return false;
}
//
//
//
function multibleValidationMinMax(fieldname, alertbox, min, max) {
  var count = get_multible_count(fieldname);

  if ( (max > 0 && min > 0) && (count <= max && count >= min) ) {
    return true;
  } else if ( (max > 0 && min == 0) && count <= max) {
    return true;
  } else if ( (max == 0 && min > 0) && count >= min) {
    return true;
  }

  alert(alertbox);
  return false;
}
//
//
//
function get_varebeskrivelse(database, source, destination) {
  var varenummer = source.options[source.selectedIndex].value;
  var url = "/pls/"+database+"/efsdata.form_xml.get_varebeskrivelse_xml?";
  var parameters = "i_varenummer="+varenummer;
  var xmlDom;
  var tagValue;

  if ( varenummer == "" ) {
   destination.innerHTML = "";
   destination.style.display = "none";
  } else {
   xmlDom = parseXml(getXMLFromUrl(url, parameters));
   tagValue = getTagVal(xmlDom, 'varebeskrivelse');
   if ( tagValue != "") {
     destination.innerHTML = getTagVal(xmlDom, 'varebeskrivelse');
     destination.style.display = "block";
   } else destination.style.display = "none";
  }
}
//
//
//
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
//
//
function getXMLFromUrl(url, parameters)
{
  http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
    http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType) {
      http_request.overrideMimeType("text/html");
    }
  } else if (window.ActiveXObject) { // IE
    try {
      http_request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        http_request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {}
    }
  }
  if (!http_request) {
    alert('Cannot create XMLHTTP instance');
    return false;
  }
  http_request.open("POST", url, false); //boolean: true (asynchronous) false (synchronous)
  http_request.send(parameters);
  return http_request.responseText;
}
//
//
//
function parseXml(xml) {
    dom = createXmlDom();
    if (window.ActiveXObject){
      dom.loadXML(xml);
    }else if ((typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined')){
      var parser = new DOMParser();
      dom = parser.parseFromString(xml, "text/xml");
      delete parser;
    }else{
      alert("XMLDom ikke understøttet.");
    }
    return dom;
}
//
//
//
  function createXmlDom() {
    var dom = null;
    if (window.ActiveXObject){
      dom = new ActiveXObject("Microsoft.XMLDOM");
      dom.setProperty("SelectionLanguage", "XPath");
      dom.async = false;
    }else if ((typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined')){
      implementFirefoxSelect();
      dom = document.implementation.createDocument("", "doc", null);
      dom.async = false;
    }else{
      alert("XMLDom ikke understøttet.");
    }
    return dom;
  }
//
//
//
  function implementFirefoxSelect() {
    if( document.implementation.hasFeature("XPath", "3.0") ){
      XMLDocument.prototype.selectNodes = function(cXPathString, xNode)
      {
      if( !xNode ) { xNode = this; }
      var oNSResolver = this.createNSResolver(this.documentElement)
      var aItems = this.evaluate(cXPathString, xNode, oNSResolver, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null)
      var aResult = [];
      for( var i = 0; i < aItems.snapshotLength; i++)
      {
        aResult[i] =  aItems.snapshotItem(i);
      }
      return aResult;
    }
    XMLDocument.prototype.selectSingleNode = function(cXPathString, xNode)
    {
      if( !xNode ) { xNode = this; }
      var xItems = this.selectNodes(cXPathString, xNode);
      if( xItems.length > 0 )
      {
        return xItems[0];
      }
      else
      {
        return null;
      }
    }
    Element.prototype.selectNodes = function(cXPathString)
    {
      if(this.ownerDocument.selectNodes)
      {
        return this.ownerDocument.selectNodes(cXPathString, this);
      }
      else{throw "For XML Elements Only";}
    }
    Element.prototype.selectSingleNode = function(cXPathString)
    {
      if(this.ownerDocument.selectSingleNode)
      {
        return this.ownerDocument.selectSingleNode(cXPathString, this);
      }
      else{throw "For XML Elements Only";}
    }
    Node.prototype.transformNode = function (oXslDom) {
        var oProcessor = new XSLTProcessor();
        oProcessor.importStylesheet(oXslDom);
        var oResultDom = oProcessor.transformToDocument(this);
        var sResult = serializeDom(oResultDom);
        if (sResult.indexOf("<transformiix:result") > -1) {
            sResult = sResult.substring(sResult.indexOf(">") + 1,
                                        sResult.lastIndexOf("<"));
        }
        return sResult;
      }
    }
  }
//
//
//
function getTagVal(i_dom, i_tag) {
  var x=i_dom.getElementsByTagName(i_tag);
  try {
    return x[0].childNodes[0].nodeValue;
  } catch(err) {
    return "";
  }
}
//
//
//


