var speed               = 1300;         // in Millisekunden
var show_zuschlagdauer  = 3000;         // in Millisekunden
var clear_log_after     = 27;           // Anzahl der Logfileeinträge bevor Logfile geleert wird (ausgelöst erst bei Postionwechsel)

// Default values, not to be changed
if (!Date.now) { Date.now = function () {return +new Date(); }; }// IE8 kennt Date.now nicht

var debugok             = false;        // Debug
var timer_id_a          = new Array();  // Timerarray
var zdone               = 0;            // Zuschlags division, sofern notwendig angezeigt?
var last_logtxt         = 0;            // Letzen Lofileeintrag merken
var last_logtxt2        = 0;            // vorletzen Lofileeintrag merken
var log_linecount       = 0;            // Linecounter der Logfileeinträge
var last_bid            = 0;            // nur für Testauktion
var knockdowns          = 0;            // Anzahl der erhaltenen Zuschläge
var clear_log           = false;        // Resetflag für Logfile
var gebot_abgegeben     = 0;            // Überboten worden?

//--------------------------------------------------------
function hide_elementby_id(element)
{
  var obj = document.getElementById(element);
  if (obj.style.display === 'none') { return; }
  obj.style.display = 'none';
}

//--------------------------------------------------------
function show_elementby_id(element)
{
  var obj=document.getElementById(element);
  if (obj.style.display === 'inline') { return; }
  obj.style.display='inline';
}

//--------------------------------------------------------
// AJAX GEDÖNSE
function xmlhttpPost(strURL) 
{
  var xmlHttpReq = false;
  var self = this;
  
  try
    {     
      // Firefox, Opera 8.0+, Safari, IE ab 7
      self.xmlHttpReq =new XMLHttpRequest();  
    }
  catch (e)
    {  
    // Internet Explorer 6
    try
      {  self.xmlHttpReq =new ActiveXObject("Msxml2.XMLHTTP"); }
    catch (e)
      {
      try
        { self.xmlHttpReq =new ActiveXObject("Microsoft.XMLHTTP"); }
      catch (e)
        { 
          var slg; slg=get_string("Ihr Browser unterstuetzt kein A-J-AX. Bitte aktualisieren Sie Ihren Browser","Please update your browser!");
          window.alert(slg); return false; 
        }
    }
  }
  
  self.xmlHttpReq.onreadystatechange = function() 
  {
    if (self.xmlHttpReq.readyState == 4) { if (self.xmlHttpReq.status==200) { updatepage(self.xmlHttpReq.responseText); }  }
  };
  
  self.xmlHttpReq.open('POST', strURL, true);
  self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  self.xmlHttpReq.setRequestHeader('Pragma', 'no-cache');
  self.xmlHttpReq.setRequestHeader('Cache-Control', 'must-revalidate');

  var qstr=getquerystring();
  if (debugok) { wr_log('xmlhttpPost: '+strURL+'&'+qstr); }
  self.xmlHttpReq.send(qstr);

  return true;
}

//--------------------------------------------------------
function getquerystring() 
{
  // Erzeuge Zufallsterm
  var jetzt    = new Date();
  var zeit     = jetzt.getTime();

  var form     = document.forms['frm'];
  var knr      = form.knr.value;
  var kpw      = form.pw.value;     
  var tid      = form.tid.value;
  var aktid    = form.aktid.value;
  var betrag   = form.bidbutton.value;
  var askbid   = form.askbid.checked;
 
  // Überarbeite Variablen
  kpw=kpw.replace(/\+/g,"~~plus~~");
  betrag=get_clean_bidbetrag_from_bidbutton();    

  qstr = 'knr='            + escape(knr);
  qstr = qstr+'&kpw='      + escape(kpw);
  qstr = qstr+'&tid='      + escape(tid);
  qstr = qstr+'&aktid='    + escape(aktid);
  qstr = qstr+'&betrag='   + escape(betrag);
  qstr = qstr+'&askbid='   + escape(askbid);
  qstr = qstr+'&rndm='     + escape(zeit);
  qstr = qstr+'&client='   + escape('web');

  return qstr;

}

