--- a
+++ b/options.js
@@ -0,0 +1,179 @@
+/************************************************************************/
+/*                                                                      */
+/*      Save Page WE - Generic WebExtension - Options Page              */
+/*                                                                      */
+/*      Javascript for Options Page                                     */
+/*                                                                      */
+/*      Last Edit - 27 Oct 2017                                         */
+/*                                                                      */
+/*      Copyright (C) 2016-2017 DW-dev                                  */
+/*                                                                      */
+/*      Distributed under the GNU General Public License version 2      */
+/*      See LICENCE.txt file and http://www.gnu.org/licenses/           */
+/*                                                                      */
+/************************************************************************/
+
+/************************************************************************/
+/*                                                                      */
+/*  Refer to Google Chrome developer documentation:                     */
+/*                                                                      */
+/*  https://developer.chrome.com/extensions/optionsV2                   */
+/*                                                                      */
+/*  https://developer.chrome.com/extensions/storage                     */
+/*                                                                      */
+/************************************************************************/
+
+"use strict";
+
+/************************************************************************/
+
+/* Global variables */
+
+/************************************************************************/
+
+/* Listener for options page load */
+
+document.addEventListener("DOMContentLoaded",onLoadPage,false);
+
+/************************************************************************/
+
+/* Initialize on page load */
+
+function onLoadPage(event)
+{
+    /* Load options from local storage */
+    
+    chrome.storage.local.get(null,
+    function(object)
+    {
+        /* General options */
+        
+        document.getElementById("options-buttonaction").elements["action"].value = object["options-buttonaction"];
+        
+        document.getElementById("options-showsubmenu").checked = object["options-showsubmenu"];
+        document.getElementById("options-showwarning").checked = object["options-showwarning"];
+        document.getElementById("options-showurllist").checked = object["options-showurllist"];
+        document.getElementById("options-prefixfilename").checked = object["options-prefixfilename"];
+        document.getElementById("options-suffixfilename").checked = object["options-suffixfilename"];
+        
+        document.getElementById("options-usepageloader").checked = object["options-usepageloader"];
+        document.getElementById("options-removeunsavedurls").checked = object["options-removeunsavedurls"];
+        document.getElementById("options-includeinfobar").checked = object["options-includeinfobar"];
+        document.getElementById("options-includesummary").checked = object["options-includesummary"];
+        
+        document.getElementById("options-showurllist").disabled = !document.getElementById("options-showwarning").checked;
+        
+        /* Saved Items options */
+        
+        document.getElementById("options-savehtmlaudiovideo").checked = object["options-savehtmlaudiovideo"];
+        document.getElementById("options-savehtmlobjectembed").checked = object["options-savehtmlobjectembed"];
+        document.getElementById("options-savehtmlimagesall").checked = object["options-savehtmlimagesall"];
+        document.getElementById("options-savecssimagesall").checked = object["options-savecssimagesall"];
+        document.getElementById("options-savecssfontswoff").checked = object["options-savecssfontswoff"];
+        document.getElementById("options-savescripts").checked = object["options-savescripts"];
+        
+        document.getElementById("options-maxframedepth").value = object["options-maxframedepth"];
+        
+        document.getElementById("options-maxresourcesize").value = object["options-maxresourcesize"];
+    });
+    
+    /* Show general tab */
+    
+    showGeneralTab();
+    
+    /* Add listeners for click on tab buttons */
+    
+    document.getElementById("options-tabbar-general").addEventListener("click",showGeneralTab,false);
+    document.getElementById("options-tabbar-saveditems").addEventListener("click",showSavedItemsTab,false);
+    
+    /* Add listener for click on show warning checkbox */
+    
+    document.getElementById("options-showwarning").addEventListener("click",onClickShowWarning,false);
+    
+    /* Add listener for click on save button */
+    
+    document.getElementById("options-save-button").addEventListener("click",onClickSave,false);
+}
+
+/************************************************************************/
+
+/* Select tab */
+
+function showGeneralTab(event)
+{
+    document.getElementById("options-tabbar-general").setAttribute("selected","");
+    document.getElementById("options-tabbar-saveditems").removeAttribute("selected");
+    
+    document.getElementById("options-tab-general").style.setProperty("display","block","");
+    document.getElementById("options-tab-saveditems").style.setProperty("display","none","");
+}
+
+function showSavedItemsTab(event)
+{
+    document.getElementById("options-tabbar-general").removeAttribute("selected");
+    document.getElementById("options-tabbar-saveditems").setAttribute("selected","");
+    
+    document.getElementById("options-tab-general").style.setProperty("display","none","");
+    document.getElementById("options-tab-saveditems").style.setProperty("display","block","");
+}
+
+/************************************************************************/
+
+/* Enable or Disable options */
+
+function onClickShowWarning(event)
+{
+    document.getElementById("options-showurllist").disabled = !document.getElementById("options-showwarning").checked;
+}
+
+/************************************************************************/
+
+/* Save options */
+
+function onClickSave(event)
+{
+    /* Save options to local storage */
+    
+    chrome.storage.local.set(
+    {
+        /* General options */
+        
+        "options-buttonaction": +document.getElementById("options-buttonaction").elements["action"].value,
+        
+        "options-showsubmenu": document.getElementById("options-showsubmenu").checked,
+        "options-showwarning": document.getElementById("options-showwarning").checked,
+        "options-showurllist": document.getElementById("options-showurllist").checked,
+        "options-prefixfilename": document.getElementById("options-prefixfilename").checked,
+        "options-suffixfilename": document.getElementById("options-suffixfilename").checked,
+        
+        "options-usepageloader": document.getElementById("options-usepageloader").checked,
+        "options-removeunsavedurls": document.getElementById("options-removeunsavedurls").checked,
+        "options-includeinfobar": document.getElementById("options-includeinfobar").checked,
+        "options-includesummary": document.getElementById("options-includesummary").checked,
+        
+        /* Saved Items options */
+        
+        "options-savehtmlaudiovideo": document.getElementById("options-savehtmlaudiovideo").checked,
+        "options-savehtmlobjectembed": document.getElementById("options-savehtmlobjectembed").checked,
+        "options-savehtmlimagesall": document.getElementById("options-savehtmlimagesall").checked,
+        "options-savecssimagesall": document.getElementById("options-savecssimagesall").checked,
+        "options-savecssfontswoff": document.getElementById("options-savecssfontswoff").checked,
+        "options-savescripts": document.getElementById("options-savescripts").checked,
+        
+        "options-maxframedepth": +document.getElementById("options-maxframedepth").value,
+        
+        "options-maxresourcesize": +document.getElementById("options-maxresourcesize").value
+    });
+    
+    /* Display saved status for short period */
+    
+    document.getElementById("options-save-status").style.setProperty("visibility","visible","");
+    
+    setTimeout(function()
+    {
+        document.getElementById("options-save-status").style.setProperty("visibility","hidden","");
+    }
+    ,1000);
+}
+
+/************************************************************************/