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 / AimIM.js < prev    next >
Text File  |  2005-01-17  |  9KB  |  272 lines

  1. /*
  2.  * Function:  aimIMObject()
  3.  * Arguments: None
  4.  * Return: nsIAimIM interface
  5.  * Description:  This function is queries for it and returns the nsIAimIM interface 
  6. */
  7.  
  8. function aimIMObject()
  9. {
  10.     var pIIMManager = aimManager();
  11.     if ( pIIMManager )
  12.         return pIIMManager.QueryInterface(Components.interfaces.nsIAimIM);
  13.     else
  14.         return null;
  15. }
  16.  
  17. /*
  18.  * Function:  aimIMInvokeIMForm(screenName)
  19.  * Arguments: 
  20.  *    screenName  --  the buddy name which appears on the To field in the IM window (selected  buddy name)
  21.  * Return: None
  22.  * Description:  This function calls the InvokeIMUI function which on the AimIM interface which puts 
  23.  * up the IM conversation window. The Screenname param which is passed, is used to prefill the To field.
  24. */
  25.  
  26. function aimIMInvokeIMForm(screenName)
  27. {
  28.     var pIAimIM = aimIMObject();
  29.     if(pIAimIM)
  30.         pIAimIM.InvokeIMUI(screenName, null);
  31. }
  32.  
  33. /*
  34.  * Function:  aimIMDoesIMExist(screenName)
  35.  * Arguments: 
  36.  *    screenName  --  screen name to be checked
  37.  * Return: Boolean
  38.  * Description:  This function is used to find out if there is already an existing aim conversation 
  39.  * going on with the specified screenname. If there is already a window open with the screenname in 
  40.  * the To:field or title of the window, then this returns true. If no window exists for this screen 
  41.  * name, this returns false;
  42. */
  43.  
  44. function aimIMDoesIMExist(screenName)
  45. {
  46.     var pIAimIM = aimIMObject();
  47.     if(pIAimIM)
  48.         {
  49.         var pWindow = pIAimIM.GetExistingIM(screenName);
  50.         if(pWindow)
  51.             return true;
  52.         }
  53.     return false;
  54. }
  55.  
  56. /**************** Private Methods ***********************/
  57.  
  58. /*
  59.  * Function:  aimPIMObject()
  60.  * Arguments: None
  61.  * Return: nsPIAimIM interface
  62.  * Description:  This function queries for it and returns the nsPIAimIM interface 
  63. */
  64.  
  65. function aimPIMObject()
  66. {
  67.     var pIIMManager = aimManager();
  68.     if(pIIMManager)
  69.         return pIIMManager.QueryInterface(Components.interfaces.nsPIAimIM);
  70.     else
  71.         return null;
  72. }
  73.  
  74. /*
  75.  * Function:  aimPIMSendIM(wnd, screenName, message)
  76.  * Arguments: 
  77.  *    wnd --    window from which the message is sent
  78.  *    screenName  --  screenname to whom the message is to be sent
  79.  *    message --  message to be sent. 
  80.  * Return:  None 
  81.  * Description:  This function is used to send a instant message from the window 
  82.  * where the Send button is clicked. The message (the formatted contents of the IM window)
  83.  * is sent to the screenname  which is the second input parameter ( from the To:field in IM window). 
  84. */
  85.  
  86. function aimPIMSendIM(wnd, screenName, message, text)
  87. {
  88.     var pPIAimIM = aimPIMObject();
  89.     if(pPIAimIM)
  90.         pPIAimIM.SendMsg(wnd, screenName, message, text);
  91. }
  92.  
  93.  
  94. /*
  95.  * Function:  setStyles ()
  96.  * Arguments: 
  97.  * Return:  None 
  98.  * Description:  This function is used to set the style elements,
  99.  *               which are read from the prefs, and overridden by
  100.  *               getStyles.
  101.  *               
  102.  * Author: jelwell@netscape.com
  103. */
  104.  
  105. var sessionType =aimPrefsManager().GetIntPref("aim.session.sessiontype", null, false);
  106. if(sessionType == 0) {
  107.   var aimStylePrefManager = aimPrefsManager();
  108.   var faceType = aimStylePrefManager.GetCharPref("aim.style.fontface", null, false);
  109.   var fontSize = aimStylePrefManager.GetCharPref("aim.style.fontsize", null, false);
  110.   var textstyles = aimStylePrefManager.GetCharPref("aim.style.textstyles", null, false);
  111.   var italics = aimStylePrefManager.GetBoolPref("aim.style.italics", null, false);
  112.   var bold = aimStylePrefManager.GetBoolPref("aim.style.bold", null, false);
  113.   var underline = aimStylePrefManager.GetBoolPref("aim.style.underline", null, false);
  114.   var currentColor = aimStylePrefManager.GetCharPref("aim.style.forecolor", null, false);
  115.   var backgroundColor = aimStylePrefManager.GetCharPref("aim.style.backcolor", null, false);
  116. }
  117. if (sessionType ==2) {
  118.   var aimStylePrefManager = aimPrefsManager();
  119.   var faceType = aimStylePrefManager.GetCharPref("icq.style.fontface", null, false);
  120.   var fontSize = aimStylePrefManager.GetCharPref("icq.style.fontsize", null, false);
  121.   var textstyles = aimStylePrefManager.GetCharPref("icq.style.textstyles", null, false);
  122.   var italics = aimStylePrefManager.GetBoolPref("icq.style.italics", null, false);
  123.   var bold = aimStylePrefManager.GetBoolPref("icq.style.bold", null, false);
  124.   var underline = aimStylePrefManager.GetBoolPref("icq.style.underline", null, false);
  125.   var currentColor = aimStylePrefManager.GetCharPref("icq.style.forecolor", null, false);
  126.   var backgroundColor = aimStylePrefManager.GetCharPref("icq.style.backcolor", null, false);
  127. }
  128.  
  129. function setStyles ()
  130. {
  131.   // find body node
  132.   var bodyelement = GetBodyElement();
  133.   if (bodyelement)
  134.   {
  135.     if (backgroundColor && backgroundColor != "")
  136.       bodyelement.setAttribute("bgcolor", backgroundColor);
  137.     var backgroundcolor = document.getElementById("cmd_backgroundColor");
  138.     if (backgroundcolor)
  139.       backgroundcolor.setAttribute("state", backgroundColor);
  140.   }
  141.   if (currentColor && currentColor != "") {
  142.     EditorSetTextProperty("font", "color", currentColor);
  143. //  bodyelement.setAttribute("text", text_color);
  144.     var commandcolor = document.getElementById("cmd_fontColor");
  145.     if (commandcolor)
  146.       commandcolor.setAttribute("state", currentColor);
  147.   }
  148.   if (textstyles && textstyles != "") {
  149.     if (italics)
  150.       EditorSetTextProperty("i", "", "");
  151.     if (bold)
  152.       EditorSetTextProperty("b", "", "");
  153.     if (underline)
  154.       EditorSetTextProperty("u", "", "");
  155.   }
  156.   if (fontSize && fontSize != "")
  157.  
  158.   EditorSetTextProperty(fontSize, "", "");
  159.  
  160.   if (faceType == "tt")
  161.   {
  162.     EditorSetTextProperty("tt", "", "");
  163.   }
  164.   else if (faceType && faceType != "")
  165.   {
  166.     EditorRemoveTextProperty("font","face");
  167.     EditorSetTextProperty("font", "face", faceType);
  168.   }
  169.   document.getElementById("cmd_preferences").setAttribute("disabled", "false");
  170. }
  171.  
  172. function changeFont()
  173. {
  174.   faceType = document.getElementById('FontFaceSelectStyle').value;
  175.   EditorRemoveTextProperty("font","face");
  176.   EditorSetTextProperty("font", "face", faceType);
  177. }
  178. /*
  179.  * Function:  getStyles ()
  180.  * Arguments: 
  181.  * Return:  None 
  182.  * Description:  This function is used to get the style elements,
  183.  *               to be saved for retrieval for the next message
  184.  *               sent in this session.
  185.  *
  186.  * Author: jelwell@netscape.com
  187. */
  188.  
  189. function getStyles ()
  190. {
  191.   var editor = GetCurrentEditor();
  192.   if (!editor)
  193.     return;
  194.  
  195.   editor.selectAll();
  196.  
  197.   var firstHas = new Object;
  198.   var anyHas = new Object;
  199.   var allHas = new Object;
  200.   allHas.value = false;
  201.  
  202.   //    Find Font Face
  203.   //    Fixed width (second menu item) is special case: old TT ("teletype") attribute
  204.   EditorGetTextProperty("tt", "", "", firstHas, anyHas, allHas);
  205.   if (!allHas.value)
  206.   {
  207.     var children = top.document.getElementById("FontFacePopupStyle").childNodes;
  208.     // Skip over default, TT, and separator
  209.     for (var i = 0; i < children.length; i++)
  210.     {
  211.       var menuitem = children.item(i);
  212.       faceType = menuitem.getAttribute("value");
  213.       if (faceType)
  214.       {
  215.         EditorGetTextProperty("font", "face", faceType, firstHas, anyHas, allHas);
  216.         if (allHas.value)
  217.         {
  218.           break;
  219.         }
  220.       }
  221.     }
  222.     if (!allHas.value)
  223.     faceType = "";
  224.   }
  225.   else
  226.     faceType = "tt";
  227.   //    End Find Font Face
  228.  
  229.   //    Find Big or Small
  230.   EditorGetTextProperty("big", "", "", firstHas, anyHas, allHas);
  231.   if (allHas.value)
  232.   {
  233.     fontSize = "big";
  234.   }
  235.   else
  236.   {
  237.     EditorGetTextProperty("small", "", "", firstHas, anyHas, allHas);
  238.   if (allHas.value)
  239.     fontSize = "small";
  240.   else
  241.     fontSize = "";
  242.  
  243.   }
  244.  //    End Find Big or Small
  245.   EditorGetTextProperty("i", "", "", firstHas, anyHas, allHas);
  246.   if (allHas.value)
  247.     italics = true;
  248.   else
  249.     italics = false;
  250.   EditorGetTextProperty("b", "", "", firstHas, anyHas, allHas);
  251.   if (allHas.value)
  252.     bold = true;
  253.   else
  254.     bold = false;
  255.   EditorGetTextProperty("u", "", "", firstHas, anyHas, allHas);
  256.   if (allHas.value)
  257.     underline = true;
  258.   else
  259.     underline = false;
  260.  
  261.   if (italics || bold || underline)
  262.     textstyles = 1;
  263.   var commandcolor = document.getElementById("cmd_fontColor");
  264.   if (commandcolor) {
  265.     currentColor = commandcolor.getAttribute("state");
  266.   }
  267.   var backgroundcolor = document.getElementById("cmd_backgroundColor");
  268.   if (backgroundcolor) {
  269.     backgroundColor = backgroundcolor.getAttribute("state");
  270.   }
  271. }
  272.