<!--

var gintMSG_RESULT_OK = 1;

var mobjMessageBackGround = null;
var mobjMessageShadow = null;
var mobjMessageIFrame = null;
var mobjMessageBox = null;
var mobjMessageTitle = null;
var mobjMessageText = null;
var mobjMessageExtra = null;
var mobjMessageButton = null;
var mobjMessageStyleText = null;
var mobjMessageIcon = null;
var mobjMessageSound = null;
var mobjMessageCallback = null;
var mblnMessageBoxIsActive = false;
var maobjMessageQueue = new Array();

function ErrorMessage(vstrMessage, vstrTitle, vstrButtonText, vobjCallback)
  {
  MsgShowBox(vstrMessage, vstrTitle, vstrButtonText, 1, vobjCallback);
  }

function WarnMessage(vstrMessage, vstrTitle, vstrButtonText, vobjCallback)
  {
  MsgShowBox(vstrMessage, vstrTitle, vstrButtonText, 2, vobjCallback);
  }

function InfoMessage(vstrMessage, vstrTitle, vstrButtonText, vobjCallback)
  {
  MsgShowBox(vstrMessage, vstrTitle, vstrButtonText, 3, vobjCallback);
  }

function MsgShowBox(vstrMessage, vstrTitle, vstrButtonText, vintStyle, vobjCallback)
  {

  MsgShowDefaultBox(vstrMessage, false, vobjCallback);

  }

function blnMsgBoxExists()
  {
  if(mobjMessageBackGround &&
     mobjMessageShadow &&
     mobjMessageBox &&
     mobjMessageTitle &&
     mobjMessageText &&
     mobjMessageButton &&
     mobjMessageStyleText &&
     mobjMessageIcon &&
     mobjMessageIFrame &&
     mobjMessageExtra)
    {
    return true;
    }
  return false;
  }

function MsgShowDefaultBox(vstrMessage, vblnThrowError, vobjCallback)
  {
  MsgBoxDeinit();
  alert(vstrMessage);
  MsgExecuteCallback(vobjCallback, gintMSG_RESULT_OK);
  if(vblnThrowError)
    {
    throw new Error('Fehler in der Messagebox-Routine!\n\nDie folgende Meldung konnte nicht\nim vorgesehenen Stil angezeigt werden:\n\n"' + vstrMessage + '"');
    }
  }

function blnMsgCreateBox()
  {
  if(blnMsgBoxExists())
    {
    return true;
    }

  mobjMessageBackGround = document.createElement('div');
  if(!mobjMessageBackGround)
    {
    return false;
    }
  mobjMessageBackGround.className = 'divmsgbackground';

  mobjMessageIFrame = document.createElement('iframe');
  if(!mobjMessageIFrame)
    {
    return false;
    }
  mobjMessageIFrame.frameBorder = '0px';
  mobjMessageIFrame.className = 'iframemsgbackground';

  mobjMessageShadow = document.createElement('div');
  if(!mobjMessageShadow)
    {
    return false;
    }
  mobjMessageShadow.className = 'divmsgshadow';

  mobjMessageBox = document.createElement('div');
  if(!mobjMessageBox)
    {
    return false;
    }
  mobjMessageBox.className = 'divmsgbox';
  mobjMessageBox.innerHTML = strMsgCreateHTML();

  mobjMessageBackGround.style.display = 'none';
  mobjMessageIFrame.style.display = 'none';
  mobjMessageShadow.style.display = 'none';
  mobjMessageBox.style.display = 'none';

  document.body.appendChild(mobjMessageBackGround);
  document.body.appendChild(mobjMessageIFrame);
  document.body.appendChild(mobjMessageShadow);
  document.body.appendChild(mobjMessageBox);

  mobjMessageTitle = document.getElementById('drfMessageTitle');
  if(!mobjMessageTitle)
    {
    return false;
    }
  mobjMessageText = document.getElementById('drfMessageText');
  if(!mobjMessageText)
    {
    return false;
    }
  mobjMessageButton = document.getElementById('drfMessageButton');
  if(!mobjMessageButton)
    {
    return false;
    }
  mobjMessageStyleText = document.getElementById('drfMessageStyle');
  if(!mobjMessageStyleText)
    {
    return false;
    }
  mobjMessageIcon = document.getElementById('drfMessageIcon');
  if(!mobjMessageIcon)
    {
    return false;
    }
  mobjMessageExtra = document.getElementById('drfMessageExtra');
  if(!mobjMessageExtra)
    {
    return false;
    }

  window.onscroll = MsgSetBoxPosition;
  window.onresize = MsgSetBoxPosition;
  document.onkeyup = blnMsgKeyHandler;

  return true;
  }

