home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 July & August / PCWorld_2005-07-08_cd.bin / komunikace / netscape / nsb-install-8-0.exe / chrome / aim.jar / content / aim / aimHdrViewOverlay.js < prev    next >
Text File  |  2004-12-02  |  2KB  |  73 lines

  1. /* This overlay JS file contains the JS necessary for integrating
  2.    AIM presence into the messenger msg header pane overlay (msgHdrViewOverlay).
  3.  
  4.    It allows us to dynamically modify the msg hdr view overlay to add 
  5.    presence indication for email addresses in that pane.
  6. */
  7.  
  8.  
  9.  
  10. // cache the properties we are interested in...
  11. var buddyStateString = RDF.GetResource("http://home.netscape.com/NC-rdf#BuddyStateString");
  12.  
  13. // This array of dom nodes is an array indexed by URI that keeps track of the
  14. // dom nodes in the msg header pane we care about...
  15. var domNodes = new Object();
  16.  
  17. /* SetPresence updates the titled button image (node)
  18.    based on the property value of presence
  19. */
  20. function SetPresence(node, presence)
  21. {
  22.   if (node)
  23.   {
  24.    // if we have a node that corresponds to this URI, then we need to poke
  25.    // it....
  26.     var targetString = presence.QueryInterface(Components.interfaces.nsIRDFLiteral).Value;
  27.     node.setAttribute("BuddyStateString", targetString);
  28.     // this silly align hack is because css isn't noticing the alignment
  29.     // attribute unless I set it to something...then set it back to what
  30.     // I really want...
  31.     node.setAttribute("align", "left");
  32.     node.setAttribute("align", "right");
  33.     node.setAttribute("max-height", "15px");
  34.   }
  35. }
  36.  
  37. /* Extract the AIM ID from the node and send an instant message
  38. */
  39. function SendIMFor (node)
  40. {
  41. //XXXjelwellXXX might need to change state from OnlineAway to Online
  42.   var target = aimRDFDataSource().GetTarget(aimRDFSession(), aimRDFSessionState(), true);
  43.   var state = target.QueryInterface(Components.interfaces.nsIRDFLiteral).Value;
  44.   if ("OnlineAway" == state)
  45.   {
  46.     if ( aimLocateManager() ) {
  47.         aimLocateManager().SetUserInfoAwayMessage(null);
  48.     }
  49.   }
  50.  
  51.   if (node)
  52.   {
  53.     var screenName = node.getAttribute("IMScreenName");
  54.     if (screenName)
  55.     {
  56.       aimIMInvokeIMForm(screenName);
  57.     }
  58.     else
  59.       aimIMInvokeIMForm(null);
  60.   }
  61. }
  62.  
  63. function AddToBuddyListFor(node)
  64. {
  65. //XXXjelwellXXX might need to change state from OnlineAway to Online
  66.   if (node)
  67.   {
  68.     var screenName = node.getAttribute("IMScreenName");
  69.     openDialog("chrome://aim/content/BuddyAddBuddy.xul", "", "modal=yes,titlebar,chrome", null, null, screenName);
  70.   }
  71. }
  72.  
  73.