home *** CD-ROM | disk | FTP | other *** search
Wrap
////////////////// ANNOTATION INSERT CONTROL /////////////////////// // // ported from AnnotInsertCtl.vb // dated on 20th December 1998 // // NOTE : have to call initProperties //////////////////////////////////////////////////////////////////// //////////////////// GLOBAL VARIABLES /////////////////// var TV__TVP = "<tvp>"; var TV__IE_MODULEID = 10000; var TV__IE_CLIENT_HDR = "AweAnnotMsg" + TV__TVP + TV__IE_MODULEID; var TV__TVM_REPLY_ANNOT = TV__IE_MODULEID + 20; var TV__TVM_SELECT_URL = TV__IE_MODULEID + 30; var TV__TVM_ACTIVATE_ANNOT = TV__IE_MODULEID + 60; var TV__TVM_UPDATE_ANNOT = TV__IE_MODULEID + 70; var TV__TVM_HIDE_ANNOT = TV__IE_MODULEID + 80; var TV__TVM_VOTE = TV__IE_MODULEID + 100; var TV__TVM_JOIN_PUBLIC_GRP = TV__IE_MODULEID + 110; var TV__TVM_MAIL_ANNOT = TV__IE_MODULEID + 130; var TV__TVM_SUBMENU_NOTES = TV__IE_MODULEID + 140; var TV__TVM_PAGELEVEL_MENU = TV__IE_MODULEID + 170; var TV__TVM_SHOW_NOTETUT_DLG= TV__IE_MODULEID + 180; var TV__TVM_SUBMIT_BUG = TV__IE_MODULEID + 500; var TV__PERSONAL_NOTE = 0x200; var TV__PAGELEVEL_NOTE = 0x20; var TV__UNATTACHED_NOTE = 0x80; var TV__RECOMMENDED_NOTE = 0x100; var TV__DEFAULT_NOTETYPE = 0x400; var TV__NOTETYPE_DISBALED = 0x80; var TV__MAX_PEERRATING = 32767; var TV__sSelectURLMsg = TV__IE_CLIENT_HDR + TV__TVP + TV__TVM_SELECT_URL; var TV__HighlightPrefix = "AweHighlight"; var TV__HighlightBgColor = "yellow"; var TV__HighlightTextColor = "darkblue"; var TV__bShowMailText = false; var TV__bStartMove = false; var TV__objFocus = null; var TV__bHideLine = false; var TV__mouseTrackY = 0; var TV__mouseTrackX = 0; var TV__objSelRange = null; var TV__keyDownImg = false; var TV__replacedMouseMoveFn = false; var TV__joingrpspan = "joingrpspan"; var TV__jgrpspan = "grpspan"; var TV__grpurl = "mygroup/mygroupnotes.asp?groupid="; var TV__annotMarkTag = "AweAnnotMarker"; var TV__annotAggMarkTag = "AweAnnotAggMarker"; var TV__annotRootID = "AweAnnotRootID"; var TV__inactiveAnnot = "AweInactiveAnnot"; var TV__refStrEnd = "AweRefTextEnd"; var TV__refStrStart = "AweRefTextStart"; ////////////////// annotation template /////////////////////////// var TV__annotTemplate = "<div id=annot onmouseup='TV__outOfNote(this);' onmousedown='TV__onmousedown(this);'>"; TV__annotTemplate += " <div id=annotHeader annotID='%TV__annotid%' annotType='%TV__annottype%' prevAnnotID='%TV__previd%' nextAnnotID='%TV__nextid%' rootAnnotID='%TV__rootid%' markerStatus='nothing'></div>"; TV__annotTemplate += " <div id=annotShadowBottom style='top:157' onselectstart='return false;'></div>"; TV__annotTemplate += " <div id=annotShadowRight onselectstart='return false;'></div>"; TV__annotTemplate += " <a id=annotSnapTo onclick=\"TV__handleRefTextIconClick('%TV__rootid%');\" >"; TV__annotTemplate += " <img border=0 id=snapimg src='%TV__AppDir%/htm/images/snap.gif' title='snap this note to its reference text'>"; TV__annotTemplate += " </a>"; TV__annotTemplate += " <div id=AweAnnotRootID%TV__rootid% class=AweActiveBasicAnnot>"; TV__annotTemplate += " <span id=annotTitle class=annotTitle onselectstart='return false;'>%TV__title%</span><br>"; TV__annotTemplate += " <span id=annotAuthor class=annotAuthor onselectstart='return false;'>by %TV__author%</span><br>"; TV__annotTemplate += " <a href='' onclick='return false;' onkeydown='TV__keydownImg();' onkeyup='TV__keyupImg();' onkeypress='TV__keypressImg();' style='cursor:move'><img id=annotIcon border=0 src=''></a>"; TV__annotTemplate += " <div id=voteStatus></div>"; TV__annotTemplate += "<div id=annotContent class=annotContent>%TV__content%</div>"; TV__annotTemplate += " </div>"; TV__annotTemplate += " <div id=awedogearbase onselectstart='return false;'></div> "; TV__annotTemplate += " <img border=0 id=awedogear src='%TV__AppDir%/htm/images/dogear.gif'>"; TV__annotTemplate += " <div id=annotToolbar onselectstart='return false;'>"; TV__annotTemplate += "<img border=0 id=annotCloseHandle class=annotToolBtn disable=0 dis='%TV__AppDir%/htm/images/d_close.gif' onmouseover=\"TV__noteToolbarMove(this, '%TV__AppDir%/htm/images/i_close.gif');\" onmouseout=\"TV__noteToolbarMove(this, '%TV__AppDir%/htm/images/o_close.gif');\" src='%TV__AppDir%/htm/images/o_close.gif' title='close this note' onclick=\"TV__handleCloseAnnotIconClick('%TV__rootid%');\">"; TV__annotTemplate += "<img border=0 id=annotReplyHandle class=annotToolBtn disable=0 dis='%TV__AppDir%/htm/images/d_reply.gif' enb='%TV__AppDir%/htm/images/o_reply.gif' onmouseover=\"TV__noteToolbarMove(this, '%TV__AppDir%/htm/images/i_reply.gif');\" onmouseout=\"TV__noteToolbarMove(this, '%TV__AppDir%/htm/images/o_reply.gif');\" src='%TV__AppDir%/htm/images/o_reply.gif' title='reply to this note' onclick=\"TV__handleReplyIconClick('%TV__rootid%', this);\">"; TV__annotTemplate += "<img border=0 id=annotMailHandle class=annotToolBtn disable=0 dis='%TV__AppDir%/htm/images/d_mail.gif' enb='%TV__AppDir%/htm/images/o_mail.gif' onmouseover=\"TV__noteToolbarMove(this, '%TV__AppDir%/htm/images/i_mail.gif');\" onmouseout=\"TV__noteToolbarMove(this, '%TV__AppDir%/htm/images/o_mail.gif');\" src='%TV__AppDir%/htm/images/o_mail.gif' title='mail this note' onclick=\"TV__handleMailIconClick('%TV__rootid%', this);\">"; TV__annotTemplate += "<img border=0 id=annotVoteHandle class=annotToolBtn disable=0 dis='%TV__AppDir%/htm/images/d_vote.gif' enb='%TV__AppDir%/htm/images/o_vote.gif' onmouseover=\"TV__noteToolbarMove(this, '%TV__AppDir%/htm/images/i_vote.gif');\" onmouseout=\"TV__noteToolbarMove(this, '%TV__AppDir%/htm/images/o_vote.gif');\" src='%TV__AppDir%/htm/images/o_vote.gif' title='vote this note' onclick=\"TV__handleVoteClick('%TV__rootid%', this);\">"; TV__annotTemplate += " <span id=annotMailTxt><img border=0 src='%TV__AppDir%/htm/images/mailthis.gif'>Vote Now!</span>"; TV__annotTemplate += " </div>"; TV__annotTemplate += " <div id=annotNavigate onselectstart='return false;'>"; TV__annotTemplate += " <img border=0 id=annotPrevHandle class=annotToolBtn disable=0 dis='%TV__AppDir%/htm/images/prevdis.gif' onmouseover=\"TV__noteToolbarMove(this, '%TV__AppDir%/htm/images/previn.gif');\" onmouseout=\"TV__noteToolbarMove(this, '%TV__AppDir%/htm/images/prevout.gif');\" src='%TV__AppDir%/htm/images/prevout.gif' style='visibility: %TV__prevVisible%' title='show previous notes' onclick=\"TV__handlePrevReplyIconClick('%TV__rootid%');\">"; TV__annotTemplate += " <img border=0 id=annotNextHandle class=annotToolBtn disable=0 dis='%TV__AppDir%/htm/images/nextdis.gif' onmouseover=\"TV__noteToolbarMove(this, '%TV__AppDir%/htm/images/i_next.gif');\" onmouseout=\"TV__noteToolbarMove(this, '%TV__AppDir%/htm/images/o_next.gif');\" src='%TV__AppDir%/htm/images/o_next.gif' style='visibility: %TV__nextVisible%' title='show next notes' onclick=\"TV__handleNextIconClick('%TV__rootid%');\">"; TV__annotTemplate += " </div>"; TV__annotTemplate += " <div id=vote style='height:54' class=aweVotepanel><center>"; TV__annotTemplate += " <div id=votehdr>Vote Now</div>"; TV__annotTemplate += " <div class=voteItem onmousedown='event.cancelBubble=true;' onclick=\"TV__voteNote('%TV__rootid%', 1);\" onmouseover='return TV__VoteMouseOver(this);' onmouseout='return TV__VoteMouseOut(this);'><center><img border=0 src='%TV__AppDir%/htm/images/v_star.gif'> <span class=voteItem>Great Note!</span></center></div>"; TV__annotTemplate += " <div class=voteItem onmousedown='event.cancelBubble=true;' onclick=\"TV__voteNote('%TV__rootid%', 0);\" onmouseover='return TV__VoteMouseOver(this);' onmouseout='return TV__VoteMouseOut(this);'><center><img border=0 src='%TV__AppDir%/htm/images/v_trash.gif'> <span class=voteItem>Spam/Junk</span></center></div>"; TV__annotTemplate += " </center><img class=aweVotebase src='%TV__AppDir%/htm/images/votebase.gif'>"; TV__annotTemplate += " </div>"; TV__annotTemplate += "</div>"; TV__annotTemplate += "<hr id=annotVertHr%TV__rootid% class=AweActiveVertHrLine style='display:none'>"; TV__annotTemplate += "<div id=annotVertDiv%TV__rootid% class=AweActiveVertDivLine style='display:none'></div>"; TV__annotTemplate += "<hr id=annotHori%TV__rootid% class=AweActiveHoriLine style='display:none'>"; var TV__signature = "<br><br><hr noshade style='border:0; color:lightgrey'><font class=signature>Like this note? <span class=signClick onclick=\"TV__handleMailIconClick('%TV__rootid%');\">Email</span> it to a friend.</font>"; var TV__helpVote = "<font class=signature>Voice your opinion! <span class=signClick onclick='CreateWin(\"%TV__strWebSite%help/helpvote.htm\", \"VoteHelp\", 470, 420, 0, 1, 0);'>Vote</span> on this note.</font>"; var TV__star = "<img border=0 src='%TV__AppDir%/htm/images/star.gif'>"; var TV__starme = "<img border=0 src='%TV__AppDir%/htm/images/starme.gif'>"; var TV__trash = "<img border=0 src='%TV__AppDir%/htm/images/trash.gif'>"; var TV__trashme = "<img border=0 src='%TV__AppDir%/htm/images/trashme.gif'>"; var TV__recomImg = "<img border=0 src='%TV__AppDir%/htm/images/recom.gif'> "; //////////////////// REFSTRING TAG /////////////////////////////// var TV__ghostFrontIDSelText = "ghostFrontIDSelText"; var TV__ghostEndIDSelText = "ghostEndIDSelText"; var TV__ghostFrontTagSelText = "<span style='display:none;' id=" + TV__ghostFrontIDSelText + ">current</span>"; var TV__ghostEndTagSelText = "<span style='display:none;' id=" + TV__ghostEndIDSelText + ">current</span>"; //////////////////// EVENT SINKS /////////////////////////////// document.ondblclick = TV__ondblclick; document.onselectstart = TV__onselectstart; window.onresize = TV__onresize; var TV__aggMarkerArray = new Array; var TV__bAggregated = false; var TV__raisedIndex = 10; var TV__topIndex = 8; var TV__bottomIndex = 5; ///////////////////////// MOUSE HANDLER //////////////////////////// function TV__ondblclick() { if (document.selection.createRange.Text != "") { TV__sendMsg2Client(TV__sSelectURLMsg + TV__TVP + document.parentWindow.location.href); } } function TV__onmousedown(TV__obj) { // The left mouse button is clicked if (event.button == 1) { var esrc = event.srcElement; hideVoteDiv(TV__getAnnotAttribute(TV__obj, "rootAnnotID")); // don't not remove this if block, it will cause IE5 to crash when user tries to scroll on note if (TV__objFocus != TV__obj) { TV__objFocus = TV__obj; TV__sendActivateAnnotEvent(TV__getAnnotAttribute(TV__objFocus, "annotID"), window.location.href); TV__RaiseAnnot(TV__objFocus, true, true); // raise this annotation for dragging } if ( (esrc.id != 'annotContent') && (esrc.className != "annotToolBtn") ) { TV__bStartMove = true; TV__bHideLine = true; TV__mouseTrackX = event.clientX; TV__mouseTrackY = event.clientY; if (document.onmousemove == null) { document.onmousemove = TV__onmousemove; TV__replacedMouseMoveFn = true; } else { TV__objFocus.onmousemove = TV__onmousemove; } } } } function TV__outOfNote(TV__DragObj) { if (TV__bStartMove == true) { var TV__sRootID = TV__getAnnotAttribute(TV__DragObj, "rootAnnotID"); var TV__objMarker = TV__GetNonAggMarker(TV__sRootID); // Draw line joining the reference text and the annotation if (TV__objMarker != null) TV__DrawLine(TV__sRootID, TV__GetAbsOffsetLeft(TV__objMarker), TV__GetAbsOffsetTop(TV__objMarker), TV__DragObj.offsetLeft, TV__DragObj.offsetTop, TV__objMarker, true); // Lower stickies back to the normal z-index setting for an active annotation TV__RaiseAnnot(TV__DragObj, false, false); TV__bStartMove = false; if (TV__replacedMouseMoveFn == true) { document.onmousemove = null; TV__replacedMouseMoveFn = false; } } } function TV__onmousemove() { if ( (event.button == 1) && (TV__objFocus != null) && (TV__bStartMove == true) ) { // Hide the line if the line is still not hidden if (TV__bHideLine == true) { var TV__rootID = TV__getAnnotAttribute(TV__objFocus, "rootAnnotID"); TV__HideLine(TV__rootID); // Hide the line joining the annotation marker to the annotation TV__bHideLine = false; } // move the element and save mouse's position var TV__iTop = event.clientY; var TV__iLeft = event.clientX; // Move the annotation to the new position TV__objFocus.style.pixelLeft += TV__iLeft - TV__mouseTrackX; TV__objFocus.style.pixelTop += TV__iTop - TV__mouseTrackY; TV__mouseTrackX = TV__iLeft; TV__mouseTrackY = TV__iTop; event.cancelBubble = true; } } function TV__onselectstart() { TV__sendMsg2Client(TV__sSelectURLMsg + TV__TVP + window.location.href); if ((TV__objFocus != null) && (TV__bStartMove == true)) { return false; } } ///////////////////////// WINDOW HANDLER //////////////////////////// function TV__onresize() { if (document.all != null) { RedrawLines(); } } ///////////////////////// MOUSE CLICK HANDLER //////////////////////////// function TV__handleVoteClick(TV__rootid, TV__Obj) { if ((TV__Obj != null) && (TV__Obj.disable == 1)) return; var TV__annotPad = TV__getAnnotPadFromRootID(TV__rootid); if (TV__annotPad != null) TV__ShowVoteDiv(TV__annotPad); event.cancelBubble = true; } function TV__handleRefTextIconClick(TV__rootid) { if (event.srcElement.disable == 1) return; var TV__annotPad = TV__getAnnotPadFromRootID(TV__rootid); if (TV__annotPad != null) { TV__AttachAnnot2Ref(TV__annotPad); TV__sendActivateAnnotEvent(TV__getAnnotAttribute(TV__annotPad, "annotID"), window.location.href); } event.cancelBubble = true; } function handleAnnotMarkClick(TV__sID) { event.cancelBubble = true; var TV__objAnnotID = document.all[TV__annotRootID + TV__sID]; if (TV__objAnnotID != null) { var TV__objAnnot = TV__objAnnotID.parentElement; if (TV__objAnnot.style.display == "none") TV__sendUpdateAnnotEvent(TV__sID, window.location.href); // open annote else TV__sendActivateAnnotEvent(TV__getAnnotAttribute(TV__objAnnot, "annotID"), window.location.href); } else { TV__sendUpdateAnnotEvent(TV__sID, window.location.href); } } function TV__handleCloseAnnotIconClick(TV__rootid) { var TV__annotPad = TV__getAnnotPadFromRootID(TV__rootid); if (TV__annotPad != null) TV__sendMsg2Client(TV__IE_CLIENT_HDR + TV__TVP + TV__TVM_HIDE_ANNOT + TV__TVP + window.location.href + TV__TVP + TV__getAnnotAttribute(TV__annotPad, "annotID")); event.cancelBubble = true; } function TV__handleNextIconClick(TV__rootid) { var TV__annotPad = TV__getAnnotPadFromRootID(TV__rootid); if (TV__annotPad != null) TV__sendUpdateAnnotEvent(TV__getAnnotAttribute(TV__annotPad, "nextAnnotID"), window.location.href); event.cancelBubble = true; } function TV__handlePrevReplyIconClick(TV__rootid) { var TV__annotPad = TV__getAnnotPadFromRootID(TV__rootid); if (TV__annotPad != null) TV__sendUpdateAnnotEvent(TV__getAnnotAttribute(TV__annotPad, "prevAnnotID"), window.location.href); event.cancelBubble = true; } function TV__handleReplyIconClick(TV__rootid, TV__Obj) { if ((TV__Obj != null) && (TV__Obj.disable == 1)) return; var TV__annotPad = TV__getAnnotPadFromRootID(TV__rootid); if (TV__annotPad != null) { var TV__sID = TV__getAnnotAttribute(TV__annotPad, "annotID"); TV__sendMsg2Client(TV__IE_CLIENT_HDR + TV__TVP + TV__TVM_REPLY_ANNOT + TV__TVP + window.location.href + TV__TVP + TV__sID + TV__TVP + TV__getAnnotTitle(TV__annotPad)); TV__sendActivateAnnotEvent(TV__sID, window.location.href); } event.cancelBubble = true; } function TV__handleMailIconClick(TV__rootid, TV__Obj) { if ((TV__Obj != null) && (TV__Obj.disable == 1)) return; var TV__annotPad = TV__getAnnotPadFromRootID(TV__rootid); if (TV__annotPad != null) { var TV__sID = TV__getAnnotAttribute(TV__annotPad, "annotID"); TV__sendMsg2Client(TV__IE_CLIENT_HDR + TV__TVP + TV__TVM_MAIL_ANNOT + TV__TVP + window.location.href + TV__TVP + TV__sID); TV__sendActivateAnnotEvent(TV__sID, window.location.href); } event.cancelBubble = true; } function TV__AttachAnnot2Ref(TV__objAnnot, bPageLevelNote) { var TV__sRootID = TV__getAnnotAttribute(TV__objAnnot, "rootAnnotID"); var TV__sEndID = TV__refStrEnd + TV__sRootID; var TV__objRefText = document.all[TV__sEndID]; if (TV__objRefText != null) { // get the absolute top coordinate of the reference text // and update the top coordinate of the annotation var TV__iNewTop = TV__objRefText.offsetHeight + TV__GetAbsOffsetTop(TV__objRefText); TV__objAnnot.style.pixelTop = TV__iNewTop; // Drawing the line after the annot has been attached to the reference text var TV__objMarker = TV__GetNonAggMarker(TV__sRootID); // get the absoluate left coordinate of the reference text // update the left coordinate of the annotation var TV__iAbsLeft = TV__GetAbsOffsetLeft(TV__objMarker); // make the left edge of note flush with the refstring var TV__startRef = document.all['AweRefTextStart' + TV__getAnnotAttribute(TV__objAnnot, "rootAnnotID")]; var TV__iPadLeft = TV__GetAbsOffsetLeft(TV__startRef); TV__objAnnot.style.pixelLeft = TV__iPadLeft; var TV__iAbsTop = TV__GetAbsOffsetTop(TV__objMarker); // Hide the previous line joining the annotation and marker TV__HideLine(TV__sRootID); // Draw the new line joining the annotation and marker TV__DrawLine(TV__sRootID, TV__iAbsLeft, TV__iAbsTop, TV__iPadLeft, TV__iNewTop, TV__objMarker, true); } else { var xOffset = 0; var yOffset = 0; if (bPageLevelNote == true) { xOffset = 20; yOffset = 20; } TV__PosToRHSBottom(TV__objAnnot, xOffset, yOffset); } } ///////////////////////// ANNOT LINES HANDLER //////////////////////////// function RedrawLines() { var TV__obj = document.all.annot; if (TV__obj != null) { if (TV__obj.length == null) // one annotation TV__RedrawLinesForAnnot(TV__obj); else for (var i = 0; i < TV__obj.length; i++) TV__RedrawLinesForAnnot(TV__obj[i]); } } function TV__RedrawLinesForAnnot(TV__obj) { if (TV__obj != null) { var TV__strRootID = TV__getAnnotAttribute(TV__obj, "rootAnnotID"); var TV__objMarker = TV__GetNonAggMarker(TV__strRootID); // Draw line joining the reference text and the annotation post-it if (TV__objMarker != null) TV__DrawLine(TV__strRootID, TV__GetAbsOffsetLeft(TV__objMarker), TV__GetAbsOffsetTop(TV__objMarker), TV__obj.offsetLeft, TV__obj.offsetTop, TV__objMarker, false); } } function TV__DrawLine(TV__sRootID, TV__fromX, TV__fromY, TV__toX, TV__toY, TV__objImage, TV__bVisible) { if ( (TV__fromX >= TV__toX) && (TV__fromY >= TV__toY) ) TV__DrawLineQuad2(TV__sRootID, TV__fromX, TV__fromY, TV__toX, TV__toY, TV__objImage, TV__bVisible); else if ( (TV__toX > TV__fromX) && (TV__fromY >= TV__toY) ) TV__DrawLineQuad1(TV__sRootID, TV__fromX, TV__fromY, TV__toX, TV__toY, TV__objImage, TV__bVisible); else if ( (TV__fromX >= TV__toX) && (TV__toY > TV__fromY) ) TV__DrawLineQuad3(TV__sRootID, TV__fromX, TV__fromY, TV__toX, TV__toY, TV__objImage, TV__bVisible); else TV__DrawLineQuad4(TV__sRootID, TV__fromX, TV__fromY, TV__toX, TV__toY, TV__objImage, TV__bVisible); } function TV__GetHoriLine(TV__sRootID) { var TV__sHoriID = "annotHori" + TV__sRootID; var TV__objHLine = document.all[TV__sHoriID]; if (TV__objHLine == null) { alert("TV__DrawLine: Error...cannot find horizontal line for annotID = " + TV__sHoriID); return null; } return TV__objHLine; } function TV__GetVertLine(TV__sRootID, TV__height) { var TV__sVertHrID = "annotVertHr" + TV__sRootID; var TV__sVertDivID = "annotVertDiv" + TV__sRootID; var TV__objVHrLine = document.all[TV__sVertHrID]; var TV__objVDivLine = document.all[TV__sVertDivID]; if ( (TV__objVHrLine == null) || (TV__objVDivLine == null) ) { alert("TV__DrawLine: Error...cannot find vertical line for annotID = " + TV__sVertID); return null; } var TV__objVLine = null; if (TV__height > 20) { TV__objVLine = TV__objVDivLine; TV__objVHrLine.style.display = "none"; } else { TV__objVLine = TV__objVHrLine; TV__objVDivLine.style.display = "none"; } return TV__objVLine; } function TV__DrawLineQuad1(TV__sRootID, TV__fromX, TV__fromY, TV__toX, TV__toY, TV__objImage, TV__bVisible) { var TV__imgWidth = TV__objImage.offsetWidth * 0.5; var TV__imgHeight = TV__objImage.offsetHeight * 0.5; var TV__diffX = TV__toX - TV__fromX + TV__imgWidth; var TV__diffY = TV__fromY - TV__toY + TV__imgHeight; var TV__objVLine = TV__GetVertLine(TV__sRootID, TV__diffY); var TV__objHLine = TV__GetHoriLine(TV__sRootID); if ( (TV__objVLine == null) || (TV__objHLine == null) ) return; TV__objHLine.style.width = (TV__diffX > 0) ? TV__diffX : 0; TV__objVLine.style.height = (TV__diffY > 0) ? TV__diffY : 0; TV__objHLine.style.pixelLeft = TV__fromX + TV__imgWidth; TV__objHLine.style.pixelTop = TV__toY; TV__objVLine.style.pixelLeft = TV__fromX + TV__imgWidth; TV__objVLine.style.pixelTop = TV__toY; if (TV__bVisible) { TV__objVLine.style.display = ""; TV__objHLine.style.display = ""; } } function TV__DrawLineQuad2(TV__sRootID, TV__fromX, TV__fromY, TV__toX, TV__toY, TV__objImage, TV__bVisible) { var TV__imgWidth = TV__objImage.offsetWidth * 0.5; var TV__imgHeight = TV__objImage.offsetHeight * 0.5; var TV__diffX = TV__fromX - TV__toX + TV__imgWidth; var TV__diffY = TV__fromY - TV__toY + TV__imgHeight; var TV__objVLine = TV__GetVertLine(TV__sRootID, TV__diffY); var TV__objHLine = TV__GetHoriLine(TV__sRootID); if ( (TV__objVLine == null) || (TV__objHLine == null) ) return; TV__objHLine.style.width = (TV__diffX > 0) ? TV__diffX : 0; TV__objVLine.style.height = (TV__diffY > 0) ? TV__diffY : 0; TV__objHLine.style.pixelLeft = TV__toX; TV__objHLine.style.pixelTop = TV__fromY + TV__imgHeight; TV__objVLine.style.pixelLeft = TV__toX; TV__objVLine.style.pixelTop = TV__toY if (TV__bVisible) { TV__objVLine.style.display = ""; TV__objHLine.style.display = ""; } } function TV__DrawLineQuad3(TV__sRootID, TV__fromX, TV__fromY, TV__toX, TV__toY, TV__objImage, TV__bVisible) { var TV__imgWidth = TV__objImage.offsetWidth * 0.5; var TV__imgHeight = TV__objImage.offsetHeight * 0.5; var TV__diffX = TV__fromX - TV__toX + TV__imgWidth; var TV__diffY = TV__toY - TV__fromY + TV__imgHeight +1; // +1 to compensation rounding error var TV__objVLine = TV__GetVertLine(TV__sRootID, TV__diffY); var TV__objHLine = TV__GetHoriLine(TV__sRootID); if ( (TV__objVLine == null) || (TV__objHLine == null) ) return; TV__objHLine.style.width = (TV__diffX > 0) ? TV__diffX : 0; TV__objVLine.style.height = (TV__diffY > 0) ? TV__diffY : 0; TV__objHLine.style.pixelLeft = TV__toX; TV__objHLine.style.pixelTop = TV__fromY + TV__imgHeight; TV__objVLine.style.pixelLeft = TV__toX; TV__objVLine.style.pixelTop = TV__fromY + TV__imgHeight; if (TV__bVisible) { TV__objVLine.style.display = ""; TV__objHLine.style.display = ""; } } function TV__DrawLineQuad4(TV__sRootID, TV__fromX, TV__fromY, TV__toX, TV__toY, TV__objImage, TV__bVisible) { var TV__imgWidth = TV__objImage.offsetWidth * 0.5; var TV__imgHeight = TV__objImage.offsetHeight * 0.5; var TV__diffX = TV__toX - TV__fromX + TV__imgWidth; var TV__diffY = TV__toY - TV__fromY - TV__imgHeight +1; // +1 to compensation rounding error var TV__objVLine = TV__GetVertLine(TV__sRootID, TV__diffY); var TV__objHLine = TV__GetHoriLine(TV__sRootID); if ( (TV__objVLine == null) || (TV__objHLine == null) ) return; TV__objHLine.style.width = (TV__diffX > 0) ? TV__diffX : 0; TV__objVLine.style.height = (TV__diffY > 0) ? TV__diffY : 0; TV__objHLine.style.pixelLeft = TV__fromX + TV__imgWidth; TV__objHLine.style.pixelTop = TV__toY; TV__objVLine.style.pixelLeft = TV__fromX + TV__imgWidth; TV__objVLine.style.pixelTop = TV__fromY + TV__imgHeight; if (TV__bVisible) { TV__objVLine.style.display = ""; TV__objHLine.style.display = ""; } } function TV__HideLine(TV__sRootID) { var TV__sVertHrID = "annotVertHr" + TV__sRootID; var TV__sVertDivID = "annotVertDiv" + TV__sRootID; var TV__sHoriID = "annotHori" + TV__sRootID; var TV__objVHrLine = document.all[TV__sVertHrID]; var TV__objVDivLine = document.all[TV__sVertDivID]; if (TV__objVHrLine.length == null) // confirm one vertical line { TV__objVHrLine.style.display = "none"; } if (TV__objVDivLine.length == null) // confirm one vertical line { TV__objVDivLine.style.display = "none"; } var TV__objHLine = document.all[TV__sHoriID]; if (TV__objHLine.length == null) // confirm one horizontal line TV__objHLine.style.display = "none"; } ///////////////////////// MISCELANEOUS //////////////////////////// function TV__sendMsg2Client(TV__msg) { window.status = TV__msg; window.status = ""; } function TV__sendActivateAnnotEvent(TV__sID, href) { TV__sendMsg2Client(TV__IE_CLIENT_HDR + TV__TVP + TV__TVM_ACTIVATE_ANNOT + TV__TVP + href + TV__TVP + TV__sID); } function TV__sendUpdateAnnotEvent(TV__sID, href) { TV__sendMsg2Client(TV__IE_CLIENT_HDR + TV__TVP + TV__TVM_UPDATE_ANNOT + TV__TVP + href + TV__TVP + TV__sID); } function TV__GetAbsOffsetLeft(TV__obj) { if (TV__obj == null) return 0; var TV__iAbsLeft = TV__obj.offsetLeft; var TV__objLocal = TV__obj.offsetParent; // Get the offset parent for this object if (TV__objLocal == null) return TV__iAbsLeft; // Update the absolute left coordinate for the current object taking into account the parent offset while ( (TV__objLocal != null) && (TV__objLocal.tagName != "BODY") ) { TV__iAbsLeft += TV__objLocal.offsetLeft; TV__objLocal = TV__objLocal.offsetParent; } return TV__iAbsLeft; } function TV__GetAbsOffsetTop(TV__obj) { if (TV__obj == null) return 0; var TV__iAbsTop = TV__obj.offsetTop; var TV__objLocal = TV__obj.offsetParent; if (TV__objLocal == null) return TV__iAbsTop; // Update the absolute top coordinate for the current object taking into account the parent offset while ( (TV__objLocal != null) && (TV__objLocal.tagName != "BODY") ) { TV__iAbsTop += TV__objLocal.offsetTop; TV__objLocal = TV__objLocal.offsetParent; } return TV__iAbsTop; } /** Raise/Lower the annotation post-it **/ function TV__RaiseAnnot(TV__objAnnot, TV__bRaise, TV__bDrag) { if (TV__objAnnot == null) return; var TV__zIndex; if (TV__bDrag != null) { TV__zIndex = (TV__bDrag) ? TV__raisedIndex : TV__topIndex; TV__bRaise = true; } else { TV__zIndex = (TV__bRaise) ? TV__topIndex : TV__bottomIndex; } TV__chgUIWhenRaiseAnnot(TV__objAnnot, TV__bRaise, TV__zIndex) var TV__sAnnotID = TV__getAnnotAttribute(TV__objAnnot, "rootAnnotID"); TV__DrawLineWhenRaiseAnnot(TV__sAnnotID, TV__bRaise, TV__zIndex) } function TV__chgUIWhenRaiseAnnot(TV__objAnnot, TV__bRaise, TV__zIndex) { var TV__pad = TV__getAnnotPad(TV__objAnnot); if (TV__bRaise == true) { TV__pad.className = TV__objAnnot.getAttribute("AnnotType"); if ( (TV__getAnnotAttribute(TV__objAnnot, "annotType") & TV__PERSONAL_NOTE) == 0) { TV__objAnnot.all.annotTitle.className = "annotTitle"; TV__objAnnot.all.annotAuthor.className = "annotAuthor"; TV__objAnnot.all.annotContent.className = "annotContent"; } else { TV__objAnnot.all.annotTitle.className = "psnannotTitle"; TV__objAnnot.all.annotAuthor.className = "psnannotAuthor"; TV__objAnnot.all.annotContent.className = "psnannotContent"; } } else { TV__pad.className = TV__inactiveAnnot; TV__objAnnot.all.annotTitle.className = "inactiveannotTitle"; TV__objAnnot.all.annotAuthor.className = "inactiveannotAuthor"; TV__objAnnot.all.annotContent.className = "inactiveannotContent"; } TV__objAnnot.style.display = ""; TV__objAnnot.style.zIndex = TV__zIndex; } function TV__DrawLineWhenRaiseAnnot(TV__sAnnotID, TV__bRaise, TV__zIndex) { if (TV__sAnnotID != null) { var TV__objRefMarker = TV__GetAnnotMarker(TV__sAnnotID); if (TV__objRefMarker) { var TV__vertLine = document.all["annotVertHr" + TV__sAnnotID]; var TV__sVertZIndex = (TV__bRaise) ? "AweActiveVertHrLine" : "AweInactiveVertHrLine"; if (TV__vertLine.style.display == "none") { TV__vertLine = document.all["annotVertDiv" + TV__sAnnotID]; TV__sVertZIndex = (TV__bRaise) ? "AweActiveVertDivLine" : "AweInactiveVertDivLine"; } var TV__horiLine = document.all["annotHori" + TV__sAnnotID]; var TV__sHoriZIndex = (TV__bRaise) ? "AweActiveHoriLine" : "AweInactiveHoriLine"; TV__vertLine.className = TV__sVertZIndex; TV__horiLine.className = TV__sHoriZIndex; TV__vertLine.style.zIndex = TV__zIndex-1; TV__horiLine.style.zIndex = TV__zIndex-1; } } } ////////////////////// GLOBAL VARIABLE ////////////////////////// var TV__AppDir = null; var TV__strAweBaseSrc = null; var TV__websiteURL = null; var TV__AnnotTypesArray = new Array; //////////////////////// OBJECT DEFINITION /////////////////////// function TV__Annotation(TV__annotid, TV__rootid, TV__previd, TV__nextid, TV__url, TV__title, TV__author, TV__content, TV__reference, TV__type, TV__svrType, TV__sGroupid, TV__sGroupName, TV__bMember, TV__bUnattached, TV__selfRate, TV__rating, TV__rateYes, TV__rateNo, TV__nonmbrInPdtGrp) { this.TV__annotid = TV__annotid; this.TV__rootid = TV__rootid; this.TV__previd = TV__previd; this.TV__nextid = TV__nextid; this.TV__url = TV__url; this.TV__title = TV__replaceAmpersand(TV__title); this.TV__author = TV__author; this.TV__content = TV__replaceAmpersand(TV__content); this.TV__reference = TV__reference; this.TV__type = TV__type & (~TV__NOTETYPE_DISBALED); this.TV__svrType = TV__svrType; this.TV__sGroupid = TV__sGroupid; this.TV__sGroupName= TV__sGroupName; this.TV__bMember = TV__bMember; this.TV__unattached= TV__bUnattached; this.TV__pageLevel = ( (TV__type & TV__PAGELEVEL_NOTE) == TV__PAGELEVEL_NOTE); this.TV__type &= (~TV__PAGELEVEL_NOTE); this.TV__recommended = ( (TV__type & TV__RECOMMENDED_NOTE) == TV__RECOMMENDED_NOTE); this.TV__type &= (~TV__RECOMMENDED_NOTE); this.TV__selfRate = TV__selfRate; this.TV__rating = TV__rating; this.TV__rateYes = TV__rateYes; this.TV__rateNo = TV__rateNo; this.TV__disabled = ((TV__type & TV__NOTETYPE_DISBALED) == TV__NOTETYPE_DISBALED); this.TV__nonmbrInPdtGrp = (TV__nonmbrInPdtGrp == "1") ? true : false; this.TV__sPrevVisible = (this.TV__previd == "") ? "hidden" : "visible"; this.TV__sNextVisible = (this.TV__nextid == "") ? "hidden" : "visible"; this.TV__title = TV__findReplace(this.TV__title, /</, "<"); this.TV__title = TV__findReplace(this.TV__title, />/, ">"); this.TV__markup = TV__annotMarkup; this.TV__markupForContent = TV__markupForContent; } function TV__annotMarkup() { var TV__sAnnot = TV__annotTemplate; TV__sAnnot = TV__findReplace(TV__sAnnot, /%TV__annotid%/, this.TV__annotid); TV__sAnnot = TV__findReplace(TV__sAnnot, /%TV__rootid%/, this.TV__rootid); TV__sAnnot = TV__findReplace(TV__sAnnot, /%TV__annottype%/, this.TV__type); TV__sAnnot = TV__findReplace(TV__sAnnot, /%TV__previd%/, this.TV__previd); TV__sAnnot = TV__findReplace(TV__sAnnot, /%TV__nextid%/, this.TV__nextid); if (this.TV__recommended == true) TV__sAnnot = TV__findReplace(TV__sAnnot, /%TV__title%/, TV__recomImg + this.TV__title); else TV__sAnnot = TV__findReplace(TV__sAnnot, /%TV__title%/, this.TV__title); TV__sAnnot = TV__findReplace(TV__sAnnot, /%TV__author%/, this.TV__author); TV__sAnnot = TV__findReplace(TV__sAnnot, /%TV__content%/, this.TV__markupForContent()); TV__sAnnot = TV__findReplace(TV__sAnnot, /%TV__nextVisible%/, this.TV__sNextVisible); TV__sAnnot = TV__findReplace(TV__sAnnot, /%TV__prevVisible%/, this.TV__sPrevVisible); return TV__sAnnot; } function TV__markupForContent() { var TV__sJoin = ""; if ( (this.TV__svrType != "public") && (this.TV__bMember == false) && (this.TV__nonmbrInPdtGrp == false)) TV__sJoin = "<span id=" + TV__joingrpspan + this.TV__sGroupid + " style='cursor:hand' onclick=\"TV__JoinPublicGrp('" + this.TV__url + "', '" + this.TV__sGroupid + "')\"><u>JOIN</u></span>"; if (this.TV__sGroupName == '') return this.TV__content; var TV__sGroupName = this.TV__sGroupName; // // not for public:public group and for non-member // if (this.TV__bMember == true) TV__sGroupName = "<a style='color:blue' name=TV__grptitle href=\"javascript:TV__gotoGroupPage('" + this.TV__sGroupid + "')\">" + this.TV__sGroupName + "</a>"; return "<span id=" + TV__jgrpspan + this.TV__sGroupid + "><font color=blue>Group: <span id=TV__grptitle>"+ TV__sGroupName + "</span> " + TV__sJoin + "</font></span><br><br>" + this.TV__content; } function TV__AnnotType(TV__id, TV__classname, TV__baseclassname, TV__bsbdrclassname, TV__marker, TV__readMarker, TV__visitMarker, TV__icon, TV__replyTo, TV__mailTo, TV__vote) { this.TV__id = TV__id; this.TV__classname = TV__classname; this.TV__bsclassname = TV__baseclassname; this.TV__bsbdrclassname = TV__bsbdrclassname; this.TV__marker = TV__marker; this.TV__readMarker = TV__readMarker; this.TV__visitMarker = TV__visitMarker; this.TV__icon = TV__icon; this.TV__replyTo = TV__replyTo; this.TV__mailTo = TV__mailTo; this.TV__vote = TV__vote; } function AddAnnotType(TV__id, TV__classname, TV__baseclassname, TV__bsbdrclassname, TV__marker, TV__readMarker, TV__visitMarker, TV__icon, TV__bReplyTo, TV__bMailTo, TV__bVote) { TV__AnnotTypesArray[TV__AnnotTypesArray.length] = new TV__AnnotType(TV__id, TV__classname, TV__baseclassname, TV__bsbdrclassname, TV__marker, TV__readMarker, TV__visitMarker, TV__icon, TV__bReplyTo, TV__bMailTo, TV__bVote); } function AnnotMarker(TV__id, TV__refString, TV__author, TV__date, TV__type, TV__index) { this.TV__id = TV__id; this.TV__refString = TV__refString; this.TV__author = TV__author; this.TV__date = TV__date; this.TV__type = TV__type; this.TV__index = TV__index; } function TV__GetAnnotTypeAt(TV__id) { for (var i = 0; i < TV__AnnotTypesArray.length; i++) { if ( (TV__AnnotTypesArray[i]) && (TV__AnnotTypesArray[i].TV__id == TV__id) ) return TV__AnnotTypesArray[i]; } return null; } function RemoveAnnotType(TV__id) { for (var i = 0; i < TV__AnnotTypesArray.length; i++) { if (TV__AnnotTypesArray[i].TV__id == TV__id) TV__AnnotTypesArray[i] = null; } } function RemoveAllAnnotTypes() { TV__AnnotTypesArray = new Array; return true; } ////////////////////////// INITIALIZATION //////////////////////////// function Initialize(TV__appDir, TV__aweBaseSrc, TV__domain, TV__bMailText) { TV__AppDir = TV__appDir; TV__strAweBaseSrc = TV__aweBaseSrc; TV__websiteURL = TV__domain; TV__bShowMailText = (TV__bMailText == '1'); TV__aweUpdateTemplate(); return true; } function TV__aweUpdateTemplate() { var TV__reg = /%TV__strAweBaseSrc%/; while (TV__reg.test(TV__annotTemplate)) TV__annotTemplate = TV__annotTemplate.replace(TV__reg, TV__strAweBaseSrc); TV__reg = /%TV__strWebSite%/; while (TV__reg.test(TV__helpVote)) TV__helpVote = TV__helpVote.replace(TV__reg, TV__websiteURL); TV__reg = /%TV__AppDir%/; while (TV__reg.test(TV__annotTemplate)) TV__annotTemplate = TV__annotTemplate.replace(TV__reg, TV__AppDir); while (TV__reg.test(TV__star)) TV__star = TV__star.replace(TV__reg, TV__AppDir); while (TV__reg.test(TV__starme)) TV__starme = TV__starme.replace(TV__reg, TV__AppDir); while (TV__reg.test(TV__trash)) TV__trash = TV__trash.replace(TV__reg, TV__AppDir); while (TV__reg.test(TV__trashme)) TV__trashme = TV__trashme.replace(TV__reg, TV__AppDir); while (TV__reg.test(TV__recomImg)) TV__recomImg = TV__recomImg.replace(TV__reg, TV__AppDir); } function AddNewAnnotation(TV__sURL, TV__sTitle, TV__sAuthor, TV__sContent, TV__sRefString, TV__iAnnotType, TV__sAnnotID, TV__sRootID, TV__sPrevAnnotID, TV__sNextAnnotID, TV__svrType, TV__sGroupid, TV__sGroupName, TV__bMember, TV__bUnattached, TV__bMarkAsRead, TV__selfRate, TV__rating, TV__rateYes, TV__rateNo, TV__nonmbrInPdtGrp) { if (TV__sRootID == "") return false; // The annotation post-it container is not already inserted into the page var TV__objAnnot = document.all[TV__annotRootID + TV__sRootID]; var TV__annote = new TV__Annotation(TV__sAnnotID, TV__sRootID, TV__sPrevAnnotID, TV__sNextAnnotID, TV__sURL, TV__sTitle, TV__sAuthor, TV__sContent, TV__sRefString, TV__iAnnotType, TV__svrType, TV__sGroupid, TV__sGroupName, TV__bMember, TV__bUnattached, TV__selfRate, TV__rating, TV__rateYes, TV__rateNo, TV__nonmbrInPdtGrp); if (TV__objAnnot == null) TV__handleNewAnnot(TV__annote, TV__bMarkAsRead); else TV__handleExistAnnot(TV__annote, TV__bMarkAsRead); return true; } function TV__handleExistAnnot(TV__annote, TV__bMarkAsRead) { var TV__objAnnotID = document.all[TV__annotRootID + TV__annote.TV__rootid]; var TV__objAnnot = TV__setAnnotUI(TV__annote, TV__objAnnotID, false); TV__setAnnotAttribute(TV__objAnnot, "annotID", TV__annote.TV__annotid); TV__setAnnotAttribute(TV__objAnnot, "prevAnnotID", TV__annote.TV__previd); TV__setAnnotAttribute(TV__objAnnot, "nextAnnotID", TV__annote.TV__nextid); if (TV__annote.TV__recommended == true) TV__objAnnot.all.annotTitle.innerHTML = TV__recomImg + TV__annote.TV__title; else TV__objAnnot.all.annotTitle.innerHTML = TV__annote.TV__title; TV__objAnnot.all.annotAuthor.innerHTML = (TV__annote.TV__author == "") ? "" : "by " + TV__annote.TV__author; if (TV__annote.TV__content != "") { var TV__sign = ''; if (TV__objAnnot.all.annotMailHandle.disable == 0) TV__sign = TV__findReplace(TV__signature, /%TV__rootid%/, TV__annote.TV__rootid); if (TV__objAnnot.all.annotVoteHandle.disable == false) { if (TV__sign == "") TV__sign = "<br><br><hr noshade style='border:0; color:lightgrey'>"; else TV__sign += "<br>"; TV__sign += TV__helpVote; } var TV__content = TV__annote.TV__markupForContent() + TV__sign; TV__objAnnot.all.annotContent.innerHTML = TV__content; } else { TV__objAnnot.all.annotContent.innerHTML = ""; } TV__objAnnot.all.annotNextHandle.style.visibility = TV__annote.TV__sNextVisible; TV__objAnnot.all.annotPrevHandle.style.visibility = TV__annote.TV__sPrevVisible; TV__updateVotingImg(TV__annote.TV__selfRate, TV__annote.TV__rating, TV__annote.TV__rateYes, TV__annote.TV__rateNo, TV__objAnnot); var TV__objRefText = document.all[TV__refStrEnd + TV__annote.TV__rootid]; if (TV__objRefText != null) { var TV__objMarker = TV__GetNonAggMarker(TV__annote.TV__rootid); if (TV__objRefText) { var TV__iAbsLeft = TV__GetAbsOffsetLeft(TV__objMarker); var TV__iAbsTop = TV__GetAbsOffsetTop(TV__objMarker); var TV__iLeft = TV__objAnnot.offsetLeft; var TV__iTop = TV__objAnnot.offsetTop; TV__DrawLine(TV__annote.TV__rootid, TV__iAbsLeft, TV__iAbsTop, TV__iLeft, TV__iTop, TV__objMarker, true); } } var TV__markerStatus = (TV__bMarkAsRead == true) ? "read" : "visit"; TV__ChangeNoteMark(TV__objAnnot, TV__annote, TV__markerStatus); TV__RaiseAnnot(TV__objAnnot, true); TV__highlightAssocRefText(TV__annote.TV__rootid, true); } function TV__updateVotingImg(TV__selfRate, TV__rating, TV__rateYes, TV__rateNo, TV__objAnnot) { var TV__vMarkup = TV__getVotingMarkup(TV__selfRate, TV__rateYes, TV__rateNo); var TV__voteImg = TV__objAnnot.all.voteStatus; if (TV__voteImg != null) { disableVoteBtn(TV__selfRate, TV__objAnnot); TV__voteImg.innerHTML = TV__vMarkup; } } function disableVoteBtn(TV__selfRate, TV__objAnnot) { var TV__bDisabled = ( (TV__selfRate == 1) || (TV__selfRate == -1) ) var TV__btn = TV__objAnnot.all.annotVoteHandle; if (TV__btn.disable == false) { if (TV__bDisabled == true) { var TV__disableBtn = TV__btn.getAttribute("dis"); TV__btn.setAttribute("disable", 1); TV__btn.src = TV__disableBtn; TV__btn.style.cursor = "auto"; } else { var TV__Btn = TV__btn.getAttribute("enb"); TV__btn.setAttribute("disable", 0); TV__btn.src = TV__Btn; TV__btn.style.cursor = "hand"; } } } // turn marker to grey after note shown function TV__ChangeNoteMark(TV__objAnnot, TV__annote, TV__status) { if (TV__bAggregated == true) return; var TV__bSet = TV__getAnnotAttribute(TV__objAnnot, 'markerStatus'); if (TV__bSet != TV__status) { var TV__objType = TV__GetAnnotTypeAt(TV__annote.TV__type); var TV__marker = TV__GetAnnotMarker(TV__annote.TV__rootid); if ( (TV__objType != null) && (TV__marker != null) ) { TV__src = (TV__status == "read") ? TV__objType.TV__readMarker : TV__objType.TV__visitMarker; TV__marker.src = TV__src; } TV__setAnnotAttribute(TV__objAnnot, 'markerStatus', TV__status); } } function TV__handleNewAnnot(TV__annot, TV__bMarkAsRead) { document.body.insertAdjacentHTML("afterBegin", TV__annot.TV__markup()); var TV__objAnnotID = document.all[TV__annotRootID + TV__annot.TV__rootid]; if (TV__objAnnotID != null) { var TV__objAnnot = TV__setAnnotUI(TV__annot, TV__objAnnotID, true); TV__chgClassname4ItemsInPsnNote(TV__annot, TV__objAnnotID); TV__AttachAnnot2Ref(TV__objAnnot, TV__annot.TV__pageLevel); TV__highlightAssocRefText(TV__annot.TV__rootid, true); TV__RaiseAnnot(TV__objAnnot, true); var TV__markerStatus = (TV__bMarkAsRead == true) ? "read" : "visit"; TV__ChangeNoteMark(TV__objAnnot, TV__annot, TV__markerStatus); TV__RedrawLinesForAnnot(TV__objAnnot); TV__objFocus = TV__objAnnot; } } function TV__chgClassname4ItemsInPsnNote(TV__annot, TV__objAnnotID) { if ((TV__annot.TV__type & TV__PERSONAL_NOTE) == TV__PERSONAL_NOTE) // rememeber note maybe unattached { TV__objAnnotID.all.annotTitle.className = "psnannotTitle"; TV__objAnnotID.all.annotAuthor.className = "psnannotAuthor"; TV__objAnnotID.all.annotContent.className = "psnannotContent"; } } // this function set the look of notes and return the note object ptr function TV__setAnnotUI(TV__annot, TV__objAnnotID, bAddVoteStatus) { var TV__objAnnot = TV__objAnnotID.parentElement; if (bAddVoteStatus == true) TV__updateVotingImg(TV__annot.TV__selfRate, TV__annot.TV__rating, TV__annot.TV__rateYes, TV__annot.TV__rateNo, TV__objAnnot); var TV__arSettings = TV__getAnnotUISettings(TV__annot); if (TV__objAnnot.className != TV__arSettings["TV__bsbdrclassname"]) TV__objAnnot.className = TV__arSettings["TV__bsbdrclassname"]; //TV__objAnnot.className = TV__arSettings["TV__bsbdrclassname"]; TV__objAnnot.all.awedogearbase.className = TV__arSettings["TV__bsclassname"]; var TV__pad = TV__getAnnotPad(TV__objAnnot); if (TV__pad.className != TV__arSettings["TV__classname"]) TV__pad.className = TV__arSettings["TV__classname"]; //TV__pad.className = TV__arSettings["TV__classname"]; TV__objAnnot.setAttribute("AnnotType", TV__arSettings["TV__classname"]); TV__disableButton(TV__objAnnot.all.annotReplyHandle, TV__annot.TV__disabled || TV__annot.TV__nonmbrInPdtGrp || (TV__arSettings["TV__replyTo"] == 0)); TV__disableButton(TV__objAnnot.all.annotMailHandle, TV__annot.TV__disabled || (TV__arSettings["TV__mailTo"] == 0)); TV__disableButton(TV__objAnnot.all.annotVoteHandle, TV__annot.TV__disabled || TV__annot.TV__nonmbrInPdtGrp || (TV__arSettings["TV__vote"] == 0) || (TV__annot.TV__selfRate != 0) ); if (TV__annot.TV__disabled == true) { TV__objAnnot.all.annotMailTxt.style.display = "none"; } else { TV__objAnnot.all.annotMailTxt.style.display = (TV__bShowMailText && (TV__arSettings["TV__vote"] == true)) ? "" : "none"; } if (TV__arSettings["TV__snapTo"] == false) { var TV__snapTo = TV__objAnnot.all.annotSnapTo; if (TV__snapTo != null) TV__snapTo.outerHTML = ""; } var TV__voteImg = TV__objAnnot.all.voteStatus; if (TV__voteImg != null) TV__voteImg.style.visibility = (TV__arSettings["TV__vote"] == false) ? "hidden" : "visible"; TV__objAnnotID.all.annotIcon.src = TV__arSettings["TV__icon"]; return TV__objAnnot; } function TV__disableButton(TV__btn, TV__disable) { if (TV__disable == true) { TV__btn.disable = 1; TV__btn.src = TV__btn.dis; TV__btn.style.cursor = "auto"; } else { TV__btn.disable = 0; TV__btn.src = TV__btn.enb; TV__btn.style.cursor = "hand"; } } /** classname of note, get note icon, color of annotation **/ function TV__getAnnotUISettings(TV__annot) { var TV__arSettings = new Array(); var TV__classname_objType = null; var TV__othersetting_objType = TV__GetAnnotTypeAt(TV__annot.TV__type); // handle unattached note if (TV__annot.TV__unattached == true) { TV__classname_objType = TV__GetAnnotTypeAt(TV__UNATTACHED_NOTE); TV__arSettings["TV__snapTo"] = false; } else if (TV__annot.TV__pageLevel == true) { TV__classname_objType = TV__GetAnnotTypeAt(TV__PAGELEVEL_NOTE); TV__arSettings["TV__snapTo"] = false; } else if (TV__annot.TV__recommended == true) { TV__classname_objType = TV__GetAnnotTypeAt(TV__RECOMMENDED_NOTE); TV__arSettings["TV__snapTo"] = true; } else { TV__classname_objType = TV__othersetting_objType; TV__arSettings["TV__snapTo"] = true; } if (TV__othersetting_objType == null) TV__othersetting_objType = TV__GetAnnotTypeAt(TV__DEFAULT_NOTETYPE); if (TV__classname_objType == null) TV__classname_objType = TV__GetAnnotTypeAt(TV__DEFAULT_NOTETYPE); if ( (TV__classname_objType != null) && (TV__othersetting_objType != null)) { TV__arSettings["TV__bsclassname"] = TV__classname_objType.TV__bsclassname; TV__arSettings["TV__bsbdrclassname"] = TV__classname_objType.TV__bsbdrclassname; TV__arSettings["TV__classname"] = TV__classname_objType.TV__classname; TV__arSettings["TV__replyTo"] = TV__othersetting_objType.TV__replyTo; TV__arSettings["TV__mailTo"] = TV__othersetting_objType.TV__mailTo; TV__arSettings["TV__vote"] = TV__othersetting_objType.TV__vote; TV__arSettings["TV__icon"] = TV__othersetting_objType.TV__icon; } return TV__arSettings; } /** Activate the annotation **/ function TurnOnAnnotation(TV__annotid) { var TV__Annot = TV__getAnnotElement(TV__annotid); if (TV__Annot == null) return false; TV__objFocus = TV__Annot; var TV__sRootID = TV__getAnnotAttribute(TV__Annot, "rootAnnotID"); var TV__objRefSpan = document.all[TV__refStrStart + TV__sRootID]; if ( (TV__objRefSpan != null) && (TV__objRefSpan.style.display != "") ) { TV__objRefSpan.style.display = ""; TV__objRefSpan = document.all[TV__refStrEnd + TV__sRootID]; if (TV__objRefSpan != null) TV__objRefSpan.style.display = ""; TV__highlightAssocRefText(TV__sRootID, true); } TV__RaiseAnnot(TV__Annot, true); return true; } /** Deactivate the annotation **/ function DeactivateAnnotation(TV__annotid) { var TV__Annot = TV__getAnnotElement(TV__annotid); if (TV__Annot == null) return false; var TV__sRootID = TV__getAnnotAttribute(TV__Annot, "rootAnnotID"); var TV__objRefSpan = document.all[TV__refStrStart + TV__sRootID]; if ( (TV__objRefSpan != null) && (TV__objRefSpan.style.display == "") ) { TV__objRefSpan.style.display = "none"; TV__objRefSpan = document.all[TV__refStrEnd + TV__sRootID]; if (TV__objRefSpan != null) TV__objRefSpan.style.display = "none"; } TV__objFocus = null TV__RaiseAnnot(TV__Annot, false); TV__highlightAssocRefText(TV__sRootID, false); return true; } // Highlight/Unhighlight the reference text associated with the root annotation function TV__highlightAssocRefText(TV__sRootID, TV__bHighlight) { var TV__obj = document.all[TV__HighlightPrefix + TV__sRootID]; if (TV__obj == null) return; if (TV__obj.length == null) // one note { if (TV__bHighlight == true) TV__highlightRefString(TV__obj); else TV__unhighlightRefString(TV__obj); return; } for (var i = 0; i < TV__obj.length; i++) { if (TV__bHighlight == true) TV__highlightRefString(TV__obj[i]); else TV__unhighlightRefString(TV__obj[i]); } } function TV__highlightRefString(TV__obj) { TV__backupStyleAttrib(TV__obj, "origColor", TV__obj.style.color); TV__backupStyleAttrib(TV__obj, "origBgColor", TV__obj.style.backgroundColor); TV__obj.style.color = TV__HighlightTextColor; TV__obj.style.backgroundColor = TV__HighlightBgColor; } function TV__backupStyleAttrib(TV__obj, TV__attrib, TV__style) { if (TV__obj.getAttribute(TV__attrib) == null) { if (TV__style == null) TV__style = ""; TV__obj.setAttribute(TV__attrib, TV__style); } } function TV__unhighlightRefString(TV__obj) { var TV__origColor = TV__obj.getAttribute("origColor"); TV__obj.style.color = TV__origColor; var TV__origBgColor = TV__obj.getAttribute("origBgColor"); TV__obj.style.backgroundColor = TV__origBgColor; } /** Scroll the html page to the location of the reference text associated with the annotation * * return true if successful, return false otherwises **/ function ScrollIntoView(TV__annotid) { var TV__Annot = TV__getAnnotElement(TV__annotid); if (TV__Annot == null) return false; return TV__ScrollAnnotIntoView(TV__Annot); } function TV__ScrollAnnotIntoView(TV__objAnnot) { if (TV__objAnnot != null) { if (!TV__inClient(TV__objAnnot)) TV__objAnnot.scrollIntoView(false); return true; } return false;; } /** Hide the annotation **/ function TV__HideAnnot(TV__objAnnot) { TV__objAnnot.style.display = "none"; } function MarkAnnotatedHref(TV__strHref) { if (TV__strHref == "") return; var TV__obj = document.all[TV__strHref]; if (TV__obj == null) return; var TV__colLinks = document.links; if (TV__colLinks == null) return; for (var i = 0; i < TV__colLinks.length; i++) { if (TV__colLinks[i].href == TV__strHref) TV__colLinks[i].insertAdjacentHTML("AfterEnd", "<sup id='AweAnnotatedMarker'><img src='" + TV__strAweBaseSrc + "/htm/images/annlink.gif'></sup>"); } } function UpdateVoteOnNote(TV__sAnnotID, TV__selfRate, TV__rating, TV__rateYes, TV__rateNo) { if (TV__sAnnotID == "") return false; var TV__objAnnot = TV__getAnnotElement(TV__sAnnotID); if (TV__objAnnot != null) { TV__updateVotingImg(TV__selfRate, TV__rating, TV__rateYes, TV__rateNo, TV__objAnnot); return true; } return false; } function CloseAnnotation(TV__sAnnotID) { if (TV__sAnnotID == "") return false; var TV__objAnnot = TV__getAnnotElement(TV__sAnnotID); if (TV__objAnnot != null) { TV__CloseNote(TV__objAnnot); return true; } return false; } function TV__CloseNote(TV__objAnnot) { var TV__sRootID = TV__getAnnotAttribute(TV__objAnnot, "rootAnnotID"); var TV__objRefSpan = document.all[TV__refStrStart + TV__sRootID]; if (TV__objRefSpan != null) TV__objRefSpan.style.display = "none"; TV__objRefSpan = document.all[TV__refStrEnd + TV__sRootID]; if (TV__objRefSpan != null) TV__objRefSpan.style.display = "none"; // UnHighlight the reference text associated with the root annotation TV__highlightAssocRefText(TV__sRootID, false); TV__HideLine(TV__sRootID); TV__HideAnnot(TV__objAnnot); var TV__objDynaMarker = document.all["AweDynaMarker" + TV__sRootID]; if (TV__objDynaMarker != null) { TV__objDynaMarker.style.display = "none"; } } function CloseAllNotes() { var allNotes = document.all.annot; if (allNotes == null) return false; if (allNotes.length == null) // one annotation TV__CloseNote(allNotes); else { for (var i = 0; i < allNotes.length; i++) TV__CloseNote(allNotes[i]); } return true; } function TV__GetAnnotMarker(TV__sRootID) { var TV__objMarker = document.all[TV__annotMarkTag + TV__sRootID]; if (TV__objMarker == null) { TV__objMarker = TV__aggMarkerArray[TV__sRootID]; } return TV__objMarker; } function TV__GetNonAggMarker(TV__sRootID) { var TV__objMarker = document.all[TV__annotMarkTag + TV__sRootID]; if (TV__objMarker == null) { TV__objMarker = document.all["AweRefTextStart" + TV__sRootID]; if (TV__objMarker != null) { var TV__dynaMarker = document.all["AweDynaMarker" + TV__sRootID]; if (TV__dynaMarker == null) { TV__objMarker.insertAdjacentHTML("AfterEnd", "<img id='AweDynaMarker" + TV__sRootID + "' src='" + TV__AppDir + "\\htm\\images\\clear.gif' width=3 border=0 style='border: 1 solid red;'>"); TV__objMarker = document.all["AweDynaMarker" + TV__sRootID]; } else { TV__objMarker = TV__dynaMarker; TV__objMarker.style.display = ""; } } } return TV__objMarker; } /////////////////// AGGREGRATION OF MARKERS /////////////////////////// function InsertAggregMarkers() { var TV__arMarkers = document.all[TV__annotAggMarkTag]; if (TV__arMarkers != null) { var TV__len = TV__arMarkers.length; if (TV__len == null) { TV__regAggNotesID(TV__arMarkers); } else { for (var i = 0; i < TV__len; i++) TV__regAggNotesID(TV__arMarkers[i]); } } return true; } function TV__regAggNotesID(TV__marker) { var TV__annotids = TV__marker.getAttribute("annotids"); if (TV__annotids != null) { var arIDs = TV__annotids.split(","); for (var i = 0; i < arIDs.length; i++) { TV__aggMarkerArray[arIDs[i]] = TV__marker; } TV__bAggregated = true; } } function showAnnotList(elm, e) { var ids = elm.getAttribute("annotids"); //TV__sendMsg2Client(TV__IE_CLIENT_HDR + TV__TVP + TV__TVM_SUBMENU_NOTES + TV__TVP + window.location.href + TV__TVP + ids + TV__TVP + e.screenX + TV__TVP + e.screenY); window.external.ShowAnnotMarkersSubMenu(window.location.href, ids, e.screenX, e.screenY); } /** Locate app specific style sheet for given HTML **/ function TV__LocateCSS() { var TV__css = document.styleSheets; var TV__intSS = TV__css.length; for (var i = 0; i < TV__intSS; i++) { var TV__rules = TV__css[i].rules; if ( (TV__rules != null) && (TV__rules.length > 0) && (TV__rules[0].selectorText == "#AweStyles") ) return TV__css[i]; } return null; } function IsAnnotInserted(TV__sAnnotID) { if (TV__GetAnnotMarker(TV__sAnnotID) != null) return true; return false; } function IsCtlInsertedInFrame() { return true; } /** substitute ampersand */ function TV__replaceAmpersand(TV__str) { var TV__idx = TV__str.indexOf("&", 0); while (TV__idx != -1) { if ( (TV__str.substring(TV__idx, 4) == "&") && (TV__str.substring(TV__idx+4, 1) != ";")) { TV__str = TV__str.substring(0, TV__idx) + "&" + TV__str.substring(TV__idx +4); TV__idx = TV__str.indexOf("&", TV__idx +5); } else { TV__idx = TV__str.indexOf("&", TV__idx +1); } } return TV__str; } /** check if the selected text is include annotation **/ function SelTextIncludeAnnot() { if (document.selection.type == "Text") { var TV__trFront = document.selection.createRange(); var TV__trEnd = TV__trFront.duplicate(); TV__trEnd.collapse(false); TV__trFront.collapse(); if (TV__inAnnotDiv(TV__trFront) || TV__inAnnotDiv(TV__trEnd) ) return true; } return false; } function TV__inAnnotDiv(TV__tr) { var TV__parent = TV__tr.parentElement(); while ((TV__parent != null) && (TV__parent.tagName != 'BODY')) { if (TV__parent.id == 'annot') return true; TV__parent = TV__parent.parentElement; } return false; } ///////////////////////// new functions ///////////////////// function TV__getAnnotAttribute(TV__annotObj, TV__attrib) { var TV__header = TV__annotObj.all.annotHeader; if (TV__header == null) return null; return TV__header.getAttribute(TV__attrib); } function TV__setAnnotAttribute(TV__annotObj, TV__attrib, TV__val) { var TV__header = TV__annotObj.all.annotHeader; if (TV__header != null) TV__header.setAttribute(TV__attrib, TV__val); } function TV__getAnnotPad(TV__annotObj) { var TV__title = TV__annotObj.all.annotTitle; return TV__title.parentElement; } function TV__getAnnotPadFromRootID(TV__rootid) { var TV__pad = document.all[TV__annotRootID + TV__rootid]; if (TV__pad != null) return TV__pad.parentElement; return null; } function TV__getAnnotTitle(TV__annotObj) { var TV__titleObj = TV__annotObj.all.annotTitle; return TV__titleObj.innerHTML; } function TV__getAnnotElement(TV__annotid) { var TV__notes = document.all.annot; if (TV__notes == null) return null; if (TV__notes.length == null) { if (TV__isTheRightNotes(TV__notes, TV__annotid)) return TV__notes; } else { for (var i = 0; i < TV__notes.length; i++) { if (TV__isTheRightNotes(TV__notes[i], TV__annotid)) return TV__notes[i]; } } return null; } function TV__isTheRightNotes(TV__holder, TV__annotid) { var TV__header = TV__holder.all.annotHeader; if (TV__header.getAttribute("annotID") == TV__annotid) return true; return false; } function GetSelTextRect() { if (document.selection.type == "Text") { var TV__trFront = document.selection.createRange(); var TV__trEnd = TV__trFront.duplicate(); TV__trFront.collapse(); TV__trFront.moveStart("word", 1); TV__trEnd.collapse(false); TV__trEnd.moveEnd("word", -1); var TV__htmlTxt = TV__trFront.htmlText; TV__htmlTxt = TV__ghostFrontTagSelText + TV__htmlTxt; TV__trFront.pasteHTML(TV__htmlTxt); TV__htmlTxt = TV__trEnd.htmlText; TV__htmlTxt += TV__ghostEndTagSelText; TV__trEnd.pasteHTML(TV__htmlTxt); var TV__ghostFront = document.all[TV__ghostFrontIDSelText]; var TV__ghostEnd = document.all[TV__ghostEndIDSelText]; if ( (TV__ghostFront != null) && (TV__ghostEnd != null) ) { TV__ghostFront = TV__getGhostMarker(TV__ghostFront); TV__ghostEnd = TV__getGhostMarker(TV__ghostEnd); var TV__left = 0; var TV__top = 0; var TV__right = 0; var TV__bottom = 0; if (TV__inClient(TV__ghostFront) && TV__inClient(TV__ghostEnd)) { TV__left = TV__GetAbsOffsetLeft(TV__ghostFront) - document.body.scrollLeft; TV__top = TV__GetAbsOffsetTop(TV__ghostFront) - document.body.scrollTop; TV__right = TV__GetAbsOffsetLeft(TV__ghostEnd) - document.body.scrollLeft; TV__bottom = TV__GetAbsOffsetTop(TV__ghostEnd) - document.body.scrollTop; } TV__ghostFront.innerHTML = ""; TV__ghostEnd.innerHTML = ""; return "" + TV__left + "," + TV__top + "," + TV__right + "," + TV__bottom; } } return "0,0,0,0"; } function TV__getGhostMarker(TV__ghost) { if (TV__ghost.length == null) return TV__ghost; for (var i = 0; i < TV__ghost.length; i++) { if (TV__ghost[i].innerHTML == "current") return TV__ghost[i]; } return null; } ////////////////////// HELPER FUNCTION //////////////////////////// function TV__findReplace(TV__str, TV__reg, TV__val) { while (TV__reg.test(TV__str)) TV__str = TV__str.replace(TV__reg, TV__val); return TV__str; } function TV__noteToolbarMove(btn, src) { if (btn.disable == '0') btn.src =src; } function TV__inClient(TV__obj) { var TV__parent = TV__obj.offsetParent; if (TV__parent == null) // not visible return true; var TV__rClient = TV__getClientRect(); var TV__oClient = TV__getObjRect(TV__obj); return TV__oClient.TV__inRect(TV__rClient); } function TV__getClientRect() { var TV__left = document.body.scrollLeft; var TV__right = TV__left + document.body.clientWidth; var TV__top = document.body.scrollTop; var TV__bottom = TV__top + document.body.clientHeight; return new TV__rect(TV__left, TV__top, TV__right, TV__bottom); } function TV__getObjRect(TV__obj) { var TV__left = TV__obj.offsetLeft var TV__top = TV__obj.offsetTop; var TV__parent = TV__obj.offsetParent; while (TV__parent != null) { TV__left += TV__parent.offsetLeft; TV__top += TV__parent.offsetTop; TV__parent = TV__parent.offsetParent; } var TV__right = TV__left + TV__obj.offsetWidth; var TV__bottom = TV__top + TV__obj.style.pixelHeight; return new TV__rect(TV__left, TV__top, TV__right, TV__bottom); } /** check of html object is in client **/ function TV__rect(TV__left, TV__top, TV__right, TV__bottom) { this.TV__left = TV__left; this.TV__top = TV__top; this.TV__right = TV__right; this.TV__bottom = TV__bottom; this.TV__width = TV__rectWidth; this.TV__height = TV__rectHeight; this.TV__inRect = TV__rect_inRect; } /** check if this rect is in a given rect**/ function TV__rect_inRect(TV__r) { if (TV__ptInRect(this.TV__left, this.TV__top, TV__r) && TV__ptInRect(this.TV__right, this.TV__bottom, TV__r)) return true; else return false; } function TV__ptInRect(TV__x, TV__y, TV__r) { if (TV__x >= TV__r.TV__left && TV__x <= TV__r.TV__right && TV__y >= TV__r.TV__top && TV__y <= TV__r.TV__bottom) return true; else return false; } function TV__rectWidth() { return this.TV__right - this.TV__left; } function TV__rectHeight() { return this.TV__bottom - this.TV__top; } function TV__PosToRHSBottom(TV__obj, xOffset, yOffset) { var TV__rClient = TV__getClientRect(); var TV__oClient = TV__getObjRect(TV__obj); TV__obj.style.pixelLeft = TV__rClient.TV__right - TV__oClient.TV__width() -10 - xOffset; TV__obj.style.pixelTop = TV__rClient.TV__top + 10 + yOffset; } function TV__keydownImg() { TV__keyDownImg = event.ctrlKey; } function TV__keyupImg() { TV__keyDownImg = false;; } function TV__keypressImg() { if (TV__keyDownImg == true) { if (event.keyCode == 10) TV__toggleAnnotIDToContent(); } } function TV__toggleAnnotIDToContent() { var TV__IDTag = 'ANNOTID:'; var TV__BRBR = '<BR><BR>'; var TV__el = event.srcElement; var TV__pad = TV__el.parentElement.parentElement; if ( (TV__pad != null) && ( (TV__getAnnotAttribute(TV__pad, "annotType") & TV__PERSONAL_NOTE) == 0) ) { var TV__contentObj = TV__pad.all.annotContent; // content element var TV__content = TV__contentObj.innerHTML; // content string if (TV__content.substring(0, TV__IDTag.length) == TV__IDTag) //check if id is already inserted to content { // strip it var TV__idx = TV__content.indexOf(TV__BRBR); if (TV__idx > -1) TV__contentObj.innerHTML = TV__content.substring(TV__idx + TV__BRBR.length); } else { TV__contentObj.innerHTML = TV__IDTag + TV__getAnnotAttribute(TV__pad, "annotID") + TV__BRBR + TV__content; } } } /////////////////// VOTING (PEER RATING //////////////////////////// function TV__ShowVoteDiv(TV__pad) { var TV__vote = TV__pad.all.vote; if (TV__vote != null) TV__vote.style.display = 'block'; } function TV__voteNote(TV__rootid, TV__weight) { var TV__annotPad = TV__getAnnotPadFromRootID(TV__rootid); if (TV__annotPad != null) { TV__AnnotID = TV__getAnnotAttribute(TV__annotPad, "annotID"); TV__sendMsg2Client(TV__IE_CLIENT_HDR + TV__TVP + TV__TVM_VOTE + TV__TVP + TV__AnnotID + TV__TVP + TV__weight); } hideVoteDiv(TV__rootid); } function hideVoteDiv(TV__rootid) { var TV__annotPad = TV__getAnnotPadFromRootID(TV__rootid); if (TV__annotPad != null) { var TV__vote = TV__annotPad.all.vote; // hidden and then visible setting is necessary cos on slow pc // the image that connect voting panel to button has repaint problem if (TV__vote != null) { TV__vote.style.visibility = "hidden"; TV__vote.style.display = "none"; TV__vote.style.visibility = "visible"; } } } function TV__VoteMouseOver(TV__obj) { TV__obj.style.backgroundColor = 'darkgray'; } function TV__VoteMouseOut(TV__obj) { TV__obj.style.backgroundColor = 'transparent'; } function TV__JoinPublicGrp(TV__URL, TV__GroupID) { TV__sendMsg2Client(TV__IE_CLIENT_HDR + TV__TVP + TV__TVM_JOIN_PUBLIC_GRP + TV__TVP + TV__URL + TV__TVP + TV__GroupID); } function ClearJoinGrpSpan(TV__grpid) { var TV__obj = document.all[TV__joingrpspan + TV__grpid]; if (TV__obj != null) { if (TV__obj.length == null) // one link TV__obj.outerHTML = ""; else { var TV__nSize = TV__obj.length; for (var i = 0; i < TV__nSize; i++) TV__obj[0].outerHTML = ""; } } } function ConnectGroupLink(TV__grpid) { var TV__obj = document.all[TV__jgrpspan + TV__grpid]; if (TV__obj != null) { if (TV__obj.length == null) // one link { TV__SetLinkToEachGroupSpan(TV__obj, TV__grpid); } else { for (var i = 0; i < TV__obj.length; i++) TV__SetLinkToEachGroupSpan(TV__obj[i], TV__grpid); } } } function TV__SetLinkToEachGroupSpan(TV__span, TV__grpid) { var TV__grptitle = TV__span.all.TV__grptitle; if (TV__grptitle != null) TV__grptitle.innerHTML = "<a href=\"javascript:TV__gotoGroupPage('" + TV__grpid + "')\">" + TV__grptitle.innerHTML + "</a>"; } function TV__gotoGroupPage(TV__grpid) { document.location = TV__websiteURL + TV__grpurl + TV__grpid; } function OpenWindow(TV__URL) { TV__Win = window.open(TV__URL, "OpenGroup", "width=500,height=500,toolbar=0,scrollbars=1,resizable=1,status=1"); } //------------ fix font style sheet definition problem ---------------------- function FixFontCSSProblem() { if (TV__isFontDefined() == false) return; var TV__allFonts = document.all.tags("FONT"); if (TV__allFonts == null) return; var TV__nSize = TV__allFonts.length; if (TV__nSize == null) { if (TV__allFonts.id.substring(0, TV__lenPrefix) == TV__HighlightPrefix) TV__inheritParentStyle(TV__allFonts); return; } var TV__lenPrefix = TV__HighlightPrefix.length; for (var i = 0; i < TV__nSize; i++) { var TV__fontTag = TV__allFonts[i]; if ( (TV__fontTag != null) && (TV__fontTag.id.substring(0, TV__lenPrefix) == TV__HighlightPrefix)) TV__inheritParentStyle(TV__fontTag); } } function TV__isFontDefined() { var TV__css = document.styleSheets; var TV__nSize = TV__css.length; for (var i = 0; i < TV__nSize; i++) { if (getFontDefined(TV__css[i]) == true) return true; } return false; } function getFontDefined(TV__css) { var TV__nSize = TV__css.rules.length; for (var i = 0; i < TV__nSize; i++) { var TV__rule = TV__css.rules[i].selectorText.toLowerCase(); if (TV__rule == "font") return true; } return false; } function TV__inheritParentStyle(TV__fontTag) { var TV__parentTag = TV__fontTag.parentElement; if (TV__parentTag != null) { var TV__parentheaderText = TV__getMarkupHeader(TV__parentTag); TV__newheader = TV__changeTagName(TV__parentheaderText, "FONT"); // parent tag may be any other tagname TV__newheader = TV__stripAttribute(TV__newheader, "id"); // coz, we want to insert the // highlight font id later if (TV__newheader != "") { var TV__id = TV__fontTag.id; var TV__innnerText = TV__fontTag.innerHTML; var TV__newheader = TV__addAttribute(TV__newheader, "id=" + TV__id); if (TV__newheader != "") TV__fontTag.outerHTML = TV__newheader + TV__innnerText + "</font>"; } } } function TV__getMarkupHeader(TV__Obj) { var TV__Text = TV__Obj.outerHTML; var TV__idx = TV__Text.indexOf(">"); if (TV__idx == -1) return ""; return TV__Text.substring(0, TV__idx+1); } function TV__changeTagName(TV__Markup, TV__newTag) { var TV__idx = TV__Markup.indexOf(" "); if (TV__idx == -1) return ""; return "<" + TV__newTag + " " + TV__Markup.substring(TV__idx); } function TV__stripAttribute(TV__Markup, TV__AttribName) { TV__Markup = TV__Markup.toLowerCase(); var TV__idx = TV__Markup.indexOf(TV__AttribName); if (TV__idx == -1) return TV__Markup; var TV__endIdx = TV__Markup.indexOf(" ", TV__idx+1); if (TV__endIdx == -1) TV__endIdx = TV__Markup.indexOf(">", TV__idx+1); if (TV__endIdx == -1) return ""; return TV__Markup.substring(0, TV__idx) + " " + TV__Markup.substring(TV__endIdx); } function TV__addAttribute(TV__Markup, TV__Attribute) { var TV__idx = TV__Markup.indexOf(">"); if (TV__idx == -1) return ""; return TV__Markup.substring(0, TV__idx) + " " + TV__Attribute + ">"; } function TV__getVotingMarkup(TV__selfRate, TV__rateYes, TV__rateNo) { TV__selfRate = 1 * TV__selfRate; var TV__trashImg = (TV__selfRate == -1) ? TV__trashme : TV__trash; var TV__starImg = (TV__selfRate == 1) ? " " + TV__starme : TV__star; var TV__vYes = (TV__rateYes > 99) ? ">99" : "" + TV__rateYes; var TV__vNo = (TV__rateNo > 99) ? ">99" : "" + TV__rateNo; return TV__trashImg + " " + TV__vNo + TV__starImg + " " + TV__vYes ; } // support for backend function SignatureMailNote(TV__obj) { if (TV__obj != null) { var TV__parent = TV__obj.parentElement; while ( (TV__parent != null) && (TV__parent.id != "annot") ) TV__parent = TV__parent.parentElement; if (TV__parent != null) { var TV__rootid = TV__getAnnotAttribute(TV__parent, "rootAnnotID"); TV__handleMailIconClick(TV__rootid); } } } function CreateWin(TV__URL, TV__title, TV__width, TV__height, TV__toolbar, TV__scrollbars, TV__status) { return window.open(TV__URL, TV__title, "width=" + TV__width + ",height=" + TV__height + ",toolbar=" + TV__toolbar + ",scrollbars=" + TV__scrollbars + ",resizable=1,status=" + TV__status); } function IsSelectionInTextElement() { if (document.selection.type == "Text") { var TV__tr = document.selection.createRange(); TV__tr.collapse(); var TV__parent = TV__tr.parentElement(); return (TV__parent.tagName == "TEXTAREA") || (TV__parent.tagName == "INPUT") } return false; } function MarkAllMarkerAsRead() { var TV__markers = document.all.tags("IMG"); if (TV__markers != null) { if (TV__markers.length == null) // one marker { if (TV__markers.className == "AweAnnotMarker") TV__chgNoteMarkToRead(TV__markers) } else { for (var i = 0; i < TV__markers.length; i++) { if (TV__markers[i].className == "AweAnnotMarker") TV__chgNoteMarkToRead(TV__markers[i]); } } } } function TV__chgNoteMarkToRead(TV__marker) { var TV__readsrc = TV__marker.getAttribute("readsrc"); if (TV__readsrc != "") TV__marker.src = TV__readsrc; } function showPageLevelNotesMenu(evt) { TV__sendMsg2Client(TV__IE_CLIENT_HDR + TV__TVP + TV__TVM_PAGELEVEL_MENU + TV__TVP + evt.screenX + TV__TVP + evt.screenY); } function ShowPostNoteInfoDialog() { var TV__showAgain = window.showModalDialog(TV__websiteURL + "help/tutorial/NotePostTut.htm", "again", "dialogWidth:300px; dialogHeight:200px; center:yes"); var TV__nShowAgain = (TV__showAgain == true) ? 1 : 0; TV__sendMsg2Client(TV__IE_CLIENT_HDR + TV__TVP + TV__TVM_SHOW_NOTETUT_DLG + TV__TVP + TV__nShowAgain); } /** Copyright (c) 1999 ThirdVoice Inc. All rights reserved. **/ // <!-- tvcomplete -->