git-svn-id: svn://euphorik.ch/pompage@47 02bbb61a-6d21-0410-aba0-cb053bdfd66a
[pompage.git] / doc / webdeveloper / features / display_element_information.js
diff --git a/doc/webdeveloper/features/display_element_information.js b/doc/webdeveloper/features/display_element_information.js
deleted file mode 100644 (file)
index b2d34b3..0000000
+++ /dev/null
@@ -1,555 +0,0 @@
-var webdeveloper_elementInformationBlockSelected = false;
-var webdeveloper_informationElement              = null;
-
-// Creates the element information block
-function webdeveloper_createElementInformationBlock(ownerDocument)
-{
-    var definitionElement = ownerDocument.createElement("dd");
-    var divElement        = ownerDocument.createElement("div");
-    var headerElement     = ownerDocument.createElement("h2");
-    var listElement       = ownerDocument.createElement("dl");
-    var stringBundle      = document.getElementById("webdeveloper-string-bundle");
-    var termElement       = ownerDocument.createElement("dt");
-
-    headerElement.addEventListener("mousedown", webdeveloper_selectElementInformation, false);
-    headerElement.addEventListener("mouseup", webdeveloper_deselectElementInformation, false);
-    headerElement.appendChild(ownerDocument.createTextNode(stringBundle.getString("webdeveloper_elementInformation")));
-    divElement.appendChild(headerElement);
-
-    termElement.addEventListener("click", webdeveloper_toggleElementInformationBlock, false);
-    termElement.appendChild(ownerDocument.createTextNode(stringBundle.getString("webdeveloper_attributes")));
-    definitionElement.setAttribute("id", "webdeveloper-element-information-attributes");
-    listElement.appendChild(termElement);
-    listElement.appendChild(definitionElement);
-    divElement.appendChild(listElement);
-
-    definitionElement = ownerDocument.createElement("dd");
-    listElement       = ownerDocument.createElement("dl");
-    termElement       = ownerDocument.createElement("dt");
-
-    termElement.addEventListener("click", webdeveloper_toggleElementInformationBlock, false);
-    termElement.appendChild(ownerDocument.createTextNode(stringBundle.getString("webdeveloper_position")));
-    definitionElement.setAttribute("id", "webdeveloper-element-information-position");
-    listElement.appendChild(termElement);
-    listElement.appendChild(definitionElement);
-    divElement.appendChild(listElement);
-
-    definitionElement = ownerDocument.createElement("dd");
-    listElement       = ownerDocument.createElement("dl");
-    termElement       = ownerDocument.createElement("dt");
-
-    termElement.addEventListener("click", webdeveloper_toggleElementInformationBlock, false);
-    termElement.appendChild(ownerDocument.createTextNode(stringBundle.getString("webdeveloper_other")));
-    definitionElement.setAttribute("id", "webdeveloper-element-information-other");
-    listElement.appendChild(termElement);
-    listElement.appendChild(definitionElement);
-    divElement.appendChild(listElement);
-
-    definitionElement = ownerDocument.createElement("dd");
-    listElement       = ownerDocument.createElement("dl");
-    termElement       = ownerDocument.createElement("dt");
-
-    termElement.addEventListener("click", webdeveloper_toggleElementInformationBlock, false);
-    termElement.appendChild(ownerDocument.createTextNode(stringBundle.getString("webdeveloper_ancestors")));
-    definitionElement.setAttribute("id", "webdeveloper-element-information-ancestors");
-    listElement.appendChild(termElement);
-    listElement.appendChild(definitionElement);
-    divElement.appendChild(listElement);
-
-    definitionElement = ownerDocument.createElement("dd");
-    listElement       = ownerDocument.createElement("dl");
-    termElement       = ownerDocument.createElement("dt");
-
-    termElement.addEventListener("click", webdeveloper_toggleElementInformationBlock, false);
-    termElement.appendChild(ownerDocument.createTextNode(stringBundle.getString("webdeveloper_children")));
-    definitionElement.setAttribute("id", "webdeveloper-element-information-children");
-    listElement.appendChild(termElement);
-    listElement.appendChild(definitionElement);
-    divElement.appendChild(listElement);
-
-    divElement.setAttribute("id", "webdeveloper-element-information");
-    webdeveloper_getDocumentBodyElement(ownerDocument).appendChild(divElement);
-}
-
-// Called when the element information is deselected
-function webdeveloper_deselectElementInformation(event)
-{
-    webdeveloper_elementInformationBlockSelected = false;
-}
-
-// Displays information about the element
-function webdeveloper_displayElementInformation(element)
-{
-    var checked         = true;
-    var contentDocument = webdeveloper_getContentDocument();
-    var contentWindow   = webdeveloper_getContentWindow();
-    var divElement      = null;
-    var documentList    = webdeveloper_getDocuments(contentWindow);
-    var documentLength  = documentList.length;
-    var leftOffset      = contentWindow.pageXOffset;
-    var pageDocument    = null;
-    var topOffset       = contentWindow.pageYOffset;
-
-    // If the element is set
-    if(element)
-    {
-        checked = element.getAttribute("checked");
-    }
-    else
-    {
-        var currentDocument = contentWindow.document;
-
-        element = document.getElementById("webdeveloper-display-element-information-menu");
-
-        // If the display element information element is set
-        if(currentDocument.getElementById("webdeveloper-display-element-information"))
-        {
-            checked = false;
-        }
-
-        webdeveloper_configureElement(element, "checked", checked);
-    }
-
-    webdeveloper_configureElement(document.getElementById("webdeveloper-information-text-toolbar"), "hidden", !checked);
-
-    // Loop through the documents
-    for(var i = 0; i < documentLength; i++)
-    {
-        pageDocument = documentList[i];
-
-        // If displaying element information
-        if(checked)
-        {
-            webdeveloper_createElementInformationBlock(pageDocument);
-
-            // If this is the content document
-            if(pageDocument == contentDocument)
-            {
-                divElement = pageDocument.getElementById("webdeveloper-element-information");
-
-                // If the div element was found
-                if(divElement)
-                {
-                    divElement.style.left = (leftOffset + 5) + "px";
-                    divElement.style.top  = (topOffset + 5) + "px";
-                }
-            }
-
-            pageDocument.addEventListener("click", webdeveloper_displayElementInformationForElement, false);
-            pageDocument.addEventListener("keypress", webdeveloper_displayElementInformationKeyPress, false);
-            pageDocument.addEventListener("mousemove", webdeveloper_displayElementInformationMouseMove, false);
-            pageDocument.addEventListener("mouseover", webdeveloper_displayElementInformationMouseOver, false);
-        }
-        else
-        {
-            divElement = pageDocument.getElementById("webdeveloper-element-information");
-
-            // Try to remove the event listener
-            try
-            {
-                pageDocument.removeEventListener("click", webdeveloper_displayElementInformationForElement, false);
-            }
-            catch(exception)
-            {
-                // Do nothing
-            }
-
-            // Try to remove the event listener
-            try
-            {
-                pageDocument.removeEventListener("keypress", webdeveloper_displayElementInformationKeyPress, false);
-            }
-            catch(exception)
-            {
-                // Do nothing
-            }
-
-            // Try to remove the event listener
-            try
-            {
-                pageDocument.removeEventListener("mousemove", webdeveloper_displayElementInformationMouseMove, false);
-            }
-            catch(exception)
-            {
-                // Do nothing
-            }
-
-            // Try to remove the event listener
-            try
-            {
-                pageDocument.removeEventListener("mouseover", webdeveloper_displayElementInformationMouseOver, false);
-            }
-            catch(exception)
-            {
-                // Do nothing
-            }
-
-            webdeveloper_removeElement(divElement);
-            webdeveloper_removeElementOutline(webdeveloper_informationElement);
-        }
-    }
-
-    // If not displaying element information
-    if(!checked)
-    {
-        webdeveloper_elementInformationBlockSelected = false;
-        webdeveloper_informationElement              = null;
-    }
-
-    webdeveloper_toggleStyleSheet(element, "chrome://webdeveloper/content/stylesheets/display_element_information.css", "webdeveloper-display-element-information");
-}
-
-// Displays information about the specific element
-function webdeveloper_displayElementInformationForElement(event)
-{
-    var element = event.target;
-
-    // If the element is set
-    if(element)
-    {
-        var elementName   = element.tagName;
-        var ownerDocument = element.ownerDocument;
-
-        // If the element has a name and it is not scrollbar and it has an owner document
-        if(elementName && elementName != "scrollbar" && ownerDocument)
-        {
-            var divElement = ownerDocument.getElementById("webdeveloper-element-information");
-
-            // If the div element was found
-            if(divElement)
-            {
-                // If the element is not the div element and the div element is not an ancestor of the element
-                if(element != divElement && !webdeveloper_isAncestor(element, divElement))
-                {
-                    var definitionElement = ownerDocument.getElementById("webdeveloper-element-information-attributes");
-                    var headerElements    = divElement.getElementsByTagName("h2");
-                    var outlineElement    = null;
-                    var pElement          = null;
-                    var stringBundle      = document.getElementById("webdeveloper-string-bundle");
-                    var tableElement      = null;
-                    var tableCellElement  = null;
-                    var tableRowElement   = null;
-
-                    webdeveloper_removeElementOutline(element);
-
-                    // If header elements were found
-                    if(headerElements.length > 0)
-                    {
-                        var headerElement = headerElements[0];
-
-                        // If the header element is set
-                        if(headerElement)
-                        {
-                            webdeveloper_removeAllChildElements(headerElement);
-
-                            headerElement.appendChild(ownerDocument.createTextNode(webdeveloper_getElementDescription(element)));
-                        }
-                    }
-
-                    // If the definition element is set
-                    if(definitionElement)
-                    {
-                        var elementAttribute        = null;
-                        var elementAttributes       = element.attributes;
-                        var elementAttributesLength = elementAttributes.length;
-
-                        webdeveloper_removeAllChildElements(definitionElement);
-
-                        // If there are no attributes
-                        if(elementAttributesLength == 0)
-                        {
-                            definitionElement.appendChild(ownerDocument.createTextNode(stringBundle.getString("webdeveloper_none")));
-                        }
-                        else
-                        {
-                            // Loop through the attributes
-                            for(var i = 0; i < elementAttributesLength; i++)
-                            {
-                                elementAttribute = elementAttributes[i];
-                                pElement         = ownerDocument.createElement("p");
-
-                                pElement.appendChild(ownerDocument.createTextNode(elementAttribute.name + " = " + elementAttribute.value));
-                                definitionElement.appendChild(pElement);
-                            }
-                        }
-                    }
-
-                    definitionElement = ownerDocument.getElementById("webdeveloper-element-information-position");
-
-                    // If the definition element is set
-                    if(definitionElement)
-                    {
-                        tableElement     = ownerDocument.createElement("table");
-                        tableCellElement = ownerDocument.createElement("td");
-                        tableRowElement  = ownerDocument.createElement("tr");
-
-                        webdeveloper_removeAllChildElements(definitionElement);
-
-                        tableCellElement.appendChild(ownerDocument.createTextNode(stringBundle.getString("webdeveloper_left") + ": " + webdeveloper_getElementPositionX(element) + "px"));
-                        tableRowElement.appendChild(tableCellElement);
-
-                        tableCellElement = ownerDocument.createElement("td");
-                        tableCellElement.appendChild(ownerDocument.createTextNode(stringBundle.getString("webdeveloper_top") + ": " + webdeveloper_getElementPositionY(element) + "px"));
-                        tableRowElement.appendChild(tableCellElement);
-                        tableElement.appendChild(tableRowElement);
-
-                        tableCellElement = ownerDocument.createElement("td");
-                        tableRowElement  = ownerDocument.createElement("tr");
-                        tableCellElement.appendChild(ownerDocument.createTextNode(stringBundle.getString("webdeveloper_width") + ": " + element.clientWidth + "px"));
-                        tableRowElement.appendChild(tableCellElement);
-
-                        tableCellElement = ownerDocument.createElement("td");
-                        tableCellElement.appendChild(ownerDocument.createTextNode(stringBundle.getString("webdeveloper_height") + ": " + element.clientHeight + "px"));
-                        tableRowElement.appendChild(tableCellElement);
-                        tableElement.appendChild(tableRowElement);
-                        definitionElement.appendChild(tableElement);
-                    }
-
-                    definitionElement = ownerDocument.getElementById("webdeveloper-element-information-other");
-
-                    // If the definition element is set
-                    if(definitionElement)
-                    {
-                        var fontFamily = element.ownerDocument.defaultView.getComputedStyle(element, null).getPropertyCSSValue("font-family");
-                        var fontSize   = element.ownerDocument.defaultView.getComputedStyle(element, null).getPropertyCSSValue("font-size");
-
-                        tableElement    = ownerDocument.createElement("table");
-
-                        webdeveloper_removeAllChildElements(definitionElement);
-
-                        // If this element has a font family
-                        if(fontFamily)
-                        {
-                            tableCellElement = ownerDocument.createElement("td");
-                            tableRowElement = ownerDocument.createElement("tr");
-                            tableCellElement.appendChild(ownerDocument.createTextNode(stringBundle.getString("webdeveloper_fontFamily") + ":"));
-                            tableRowElement.appendChild(tableCellElement);
-
-                            tableCellElement = ownerDocument.createElement("td");
-                            tableCellElement.appendChild(ownerDocument.createTextNode(fontFamily.cssText));
-                            tableRowElement.appendChild(tableCellElement);
-                            tableElement.appendChild(tableRowElement);
-                        }
-
-                        // If this element has a font size
-                        if(fontSize)
-                        {
-                            tableCellElement = ownerDocument.createElement("td");
-                            tableRowElement = ownerDocument.createElement("tr");
-                            tableCellElement.appendChild(ownerDocument.createTextNode(stringBundle.getString("webdeveloper_fontSize") + ":"));
-                            tableRowElement.appendChild(tableCellElement);
-
-                            tableCellElement = ownerDocument.createElement("td");
-                            tableCellElement.appendChild(ownerDocument.createTextNode(fontSize.cssText));
-                            tableRowElement.appendChild(tableCellElement);
-                            tableElement.appendChild(tableRowElement);
-                        }
-
-                        // If the table has child nodes
-                        if(tableElement.hasChildNodes())
-                        {
-                            definitionElement.appendChild(tableElement);
-                        }
-                    }
-
-                    definitionElement = ownerDocument.getElementById("webdeveloper-element-information-ancestors");
-
-                    // If the definition element is set
-                    if(definitionElement)
-                    {
-                        var ancestorList   = webdeveloper_getElementAncestors(element);
-                        var ancestorLength = ancestorList.length;
-
-                        webdeveloper_removeAllChildElements(definitionElement);
-
-                        // If there are no ancestors
-                        if(ancestorLength == 0)
-                        {
-                            definitionElement.appendChild(ownerDocument.createTextNode(stringBundle.getString("webdeveloper_none")));
-                        }
-                        else
-                        {
-                            // Loop through the ancestors
-                            for(i = 0; i < ancestorLength; i++)
-                            {
-                                pElement = ownerDocument.createElement("p");
-
-                                pElement.appendChild(ownerDocument.createTextNode(webdeveloper_getElementDescription(ancestorList[i])));
-                                definitionElement.appendChild(pElement);
-                            }
-                        }
-                    }
-
-                    definitionElement = ownerDocument.getElementById("webdeveloper-element-information-children");
-
-                    // If the definition element is set
-                    if(definitionElement)
-                    {
-                        var children    = webdeveloper_getElementChildren(element);
-                        var childLength = children.length;
-
-                        webdeveloper_removeAllChildElements(definitionElement);
-
-                        // If there are no children
-                        if(childLength == 0)
-                        {
-                            definitionElement.appendChild(ownerDocument.createTextNode(stringBundle.getString("webdeveloper_none")));
-                        }
-                        else
-                        {
-                            // Loop through the children
-                            for(i = 0; i < childLength; i++)
-                            {
-                                pElement = ownerDocument.createElement("p");
-
-                                pElement.appendChild(ownerDocument.createTextNode(webdeveloper_getElementDescription(children[i])));
-                                definitionElement.appendChild(pElement);
-                            }
-                        }
-                    }
-
-                    element.style.MozOutline = "1px solid #ff0000";
-
-                    // Force the style sheet to refresh
-                    divElement.setAttribute("class", "force-width");
-                    divElement.removeAttribute("class");
-
-                    event.preventDefault();
-                }
-            }
-        }
-    }
-}
-
-// Keypress event for display element information
-function webdeveloper_displayElementInformationKeyPress(event)
-{
-    webdeveloper_copyElementAncestors(event);
-}
-
-// Move event for display element information
-function webdeveloper_displayElementInformationMouseMove(event)
-{
-    // If the element information block is selected
-    if(webdeveloper_elementInformationBlockSelected)
-    {
-        webdeveloper_moveElementInformationBlock(event);
-    }
-    else
-    {
-        var element = event.target;
-
-        // If the element is set
-        if(element)
-        {
-            var ownerDocument = element.ownerDocument;
-
-            // If the owner document is set
-            if(ownerDocument)
-            {
-                var divElement = ownerDocument.getElementById("webdeveloper-element-information");
-
-                // If the div element was found
-                if(divElement)
-                {
-                    // If the element is not the div element and the div element is not an ancestor of the element
-                    if(element != divElement && !webdeveloper_isAncestor(element, divElement))
-                    {
-                        var outlineElement = webdeveloper_addElementOutline(event, webdeveloper_informationElement);
-
-                        // If the outline element is set
-                        if(outlineElement)
-                        {
-                            webdeveloper_informationElement = outlineElement;
-                        }
-                    }
-
-                }
-            }
-        }
-    }
-}
-
-// Mouseover event for display element information
-function webdeveloper_displayElementInformationMouseOver(event)
-{
-    var element = event.target;
-
-    // If the element is set
-    if(element)
-    {
-        var ownerDocument = element.ownerDocument;
-
-        // If the owner document is set
-        if(ownerDocument)
-        {
-            var divElement = ownerDocument.getElementById("webdeveloper-element-information");
-
-            // If the div element was found
-            if(divElement)
-            {
-                // If the element is not the div element and the div element is not an ancestor of the element
-                if(element != divElement && !webdeveloper_isAncestor(element, divElement))
-                {
-                    webdeveloper_displayElementAncestors(event);
-                }
-
-            }
-        }
-    }
-}
-
-// Move the element information block
-function webdeveloper_moveElementInformationBlock(event)
-{
-    var element = event.target;
-
-    // If the element is set
-    if(element)
-    {
-        var ownerDocument = element.ownerDocument;
-
-        // If the target has an owner document
-        if(ownerDocument)
-        {
-            var divElement = ownerDocument.getElementById("webdeveloper-element-information");
-
-            // If the div element was found
-            if(divElement)
-            {
-                divElement.style.left = (event.pageX - 5) + "px";
-                divElement.style.top  = (event.pageY - 5) + "px";
-            }
-        }
-    }
-}
-
-// Called when the element information is selected
-function webdeveloper_selectElementInformation(event)
-{
-    // If the click was not a right click
-    if(event.button != 2)
-    {
-        webdeveloper_elementInformationBlockSelected = true;
-    }
-}
-
-// Toggles an element information block
-function webdeveloper_toggleElementInformationBlock(event)
-{
-    var element = event.target;
-
-    // If there is a target element
-    if(element)
-    {
-        // If the element has a class attribute
-        if(element.hasAttribute("class"))
-        {
-            element.removeAttribute("class");
-        }
-        else
-        {
-            element.setAttribute("class", "collapsed");
-        }
-    }
-}