function strMsgCreateHTML()
  {
  var strContent = '<table class="tablestandard" cellspacing="0px" cellpadding="5px">';

  strContent += '<tr>';
  strContent += '<td id="drfMessageStyle" class="filledbox_enhanced text_tiny" align="center" width="48px"></td>';
  strContent += '<th id="drfMessageTitle"></th>';
  strContent += '<td class="filledbox_enhanced" align="right">';
  strContent += '<a\ href="#Meldung\ schliessen\ (ESC)"\ onclick="MsgCloseBox();\ return\ false;"\ target="_self"\ class="linkbutton"><span\ style="display:block;\ width:14px"\ title="Meldung\ schliessen\ (ESC)"><img\ src="images/close.gif"\ width="14px"\ height="14px"\ alt="Meldung\ schliessen\ (ESC)"></a>';
  strContent += '</td>';
  strContent += '</tr>';

  strContent += '<tr>';
  strContent += '<td valign="top">';
  strContent += '<img id="drfMessageIcon" src="" width="48px" height="48px">';
  strContent += '</td>';
  strContent += '<td valign="middle" colspan="2">';
  strContent += '<p id="drfMessageText" align="left"></p>';
  strContent += '</td>';
  strContent += '</tr>';

  strContent += '<tr id="drfMessageExtra" style="display:none">';
  strContent += '<td class="generic_nowrap text_tiny" align="center" colspan="3">';
  strContent += '<a\ href="dialog_check.htm"\ target="_self"\ class="linkbutton"\ onclick="return\ openpopup(\'dialog_check.htm\'\,\ \'DRF_PopupTarget_Check\'\,\ \'left=\'\ +\ (screen.availWidth\ -\ 750)\ +\ \'\,top=0\,width=740\,height=\'\ +\ (screen.availHeight\ -\ 100)\ +\ \'\,dependent=yes\,resizeable=no\,scrollbars=yes\,status=yes\'\,\ false);"><span>Browser\ und\ Einstellungen\ testen</span></a>';
  strContent += '&nbsp;::&nbsp;';
  strContent += '<a href="faq.htm#technik" target="_blank">F.A.Q.</a>';
  strContent += '</td>';
  strContent += '</tr>';

  strContent += '<tr>';
  strContent += '<td align="center" colspan="3">';
  strContent += '<input\ type="button"\ value=""\ name="drfMessageButton"\ id="drfMessageButton"\ style="padding:2px"\ onclick="MsgCloseBox()"\ class="inputbutton"\ onmouseover="this.className=\'inputbuttonhover\'"\ onmouseout="this.className=\'inputbutton\'">';
  strContent += '</td>';
  strContent += '</tr>';

  strContent += '</table>';
  return strContent;
  }