//--------------------------------------------------------
function get_aktpos()         { xmlhttpPost('antwort.php?cmd=get_aktpos');  }
function get_aktpos_details() { xmlhttpPost('antwort.php?cmd=get_position_details'); }
function verify_login()       { xmlhttpPost('antwort.php?cmd=login'); }

// SERVICE FUNKTIONEN

function ltrim(s)                   { return (s.replace(/^\s+/,"")); }
function rtrim(s)                   { return (s.replace(/\s+$/,"")); }
function trim(s)                    { return (s.replace(/\s+$/,"").replace(/^\s+/,"")); }
function get_idvalue(fid)           { return document.getElementById(fid).value; }
function set_idvalue(fid,value)     { document.getElementById(fid).value=value; }
function set_idinnerhtml(fid,value) { document.getElementById(fid).innerHTML=value; }
function set_idsrc(fid,src)         { document.getElementById(fid).src=src; }

// ************************************** FUNKTIONEN ******************************************************

// Buttons (de)aktivieren
function set_bid_button(on)   
{ 
  if (get_idvalue('showonly')) return 0;
  document.getElementById("bidbutton").disabled=!on;  
}

//--------------------------------------------------------
function set_defaults()
{ 
  timer_off('set_default');
  var slg='';
  knockdowns=0;
  show_hint_login();
  set_idvalue('lok','0');
  set_idvalue('aktid','');
  set_idvalue('geboten','');
  slg=get_string('Warten ...','Please wait ...');  
  set_idvalue('bidbutton',slg);
  set_idinnerhtml('d_katnr',' ');
  set_idinnerhtml('d_limit',' ');

  if (!get_idvalue('showonly'))
  {
    slg=get_string('Ersteigerte Exponate: <B>'+knockdowns+'</B>','Your knockdowns: <B>'+knockdowns+'</B>');  
    set_idinnerhtml('d_knockdowns',slg);
  }; 

  set_pic('https://www.henrys.de/images/Logo-Big.png','Auktionsende');
  set_bid_button(false);
  document.getElementById('div_watchlist').style.visibility='hidden';  
  gebot_abgegeben=0;
}

//--------------------------------------------------------
function do_aw_loginjob(a)
{
  var loginresult=trim(a[1]);
  var slg='';

  if (loginresult=='ok')
  {
    slg=get_string('Login erfolgreich','Login successful');  wr_log(slg);
    slg=get_string('Serverdatum: ','Server date: ');         wr_log(slg+trim(a[3]));
    slg=get_string('Serverzeit: ','Server time: ');          wr_log(slg+trim(a[4])+'\r\n');
    
    set_bid_button(true);
    set_idvalue('lok','O'); // PseudoLoginok
    show_elementby_id('div_bid'); 
    set_idinnerhtml('login_hint', '');
    get_aktpos(); // Aktiviert Timer 2te mal
  }
  else
  {
    wr_log('Loginfehler');
    set_defaults();
  }
}

//--------------------------------------------------------
function do_aw_logoutjob(a)
{
  var slg='';
  var logoutresult=trim(a[1]);
  if (logoutresult=='ok')
  {
    slg=get_string("Vielen Dank","Thank you");  
    wr_log(slg+'\r\n');

    slg=get_string("Vielen Dank fuer Ihren Besuch bei HENRYs Liveauktion","Thank you for visiting HENRYs Liveauction");
    set_idinnerhtml('d_text','<HR><BR><BR>'+slg);
    set_defaults();
    hide_elementby_id('div_bid');
  }
  else
  if (logoutresult=='no_henrys')
  {
    window.alert('Sorry- derzeit keine Teilnhame fuer Henrys-Mitarbeiter moeglich');
    wr_log('Logout erfolgreich\r\n');
    set_idinnerhtml('d_text','<HR>Logout ok<HR><BR><BR>Vielen Dank fuer Ihren Besuch bei HENRYs Liveauktion');
    set_defaults();
    hide_elementby_id('div_bid');
  }
}

