/* TextLib WWW javascript */
/* - Vissza/Bezar gombhoz - ha van olyan */
/* - aktualis mezo beallitasa - ha van 'startfield' id-ju mezo */
var utmod="2012.02.01 17:11";
var tlwwwteszt  = 0;  /* --SETUP-- */
 // tlwwwteszt  &2=olvaso  &4=elojegy+foglal,  &8=SpecKeres  64=login
var TlwwwCgiUrl = '/cgi-bin/tlwww.cgi';
var BelepPar    = 'userstat=1&belepes=1';
var KilepvePar  = 'userstat=1&kilepve=1';
var KilepPar    = 'userstat=1&tlkillsess=';
var CheckPar    = 'userstat=1&tlchksession=';
var HosszPar    = 'hossz=';
var ElojegyzPar = 'elojegyz=';
var FoglalPar   = 'foglal=';
var ElojegyzPar2= '&kvt=';
var ElojegyzPar3= '&fiok=';
var OlvAllPar   = 'userstat=1&aktsess=1';
var OlvModPar   = 'usermod=1';
var KolcsPar    = 'userstat=1&kolcsonzesek=1';
var ChatPar     = 'msg=chat';
var LoginMod    = '0';//1->Autologin,2->user belep főoldal,3->Partner belépés a főoldalról. 4=login table belépés
var srchid      = 'tlsearch'; // egyszeru kereses mezoje
var resid       = 'tlresult'; // eredmeny div - ide irunk bele
var noresid     = 'tlnores';  // amibol nem volt talalat - ide irjuk
var TlDbName = "";                  // Csak infokernek: adatbazis neve
// var TlKvtNev="";                 // Ha van, tlafter.js hasznalja
// var TlKvtHonlap="";              // Ha van, tlafter.js hasznalja
// var TlKvtOther="";
// var TlKeresVegeSzoveg = false;   // Ha van, tlafter.js hasznalja
// var TlHelp1=TlHelp=false;        // Ha van, tlafter.js hasznalja

function gi(x) { return document.getElementById(x); }

// trim() legyen minden stringben.
String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g,""); }

// Lapok betoltesekor
function TlwwwOnload()
{
    SetGomb();                // vissza gomb beallitasa, ha van a lapon
    SetLoginFlds();           // azon: jelszo: beallitas, ha ...
    var x = gi('belepform');
    if( x ) x.onsubmit=TlSubmit;
    ulogin(1);
    SetBelep();               //belepes, olvallapot gomb beallitasa
    SetCurrFld('startfield'); // Ez legyen az aktualis mezo
    if( window.TlUserOnload ) 
        TlUserOnload();
    TlSetLinks();             // Interneten mezo lerendezese
    SetLastSpecKer();         // Utolso spec. kereses eredmeny beallitas
    FillDbName();             // TlDbNamne beallitas
    return false;
}

// AJAX - kuldes
var ajax={};
ajax.x=function(){try{return new ActiveXObject('Msxml2.XMLHTTP')}
  catch(e){try{return new ActiveXObject('Microsoft.XMLHTTP')}
  catch(e){return new XMLHttpRequest()}}};
ajax.nocache = function(t)
  {t.setRequestHeader("Cache-Control","no-cache");
   t.setRequestHeader("If-Modified-Since", "Wed, 31 Dec 1980 00:00:00 GMT");
   t.setRequestHeader("Expires", "Wed, 31 Dec 1980 00:00:00 GMT");}
ajax.send=function(u,f,m,a,nc,p)
  {var x=ajax.x(); var tp='application/x-www-form-urlencoded';
   x.open(m,u,true);
   x.onreadystatechange=function()
     { if(x.readyState==4)
        { if(x.status==200){if(f)f(x.responseText,p);}
          else if(x.status==0){if(f)f("ERR leáll");}
          else f("ERR STATUS:" + x.status + ':'+x.responseText+':',p);
	}
     }
    if(m=='POST') {
      x.setRequestHeader("Content-Type",tp);
      x.setRequestHeader("Connection", "close"); 
    }
  if(nc)ajax.nocache(x);
  x.send(a);}
ajax.post=function(url,func,args,p1){ajax.send(url,func,'POST',args,0,p1)}
ajax.tlpost=function(fv,arg,p1){var str=DbName()+arg;
   ajax.post(TlwwwCgiUrl,fv,str,p1)}

// ez az url egy kep-re mutat-e?
function IsPicture( url )
{   var pos,len;
    len = url.length;
    pos = url.indexOf(".jpg");
    if( pos < 0 ) pos = url.indexOf(".png");
    if( pos < 0 ) pos = url.indexOf(".gif");
    return pos >= len-5 ;
}

// ez az url egy kep-re mutat-e?
function TlSmallPic( url )
{
    if( window.TlUserSmallPic )    // Ha a user jobban tudja...
        return TlUserSmallPic(url);
    else
        return url;
}

// TlSetLinks() - Interneten mezo lerendezese. Pl. kepek oldalra kirakasa
//    Van id='dref0' - egy rekord megmutatasa
//    Tobb id='drefN' is van - talalati lista
function TlSetLinks()
{   var maxkep=2,dnum=0, x=gi('dref'+dnum);
    if( !x || !x.value ) // Ha nincs is dref0, dref1... meg lehet...
      { dnum++; maxkep--; }
    for( ; dnum<=100; dnum++ )
     { var mydref, cnt, kepnum=0;
       x = gi('dref'+dnum);
       if( !x || !x.value ) break;   // nincs tobb dref
       mydref = x.value;
       for( cnt=1 ; cnt<10 && kepnum < maxkep; cnt++ )
        { var netnev = mydref + '_net' + cnt, lname=false;
          x = gi(netnev);
          if( !x || !x.href ) break;
          if( window.TlUserLinkName )
              lname = TlUserLinkName(x.innerHTML,x.href);
          if( !lname ) lname = x.innerHTML;
          if( IsPicture(x.href) )
            { small = TlSmallPic(x.href);
              if( !small ) continue;
              TlSetPicture(mydref,small,x.href,lname,dnum==0);
              kepnum++;
            }
          else
            { /* egyeb tipusokra is lehetne csinalni valamit... */ }
          if( lname && lname != x.innerHTML )
              x.innerHTML = lname; // az Interneten mezoben is lecsereljuk
       }
      MaxKepNum=1;
     }
}

