+# $Id: query.egw,v 1.12 1995/11/08 18:07:23 adam Exp $
+
+ if {[info commands saveState] == ""} {
+ source z39util.tcl
+ }
+
+proc fail-response {} {
+ global sessionWait
+ set sessionWait -1
+}
+
+proc ok-response {} {
+ global sessionWait
+ set sessionWait 1
+}
+
+ global setNo
+ global nextSetNo
+ global hist
+
+ set host [lindex $sessionParms 0]
+
+ if {[info exists setNo]} {
+ set oldHost $hist($setNo,host)
+ } else {
+ set oldHost ""
+ }
+ if {[catch {set setNo $nextSetNo}]} {
+ set nextSetNo 1
+ set setNo 1
+ }
+ set hist($setNo,host) $host
+ set hist($setNo,idAuthentication) [lindex $targets($host) 3]
+
+ if {[catch {z39 failback fail-response}]} {
+ ir z39
+ }
+
+ html "<h2> Search in " [lindex $targets($host) 0] "</h2>\n"
+
+ z39 callback ok-response
+ z39 failback fail-response
+ if {$host != $oldHost} {
+ catch {z39 disconnect}
+
+ set sessionWait 0
+ if {[catch {z39 connect $host}]} {
+ html "Cannot connect to target ${host} <br>\n"
+ html "</body></html>\n"
+ wabort
+ } elseif {$sessionWait == 0} {
+ if {[catch {zwait sessionWait 30}]} {
+ html "Cannot connect to target ${host} <br>\n"
+ html "</body></html>\n"
+ z39 disconnect
+ wabort
+ }
+ if {$sessionWait != 1} {
+ html "Cannot connect to target ${host} <br>\n"
+ html "</body></html>\n"
+ z39 disconnect
+ wabort
+ }
+ }
+ set sessionWait 0
+ z39 idAuthentication $hist($setNo,idAuthentication)
+ if {[catch {z39 init}]} {
+ htmlr "Cannot initialize with target ${host} <br>"
+ htmlr "</body></html>"
+ wabort
+ }
+ if {[catch {zwait sessionWait 60}]} {
+ htmlr "Cannot initialize with target ${host} <br>"
+ htmlr "</body></html>"
+ wabort
+ }
+ if {$sessionWait != "1"} {
+ htmlr "Cannot initialize with target ${host} <br>"
+ htmlr "</body></html>"
+ wabort
+ }
+ }
+ set databases [lindex $targets($host) 1]
+
+ html {<form action="http:} $env(SCRIPT_NAME)
+ html / $sessionId {/search.egw/} $setNo {" method=post>} \n