//--------------------------------------------------------
function clear_logfile()
{ 
  log_linecount=0;
  clear_log=false;
  document.getElementById('logtxt').value=''; 
}

//--------------------------------------------------------
function show_hint_login()
{
  var slg = get_string("<SMALL><FONT COLOR='#FF0000'>Hinweis: Vor dem Bieten bitte einloggen</FONT></SMALL>","<SMALL><FONT COLOR='#FF0000'>Hint: Please login before placing a bid</FONT></SMALL>");  

  if (!is_loginok() && !get_idvalue('showonly')) { set_idinnerhtml('login_hint', slg); }
                                            else { set_idinnerhtml('login_hint', ''); }
}

var GId = 0;
var GCatNo = 0;
var GLimit = 0;
//--------------------------------------------------------
function ServiceSetPicOnError() 
{
  if (!GId)
    return false;
  //Notfall-Thumb vom WWW-PC
  URLStr = "https://www.henrys.de/images/Articles/th" + GId + ".jpg";
  //Verhindere Ewigschleife, falls auch das schief geht
  GId = 0;
  set_pic(URLStr, "Kat-Nr: " + GCatNo + '\r\nLimit: ' + GLimit);
}

//--------------------------------------------------------
function do_aw_getposition(a)
{ 
  if (debugok) { wr_log('do_aw_getposition: '+a); }

  if (clear_log===true)  { clear_logfile(); }

  var slg       = '';
  var ttid      = get_idvalue('tid'); // Testauktion?
  var preis     = '';
  var vorbehalt = '';
 
  var result    = trim(a[0]);
  var abt       = trim(a[1]);
  var id        = trim(a[2]);  
  var katnr     = trim(a[3]);  
  var limit     = trim(a[4]);         // Wenn Limit = -1 dann ist es eine Estimateauktion  
  var txt       = trim(a[5]);         // Artikeltext Deutsch
  var lid       = trim(a[6]);         // Letzte ID die zugeschlagen wurde am Livesystem
  var lknr      = trim(a[7]);         // Letzte KNR die zugeschlagen wurde am Livesystem
  var lzus      = trim(a[8]);         // Letzte Zuschlagsumme die zugeschlagen wurde am Livesystem
  var lkat      = trim(a[9]);         // Letzte Katnummer die zugeschlagen wurde am Livesystem
  var special   = trim(a[10]);        // Muss Katnummer rot gefärbt werden?
  var est_lo    = trim(a[11]);        // Estimate Low
  var est_hi    = trim(a[12]);        // Estimate High
  var txt_en    = trim(a[13]);        // Artikeltext Englisch
  var verkauft  = trim(a[14]);        // Vorheriger Artikel verkauft? 0=no 1=ja (2=unter Vorbehalt???)
  var rl        = trim(a[15]);        // LReal
  var wobinich  = trim(a[16]);        // Position x von y
  var bidderc   = trim(a[17]);        // Anzahl HN LA Bieter
  var watcherc  = trim(a[18]);        // Anzahl HN LA Viewer

  //Viewer-Modus?
  var showonly = get_idvalue('showonly');
 
  if (get_idvalue('language')!=='de') { txt=txt_en; }
  
  // Eintrag in der Kundenwatchlist auf www?
  var wl=get_idvalue('watchlist');
  if (wl.indexOf(id)!=-1) { document.getElementById('div_watchlist').style.visibility='visible'; }
                    else  { document.getElementById('div_watchlist').style.visibility='hidden';  };

  show_hint_login();
  
  // Estimate Auktion ?
  if (limit=='-1')  // ja
  {
    if (est_lo!=='') { preis=preis+est_lo+' - '; }
    if (est_hi!=='') { preis=preis+est_hi+' EUR'; }
  }
  else             // nein
  {
    if (limit=='0')  { slg=get_string('ohne Limit','no limit'); limit=slg; }
               else  { limit=limit+' EUR'; }
    preis='Limit: '+limit;
  }
  
  // Specials für Testauktion
  if (ttid=='08154711') 
  { 
    if (last_bid!==0)            // wurde geboten?
    {
      lknr=get_idvalue('knr');  // ermittle eigene Kundennummer
      lzus=last_bid;            // Verwende das letzte Gebot in der Testauktion des Kunden
      last_bid=0;               // Setze letztes Gebot vom Kunden das nicht überboten wurde zurück
    }
    
    if (showonly == 1)
    {
      slg = get_string('Zu bieten ', 'To bid: ');  
    }
    else
    {
      slg=get_string('Ich biete testweise ','Place my testbid: ');  
    }
    set_idinnerhtml('div_bidtxt', slg);
  }
                                                                
  // letzten zuschlag auswerten & ggf. Zuschlagsdivision anzeigen
  if (zdone!=lid)               // Hat die Position gewechselt?
  {             
    zdone=lid;                  // merke mir letzte ID als zdone
    knr=get_idvalue('knr');     // ermittle eigene kundennummer
    
    //if (knr==lknr)              // habe ich den Zuschlag?
    if ((knr===lknr) && (knr!=='')) // habe ich den Zuschlag?
    {
      // Zuschlag unter rl?
      if (limit=='-1') 
      {  
        if (lzus<rl) { slg=get_string(' unter Vorbehalt ',' conditional ');  vorbehalt=slg; }
      }

      var de = 'Herzlichen Glueckwunsch!</P>Sie haben das Exponat '+lkat+vorbehalt+' ersteigert.<BR><SMALL>Zuschlag'+vorbehalt+': '+lzus+' EUR zzgl. Aufgeld lt. AGB';
      var en = 'Congratulations!</P>Your bid for lot '+lkat+' was '+vorbehalt+'successful.<BR><SMALL>Hammerprice'+vorbehalt+': '+lzus+' EUR + charge (see terms of condition)';
      slg    = get_string(de,en);  

      var s;
      // Fülle die Zuschlagsdivision 
      s=  '<TABLE ID="t_zuschlag">';
      s=s+'  <TR>';
      s=s+'    <TD><P ID="glueckwunsch">'+slg+'</SMALL></TD>';
      s=s+'    <TD><IMG SRC=\'https://www.henrys.de/cgi-bin/bb2/html/pics/chg/'+abt+'/th'+lid+'.jpg\' HEIGHT=\'85\'><BR></TD>';
      s=s+'  </TR>';
      s=s+'</TABLE>';
      set_idinnerhtml('d_zuschlag',s);
      // Mache sichtbar
      document.getElementById('d_zuschlag').style.display='inline-block';
      // Blende aus nach xxxx ms
      window.setTimeout('hide_zuschlag()',show_zuschlagdauer);
     
      wr_log('********************************');
      slg=get_string('Glueckwunsch.','Congratulation.');                                       wr_log(slg); 
      slg=get_string('Zuschlag '+vorbehalt+'erhalten!','You won!');                            wr_log(slg); 
      slg=get_string('Kat-Nr: '+lkat,'Lot no.: '+lkat);                                        wr_log(slg); 
      slg=get_string('Zuschlag '+lzus+' EUR'+vorbehalt,'Hammerprice '+lzus+' EUR'+vorbehalt);  wr_log(slg); 
      wr_log('********************************');
      knockdowns++;
 
      slg=get_string('Ersteigerte Exponate: <B>'+knockdowns+'</B>','Your knockdowns: <B>'+knockdowns+'</B>');  
      set_idinnerhtml('d_knockdowns',slg); // erhöhe Zuschlagcounter des Kunden
      gebot_abgegeben=0;
    }
  }
  
  set_idvalue('aktid',id);

  if (special=='-') 
  { 
    slg=get_string('Kat-Nr.:</B> ','Lot no.:</B> ');  
    set_idinnerhtml('d_katnr',slg+katnr+'<SMALL>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;Lot '+wobinich); 
  }
  else 
  { 
    slg=get_string('<FONT COLOR="red">Kat-Nr.:</B> '+katnr+'*</FONT><SMALL>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;Lot '+wobinich,'<FONT COLOR="red">Lot no.:</B> '+katnr+'*</FONT><SMALL>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;Lot '+wobinich);  
    set_idinnerhtml('d_katnr',slg);  
  }
/*
  watcherc=0; // OLI 01.08.2016 Anzeige soll weg ...
  if (watcherc>0)
  {
    slg=get_string('Kunden bei dieser Liveauktion: '+watcherc+'<FONT COLOR="#F3F3F3"> '+bidderc+'</FONT>','Customers in this auction: '+watcherc);  
    set_idinnerhtml('d_bidderc',slg);
  }
  else
  {
    set_idinnerhtml('d_bidderc','');
  }
*/
  set_idinnerhtml('d_limit',preis);
  set_idinnerhtml('d_text',txt);
  set_idvalue('geboten','');
  
  slg=get_string('Warten ...','Please wait ...');  
  set_idvalue('bidbutton',slg);

  set_bid_button(false);

  // www
  var id_1 = id.substr(0,3);
  var id_2 = id.substr(3,3);
  var url = "https://archiv.henrys.de/images/" + id_1 + "/" + id_2 + "/th/th" + id + ".jpg";

  // wr_log(url);
  GId = id;
  GCatNo = katnr;
  GLimit = limit;
  set_pic(url, "Kat-Nr: " + katnr + "\r\nLimit: " + limit);

  // Info für Allgemeinheit
  if (verkauft=='1') 
  {
    slg=get_string('Zugeschlagen','knocked down');  
    wr_log(slg);
  }

  slg=get_string('Aktuelle Kat-Nr: '+katnr,'Current Lot: '+katnr);  
  wr_log(slg);
 
  get_aktpos_details();
}

