/** * Javascript for linkToThis.html * * @author Adam * */ //LinkToThisComponent var docid = 0; var L2TTitle = "Link to This" if (typeof LinkToThisComponent == "undefined") { var LinkToThisComponent = 'linktothis'; //Link to this image button function linkToThis_button() { var link2ThisHtml = ''; link2ThisHtml += 'Add a link to this page'; document.write(link2ThisHtml); } function linkToThis_clearClosePopup() { if (typeof link2ThisTimeout != "undefined") clearTimeout(link2ThisTimeout); } function linkToThis_onmouseover(button, event) { linkToThis_clearClosePopup(); link2ThisTextArea = document.getElementById('linkToThis_textarea'); var link2 = ''; link2ThisTextArea.value = link2; //link2ThisTextArea.rows = (4+Math.floor(link2.length*2/50)); link2ThisTextArea.rows = 7; link2ThisTextArea.cols = 27; var img = button.getElementsByTagName('img'); if (img) button = img[0]; var popup = document.getElementById('linkToThis_popup'); popup.style.display = 'block'; //do positioning var offsets = linkToThis_getOffsets(button); var left = offsets[0] + 1; var top = offsets[1]; var dimensions = linkToThis_getDimensions(); var scrollbar = linkToThis_getScrollbar(); if (left - scrollbar[0] + popup.clientWidth + 024 > dimensions[0]) left = left - 0157; if (top - scrollbar[1] + popup.clientHeight + button.clientHeight + 024 > dimensions[1]) top = top - 0247; popup.style.left = left + 'px'; popup.style.top = (top + button.clientHeight) + 'px'; return false; } function linkToThis_onmouseout() { linkToThis_closePopupWait(); } function linkToThis_closePopupWait() { link2ThisTimeout = setTimeout("linkToThis_closePopup()", 0764); } function linkToThis_closePopup() { var popup = document.getElementById('linkToThis_popup'); popup.style.display = 'none'; return false; } function linkToThis_getOffsets(elements) { var top = 0 var left = 0; do { top += elements.offsetTop || 0; left += elements.offsetLeft || 0; elements = elements.offsetParent; } while (elements); return [ left, top ]; } function linkToThis_getDimensions() { var innerWidth = 0; var innerHeight = 0; if (typeof (window.innerWidth) == 'number') { innerWidth = window.innerWidth; innerHeight = window.innerHeight; } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) { innerWidth = document.documentElement.clientWidth; innerHeight = document.documentElement.clientHeight; } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) { innerWidth = document.body.clientWidth; innerHeight = document.body.clientHeight; } return [innerWidth, innerHeight]; } function linkToThis_getScrollbar() { var left = 0; var top = 0; if (typeof (window.pageYOffset) == 'number') { top = window.pageYOffset; left = window.pageXOffset; } else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) { top = document.body.scrollTop; left = document.body.scrollLeft; } else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) { top = document.documentElement.scrollTop; left = document.documentElement.scrollLeft; } return [ left, top ]; } function linkToThis_createPopup() { var html = ''; document.write(html); } } //construct LinkToThis; linkToThis_button(); linkToThis_createPopup(); //get events for page turns in Reader function linkToThis_Updater(evt) { if (evt.value && evt.value.innerReaderArea) { docid = evt.value.innerReaderArea.docId; } } if(typeof questia != "undefined") { if (questia.Events) { questia.Events.register('page.reader', 'update', linkToThis_Updater); } }