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', 'Pop7', 'Pop8', 'Pop9' );
var popup_timer  = new Array(null, null, null, null, null, null, null, null, null);
var popup_timer_running = new Array(false, false, false, 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,myarray,err_hd)                                  */
/*----------------------------------------------------------------------------------*/
/*                                                                                  */
/*   aus selfhtnl.org                                                               */
/*   Author Dieter Raber                                                            */
/*   Ergänzungen: Jürgen Maurer                                                                                 */
/*----------------------------------------------------------------------------------*/
function validate_form(sender,myarray,err_hd) {

var err_msg = !err_hd?new Array('Folgende Fehler sind aufgetreten:\n'):new Array(err_hd+'\n');
var error = false;
var lang = 'DE';

for (i=0;i<myarray.length;i++) {
  field = document.forms[sender.name].elements[myarray[i][0]];

/* Block 1 überprüft Felder, die ausgefüllt sein müssen */
  if (myarray[i][1].indexOf('e')>-1) {
	field.value = field.value.replace(/^ */, "");
    if (!field.value) {
      error = true;
      err_msg.push(myarray[i][2]);
    }
  }

/* Block x überprüft Felder, die ein Datum sein müssen */
  if (myarray[i][1].indexOf('d')>-1) {
	field.value = field.value.replace(/^ */, "");
	field.value = field.value.replace(/ *$/, "");
	if (field.value){  
  	  var match = field.value.match(/(\d{1,2})([-\.\/])(\d{1,2})(\2)(\d{4}|\d{2})$/i);
      if (!match) {
        error = true;
            err_msg.push(field.value+" "+myarray[i][2]);
	  } else {
		  if (lang == "DE"){
            Tag = match[1];
            Monat = match[3];
            Jahr = match[5];
		  } else {
            Tag = match[3];
            Monat = match[1];
            jahr = match[5];
		  }
		  datum = new Date(Jahr, Monat-1, Tag);
		  if (!datum) {
            error = true;
            err_msg.push(field.value+" "+myarray[i][2]);
	     }	  
	  }
    }
  }

/* Block 2 überprüft, ob die Emailadresse formal richtig ist */
  else if (myarray[i][1].indexOf('m')>-1) {
	field.value = field.value.replace(/^ */, "");
    if (field.value) {
      var usr = "([a-zA-Z0-9][a-zA-Z0-9_.-]*|\"([^\\\\\x80-\xff\015\012\"]|\\\\[^\x80-\xff])+\")";
      var domain = "([a-zA-Z0-9][a-zA-Z0-9._-]*\\.)*[a-zA-Z0-9][a-zA-Z0-9._-]*\\.[a-zA-Z]{2,5}";
      var regex = "^"+usr+"\@"+domain+"$";
      var myrxp = new RegExp(regex);
      var check = (myrxp.test(field.value));
        if (check!=true) {
          error=true;
          err_msg.push(field.value+" "+myarray[i][2]);
        }
      }
    }

/* Block 3 überprüft Felder, deren Wert eine Zahl sein muss */
  else if (myarray[i][1].indexOf('n')>-1) {
    var num_error = false;
    if(field.value) {
      var myvalue = field.value;
      var num = myvalue.match(/[^0-9,\.]/gi)
      var dot = myvalue.match(/\./g);
      var com = myvalue.match(/,/g);
      if (num!=null) {
        num_error = true;
      }
      else if ((dot!=null)&&(dot.length>1)) {
        num_error = true;
      }
      else if ((com!=null)&&(com.length>1)) {
        num_error = true;
      }
      else if ((com!=null)&&(dot!=null)) {
        num_error = true;
      }
    }
    if (num_error==true) {
        error = true;
        err_msg.push(myvalue+" "+myarray[i][2]);
    }
  }

/* Block 4 überprüft Wert anhand eines regulären Audrucks auf bestimmte Muster */
  else if (myarray[i][1].indexOf('r')>-1) {
    var regexp = myarray[i][3];
    if (field.value) {
      if (!regexp.test(field.value)) {
        error = true;
        err_msg.push(field.value+" "+myarray[i][2]);
      }
    }
  }

/* Block 5 prüfen Passwort*/
  else if (myarray[i][1].indexOf('p')>-1) {
    var regex = "^[0-9a-zA-ZäÄöÖüÜß%&_:;#\\-\\{\\}\\[\\]\\(\\)\\^\\$\\.\\|\\*\\+\\?]{5,20}$";
    var regexp = new RegExp(regex);
  if (field.value) {
      if (!regexp.test(field.value)) {
        error = true;
        err_msg.push(myarray[i][2]);
      }
    }
  }

/* Block 5 prüfen 2 Felder auf Gleichheit*/
  else if (myarray[i][1].indexOf('q')>-1) {
    field2 = document.forms[sender.name].elements[myarray[i][3]];
    if (field.value != field2.value) {
        error = true;
        err_msg.push(myarray[i][2]);
    }
  }

/* Block 7 überprüft Checkboxen, die angehakt sein müssen */
  else if (myarray[i][1].indexOf('k')>-1) {
    if (!field.checked) {
      error = true;
      err_msg.push(myarray[i][2]);
    }
  }

}


/* im Fehlerfall werden hier die gesammelten Fehlermeldungen verarbeitet und angezeigt. Wenn das
Formular ohne Beanstandung ist, wird es übertragen */
  if (error) {
    err_msg = err_msg.join('\n\xB7 ');
    alert(err_msg);
    return false;
  }
  else {
    return true;
  }
}