//--------------------------------------------------------
function set_pic(url,hint)
{
  // lösche w + h damit später beim onload des images die werte richtig ausgelesen werden können
  var bild = document.getElementById('bildposition');
  bild.style.height='';
  bild.style.width='';

  // hint anpassen
  hint       = hint.replace('&euro;', '€');
  bild.src   = url;
  bild.title = hint;
  bild.alt   = hint;
}

//--------------------------------------------------------
function get_clean_bidbetrag_from_bidbutton()
{
  var betrag = get_idvalue('bidbutton');
//  betrag=trim(betrag.substr(0,(betrag.length-5)));
  betrag=betrag.replace(/[^0-9]/g, "");
  return betrag;
}

//-----------------------------------------------------
function do_bid()
{
  var slg = '';

  if (is_loginok() === false)
  {  
    slg=get_string('Um an der Auktion teilnehmen zu koennen muessen Sie sich zuerst mit Ihrer Kundennummer und Passwort an unserem Server legitimieren.','Before you can place a bid you have to login, using your customer no. an password');
    window.alert(slg); 
    return;
  }

  set_bid_button(false);

  id      = get_idvalue('aktid');
  betrag  = get_clean_bidbetrag_from_bidbutton();
  

  if (document.getElementById('askbid').checked===true)
  {
    slg=get_string('Moechten Sie wirklich '+betrag+' Euro bieten?','Do you really want to bid: '+betrag+' Euro ?');  

    if (! confirm(slg)) 
    { 
      set_bid_button(false); 
      slg=get_string('Das Gebot wurde NICHT abschickt','Bid NOT sent');   
      window.alert(slg); 
      return -1; 
    }
  }

  timer_off('do_bid');
  
  xmlhttpPost("gebote.php");

  last_bid=betrag;
  set_idvalue('geboten',betrag);
  gebot_abgegeben=1;
  return 1;
}

