--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/org.symbian.tools.wrttools.doc.WebDeveloper/html/js/common.js Thu Aug 19 17:48:04 2010 -0700
@@ -0,0 +1,149 @@
+/**
+ * Check required support for TOC.
+ */
+function support() {
+ if (document.getElementsByTagName && document.styleSheets) {
+ tocSupported = true;
+ }
+}
+
+/** Flag if dynamic TOC is supported */
+var tocSupported = false;
+support();
+/** Current active TOC node. */
+var currentHighlight = null;
+
+/** Regexp for backslash, used to turn Windows pseudo-URLs to URLs. */
+var slashRegExp = new RegExp("\\\\", "g");
+
+function getBaseUrl() {
+ var topLocation = window.top.location;
+ var i = topLocation.pathname.indexOf(URL_BASE);
+ if (i != -1) {
+ return topLocation.protocol + "//"
+ + topLocation.hostname + (topLocation.port == "" ? "" : ":" + topLocation.port)
+ + topLocation.pathname.substring(0, i).replace(slashRegExp, "/");
+ } else if (topLocation.pathname.substring(topLocation.pathname.length - 1) == "/") {
+ return topLocation.protocol + "//"
+ + topLocation.hostname + (topLocation.port == "" ? "" : ":" + topLocation.port)
+ + topLocation.pathname;
+ } else {
+ return undefined;
+ }
+}
+
+/*
+var isIE = (window.navigator.appVersion.indexOf("MSIE 6") !== -1);
+*/
+
+/**
+ * Hightlight TOC node.
+ *
+ * @param node TOC node to highlight
+ */
+function highlightTocItem(node) {
+ if (tocSupported) {
+ // turn old off
+/*
+ if (isIE) {
+ var lis = node.ownerDocument.getElementsByTagName("*");
+ for (var i = 0; i < lis.length; i++) {
+ removeClass(lis.item(i), TOC_CLASS_ACTIVE);
+ }
+ } else {
+*/
+ if (currentHighlight === null || !isClass(currentHighlight, TOC_CLASS_ACTIVE)) {
+ // turn all off
+ var lis = node.ownerDocument.getElementsByTagName(TOC_ELEMENT_ITEM);
+ for (var i = 0; i < lis.length; i++) {
+ removeClass(lis.item(i), TOC_CLASS_ACTIVE);
+ }
+ } else {
+ removeClass(currentHighlight, TOC_CLASS_ACTIVE);
+ }
+/*
+ }
+*/
+ // turn this on
+ addClass(node.parentNode, TOC_CLASS_ACTIVE);
+ currentHighlight = node.parentNode;
+/*
+ // IE6 addition, because it doesn't support > in CSS selectors
+ if (isIE) {
+ addClass(node, TOC_CLASS_ACTIVE);
+ }
+*/
+ }
+}
+
+/**
+ * Toggle child node display.
+ *
+ * @param n Target node of the event.
+ */
+//moved to toc.js
+/*
+function toggle(n) {
+ // toggle controller
+ if (isClass(n, "toc-controller-open")) {
+ n.firstChild.data = "+";
+ switchClass(n, "toc-controller-closed", "toc-controller-open");
+ } else {
+ n.firstChild.data = "-";
+ switchClass(n, "toc-controller-open", "toc-controller-closed");
+ }
+ // toggle content
+ i = getNextSiblingByTagName(n.parentNode.firstChild, "ul");
+ if (i != null) {
+ if (i.style.display == "none") {
+ i.style.display = "block";
+ } else {
+ i.style.display = "none";
+ }
+ }
+}
+*/
+
+/* Move to common utils. */
+
+/**
+ * Get first child element by element name.
+ *
+ * @param node parent element
+ * @param name element name of the desired child elements
+ * @return DOM Element, null if none found
+ * @type Object
+ */
+function getFirstChildElementByTagName(node, name) {
+ var tag = undefined;
+ if (name !== undefined) {
+ tag = name.toLowerCase();
+ }
+ for (var n = node.firstChild; n != null; n = n.nextSibling) {
+ if (n.nodeType == 1 && (name === undefined || n.nodeName.toLowerCase() == tag)) {
+ return n;
+ }
+ }
+ return null;
+}
+
+/**
+ * Get first element by class name.
+ *
+ * @param node DOM node whose descendants select
+ * @param cls class name
+ * @param elem element name (optional)
+ * @return DOM Element, null if none found
+ * @type Object
+ */
+function getFirstElementByClassName(node, cls, elem) {
+ if (elem === undefined) {
+ elem = "*";
+ }
+ for (var el = document.getElementsByTagName(elem), i = 0; i < el.length; i++) {
+ if (isClass(el[i], cls)) {
+ return el[i];
+ }
+ }
+ return null;
+}
\ No newline at end of file