diff -r 4d198a32ac7d -r d4809db37847 plugins/org.symbian.tools.wrttools.doc.WebDeveloper/html/js/page.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/plugins/org.symbian.tools.wrttools.doc.WebDeveloper/html/js/page.js Thu Aug 19 17:48:04 2010 -0700 @@ -0,0 +1,158 @@ +// TODO: move these constants to common.js +var URL_BASE = "index.html"; +var URL_SEPARATOR = "?content="; +var URL_SEPARATOR_PATTERN = "\\?content=(.+)$"; + +/** + * Initialize links + */ +function initPage() { + initialTocSync(); + /* + if (tocSupported) { + var as = document.getElementsByTagName("a"); + for (var i = 0; i < as.length; i++) { + attachEventListener(as[i], "click", syncTocHandler); + if (as[i].addEventListener) { + as[i].addEventListener("mousedown", syncTocHandler, false); + } else if (as[i].attachEvent) { + as[i].setAttribute("onmousedown", syncTocHandlerIE); + } + } + } + */ +} + +/** + * Do initial TOC synchronization. + */ +function initialTocSync() { + if (automaticSync) { + var baseUrl = getBaseUrl(); + var contentUrl = String(window.location); + var href = getRelativeUrl(contentUrl, baseUrl); + findTocItem(href); + } +} + +/** + * TOC sync + */ +function syncTocHandler(event) { + if (tocSupported) { + var n = getTargetNode(event); + var href = n.getAttribute("href"); + /* + if (isClass(n, "javadoc_ref")) { + if (href.indexOf('#') != -1) { + href = href.substring(0, url.indexOf('#')); + } + var a = href.split("/"); + var last = a.length - 1; + while (a[last].indexOf(".") != -1) { + last--; + } + a = a.slice(0, last + 1); + href = a.join("/") + "/package-summary.html"; + alert(n.getAttribute("href") + "\n" + href); + } + */ + findTocItem(href); + } +} + +/** + * Find current TOC node. + * + * TODO: move to common.js + */ +function findTocItem(url) { + if (tocSupported) { + var u = url; + if (url.indexOf('#') != -1) { + u = u.substring(0, url.indexOf('#')); + } + var baseUrl = getBaseUrl(); + if (!window.parent.frames.toc) { return; } + var d = window.parent.frames.toc.document; + var aes = d.getElementsByTagName(TOC_ELEMENT_LINK); + for (var i = 0; i < aes.length; i++) { + if (compareTocUrl(aes[i], getRelativeUrl(aes[i].href, baseUrl), u)) { + highlightTocItem(aes[i]); + // make sure TOC is expanded if needed + var item = aes[i].parentNode; + /* + if (childCollapse) { + collapseChildBlocks(item); + } + */ + while (item != null) { + if (item.parentNode && item.parentNode.nodeName.toLowerCase() == TOC_ELEMENT_BLOCK && + item.parentNode.parentNode && item.parentNode.parentNode.nodeName.toLowerCase() == TOC_ELEMENT_ITEM) { + item = item.parentNode.parentNode; + if (item.firstChild && item.firstChild.firstChild && item.firstChild.firstChild.data == TOC_SYMBOL_COLLAPSED) { + //toggle(n.firstChild); + tocNodeExpand(item.firstChild, false); + } + } else { + item = null; + } + } + break; + } + } + } +} + +/** + * Compare TOC link URL with document URL. + * + * TODO: move to common.js + * + * @param link TOC link element + * @param tocUrl Relative TOC url + * @param docUrl Relative document URL + */ +function compareTocUrl(link, tocUrl, docUrl) { + var _tocUrl = tocUrl.replace("\\", "/"); + var _docUrl = docUrl.replace("\\", "/"); + return _tocUrl === _docUrl; +} + +var infoWindow; + +/** + * Open info window. + * + * @param event activation event + */ +function openInfo(href) { + //var target = getTargetNode(event) + //var href = target.getAttribute("href"); + + if(infoWindow == null || infoWindow.closed) { + var width = 450; + var height = 110 + 20; + var left = window.screen.width / 2 - width; + var top = window.screen.height / 2 - height; + var infoWindow = window.open(href, "info", + "left=" + left + ",top=" + top + ",height=" + height + ",width=" + width + + ",menubar=no,toolbar=no,location=no,status=no,scrollbars=no,resizable=yes"); + } else { + infoWindow.location = href; + } + infoWindow.focus(); + + if (event.stopPropagation) { + event.stopPropagation(); + } else { + event.cancelBubble = true; + } + if (event.preventDefault) { + event.preventDefault(); + } else { + event.returnValue = false; + } + + return false; +} \ No newline at end of file