home *** CD-ROM | disk | FTP | other *** search
- // /////////////////////////////////////////////////////////////////////////
- // GLOBAL VARIABLES //
- // //
- var TV__PsnNotes = new TV__LAB_AnnotTree();
- var TV__LAB_FolderArray = new Array();
-
- var TV__TVP = "<tvp>";
- var TV__MODULEID = 500;
- var TV__TV_CLIENT_HDR = "AweAnnotMsg" + TV__TVP + TV__MODULEID;
-
- var TV__DHTML_ADD_PFOLDER = 5000;
- var TV__DHTML_ADD_ANNOTATION = 5001;
- var TV__DHTML_DEL_ANNOTATION = 5002;
- var TV__DHTML_EDIT_ANNOTATION = 5003;
-
- var TV__TVM_ONCLOSE = 10;
- var TV__TVM_ONLOAD = 20;
- var TV__TVM_UPDATE = 5010;
- var TV__TVM_DELETE = 5011;
- var TVM_POSTTOPUBLIC = 5012;
- var TVM_POSTTOPRIVATE = 5013;
-
- var TV__annotlistPrefix = "annotlist";
- var TV__annotPrefix = "annot";
- var TV__folderCountPrefix = "folderCnt";
- var TV__trackSelectedFolder = null;
-
- var TV__highlightColor = "yellow";
- // //
- ////////////////////////////////////////////////////////////////////////////
-
- function onLoad()
- {
- var TV__event = TV__TV_CLIENT_HDR + TV__TVP + TV__TVM_ONLOAD;
- TV__raiseEvent(TV__event);
- }
-
- function onUnLoad()
- {
- //TV__raiseEvent(TV__TV_CLIENT_HDR + TV__TVP + TV__TVM_ONCLOSE);
- }
-
- ////////////////////////////////////////////////////////////////////////////
- // EVENT MAP //
- // //
- function TV_500_Invoke(TV__eventid, TV__params)
- {
- var TV__A = new Array;
-
- switch (TV__eventid)
- {
- case TV__DHTML_ADD_PFOLDER:
- if (!TV__getParams(TV__A, TV__params, 2))
- alert("add folder: wrong number of parameters");
- else
- TV__AddFolder(TV__A[0], TV__A[1]);
- break;
-
- case TV__DHTML_ADD_ANNOTATION:
- if (!TV__getParams(TV__A, TV__params, 7))
- alert("add annotation: wrong number of parameters");
- else
- TV__AddAnnotation(TV__A[0], TV__A[1], TV__A[2], TV__A[3], TV__A[4], TV__A[5], TV__A[6]);
- break;
-
- case TV__DHTML_DEL_ANNOTATION:
- if (!TV__getParams(TV__A, TV__params, 1))
- alert("delete annotation: wrong number of parameters");
- else
- TV__DeleteAnnotation(TV__A[0]);
- break;
-
- case TV__DHTML_EDIT_ANNOTATION:
- if (!TV__getParams(TV__A, TV__params, 3))
- alert("edit annotation: wrong number of parameters");
- else
- TV__EditAnnot(TV__A[0], TV__A[1], TV__A[2]);
- break;
- }
- }
- // //
- // /////////////////////////////////////////////////////////////////////////
-
-
- // /////////////////////////////////////////////////////////////////////////
- // OBJECT DECLARATION //
- // //
- function TV__LAB_AnnotTree()
- {
- this.addFolder = annotTree_addFolder;
- }
-
- function annotTree_addFolder(TV__strID, TV__strName)
- {
- var TV__treeID = "tree" + TV__strID;
- var treeFolder = document.all.item(TV__treeID);
-
- if (treeFolder != null)
- return false;
-
- var insertEle = document.all.item("treelist");
- if (insertEle == null)
- return false;
-
- var newFolder = new TV__LAB_AnnotFolder(TV__strID, TV__strName);
- TV__LAB_FolderArray[TV__strID] = newFolder;
- insertEle.insertAdjacentHTML("beforeEND", newFolder.TV__markup());
-
- return true;
- }
-
- function TV__LAB_AnnotFolder(TV__strID, TV__strName)
- {
- this.TV__id = TV__strID;
- this.TV__name = TV__strName;
- this.TV__annotCount = 0;
- this.TV__filled = false;
- this.TV__annotArray = new Array();
-
- this.TV__updateCount = TV__FDR_UpdateCount;
- this.TV__markup = TV__FDR_Markup;
- this.TV__addAnnot = TV__FDR_AddAnnot;
- this.TV__removeAnnot = TV__FDR_RemoveAnnot;
- this.TV__fillAnnots = TV__FDR_fillAnnots;
- this.TV__editAnnot = TV__FDR_editAnnot;
- this.TV__getAnnot = TV__FDR_getAnnot;
- }
-
- function TV__FDR_Markup()
- {
- var TV__treeID = "tree" + this.TV__id;
- return "<li id=" + TV__treeID + " class=foldername>" + this.TV__name + " <ul id=" + TV__annotlistPrefix + this.TV__id + " class=annotlist></ul></li>";
- }
-
- function TV__FDR_AddAnnot(TV__strID, TV__strTitle, TV__strContent, TV__strUrl, TV__strRefStr, TV__strDate)
- {
- var TV__newAnnot = new TV__LAB_Annotation(TV__strID, TV__strTitle, TV__strContent, TV__strUrl, TV__strRefStr, TV__strDate, this);
- this.TV__annotArray[this.TV__annotArray.length] = TV__newAnnot;
- this.TV__annotCount++;
- this.TV__updateCount();
- return true;
- }
-
- function TV__FDR_RemoveAnnot(TV__strID)
- {
- for (var i = 0; i < this.TV__annotArray.length; i++)
- {
- var TV__annot = this.TV__annotArray[i]
- if ( (TV__annot != null) && (TV__annot.TV__id == TV__strID) )
- {
- this.TV__annotArray[i] = null;
- break;
- }
- }
-
- this.TV__annotCount--;
- this.TV__updateCount();
- return true;
- }
-
- function TV__FDR_fillAnnots()
- {
- var TV__folderEle = document.all.item(TV__annotlistPrefix + this.TV__id);
-
- if (TV__folderEle != null)
- {
- var TV__strInsert = "";
-
- for (var i = 0; i < this.TV__annotArray.length; i++)
- TV__strInsert += this.TV__annotArray[i].TV__markup();
-
- if (TV__strInsert != "")
- TV__folderEle.insertAdjacentHTML("beforeEnd", TV__strInsert);
- }
-
- this.TV__filled = true;
- return false;
- }
-
- function TV__FDR_editAnnot(TV__strID, TV__strTitle, TV__strContent)
- {
- var TV__annot = this.TV__getAnnot(TV__strID);
-
- if (TV__annot != null)
- {
- TV__annot.TV__update(TV__strTitle, TV__strContent);
- TV__enableButton(true);
- return true;
- }
- return false;
- }
-
- function TV__FDR_getAnnot(TV__strID)
- {
- for (var i = 0; i < this.TV__annotArray.length; i++)
- {
- var TV__annot = this.TV__annotArray[i];
-
- if ( (TV__annot != null) && (TV__annot.TV__id == TV__strID) )
- return TV__annot;
- }
- return null;
- }
-
- function TV__FDR_UpdateCount()
- {
- var TV__folder = TV__LAB_FolderArray[this.TV__id];
- if (TV__folder == null)
- return false;
-
- var TV__objFolder = document.all.item(TV__annotlistPrefix + this.TV__id);
-
- var TV__innerHTML = TV__objFolder.parentElement.innerHTML;
- var TV__label = (this.TV__annotCount == 0) ? this.TV__name : this.TV__name + " [" + this.TV__annotCount + "]";
-
- var TV__startidx = TV__innerHTML.indexOf(this.TV__name);
- var TV__endidx = TV__innerHTML.indexOf("<", TV__startidx + 1);
-
- TV__innerHTML = TV__innerHTML.substring(0, TV__startidx) + TV__label + TV__innerHTML.substring(TV__endidx);
- var TV__parent = TV__objFolder.parentElement;
- TV__parent.innerHTML = TV__innerHTML;
- TV__parent.style.color= 'black';
-
- return true;
- }
-
- function TV__LAB_Annotation(TV__strID, TV__strTitle, TV__strContent, TV__strUrl, TV__strRefStr, TV__strDate, TV__objParent)
- {
- this.TV__id = TV__strID;
- this.TV__title = TV__strTitle;
- this.TV__content = TV__strContent;
- this.TV__url = TV__strUrl;
- this.TV__refStr = TV__strRefStr;
- this.TV__date = TV__strDate;
- this.TV__parent = TV__objParent;
- this.TV__parentID= TV__objParent.TV__id;
-
- this.TV__markup = TV__ANN_Markup;
- this.TV__update = TV__ANN_Update;
- this.TV__showAnnot = TV__ANN_ShowAnnot;
- }
-
- function TV__ANN_Markup()
- {
- var TV__treeID = TV__annotPrefix + this.TV__id;
- return "<li id=" + TV__treeID + " class=annotitem parentid=" + this.TV__parentID + " onclick=TV__ShowAnnotation(\"" + TV__treeID + "\")>" + this.TV__title + "</li>";
- }
-
- function TV__ANN_Update(TV__strTitle, TV__strContent)
- {
- this.TV__title = TV__strTitle;
- this.TV__content = TV__strContent;
-
- // change the list tree
- var TV__annotid = "treeannot" + this.TV__id;
- var TV__annottree = document.all.item(TV__annotid);
-
- if (TV__annottree == null)
- return false;
-
- TV__annottree.innerText = this.TV__title;
- return this.TV__showAnnot();
- }
-
- function TV__ANN_ShowAnnot()
- {
- TV__HideAnnotContent();
-
- var TV__doc = document.all;
- var TV__treeID = TV__annotPrefix + this.TV__id;
- var TV__objAnnot = TV__doc[TV__treeID];
- TV__objAnnot.style.backgroundColor = TV__highlightColor;
-
- TV__trackSelectedFolder = TV__objAnnot.parentElement.parentElement;
- TV__doc.annotdetail.currID = this.TV__id;
- TV__doc.atitle.value = this.TV__title;
- TV__doc.acontent.value = this.TV__content;
- TV__doc.aurl.innerText = this.TV__url;
- TV__doc.aurl.href = this.TV__url;
- TV__doc.adate.innerText = this.TV__date;
- }
-
- // //
- ////////////////////////////////////////////////////////////////////////////
-
- function TV__AddFolder(TV__strID, TV__strName)
- {
- return TV__PsnNotes.addFolder(TV__strID, TV__strName);
- }
-
- function TV__AddAnnotation(TV__strID, TV__strTitle, TV__strContent, TV__strUrl, TV__strRefStr, TV__strDate, strFolderID)
- {
- var TV__folder = TV__LAB_FolderArray[strFolderID];
-
- if (TV__folder == null)
- return false;
-
- return TV__folder.TV__addAnnot(TV__strID, TV__strTitle, TV__strContent, TV__strUrl, TV__strRefStr, TV__strDate);
- }
-
- // /////////////////////////////////////////////////////////////////////////
- //
- // EDIT ANNOTATION
- //
- function TV__EditAnnot(TV__strID, TV__strTitle, TV__strContent)
- {
- var TV__annotEle = document.all[TV__annotPrefix + TV__strID];
-
- if (TV__annotEle != null)
- {
- var TV__folder = TV__LAB_FolderArray[TV__annotEle.getAttribute("parentid")];
-
- if (TV__folder != null)
- {
- TV__annotEle.innerText = TV__strTitle;
- return TV__folder.TV__editAnnot(TV__strID, TV__strTitle, TV__strContent);
- }
- }
-
- return false;
- }
-
- // /////////////////////////////////////////////////////////////////////////
- //
- // DELETE ANNOTATION
- //
- function TV__DeleteAnnotation(TV__strID)
- {
- var TV__bDeleted = false;
- var TV__annotEle = document.all[TV__annotPrefix + TV__strID];
-
- if (TV__annotEle != null)
- {
- TV__annotEle.outerHTML = "";
- var TV__folder = TV__LAB_FolderArray[TV__annotEle.getAttribute("parentid")];
-
- if (TV__folder != null)
- TV__bDeleted = TV__folder.TV__removeAnnot(TV__strID);
- }
-
- if (TV__bDeleted == true)
- TV__clearDetailBox();
-
- return TV__bDeleted;
- }
-
-
- // /////////////////////////////////////////////////////////////////////////
- //
- // SHOW/HIDE ANNOTATION DETAILS
- //
- function TV__ShowAnnotation(TV__id)
- {
- TV__ShowAnnotContent(TV__id);
-
- event.cancelBubble = true;
- event.returnValue = false;
- }
-
- function TV__ShowAnnotContent(TV__strID)
- {
- if (TV__strID.substring(0, TV__annotPrefix.length) != TV__annotPrefix)
- return;
-
- var TV__annotEle = document.all[TV__strID];
-
- if (TV__annotEle != null)
- {
- var TV__folder = TV__LAB_FolderArray[TV__annotEle.getAttribute("parentid")];
- TV__strID = TV__strID.substring(TV__annotPrefix.length);
-
- var TV__annot = TV__folder.TV__getAnnot(TV__strID);
- if (TV__annot != null)
- {
- TV__annot.TV__showAnnot();
- TV__enableButton(true);
- return true;
- }
- }
- return false;
- }
-
- function TV__HideAnnotContent()
- {
- var TV__doc = document.all;
-
- if (TV__doc.annotdetail.currID != null)
- {
- var TV__treeID = TV__annotPrefix + TV__doc.annotdetail.currID;
- var TV__objAnnot = TV__doc[TV__treeID];
- TV__objAnnot.style.backgroundColor = "transparent";
- }
- TV__clearDetailBox();
- }
-
- function TV__clearDetailBox()
- {
- var TV__doc = document.all;
-
- TV__doc.annotdetail.currID = null;
- TV__doc.atitle.value = "";
- TV__doc.acontent.value = "";
- TV__doc.aurl.innerText = "";
- TV__doc.adate.innerText = "";
-
- TV__enableButton(false);
- }
-
- // /////////////////////////////////////////////////////////////////////////
- //
- // BUTTONS
- //
- function OnClickUpdate()
- {
- var TV__annotid = document.all.annotdetail.currID;
-
- if(TV__annotid != null)
- {
- var TV__title = TV__trim(document.all.atitle.value);
-
- if (TV__title == "")
- {
- alert("Please pick a title for the annotation");
- return;
- }
-
- if (TV__hasTag(TV__title))
- {
- alert("HTML tag is not allowed in title, please try again.");
- return;
- }
-
- var TV__event = TV__TV_CLIENT_HDR + TV__TVP + TV__TVM_UPDATE + TV__TVP + TV__annotid + TV__TVP + TV__title;
- TV__raiseEvent(TV__event);
- }
- }
-
- function OnClickDelete()
- {
- if (confirm('Do you want to delete this note?') == false)
- return;
-
- var TV__annotid = document.all.annotdetail.currID;
-
- if(null != TV__annotid)
- {
- var TV__event = TV__TV_CLIENT_HDR + TV__TVP + TV__TVM_DELETE + TV__TVP + TV__annotid;
- TV__raiseEvent(TV__event);
- }
- }
-
- function OnClickUndo()
- {
- var TV__annotid = document.all.annotdetail.currID;
-
- if(TV__annotid != null)
- {
- TV__ShowAnnotContent(TV__annotPrefix + TV__annotid);
- setUpdateUndoBtn(false);
- }
- }
-
- function OnPost(Destination)
- {
- var TV__annotid = document.all.annotdetail.currID;
-
- if(TV__annotid == null) // no annotation selected
- return;
-
- var TV__sMessage = eval("TVM_POSTTO" + Destination);
-
- var TV__annotEle = document.all[TV__annotPrefix + TV__annotid];
-
- if (TV__annotEle != null)
- {
- var TV__folder = TV__LAB_FolderArray[TV__annotEle.getAttribute("parentid")];
-
- if (TV__folder != null)
- {
- var TV__annot = TV__folder.TV__getAnnot(TV__annotid);
- var TV__title = TV__trim(document.all.atitle.value);
- var TV__content = TV__trim(document.all.acontent.value);
-
- if (TV__title == "" || TV__content == "")
- {
- alert("Sorry, we cannot forward note without title or content");
- return;
- }
-
- var TV__event = TV__TV_CLIENT_HDR + TV__TVP + TV__sMessage + TV__TVP + TV__annot.TV__url + TV__TVP + TV__annot.TV__refStr + TV__TVP + TV__title;
- TV__raiseEvent(TV__event);
- }
- }
- }
-
- function TV__enableButton(TV__bEnable)
- {
- var TV__state = !TV__bEnable;
-
- var TV__doc = document.all;
- TV__doc.atitle.disabled = TV__state;
- TV__doc.acontent.disabled = TV__state;
- TV__doc.del.disabled = TV__state;
- TV__doc.postpublic.disabled = TV__state;
- TV__doc.postprivate.disabled = TV__state;
- setUpdateUndoBtn(false);
- }
-
- function setUpdateUndoBtn(TV__bState, TV__e, TV__bHandleEnter)
- {
- if (TV__e != null)
- {
- var TV__enterKey = 13;
- if ( (TV__e.keyCode == TV__enterKey) && (TV__bHandleEnter == false) )
- return;
- }
-
- document.all.update.disabled = !TV__bState;
- document.all.undo.disabled = !TV__bState;
- }
-
- function checkupchanges(TV__e, TV__bHandleEnter)
- {
- var TV__backspKey = 8;
- var TV__delKey = 46;
- var TV__CtrlV = 86;
- var TV__SHIFTINS = 45;
- var TV__CtrlDel = 88;
-
- var TV__key = TV__e.keyCode
-
- if ( (TV__key == TV__backspKey) || (TV__key == TV__delKey) || (TV__key == TV__CtrlV) || (TV__key == TV__SHIFTINS) || (TV__key == TV__CtrlDel))
- setUpdateUndoBtn(true);
- }
-
- // /////////////////////////////////////////////////////////////////////////
- //
- // MISCELLANEOUS
- //
- function OutLiner()
- {
- var TV__el = null, TV__child = null;
- TV__el = event.srcElement;
- TV__child = document.all[event.srcElement.sourceIndex+1];
-
- if ( (TV__child.tagName == 'UL'))
- {
- if(TV__el.className == 'foldername')
- {
- if (TV__fillAnnot(TV__child.id.substring(TV__annotlistPrefix.length)))
- {
- TV__child.style.display = 'block';
- TV__el.className = 'foldernameopen';
- }
- }
- else
- {
- TV__child.style.display = 'none';
- TV__el.className = 'foldername';
-
- if (TV__el == TV__trackSelectedFolder)
- {
- TV__trackSelectedFolder = null;
- TV__HideAnnotContent();
- }
- }
- }
- event.cancelBubble = true;
- event.returnValue = false;
- }
-
- function TV__fillAnnot(TV__folderid)
- {
- var TV__folder = TV__LAB_FolderArray[TV__folderid];
-
- if (TV__folder != null)
- {
- if (TV__folder.TV__filled == false)
- TV__folder.TV__fillAnnots();
- }
-
- return (TV__folder.TV__annotCount > 0);
- }
-
- function TV__getParams(TV__A, TV__params, TV__num)
- {
- if (TV__params.substring(0, TV__TVP.length) != TV__TVP)
- return false;
-
- TV__params = TV__params.substring(TV__TVP.length);
- var TV__idx = TV__params.indexOf(TV__TVP);
-
- while (TV__idx != -1)
- {
- TV__A[TV__A.length] = TV__params.substring(0, TV__idx);
- TV__params = TV__params.substring(TV__idx +TV__TVP.length);
- TV__idx = TV__params.indexOf(TV__TVP);
- }
-
- if (TV__idx != "")
- TV__A[TV__A.length] = TV__params;
-
- if (TV__A.length != TV__num)
- return false;
-
- return true;
- }
-
- function TV__raiseEvent(TV__event)
- {
- window.status = TV__event;
- window.status = "";
- }
-
- function TV__trim(TV__instr)
- {
- var TV__str = new String();
- var TV__count = TV__instr.length;
-
- for (var i = TV__instr.length-1 ; i >= 0; i--)
- {
- if (TV__instr.charAt(i) != " ")
- break;
- TV__count--;
- }
-
- if (TV__count == TV__instr.length)
- return TV__instr;
-
- if (TV__count == 0)
- return "";
-
- for (var i = 0; i < TV__count; i++)
- TV__str = TV__str + TV__instr.charAt(i);
-
- return TV__str;
- }
-
- function TV__hasTag(TV__str)
- {
- var TV__reg = /(<\S.+>)/;
-
- if (TV__reg.test(TV__str))
- return true;
- }
-
- /** Copyright (c) 1999 ThirdVoice Inc. All rights reserved. **/
-