// DbName van? TlDbName-ba bele
function FillDbName()
{  var dbn = gi('db');  
   if( TlDbName!="" )  return;       // Be van mar allitva
   if( typeof(dbn) != "undefined" && dbn!=null && dbn.value!='' )
     { TlDbName = dbn.value ; }
}

// db= param beallitasa
function DbName()
{ var ret;
  if( TlDbName == "" ) FillDbName();  // ha meg nincs kitoltve
  if( TlDbName != "" ) ret = "db=" + TlDbName + "&";
  else                 ret = "";
  return ret;
}

// SetDbName - Ha van DbName, es a form-ban db=, akkor azt beallitani kuldes elott
function SetDbName(frm)
{
   if( TlDbName != "" && frm.elements.db != "undefined" )
          frm.elements.db.value = TlDbName;
   return true;
}

function SesCheck(tlsess)
{
  ajax.tlpost(SesCheckValasz,CheckPar+tlsess);
}

function Hosszabbit(KolcsDref)
{
  ajax.tlpost(HosszraValasz,HosszPar+KolcsDref);
}

function Elojegyzes(DokDref,KvtDref,FiokDref)
{
  var par = ElojegyzPar+DokDref+ElojegyzPar2+KvtDref+ElojegyzPar3+FiokDref;
  if( tlwwwteszt&4 ) alert( par );
  ajax.tlpost(ElojegyzValasz,par);
}

function Foglalas(DokDref,KvtDref,FiokDref)
{
  var par = FoglalPar+DokDref+ElojegyzPar2+KvtDref+ElojegyzPar3+FiokDref;
  if( tlwwwteszt&4 ) alert( par );
  ajax.tlpost(FoglalValasz,par);
}

function SetCurrFld(fldname)
{
  var x=gi(fldname);
  if(x) { x.select(); x.focus(); }
}

/* Linkek kitoltesehez - hozzaad az ott levohoz */
function TlCall( db, dref, html )
{
   if( db=='err' )  // hibauzenet megjelenites
      { alert(html+'['+db+'].'+dref);
        return;
      }
   var x  = gi(db+dref);
   if( x )
     { x.innerHTML += html;
     }
   else
      alert('Nincs:' + db + dref);
}


// Beallitja jobb oldalt a kepNNNN div tartalmat.
function TlSetPicture(dref,kiskepurl,nagykepurl,text,nagy)
{  var meret = (nagy ? 100 : 46 );
   TlCall('kep',dref,
       '<a href="' + nagykepurl + '"' +
          ' TITLE="' + text + '"' +
          ' ALT="'   + text + '"' +
       '><img src="' + kiskepurl + '" width="' + meret + '%"></A>' );
}

/* books.google.hu-hoz kell */
function MyCall(booksInfo)
{
   for (isbn in booksInfo)
     { var bookInfo = booksInfo[isbn];
       if( bookInfo )
        { var lapozz = gi('l'+isbn);
          var ilink  = gi('a'+isbn);
          var tlink  = gi('t'+isbn);
          var timg   = gi('i'+isbn);
          if( ilink )
            { ilink.href = bookInfo.info_url;
              ilink.innerHTML = 'adatok';
            }
          if( lapozz &&
              (bookInfo.preview == "full" || bookInfo.preview == "partial") )
               { lapozz.href = bookInfo.preview_url;
                 lapozz.style.display = '';
                 if( bookInfo.preview == "full" )
                     lapozz.innerHTML = "olvasd el";
                 else
                     lapozz.innerHTML = "lapozz bele";
               }
          if( bookInfo.thumbnail_url )
            {
              if(timg)
                {timg.src = bookInfo.thumbnail_url; timg.style.display = '';}
              if(tlink)
                {tlink.href=bookInfo.preview_url; tlink.style.display = '';}
            }
        }
     }
}

/* konyvnet.hu */
function SetupImage(konyvid,url)
{
var blink  = gi('blink'+konyvid);
var hatso  = gi('xnet'+konyvid);
var borito = gi('knet'+konyvid);
if( blink )   { blink.href = url; }
if( borito )  { borito.src = url; }
if( hatso )   { hatso.src = url; }
}

/* gomb lathato / nem */
function HideButton(view,txt)
{
   var v = gi(view);
   if( v )
     { v.disabled = true;
       v.title = txt;
     }
}

function SetButtonNum(view,num)
{
        var v = gi(view);
        if( v )
          { v.disabled = false;
            v.title = v.title + ' (' + num + ' dokumentum)' ;
          }
}

/* Vissza/Bezar gomb */
function zar() { window.opener=self; window.close(); return false; }
function SetGomb()
{  var minlen = 1+( navigator && navigator.appName=="Netscape" ? 1 : 0 );
   var ooo = gi('visszagomb');
   if( ooo && history.length<minlen )
     { ooo.value="Bezár"; ooo.onclick=zar; }
}

// TextLib / tlwww / user ki-belepes kezeles
// Mezo ID-k a lapokon:
//   unam/pnam,ups/pps - login nev,jelszo
//   namemlek, pwdemlek - login/jelszo megjegyzendo?
//   belepes - 'Belepes/Kilepes' gomb
//   olvall  - 'Olv.Allapot' gomb
//   olvmod  - 'Adatmodositas' gomb
//   belepform - belepest intezo form neve
//   mytlsess - eredeti session id (olvallapot)