function blnMsgFillBox(vstrMessage, vstrTitle, vstrButtonText, vintStyle)
  {
  if(!blnMsgBoxExists())
    {
    return false;
    }

  MsgPlaySound(vintStyle);

  var strIcon = '';
  var strStyleDescription = '';
  var strStyleDescriptionHTML = '';
  var strTitle = vstrTitle;
  var strButtonText = vstrButtonText;
  var strDefaultTitle = '';
  var strDefaultButtonText = '';
  var strRowVisibleStyle = 'table-row';

  switch (vintStyle)
    {
    case 1:
      strIcon = 'images/msgbox/msg_error.png';
      strStyleDescription = 'Fehler';
      strStyleDescriptionHTML = '<span class="text_error">' + strStyleDescription + '</span>';
      strDefaultTitle = 'Oops ...';
      strDefaultButtonText = 'Schliessen';
      mobjMessageExtra.style.display = strRowVisibleStyle;
      break;
    case 2:
      strIcon = 'images/msgbox/msg_warning.png';
      strStyleDescription = 'Warnung';
      strStyleDescriptionHTML = '<span class="text_important">' + strStyleDescription + '</span>';
      strDefaultTitle = 'Achtung!';
      strDefaultButtonText = 'Schliessen';
      mobjMessageExtra.style.display = strRowVisibleStyle;
      break;
    default:
      strIcon = 'images/msgbox/msg_info.png';
      strStyleDescription = 'Info';
      strStyleDescriptionHTML = strStyleDescription;
      strDefaultTitle = 'Hinweis';
      strDefaultButtonText = 'Weiter ...';
      mobjMessageExtra.style.display = 'none';
      break;
    }

  if(strTitle == '')
    {
    strTitle = strDefaultTitle;
    }
  if(strButtonText == '')
    {
    strButtonText = strDefaultButtonText;
    }

  mobjMessageIcon.src = strIcon;
  mobjMessageIcon.alt = strStyleDescription;
  mobjMessageIcon.title = strStyleDescription;
  mobjMessageStyleText.innerHTML = strStyleDescriptionHTML;

  mobjMessageText.innerHTML = vstrMessage.replace(/\n/g, '<br>');
  mobjMessageTitle.innerHTML = strTitle.replace(/\n/g, '<br>');
  mobjMessageButton.value = strButtonText.replace(/\n/g, '<br>');

  return true;
  }

function blnMsgInitBox()
  {
  if(!blnMsgBoxExists())
    {
    return false;
    }

  MsgSetBackgroundPosition();
  mobjMessageBackGround.style.display = 'block';

  mobjMessageBox.style.width = 'auto';
  mobjMessageBox.style.display = 'block';
  if(mobjMessageBox.offsetWidth > 500)
    {
    mobjMessageBox.style.width = '500px';
    }
  if(mobjMessageBox.offsetWidth > document.body.clientWidth)
    {
    mobjMessageBox.style.width = (document.body.clientWidth - (2 * 10)) + 'px';
    }
  MsgSetBoxPosition();
  mobjMessageIFrame.style.display = 'block';
  mobjMessageShadow.style.display = 'block';

  try { mobjMessageButton.focus(); }
  catch(e) {}

  return true;
  }

function MsgSetBoxPosition()
  {
  if(mblnMessageBoxIsActive && blnMsgBoxExists())
    {
    try
      {
      var intTop = (document.body.scrollTop + ((document.body.clientHeight - mobjMessageBox.offsetHeight) / 2)) + 'px';
      if(intTop < 0)
        {
        intTop = 0;
        }
      var intLeft = (document.body.scrollLeft + ((document.body.clientWidth - mobjMessageBox.offsetWidth) / 2)) + 'px';
      if(intLeft < 0)
        {
        intLeft = 0;
        }
      mobjMessageBox.style.top = intTop;
      mobjMessageBox.style.left = intLeft;

      mobjMessageIFrame.style.top = mobjMessageBox.offsetTop + 'px';
      mobjMessageIFrame.style.left = mobjMessageBox.offsetLeft + 'px';
      mobjMessageIFrame.style.width = mobjMessageBox.offsetWidth + 'px';
      mobjMessageIFrame.style.height = mobjMessageBox.offsetHeight + 'px';

      mobjMessageShadow.style.top = (mobjMessageBox.offsetTop + 10) + 'px';
      mobjMessageShadow.style.left = (mobjMessageBox.offsetLeft + 10) + 'px';
      mobjMessageShadow.style.width = mobjMessageBox.offsetWidth + 'px';
      mobjMessageShadow.style.height = mobjMessageBox.offsetHeight + 'px';

      MsgSetBackgroundPosition();
      }
    catch(e) {}
    }
  }

