git-svn-id: svn://euphorik.ch/pompage@47 02bbb61a-6d21-0410-aba0-cb053bdfd66a
[pompage.git] / doc / webdeveloper / forms.js
diff --git a/doc/webdeveloper/forms.js b/doc/webdeveloper/forms.js
deleted file mode 100644 (file)
index 1cc56c4..0000000
+++ /dev/null
@@ -1,1176 +0,0 @@
-// Clears all radio buttons
-function webdeveloper_clearRadioButtons()
-{
-    var clearedRadioButtons = 0;
-    var documentList        = webdeveloper_getDocuments(webdeveloper_getContentWindow());
-    var documentLength      = documentList.length;
-    var inputElement        = null;
-    var inputElementList    = null;
-    var inputElementsLength = null;
-    var pageDocument        = null;
-
-    // Loop through the documents
-    for(var i = 0; i < documentLength; i++)
-    {
-        pageDocument        = documentList[i];
-        inputElementList    = pageDocument.getElementsByTagName("input");
-        inputElementsLength = inputElementList.length;
-
-        // Loop through all the input tags
-        for(var j = 0; j < inputElementsLength; j++)
-        {
-            inputElement = inputElementList[j];
-
-            // If the element is a radio button
-            if(inputElement.hasAttribute("type") && inputElement.getAttribute("type").toLowerCase() == "radio")
-            {
-                inputElement.checked = false;
-
-                clearedRadioButtons++;
-            }
-            else
-            {
-                // This stops the fields reordering
-                inputElement.setAttribute("type", inputElement.getAttribute("type"));
-            }
-        }
-    }
-
-    // If the hide informational dialogs preference is not set
-    if(!webdeveloper_getBooleanPreference("webdeveloper.informational.dialogs.hide", true))
-    {
-        var stringBundle = document.getElementById("webdeveloper-string-bundle");
-        var title        = stringBundle.getString("webdeveloper_clearRadioButtons");
-
-        // If one radio button was cleared
-        if(clearedRadioButtons == 1)
-        {
-            webdeveloper_informationalDialog(title, stringBundle.getFormattedString("webdeveloper_clearRadioButtonsSingleResult"));
-        }
-        else
-        {
-            webdeveloper_informationalDialog(title, stringBundle.getFormattedString("webdeveloper_clearRadioButtonsMultipleResult", [clearedRadioButtons]));
-        }
-    }
-}
-
-// Converts form methods
-function webdeveloper_convertFormMethods(method)
-{
-    var convertedForms         = 0;
-    var displayFormDetailsMenu = document.getElementById("webdeveloper-display-form-details-menu");
-    var documentList           = webdeveloper_getDocuments(webdeveloper_getContentWindow());
-    var documentLength         = documentList.length;
-    var form                   = null;
-    var formLength             = null;
-    var formList               = null;
-    var pageDocument           = null;
-
-    // Loop through the documents
-    for(var i = 0; i < documentLength; i++)
-    {
-        pageDocument = documentList[i];
-        formList     = pageDocument.forms;
-        formLength   = formList.length;
-
-        // Loop through all the forms
-        for(var j = 0; j < formLength; j++)
-        {
-            form = formList[j];
-
-            // If this form is not already the right method
-            if((!form.hasAttribute("method") && method == "post") || (form.hasAttribute("method") && form.getAttribute("method").toLowerCase() != method))
-            {
-                form.setAttribute("method", method);
-                convertedForms++;
-            }
-        }
-    }
-
-    // Reapply the display form details style sheet if it is currently on - fixes bug with form method not updating
-    if(displayFormDetailsMenu.getAttribute("checked"))
-    {
-        webdeveloper_removeStyleSheet("webdeveloper-display-form-details", false);
-        webdeveloper_displayFormDetails(displayFormDetailsMenu, false);
-    }
-
-    // If the hide informational dialogs preference is not set
-    if(!webdeveloper_getBooleanPreference("webdeveloper.informational.dialogs.hide", true))
-    {
-        var stringBundle = document.getElementById("webdeveloper-string-bundle");
-        var title        = stringBundle.getString("webdeveloper_convertFormMethods");
-
-        // If one form was converted
-        if(convertedForms == 1)
-        {
-            webdeveloper_informationalDialog(title, stringBundle.getFormattedString("webdeveloper_convertFormMethodsSingleResult", [method.toUpperCase()]));
-        }
-        else
-        {
-            webdeveloper_informationalDialog(title, stringBundle.getFormattedString("webdeveloper_convertFormMethodsMultipleResult", [convertedForms, method.toUpperCase()]));
-        }
-    }
-}
-
-// Converts select elements to text inputs
-function webdeveloper_convertSelectElementsToTextInputs()
-{
-    var convertedSelectElements = 0;
-    var displayFormDetailsMenu  = document.getElementById("webdeveloper-display-form-details-menu");
-    var documentList            = webdeveloper_getDocuments(webdeveloper_getContentWindow());
-    var documentLength          = documentList.length;
-    var inputElement            = null;
-    var pageDocument            = null;
-    var parentNode              = null;
-    var selectElement           = null;
-    var selectElements          = null;
-
-    // Loop through the documents
-    for(var i = 0; i < documentLength; i++)
-    {
-        pageDocument         = documentList[i];
-        selectElements       = pageDocument.getElementsByTagName("select");
-
-        // While there are select elements
-        while(selectElements.length > 0)
-        {
-            inputElement  = pageDocument.createElement("input");
-            selectElement = selectElements[0];
-            parentNode    = selectElement.parentNode;
-
-            inputElement.value = selectElement.value;
-
-            // If the select element has an id attribute
-            if(selectElement.hasAttribute("id"))
-            {
-                inputElement.setAttribute("id", selectElement.getAttribute("id"));
-            }
-
-            // If the select element has a name attribute
-            if(selectElement.hasAttribute("name"))
-            {
-                inputElement.setAttribute("name", selectElement.getAttribute("name"));
-            }
-
-            inputElement.setAttribute("type", "text");
-
-            parentNode.insertBefore(inputElement, selectElement);
-            webdeveloper_removeElement(selectElement);
-            convertedSelectElements++;
-        }
-    }
-
-    // Reapply the display form details style sheet if it is currently on - fixes bug with form method not updating
-    if(displayFormDetailsMenu.getAttribute("checked"))
-    {
-        webdeveloper_removeStyleSheet("webdeveloper-display-form-details", false);
-        webdeveloper_displayFormDetails(displayFormDetailsMenu, false);
-    }
-
-    // If the hide informational dialogs preference is not set
-    if(!webdeveloper_getBooleanPreference("webdeveloper.informational.dialogs.hide", true))
-    {
-        var stringBundle = document.getElementById("webdeveloper-string-bundle");
-        var title        = stringBundle.getString("webdeveloper_convertSelectElementsToTextInputs");
-
-        // If one select element was converted
-        if(convertedSelectElements == 1)
-        {
-            webdeveloper_informationalDialog(title, stringBundle.getString("webdeveloper_convertSelectElementsToTextInputsSingleResult"));
-        }
-        else
-        {
-            webdeveloper_informationalDialog(title, stringBundle.getFormattedString("webdeveloper_convertSelectElementsToTextInputsMultipleResult", [convertedSelectElements]));
-        }
-    }
-}
-
-// Displays/hides the form details for the page
-function webdeveloper_displayFormDetails(element)
-{
-    var buttonElement          = null;
-    var buttonElementList      = null;
-    var buttonElementsLength   = null;
-    var display                = element.getAttribute("checked");
-    var documentList           = webdeveloper_getDocuments(webdeveloper_getContentWindow());
-    var documentLength         = documentList.length;
-    var inputElement           = null;
-    var inputElementList       = null;
-    var inputElementsLength    = null;
-    var pageDocument           = null;
-    var selectElement          = null;
-    var selectElementList      = null;
-    var selectElementsLength   = null;
-    var spanElement            = null;
-    var text                   = null;
-    var textAreaElement        = null;
-    var textAreaElementList    = null;
-    var textAreaElementsLength = null;
-
-    // Loop through the documents
-    for(var i = 0; i < documentLength; i++)
-    {
-        pageDocument        = documentList[i];
-        inputElementList    = pageDocument.getElementsByTagName("input");
-        inputElementsLength = inputElementList.length;
-
-        // Need to do this to stop the feature running twice
-        webdeveloper_removeAllElementsByXPath(pageDocument, "//span[@class='webdeveloper-display-form-details']");
-
-        // Loop through all the input tags
-        for(var j = 0; j < inputElementsLength; j++)
-        {
-            inputElement = inputElementList[j];
-
-            // If the input element is unhidden - need to do this to stop it running twice
-            if(inputElement.className.indexOf("webdeveloper-unhidden") != -1)
-            {
-                inputElement.className = webdeveloper_removeSubstring(inputElement.className, "webdeveloper-unhidden");
-
-                inputElement.setAttribute("type", "hidden");
-            }
-
-            // If displaying
-            if(display)
-            {
-                spanElement = pageDocument.createElement("span");
-                text        = "<input";
-
-                // If the element is hidden
-                if(inputElement.hasAttribute("type") && inputElement.getAttribute("type").toLowerCase() == "hidden")
-                {
-                    inputElement.className += " webdeveloper-unhidden";
-
-                    inputElement.setAttribute("type", "text");
-                }
-
-                // This stops the fields reordering
-                inputElement.setAttribute("type", inputElement.getAttribute("type"));
-
-                // If the element has an id attribute
-                if(inputElement.hasAttribute("id"))
-                {
-                    text += ' id="' + inputElement.getAttribute("id") + '"';
-                }
-
-                // If the element has an name attribute
-                if(inputElement.hasAttribute("name"))
-                {
-                    text += ' name="' + inputElement.getAttribute("name") + '"';
-                }
-
-                // If the element is a checkbox or radio button
-                if(inputElement.hasAttribute("type") && (inputElement.getAttribute("type").toLowerCase() == "checkbox" || inputElement.getAttribute("type").toLowerCase() == "radio"))
-                {
-                    text += ' value="' + inputElement.value + '"';
-                }
-
-                // If the element has a size attribute
-                if(inputElement.hasAttribute("size"))
-                {
-                    text += ' size="' + inputElement.getAttribute("size") + '"';
-                }
-
-                // If the element has a maxlength attribute
-                if(inputElement.hasAttribute("maxlength"))
-                {
-                    text += ' maxlength="' + inputElement.getAttribute("maxlength") + '"';
-                }
-
-                text += ">";
-
-                spanElement.setAttribute("class", "webdeveloper-display-form-details");
-                spanElement.setAttribute("title", text);
-                spanElement.appendChild(pageDocument.createTextNode(text));
-                inputElement.parentNode.insertBefore(spanElement, inputElement);
-            }
-        }
-
-        // If displaying
-        if(display)
-        {
-            buttonElementList      = pageDocument.getElementsByTagName("button");
-            buttonElementsLength   = buttonElementList.length;
-            selectElementList      = pageDocument.getElementsByTagName("select");
-            selectElementsLength   = selectElementList.length;
-            textAreaElementList    = pageDocument.getElementsByTagName("textarea");
-            textAreaElementsLength = textAreaElementList.length;
-
-            // Loop through all the button tags
-            for(j = 0; j < buttonElementsLength; j++)
-            {
-                buttonElement = buttonElementList[j];
-                spanElement   = pageDocument.createElement("span");
-                text          = "<button";
-
-                // If the element has an id attribute
-                if(buttonElement.hasAttribute("id"))
-                {
-                    text += ' id="' + buttonElement.getAttribute("id") + '"';
-                }
-
-                // If the element has an name attribute
-                if(buttonElement.hasAttribute("name"))
-                {
-                    text += ' name="' + buttonElement.getAttribute("name") + '"';
-                }
-
-                text += ">";
-
-                spanElement.setAttribute("class", "webdeveloper-display-form-details");
-                spanElement.setAttribute("title", text);
-                spanElement.appendChild(pageDocument.createTextNode(text));
-                buttonElement.parentNode.insertBefore(spanElement, buttonElement);
-            }
-
-            // Loop through all the select tags
-            for(j = 0; j < selectElementsLength; j++)
-            {
-                selectElement = selectElementList[j];
-                spanElement   = pageDocument.createElement("span");
-                text          = "<select";
-
-                // If the element has an id attribute
-                if(selectElement.hasAttribute("id"))
-                {
-                    text += ' id="' + selectElement.getAttribute("id") + '"';
-                }
-
-                // If the element has an name attribute
-                if(selectElement.hasAttribute("name"))
-                {
-                    text += ' name="' + selectElement.getAttribute("name") + '"';
-                }
-
-                text += ">";
-
-                spanElement.setAttribute("class", "webdeveloper-display-form-details");
-                spanElement.setAttribute("title", text);
-                spanElement.appendChild(pageDocument.createTextNode(text));
-                selectElement.parentNode.insertBefore(spanElement, selectElement);
-            }
-
-            // Loop through all the textarea tags
-            for(j = 0; j < textAreaElementsLength; j++)
-            {
-                textAreaElement = textAreaElementList[j];
-                spanElement     = pageDocument.createElement("span");
-                text            = "<textarea";
-
-                // If the element has an id attribute
-                if(textAreaElement.hasAttribute("id"))
-                {
-                    text += ' id="' + textAreaElement.getAttribute("id") + '"';
-                }
-
-                // If the element has an name attribute
-                if(textAreaElement.hasAttribute("name"))
-                {
-                    text += ' name="' + textAreaElement.getAttribute("name") + '"';
-                }
-
-                text += ">";
-
-                spanElement.setAttribute("class", "webdeveloper-display-form-details");
-                spanElement.setAttribute("title", text);
-                spanElement.appendChild(pageDocument.createTextNode(text));
-                textAreaElement.parentNode.insertBefore(spanElement, textAreaElement);
-            }
-        }
-    }
-
-    webdeveloper_toggleStyleSheet(element, "chrome://webdeveloper/content/stylesheets/display_form_details.css", "webdeveloper-display-form-details");
-    webdeveloper_toggleFeatureTooltipStyles(element, "webdeveloper-display-form-details-tooltips", "*:before, span.webdeveloper-display-form-details");
-}
-
-// Enables form auto completion
-function webdeveloper_enableFormAutoCompletion()
-{
-    var autoCompleteElements       = null;
-    var autoCompleteElementsLength = null;
-    var documentList               = webdeveloper_getDocuments(webdeveloper_getContentWindow());
-    var documentLength             = documentList.length;
-    var enabledElements            = 0;
-
-    // Loop through the documents
-    for(var i = 0; i < documentLength; i++)
-    {
-        autoCompleteElements       = webdeveloper_evaluateXPath(documentList[i], "//*[@autocomplete]");
-        autoCompleteElementsLength = autoCompleteElements.length;
-
-        // Loop through the auto complete elements
-        for(var j = 0; j < autoCompleteElementsLength; j++)
-        {
-            autoCompleteElements[j].removeAttribute("autocomplete");
-            enabledElements++;
-        }
-    }
-
-    // If the hide informational dialogs preference is not set
-    if(!webdeveloper_getBooleanPreference("webdeveloper.informational.dialogs.hide", true))
-    {
-        var stringBundle = document.getElementById("webdeveloper-string-bundle");
-        var title        = stringBundle.getString("webdeveloper_enableAutoCompletion");
-
-        // If one element was enabled
-        if(enabledElements == 1)
-        {
-            webdeveloper_informationalDialog(title, stringBundle.getString("webdeveloper_enableAutoCompletionSingleResult"));
-        }
-        else
-        {
-            webdeveloper_informationalDialog(title, stringBundle.getFormattedString("webdeveloper_enableAutoCompletionMultipleResult", [enabledElements]));
-        }
-    }
-}
-
-// Enables all the form fields
-function webdeveloper_enableFormFields()
-{
-    var documentList             = webdeveloper_getDocuments(webdeveloper_getContentWindow());
-    var documentLength           = documentList.length;
-    var enabledFields            = 0;
-    var form                     = null;
-    var formElement              = null;
-    var formElementList          = null;
-    var formElements             = null;
-    var formElementsLength       = null;
-    var formLength               = null;
-    var formList                 = null;
-    var imageInputElement        = null;
-    var imageInputElements       = null;
-    var imageInputElementsLength = null;
-
-    // Loop through the documents
-    for(var i = 0; i < documentLength; i++)
-    {
-        formList     = documentList[i].forms;
-        formLength   = formList.length;
-
-        // Loop through the forms
-        for(var j = 0; j < formLength; j++)
-        {
-            form                     = formList[j];
-            formElementList          = new Array();
-            formElements             = form.elements;
-            formElementsLength       = formElements.length;
-            imageInputElements       = webdeveloper_evaluateXPath(form, "//input[@type='image']");
-            imageInputElementsLength = imageInputElements.length;
-
-            // Loop through the form elements
-            for(var k = 0; k < formElementsLength; k++)
-            {
-                formElementList.push(formElements[k]);
-            }
-
-            // Loop through the image input elements
-            for(k = 0; k < imageInputElementsLength; k++)
-            {
-                formElementList.push(imageInputElements[k]);
-            }
-
-            formElementsLength = formElementList.length;
-
-            // Loop through the form elements
-            for(k = 0; k < formElementsLength; k++)
-            {
-                formElement = formElementList[k];
-
-                // If the form element is disabled
-                if(formElement.disabled)
-                {
-                    formElement.disabled = false;
-                    enabledFields++;
-                }
-            }
-        }
-    }
-
-    // If the hide informational dialogs preference is not set
-    if(!webdeveloper_getBooleanPreference("webdeveloper.informational.dialogs.hide", true))
-    {
-        var stringBundle = document.getElementById("webdeveloper-string-bundle");
-        var title        = stringBundle.getString("webdeveloper_enableFormFields");
-
-        // If one field was enabled
-        if(enabledFields == 1)
-        {
-            webdeveloper_informationalDialog(title, stringBundle.getString("webdeveloper_enableFormFieldsSingleResult"));
-        }
-        else
-        {
-            webdeveloper_informationalDialog(title, stringBundle.getFormattedString("webdeveloper_enableFormFieldsMultipleResult", [enabledFields]));
-        }
-    }
-}
-
-// Makes all the form fields writable
-function webdeveloper_makeFormFieldsWritable()
-{
-    var documentList           = webdeveloper_getDocuments(webdeveloper_getContentWindow());
-    var documentLength         = documentList.length;
-    var readOnlyElements       = null;
-    var readOnlyElementsLength = null;
-    var writableFields         = 0;
-
-    // Loop through the documents
-    for(var i = 0; i < documentLength; i++)
-    {
-        readOnlyElements       = webdeveloper_evaluateXPath(documentList[i], "//*[@readonly]");
-        readOnlyElementsLength = readOnlyElements.length;
-
-        // Loop through all the input tags
-        for(var j = 0; j < readOnlyElementsLength; j++)
-        {
-            readOnlyElements[j].removeAttribute("readonly");
-            writableFields++;
-        }
-    }
-
-    // If the hide informational dialogs preference is not set
-    if(!webdeveloper_getBooleanPreference("webdeveloper.informational.dialogs.hide", true))
-    {
-        var stringBundle = document.getElementById("webdeveloper-string-bundle");
-        var title        = stringBundle.getString("webdeveloper_makeFormFieldsWritable");
-
-        // If one field was made writable
-        if(writableFields == 1)
-        {
-            webdeveloper_informationalDialog(title, stringBundle.getString("webdeveloper_makeFormFieldsWritableSingleResult"));
-        }
-        else
-        {
-            webdeveloper_informationalDialog(title, stringBundle.getFormattedString("webdeveloper_makeFormFieldsWritableMultipleResult", [writableFields]));
-        }
-    }
-}
-
-// Populates the form fields on the page
-function webdeveloper_populateFormFields()
-{
-    var documentList           = webdeveloper_getDocuments(webdeveloper_getContentWindow());
-    var documentLength         = documentList.length;
-    var inputElement           = null;
-    var inputElementList       = null;
-    var inputElementName       = null;
-    var inputElementsLength    = null;
-    var inputElementType       = null;
-    var option                 = null;
-    var options                = null;
-    var optionsLength          = null;
-    var pageDocument           = null;
-    var selectElement          = null;
-    var selectElementList      = null;
-    var selectElementsLength   = null;
-    var textAreaElement        = null;
-    var textAreaElementList    = null;
-    var textAreaElementsLength = null;
-
-    // Loop through the documents
-    for(var i = 0; i < documentLength; i++)
-    {
-        pageDocument           = documentList[i];
-        inputElementList       = pageDocument.getElementsByTagName("input");
-        inputElementsLength    = inputElementList.length;
-        selectElementList      = pageDocument.getElementsByTagName("select");
-        selectElementsLength   = selectElementList.length;
-        textAreaElementList    = pageDocument.getElementsByTagName("textarea");
-        textAreaElementsLength = textAreaElementList.length;
-
-        // Loop through all the input tags
-        for(var j = 0; j < inputElementsLength; j++)
-        {
-            inputElement      = inputElementList[j];
-            inputElementType  = inputElement.getAttribute("type");
-
-            // If the input element is not disabled
-            if(!inputElement.disabled)
-            {
-                // If the input element value is not set and the type is not set or is password or text
-                if(inputElement.value.trim() == "" && (!inputElementType || inputElementType == "password" || inputElementType == "text"))
-                {
-                    inputElementName = inputElement.getAttribute("name");
-
-                    // If the input element type is text, the name contains email and the populate form fields email preference is set
-                    if(inputElementType == "text" && inputElementName.toLowerCase().indexOf("email") != -1 && webdeveloper_isPreferenceSet("webdeveloper.populate.form.fields.email"))
-                    {
-                        inputElement.value = webdeveloper_getStringPreference("webdeveloper.populate.form.fields.email", true);
-                    }
-                    else if(inputElementType == "password")
-                    {
-                        inputElement.value = "password";
-                    }
-                    else
-                    {
-                        inputElement.value = inputElementName;
-                    }
-                }
-                else if(inputElementType == "checkbox" || inputElementType == "radio")
-                {
-                    inputElement.checked = true;
-                }
-            }
-        }
-
-        // Loop through all the select tags
-        for(j = 0; j < selectElementsLength; j++)
-        {
-            selectElement = selectElementList[j];
-
-            // If the select element is not disabled and the value is not set
-            if(!selectElement.disabled && selectElement.value.trim() == "")
-            {
-                options       = selectElement.options;
-                optionsLength = options.length;
-
-                // Loop through the options
-                for(var k = 0; k < optionsLength; k++)
-                {
-                    option = options.item(k);
-
-                    // If the optionis set and the option text and option value are not empty
-                    if(option && option.text.trim() != "" && option.value.trim() != "")
-                    {
-                        selectElement.selectedIndex = k;
-
-                        break;
-                    }
-                }
-            }
-        }
-
-        // Loop through all the text area tags
-        for(j = 0; j < textAreaElementsLength; j++)
-        {
-            textAreaElement = textAreaElementList[j];
-
-            // If the text area element is not disabled and the value is not set
-            if(!textAreaElement.disabled && textAreaElement.value.trim() == "")
-            {
-                textAreaElement.value = textAreaElement.getAttribute("name");
-            }
-        }
-    }
-}
-
-// Removes all maximum lengths on form elements
-function webdeveloper_removeMaximumLengths()
-{
-    var documentList                = webdeveloper_getDocuments(webdeveloper_getContentWindow());
-    var documentLength              = documentList.length;
-    var maximumLengthElements       = null;
-    var maximumLengthElementsLength = null;
-    var removed                     = 0;
-
-    // Loop through the documents
-    for(var i = 0; i < documentLength; i++)
-    {
-        maximumLengthElements       = webdeveloper_evaluateXPath(documentList[i], "//input[@maxlength]");
-        maximumLengthElementsLength = maximumLengthElements.length;
-
-        // Loop through all the input tags
-        for(var j = 0; j < maximumLengthElementsLength; j++)
-        {
-            maximumLengthElements[j].removeAttribute("maxlength");
-            removed++;
-        }
-    }
-
-    // If the hide informational dialogs preference is not set
-    if(!webdeveloper_getBooleanPreference("webdeveloper.informational.dialogs.hide", true))
-    {
-        var stringBundle = document.getElementById("webdeveloper-string-bundle");
-        var title        = stringBundle.getString("webdeveloper_removeMaximumLengths");
-
-        // If one maxlength was removed
-        if(removed == 1)
-        {
-            webdeveloper_informationalDialog(title, stringBundle.getString("webdeveloper_removeMaximumLengthsSingleResult"));
-        }
-        else
-        {
-            webdeveloper_informationalDialog(title, stringBundle.getFormattedString("webdeveloper_removeMaximumLengthsMultipleResult", [removed]));
-        }
-    }
-}
-
-// Shows all passwords on a form
-function webdeveloper_showPasswords()
-{
-    var documentList        = webdeveloper_getDocuments(webdeveloper_getContentWindow());
-    var documentLength      = documentList.length;
-    var inputElement        = null;
-    var inputElementList    = null;
-    var inputElementsLength = null;
-    var pageDocument        = null;
-    var shownPasswords      = 0;
-
-    // Loop through the documents
-    for(var i = 0; i < documentLength; i++)
-    {
-        pageDocument        = documentList[i];
-        inputElementList    = pageDocument.getElementsByTagName("input");
-        inputElementsLength = inputElementList.length;
-
-        // Loop through all the input tags
-        for(var j = 0; j < inputElementsLength; j++)
-        {
-            inputElement = inputElementList[j];
-
-            // If the element is password
-            if(inputElement.hasAttribute("type") && inputElement.getAttribute("type").toLowerCase() == "password")
-            {
-                inputElement.setAttribute("type", "text");
-                shownPasswords++;
-            }
-            else
-            {
-                // This stops the fields reordering
-                inputElement.setAttribute("type", inputElement.getAttribute("type"));
-            }
-        }
-    }
-
-    // If the hide informational dialogs preference is not set
-    if(!webdeveloper_getBooleanPreference("webdeveloper.informational.dialogs.hide", true))
-    {
-        var stringBundle = document.getElementById("webdeveloper-string-bundle");
-        var title        = stringBundle.getString("webdeveloper_showPasswords");
-
-        // If one password was shown
-        if(shownPasswords == 1)
-        {
-            webdeveloper_informationalDialog(title, stringBundle.getString("webdeveloper_showPasswordsSingleResult"));
-        }
-        else
-        {
-            webdeveloper_informationalDialog(title, stringBundle.getFormattedString("webdeveloper_showPasswordsMultipleResult", [shownPasswords]));
-        }
-    }
-}
-
-// Updates the forms menu
-function webdeveloper_updateFormsMenu(suffix)
-{
-    webdeveloper_configureElementByAppliedStyle(document.getElementById("webdeveloper-display-form-details-" + suffix), "checked", "webdeveloper-display-form-details");
-}
-
-// Displays all the forms for the page
-function webdeveloper_viewFormInformation()
-{
-    var cellDataElement          = null;
-    var cellHeaderElement        = null;
-    var divElement               = null;
-    var documentList             = webdeveloper_getDocuments(webdeveloper_getContentWindow());
-    var documentLength           = documentList.length;
-    var documentURL              = null;
-    var elementStates            = null;
-    var elementStatesLength      = null;
-    var elementType              = null;
-    var elementValue             = null;
-    var form                     = null;
-    var formElement              = null;
-    var formElementId            = null;
-    var formElementList          = null;
-    var formElements             = null;
-    var formElementsLength       = null;
-    var formLength               = null;
-    var formList                 = null;
-    var imageInputElements       = null;
-    var imageInputElementsLength = null;
-    var labelElement             = null;
-    var labelLength              = null;
-    var labelList                = null;
-    var labelValue               = null;
-    var linkElement              = null;
-    var oldTab                   = getBrowser().selectedTab;
-    var oldURL                   = getBrowser().currentURI.spec;
-    var generatedDocument        = webdeveloper_generateDocument("");
-    var bodyElement              = webdeveloper_getDocumentBodyElement(generatedDocument);
-    var headElement              = webdeveloper_getDocumentHeadElement(generatedDocument);
-    var headerElement            = generatedDocument.createElement("h1");
-    var pageDocument             = null;
-    var pElement                 = null;
-    var preElement               = null;
-    var scriptElement            = generatedDocument.createElement("script");
-    var spanElement              = null;
-    var stringBundle             = document.getElementById("webdeveloper-string-bundle");
-    var tableElement             = null;
-    var tableRowElement          = null;
-    var title                    = stringBundle.getFormattedString("webdeveloper_viewFormInformationTitle", [oldURL]);
-
-    generatedDocument.title = title;
-
-    webdeveloper_addGeneratedStyles(generatedDocument);
-
-    headerElement.appendChild(generatedDocument.createTextNode(title));
-    bodyElement.appendChild(headerElement);
-
-    webdeveloper_addGeneratedTools(generatedDocument);
-
-    // Loop through the documents
-    for(var i = 0; i < documentLength; i++)
-    {
-        divElement    = generatedDocument.createElement("div");
-        headerElement = generatedDocument.createElement("h2");
-        linkElement   = generatedDocument.createElement("a");
-        pageDocument  = documentList[i];
-        documentURL   = pageDocument.documentURI;
-        formList      = pageDocument.forms;
-        formLength    = formList.length;
-        labelList     = pageDocument.getElementsByTagName("label");
-        labelLength   = labelList.length;
-        spanElement   = generatedDocument.createElement("span");
-
-        linkElement.setAttribute("href", documentURL);
-        linkElement.appendChild(generatedDocument.createTextNode(documentURL));
-        headerElement.appendChild(linkElement);
-        bodyElement.appendChild(headerElement);
-
-        headerElement = generatedDocument.createElement("h3");
-
-        spanElement.setAttribute("class", "expanded pivot");
-        headerElement.appendChild(spanElement);
-
-        // If there is one form
-        if(formLength == 1)
-        {
-            headerElement.appendChild(generatedDocument.createTextNode(formLength + " " + stringBundle.getString("webdeveloper_form").toLowerCase()));
-        }
-        else
-        {
-            headerElement.appendChild(generatedDocument.createTextNode(formLength + " " + stringBundle.getString("webdeveloper_forms").toLowerCase()));
-        }
-
-        bodyElement.appendChild(headerElement);
-
-        // Loop through the forms
-        for(var j = 0; j < formLength; j++)
-        {
-            form                     = formList[j];
-            formElementList          = new Array();
-            formElements             = form.elements;
-            formElementsLength       = formElements.length;
-            headerElement            = generatedDocument.createElement("h3");
-            imageInputElements       = webdeveloper_evaluateXPath(form, "//input[@type='image']");
-            imageInputElementsLength = imageInputElements.length;
-            tableElement             = generatedDocument.createElement("table");
-            tableRowElement          = generatedDocument.createElement("tr");
-
-            // Loop through the form elements
-            for(var k = 0; k < formElementsLength; k++)
-            {
-                formElementList.push(formElements[k]);
-            }
-
-            // Loop through the image input elements
-            for(k = 0; k < imageInputElementsLength; k++)
-            {
-                formElementList.push(imageInputElements[k]);
-            }
-
-            formElementsLength = formElementList.length;
-
-            headerElement.appendChild(generatedDocument.createTextNode(stringBundle.getString("webdeveloper_form")));
-            divElement.appendChild(headerElement);
-
-            //  Form id heading
-            cellHeaderElement = generatedDocument.createElement("th");
-
-            cellHeaderElement.appendChild(generatedDocument.createTextNode(stringBundle.getString("webdeveloper_id")));
-            tableRowElement.appendChild(cellHeaderElement);
-
-            //  Form name heading
-            cellHeaderElement = generatedDocument.createElement("th");
-
-            cellHeaderElement.appendChild(generatedDocument.createTextNode(stringBundle.getString("webdeveloper_name")));
-            tableRowElement.appendChild(cellHeaderElement);
-
-            //  Form method heading
-            cellHeaderElement = generatedDocument.createElement("th");
-
-            cellHeaderElement.appendChild(generatedDocument.createTextNode(stringBundle.getString("webdeveloper_method")));
-            tableRowElement.appendChild(cellHeaderElement);
-
-            //  Form action heading
-            cellHeaderElement = generatedDocument.createElement("th");
-
-            cellHeaderElement.appendChild(generatedDocument.createTextNode(stringBundle.getString("webdeveloper_action")));
-            tableRowElement.appendChild(cellHeaderElement);
-            tableElement.appendChild(tableRowElement);
-
-            tableRowElement = generatedDocument.createElement("tr");
-
-            //  Form id
-            cellDataElement = generatedDocument.createElement("td");
-
-            cellDataElement.appendChild(generatedDocument.createTextNode(form.getAttribute("id")));
-            tableRowElement.appendChild(cellDataElement);
-
-            //  Form name
-            cellDataElement = generatedDocument.createElement("td");
-
-            cellDataElement.appendChild(generatedDocument.createTextNode(form.getAttribute("name")));
-            tableRowElement.appendChild(cellDataElement);
-
-            //  Form method
-            cellDataElement = generatedDocument.createElement("td");
-
-            cellDataElement.appendChild(generatedDocument.createTextNode(form.getAttribute("method")));
-            tableRowElement.appendChild(cellDataElement);
-
-            //  Form action
-            cellDataElement = generatedDocument.createElement("td");
-
-            cellDataElement.appendChild(generatedDocument.createTextNode(form.getAttribute("action")));
-            tableRowElement.appendChild(cellDataElement);
-            tableElement.appendChild(tableRowElement);
-            divElement.appendChild(tableElement);
-
-            pElement = generatedDocument.createElement("p");
-
-            divElement.appendChild(pElement);
-
-            headerElement   = generatedDocument.createElement("h3");
-            tableElement    = generatedDocument.createElement("table");
-            tableRowElement = generatedDocument.createElement("tr");
-
-            headerElement.appendChild(generatedDocument.createTextNode(stringBundle.getString("webdeveloper_elements")));
-            divElement.appendChild(headerElement);
-
-            //  Element index heading
-            cellHeaderElement = generatedDocument.createElement("th");
-
-            cellHeaderElement.appendChild(generatedDocument.createTextNode(stringBundle.getString("webdeveloper_index")));
-            tableRowElement.appendChild(cellHeaderElement);
-
-            //  Element id heading
-            cellHeaderElement = generatedDocument.createElement("th");
-
-            cellHeaderElement.appendChild(generatedDocument.createTextNode(stringBundle.getString("webdeveloper_id")));
-            tableRowElement.appendChild(cellHeaderElement);
-
-            //  Element name heading
-            cellHeaderElement = generatedDocument.createElement("th");
-
-            cellHeaderElement.appendChild(generatedDocument.createTextNode(stringBundle.getString("webdeveloper_name")));
-            tableRowElement.appendChild(cellHeaderElement);
-            tableElement.appendChild(tableRowElement);
-
-            //  Element type heading
-            cellHeaderElement = generatedDocument.createElement("th");
-
-            cellHeaderElement.appendChild(generatedDocument.createTextNode(stringBundle.getString("webdeveloper_type")));
-            tableRowElement.appendChild(cellHeaderElement);
-            tableElement.appendChild(tableRowElement);
-
-            //  Element value heading
-            cellHeaderElement = generatedDocument.createElement("th");
-
-            cellHeaderElement.appendChild(generatedDocument.createTextNode(stringBundle.getString("webdeveloper_value")));
-            tableRowElement.appendChild(cellHeaderElement);
-            tableElement.appendChild(tableRowElement);
-
-            //  Element label heading
-            cellHeaderElement = generatedDocument.createElement("th");
-
-            cellHeaderElement.appendChild(generatedDocument.createTextNode(stringBundle.getString("webdeveloper_label")));
-            tableRowElement.appendChild(cellHeaderElement);
-
-            //  Element size heading
-            cellHeaderElement = generatedDocument.createElement("th");
-
-            cellHeaderElement.appendChild(generatedDocument.createTextNode(stringBundle.getString("webdeveloper_size")));
-            tableRowElement.appendChild(cellHeaderElement);
-            tableElement.appendChild(tableRowElement);
-
-            //  Element maximum length heading
-            cellHeaderElement = generatedDocument.createElement("th");
-
-            cellHeaderElement.appendChild(generatedDocument.createTextNode(stringBundle.getString("webdeveloper_maximumLength")));
-            tableRowElement.appendChild(cellHeaderElement);
-            tableElement.appendChild(tableRowElement);
-
-            //  Element state heading
-            cellHeaderElement = generatedDocument.createElement("th");
-
-            cellHeaderElement.appendChild(generatedDocument.createTextNode(stringBundle.getString("webdeveloper_state")));
-            tableRowElement.appendChild(cellHeaderElement);
-            tableElement.appendChild(tableRowElement);
-
-            // Loop through the form elements
-            for(k = 0; k < formElementsLength; k++)
-            {
-                elementStates   = new Array();
-                elementValue    = "";
-                formElement     = formElementList[k];
-                formElementId   = formElement.getAttribute("id");
-                elementType     = formElement.tagName.toLowerCase();
-                labelElement    = "";
-                labelValue      = "";
-                tableRowElement = generatedDocument.createElement("tr");
-
-                // If this is an even row
-                if(k % 2 != 0)
-                {
-                    tableRowElement.setAttribute("class", "shaded");
-                }
-
-                // If the element has an id
-                if(formElementId)
-                {
-                    // Loop through the labels
-                    for(var l = 0; l < labelLength; l++)
-                    {
-                        labelElement = labelList[l];
-
-                        // If this is the label for the element
-                        if(labelElement.hasAttribute("for") && labelElement.getAttribute("for") == formElementId)
-                        {
-                            labelValue = labelElement.innerHTML;
-                        }
-                    }
-                }
-
-                // If this is an input element
-                if(elementType == "input")
-                {
-                    elementType  = formElement.getAttribute("type");
-                    elementValue = formElement.value;
-                }
-                else if(elementType == "textarea")
-                {
-                    elementValue = formElement.value;
-                }
-
-                // If the element is checked
-                if(formElement.checked)
-                {
-                    elementStates.push("Checked");
-                }
-
-                // If the element is disabled
-                if(formElement.disabled)
-                {
-                    elementStates.push("Disabled");
-                }
-
-                // If the element is read only
-                if(formElement.readOnly)
-                {
-                    elementStates.push("Readonly");
-                }
-
-                elementStatesLength = elementStates.length;
-
-                //  Element index
-                cellDataElement = generatedDocument.createElement("td");
-
-                cellDataElement.appendChild(generatedDocument.createTextNode(k));
-                tableRowElement.appendChild(cellDataElement);
-                tableElement.appendChild(tableRowElement);
-
-                //  Element id
-                cellDataElement = generatedDocument.createElement("td");
-
-                cellDataElement.appendChild(generatedDocument.createTextNode(formElementId));
-                tableRowElement.appendChild(cellDataElement);
-
-                //  Element name
-                cellDataElement = generatedDocument.createElement("td");
-
-                cellDataElement.appendChild(generatedDocument.createTextNode(formElement.getAttribute("name")));
-                tableRowElement.appendChild(cellDataElement);
-                tableElement.appendChild(tableRowElement);
-
-                //  Element type
-                cellDataElement = generatedDocument.createElement("td");
-
-                cellDataElement.appendChild(generatedDocument.createTextNode(elementType));
-                tableRowElement.appendChild(cellDataElement);
-                tableElement.appendChild(tableRowElement);
-
-                //  Element value
-                cellDataElement = generatedDocument.createElement("td");
-
-                cellDataElement.appendChild(generatedDocument.createTextNode(elementValue));
-                tableRowElement.appendChild(cellDataElement);
-                tableElement.appendChild(tableRowElement);
-
-                //  Element label
-                cellDataElement = generatedDocument.createElement("td");
-
-                cellDataElement.appendChild(generatedDocument.createTextNode(labelValue));
-                tableRowElement.appendChild(cellDataElement);
-                tableElement.appendChild(tableRowElement);
-
-                //  Element size
-                cellDataElement = generatedDocument.createElement("td");
-
-                cellDataElement.appendChild(generatedDocument.createTextNode(formElement.getAttribute("size")));
-                tableRowElement.appendChild(cellDataElement);
-                tableElement.appendChild(tableRowElement);
-
-                //  Element maximum length
-                cellDataElement = generatedDocument.createElement("td");
-
-                cellDataElement.appendChild(generatedDocument.createTextNode(formElement.getAttribute("maxlength")));
-                tableRowElement.appendChild(cellDataElement);
-                tableElement.appendChild(tableRowElement);
-
-                //  Element state
-                cellDataElement = generatedDocument.createElement("td");
-
-                // Loop through the element states
-                for(l = 0; l < elementStatesLength; l++)
-                {
-                    pElement = generatedDocument.createElement("p");
-
-                    pElement.appendChild(generatedDocument.createTextNode(elementStates[l]));
-                    cellDataElement.appendChild(pElement);
-                }
-
-                tableRowElement.appendChild(cellDataElement);
-                tableElement.appendChild(tableRowElement);
-            }
-
-            tableElement.setAttribute("class", "sortable");
-            divElement.setAttribute("class", "output");
-            divElement.appendChild(tableElement);
-            divElement.appendChild(generatedDocument.createElement("hr"));
-            bodyElement.appendChild(divElement);
-        }
-    }
-
-    scriptElement.setAttribute("defer", "defer");
-    scriptElement.setAttribute("src", "chrome://webdeveloper/content/common/dom.js");
-    scriptElement.setAttribute("type", "text/javascript");
-    headElement.appendChild(scriptElement);
-
-    scriptElement = generatedDocument.createElement("script");
-
-    scriptElement.setAttribute("defer", "defer");
-    scriptElement.setAttribute("src", "chrome://webdeveloper/content/common/xpath.js");
-    scriptElement.setAttribute("type", "text/javascript");
-    headElement.appendChild(scriptElement);
-
-    scriptElement = generatedDocument.createElement("script");
-
-    scriptElement.setAttribute("defer", "defer");
-    scriptElement.setAttribute("src", "chrome://webdeveloper/content/generated/output_pivot.js");
-    scriptElement.setAttribute("type", "text/javascript");
-    headElement.appendChild(scriptElement);
-
-    scriptElement = generatedDocument.createElement("script");
-
-    scriptElement.setAttribute("defer", "defer");
-    scriptElement.setAttribute("src", "chrome://webdeveloper/content/generated/table_sort.js");
-    scriptElement.setAttribute("type", "text/javascript");
-    headElement.appendChild(scriptElement);
-
-    // If the open tabs in background preference is set to true
-    if(webdeveloper_getBooleanPreference("webdeveloper.open.tabs.background", true))
-    {
-        getBrowser().selectedTab = oldTab;
-    }
-}