// Belepes gomb, olv.allapot gomb
function SetBelep()
{
    var bg = gi('belepes');  // gomb
    var og = gi('olvall');   // gomb
    var ch = gi('tlchat');   // gomb
    var lg = gi('tllogin');  // tllogin - ide irjuk a nevet
    var um = gi('usermod');  // input hidden
    var tlsess = get_cookie('tlsession');         // akt. session
    var os = gi('mytlsess');  // eredeti session?
    username_ki();
    if( bg ) // Van 'Belepes' gomb
      { 
        if( tlsess )
          { bg.value='Kilépés'; bg.onclick=KilepKerd;
            bg.title=' Be van jelentkezve. Ide kattintva kiléphet ';
          }
        else
          { bg.value='Belépés'; bg.onclick=ulogin;
            bg.title=' Nincs belépve. Kattintson ide a belépéshez ';
            if(lg) {lg.style.display="none"; lg.innerHTML="";}
          }
        bg.disabled=false;
      }
    if( og && !os ) // Van 'olv.allapot' gomb, es nem olv.all ablak ez
        SetSessGombTitle(og,OlvAllapot,' Megnézheti olvasói állapotát ');
    if( ch ) // Van 'Chat' gomb
        SetSessGombTitle(ch,0," Beszélgetés a könyvtárossal ");
}

// Gomb title es disabled beallitas
function SetSessGombTitle(og,click,title)
{  var tlsess = get_cookie('tlsession');         // akt. session
   if( tlsess && tlsess!='no' )
     { og.disabled = false; 
       if(click) og.onclick=click; 
       og.title=title;
     }
   else
     { og.disabled = true;
       og.title=' Belépés után: ' + title;
     }
}

//
function SetSessionId(sid)
{
if(sid)  // beallitas
 set_cookie('tlsession',sid,'','','');
else     // torles
 set_cookie('tlsession','no',2000,2,2); // nincs mar a sess.
}

function KillOlvData(kereses)
{   var spage, par =  TlwwwCgiUrl + '?' + DbName() + KilepvePar;
    if(tlwwwteszt&2) alert(' killolvdata ' + kereses);
    if(kereses)
      { spage = gi('searchpage'); // itt elrakva
        if(spage)                 // abban van az URL!
            par = spage.value;
      }
    window.location.replace( par );
}

function username_ki()
{
  var nev = get_cookie('tlloginnev');
  var x   = gi('tllogin');
  if( nev && x )
   {
     x.innerHTML="&nbsp;Belépve: <b>"+nev+"</b>";
     x.style.position="relative";
     x.style.display="inline";
   }
}

// Belepes
function login_proc(url)
{
 KillSession();  //elozo session torlese
 ajax.tlpost(loginvalasz,"userstat=1&"+url+"&backgr=1&utf8=1");
}

function uplogin(mod,unam,ups,xups)
{//Partner és user login
LoginMod=mod;
var beirt_unam=gi(unam).value;
var beirt_ups=gi(ups).value;
var beirt_xups=get_cookie(xups);
var xbeirt_ups=MD5(beirt_ups);
if((beirt_unam!=null) && (beirt_ups!=null) && (beirt_ups!="TiTkOs") )
 login_proc(unam+"="+beirt_unam+"&"+xups+"="+xbeirt_ups);
else if((beirt_unam!=null) && (beirt_ups!=null) )
 login_proc(unam+"="+beirt_unam+"&"+xups+"="+beirt_xups);
else
 alert("Nem töltöttél ki egy mezot se!");
}

function Belepes_alt(auto)
{ var xups;
var lement_unam=get_cookie("unam");
var lement_pass=get_cookie("xups");
if(lement_unam==null) lement_unam="";
if(lement_pass==null) { xups=""; lement_pass=""; } else { xups=lement_pass;lement_pass="TiTkOs"; };
if((lement_unam!="") && (lement_pass!="") && (auto==1) )//Ekkor auto belépés
 login_proc("unam="+lement_unam+"&xups="+xups);
else if(auto==0)
 login_table_ki();
}

function ulogin(x)
{
var tlsess = get_cookie('tlsession');
if(!x) x=0;
if(tlsess==null && x==1) 
 { //Ekkor auto_login
        LoginMod=1;
        Belepes_alt(1);
 }
else if(tlsess==null) 
 { //Ekkor csak login-table megjelenítése umod=0
        LoginMod=0;
        Belepes_alt(0);
 }
else
 { //Ekkor van session, de érvényes-e?
   SesCheck(tlsess);
 }
}

function login_table_ki()
{ var x,y,t;
var olvt="<form method=POST action='' onSubmit='return false' name=tllogform id=tllogform><table class=logintable id=logintable border=5 cellspacing=2 cellpadding=2 bgcolor='#89aaab'><tr><th width=80><BIG><B>Belépés</B></BIG><th><table border=0 style='width:100%'><tr><td align=left><input onClick=uplogin('4','unam','ups','xups'); type=submit title='Belépés' value='Belépés'><td align=right><input type=submit value='Mégse' onClick='gi(\"tllogin\").style.display=\"none\";' TITLE='Ablak bezárása'></tr></table></tr><tr><td>Azonosító:<td><input type=text name=unam id=unam style='width:155px'>&nbsp;</tr><tr><td>Jelszó:<td><input type=password name=ups id=ups style='width:155px'>&nbsp;</tr><tr><td colspan=2><input type='checkbox' id=namemlek name=namemlek>Azonositó megjegyzése<br><input id=pwdemlek type='checkbox' name=pwdemlek>Automatikus belépés</span></tr></table></form>";
olvt+="<iframe id=olviframe frameborder=0 src='about:blank'></iframe>";
x=gi('tllogin');
if(x){
  x.innerHTML=olvt;
  x.style.position="absolute";
  x.style.zIndex="25";
  x.align="left";
  x.style.display="inline";
}
y=gi('olviframe');
t=gi('logintable');
if(y && t){
  y.style.position="absolute";
  y.style.zIndex="-1";
  y.style.top="0px";
  y.style.left="0px";
  y.width=t.offsetWidth;
  y.height=t.offsetHeight;
}
SetCurrFld('unam');
SetLoginFlds(); //azon,jelszo,checkbox beallitas
}