//--------------------------------------------------------
function get_zeit()
{
  var a = new Date();
  var stunde = a.getHours();    if (stunde  < 10) { stunde ="0"+stunde;  }
  var minute = a.getMinutes();  if (minute  < 10) { minute ="0"+minute;  }
  var sekunde = a.getSeconds(); if (sekunde < 10) { sekunde="0"+sekunde; }
  var zeit = stunde+':'+minute+':'+sekunde;
  return zeit;
}

//--------------------------------------------------------
function wr_log(s)
{
  if (last_logtxt  == s) { return; }
  if (last_logtxt2 == s) { return; }

  log_linecount++;

  last_logtxt2=last_logtxt;
  last_logtxt=s;
  
  var zeit = get_zeit();
  s=zeit+' | '+s;
   
  var logfiletext = document.getElementById('logtxt');
  if (log_linecount>=clear_log_after) { clear_log=true; }

  if (logfiletext.value!=='') { logfiletext.value=logfiletext.value+'\r\n'+s; }
                         else { logfiletext.value=logfiletext.value+s; }
  logfiletext.scrollTop=logfiletext.scrollHeight;   // mitscrollen
}

//--------------------------------------------------------
function do_aw_gebot(a)
{
  var cmd      = trim(a[0]);
  var awtyp    = trim(a[1]);
  var msg      = trim(a[2]);
  var slg      = '';

  if (msg=='wrongid')  
  { 
    slg=get_string('Position nicht mehr aktuell','wrong Lot');  
    wr_log(slg); 
    get_aktpos(); 
  }
  else
  if (msg=='password') 
  { 
    slg=get_string('FEHLER: Nicht authorisiert!','error: not authorised');  
    wr_log(slg); 
  }
  else  
  { 
    if (awtyp=='fehler') 
    { 
      slg=get_string('Sie wurden ueberboten','A higher bid has been made');  
      wr_log(slg); 
    }
    else 
    { 
      slg=get_string(msg,msg);  
      wr_log(slg); 
    }
  }
}

