--- /dev/null
+var webdeveloper_optionsDataBoolean = new Array();
+var webdeveloper_optionsDataInteger = new Array();
+var webdeveloper_optionsDataString = new Array();
+var webdeveloper_resizeDescription = null;
+var webdeveloper_resizeHeight = null;
+var webdeveloper_resizeViewport = false;
+var webdeveloper_resizeWidth = null;
+var webdeveloper_toolBookmarklet = null;
+var webdeveloper_toolDescription = null;
+var webdeveloper_toolKey = null;
+var webdeveloper_toolPath = null;
+var webdeveloper_toolURL = null;
+var webdeveloper_viewSourceWithDescription = null;
+var webdeveloper_viewSourceWithKey = null;
+var webdeveloper_viewSourceWithPath = null;
+
+// Adds a resize option
+function webdeveloper_addResize()
+{
+ window.openDialog("chrome://webdeveloper/content/options/dialogs/resize.xul", "webdeveloper-resize-dialog", "centerscreen,chrome,modal", "add");
+
+ // If the description, height and width are set
+ if(webdeveloper_resizeDescription && webdeveloper_resizeHeight && webdeveloper_resizeWidth)
+ {
+ var pageDocument = document.getElementById("webdeveloper-options-iframe").contentDocument;
+ var listCell = pageDocument.createElement("listcell");
+ var listItem = pageDocument.createElement("listitem");
+ var resizeBox = pageDocument.getElementById("webdeveloper-listbox");
+ var stringBundle = document.getElementById("webdeveloper-string-bundle");
+
+ listCell.setAttribute("label", webdeveloper_resizeDescription);
+ listItem.appendChild(listCell);
+
+ listCell = pageDocument.createElement("listcell");
+ listCell.setAttribute("label", webdeveloper_resizeWidth);
+ listItem.appendChild(listCell);
+
+ listCell = pageDocument.createElement("listcell");
+ listCell.setAttribute("label", webdeveloper_resizeHeight);
+ listItem.appendChild(listCell);
+
+ listCell = pageDocument.createElement("listcell");
+
+ // If resizing the viewport
+ if(webdeveloper_resizeViewport)
+ {
+ listCell.setAttribute("label", stringBundle.getString("webdeveloper_yes"));
+ }
+ else
+ {
+ listCell.setAttribute("label", stringBundle.getString("webdeveloper_no"));
+ }
+
+ listItem.appendChild(listCell);
+
+ resizeBox.selectItem(resizeBox.appendChild(listItem));
+ resizeBox.ensureElementIsVisible(resizeBox.selectedItem);
+ }
+}
+
+// Adds a tool
+function webdeveloper_addTool()
+{
+ window.openDialog("chrome://webdeveloper/content/options/dialogs/tool.xul", "webdeveloper-tool-dialog", "centerscreen,chrome,modal", "add");
+
+ // If the description and the bookmarklet, path or URL are set
+ if(webdeveloper_toolDescription && (webdeveloper_toolBookmarklet || webdeveloper_toolPath || webdeveloper_toolURL))
+ {
+ var pageDocument = document.getElementById("webdeveloper-options-iframe").contentDocument;
+ var listCell = pageDocument.createElement("listcell");
+ var listItem = pageDocument.createElement("listitem");
+ var stringBundle = document.getElementById("webdeveloper-string-bundle");
+ var toolBox = pageDocument.getElementById("webdeveloper-listbox");
+
+ listCell.setAttribute("label", webdeveloper_toolDescription);
+
+ // If the bookmarklet is set
+ if(webdeveloper_toolBookmarklet)
+ {
+ listCell.setAttribute("type", stringBundle.getString("webdeveloper_bookmarklet"));
+ }
+ else if(webdeveloper_toolPath)
+ {
+ listCell.setAttribute("type", stringBundle.getString("webdeveloper_application"));
+ }
+ else
+ {
+ listCell.setAttribute("type", stringBundle.getString("webdeveloper_url"));
+ }
+
+ listItem.appendChild(listCell);
+
+ listCell = pageDocument.createElement("listcell");
+
+ // If the bookmarklet is set
+ if(webdeveloper_toolBookmarklet)
+ {
+ listCell.setAttribute("label", webdeveloper_toolBookmarklet);
+ }
+ else if(webdeveloper_toolPath)
+ {
+ listCell.setAttribute("label", webdeveloper_toolPath);
+ }
+ else
+ {
+ listCell.setAttribute("label", webdeveloper_toolURL);
+ }
+
+ listCell.setAttribute("crop", "end");
+ listItem.appendChild(listCell);
+
+ listCell = pageDocument.createElement("listcell");
+
+ // If the key is set
+ if(webdeveloper_toolKey)
+ {
+ listCell.setAttribute("label", webdeveloper_toolKey);
+ }
+
+ listItem.appendChild(listCell);
+
+ toolBox.selectItem(toolBox.appendChild(listItem));
+ toolBox.ensureElementIsVisible(toolBox.selectedItem);
+ }
+}
+
+// Adds a view source with option
+function webdeveloper_addViewSourceWith()
+{
+ window.openDialog("chrome://webdeveloper/content/options/dialogs/view_source_with.xul", "webdeveloper-view-source-with-dialog", "centerscreen,chrome,modal", "add");
+
+ // If the description and path are set
+ if(webdeveloper_viewSourceWithDescription && webdeveloper_viewSourceWithPath)
+ {
+ var pageDocument = document.getElementById("webdeveloper-options-iframe").contentDocument;
+ var listCell = pageDocument.createElement("listcell");
+ var listItem = pageDocument.createElement("listitem");
+ var stringBundle = document.getElementById("webdeveloper-string-bundle");
+ var viewSourceWithBox = pageDocument.getElementById("webdeveloper-listbox");
+
+ listCell.setAttribute("label", webdeveloper_viewSourceWithDescription);
+ listItem.appendChild(listCell);
+
+ listCell = pageDocument.createElement("listcell");
+ listCell.setAttribute("label", webdeveloper_viewSourceWithPath);
+ listCell.setAttribute("crop", "end");
+ listItem.appendChild(listCell);
+
+ listCell = pageDocument.createElement("listcell");
+
+ // If the key is set
+ if(webdeveloper_viewSourceWithKey)
+ {
+ listCell.setAttribute("label", webdeveloper_viewSourceWithKey);
+ }
+
+ listItem.appendChild(listCell);
+
+ viewSourceWithBox.selectItem(viewSourceWithBox.appendChild(listItem));
+ viewSourceWithBox.ensureElementIsVisible(viewSourceWithBox.selectedItem);
+ }
+}
+
+// Handles changing the options page
+function webdeveloper_changePage(pageList)
+{
+ webdeveloper_storeOptions();
+ webdeveloper_setIntegerPreference("webdeveloper.options.last.page", pageList.selectedIndex);
+
+ document.getElementById("webdeveloper-options-iframe").setAttribute("src", pageList.selectedItem.value);
+}
+
+// Deletes a resize option
+function webdeveloper_deleteResize()
+{
+ var pageDocument = document.getElementById("webdeveloper-options-iframe").contentDocument;
+ var resizeBox = pageDocument.getElementById("webdeveloper-listbox");
+ var selectedItem = resizeBox.selectedItem;
+
+ // If an item is selected and the deletion is confirmed
+ if(selectedItem && webdeveloper_deleteConfirmation(document.getElementById("webdeveloper-string-bundle").getString("webdeveloper_resizeDeleteConfirmation")))
+ {
+ resizeBox.removeChild(selectedItem);
+ }
+}
+
+// Deletes a tool
+function webdeveloper_deleteTool()
+{
+ var pageDocument = document.getElementById("webdeveloper-options-iframe").contentDocument;
+ var toolBox = pageDocument.getElementById("webdeveloper-listbox");
+ var selectedItem = toolBox.selectedItem;
+
+ // If an item is selected and it is a separator or the deletion is confirmed
+ if(selectedItem && (selectedItem.childNodes[0].tagName == "separator" || webdeveloper_deleteConfirmation(document.getElementById("webdeveloper-string-bundle").getString("webdeveloper_toolDeleteConfirmation"))))
+ {
+ toolBox.removeChild(selectedItem);
+ }
+}
+
+// Deletes a tool
+function webdeveloper_deleteViewSourceWith()
+{
+ var pageDocument = document.getElementById("webdeveloper-options-iframe").contentDocument;
+ var viewSourceWithBox = pageDocument.getElementById("webdeveloper-listbox");
+ var selectedItem = viewSourceWithBox.selectedItem;
+
+ // If an item is selected and the deletion is confirmed
+ if(selectedItem && webdeveloper_deleteConfirmation(document.getElementById("webdeveloper-string-bundle").getString("webdeveloper_viewSourceWithDeleteConfirmation")))
+ {
+ viewSourceWithBox.removeChild(selectedItem);
+ }
+}
+
+// Edits a resize option
+function webdeveloper_editResize()
+{
+ var pageDocument = document.getElementById("webdeveloper-options-iframe").contentDocument;
+ var resizeBox = pageDocument.getElementById("webdeveloper-listbox");
+ var selectedItem = resizeBox.selectedItem;
+
+ // If an option is selected
+ if(selectedItem)
+ {
+ var stringBundle = document.getElementById("webdeveloper-string-bundle");
+ var viewportValue = false;
+
+ // If the viewport value is set to yes
+ if(selectedItem.childNodes[3].getAttribute("label") == stringBundle.getString("webdeveloper_yes"))
+ {
+ viewportValue = true;
+ }
+
+ window.openDialog("chrome://webdeveloper/content/options/dialogs/resize.xul", "webdeveloper-resize-dialog", "centerscreen,chrome,modal", "edit", selectedItem.childNodes[0].getAttribute("label"), selectedItem.childNodes[1].getAttribute("label"), selectedItem.childNodes[2].getAttribute("label"), viewportValue);
+
+ // If the description, height and width are set
+ if(webdeveloper_resizeDescription && webdeveloper_resizeHeight && webdeveloper_resizeWidth)
+ {
+ var listCell = pageDocument.createElement("listcell");
+
+ webdeveloper_removeAllChildElements(selectedItem);
+
+ listCell.setAttribute("label", webdeveloper_resizeDescription);
+ selectedItem.appendChild(listCell);
+
+ listCell = pageDocument.createElement("listcell");
+ listCell.setAttribute("label", webdeveloper_resizeWidth);
+ selectedItem.appendChild(listCell);
+
+ listCell = pageDocument.createElement("listcell");
+ listCell.setAttribute("label", webdeveloper_resizeHeight);
+ selectedItem.appendChild(listCell);
+
+ listCell = pageDocument.createElement("listcell");
+
+ // If resizing the viewport
+ if(webdeveloper_resizeViewport)
+ {
+ listCell.setAttribute("label", stringBundle.getString("webdeveloper_yes"));
+ }
+ else
+ {
+ listCell.setAttribute("label", stringBundle.getString("webdeveloper_no"));
+ }
+
+ selectedItem.appendChild(listCell);
+ resizeBox.ensureElementIsVisible(selectedItem);
+ }
+ }
+}
+
+// Edits a tool
+function webdeveloper_editTool()
+{
+ var pageDocument = document.getElementById("webdeveloper-options-iframe").contentDocument;
+ var toolBox = pageDocument.getElementById("webdeveloper-listbox");
+ var selectedItem = toolBox.selectedItem;
+
+ // If an option is selected
+ if(selectedItem)
+ {
+ var selectedCell = selectedItem.childNodes[0];
+
+ // If this is not a separator
+ if(selectedCell.tagName != "separator")
+ {
+ window.openDialog("chrome://webdeveloper/content/options/dialogs/tool.xul", "webdeveloper-tool-dialog", "centerscreen,chrome,modal", "edit", selectedCell.getAttribute("label"), selectedItem.childNodes[2].getAttribute("label"), selectedItem.childNodes[1].getAttribute("label"), selectedCell.getAttribute("type"));
+
+ // If the description and the bookmarklet, path or URL are set
+ if(webdeveloper_toolDescription && (webdeveloper_toolBookmarklet || webdeveloper_toolPath || webdeveloper_toolURL))
+ {
+ var listCell = pageDocument.createElement("listcell");
+ var stringBundle = document.getElementById("webdeveloper-string-bundle");
+
+ webdeveloper_removeAllChildElements(selectedItem);
+
+ listCell.setAttribute("label", webdeveloper_toolDescription);
+
+ // If the bookmarklet is set
+ if(webdeveloper_toolBookmarklet)
+ {
+ listCell.setAttribute("type", stringBundle.getString("webdeveloper_bookmarklet"));
+ }
+ else if(webdeveloper_toolPath)
+ {
+ listCell.setAttribute("type", stringBundle.getString("webdeveloper_application"));
+ }
+ else
+ {
+ listCell.setAttribute("type", stringBundle.getString("webdeveloper_url"));
+ }
+
+ selectedItem.appendChild(listCell);
+
+ listCell = pageDocument.createElement("listcell");
+
+ // If the bookmarklet is set
+ if(webdeveloper_toolBookmarklet)
+ {
+ listCell.setAttribute("label", webdeveloper_toolBookmarklet);
+ }
+ else if(webdeveloper_toolPath)
+ {
+ listCell.setAttribute("label", webdeveloper_toolPath);
+ }
+ else
+ {
+ listCell.setAttribute("label", webdeveloper_toolURL);
+ }
+
+ listCell.setAttribute("crop", "end");
+ selectedItem.appendChild(listCell);
+
+ listCell = pageDocument.createElement("listcell");
+
+ // If the key is set
+ if(webdeveloper_toolKey)
+ {
+ listCell.setAttribute("label", webdeveloper_toolKey);
+ }
+
+ selectedItem.appendChild(listCell);
+ toolBox.ensureElementIsVisible(selectedItem);
+ }
+ }
+ }
+}
+
+// Edits a view source with option
+function webdeveloper_editViewSourceWith()
+{
+ var pageDocument = document.getElementById("webdeveloper-options-iframe").contentDocument;
+ var viewSourceWithBox = pageDocument.getElementById("webdeveloper-listbox");
+ var selectedItem = viewSourceWithBox.selectedItem;
+
+ // If an option is selected
+ if(selectedItem)
+ {
+ window.openDialog("chrome://webdeveloper/content/options/dialogs/view_source_with.xul", "webdeveloper-view-source-with-dialog", "centerscreen,chrome,modal", "edit", selectedItem.childNodes[0].getAttribute("label"), selectedItem.childNodes[1].getAttribute("label"), selectedItem.childNodes[2].getAttribute("label"));
+
+ // If the description and path are set
+ if(webdeveloper_viewSourceWithDescription && webdeveloper_viewSourceWithPath)
+ {
+ var listCell = pageDocument.createElement("listcell");
+
+ webdeveloper_removeAllChildElements(selectedItem);
+
+ listCell.setAttribute("label", webdeveloper_viewSourceWithDescription);
+ selectedItem.appendChild(listCell);
+
+ listCell = pageDocument.createElement("listcell");
+ listCell.setAttribute("label", webdeveloper_viewSourceWithPath);
+ listCell.setAttribute("crop", "end");
+ selectedItem.appendChild(listCell);
+
+ listCell = pageDocument.createElement("listcell");
+
+ // If the key is set
+ if(webdeveloper_viewSourceWithKey)
+ {
+ listCell.setAttribute("label", webdeveloper_viewSourceWithKey);
+ }
+
+ selectedItem.appendChild(listCell);
+ viewSourceWithBox.ensureElementIsVisible(selectedItem);
+ }
+ }
+}
+
+// Initializes the colors and fonts page
+function webdeveloper_initializeColorsAndFonts()
+{
+ var pageDocument = document.getElementById("webdeveloper-options-iframe").contentDocument;
+
+ // If the generated content font size preference is set
+ if(typeof webdeveloper_optionsDataInteger["webdeveloper.generated.content.font.size"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.generated.content.font.size").value = webdeveloper_optionsDataInteger["webdeveloper.generated.content.font.size"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.generated.content.font.size"))
+ {
+ pageDocument.getElementById("webdeveloper.generated.content.font.size").value = webdeveloper_getIntegerPreference("webdeveloper.generated.content.font.size", true);
+ }
+
+ // If the feature tooltip text color is set
+ if(typeof webdeveloper_optionsDataString["webdeveloper.feature.tooltip.color.text"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.feature.tooltip.color.text").color = webdeveloper_optionsDataString["webdeveloper.feature.tooltip.color.text"].trim();
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.feature.tooltip.color.text"))
+ {
+ pageDocument.getElementById("webdeveloper.feature.tooltip.color.text").color = webdeveloper_getStringPreference("webdeveloper.feature.tooltip.color.text", true);
+ }
+
+ // If the feature tooltip background color is set
+ if(typeof webdeveloper_optionsDataString["webdeveloper.feature.tooltip.color.background"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.feature.tooltip.color.background").color = webdeveloper_optionsDataString["webdeveloper.feature.tooltip.color.background"].trim();
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.feature.tooltip.color.background"))
+ {
+ pageDocument.getElementById("webdeveloper.feature.tooltip.color.background").color = webdeveloper_getStringPreference("webdeveloper.feature.tooltip.color.background", true);
+ }
+
+ // If the feature tooltip border color is set
+ if(typeof webdeveloper_optionsDataString["webdeveloper.feature.tooltip.color.border"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.feature.tooltip.color.border").color = webdeveloper_optionsDataString["webdeveloper.feature.tooltip.color.border"].trim();
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.feature.tooltip.color.border"))
+ {
+ pageDocument.getElementById("webdeveloper.feature.tooltip.color.border").color = webdeveloper_getStringPreference("webdeveloper.feature.tooltip.color.border", true);
+ }
+
+ // If the feature tooltip opacity is set
+ if(typeof webdeveloper_optionsDataString["webdeveloper.feature.tooltip.opacity"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.feature.tooltip.opacity").value = webdeveloper_optionsDataString["webdeveloper.feature.tooltip.opacity"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.feature.tooltip.opacity"))
+ {
+ pageDocument.getElementById("webdeveloper.feature.tooltip.opacity").value = webdeveloper_getStringPreference("webdeveloper.feature.tooltip.opacity", true);
+ }
+}
+
+// Initializes the dashboard page
+function webdeveloper_initializeDashboard()
+{
+ var pageDocument = document.getElementById("webdeveloper-options-iframe").contentDocument;
+
+ // If the edit CSS text color is set
+ if(typeof webdeveloper_optionsDataString["webdeveloper.edit.color.text"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.edit.color.text").color = webdeveloper_optionsDataString["webdeveloper.edit.color.text"].trim();
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.edit.color.text"))
+ {
+ pageDocument.getElementById("webdeveloper.edit.color.text").color = webdeveloper_getStringPreference("webdeveloper.edit.color.text", true);
+ }
+
+ // If the edit CSS background color is set
+ if(typeof webdeveloper_optionsDataString["webdeveloper.edit.color.background"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.edit.color.background").color = webdeveloper_optionsDataString["webdeveloper.edit.color.background"].trim();
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.edit.color.background"))
+ {
+ pageDocument.getElementById("webdeveloper.edit.color.background").color = webdeveloper_getStringPreference("webdeveloper.edit.color.background", true);
+ }
+
+ // If the edit CSS font preference is set
+ if(typeof webdeveloper_optionsDataInteger["webdeveloper.edit.font.size"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.edit.font.size").value = webdeveloper_optionsDataInteger["webdeveloper.edit.font.size"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.edit.font.size"))
+ {
+ pageDocument.getElementById("webdeveloper.edit.font.size").value = webdeveloper_getIntegerPreference("webdeveloper.edit.font.size", true);
+ }
+
+ // If the edit CSS update frequency preference is set
+ if(typeof webdeveloper_optionsDataInteger["webdeveloper.edit.update.frequency"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.edit.update.frequency").value = webdeveloper_optionsDataInteger["webdeveloper.edit.update.frequency"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.edit.update.frequency"))
+ {
+ pageDocument.getElementById("webdeveloper.edit.update.frequency").value = webdeveloper_getIntegerPreference("webdeveloper.edit.update.frequency", true);
+ }
+
+ // If the edit CSS wrap preference is set
+ if(typeof webdeveloper_optionsDataBoolean["webdeveloper.edit.wrap"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.edit.wrap").checked = webdeveloper_optionsDataBoolean["webdeveloper.edit.wrap"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.edit.wrap"))
+ {
+ pageDocument.getElementById("webdeveloper.edit.wrap").checked = webdeveloper_getBooleanPreference("webdeveloper.edit.wrap", true);
+ }
+
+ // If the style information dashboard preference is set
+ if(typeof webdeveloper_optionsDataBoolean["webdeveloper.style.information.dashboard"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.style.information.dashboard").checked = webdeveloper_optionsDataBoolean["webdeveloper.style.information.dashboard"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.style.information.dashboard"))
+ {
+ pageDocument.getElementById("webdeveloper.style.information.dashboard").checked = webdeveloper_getBooleanPreference("webdeveloper.style.information.dashboard", true);
+ }
+
+ // If the DOM Inspector dashboard preference is set
+ if(typeof webdeveloper_optionsDataBoolean["webdeveloper.dom.inspector.dashboard"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.dom.inspector.dashboard").checked = webdeveloper_optionsDataBoolean["webdeveloper.dom.inspector.dashboard"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.dom.inspector.dashboard"))
+ {
+ pageDocument.getElementById("webdeveloper.dom.inspector.dashboard").checked = webdeveloper_getBooleanPreference("webdeveloper.dom.inspector.dashboard", true);
+ }
+
+ // If the error console dashboard preference is set
+ if(typeof webdeveloper_optionsDataBoolean["webdeveloper.error.console.dashboard"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.error.console.dashboard").checked = webdeveloper_optionsDataBoolean["webdeveloper.error.console.dashboard"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.error.console.dashboard"))
+ {
+ pageDocument.getElementById("webdeveloper.error.console.dashboard").checked = webdeveloper_getBooleanPreference("webdeveloper.error.console.dashboard", true);
+ }
+}
+
+// Initializes the general page
+function webdeveloper_initializeGeneral()
+{
+ var pageDocument = document.getElementById("webdeveloper-options-iframe").contentDocument;
+
+ // If the hide menu preference is set
+ if(typeof webdeveloper_optionsDataBoolean["webdeveloper.menu.hide"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.menu.hide").checked = webdeveloper_optionsDataBoolean["webdeveloper.menu.hide"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.menu.hide"))
+ {
+ pageDocument.getElementById("webdeveloper.menu.hide").checked = webdeveloper_getBooleanPreference("webdeveloper.menu.hide", true);
+ }
+ else
+ {
+ pageDocument.getElementById("webdeveloper.menu.hide").checked = false;
+ }
+
+ // If the hide context menu preference is set
+ if(typeof webdeveloper_optionsDataBoolean["webdeveloper.context.hide"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.context.hide").checked = webdeveloper_optionsDataBoolean["webdeveloper.context.hide"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.context.hide"))
+ {
+ pageDocument.getElementById("webdeveloper.context.hide").checked = webdeveloper_getBooleanPreference("webdeveloper.context.hide", true);
+ }
+ else
+ {
+ pageDocument.getElementById("webdeveloper.context.hide").checked = false;
+ }
+
+ // If the hide confirmation dialogs preference is set
+ if(typeof webdeveloper_optionsDataBoolean["webdeveloper.confirmation.dialogs.hide"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.confirmation.dialogs.hide").checked = webdeveloper_optionsDataBoolean["webdeveloper.confirmation.dialogs.hide"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.confirmation.dialogs.hide"))
+ {
+ pageDocument.getElementById("webdeveloper.confirmation.dialogs.hide").checked = webdeveloper_getBooleanPreference("webdeveloper.confirmation.dialogs.hide", true);
+ }
+ else
+ {
+ pageDocument.getElementById("webdeveloper.confirmation.dialogs.hide").checked = false;
+ }
+
+ // If the hide informational dialogs preference is set
+ if(typeof webdeveloper_optionsDataBoolean["webdeveloper.informational.dialogs.hide"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.informational.dialogs.hide").checked = webdeveloper_optionsDataBoolean["webdeveloper.informational.dialogs.hide"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.informational.dialogs.hide"))
+ {
+ pageDocument.getElementById("webdeveloper.informational.dialogs.hide").checked = webdeveloper_getBooleanPreference("webdeveloper.informational.dialogs.hide", true);
+ }
+ else
+ {
+ pageDocument.getElementById("webdeveloper.informational.dialogs.hide").checked = false;
+ }
+
+ // If the toolbar icons preference is set
+ if(typeof webdeveloper_optionsDataString["webdeveloper.toolbar.icons"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.toolbar.icons").value = webdeveloper_optionsDataString["webdeveloper.toolbar.icons"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.toolbar.icons"))
+ {
+ pageDocument.getElementById("webdeveloper.toolbar.icons").value = webdeveloper_getStringPreference("webdeveloper.toolbar.icons", true);
+ }
+ else
+ {
+ pageDocument.getElementById("webdeveloper.toolbar.icons").selectedIndex = 0;
+ }
+
+ // If the open tabs preference is set
+ if(typeof webdeveloper_optionsDataBoolean["webdeveloper.open.tabs"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.open.tabs").checked = webdeveloper_optionsDataBoolean["webdeveloper.open.tabs"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.open.tabs"))
+ {
+ pageDocument.getElementById("webdeveloper.open.tabs").checked = webdeveloper_getBooleanPreference("webdeveloper.open.tabs", true);
+ }
+
+ // If the open tabs background preference is set
+ if(typeof webdeveloper_optionsDataBoolean["webdeveloper.open.tabs.background"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.open.tabs.background").checked = webdeveloper_optionsDataBoolean["webdeveloper.open.tabs.background"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.open.tabs.background"))
+ {
+ pageDocument.getElementById("webdeveloper.open.tabs.background").checked = webdeveloper_getBooleanPreference("webdeveloper.open.tabs.background", true);
+ }
+ else
+ {
+ pageDocument.getElementById("webdeveloper.open.tabs.background").checked = false;
+ }
+
+ pageDocument.getElementById("webdeveloper.open.tabs.background").disabled = !pageDocument.getElementById("webdeveloper.open.tabs").checked;
+}
+
+// Initializes the keys page
+function webdeveloper_initializeKeys()
+{
+ var mainDocument = null;
+
+ // If there is a parent window
+ if(window.opener)
+ {
+ // If there is a grand parent window
+ if(window.opener.opener)
+ {
+ mainDocument = window.opener.opener.document;
+ }
+ else
+ {
+ mainDocument = window.opener.document;
+ }
+ }
+ else
+ {
+ mainDocument = document;
+ }
+
+ // If a main document was found
+ if(mainDocument)
+ {
+ var keySet = mainDocument.getElementById("mainKeyset");
+
+ // If the key set was not found
+ if(!keySet)
+ {
+ keySet = mainDocument.getElementById("navKeys");
+ }
+
+ // If the key set was found
+ if(keySet)
+ {
+ var description = null;
+ var horizontalBox = null;
+ var id = null;
+ var labelElement = null;
+ var key = null;
+ var keys = keySet.childNodes;
+ var keysLength = keys.length;
+ var pageDocument = document.getElementById("webdeveloper-options-iframe").contentDocument;
+ var row = null;
+ var rows = pageDocument.getElementById("webdeveloper-key-rows");
+ var spacer = null;
+ var stringBundle = document.getElementById("webdeveloper-string-bundle");
+ var modifiers = null;
+ var textBox = null;
+
+ // If running on a Mac
+ if(webdeveloper_isMac())
+ {
+ modifiers = stringBundle.getString("webdeveloper_keyboardShortcutModifiersMac");
+ }
+ else
+ {
+ modifiers = stringBundle.getString("webdeveloper_keyboardShortcutModifiers");
+ }
+
+ // Loop through the keys
+ for(var i = 0; i < keysLength; i++)
+ {
+ key = keys.item(i);
+
+ // If the key has and id attribute starting with webdeveloper-
+ if(key.hasAttribute("id") && key.getAttribute("id").indexOf("webdeveloper-") == 0)
+ {
+ description = pageDocument.createElement("description");
+ horizontalBox = pageDocument.createElement("hbox");
+ id = key.getAttribute("id").split("-").join(".");
+ labelElement = pageDocument.createElement("label");
+ row = pageDocument.createElement("row");
+ textBox = pageDocument.createElement("textbox");
+
+ labelElement.setAttribute("control", id);
+ labelElement.setAttribute("value", key.getAttribute("label"));
+ row.appendChild(labelElement);
+
+ description.setAttribute("value", modifiers);
+ horizontalBox.appendChild(description);
+
+ // If the option is defined
+ if(typeof webdeveloper_optionsDataString[id] != "undefined")
+ {
+ textBox.setAttribute("value", webdeveloper_optionsDataString[id].trim());
+ }
+ else if(webdeveloper_isPreferenceSet(id))
+ {
+ textBox.setAttribute("value", webdeveloper_getStringPreference(id, true));
+ }
+ else
+ {
+ textBox.setAttribute("value", key.getAttribute("key"));
+ }
+
+ textBox.setAttribute("id", id);
+ textBox.setAttribute("size", "1");
+ textBox.setAttribute("maxlength", "1");
+ horizontalBox.appendChild(textBox);
+
+ horizontalBox.setAttribute("align", "center");
+ row.appendChild(horizontalBox);
+
+ row.setAttribute("align", "center");
+ rows.appendChild(row);
+ }
+ }
+ }
+ }
+}
+
+// Initializes the miscellaneous page
+function webdeveloper_initializeMiscellaneous()
+{
+ var pageDocument = document.getElementById("webdeveloper-options-iframe").contentDocument;
+
+ // If the populate form fields email preference is set
+ if(typeof webdeveloper_optionsDataString["webdeveloper.populate.form.fields.email"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.populate.form.fields.email").value = webdeveloper_optionsDataString["webdeveloper.populate.form.fields.email"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.populate.form.fields.email"))
+ {
+ pageDocument.getElementById("webdeveloper.populate.form.fields.email").value = webdeveloper_getStringPreference("webdeveloper.populate.form.fields.email", true);
+ }
+
+ // If the tidy information preference is set
+ if(typeof webdeveloper_optionsDataBoolean["webdeveloper.information.tidy"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.information.tidy").checked = webdeveloper_optionsDataBoolean["webdeveloper.information.tidy"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.information.tidy"))
+ {
+ pageDocument.getElementById("webdeveloper.information.tidy").checked = webdeveloper_getBooleanPreference("webdeveloper.information.tidy", true);
+ }
+ else
+ {
+ pageDocument.getElementById("webdeveloper.information.tidy").checked = false;
+ }
+
+ // If the open CSS console error preference is set
+ if(typeof webdeveloper_optionsDataBoolean["webdeveloper.open.css.console.error"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.open.css.console.error").checked = webdeveloper_optionsDataBoolean["webdeveloper.open.css.console.error"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.open.css.console.error"))
+ {
+ pageDocument.getElementById("webdeveloper.open.css.console.error").checked = webdeveloper_getBooleanPreference("webdeveloper.open.css.console.error", true);
+ }
+ else
+ {
+ pageDocument.getElementById("webdeveloper.open.css.console.error").checked = false;
+ }
+
+ // If the open JavaScript console warning preference is set
+ if(typeof webdeveloper_optionsDataBoolean["webdeveloper.open.javascript.console.warning"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.open.javascript.console.warning").checked = webdeveloper_optionsDataBoolean["webdeveloper.open.javascript.console.warning"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.open.javascript.console.warning"))
+ {
+ pageDocument.getElementById("webdeveloper.open.javascript.console.warning").checked = webdeveloper_getBooleanPreference("webdeveloper.open.javascript.console.warning", true);
+ }
+ else
+ {
+ pageDocument.getElementById("webdeveloper.open.javascript.console.warning").checked = false;
+ }
+
+ // If the open JavaScript console error preference is set
+ if(typeof webdeveloper_optionsDataBoolean["webdeveloper.open.javascript.console.error"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.open.javascript.console.error").checked = webdeveloper_optionsDataBoolean["webdeveloper.open.javascript.console.error"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.open.javascript.console.error"))
+ {
+ pageDocument.getElementById("webdeveloper.open.javascript.console.error").checked = webdeveloper_getBooleanPreference("webdeveloper.open.javascript.console.error", true);
+ }
+ else
+ {
+ pageDocument.getElementById("webdeveloper.open.javascript.console.error").checked = false;
+ }
+}
+
+// Initializes the options dialog
+function webdeveloper_initializeOptions(checkDialogParameters)
+{
+ var pageList = document.getElementById("webdeveloper-options-page-list");
+ var selectPage = 0;
+
+ // If check dialog parameters and window arguments are set
+ if(checkDialogParameters && window.arguments)
+ {
+ selectPage = webdeveloper_translatePageNameToIndex(window.arguments[0]);
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.options.last.page"))
+ {
+ selectPage = webdeveloper_getIntegerPreference("webdeveloper.options.last.page");
+ }
+
+ pageList.selectedIndex = selectPage;
+
+ document.getElementById("webdeveloper-options-iframe").setAttribute("src", pageList.selectedItem.value);
+}
+
+// Initializes the resize page
+function webdeveloper_initializeResize()
+{
+ var description = null;
+ var descriptionValue = null;
+ var height = null;
+ var heightValue = null;
+ var listCell = null;
+ var listItem = null;
+ var pageDocument = document.getElementById("webdeveloper-options-iframe").contentDocument;
+ var resizeBox = pageDocument.getElementById("webdeveloper-listbox");
+ var resizeCount = 0;
+ var stringBundle = document.getElementById("webdeveloper-string-bundle");
+ var no = stringBundle.getString("webdeveloper_no");
+ var viewport = null;
+ var viewportValue = false;
+ var width = null;
+ var widthValue = null;
+ var yes = stringBundle.getString("webdeveloper_yes");
+
+ // If the resize count preference is set
+ if(typeof webdeveloper_optionsDataInteger["webdeveloper.resize.count"] != "undefined")
+ {
+ resizeCount = webdeveloper_optionsDataInteger["webdeveloper.resize.count"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.resize.count"))
+ {
+ resizeCount = webdeveloper_getIntegerPreference("webdeveloper.resize.count", true);
+ }
+
+ // Loop through the possible resize options
+ for(var i = 1; i <= resizeCount; i++)
+ {
+ description = "webdeveloper.resize." + i + ".description";
+ height = "webdeveloper.resize." + i + ".height";
+ viewport = "webdeveloper.resize." + i + ".viewport";
+ width = "webdeveloper.resize." + i + ".width";
+
+ // If the description is set
+ if(typeof webdeveloper_optionsDataString[description] != "undefined")
+ {
+ descriptionValue = webdeveloper_optionsDataString[description].trim();
+ }
+ else if(webdeveloper_isPreferenceSet(description))
+ {
+ descriptionValue = webdeveloper_getStringPreference(description, true);
+ }
+ else
+ {
+ descriptionValue = null;
+ }
+
+ // If the width is set
+ if(typeof webdeveloper_optionsDataInteger[width] != "undefined")
+ {
+ widthValue = webdeveloper_optionsDataInteger[width];
+ }
+ else if(webdeveloper_isPreferenceSet(width))
+ {
+ widthValue = webdeveloper_getIntegerPreference(width, true);
+ }
+ else
+ {
+ widthValue = null;
+ }
+
+ // If the height is set
+ if(typeof webdeveloper_optionsDataInteger[height] != "undefined")
+ {
+ heightValue = webdeveloper_optionsDataInteger[height];
+ }
+ else if(webdeveloper_isPreferenceSet(height))
+ {
+ heightValue = webdeveloper_getIntegerPreference(height, true);
+ }
+ else
+ {
+ heightValue = null;
+ }
+
+ // If the viewport is set
+ if(typeof webdeveloper_optionsDataBoolean[viewport] != "undefined")
+ {
+ viewportValue = webdeveloper_optionsDataBoolean[viewport];
+ }
+ else if(webdeveloper_isPreferenceSet(viewport))
+ {
+ viewportValue = webdeveloper_getBooleanPreference(viewport, true);
+ }
+ else
+ {
+ viewportValue = false;
+ }
+
+ // If the description, width and height are set
+ if(descriptionValue && widthValue && heightValue)
+ {
+ listItem = pageDocument.createElement("listitem");
+
+ listCell = pageDocument.createElement("listcell");
+ listCell.setAttribute("label", descriptionValue);
+ listItem.appendChild(listCell);
+
+ listCell = pageDocument.createElement("listcell");
+ listCell.setAttribute("label", widthValue);
+ listItem.appendChild(listCell);
+
+ listCell = pageDocument.createElement("listcell");
+ listCell.setAttribute("label", heightValue);
+ listItem.appendChild(listCell);
+
+ listCell = pageDocument.createElement("listcell");
+
+ // If resizing the viewport
+ if(viewportValue)
+ {
+ listCell.setAttribute("label", yes);
+ }
+ else
+ {
+ listCell.setAttribute("label", no);
+ }
+
+ listItem.appendChild(listCell);
+ resizeBox.appendChild(listItem);
+ }
+ }
+
+ webdeveloper_listBoxSelected();
+}
+
+// Initializes the tools page
+function webdeveloper_initializeTools()
+{
+ var bookmarklet = null;
+ var bookmarkletValue = null;
+ var description = null;
+ var descriptionValue = null;
+ var key = null;
+ var keyValue = null;
+ var listCell = null;
+ var listItem = null;
+ var pageDocument = document.getElementById("webdeveloper-options-iframe").contentDocument;
+ var path = null;
+ var pathValue = null;
+ var separator = null;
+ var separatorValue = false;
+ var stringBundle = document.getElementById("webdeveloper-string-bundle");
+ var applicationType = stringBundle.getString("webdeveloper_application");
+ var bookmarkletType = stringBundle.getString("webdeveloper_bookmarklet");
+ var toolBox = pageDocument.getElementById("webdeveloper-listbox");
+ var toolCount = 0;
+ var url = null;
+ var urlType = stringBundle.getString("webdeveloper_url");
+ var urlValue = null;
+
+ // If the tool count preference is set
+ if(typeof webdeveloper_optionsDataInteger["webdeveloper.tool.count"] != "undefined")
+ {
+ toolCount = webdeveloper_optionsDataInteger["webdeveloper.tool.count"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.tool.count"))
+ {
+ toolCount = webdeveloper_getIntegerPreference("webdeveloper.tool.count", true);
+ }
+
+ // Loop through the possible tools
+ for(var i = 1; i <= toolCount; i++)
+ {
+ bookmarklet = "webdeveloper.tool." + i + ".bookmarklet";
+ description = "webdeveloper.tool." + i + ".description";
+ key = "webdeveloper.tool." + i + ".key";
+ path = "webdeveloper.tool." + i + ".path";
+ separator = "webdeveloper.tool." + i + ".separator";
+ url = "webdeveloper.tool." + i + ".url";
+
+ // If the bookmarklet is set
+ if(typeof webdeveloper_optionsDataString[bookmarklet] != "undefined")
+ {
+ bookmarkletValue = webdeveloper_optionsDataString[bookmarklet].trim();
+ }
+ else if(webdeveloper_isPreferenceSet(bookmarklet))
+ {
+ bookmarkletValue = webdeveloper_getStringPreference(bookmarklet, true);
+ }
+ else
+ {
+ bookmarkletValue = null;
+ }
+
+ // If the description is set
+ if(typeof webdeveloper_optionsDataString[description] != "undefined")
+ {
+ descriptionValue = webdeveloper_optionsDataString[description].trim();
+ }
+ else if(webdeveloper_isPreferenceSet(description))
+ {
+ descriptionValue = webdeveloper_getStringPreference(description, true);
+ }
+ else
+ {
+ descriptionValue = null;
+ }
+
+ // If the key is set
+ if(typeof webdeveloper_optionsDataString[key] != "undefined")
+ {
+ keyValue = webdeveloper_optionsDataString[key].trim();
+ }
+ else if(webdeveloper_isPreferenceSet(key))
+ {
+ keyValue = webdeveloper_getStringPreference(key, true);
+ }
+ else
+ {
+ keyValue = null;
+ }
+
+ // If the path is set
+ if(typeof webdeveloper_optionsDataString[path] != "undefined")
+ {
+ pathValue = webdeveloper_optionsDataString[path].trim();
+ }
+ else if(webdeveloper_isPreferenceSet(path))
+ {
+ pathValue = webdeveloper_getStringPreference(path, true);
+ }
+ else
+ {
+ pathValue = null;
+ }
+
+ // If the separator is set
+ if(typeof webdeveloper_optionsDataBoolean[separator] != "undefined")
+ {
+ separatorValue = webdeveloper_optionsDataBoolean[separator];
+ }
+ else if(webdeveloper_isPreferenceSet(separator))
+ {
+ separatorValue = webdeveloper_getBooleanPreference(separator, true);
+ }
+ else
+ {
+ separatorValue = false;
+ }
+
+ // If the URL is set
+ if(typeof webdeveloper_optionsDataString[url] != "undefined")
+ {
+ urlValue = webdeveloper_optionsDataString[url].trim();
+ }
+ else if(webdeveloper_isPreferenceSet(url))
+ {
+ urlValue = webdeveloper_getStringPreference(url, true);
+ }
+ else
+ {
+ urlValue = null;
+ }
+
+ // If the separator is set
+ if(separatorValue)
+ {
+ listItem = pageDocument.createElement("listitem");
+ separator = pageDocument.createElement("separator");
+
+ separator.setAttribute("class", "groove");
+ listItem.appendChild(separator);
+
+ separator = pageDocument.createElement("separator");
+ separator.setAttribute("class", "groove");
+ listItem.appendChild(separator);
+
+ separator = pageDocument.createElement("separator");
+ separator.setAttribute("class", "groove");
+ listItem.appendChild(separator);
+
+ toolBox.appendChild(listItem);
+ }
+ else if(descriptionValue && (bookmarkletValue || pathValue || urlValue))
+ {
+ listItem = pageDocument.createElement("listitem");
+
+ listCell = pageDocument.createElement("listcell");
+ listCell.setAttribute("label", descriptionValue);
+
+ // If the bookmarklet is set
+ if(bookmarkletValue)
+ {
+ listCell.setAttribute("type", bookmarkletType);
+ }
+ else if(pathValue)
+ {
+ listCell.setAttribute("type", applicationType);
+ }
+ else
+ {
+ listCell.setAttribute("type", urlType);
+ }
+
+ listItem.appendChild(listCell);
+
+ listCell = pageDocument.createElement("listcell");
+
+ // If the bookmarklet is set
+ if(bookmarkletValue)
+ {
+ listCell.setAttribute("label", bookmarkletValue);
+ }
+ else if(pathValue)
+ {
+ listCell.setAttribute("label", pathValue);
+ }
+ else
+ {
+ listCell.setAttribute("label", urlValue);
+ }
+
+ listCell.setAttribute("crop", "end");
+ listItem.appendChild(listCell);
+
+ listCell = pageDocument.createElement("listcell");
+
+ // If the key is set
+ if(keyValue)
+ {
+ listCell.setAttribute("label", keyValue);
+ }
+
+ listItem.appendChild(listCell);
+ toolBox.appendChild(listItem);
+ }
+ }
+
+ webdeveloper_listBoxSelected();
+}
+
+// Initializes the validation page
+function webdeveloper_initializeValidation()
+{
+ var pageDocument = document.getElementById("webdeveloper-options-iframe").contentDocument;
+ var validateLocalCSSProfile = "css21";
+ var validateLocalCSSProfileRadio = pageDocument.getElementById("webdeveloper-validate-local-css21-radio");
+
+ // If the Section 508 preference is set
+ if(typeof webdeveloper_optionsDataBoolean["webdeveloper.validate.local.accessibility.section508"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.validate.local.accessibility.section508").checked = webdeveloper_optionsDataBoolean["webdeveloper.validate.local.accessibility.section508"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.validate.local.accessibility.section508"))
+ {
+ pageDocument.getElementById("webdeveloper.validate.local.accessibility.section508").checked = webdeveloper_getBooleanPreference("webdeveloper.validate.local.accessibility.section508", true);
+ }
+
+ // If the WAI priority 1 preference is set
+ if(typeof webdeveloper_optionsDataBoolean["webdeveloper.validate.local.accessibility.wai.priority1"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.validate.local.accessibility.wai.priority1").checked = webdeveloper_optionsDataBoolean["webdeveloper.validate.local.accessibility.wai.priority1"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.validate.local.accessibility.wai.priority1"))
+ {
+ pageDocument.getElementById("webdeveloper.validate.local.accessibility.wai.priority1").checked = webdeveloper_getBooleanPreference("webdeveloper.validate.local.accessibility.wai.priority1", true);
+ }
+
+ // If the WAI priority 2 preference is set
+ if(typeof webdeveloper_optionsDataBoolean["webdeveloper.validate.local.accessibility.wai.priority2"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.validate.local.accessibility.wai.priority2").checked = webdeveloper_optionsDataBoolean["webdeveloper.validate.local.accessibility.wai.priority2"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.validate.local.accessibility.wai.priority2"))
+ {
+ pageDocument.getElementById("webdeveloper.validate.local.accessibility.wai.priority2").checked = webdeveloper_getBooleanPreference("webdeveloper.validate.local.accessibility.wai.priority2", true);
+ }
+
+ // If the WAI priority 3 preference is set
+ if(typeof webdeveloper_optionsDataBoolean["webdeveloper.validate.local.accessibility.wai.priority3"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.validate.local.accessibility.wai.priority3").checked = webdeveloper_optionsDataBoolean["webdeveloper.validate.local.accessibility.wai.priority3"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.validate.local.accessibility.wai.priority3"))
+ {
+ pageDocument.getElementById("webdeveloper.validate.local.accessibility.wai.priority3").checked = webdeveloper_getBooleanPreference("webdeveloper.validate.local.accessibility.wai.priority3", true);
+ }
+
+ // If the CSS profile preference is set
+ if(typeof webdeveloper_optionsDataString["webdeveloper.validate.local.css.profile"] != "undefined")
+ {
+ validateLocalCSSProfile = webdeveloper_optionsDataString["webdeveloper.validate.local.css.profile"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.validate.local.css.profile"))
+ {
+ validateLocalCSSProfile = webdeveloper_getStringPreference("webdeveloper.validate.local.css.profile", true);
+ }
+
+ // If validate local CSS profile is set to CSS 3
+ if(validateLocalCSSProfile == "css3")
+ {
+ validateLocalCSSProfileRadio = pageDocument.getElementById("webdeveloper-validate-local-css3-radio");
+ }
+
+ validateLocalCSSProfileRadio.radioGroup.selectedItem = validateLocalCSSProfileRadio;
+
+ // If the show outline preference is set
+ if(typeof webdeveloper_optionsDataBoolean["webdeveloper.validate.local.html.show.outline"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.validate.local.html.show.outline").checked = webdeveloper_optionsDataBoolean["webdeveloper.validate.local.html.show.outline"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.validate.local.html.show.outline"))
+ {
+ pageDocument.getElementById("webdeveloper.validate.local.html.show.outline").checked = webdeveloper_getBooleanPreference("webdeveloper.validate.local.html.show.outline", true);
+ }
+
+ // If the show parse tree preference is set
+ if(typeof webdeveloper_optionsDataBoolean["webdeveloper.validate.local.html.show.parse.tree"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.validate.local.html.show.parse.tree").checked = webdeveloper_optionsDataBoolean["webdeveloper.validate.local.html.show.parse.tree"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.validate.local.html.show.parse.tree"))
+ {
+ pageDocument.getElementById("webdeveloper.validate.local.html.show.parse.tree").checked = webdeveloper_getBooleanPreference("webdeveloper.validate.local.html.show.parse.tree", true);
+ }
+
+ // If the show source preference is set
+ if(typeof webdeveloper_optionsDataBoolean["webdeveloper.validate.local.html.show.source"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.validate.local.html.show.source").checked = webdeveloper_optionsDataBoolean["webdeveloper.validate.local.html.show.source"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.validate.local.html.show.source"))
+ {
+ pageDocument.getElementById("webdeveloper.validate.local.html.show.source").checked = webdeveloper_getBooleanPreference("webdeveloper.validate.local.html.show.source", true);
+ }
+}
+
+// Initializes the view source page
+function webdeveloper_initializeViewSource()
+{
+ var description = null;
+ var descriptionValue = null;
+ var key = null;
+ var keyValue = null;
+ var listCell = null;
+ var listItem = null;
+ var pageDocument = document.getElementById("webdeveloper-options-iframe").contentDocument;
+ var path = null;
+ var pathValue = null;
+ var viewSourceWithBox = pageDocument.getElementById("webdeveloper-listbox");
+ var viewSourceWithCount = 0;
+
+ // If the view source in tab preference is set
+ if(typeof webdeveloper_optionsDataBoolean["webdeveloper.view.source.tab"] != "undefined")
+ {
+ pageDocument.getElementById("webdeveloper.view.source.tab").checked = webdeveloper_optionsDataBoolean["webdeveloper.view.source.tab"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.view.source.tab"))
+ {
+ pageDocument.getElementById("webdeveloper.view.source.tab").checked = webdeveloper_getBooleanPreference("webdeveloper.view.source.tab", true);
+ }
+ else
+ {
+ pageDocument.getElementById("webdeveloper.view.source.tab").checked = false;
+ }
+
+ // If the view source with count preference is set
+ if(typeof webdeveloper_optionsDataInteger["webdeveloper.view.source.with.count"] != "undefined")
+ {
+ viewSourceWithCount = webdeveloper_optionsDataInteger["webdeveloper.view.source.with.count"];
+ }
+ else if(webdeveloper_isPreferenceSet("webdeveloper.view.source.with.count"))
+ {
+ viewSourceWithCount = webdeveloper_getIntegerPreference("webdeveloper.view.source.with.count", true);
+ }
+
+ // Loop through the possible view source with options
+ for(var i = 1; i <= viewSourceWithCount; i++)
+ {
+ description = "webdeveloper.view.source.with." + i + ".description";
+ key = "webdeveloper.view.source.with." + i + ".key";
+ path = "webdeveloper.view.source.with." + i + ".path";
+
+ // If the description is set
+ if(typeof webdeveloper_optionsDataString[description] != "undefined")
+ {
+ descriptionValue = webdeveloper_optionsDataString[description].trim();
+ }
+ else if(webdeveloper_isPreferenceSet(description))
+ {
+ descriptionValue = webdeveloper_getStringPreference(description, true);
+ }
+ else
+ {
+ descriptionValue = null;
+ }
+
+ // If the key is set
+ if(typeof webdeveloper_optionsDataString[key] != "undefined")
+ {
+ keyValue = webdeveloper_optionsDataString[key].trim();
+ }
+ else if(webdeveloper_isPreferenceSet(key))
+ {
+ keyValue = webdeveloper_getStringPreference(key, true);
+ }
+ else
+ {
+ keyValue = null;
+ }
+
+ // If the path is set
+ if(typeof webdeveloper_optionsDataString[path] != "undefined")
+ {
+ pathValue = webdeveloper_optionsDataString[path].trim();
+ }
+ else if(webdeveloper_isPreferenceSet(path))
+ {
+ pathValue = webdeveloper_getStringPreference(path, true);
+ }
+ else
+ {
+ pathValue = null;
+ }
+
+ // If the description and path are set
+ if(descriptionValue && pathValue)
+ {
+ listItem = pageDocument.createElement("listitem");
+ listCell = pageDocument.createElement("listcell");
+
+ listCell.setAttribute("label", descriptionValue);
+ listItem.appendChild(listCell);
+
+ listCell = pageDocument.createElement("listcell");
+ listCell.setAttribute("label", pathValue);
+ listCell.setAttribute("crop", "end");
+ listItem.appendChild(listCell);
+
+ listCell = pageDocument.createElement("listcell");
+
+ // If the key is set
+ if(keyValue)
+ {
+ listCell.setAttribute("label", keyValue);
+ }
+
+ listItem.appendChild(listCell);
+ viewSourceWithBox.appendChild(listItem);
+ }
+ }
+
+ webdeveloper_listBoxSelected();
+}
+
+// Called whenever a list box is selected
+function webdeveloper_listBoxSelected()
+{
+ var pageDocument = document.getElementById("webdeveloper-options-iframe").contentDocument;
+ var deleteButton = pageDocument.getElementById("webdeveloper-delete");
+ var editButton = pageDocument.getElementById("webdeveloper-edit");
+ var listBox = pageDocument.getElementById("webdeveloper-listbox");
+ var moveDownButton = pageDocument.getElementById("webdeveloper-move-down");
+ var moveUpButton = pageDocument.getElementById("webdeveloper-move-up");
+ var selectedIndex = listBox.selectedIndex;
+
+ // If an item is selected
+ if(listBox.selectedItem)
+ {
+ deleteButton.disabled = false;
+ editButton.disabled = false;
+
+ // If this is the first item
+ if(selectedIndex == 0)
+ {
+ moveUpButton.disabled = true;
+ }
+ else
+ {
+ moveUpButton.disabled = false;
+ }
+
+ // If this is the last item
+ if(selectedIndex == listBox.getRowCount() - 1)
+ {
+ moveDownButton.disabled = true;
+ }
+ else
+ {
+ moveDownButton.disabled = false;
+ }
+ }
+ else
+ {
+ deleteButton.disabled = true;
+ editButton.disabled = true;
+ moveDownButton.disabled = true;
+ moveUpButton.disabled = true;
+ }
+}
+
+// Moves the selected item down
+function webdeveloper_moveDown()
+{
+ var pageDocument = document.getElementById("webdeveloper-options-iframe").contentDocument;
+ var resizeBox = pageDocument.getElementById("webdeveloper-listbox");
+ var selectedItem = resizeBox.selectedItem;
+
+ // If an item is selected and it is not at the bottom
+ if(selectedItem && resizeBox.selectedIndex != resizeBox.getRowCount() - 1)
+ {
+ resizeBox.selectItem(resizeBox.insertBefore(selectedItem, resizeBox.getNextItem(selectedItem, 2)));
+ }
+}
+
+// Moves the selected item up
+function webdeveloper_moveUp()
+{
+ var pageDocument = document.getElementById("webdeveloper-options-iframe").contentDocument;
+ var resizeBox = pageDocument.getElementById("webdeveloper-listbox");
+ var selectedItem = resizeBox.selectedItem;
+
+ // If an item is selected and it is not at the top
+ if(selectedItem && resizeBox.selectedIndex != 0)
+ {
+ resizeBox.selectItem(resizeBox.insertBefore(selectedItem, resizeBox.getPreviousItem(selectedItem, 1)));
+ }
+}
+
+// Adds a new separator
+function webdeveloper_newSeparator()
+{
+ var pageDocument = document.getElementById("webdeveloper-options-iframe").contentDocument;
+ var listItem = pageDocument.createElement("listitem");
+ var separator = pageDocument.createElement("separator");
+ var toolBox = pageDocument.getElementById("webdeveloper-listbox");
+
+ separator.setAttribute("class", "groove");
+ listItem.appendChild(separator);
+
+ separator = pageDocument.createElement("separator");
+ separator.setAttribute("class", "groove");
+ listItem.appendChild(separator);
+
+ separator = pageDocument.createElement("separator");
+ separator.setAttribute("class", "groove");
+ listItem.appendChild(separator);
+
+ toolBox.selectItem(toolBox.appendChild(listItem));
+ toolBox.ensureElementIsVisible(toolBox.selectedItem);
+}
+
+// Resets the user's options
+function webdeveloper_resetOptions()
+{
+ var promptServiceInterface = Components.interfaces.nsIPromptService;
+ var stringBundle = document.getElementById("webdeveloper-string-bundle");
+
+ // If the reset is confirmed
+ if(Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(promptServiceInterface).confirmEx(null, stringBundle.getString("webdeveloper_resetConfirmation"), stringBundle.getString("webdeveloper_resetConfirmationMessage"), promptServiceInterface.BUTTON_TITLE_YES * promptServiceInterface.BUTTON_POS_0 + promptServiceInterface.BUTTON_TITLE_CANCEL * promptServiceInterface.BUTTON_POS_1, stringBundle.getString("webdeveloper_reset"), null, null, null, {}) == 0)
+ {
+ webdeveloper_optionsDataBoolean = new Array();
+ webdeveloper_optionsDataInteger = new Array();
+ webdeveloper_optionsDataString = new Array();
+
+ webdeveloper_deletePreferenceBranch("webdeveloper.");
+ webdeveloper_setStringPreference("webdeveloper.version", webdeveloper_parseVersion("1.1.4"));
+
+ webdeveloper_configureKeyboardShortcuts(true);
+ webdeveloper_setupDefaultOptions();
+ webdeveloper_setupLocalizedOptions();
+ webdeveloper_initializeOptions(false);
+ }
+}
+
+// Saves the user's options
+function webdeveloper_saveOptions()
+{
+ var parentWindow = null;
+ var option = null;
+ var optionValue = null;
+
+ // Make sure current page is stored
+ webdeveloper_storeOptions();
+
+ // Loop through the boolean options
+ for(option in webdeveloper_optionsDataBoolean)
+ {
+ webdeveloper_setBooleanPreference(option, webdeveloper_optionsDataBoolean[option]);
+ }
+
+ // Loop through the integer options
+ for(option in webdeveloper_optionsDataInteger)
+ {
+ optionValue = webdeveloper_optionsDataInteger[option];
+
+ // If the option value is set
+ if(optionValue)
+ {
+ webdeveloper_setIntegerPreference(option, optionValue);
+ }
+ else if(webdeveloper_isPreferenceSet(option))
+ {
+ webdeveloper_deletePreference(option);
+ }
+ }
+
+ // Loop through the string options
+ for(option in webdeveloper_optionsDataString)
+ {
+ optionValue = webdeveloper_optionsDataString[option];
+
+ // If the option value is set or the preference currently has a value
+ if(optionValue || webdeveloper_isPreferenceSet(option))
+ {
+ webdeveloper_setStringPreference(option, optionValue);
+ }
+ }
+
+ webdeveloper_changeOptions();
+ webdeveloper_configureKeyboardShortcuts(false);
+}
+
+// Stores the user's options to be saved later
+function webdeveloper_storeOptions()
+{
+ var childNodes = null;
+ var description = null;
+ var i = 0;
+ var iFrame = document.getElementById("webdeveloper-options-iframe");
+ var iFrameSrc = iFrame.getAttribute("src");
+ var key = null;
+ var listCell = null;
+ var listItem = null;
+ var pageDocument = iFrame.contentDocument;
+ var path = null;
+ var stringBundle = document.getElementById("webdeveloper-string-bundle");
+
+ // If this is the colors page
+ if(iFrameSrc.indexOf("colors_fonts") != -1)
+ {
+ webdeveloper_optionsDataInteger["webdeveloper.generated.content.font.size"] = pageDocument.getElementById("webdeveloper.generated.content.font.size").value;
+ webdeveloper_optionsDataString["webdeveloper.feature.tooltip.color.background"] = pageDocument.getElementById("webdeveloper.feature.tooltip.color.background").color;
+ webdeveloper_optionsDataString["webdeveloper.feature.tooltip.color.border"] = pageDocument.getElementById("webdeveloper.feature.tooltip.color.border").color;
+ webdeveloper_optionsDataString["webdeveloper.feature.tooltip.color.text"] = pageDocument.getElementById("webdeveloper.feature.tooltip.color.text").color;
+ webdeveloper_optionsDataString["webdeveloper.feature.tooltip.opacity"] = pageDocument.getElementById("webdeveloper.feature.tooltip.opacity").value;
+ }
+ else if(iFrameSrc.indexOf("dashboard") != -1)
+ {
+ var updateFrequency = pageDocument.getElementById("webdeveloper.edit.update.frequency").value;
+
+ webdeveloper_optionsDataBoolean["webdeveloper.dom.inspector.dashboard"] = pageDocument.getElementById("webdeveloper.dom.inspector.dashboard").checked;
+ webdeveloper_optionsDataBoolean["webdeveloper.edit.wrap"] = pageDocument.getElementById("webdeveloper.edit.wrap").checked;
+ webdeveloper_optionsDataBoolean["webdeveloper.error.console.dashboard"] = pageDocument.getElementById("webdeveloper.error.console.dashboard").checked;
+ webdeveloper_optionsDataBoolean["webdeveloper.style.information.dashboard"] = pageDocument.getElementById("webdeveloper.style.information.dashboard").checked;
+ webdeveloper_optionsDataInteger["webdeveloper.edit.font.size"] = pageDocument.getElementById("webdeveloper.edit.font.size").value;
+ webdeveloper_optionsDataString["webdeveloper.edit.color.background"] = pageDocument.getElementById("webdeveloper.edit.color.background").color;
+ webdeveloper_optionsDataString["webdeveloper.edit.color.text"] = pageDocument.getElementById("webdeveloper.edit.color.text").color;
+
+ // If the update frequency is set and is a valid integer and is positive
+ if(updateFrequency && parseInt(updateFrequency) == updateFrequency && updateFrequency >= 0)
+ {
+ webdeveloper_optionsDataInteger["webdeveloper.edit.update.frequency"] = updateFrequency;
+ }
+ else
+ {
+ webdeveloper_optionsDataInteger["webdeveloper.edit.update.frequency"] = 0;
+ }
+ }
+ else if(iFrameSrc.indexOf("general") != -1)
+ {
+ webdeveloper_optionsDataBoolean["webdeveloper.context.hide"] = pageDocument.getElementById("webdeveloper.context.hide").checked;
+ webdeveloper_optionsDataBoolean["webdeveloper.confirmation.dialogs.hide"] = pageDocument.getElementById("webdeveloper.confirmation.dialogs.hide").checked;
+ webdeveloper_optionsDataBoolean["webdeveloper.informational.dialogs.hide"] = pageDocument.getElementById("webdeveloper.informational.dialogs.hide").checked;
+ webdeveloper_optionsDataBoolean["webdeveloper.menu.hide"] = pageDocument.getElementById("webdeveloper.menu.hide").checked;
+ webdeveloper_optionsDataBoolean["webdeveloper.open.tabs"] = pageDocument.getElementById("webdeveloper.open.tabs").checked;
+ webdeveloper_optionsDataBoolean["webdeveloper.open.tabs.background"] = pageDocument.getElementById("webdeveloper.open.tabs.background").checked;
+ webdeveloper_optionsDataString["webdeveloper.toolbar.icons"] = pageDocument.getElementById("webdeveloper.toolbar.icons").value;
+ }
+ else if(iFrameSrc.indexOf("keys") != -1)
+ {
+ var textBox = null;
+ var textBoxes = pageDocument.getElementById("webdeveloper-key-rows").getElementsByTagName("textbox");
+ var textBoxesLength = textBoxes.length;
+
+ // Loop through the text boxes
+ for(i = 0; i < textBoxesLength; i++)
+ {
+ textBox = textBoxes.item(i);
+
+ webdeveloper_optionsDataString[textBox.getAttribute("id")] = textBox.value.trim();
+ }
+ }
+ else if(iFrameSrc.indexOf("miscellaneous") != -1)
+ {
+ webdeveloper_optionsDataBoolean["webdeveloper.information.tidy"] = pageDocument.getElementById("webdeveloper.information.tidy").checked;
+ webdeveloper_optionsDataBoolean["webdeveloper.open.css.console.error"] = pageDocument.getElementById("webdeveloper.open.css.console.error").checked;
+ webdeveloper_optionsDataBoolean["webdeveloper.open.javascript.console.warning"] = pageDocument.getElementById("webdeveloper.open.javascript.console.warning").checked;
+ webdeveloper_optionsDataBoolean["webdeveloper.open.javascript.console.error"] = pageDocument.getElementById("webdeveloper.open.javascript.console.error").checked;
+ webdeveloper_optionsDataString["webdeveloper.populate.form.fields.email"] = pageDocument.getElementById("webdeveloper.populate.form.fields.email").value;
+ }
+ else if(iFrameSrc.indexOf("resize") != -1)
+ {
+ var height = null;
+ var resizeBox = pageDocument.getElementById("webdeveloper-listbox");
+ var resizeCount = webdeveloper_getIntegerPreference("webdeveloper.resize.count", true);
+ var viewport = null;
+ var viewportValue = false;
+ var width = null;
+ var yes = stringBundle.getString("webdeveloper_yes");
+
+ // Loop through the previous resize options
+ for(i = 1; i <= resizeCount; i++)
+ {
+ description = "webdeveloper.resize." + i + ".description";
+ height = "webdeveloper.resize." + i + ".height";
+ width = "webdeveloper.resize." + i + ".width";
+
+ webdeveloper_optionsDataInteger[height] = "";
+ webdeveloper_optionsDataInteger[width] = "";
+ webdeveloper_optionsDataString[description] = "";
+ }
+
+ resizeCount = resizeBox.getRowCount();
+
+ // Loop through the possible resize options
+ for(i = 1; i <= resizeCount; i++)
+ {
+ description = "webdeveloper.resize." + i + ".description";
+ height = "webdeveloper.resize." + i + ".height";
+ listItem = resizeBox.getItemAtIndex(i - 1);
+ childNodes = listItem.childNodes;
+ viewport = "webdeveloper.resize." + i + ".viewport";
+ viewportValue = false;
+ width = "webdeveloper.resize." + i + ".width";
+
+ // If the viewport label is set to yes
+ if(listItem.childNodes[3].getAttribute("label") == yes)
+ {
+ viewportValue = true;
+ }
+
+ webdeveloper_optionsDataBoolean[viewport] = viewportValue;
+ webdeveloper_optionsDataInteger[width] = listItem.childNodes[1].getAttribute("label");
+ webdeveloper_optionsDataInteger[height] = listItem.childNodes[2].getAttribute("label");
+ webdeveloper_optionsDataString[description] = listItem.childNodes[0].getAttribute("label").trim();
+ }
+
+ webdeveloper_optionsDataInteger["webdeveloper.resize.count"] = resizeCount;
+ }
+ else if(iFrameSrc.indexOf("tools") != -1)
+ {
+ var applicationType = stringBundle.getString("webdeveloper_application");
+ var bookmarklet = null;
+ var bookmarkletType = stringBundle.getString("webdeveloper_bookmarklet");
+ var separator = null;
+ var toolBox = pageDocument.getElementById("webdeveloper-listbox");
+ var toolCount = toolBox.getRowCount();
+ var toolPreviousCount = webdeveloper_getIntegerPreference("webdeveloper.tool.count", true);
+ var url = null;
+
+ // Loop through the previous tools
+ for(i = 1; i <= toolCount || i <= toolPreviousCount; i++)
+ {
+ bookmarklet = "webdeveloper.tool." + i + ".bookmarklet";
+ description = "webdeveloper.tool." + i + ".description";
+ key = "webdeveloper.tool." + i + ".key";
+ path = "webdeveloper.tool." + i + ".path";
+ separator = "webdeveloper.tool." + i + ".separator";
+ url = "webdeveloper.tool." + i + ".url";
+
+ webdeveloper_optionsDataBoolean[separator] = false;
+ webdeveloper_optionsDataString[bookmarklet] = "";
+ webdeveloper_optionsDataString[description] = "";
+ webdeveloper_optionsDataString[key] = "";
+ webdeveloper_optionsDataString[path] = "";
+ webdeveloper_optionsDataString[url] = "";
+ }
+
+ // Loop through the possible tools
+ for(i = 1; i <= toolCount; i++)
+ {
+ bookmarklet = "webdeveloper.tool." + i + ".bookmarklet";
+ description = "webdeveloper.tool." + i + ".description";
+ listItem = toolBox.getItemAtIndex(i - 1);
+ childNodes = listItem.childNodes;
+ listCell = listItem.childNodes[0];
+ key = "webdeveloper.tool." + i + ".key";
+ path = "webdeveloper.tool." + i + ".path";
+ separator = "webdeveloper.tool." + i + ".separator";
+ url = "webdeveloper.tool." + i + ".url";
+
+ // If the first cell is a separator
+ if(listCell.tagName == "separator")
+ {
+ webdeveloper_optionsDataBoolean[separator] = true;
+ }
+ else
+ {
+ webdeveloper_optionsDataString[description] = listCell.getAttribute("label").trim();
+ webdeveloper_optionsDataString[key] = listItem.childNodes[2].getAttribute("label").trim();
+
+ // If the tool type equals application
+ if(listCell.getAttribute("type") == applicationType)
+ {
+ webdeveloper_optionsDataString[path] = listItem.childNodes[1].getAttribute("label").trim();
+ }
+ else if(listCell.getAttribute("type") == bookmarkletType)
+ {
+ webdeveloper_optionsDataString[bookmarklet] = listItem.childNodes[1].getAttribute("label").trim();
+ }
+ else
+ {
+ webdeveloper_optionsDataString[url] = listItem.childNodes[1].getAttribute("label").trim();
+ }
+ }
+ }
+
+ webdeveloper_optionsDataInteger["webdeveloper.tool.count"] = toolCount;
+ }
+ else if(iFrameSrc.indexOf("validation") != -1)
+ {
+ var validateLocalCSSProfile = "css21";
+
+ // If the validate local CSS 3 radio button is selected
+ if(pageDocument.getElementById("webdeveloper-validate-local-css3-radio").selected)
+ {
+ validateLocalCSSProfile = "css3";
+ }
+
+ webdeveloper_optionsDataBoolean["webdeveloper.validate.local.accessibility.section508"] = pageDocument.getElementById("webdeveloper.validate.local.accessibility.section508").checked;
+ webdeveloper_optionsDataBoolean["webdeveloper.validate.local.accessibility.wai.priority1"] = pageDocument.getElementById("webdeveloper.validate.local.accessibility.wai.priority1").checked;
+ webdeveloper_optionsDataBoolean["webdeveloper.validate.local.accessibility.wai.priority2"] = pageDocument.getElementById("webdeveloper.validate.local.accessibility.wai.priority2").checked;
+ webdeveloper_optionsDataBoolean["webdeveloper.validate.local.accessibility.wai.priority3"] = pageDocument.getElementById("webdeveloper.validate.local.accessibility.wai.priority3").checked;
+ webdeveloper_optionsDataBoolean["webdeveloper.validate.local.html.show.outline"] = pageDocument.getElementById("webdeveloper.validate.local.html.show.outline").checked;
+ webdeveloper_optionsDataBoolean["webdeveloper.validate.local.html.show.parse.tree"] = pageDocument.getElementById("webdeveloper.validate.local.html.show.parse.tree").checked;
+ webdeveloper_optionsDataBoolean["webdeveloper.validate.local.html.show.source"] = pageDocument.getElementById("webdeveloper.validate.local.html.show.source").checked;
+ webdeveloper_optionsDataString["webdeveloper.validate.local.css.profile"] = validateLocalCSSProfile;
+ }
+ else if(iFrameSrc.indexOf("view_source") != -1)
+ {
+ var viewSourceWithBox = pageDocument.getElementById("webdeveloper-listbox");
+ var viewSourceWithCount = viewSourceWithBox.getRowCount();
+ var viewSourceWithPreviousCount = webdeveloper_getIntegerPreference("webdeveloper.view.source.with.count", true);
+
+ // Loop through the previous view source with options
+ for(i = 1; i <= viewSourceWithCount || i <= viewSourceWithPreviousCount; i++)
+ {
+ description = "webdeveloper.view.source.with." + i + ".description";
+ key = "webdeveloper.view.source.with." + i + ".key";
+ path = "webdeveloper.view.source.with." + i + ".path";
+
+ webdeveloper_optionsDataString[description] = "";
+ webdeveloper_optionsDataString[key] = "";
+ webdeveloper_optionsDataString[path] = "";
+ }
+
+ // Loop through the possible view source with options
+ for(i = 1; i <= viewSourceWithCount; i++)
+ {
+ description = "webdeveloper.view.source.with." + i + ".description";
+ listItem = viewSourceWithBox.getItemAtIndex(i - 1);
+ childNodes = listItem.childNodes;
+ key = "webdeveloper.view.source.with." + i + ".key";
+ path = "webdeveloper.view.source.with." + i + ".path";
+
+ webdeveloper_optionsDataString[description] = listItem.childNodes[0].getAttribute("label").trim();
+ webdeveloper_optionsDataString[key] = listItem.childNodes[2].getAttribute("label").trim();
+ webdeveloper_optionsDataString[path] = listItem.childNodes[1].getAttribute("label").trim();
+ }
+
+ webdeveloper_optionsDataBoolean["webdeveloper.view.source.tab"] = pageDocument.getElementById("webdeveloper.view.source.tab").checked;
+ webdeveloper_optionsDataInteger["webdeveloper.view.source.with.count"] = viewSourceWithCount;
+ }
+}
+
+// Returns the index of the given page name
+function webdeveloper_translatePageNameToIndex(pageName)
+{
+ // If the page name is set
+ if(pageName)
+ {
+ // Switch on the page name
+ switch(pageName)
+ {
+ case "general":
+ return 0;
+ case "colors-fonts":
+ return 1;
+ case "dashboard":
+ return 2;
+ case "keys":
+ return 3;
+ case "miscellaneous":
+ return 4;
+ case "resize":
+ return 5;
+ case "tools":
+ return 6;
+ case "validation":
+ return 7;
+ case "view-source":
+ return 8;
+ default:
+ return 0;
+ }
+ }
+
+ return 0;
+}
+
+// Updates the tab option status
+function webdeveloper_updateTabOptionStatus()
+{
+ var disabled = true;
+ var pageDocument = document.getElementById("webdeveloper-options-iframe").contentDocument;
+
+ // If open tabs is checked
+ if(pageDocument.getElementById("webdeveloper.open.tabs").checked)
+ {
+ disabled = false;
+ }
+
+ pageDocument.getElementById("webdeveloper.open.tabs.background").disabled = disabled;
+}
\ No newline at end of file