function OlvAllapot()
{
var str = TlwwwCgiUrl + '?' + DbName() + OlvAllPar;
if(tlwwwteszt&2) alert(str);
window.location.href = str;
}

function OlvModosit()
{
var str = TlwwwCgiUrl + '?' + DbName() + OlvModPar;
if(tlwwwteszt&2) alert(str);
window.location.href = str;
}

function Kolcsonzeseim()
{
var str = TlwwwCgiUrl + '?' + DbName() + KolcsPar;
if(tlwwwteszt&4) alert(str);
window.location.href = str;
}

function KillSession()
{
  var os=get_cookie('tlsession');
  SetSessionId(false);
  if(os) // kuldjuk el POST-al a kilepest
    ajax.tlpost(KilepValasz,KilepPar + os);
}

function KilepProc(noolv)
{//User kilepes, jelszó/név cookie törlés
  KillSession();
  set_cookie('xups','',2000,2,2);
  set_cookie('pwdemlek','',2000,2,2);
  set_cookie("tlloginnev","",2000,2,2);
  if(noolv==0) //Belépés gomb név változtatás ha nem olvasói állapot
               //Mert akkor kilépés elott minek..
     SetBelep();
}

// Kilepest csinal
function KilepKerd()
{
    var kilep = confirm('Biztosan ki akar jelentkezni?\nEzzel az automatikus belépést is kikapcsolja!');
    if( kilep )
     {
        var os = gi('mytlsess'); // eredeti session?
        var um = gi('usermod');  // input hidden
        if( os || um ){          // Ha olv.allapot ablak || adatmodositas
          KilepProc(1);
          KillOlvData(1);        // lecsereli kereses ablakra...
        } else {
          KilepProc(0);
        }
    }
}

function SetFields(mezo, emlek)
{
   var ret=0;
   var ln = get_cookie(mezo);
   var emstr = get_cookie(emlek);
   var em = (emstr=='true');
   var onam = gi(mezo);
   var oeml = gi(emlek);
   if(!onam)
     { return ret; }
   if(ln && em)  // van, es emlekezni is kellett ra...
     { onam.value=ln; ret=1; }
   else
       onam.value='';
   if(oeml)
       oeml.checked = em;
   return ret;
}

// Cookie-bol kitolti a username, passwordot
function SetLoginFlds()
{  var ret = 0;
   // user dolgok
   ret += SetFields('unam','namemlek');
   ret += SetFields('ups','pwdemlek');
   // partner dolgok
   ret += SetFields('pnam','pnamemlek');
   ret += SetFields('pps','ppdemlek');
}

//
function SetCookie(frm,mezo,xmezo,emlek,jelszo)
{
    var onam = gi(mezo); var oeml = gi(emlek);
    var titokjelszo='TiTkOs'; var xval = false;
    if( !onam ) return false;
    var oval = onam.value;
    if( jelszo )
      {
        if( oval != titokjelszo )   // meg nem allitottam at?
          { xval = MD5(onam.value);
            onam.value=oval=titokjelszo;
          }
        else // be kellett legyen allitva
          {
            xval=get_cookie(xmezo);
            if((tlwwwteszt&2)!=0 && !xval) alert('titok jelszo, de nincs xval');
          }
      }
    if(oeml && oeml.checked)                // ha emlekezni is kell ra
      { if(jelszo)
           set_cookie(xmezo,xval,2025,2,2);   // hash jelszo mentese
        set_cookie(mezo,oval,2025,2,2);       // siman elmentjuk
      }
    else                        // nem kell emlekezni - toroljuk, ha volt
      { set_cookie(mezo,'',2000,2,2);
        set_cookie(xmezo,'',2000,2,2);
      }
    if( oeml && oeml.checked ) // van es kell emlekezni
        set_cookie(emlek,'true',2025,2,2);
    else
        set_cookie(emlek,'',2000,2,2);
    return xval;
}

// Sajat kuldom, frm=ez a form van most!
function SetCookies(frm)
{   var xval=false, xmezo;
    // user
    if( frm.elements['ups'] )
      { xmezo = 'xups';
        SetCookie(frm,'unam',xmezo,'namemlek',false);
        xval=SetCookie(frm,'ups',xmezo,'pwdemlek',true);
      }
    // partner
    else if( frm.elements['pps'] )
      { xmezo = 'xpps';
        SetCookie(frm,'pnam',xmezo,'pnamemlek',false);
        xval=SetCookie(frm,'pps',xmezo,'ppdemlek',true);
      }
    // Beallitani a form-ban az xups, vagy xpps-t.
    if( xval ) AddFldToForm(frm,xmezo,xval); // mindenkepp beall
}

function AddFldToForm(frm,name,value)
{ var Field;
  if(frm)
    {
      for (var i=0; i < frm.length; i++ )
       {
         if( frm.elements[i].name == name )
           { Field = frm.elements[i];
             if(tlwwwteszt&2) alert('old ' + name + ' = ' + value);
             Field.value = value;
             break;
           }
       }
      if(i >= frm.length) // nem volt benne...
        {
           Field = document.createElement("input");
           Field.type = "hidden";
           Field.name = name;
           Field.value = value;
           frm.appendChild(Field);
           if(tlwwwteszt&2) alert('new ' + name + ' = ' + value);
        }
    }
  else
     alert('AddFld sikertelen');
}

function TlSubmit(frmname)
{
if(frmname=="pbelepform")
 {//Ekkor partner belépés
  KilepProc(1);//Esetleges belépett user-t kirugjuk
  uplogin("3","pnam","pps","xpps");
  return false;
 } 
else 
 {//Ekkor sima belépés
  uplogin("2","unam","ups","xups");
  return false;
 }
}

// StartKeres - csak kiiras
var prevHTML=""; var procid="";
function StartKeres(pid,start)
{ if( start ) procid = pid;  // mentsuk el, kikapcsolashoz
  var pp=gi(procid);
  if(start)
   { var txt='<span class=proc> folyamatban... </span>';
     if( pp.innerHTML != txt)
       { prevHTML = pp.innerHTML;
         pp.innerHTML=txt;
       }
   }
  else if( pp )
     pp.innerHTML=prevHTML;
  return true;
}