//--------------------------------------------------------
function do_askbidjob()
{
  var slg='';
  var ger='';
  var en='';
  if (document.getElementById('askbid').checked===true) 
  { 
    ger = "Hinweis:\r\n\r\nEvtl. verlieren Sie mit Aktivierung dieser Funktion wichtige Zeit, da Ihr Gebot erst zu Henry's gesendet wird nachdem Sie die Rueckfrage mit \"OK\" bestaetigt haben.";
    en  = "Information:\r\n\r\nIf you activate this checkbox you probably loose time to place the bid, because you have to confirm your bid before it will be sent to Henry's";
    slg = get_string(ger,en);  
    window.alert(slg); 

    slg=get_string('Aktiv: Rueckfrage vor Bieten','activated: Ask before bid');  
    wr_log(slg); 
  }
  else 
  { 
    ger = "Wirklich die Rueckfrage vor dem Bieten deaktivieren?\r\n\r\nIhr Gebot wird dann sofort zu Henry's gesendet\r\ohne das Sie den Betrag nochmal bestaetigen muessen!";
    en  = "Are you sure to deactive this checkbox? Your bid will directly sent to Henry's!";
    slg = get_string(ger,en);  

    if (! confirm(slg)) 
    {
      document.getElementById('askbid').checked=true; 

      ger = "Die Rueckfrage wurde NICHT deaktiviert\r\n\r\nVor dem Senden des Gebots muessen Sie den jeweiligen Betrag nochmals bestaetigen.";
      en  = "Ok- not deactivated.\r\n\r\nYou have to confirm your bid.";
      slg     = get_string(ger,en);  
      window.alert(slg); 

      slg=get_string('Abbruch: Rueckfrage deaktivieren','Cancelled: deactivating');  
      wr_log(slg);
      return -1;
    }
    slg=get_string('Inaktiv: Rueckfrage vor Bieten','deactivated: Ask before bid');  
    wr_log(slg); 
  }
  return 1;
}

