}
 
                if ($subop == "sanityCheck") {
+                       print "<rpc-reply>";
                        if (sanity_check($link)) {
                                print "<error error-code=\"0\"/>";
+                               print_init_params($link);
                        }
-               }
+                       print "</rpc-reply>";
+               }               
 
                if ($subop == "globalPurge") {
 
                        print "</rpc-reply>";
 
                }
+
+               if ($subop == "storeParam") {
+                       $key = $_GET["key"];
+                       $value = $_GET["value"];
+                       $_SESSION["stored-params"][$key] = $value;
+               }
        }
 ?>
 
                        setcookie("ttrss_vf_hreadf", 0);
                }  
 
-               setcookie('ttrss_vf_refresh', FEEDS_FRAME_REFRESH);
-               setcookie('ttrss_vf_daemon', ENABLE_UPDATE_DAEMON);
+//             setcookie('ttrss_vf_refresh', FEEDS_FRAME_REFRESH);
+//             setcookie('ttrss_vf_daemon', ENABLE_UPDATE_DAEMON);
 
-               if (get_pref($link, "ON_CATCHUP_SHOW_NEXT_FEED")) {             
+/*             if (get_pref($link, "ON_CATCHUP_SHOW_NEXT_FEED")) {             
                        setcookie('ttrss_vf_catchupnext', 1);
                } else {
                        setcookie('ttrss_vf_catchupnext', 0);
-               }               
+               } */
        }
 
        $fetch = $_GET["fetch"];
 
                        toolbar_form.query.value = "";
                }
 
-               setCookie("ttrss_vf_limit", toolbar_form.limit[toolbar_form.limit.selectedIndex].value);
-               setCookie("ttrss_vf_vmode", toolbar_form.view_mode[toolbar_form.view_mode.selectedIndex].value);
+//             setCookie("ttrss_vf_limit", toolbar_form.limit[toolbar_form.limit.selectedIndex].value);
+//             setCookie("ttrss_vf_vmode", toolbar_form.view_mode[toolbar_form.view_mode.selectedIndex].value);
+
+               parent.storeInitParam("toolbar_limit", 
+                       toolbar_form.limit[toolbar_form.limit.selectedIndex].value);
+
+               parent.storeInitParam("toolbar_view_mode", 
+                       toolbar_form.view_mode[toolbar_form.view_mode.selectedIndex].value);
 
                var query = "backend.php?op=viewfeed&feed=" + feed + "&" +
                        toolbar_query + "&subop=" + param_escape(subop);
                        var next_unread_feed = getRelativeFeedId(feedlist,
                                        getActiveFeedId(), "next", true);
 
-                       if (next_unread_feed && getCookie('ttrss_vf_catchupnext') == 1) {
+                       var show_next_feed = parent.getInitParam("on_catchup_show_next_feed") == "1";
+
+                       if (next_unread_feed && show_next_feed) {
                                query = query + "&nuf=" + param_escape(next_unread_feed);
                                setActiveFeedId(next_unread_feed);
                        }
 
        function get_session_cookie_name() {
                return ((!defined('TTRSS_SESSION_NAME')) ? "ttrss_sid" : TTRSS_SESSION_NAME);
        }
+
+       function print_init_params($link) {
+               print "<init-params>";
+               if ($_SESSION["stored-params"]) {
+                       foreach (array_keys($_SESSION["stored-params"]) as $key) {
+                               $value = htmlspecialchars($_SESSION["stored-params"][$key]);
+                               print "<param key=\"$key\" value=\"$value\"/>";
+                       }
+               }
+
+               print "<param key=\"daemon_enabled\" value=\"" . ENABLE_UPDATE_DAEMON . "\"/>";
+               print "<param key=\"feeds_frame_refresh\" value=\"" . FEEDS_FRAME_REFRESH . "\"/>";
+
+               print "<param key=\"on_catchup_show_next_feed\" value=\"" . 
+                       get_pref($link, "ON_CATCHUP_SHOW_NEXT_FEED") . "\"/>";
+
+               print "</init-params>";
+       }
 ?>
 
 
 var xmlhttp = Ajax.getTransport();
 
+var init_params = new Array();
+
 function toggleTags() {
        display_tags = !display_tags;
 
                                return;
                        }
        
-                       var reply = xmlhttp.responseXML.firstChild;
+                       var reply = xmlhttp.responseXML.firstChild.firstChild;
        
                        if (!reply) {
                                fatalError(3, "[D002, Invalid RPC reply]: " + xmlhttp.responseText);
        
                        debug("sanity check ok");
 
+                       var params = reply.nextSibling;
+
+                       if (params) {
+                               debug('reading init-params...');
+                               var param = params.firstChild;
+
+                               while (param) {
+                                       var k = param.getAttribute("key");
+                                       var v = param.getAttribute("value");
+                                       debug(k + " => " + v);
+                                       init_params[k] = v;                                     
+                                       param = param.nextSibling;
+                               }
+                       }
+
                        init_second_stage();
 
                } catch (e) {
 function timeout() {
        scheduleFeedUpdate(false);
 
-       var refresh_time = getCookie('ttrss_vf_refresh');
+       var refresh_time = getInitParam("feeds_frame_refresh");
 
-       if (!refresh_time) refresh_time = 600;
+       if (!refresh_time) refresh_time = 600; 
 
        setTimeout("timeout()", refresh_time*1000);
 }
 
                var tb = parent.document.forms["main_toolbar_form"];
 
-               dropboxSelect(tb.view_mode, getCookie("ttrss_vf_vmode"));
-               dropboxSelect(tb.limit, getCookie("ttrss_vf_limit"));
+               dropboxSelect(tb.view_mode, getInitParam("toolbar_view_mode"));
+               dropboxSelect(tb.limit, getInitParam("toolbar_limit"));
 
-               daemon_enabled = getCookie("ttrss_vf_daemon");
+               daemon_enabled = getInitParam("daemon_enabled");
 
                // FIXME should be callled after window resize
 
                exception_error("fatalError", e);
        }
 }
+
+function getInitParam(key) {
+       return init_params[key];
+}
+
+function storeInitParam(key, value) {
+       new Ajax.Request("backend.php?op=rpc&subop=storeParam&key=" + 
+               param_escape(key) + "&value=" + param_escape(value));           
+}