//function set_cookie( name, value, exp_y, exp_m, exp_d )
function set_cookie( name, value, exp_y, exp_m, exp_d)
{
  var cookie_string = name + "=" + escape ( value );
  if ( exp_y )
  { var expires = new Date ( exp_y, exp_m, exp_d );
    cookie_string += "; expires=" + expires.toGMTString();
  }
  cookie_string += "; path=" + escape ( "/" ); 
  document.cookie = cookie_string;
}

function get_cookie( cookie_name )
{
var results=document.cookie.match( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );
if(results)
        return ( unescape ( results[2] ) );
else
        return null;
}

function del_cookie(name)
{
document.cookie=name+'='+'; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/';
}

// http request ----------------------------------------------------
function SesCheckValasz(res)  //session letezes ellenorzes
{
   if( tlwwwteszt & 16 ) alert("SesChkValasz " + res );
   if( res.substr(0,2)!="OK" )
     { SetSessionId(false); ulogin(1); //KilepProc(0);
     }
   else if( res.substr(0,3) == "ERR" )
       alert(res);
}

function loginvalasz(res)   // login-re a valasz
{
 var b1 = new Array();
 b1=res.split(";");
 if(b1[0].substring(0,2)=="OK")
 {
        var b2 = new Array();
        var b3 = new Array();
        b2=b1[0].split("=");
        b3=b1[1].split("=");
        SetSessionId(b2[1]);
        if((gi('tllogform')) && (gi('tllogin')) ) //Mert autologin esetén nincs mit lementeni...
                SetCookies(gi('tllogform'));
        //Ha a kezdőoldalon van belépés gomb, akkor csak akkor fusson le, ha a lekérdezés gombot nyomtuk meg..
        if((LoginMod=='2') && (gi('belepform'))) {
                SetCookies(gi('belepform'));
                OlvAllapot();
        }
        if((LoginMod=='3') && (gi('pbelepform'))) {
                SetCookies(gi('pbelepform'));
                OlvAllapot();
        }
        //Belépés elintézése, név kiírás/lementése
        if(gi('tllogin')){
                set_cookie("tlloginnev",b3[1],2025,2,2);
                SetBelep();
        }

 }else{
        //Partner esetén se->Rossz név/jelszó volt letárolva, ezért megjelenik a divablak!
        //if((b1[0].substring(0,2)=="NO") && (gi('tllogin')) && (LoginMod!="1") && (LoginMod!="2") && (LoginMod!='3' )) {
        if(b1[0].substring(0,2)=="NO") {
            if((gi('tllogin')) && (LoginMod!="2") && (LoginMod!="3") && (LoginMod!="4"))
                  login_table_ki();
        alert("Bejelentkezés nem sikerült! :-(\nRossz név vagy jelszó!");
        } 
        else if(LoginMod!="1")//Ha nem OK és nem NO, akkor gáz van!
                alert("TLWWW nem müködik\nProbálja meg később újra!");
 }
}

// HosszraValasz
function HosszraValasz(result)
{
   var res = result.split(" ");
   if( res[0]=="OK" )
    {
      var hido = gi('hatarido_'+res[1]);
      if(hido)
        {
          var ujido = res[2].substr(0,4)+'-'+res[2].substr(4,2)+'-'+res[2].substr(6,2);
          hido.innerHTML='==> '+ujido;
          hido.style.backgroundColor='yellow';
          hido.title=' határidő módosítva ';
        }
    }
   else
    { if( res[0] == "NO" )
        { res[0]=''; errtxt=res.join(' '); }
      else errtxt = 'TLWWW nem működik';
      SetSessionId(false);//KillSession felesleges, csak cookie törlés
      SetBelep();
      alert(' Hosszabbítás sikertelen: ' + errtxt );
      //ulogin(1);automatikus belépés..
    }
}

// ProcValasz
function ProcValasz( fldid, oktxt, badtxt, result )
{
    var res=result.split(" ");
    var siker=res[0];
    var id=res[1];
    res[0]=res[1] = '';
    var errtxt=res.join(' ');
    if(siker=="OK")
      {
        var eid=fldid + id;
        var hido=gi(eid);
        if(hido)
         {
           hido.innerHTML=oktxt;
           hido.style.backgroundColor='yellow';
           hido.title=errtxt;
         } 
        else
         { alert('Problema. nincs ilyen obj: ' + eid ); }
      } 
     else if(siker=="NO") 
      {
        if(errtxt!="  Nincs belépve")
          { alert(badtxt + ':' + errtxt); }
        else
          { SetSessionId(false); SetBelep(); ulogin(0); }
      }
     else if(siker=="ERR") 	  
        alert(result);
     else if( tlwwwteszt )   // Ezt csak teszt modban...
        alert("Nemerr: " + result);
}

//
function ElojegyzValasz(res)
{
   ProcValasz('elojegyz_', 'Előjegyzés megtörtént',
                           'Előjegyzés sikertelen',res );
}

// 
function FoglalValasz(res)
{
   ProcValasz('foglal_','Foglalás kérés elküldve',
                        'Foglalás kérés sikertelen',res );
}

// Igazabol nem erdekes
function KilepValasz(res)
{
   if(tlwwwteszt&2) alert('kilepes OK');
}

// ======= Chat ablak megnyitas
var chatwin=false;
function tlwww_chat_open()
{
  if( chatwin && chatwin.closed )
      chatwin = false; // volt mar, de bezartak
  if( !chatwin )  // nincs nyitott chat ablak
  { var url = TlwwwCgiUrl + '?' + DbName() + ChatPar;
    var w = 820, h = 500;
    var wleft = (screen.width - w) / 2; 
    var wtop = (screen.height - h) / 2;
    w="width=820,top=" + wtop +  ",left=" + wleft +  ",height=500,scrollbars=no,hotkeys=no,status=no,menubar=no,location=no,directories=no,toolbar=no,alwaysRaised=no,titlebar=no";
    chatwin=window.open(url,"intbe1",w);
  }
 else  // van nyitott ablak, azt szedjuk elore...
     chatwin.focus();
 return false;     
}

