X-Git-Url: http://git.euphorik.ch/?p=pompage.git;a=blobdiff_plain;f=doc%2Fwebdeveloper%2Foptions%2Foptions.js;fp=doc%2Fwebdeveloper%2Foptions%2Foptions.js;h=65c5cee62fd7c289525a25ea70b801e1d1333e41;hp=0000000000000000000000000000000000000000;hb=c3b0deb3d8c9f439739c79806e915c29bc1d4b84;hpb=cff6539539a79e014f6ac8df46716cafce2c8472 diff --git a/doc/webdeveloper/options/options.js b/doc/webdeveloper/options/options.js new file mode 100644 index 0000000..65c5cee --- /dev/null +++ b/doc/webdeveloper/options/options.js @@ -0,0 +1,1861 @@ +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