function MsgSetBackgroundPosition()
  {
  if(blnMsgBoxExists())
    {
    try
      {
      mobjMessageBackGround.style.left = document.body.scrollLeft + 'px';
      mobjMessageBackGround.style.top = document.body.scrollTop + 'px';
      mobjMessageBackGround.style.width = document.body.clientWidth + 'px';
      mobjMessageBackGround.style.height = document.body.clientHeight + 'px';
      }
    catch(e) {}
    }
  }

function blnMsgKeyHandler(vobjEvent)
  {
  try
    {
    var blnUnHandeled = true;

    if(!mblnMessageBoxIsActive)
      {
      return blnUnHandeled;
      }

    var objEvent = null;
    if(vobjEvent)
      {
      objEvent = vobjEvent;
      }
    else if(window.event)
      {
      objEvent = window.event;
      }
    if(!objEvent)
      {
      return blnUnHandeled;
      }

    switch (objEvent.type)
      {
      case 'keyup':
          switch (objEvent.which)
            {
            case 27:    //ESC
              MsgCloseBox();
              blnUnHandeled = false;
              break;
            }
        break;
      }
    return blnUnHandeled;
    }
  catch(e)
    {
    return blnUnHandeled;
    }
  }

function MsgBoxDeinit()
  {
  if(mobjMessageBox)
    {
    mobjMessageBox.style.display = 'none';
    }
  if(mobjMessageShadow)
    {
    mobjMessageShadow.style.display = 'none';
    }
  if(mobjMessageIFrame)
    {
    mobjMessageIFrame.style.display = 'none';
    }
  if(mobjMessageBackGround)
    {
    mobjMessageBackGround.style.display = 'none';
    }
  mblnMessageBoxIsActive = false;
  }

function MsgCloseBox()
  {
  MsgBoxDeinit();
  MsgExecuteCallback(null, gintMSG_RESULT_OK);
  MsgShowFromQueue();
  }

function MsgExecuteCallback(vobjCallback, vintResult)
  {
  objCallback = null;
  blnAsyncCallback = false;

  if(vobjCallback)
    {
    objCallback = vobjCallback;
    }
  else if(mobjMessageCallback)
    {
    objCallback = mobjMessageCallback;
    blnAsyncCallback = true;
    }

  if(objCallback)
    {
    try
      {
      objCallback(vintResult);
      }
    catch(e) {}
    }

  if(blnAsyncCallback)
    {
    mobjMessageCallback = null;
    }
  }

function blnMsgAddToQueue(vstrMessage, vstrTitle, vstrButtonText, vintStyle, vobjCallback)
  {
  try
    {
    var astrMessage = new Array(vstrMessage, vstrTitle, vstrButtonText, vintStyle, vobjCallback);
    maobjMessageQueue.push(astrMessage);
    }
  catch(e)
    {
    return false;
    }
  return true;
  }

function MsgShowFromQueue()
  {
  try
    {
    if(maobjMessageQueue.length > 0)
      {
      MsgShowBox(maobjMessageQueue[0][0],
                 maobjMessageQueue[0][1],
                 maobjMessageQueue[0][2],
                 maobjMessageQueue[0][3],
                 maobjMessageQueue[0][4]);
      maobjMessageQueue.shift();
      }
    }
  catch(e)
    {
    MsgShowDefaultBox('Es sind Fehler bei der Anzeige von Meldungen aufgetreten\nNicht alle Meldungen konnten verarbeitet werden.', true, null);
    }
  }

