function createCookie(name, value, days, id) {
  var act = readCookie(name);
  if (value == 1) {
    var newval = act+id;
  } else {
    var remove = id;
    var re = new RegExp(remove, "gi");
    var newval = act.replace(re, "");
  } // if
  var expires = "";
  var ck = name+"="+newval+expires+"; path=/";
  document.cookie = ck;
  return;
} // function


function readCookie(name)  {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0; i<ca.length; i++)  {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  } // for
  return null;
} // function


function createMenu() {
  var x = document.getElementsByName('menuitem');
  var cooker = readCookie('menu');
  for (var i=0; i<x.length; i++)  {
    if(cooker) {
      var re_cooker = new RegExp(x[i].id, "gi");
      var found_cooker = cooker.search(re_cooker);
    } else {
      var found_cooker = -1;
    } // if-else
    if (found_cooker == -1)  {
      x[i].style.display = "none";
      if (document.getElementById('a_' + x[i].id.replace(/menu_/gi, ''))) {
        document.getElementById('a_' + x[i].id.replace(/menu_/gi, '')).firstChild.nodeValue = '<';
      }
    } else {
      x[i].style.display = "block";
      if (document.getElementById('a_' + x[i].id.replace(/menu_/gi, ''))) {
        document.getElementById('a_' + x[i].id.replace(/menu_/gi, '')).firstChild.nodeValue = '>';
      }
    } // if-else
  } // for

  var y = document.getElementsByName('checker');
  var checker = readCookie('chck');
  for (var t=0; t<y.length; t++) {
    if(checker) {
      var re_checker = new RegExp(y[t].id, "gi");
      var found_checker = checker.search(re_checker);
    } else {
      var found_checker = -1;
    } // if-else
    if (found_checker == -1) { // wenn kein cookie gefunden wurde
      y[t].removeAttribute('checked');
    } else { // wenn ein cookie gefunden wurde
      y[t].setAttribute('checked', 'checked');
    } // if-else
  } // for

  return;
} // function


function showhide(menu_id) {
  if (document.getElementById(menu_id).style.display == 'none') {
    document.getElementById(menu_id).style.display = 'block';
    var a = document.getElementsByName('a_showhide');
    for (var m=0; m<a.length; m++) {
      if (document.getElementById(menu_id).id.replace(/menu_/gi, '') == a[m].id.replace(/a_/gi, '')) {
        a[m].firstChild.nodeValue = '>';
      }
    }
    createCookie('menu', '1', '0', menu_id);
  } else {
    document.getElementById(menu_id).style.display = 'none';
    var b = document.getElementsByName('a_showhide');
    for (var n=0; n<b.length; n++) {
      if (document.getElementById(menu_id).id.replace(/menu_/gi, '') == b[n].id.replace(/a_/gi, '')) {
        b[n].firstChild.nodeValue = '<';
      }
    }
    createCookie('menu', '0', '0', menu_id);
  } // if-else
  return;
} // function


function checkChildren(theElement, depth, parent) {
  var theForm = theElement.form;
  var z = 0;
  if (theElement.checked == 1) {
    // check
    createCookie('chck', '1', '0', theElement.id);
    while (theForm[z]) {
      if (theForm[z].type == 'checkbox' && theForm[z].getAttribute('depth') >= depth && (theForm[z].getAttribute('parent') == parent || theForm[z].id == parent)) {
        theForm[z].setAttribute('checked', 'checked');
      } // if
      z++;
    } // while
  } else {
    // uncheck
    createCookie('chck', '0', '0', theElement.id);
    while (theForm[z]) {
      if (theForm[z].type == 'checkbox' && theForm[z].getAttribute('depth') >= depth && (theForm[z].getAttribute('parent') == parent || theForm[z].id == parent)) {
        theForm[z].removeAttribute('checked');
      } // if
      z++;
    } // while
  } // if-else
  theForm.submit();
  return;
} // function


function clearCheckerCookies() {
  var z = document.getElementsByName('checker');
  for (var e=0; e<z.length; e++) {
    z[e].removeAttribute('checked');
    if (readCookie('chck')) {
      createCookie('chck', '0', '0', z[e].id);
    } // if
  } // for
  return;
} // function