// MD5 --------------------------------------------------------
var MD5 = function (string) {

        function RotateLeft(lValue, iShiftBits) {
                return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits));
        }

        function AddUnsigned(lX,lY) {
                var lX4,lY4,lX8,lY8,lResult;
                lX8 = (lX & 0x80000000);
                lY8 = (lY & 0x80000000);
                lX4 = (lX & 0x40000000);
                lY4 = (lY & 0x40000000);
                lResult = (lX & 0x3FFFFFFF)+(lY & 0x3FFFFFFF);
                if (lX4 & lY4) {
                        return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
                }
                if (lX4 | lY4) {
                        if (lResult & 0x40000000) {
                                return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
                        } else {
                                return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
                        }
                } else {
                        return (lResult ^ lX8 ^ lY8);
                }
        }

        function F(x,y,z) { return (x & y) | ((~x) & z); }
        function G(x,y,z) { return (x & z) | (y & (~z)); }
        function H(x,y,z) { return (x ^ y ^ z); }
        function I(x,y,z) { return (y ^ (x | (~z))); }

        function FF(a,b,c,d,x,s,ac) {
                a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
                return AddUnsigned(RotateLeft(a, s), b);
        };

        function GG(a,b,c,d,x,s,ac) {
                a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
                return AddUnsigned(RotateLeft(a, s), b);
        };

        function HH(a,b,c,d,x,s,ac) {
                a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
                return AddUnsigned(RotateLeft(a, s), b);
        };

        function II(a,b,c,d,x,s,ac) {
                a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
                return AddUnsigned(RotateLeft(a, s), b);
        };

        function ConvertToWordArray(string) {
                var lWordCount;
                var lMessageLength = string.length;
                var lNumberOfWords_temp1=lMessageLength + 8;
                var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1 % 64))/64;
                var lNumberOfWords = (lNumberOfWords_temp2+1)*16;
                var lWordArray=Array(lNumberOfWords-1);
                var lBytePosition = 0;
                var lByteCount = 0;
                while ( lByteCount < lMessageLength ) {
                        lWordCount = (lByteCount-(lByteCount % 4))/4;
                        lBytePosition = (lByteCount % 4)*8;
                        lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount)<<lBytePosition));
                        lByteCount++;
                }
                lWordCount = (lByteCount-(lByteCount % 4))/4;
                lBytePosition = (lByteCount % 4)*8;
                lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80<<lBytePosition);
                lWordArray[lNumberOfWords-2] = lMessageLength<<3;
                lWordArray[lNumberOfWords-1] = lMessageLength>>>29;
                return lWordArray;
        };

        function WordToHex(lValue) {
                var WordToHexValue="",WordToHexValue_temp="",lByte,lCount;
                for (lCount = 0;lCount<=3;lCount++) {
                        lByte = (lValue>>>(lCount*8)) & 255;
                        WordToHexValue_temp = "0" + lByte.toString(16);
                        WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2);
                }
                return WordToHexValue;
        };

        var x=Array();
        var k,AA,BB,CC,DD,a,b,c,d;
        var S11=7, S12=12, S13=17, S14=22;
        var S21=5, S22=9 , S23=14, S24=20;
        var S31=4, S32=11, S33=16, S34=23;
        var S41=6, S42=10, S43=15, S44=21;

        x = ConvertToWordArray(string);
        a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476;
        for (k=0;k<x.length;k+=16) {
                AA=a; BB=b; CC=c; DD=d;
                a=FF(a,b,c,d,x[k+0], S11,0xD76AA478);
                d=FF(d,a,b,c,x[k+1], S12,0xE8C7B756);
                c=FF(c,d,a,b,x[k+2], S13,0x242070DB);
                b=FF(b,c,d,a,x[k+3], S14,0xC1BDCEEE);
                a=FF(a,b,c,d,x[k+4], S11,0xF57C0FAF);
                d=FF(d,a,b,c,x[k+5], S12,0x4787C62A);
                c=FF(c,d,a,b,x[k+6], S13,0xA8304613);
                b=FF(b,c,d,a,x[k+7], S14,0xFD469501);
                a=FF(a,b,c,d,x[k+8], S11,0x698098D8);
                d=FF(d,a,b,c,x[k+9], S12,0x8B44F7AF);
                c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);
                b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE);
                a=FF(a,b,c,d,x[k+12],S11,0x6B901122);
                d=FF(d,a,b,c,x[k+13],S12,0xFD987193);
                c=FF(c,d,a,b,x[k+14],S13,0xA679438E);
                b=FF(b,c,d,a,x[k+15],S14,0x49B40821);
                a=GG(a,b,c,d,x[k+1], S21,0xF61E2562);
                d=GG(d,a,b,c,x[k+6], S22,0xC040B340);
                c=GG(c,d,a,b,x[k+11],S23,0x265E5A51);
                b=GG(b,c,d,a,x[k+0], S24,0xE9B6C7AA);
                a=GG(a,b,c,d,x[k+5], S21,0xD62F105D);
                d=GG(d,a,b,c,x[k+10],S22,0x2441453);
                c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681);
                b=GG(b,c,d,a,x[k+4], S24,0xE7D3FBC8);
                a=GG(a,b,c,d,x[k+9], S21,0x21E1CDE6);
                d=GG(d,a,b,c,x[k+14],S22,0xC33707D6);
                c=GG(c,d,a,b,x[k+3], S23,0xF4D50D87);
                b=GG(b,c,d,a,x[k+8], S24,0x455A14ED);
                a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905);
                d=GG(d,a,b,c,x[k+2], S22,0xFCEFA3F8);
                c=GG(c,d,a,b,x[k+7], S23,0x676F02D9);
                b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);
                a=HH(a,b,c,d,x[k+5], S31,0xFFFA3942);
                d=HH(d,a,b,c,x[k+8], S32,0x8771F681);
                c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122);
                b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C);
                a=HH(a,b,c,d,x[k+1], S31,0xA4BEEA44);
                d=HH(d,a,b,c,x[k+4], S32,0x4BDECFA9);
                c=HH(c,d,a,b,x[k+7], S33,0xF6BB4B60);
                b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);
                a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6);
                d=HH(d,a,b,c,x[k+0], S32,0xEAA127FA);
                c=HH(c,d,a,b,x[k+3], S33,0xD4EF3085);
                b=HH(b,c,d,a,x[k+6], S34,0x4881D05);
                a=HH(a,b,c,d,x[k+9], S31,0xD9D4D039);
                d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);
                c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);
                b=HH(b,c,d,a,x[k+2], S34,0xC4AC5665);
                a=II(a,b,c,d,x[k+0], S41,0xF4292244);
                d=II(d,a,b,c,x[k+7], S42,0x432AFF97);
                c=II(c,d,a,b,x[k+14],S43,0xAB9423A7);
                b=II(b,c,d,a,x[k+5], S44,0xFC93A039);
                a=II(a,b,c,d,x[k+12],S41,0x655B59C3);
                d=II(d,a,b,c,x[k+3], S42,0x8F0CCC92);
                c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D);
                b=II(b,c,d,a,x[k+1], S44,0x85845DD1);
                a=II(a,b,c,d,x[k+8], S41,0x6FA87E4F);
                d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);
                c=II(c,d,a,b,x[k+6], S43,0xA3014314);
                b=II(b,c,d,a,x[k+13],S44,0x4E0811A1);
                a=II(a,b,c,d,x[k+4], S41,0xF7537E82);
                d=II(d,a,b,c,x[k+11],S42,0xBD3AF235);
                c=II(c,d,a,b,x[k+2], S43,0x2AD7D2BB);
                b=II(b,c,d,a,x[k+9], S44,0xEB86D391);
                a=AddUnsigned(a,AA);
                b=AddUnsigned(b,BB);
                c=AddUnsigned(c,CC);
                d=AddUnsigned(d,DD);
        }
        var temp = WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d);
        return temp.toLowerCase();
}