function MsgPlaySound(vintStyle)
  {
  try
    {
    if(!mobjMessageSound)
      {
      mobjMessageSound = document.createElement('div');
      if(!mobjMessageSound)
        {
        return;
        }
      mobjMessageSound.className = 'divsoundcontainer';
      document.body.appendChild(mobjMessageSound);
      }

    var strSoundError = '<object\ width="1px"\ height="1px"\ data="sound/mp3player.swf?src=sound/msg_error.mp3&loop=no&autostart=yes&streaming=yes"\ type="application/x-shockwave-flash"> <param\ name="movie"\ value="sound/mp3player.swf?src=sound/msg_error.mp3&loop=no&autostart=yes&streaming=yes"> <param\ name="menu"\ value="false"> <param\ name="quality"\ value="high"> <param\ name="scale"\ value="exactfit"> <param\ name="play"\ value="true"> <param\ name="loop"\ value="false"> <param\ name="wmode"\ value="transparent"> <div\ class="divinstallation"\ style="width:\ 1px;\ height:\ 1px"> <b>Dieses\ Element\ kann\ leider\ nicht\ angezeigt\ werden\,\ da\ kein\ geeigneter\ <i>Flash\ Player</i>\ installiert\ ist.</b><br><br> <a\ href="http://get.adobe.com/de/flashplayer"\ target="_blank"><i>Flash\ Player</i>\ installieren</a> </div> </object> ';
    var strSoundWarning = '<object\ width="1px"\ height="1px"\ data="sound/mp3player.swf?src=sound/msg_warning.mp3&loop=no&autostart=yes&streaming=yes"\ type="application/x-shockwave-flash"> <param\ name="movie"\ value="sound/mp3player.swf?src=sound/msg_warning.mp3&loop=no&autostart=yes&streaming=yes"> <param\ name="menu"\ value="false"> <param\ name="quality"\ value="high"> <param\ name="scale"\ value="exactfit"> <param\ name="play"\ value="true"> <param\ name="loop"\ value="false"> <param\ name="wmode"\ value="transparent"> <div\ class="divinstallation"\ style="width:\ 1px;\ height:\ 1px"> <b>Dieses\ Element\ kann\ leider\ nicht\ angezeigt\ werden\,\ da\ kein\ geeigneter\ <i>Flash\ Player</i>\ installiert\ ist.</b><br><br> <a\ href="http://get.adobe.com/de/flashplayer"\ target="_blank"><i>Flash\ Player</i>\ installieren</a> </div> </object> ';
    var strSoundInfo = '<object\ width="1px"\ height="1px"\ data="sound/mp3player.swf?src=sound/msg_info.mp3&loop=no&autostart=yes&streaming=yes"\ type="application/x-shockwave-flash"> <param\ name="movie"\ value="sound/mp3player.swf?src=sound/msg_info.mp3&loop=no&autostart=yes&streaming=yes"> <param\ name="menu"\ value="false"> <param\ name="quality"\ value="high"> <param\ name="scale"\ value="exactfit"> <param\ name="play"\ value="true"> <param\ name="loop"\ value="false"> <param\ name="wmode"\ value="transparent"> <div\ class="divinstallation"\ style="width:\ 1px;\ height:\ 1px"> <b>Dieses\ Element\ kann\ leider\ nicht\ angezeigt\ werden\,\ da\ kein\ geeigneter\ <i>Flash\ Player</i>\ installiert\ ist.</b><br><br> <a\ href="http://get.adobe.com/de/flashplayer"\ target="_blank"><i>Flash\ Player</i>\ installieren</a> </div> </object> ';
    var strSound = '';

    switch (vintStyle)
      {
      case 1:
        strSound = strSoundError;
        break;
      case 2:
        strSound = strSoundWarning;
        break;
      default:
        strSound = strSoundInfo;
        break;
      }
    mobjMessageSound.innerHTML = strSound;
    }
  catch(e) {}
  }

//-->
