home *** CD-ROM | disk | FTP | other *** search
/ PC World 2006 December / PCWorld_2006-12_cd.bin / komunikace / netscape / nsb-install-8-1-2.exe / chrome / aim.jar / content / aim / timestamps.js < prev    next >
Text File  |  2006-01-06  |  4KB  |  147 lines

  1. /*
  2.  * Name: cmdViewTimestamp
  3.  *
  4.  * Arguments: None
  5.  *
  6.  * Description:
  7.  *
  8.  * This function is the command handler for the timestamp menu item in
  9.  * the IM view menu. It switches the global state stored on the document,
  10.  * syncs the timestamp menu item to reflect its function now that the
  11.  * state has changed, and it calls showTimestamps() to cause the content
  12.  * to change to refect the new state
  13.  *
  14.  * Original Code: Syd Logan 1/4/2002
  15.  *
  16. */
  17.  
  18. function cmdViewTimestamp()
  19. {
  20.   var timestampItem = top.document.getElementById("miTimestamp");
  21.   if ( showTimestampVal == true ){
  22.     timestampItem.setAttribute("label", aimString("miTimestamp.Show"));
  23.     showTimestampVal = false;
  24.   }
  25.   else {
  26.     timestampItem.setAttribute("label", aimString("miTimestamp.Hide"));
  27.     showTimestampVal = true;
  28.   }
  29.   showTimestamps(showTimestampVal);
  30. }
  31.  
  32. /*
  33.  * Name: cmdCreateTimestamp
  34.  *
  35.  * Arguments: None
  36.  *
  37.  * Description:
  38.  *
  39.  * This function sets the timestamp menu item to its proper value 
  40.  *
  41.  * Original Code: Syd Logan 1/4/2002
  42.  *
  43. */
  44.  
  45. function cmdCreateTimestamp()
  46. {
  47.   var timestampItem = top.document.getElementById("miTimestamp");
  48.   if ( showTimestampVal == true )
  49.     timestampItem.setAttribute("label", aimString("miTimestamp.Hide"));
  50.   else
  51.     timestampItem.setAttribute("label", aimString("miTimestamp.Show"));
  52. }
  53.  
  54. /*
  55.  * Name: SetTimestampMenuItem
  56.  *
  57.  * Arguments: None
  58.  *
  59.  * Description:
  60.  *
  61.  * This function looks at the document-global variable that holds the current
  62.  * state of the timestamp menu (set before this function is called) and then
  63.  * sets the label on the menu item appropriately. We also call across to the
  64.  * backend to tell it, for this window, whether to poke in a timestamp or not.
  65.  *
  66.  * Original Code: Syd Logan 11/23/2001
  67.  *
  68. */
  69.  
  70. function
  71. SetTimestampMenuItem()
  72. {
  73.   var timestampItem = top.document.getElementById("miTimestamp");
  74.  
  75.   if ( showTimestampVal == true ) {
  76.     timestampItem.setAttribute("label", aimString("miTimestamp.Hide"));
  77.     showTimestamps( true );
  78.   }
  79.   else {
  80.     timestampItem.setAttribute("label", aimString("miTimestamp.Show"));
  81.     showTimestamps( false );
  82.   }
  83.   return false;
  84. }
  85.  
  86. /*
  87.  * Name: showTimestamps
  88.  *
  89.  * Arguments:
  90.  *
  91.  * boolean which -- if true, show the timestamps in the log, else hide them
  92.  *
  93.  * Description:
  94.  *
  95.  * This function iterates the document and searches for all spans that have
  96.  * a class id that is equal to logtimestamp. If the argument passed to this
  97.  * function is true, then any span that is found will be shown, otherwise,
  98.  * it will be hidden.
  99.  *
  100.  * Original Code: 12/23/2001, Syd Logan (I should have implemented this a
  101.  * year ago :-)
  102.  *
  103.  */
  104.  
  105. function
  106. showTimestamps( which )
  107. {
  108.   var wind = top.document.getElementById("LogWnd").contentWindow;
  109.   var spanVec = wind.document.getElementsByTagName("SPAN");
  110.   for ( var span = 0; span < spanVec.length; span++ ) {
  111.     var attributes = spanVec[span].attributes;
  112.     if ( attributes && attributes.length ) {
  113.       var item, name, value;
  114.       for ( var index = 0; index < attributes.length; index++ ) {
  115.         item = attributes.item(index);
  116.         name = item.nodeName;
  117.         value = item.nodeValue;
  118.         if ( name == 'class' && value == 'logtimestamp' ) {
  119.           if ( which == true ) {
  120.               spanVec[span].setAttribute('style', 'visibility:visible' );
  121.           }
  122.           else {
  123.               // need display:none otherwise the span will still occupy space
  124.               spanVec[span].setAttribute('style', 'display:none' );
  125.           } 
  126.           break;
  127.         }
  128.       }
  129.     }
  130.   }
  131.  
  132.   /* 
  133.      If IM, gotta tell the backend so it can set the style on the SPAN
  134.      correctly when new content is added (chat just looks at the state
  135.      stored in the document, since it adds content in JS)
  136.   */
  137.  
  138.   if ( isChatContent == false ) {
  139.     var pIAimIM = aimIMObject();
  140.  
  141.     if(pIAimIM)
  142.       pIAimIM.SetTimestamp(AimIMGetFormScreenName(), which);
  143.   }
  144. }
  145.  
  146.  
  147.