plugins/org.symbian.tools.wrttools.doc.WebDeveloper/html/js/gui.js
changeset 470 d4809db37847
parent 229 716254ccbcc0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/org.symbian.tools.wrttools.doc.WebDeveloper/html/js/gui.js	Thu Aug 19 17:48:04 2010 -0700
@@ -0,0 +1,128 @@
+var TOC_CLASS_ACTIVE = "on3";
+var TOC_CLASS_COLLAPSED = "toc-controller-closed";
+var TOC_CLASS_EXPANDED = "toc-controller-open";
+var TOC_CLASS_CONTROL = "toc-controller";
+var TOC_CLASS_SPACE = "toc-space";
+var TOC_DISPLAY_COLLAPSED = "none";
+var TOC_DISPLAY_EXPANDED = "block";
+
+/**
+ * Check required support for TOC.
+ */
+function support() {
+	if (document.getElementsByTagName && document.styleSheets) {
+		tocSupported = true;
+	} else {
+		//alert("Dynamic TOC not available.");		
+	}
+}
+
+/** Flag if dynamic TOC is supported */
+var tocSupported = false;
+support();
+/** Current active TOC node. */
+var currentHighlight = null;
+/** Process start time stamp. */
+var processStart;
+/** Process end time stamp. */
+var processEnd;
+/** Last process duration. */
+var processDuration
+
+
+/**
+ * Hightlight TOC node.
+ *
+ * @param node TOC node to highlight
+ */
+function highlightTocItem(node) {
+	if (tocSupported) {
+		// turn old off
+		if (currentHighlight === null || !isClass(currentHighlight, TOC_CLASS_ACTIVE)) {
+			// turn all off
+			var li = getFirstElementByClassName(node.ownerDocument, TOC_CLASS_ACTIVE, TOC_ITEM);
+			if (li !== null) {
+			  removeClass(li, TOC_CLASS_ACTIVE);
+			}
+		} else {
+			removeClass(currentHighlight, TOC_CLASS_ACTIVE);
+		}
+		// turn this on
+		addClass(node.parentNode, TOC_CLASS_ACTIVE);
+		currentHighlight = node.parentNode;
+	}
+}
+
+/**
+ * Toggle child node display.
+ *
+ * @param n Target node of the event.
+ */
+function toggle(n) {
+	if (isClass(n, TOC_CLASS_EXPANDED)) {
+		tocNodeCollapse(n);
+	} else {
+	  tocNodeExpand(n);
+	}
+}
+
+/**
+ * Expand TOC node.
+ *
+ * @param n TOC node
+ */
+function tocNodeExpand(n, collapseOverride) {
+  if (collapseOverride === undefined) {
+    collapseOverride = true;
+  }
+  n.firstChild.data = TOC_SYMBOL_EXPANDED;
+  switchClass(n, TOC_CLASS_EXPANDED, TOC_CLASS_COLLAPSED);
+  var ul = getNextSiblingByTagName(n.nextSibling, TOC_ELEMENT_BLOCK);
+  if (ul !== null) {
+    if (childCollapse && collapseOverride) {
+      var li = getChildElementsByTagName(ul, "li");
+      for (var i = 0; i < li.length; i++) {
+        collapseChildBlocks(li[i]);
+      }
+    }
+    ul.style.display = TOC_DISPLAY_EXPANDED;
+    //switchClass(ul, "toc-expanded", "toc-collapsed");
+  }
+}
+
+/**
+ * Collapse TOC node.
+ *
+ * @param n TOC node
+ */
+function tocNodeCollapse(n) {
+  n.firstChild.data = TOC_SYMBOL_COLLAPSED;
+  switchClass(n, TOC_CLASS_COLLAPSED, TOC_CLASS_EXPANDED);
+  var ul = getNextSiblingByTagName(n.nextSibling, TOC_ELEMENT_BLOCK);
+  if (ul !== null) {
+    ul.style.display = TOC_DISPLAY_COLLAPSED;
+    //switchClass(ul, "toc-collapsed", "toc-expanded");
+  }
+}
+
+/**
+ * Signal start of processing.
+ *
+ * @param message Message description of the process start
+ */
+function startProcess(message) {
+    processStart = new Date();
+    window.status = (message === undefined ? "" : message);    
+}
+
+/**
+ * Signal end of processing.
+ *
+ * @param message Message description of the process result
+ */
+function endProcess(message) {
+    processEnd = new Date();
+    window.status = (message === undefined ? "" : message);
+    processDuration = processEnd - processStart;
+}
+