//--------------------------------------------------------
function is_loginok() { if (get_idvalue('lok')=='O') { return true; } else { return false; } }

//--------------------------------------------------------
function hide_zuschlag() {  hide_elementby_id('d_zuschlag'); set_idinnerhtml('d_zuschlag',''); }

//--------------------------------------------------------
function do_aw_fehler(a)
{
  var slg='';
  var msg=a[1];
  if (last_logtxt==msg) { return; }
  set_bid_button(false);

  slg=get_string('Warten ...','Please wait ...');  
  set_idvalue('bidbutton',slg);

  slg=get_string('Warten auf Auktionsbeginn','Waiting for auction start');
  wr_log(slg);
  set_idinnerhtml('d_text',slg);
  
  set_idsrc('bildposition','img/wait.gif');
  set_idinnerhtml('d_katnr','&nbsp;');
  set_idinnerhtml('d_limit','&nbsp;');

  show_elementby_id('div_bid');
}

//--------------------------------------------------------
function resize()
{
  var obj = document.getElementById('bildposition');
  var w   = obj.width;
  var h   = obj.height;

  if (w>h) { obj.style.width='370px'; }
      else { obj.style.height='370px'; }
}

//--------------------------------------------------------
function do_aw_auktionsende(a)
{
  var slg = '';
  var msg = a[1];
  if (last_logtxt == msg) { return; }

  if (get_idvalue('showonly'))
  {
    top.location.href = "http://www.livebietsystem.de"; 
    return 1;
  };

  set_bid_button(false);

  slg = get_string('Auktion beendet', 'Auction ended');
  wr_log(slg);
  window.alert(slg);
  set_defaults();

  //  set_idvalue('bidbutton',slg);
  hide_elementby_id('div_bid');
  set_idinnerhtml('login_hint', '');


  slg = get_string('Auktion beendet. Vielen Dank fuer Ihren Besuch.', 'Auction ended. Thank you for visiting.');
  set_idinnerhtml('d_text', slg);
}

//--------------------------------------------------------
function set_erstaufruf()
{
  hide_zuschlag();
  hide_elementby_id('div_bid');
  set_idinnerhtml('d_katnr','&nbsp;');
  set_idinnerhtml('d_limit','&nbsp;');
  clear_logfile();
}

//--------------------------------------------------------
function timer_on(s)
{
  timer_id_a.push(setInterval(get_aktpos_details, speed));
  if (debugok)
  { 
    var s_new  = (typeof s === "undefined") ? "" : s;
    var ss = timer_id_a.toString();
    wr_log('timer_on: '+s_new+' ('+ss+')');
  }
}

//--------------------------------------------------------
function timer_off(s)
{
  if (debugok) 
  {
    var s_new  = (typeof s === "undefined") ? "" : s;
    var ss = timer_id_a.toString();
    wr_log('timer_off: '+s_new+' Aktive Timer ID: ('+ss+')');
  }
  
  for (var r = 0; r < timer_id_a.length; ++r)
  {
    var timerid = timer_id_a[r];
    clearInterval(timerid);
    if (debugok) { wr_log('timer_off: '+s+' geloescht: ('+timerid+')'); }
  }
  timer_id_a = new Array();
}

//--------------------------------------------------------
function get_string(deutsch,englisch)
{
  var lang;
  lang=get_idvalue('language');

  if (lang=='de') { return deutsch; }
  
  if (deutsch==englisch)
  {
    englisch = deutsch.replace("Gebot", "Bid");
    englisch = englisch.replace("gesendet", "sent");
  }
  return englisch;
}

//--------------------------------------------------------
function is_button_on(btn)
{
  return document.getElementById(btn).disabled;
}

