var  store_array = new Array () ;	// array to store state of all forms to which user navigated
var  restoring   = false ;
var  hit_max     = 0 ;
var  hit_first   = 0 ;
var  hit_last    = 0 ;
var  hit_current = 0 ;
var  hit_id      = new Array () ;
var  hit_db      = new Array () ;
var  query       = "" ;
var  database    = "" ;
var  limit       = "" ;
var  sortlimit   = "" ;
var  sortorder   = "";
var  taweb       = "/taweb-cgi/taweb" ;

var  virtualView = new Array () ;

virtualView ["BND"] = "bnd" ;
virtualView ["BGBL"] = "bgbl" ;
virtualView ["BGBLPDF"] = "bgblpdf" ;
virtualView ["LRBG"] = "lrbg" ;
virtualView ["LRKT"] = "lrkt" ;
virtualView ["LRNI"] = "lrni" ;
virtualView ["LROO"] = "lroo" ;
virtualView ["LRSB"] = "lrsb" ;
virtualView ["LRST"] = "lrst" ;
virtualView ["LRTI"] = "lrti" ;
virtualView ["LRVB"] = "lrvb" ;
virtualView ["LRWI"] = "lrwi" ;
virtualView ["LGBLBG"] = "lgblbg" ;
virtualView ["LGBLKT"] = "lgblkt" ;
virtualView ["LGBLNI"] = "lgblni" ;
virtualView ["LGBLOO"] = "lgbloo" ;
virtualView ["LGBLSB"] = "lgblsb" ;
virtualView ["LGBLST"] = "lgblst" ;
virtualView ["LGBLTI"] = "lgblti" ;
virtualView ["LGBLVB"] = "lgblvb" ;
virtualView ["LGBLWI"] = "lgblwi" ;
virtualView ["CEL0"] = "celex" ;
virtualView ["CEL1"] = "celex" ;
virtualView ["CEL2"] = "celex" ;
virtualView ["CEL3"] = "celex" ;
virtualView ["CEL4"] = "celex" ;
virtualView ["CEL5"] = "celex" ;
virtualView ["CEL6"] = "celex" ;
virtualView ["CEL7"] = "celex" ;
virtualView ["CEL9"] = "celex" ;
virtualView ["CELC"] = "celex" ;
virtualView ["CELE"] = "celex" ;
virtualView ["RDBLI"] = "rdb" ;
virtualView ["RDBEN"] = "rdb" ;
virtualView ["RDBIN"] = "rdb" ;
virtualView ["RDBER"] = "rdb" ;
virtualView ["VfGHR"] = "vfgh" ;
virtualView ["VfGHT"] = "vfgh" ;
virtualView ["VwGHR"] = "vwgh" ;
virtualView ["VwGHT"] = "vwgh" ;
virtualView ["NOL"] = "nol" ;
virtualView ["JUSR"] = "jus" ;
virtualView ["JUST"] = "jus" ;
virtualView ["JUSER"] = "juser" ;
virtualView ["BMER"] = "bmer" ;
virtualView ["UVSR"] = "uvs" ;
virtualView ["UVST"] = "uvs" ;
virtualView ["UBASR"] = "ubas" ;
virtualView ["UBAST"] = "ubas" ;
virtualView ["UMSER"] = "umse" ;
virtualView ["UMSET"] = "umse" ;
virtualView ["VERGR"] = "verg" ;
virtualView ["VERGT"] = "verg" ;
virtualView ["DOKR"] = "dok" ;
virtualView ["DOKT"] = "dok" ;
virtualView ["DSKR"] = "dsk" ;
virtualView ["DSKT"] = "dsk" ;
virtualView ["OEBR"] = "oebr" ;
virtualView ["BEGUTR"] = "begut" ;
virtualView ["GEMRECHT"] = "gemrecht" ;
virtualView ["EURD"] = "eurd" ;
virtualView ["BKSR"] = "bks" ;
virtualView ["BKST"] = "bks" ;
virtualView ["ERV"] = "erv" ;


function ShowHitlist ()
{
  top.main.location.href = taweb + "?x=r&o=s&v=" + view + "&d=" + database +
"&h=" + (hit_first - 1) + "&l=" + limit + "&sl=" + sortlimit + "&so=" + escape (sortorder) + "&q=" + escape (query) ;
}


function isMSIE40 ()
{
  var  bname    = navigator.appName
  var  bversion = navigator.appVersion

  if ( (bname.toUpperCase () == "MICROSOFT INTERNET EXPLORER")  &&  (bversion.substring (0, 1) >= 4) )
    return  true
  else
    return  false
}  //  isMSIE40

