function popup(Url,sizeX,sizeY,status)
{
  var xpos=(screen.width-sizeX)/2-16;
  var ypos=(screen.height-sizeY)/2-30;
  status=(status=="yes")?"yes":"no";
  var traits = 'toolbar=no,location=no,directories=no,status='+status+',scrollbars=yes,resizable=yes,menubar=no,';
  var traits = traits+'width='+sizeX+',height='+sizeY+',left='+xpos+',top='+ypos;  
  var trenner="";
  if (Url.indexOf('?')>0){trenner="&"}else{trenner="?"};
  newwindow=window.open(Url+trenner+"popup=1&xpos="+xpos+"&ypos="+ypos,"Popup",traits);
  newwindow.focus();
}

////////////////////////////////////////////////////////////////
//
// Beschreibung: Funktionen zum finden von Objekten
//
// Parameter   : n=obj_id(Name des Objektes)
// 
////////////////////////////////////////////////////////////////
  function MM2_findObj(n, d)
  {
    var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
    if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM2_findObj(n,d.layers[i].document);
    if(!x && document.getElementById) x=document.getElementById(n); return x;
  }
  
  function MM_findObj(obj_id)
  {
    if(document.all){return(document.all[obj_id])}
    else if(document.getElementById){return(document.getElementById(obj_id))}
    else{return(MM2_findObj(obj_id))}
  }

  function delay(msec)
  {
    d = new Date() //today's date
    while (1)
    {
      mill=new Date() // Date Now
      diff = mill-d //difference in milliseconds
      if( diff > msec) {break;}
    }
  }

function cms_DeSH(obj_Details,obj_UebOpen,obj_UebClosed)
{
  var obj1=MM_findObj(obj_Details);
  var obj2=MM_findObj(obj_UebOpen);
  var obj3=MM_findObj(obj_UebClosed);
   
  if (obj1)
  {
    if(obj1.style.display=="none")
    {
      obj1.style.display="inline";
      if (obj2 && obj3)
      {
        obj2.style.display="none";
        obj3.style.display="block";
      }
    }
    else
    {
      obj1.style.display="none";
      if (obj2 && obj3)
      {
        obj2.style.display="block";
        obj3.style.display="none";
      }
    }
  }
}

////////////////////////////////////////////////////////////////
//
// Beschreibung: Funktionen zum Erzeugen eines Cookies
//
// Parameter   : name=Name des Cookies
//               value=Wert der geschrieben werden soll
//               days=Ablaufdatum in Tagen (optional)
// 
////////////////////////////////////////////////////////////////

function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

////////////////////////////////////////////////////////////////
//
// Beschreibung: Funktionen zum Lesen eine Cookies
//
// Parameter   : name=Name des Cookies
// 
////////////////////////////////////////////////////////////////

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);
  }
  return '';
}

////////////////////////////////////////////////////////////////
//
// Beschreibung : Funktion zum Überprüfen von email-Adressen
// Rückgabewerte: 1 = eMail-Adresse ist in Ordnung
//                0 = Keine eMail-Adresse angegeben
//               -1 = eMail-Adresse enthält Sonderzeichen
//               -2 = eMail-Syntax stimmt nicht
// Parameter    : email
// 
////////////////////////////////////////////////////////////////
  function isemail(str)
  {
    var return_val=0;
    if(str!="")
    {
      return_val=1;
      if(str.search(/[^\w-@\.]/)!=-1) return_val=-1;
      if(str.search(/(.+)?@.{2,}\..{2,}/)==-1) return_val=-2;
    }
    return(return_val);
  }
  
////////////////////////////////////////////////////////////////
//
// Beschreibung: Funktionen zum finden der X bzw. y-Position
//               eines Objektes
//
// Paramenter  : obj(Objekt)
// 
////////////////////////////////////////////////////////////////
  
  function findPosX(obj)
  {
    var curleft = 0;
    if (obj.offsetParent)
    {
      while (obj.offsetParent)
      {
        curleft += obj.offsetLeft
        obj = obj.offsetParent;
      }
    }
    else if (obj.x){curleft += obj.x};
    return curleft;
  }

  function findPosY(obj)
  {
    var curtop = 0;
    if (obj.offsetParent)
    {
      while (obj.offsetParent)
      {
        curtop += obj.offsetTop
        obj = obj.offsetParent;
      }
    }
    else if (obj.y){curtop += obj.y};
    return curtop;
  }