/****** SpecKeres - specialis kereses, mikor egy mezot ad csak meg ****/
function SpecKeres(procid)
{ 
  ClearSpecKer();
  StartKeres(procid,1); 
  return MySpecKeres(0);  // menet=0
}

/* szavakra kereseshez atalakitas */
function cimszavak(val)
{ var szavak = val.trim().split(' ');
  for( var i=0; i<szavak.length; i++ ) 
   { var pos = szavak[i].length-1;
     if( szavak[i].charAt(pos) == '.' )    // utolso egy pont
         szavak[i] = szavak[i].substring(0,pos); // levagjuk
     if( szavak[i].length<2 )              // egybetus ne maradjon
         szavak[i] = "";
   }   
  val=szavak.join(" ");		        // ures helyen dupla space lesz
  val=val.trim();                       // eleje/vege space levag
  val=val.replace(/  /g," ");           // ezeket kiirtani
  val=val.replace(/ /g,". ") + '.';     // minden szo utan . legyen
  return val;
}

/* alkoto + szavas kereseshez atalakitas, num=hany szo az alkoto (1/2) */
/* SZAVAK_if=wo vagy TARGYSZO_If szavas = wsu */
function alkoto_szavak(val,num,index,pontos,alkvege)
{ var tmp = val.split(" "), rest, result, from=0;
  if( tmp.length < num+1 ) return false;   // min. 2 szonal erdekes ez
  if( alkvege ) // Alkotot a vegen nezzuk...
      from=tmp.length-num;
  result = "aukz=" + tmp[from]; 
  if( num > 1 ) result += " " + tmp[from+1];
  for( var i=from; i<from+num; i++ ) tmp[i] = ""; // ami alkoto, azt nullazzuk
  rest = tmp.join(" ").trim();                    // tobbit egybe, space levag
  if( pontos ) rest = cimszavak(rest);            // pontos: minden szo utan .
  result += "&" + index + "=" + rest;
  return result;
}

/* Ahova kell, oda kiir - visszaadja 'tlresult' html-jet */
// siker - tlresult vagy tlnores div-be irjon-e?
// res   - ez a kereseses eredmenye
// akt   - ez az aktualis kereses
// menet - hanyadik, 99=vege
var shRes="<B><BIG>Találatok</BIG></B><BR>";
var shOther="<B><BIG>Sikertelen próbálkozások</BIG></B><BR>";
function AddToHtml(siker,rtxt,akt,menet)
{ 
  var pp = gi(resid), pn = gi(noresid), pc = gi('tlproc');
  var px = (siker ? pp : pn);
  if( !pc || !px ) alert("A fulek.htm régi!");
  var prevakt = pc.innerHTML;

    if( rtxt && px.innerHTML.length < 1 )
       px.innerHTML = (siker ? shRes : shOther );
    if( rtxt )
       px.innerHTML += "<BR>" + prevakt + rtxt;
    if( rtxt && menet==99 && !siker ) // akki is irjuk a vegere
       pp.innerHTML += "<BR>" + prevakt + rtxt;
    if( akt )   pc.innerHTML = akt;
    else        pc.innerHTML = "";
    set_cookie('tllastsrch',pp.innerHTML);
    if( menet == 99 )
      {  /* vegere iras */ }
}