function isNavigator40 ()
{
  var  bname    = navigator.appName
  var  bversion = navigator.appVersion

  if ( (bname.toUpperCase () == "NETSCAPE")  &&  (bversion.substring (0, 1) >= 4) )
    return  true
  else
    return  false
}  //  isNetscape40


function store_text (id, doc, frm_nr)
{
  var  nr_arg ;
  var  elm_nr ;
  
  nr_arg = store_text.arguments.length ;
  
  // alert ("storing text elements from form [" + doc.forms [frm_nr].name + "]") ;

  for ( var k = 3 ; k < nr_arg ; k ++ )
  {
    elm_nr = store_text.arguments [k] ;
    
    if ( doc.forms [frm_nr].elements [elm_nr].value != null )
    {
      // alert ("storing element " + elm_nr + " (" + doc.forms [frm_nr].elements [elm_nr].name + ") = [" + doc.forms [frm_nr].elements [elm_nr].value + "]") ;
      store_array [id + "_" + "text" + "_" + frm_nr + "_" + elm_nr] = doc.forms [frm_nr].elements [elm_nr].value ;
      // alert ("stored value " + elm_nr + " (" + doc.forms [frm_nr].elements [elm_nr].name + ") = [" + store_array [id + "_" + "text" + "_" + frm_nr + "_" + elm_nr] + "]") ;
    }
  }
}  //  store_text

function restore_text (id, doc, frm_nr)
{
  var  nr_arg ;
  var  elm_nr ;
  
  // alert ("restoring text elements to form [" + doc.forms [frm_nr].name + "]") ;

  nr_arg = restore_text.arguments.length ;
  
  for ( var k = 3 ; k < nr_arg ; k ++ )
  {
    elm_nr = restore_text.arguments [k] ;
    
    // alert ("checking stored value " + elm_nr + " (" + doc.forms [frm_nr].elements [elm_nr].name + ") = [" + store_array [id + "_" + "text" + "_" + frm_nr + "_" + elm_nr] + "]") ;

    if ( store_array [id + "_" + "text" + "_" + frm_nr + "_" + elm_nr] != null )
    {
      // alert ("restoring text element " + elm_nr + " (" + doc.forms [frm_nr].elements [elm_nr].name + ") = [" + store_array [id + "_" + "text" + "_" + frm_nr + "_" + elm_nr] + "]") ;
      doc.forms [frm_nr].elements [elm_nr].value = store_array [id + "_" + "text" + "_" + frm_nr + "_" + elm_nr] ;
      // alert ("restored value of text element " + elm_nr + " (" + doc.forms [frm_nr].elements [elm_nr].name + ") = [" + store_array [id + "_" + "text" + "_" + frm_nr + "_" + elm_nr] + "]") ;
    }
  }
}  //  restore_text

function store_select_one (id, doc, frm_nr)
{
  var  nr_arg ;
  var  elm_nr ;

  var  nr_arg = store_select_one.arguments.length ;
  
  for ( var  k = 3 ; k < nr_arg ; k ++ )
  {
    elm_nr = store_select_one.arguments [k] ;
    
    store_array [id + "_" + "select-one" + "_" + frm_nr + "_" + elm_nr] = doc.forms [frm_nr].elements [elm_nr].selectedIndex ;
  }
}  //  store_select_one

function restore_select_one (id, doc, frm_nr)
{
  var  nr_arg ;
  var  elm_nr ;

  var nr_arg = restore_select_one.arguments.length ;
  
  for ( var  k = 3 ; k < nr_arg ; k ++ )
  {
    elm_nr = restore_select_one.arguments [k] ;
    
    if ( store_array [id + "_" + "select-one" + "_" + frm_nr + "_" + elm_nr] != null )
      doc.forms [frm_nr].elements [elm_nr].selectedIndex = store_array [id + "_" + "select-one" + "_" + frm_nr + "_" + elm_nr] ;
  }
}  //  restore_select_one

function store_check (id, doc, frm_nr)
{
  var  nr_arg ;
  var  elm_nr ;

  var  nr_arg = store_check.arguments.length ;
  
  for ( var  k = 3 ; k < nr_arg ; k ++ )
  {
    elm_nr = store_check.arguments [k] ;
    
    // alert ("storing element " + elm_nr + " (" + doc.forms [frm_nr].elements [elm_nr].name + ") = [" + doc.forms [frm_nr].elements [elm_nr].checked + "]") ;
    
    if ( doc.forms [frm_nr].elements [elm_nr].checked )
      store_array [id + "_" + "check" + "_" + frm_nr + "_" + elm_nr] = "checked" ;
    else
      store_array [id + "_" + "check" + "_" + frm_nr + "_" + elm_nr] = "unchecked" ;

    // alert ("stored value " + elm_nr + " (" + doc.forms [frm_nr].elements [elm_nr].name + ") = [" + store_array [id + "_" + "check" + "_" + frm_nr + "_" + elm_nr] + "]") ;
  }
}  //  store_check

