var active_button = null;

function MWD_setActive(b){
  if ( active_button != null ){
    active_button.className="";
  }
  active_button = document.getElementById(b);
  active_button.className="my_active";
}
/* menues, timer und timer_running sind entsprechend der Anzahl der Menues zu erweitern */
var popup = new Array('Pop1', 'Pop2', 'Pop3', 'Pop4', 'Pop5', 'Pop6');
var popup_timer  = new Array(null, null, null, null, null, null);
var popup_timer_running = new Array(false, false, false, false, false, false);

function popup_show(id){
    elem = popup[id];
    if ( popup_timer_running[id] == false ){
      document.getElementById(elem).style.display = 'block';
  } else {
       clearTimeout(popup_timer[id]);  
     popup_timer[id] = null;
     popup_timer_running[id] = false;
  }
}

function popup_hide(id){
    elem = popup[id];
     if ( popup_timer[id] == null ){
       popup_timer[id] = setTimeout("do_popup_hide('"+id+"')", 100);
     popup_timer_running[id] = true;
   }
}

function do_popup_hide(id){
  elem = popup[id];
  document.getElementById(elem).style.display = 'none';
  clearTimeout(popup_timer[id]);
  popup_timer[id] = null;
  popup_timer_running[id] = false;
}

var nav_timer  = new Array();
var nav_timer_running = new Array();
var nav_nodes = new Array();
var nav_menue_queue = null;
var nav_menue_active = null;

/*----------------------------------------------------------------------------------*/
/*   menue_over(node,nr)                                                            */
/*----------------------------------------------------------------------------------*/
/*  wird durch das mouseover Ereignis aufgerufen                                    */
/*                                                                                  */
/*----------------------------------------------------------------------------------*/
function menue_over(node,nr){
/* Wenn bereits ein anderes Menue aktiv, dann das neue Menue in die Warteschlange stellen*/
  if ((nav_menue_active != null) && (nav_menue_active != node)){
    nav_menue_queue = node;
  return;
  }
/* wenn der Timer zum zuklappen nicht läuft, dann Menue einschalten */
  if (!nav_timer_running[nr])
    nav_timer_running[nr] = false;
  if ( nav_timer_running[nr] == false ){
    node.className="over";
    nav_menue_active = node;
/* andernfalls ist das Menue noch aktiv, und es muss nur der Timer ausgeschaltet werden*/  
  } else {
     clearTimeout(nav_timer[nr]);  
     nav_timer[nr] = null;
     nav_timer_running[nr] = false;
   nav_menue_active = node;
  }
}

/*----------------------------------------------------------------------------------*/
/*   menue_out(node,nr)                                                             */
/*----------------------------------------------------------------------------------*/
/*  wird durch das mouseout Ereignis aufgerufen                                     */
/*                                                                                  */
/*----------------------------------------------------------------------------------*/
function menue_out(node,nr){
/* Wenn das Menue in der Werteschlange steht, dann nur die Warteschlange löschen. */
  if (nav_menue_queue == node){
    nav_menue_queue = null;
  return;
  }
/* ansonsten wenn der zuklapptimer noch nicht läuft, dann Timmer setzen*/  
  if ( nav_timer[nr] == null ){
     nav_nodes[nr] = node;
     nav_timer[nr] = setTimeout("do_menue_out('"+nr+"')", 100);
     nav_timer_running[nr] = true;
   }
}

/*----------------------------------------------------------------------------------*/
/*   do_menue_out(nr)                                                               */
/*----------------------------------------------------------------------------------*/
/*  wird durch den in der Funktion menue_out gesetzten Timer zeitverzögert          */
/*  ufgerufen und klappt das Menue zu                                               */
/*----------------------------------------------------------------------------------*/
function do_menue_out(nr){
  nav_nodes[nr].className="";
  clearTimeout(nav_timer[nr]);
  nav_timer[nr] = null;
  nav_timer_running[nr] = false;
  nav_menue_active = null;
/* Wenn ein Menue in der Warteschlange steht, dann dieses Menue einblenden*/  
  if (nav_menue_queue){
    nav_menue_queue.className="over";
    nav_menue_active = nav_menue_queue;
  nav_menue_queue = null;
  }
}


/*----------------------------------------------------------------------------------*/
/*   function validate_form(sender,field_array,err_hd)                              */
/*----------------------------------------------------------------------------------*/
/*                                                                                  */
/*                                                                                  */
/*----------------------------------------------------------------------------------*/
function validate_form(formular, field_array, err_txt) {

var err_msg = !err_txt?new Array('Folgende Fehler sind aufgetreten:\n'):new Array(err_txt+'\n');
var error = false;

for (i=0;i < field_array.length;i++) {
  field = formular.elements[field_array[i][0]];


if (field_array[i][1].toLowerCase() == 'e'){
    var check = field.value.match(/^\s*[a-zA-Z0-9]{1,}\.*/);
    if (!check) {
      error = true;
      err_msg.push(field_array[i][2]);
    }
  }

/* Datumsüberprüfung */
  if (field_array[i][1].toLowerCase() == 'd'){
    var check = field.value.match(/^\s*[0-3][0-9](\.|\/)[0-1][0-9]\1[1-2][90][0-9][0-9]\s*$/);
    if ( !check) {
      error = true;
      err_msg.push(field_array[i][2]);
    }
  }
  
/* Telefonnummer */
  if (field_array[i][1].toLowerCase() == 't'){
    var check = field.value.match(/^\s*[+]{0,1}[0-9][0-9\-\/\s]*$/);
    if ( !check) {
      error = true;
      err_msg.push(field_array[i][2]);
    }
  }
/* EMailadresse prüfen */
  if (field_array[i][1] == 'm'){
    var check = field.value.match(/^[\w.+-]{2,}\@[\w.-]{2,}\.[a-z]{2,6}\s*$/);
    if ( !check) {
      error = true;
      err_msg.push(field_array[i][2]);
    }
  }
}
  
/* Wenn Fehler aufgetreten sind werden die gesammelten Fehlermeldungen ausgegeben */
  if (error) {
    err_msg = err_msg.join('\n\xB7 ');
    alert(err_msg);
    return false;
  }
  else {
    return true;
  }
}

