+
+function session_encode ()
+{
+ var i;
+ var session = '';
+
+ for (i = 0; i < session_cells.length; i++)
+ {
+ var name = session_cells[i];
+ var value = escape(document.getElementById(name).value);
+ session += '&' + name + '=' + value;
+ }
+
+ return session;
+}
+
+
+function session_restore (session)
+{
+ var fields = session.split(/&/);
+ var i;
+
+ for (i = 1; i < fields.length; i++)
+ {
+ var pair = fields[i].split(/=/);
+ var key = pair.shift();
+ var value = pair.join('=');
+ var cell = document.getElementById(key);
+
+ cell.value = value;
+ }
+
+}
+
+
+function session_read ()
+{
+ var ses = window.location.hash.replace(/^#/, '');
+ return ses;
+}
+
+
+function session_store (new_value)
+{
+ window.location.hash = '#' + new_value;
+}
+
+
+function update_history ()
+{
+ var session = session_encode();
+ session_store(session);
+ old_session = session;
+}
+
+
+function session_check ()
+{
+ var session = session_read();
+
+ clearInterval(url_surveillence);
+
+ if ( session != unescape(old_session) )
+ {
+ session_restore(session);
+ start_search();
+
+ }
+
+ url_surveillence = setInterval(session_check, 200);
+}
+
+
+var url_surveillence = setInterval(session_check, 200);
+