function restore_check (id, doc, frm_nr)
{
  var  nr_arg ;
  var  elm_nr ;

  var nr_arg = restore_check.arguments.length ;
  
  for ( var  k = 3 ; k < nr_arg ; k ++ )
  {
    elm_nr = restore_check.arguments [k] ;
    
    // alert ("checking stored value " + elm_nr + " (" + doc.forms [frm_nr].elements [elm_nr].name + ") = [" + store_array [id + "_" + "check" + "_" + frm_nr + "_" + elm_nr] + "]") ;
    
    if ( store_array [id + "_" + "check" + "_" + frm_nr + "_" + elm_nr] == "checked" )
      doc.forms [frm_nr].elements [elm_nr].checked = true ;
    else if ( store_array [id + "_" + "check" + "_" + frm_nr + "_" + elm_nr] == "unchecked" )
      doc.forms [frm_nr].elements [elm_nr].checked = false ;
  }
}  //  restore_check


function ReloadSearchScreen ()
{
  restoring = true ;
  top.main.location.href = taweb + "?x=s&v=" + view ;
}

function ShowDocument (rank)
{
  var  actual_view = view ;
  
  if ( hit_first <= rank  &&  rank <= hit_last )
  {
    hit_current = rank ;
    
    if ( "undefined" != typeof virtualView [hit_db [rank - hit_first]] )  actual_view = virtualView [hit_db [rank - hit_first]] ;
    
    top.main.location.href = taweb + "?x=d&o=d&v=" + actual_view + "&d=" + hit_db [rank - hit_first] + "&i=" + hit_id [rank - hit_first] + "&p=" + rank + "&q=" + escape (query) ;
  }
}


function ShowReference (rank) 
{ 
  if ( hit_first <= rank  &&  rank <= hit_last ) 
  { 
    hit_current = rank ; 
    top.main.location.href = taweb + "?x=d&o=r&v=" + view + "&d=" + hit_db [rank - hit_first] + "&i=" + hit_id [rank - hit_first] + "&p=" + rank ; 
  } 
} 


function ShowNextDocument ()
{
  if ( hit_current >= hit_last )
    if ( hit_current < hit_max )
    {
      alert ("The system will prepare next page of results first. Please click the first record found.") ;
      top.main.location.href = taweb + "?x=r&o=s&v=" + view + "&d=" + database + "&h=" + hit_current + "&l=" + limit + "&q=" + escape (query) ;
    }
    else
      alert ("Das ist das letzte Dokument aus der Kurztitelliste!") ;
  else
    ShowDocument (hit_current + 1) ;
}


function ShowPreviousDocument ()
{
  if ( hit_current <= hit_first  )
    if ( 1 < hit_current )
    {
      alert ("The system will prepare previous page of results first. Please click the last record found.") ;
      top.main.location.href = taweb + "?x=r&o=s&v=" + view + "&d=" + database + "&h=" + (hit_first - limit - 1) + "&l=" + limit + "&q=" + escape (query) + "#LastResult" ;
    }
    else
      alert ("Das ist das erste Dokument aus der Kurztitelliste!") ;
  else
    ShowDocument (hit_current - 1) ;
}



function ShowNextDoc ()
{
  if ( hit_current >= hit_last )
    if ( hit_current < hit_max )
    {
      alert ("The system will prepare next page of results first. Please click the first record found.") ;
      top.main.location.href = taweb + "?x=r&o=s&v=" + view + "&d=" + database + "&h=" + hit_current + "&l=" + limit + "&q=" + escape (query) ;
    }
    else
      alert (" This is the last document of the hit list! ") ;
  else
    ShowDocument (hit_current + 1) ;
}


function ShowPreviousDoc ()
{
  if ( hit_current <= hit_first  )
    if ( 1 < hit_current )
    {
      alert ("The system will prepare previous page of results first. Please click the last record found.") ;
      top.main.location.href = taweb + "?x=r&o=s&v=" + view + "&d=" + database + "&h=" + (hit_first - limit - 1) + "&l=" + limit + "&q=" + escape (query) + "#LastResult" ;
    }
    else
      alert (" This is the first document of the hit list! ") ;
  else
    ShowDocument (hit_current - 1) ;
}