//--------------------------------------------------------
function do_aw_getposition_details(a)
{
  var slg='';
  set_bid_button(false);

  // aus array
  var result      = trim(a[0]);
  var id          = trim(a[1]);
  var bietbetrag  = trim(a[2]);  if (bietbetrag<10) { bietbetrag=10; }
  var bieterknr   = trim(a[3]);
  var bid         = trim(a[4]);
  //  var bidcount    = trim(a[5]);  // unbenutzt
  var fairwarning = trim(a[6]);
  //  var bcolor      = trim(a[7]);  // unbenutzt

  
  // aus hidden von index
  var aktid       = get_idvalue('aktid');
  var ownknr      = get_idvalue('knr');
  var geboten     = get_idvalue('geboten');

  // Position überhaupt noch aktuell?
  if (id!=aktid) { get_aktpos(); return 0; }

  // Habe ich geboten?
  if (gebot_abgegeben==1)
  {
    // ja, aber die Kundennummer des Höchstbieters ist nicht meine KNR
    if (bieterknr!=ownknr)
    {
      slg=get_string('Sie wurden ueberboten','A higher bid has been made');  
      wr_log(slg);
      gebot_abgegeben=0;   
    }
  }
 
  // Ist der bietbetrag eine gültige Zahl?
  if (!isFinite(bietbetrag))
  { 
    var amount='Warten ...';
    set_idvalue('bidbutton',amount);   
    return 0; 
  }

  slg=get_string('Ausgerufen sind: '+bietbetrag+' Euro','Asking: '+bietbetrag+' Euro');
  wr_log(slg);
  
  // Meine KNR hat geboten und hält das HG (ACHTUNG: evtl Saal- oder Telefonbieter darüber!)
  if ((is_loginok()===true) && (bieterknr===ownknr))
  { 
    slg=get_string('Gebot '+geboten+' Euro gesendet','Bid '+geboten+' Euro sent');  
  }
  else  
  {    
    slg=bietbetrag+' Euro';

    // Der zu bietende Betrag ist identisch mit dem bereits gebotenen Betrag UND
    // der Betrag wurde nicht von meiner KNR geboten
    if (bietbetrag==bid && bieterknr!=ownknr) 
    { 
      slg=get_string('Gebot '+bietbetrag+' EUR Saal/Telefon','Floorbid '+bietbetrag+' Euro');  
    }
    if (bid!=bietbetrag)  { set_bid_button(true); }
  }
  set_idvalue('bidbutton',slg);  

  if (fairwarning=='fw')
  { 
    slg=get_string('Lot schliesst (Aufruf: '+bietbetrag+' Euro)','Fair warning, this lot is about to close (Called: '+bietbetrag+' Euro)');
    wr_log(slg);
  }
  return "OK2";
}

//--------------------------------------------------------
function updatepage(str)
{ 
  timer_off('updatepage');
  if (debugok) { wr_log('updatepage: '+str); }

  var posarray = new Array();
  posarray     = str.split('|');
  var cmd      = trim(posarray[0]);

  if      (cmd == 'aw_login')               { do_aw_loginjob(posarray); }
  else if (cmd == 'aw_logout')              { do_aw_logoutjob(posarray); }
  else if (cmd == 'aw_getposition')         { do_aw_getposition(posarray); }
  else if (cmd == 'aw_getposition_details') { do_aw_getposition_details(posarray); }
  else if (cmd == 'aw_gebot')               { do_aw_gebot(posarray); }
  else if (cmd == 'aw_fehler')              { do_aw_fehler(posarray); }
  else if (cmd == 'aw_auktionsende')        { do_aw_auktionsende(posarray); }
    
  // aktiviere refreshtimer
  if (cmd != 'aw_logout' && cmd != 'aw_auktionsende') { timer_on('updatepage'); }
}

//-----------------------------------------------------------------------------------
function JSBidButtonClickShowOnly()
{
  if (!confirm(
    'Dies ist die Viewer-Version der Liveauktion, bei der nicht geboten werden kann. ' +
    'Wollen Sie jetzt zur echten Liveauktion wechseln?'
  ))
  {
    return 0;
  };
  top.location.href = "https://www.henrys.de/index.php?pc=la&spc=overview"; 
}