/* speci keresesek */
function MySpecKeres(menet)
{ var ps=gi(srchid), stop=0;
  var pre="",post="",comm,search="",tst="",val,akt="",rtxt=false;
  if( !ps ) return false;
  val = ps.value.trim();          // eleje/vege space kiirt
  val = val.replace(/  /g," ");   // dupla space kiirt
  if( val.length < 2 )
    { stop=1; rtxt="Legalább 2 betűt meg kell adni."; }
  else switch( menet )
   {
     // Teljes cimben, pontosan
     case 0: search += "ti=" + val + "."; 
             pre = "Cím pontosan: "; post = ""; break;
     // Teljes cimben, csonkoltan
     case 1: search += "ti=" + val ;
             pre = "Cím: "; post = "kezdetű"; break;
     // Cim szavai, pontosan
     case 2: val = cimszavak(val);
             search += "wo=" + val;
             pre = "Cím szavai: "; post = ""; break;
     // Szerzo, csonkoltan
     case 3: search += "au=" + val ;
             pre = "Szerző: "; post = "kezdetű"; break;
     // Alkoto, csonkoltan
     case 4: search += "aukz=" + val ;
             pre = "Alkotó: "; post = "kezdetű"; break;
     // Alkoto + cim
     case 5: var tmp=alkoto_szavak(val,1,"ti",0,0);
             if( tmp )
               { search += tmp;
                 pre = "Alkotó+cím: "; post = ""; 
               } 
	     break;
     // Alkoto2 + cim
     case 6: var tmp=alkoto_szavak(val,2,"ti",0,0);
             if( tmp )
               { search += tmp;
                 pre = "Alkotó2+cím: "; post = ""; 
               } 
	     break;
     // Alkoto + cim szavai
     case 7: var tmp=alkoto_szavak(val,1,"wo",1,0);
             if( tmp )
               { search += tmp;
                 pre = "Alkotó+cím szavai: "; post = ""; 
               } 
	     break;
     // Kiado, csonkoltan
     case 8 : search += "ka=" + val ;
             pre = "Kiadó: "; post = "kezdetű"; break;
     // Tema, pontosan
     case 9: search += "su=" + val + ".";
             pre = "Téma: "; post = ""; break;
     // Tema, csonkoltan
     case 10: search += "su=" + val ;
             pre = "Téma: "; post = "kezdetű"; break;
     // Tema, szavakra szedve csonkoltan - ha min. 2 szo van
     case 11: 
        if( val.split(" ").length > 1 )
	  {
              search += "wsu=" + val ;
	      pre = "Téma: "; post = "szavanként"; 
          } 
	 break;
     // Alkoto + tema szavasan
     case 12: var tmp=alkoto_szavak(val,1,"wsu",0,0);
             if( tmp )
               { search += tmp;
                 pre = "Alkotó+téma: "; post = ""; 
               } 
	     break;
     // isbn, csonkoltan
     case 14: 
         if( val[0]<'0' || val[0]>'9' ) break;
         search += "bn=" + val ;
         pre = "ISBN: "; post = "kezdetű"; break;
     default: stop = 1; break;
   }
  if( search != "" )
    { 
      if( tlwwwteszt & 32 )
        { tst = " (<a href=\"" + TlwwwCgiUrl + "?" + 
              DbName() + encodeURI(search) + "\">teszt klikk</A>) ";
        }
      akt = pre + "\"" + val + "\" " + post + tst + ' ... '; // akt. kereses
      comm = search + "&xdisp=80&utf8=1";
      ajax.tlpost(SearchValasz,comm,menet);
    }
  else if( stop )  // itt a vege
    { StartKeres(0,0); menet=99; }
  else        // nem stop, de nincs mit keresni?
    { MySpecKeres(menet+1); return false; }
  AddToHtml(false,rtxt,akt,menet);
  return false;
}

/* keresesre valasz */
function SearchValasz(res,menet)
{ var rtxt="", akt="", thsize=0, ps=gi(srchid); 
  var cont=1, ok=0, i=res.indexOf('!s!start:');
  if( i >= 0 ) i = res.indexOf('sum:',i);
  if( i >= 0 )
     thsize = parseInt(res.substr(i+4,10)); 
  else if( res.indexOf('ERR leáll') >= 0 )
    { rtxt = 'Keresés leállítva'; cont=0; }
  else if( res.indexOf('<TITLE>Túl sok') >=0 )
    { rtxt = "Sok találat lenne";
      var ma = /Max\. (.*) találat engedély/i.exec(res)
      if( ma )
        rtxt += " (max. " + ma[1] + ")" ; 
    }
  else if( res.indexOf('<TITLE>TLWWW nincs') >=0 )
    { rtxt = "TL WWW nem működik"; cont=0; }
  else if( res.indexOf('Hiba: TextLib szerver nem') >=0 )
    { rtxt = "TL szerver nem működik"; cont=0; }
  else if( res.indexOf('<TITLE>Nincs találat') >= 0 )
    { rtxt = "Nincs találat"; }
  else if( res.indexOf('<H2>Üres</H2>') >= 0 || 
           res.indexOf('-- !!!rovidkeres --') >= 0 )
    { rtxt = "Túl rövid keresendő (min. 2 betű)"; }
  else
    { rtxt = "Ismeretlen hiba"; cont=0; alert(res); }
  i = res.indexOf('!t!thnum:',i);  
  if( cont && i >= 0 && thsize>0 )  // tenyleg van talalat
   { var thnum = parseInt(res.substr(i+9,10));
     var thx = (thnum-1000)*13; 
     var kerd="thshow=" + thx;
     rtxt = "<a href=\"" + TlwwwCgiUrl + "?" + DbName() + 
         encodeURI(kerd) + "\"><B> " + thsize + " találat</B></A>\n";
     ok = 1; // sikeres volt a kereses :-)
   }
  if( !cont ) 
    { StartKeres(0,0); menet=99; }
  AddToHtml(ok,rtxt,false,menet);
  if( cont ) { MySpecKeres(++menet); }
  return false;
}

// 
function SetLastSpecKer()
{  var pp = resid ? gi(resid) : false;
   var shtml = get_cookie('tllastsrch');
   if( pp && shtml )          // ha van hova, es van mit...
       pp.innerHTML = shtml;
}

// 
function ClearSpecKer()
{  var pp = gi(resid); 
   if( pp )
     { 
       pp.innerHTML = '';
     }
   pp = gi(noresid);   
   if( pp ) 
     {
       pp.innerHTML = '';
     }
   del_cookie('tllastsrch');
}

