Only split on first occurrence of = in pseudo url.
[pazpar2-moved-to-github.git] / www / test1 / index.html
index 1635922..88d39be 100644 (file)
@@ -21,6 +21,8 @@ var showtimer;
 var termtimer;
 var stattimer;
 var startrec;
+var session_cells = Array('query');
+var old_session = session_read();
 
 function GetXmlHttpObject()
 { 
@@ -306,10 +308,86 @@ function start_search()
     xsearch.send(null);
     document.getElementById("termlist").innerHTML = '';
     document.getElementById("body").innerHTML = '';
+    update_history();
     shown = 0;
     startrec = 0;
 }
 
+
+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 != old_session )
+    {
+        session_restore(session);
+        start_search();
+        
+    }
+    
+    url_surveillence = setInterval(session_check, 200);
+}
+        
+
+var url_surveillence = setInterval(session_check, 200);
+
 </script>
 </head>