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 / Aim.js < prev    next >
Text File  |  2005-03-25  |  8KB  |  323 lines

  1. var strBundleService = null;
  2. var regionalBundle = null;
  3.  
  4.  
  5. /* 
  6.  * Name: aimRDFSession
  7.  * Arguments: None
  8.  * Description:
  9.  * Returns: the NC:AIM/session resource
  10.  * Author: syd@netscape.com 5/18/2001
  11.  *
  12. */
  13.  
  14. function aimRDFSession()
  15. {
  16.     var rdf = aimRDF();
  17.     if ( rdf ) {
  18.         return rdf.GetResource("NC:AIM/Session");
  19.     }
  20.     return null;
  21. }
  22.  
  23. /* 
  24.  * Name: aimRDFSessionState
  25.  *
  26.  * Arguments: None
  27.  *
  28.  * Description:
  29.  *
  30.  * Returns: the OnlineState resource
  31.  *
  32.  * Author: syd@netscape.com 5/18/2001
  33.  *
  34. */
  35.  
  36. function aimRDFSessionState()
  37. {
  38.     var rdf = aimRDF();
  39.     if ( rdf ) {
  40.         return rdf.GetResource("http://home.netscape.com/NC-rdf#OnlineState");
  41.     }
  42.     return null;
  43. }
  44.  
  45. /* 
  46.  * Name: aimRDFWarningStatus
  47.  *
  48.  * Arguments: None
  49.  *
  50.  * Description:
  51.  *
  52.  * Returns: the nsIRDF service
  53.  *
  54.  * Author: syd@netscape.com 5/18/2001
  55.  *
  56. */
  57.  
  58. function aimRDFWarningStatus()
  59. {
  60.     var rdf = aimRDF();
  61.     if ( rdf ) {
  62.         return rdf.GetResource("http://home.netscape.com/NC-rdf#Warning");
  63.     }
  64.     return null;
  65. }
  66.  
  67. /* 
  68.  * Name: aimGetStrBundle(path)
  69.  * Arguments: path
  70.  * Description:
  71.  * Returns: 
  72.  *
  73. */
  74.  
  75. function aimGetStrBundle(path)
  76. {
  77.   var strBundle = null;
  78.   if (!strBundleService) {
  79.       try {
  80.           strBundleService =
  81.               Components.classes["@mozilla.org/intl/stringbundle;1"].getService(); 
  82.           strBundleService = 
  83.               strBundleService.QueryInterface(Components.interfaces.nsIStringBundleService);
  84.       } catch (ex) {
  85.           return null;
  86.       }
  87.   }
  88.   strBundle = strBundleService.createBundle(path); 
  89.   if (!strBundle) {
  90.       return  null;
  91.   }
  92.   return strBundle;
  93. }
  94.  
  95. function aimRegionString(name)
  96. {
  97.     if (!regionalBundle) {
  98.         regionalBundle = aimGetStrBundle("chrome://aim-region/locale/region.properties");
  99.     }
  100.  
  101.     if (regionalBundle) {
  102.         try {
  103.             return regionalBundle.GetStringFromName(name);
  104.         } catch (ex) {
  105.               return null;
  106.         }
  107.     }
  108.     return "";
  109. }
  110.  
  111. function aimGetArgs(data)
  112. {
  113.     var args = new Object();
  114.     var pairs = data.split(",");
  115.     
  116.     for (var i = pairs.length - 1; i >= 0; i--)
  117.     {
  118.         var pos = pairs[i].indexOf('=');
  119.         if (pos == -1)
  120.             continue;
  121.         var argname = pairs[i].substring(0, pos);
  122.         var argvalue = pairs[i].substring(pos + 1);
  123.         if (argvalue.charAt(0) == "'" && argvalue.charAt(argvalue.length - 1) == "'")
  124.             args[argname] = argvalue.substring(1, argvalue.length - 1);
  125.         else
  126.             try {
  127.               args[argname] = unescape(argvalue);
  128.             } catch (e) {
  129.               args[argname] = argvalue;
  130.             }
  131.     }
  132.     return args;
  133. }
  134.  
  135. function aimString(name)
  136. {
  137.   var myAimSession = aimSession();
  138.     if ( myAimSession ) {
  139.         var pIStringBundle = aimSession().QueryInterface(Components.interfaces.nsIStringBundle);
  140.         if (pIStringBundle) {
  141.       var connection= getCurrentSessionType();
  142.       if (connection == "AIM")
  143.               return pIStringBundle.GetStringFromName(name);
  144.       if (connection =="ICQ")
  145.         {
  146.           var icqname= name+"_ICQ";
  147.           try {
  148.             if (pIStringBundle.GetStringFromName(icqname)){
  149.               return pIStringBundle.GetStringFromName(icqname);
  150.             }
  151.           }
  152.           catch (e)
  153.           {
  154.             //do nothing when msg_ICQ does not exist - the next return will give the msg and cover that case
  155.           }
  156.           return pIStringBundle.GetStringFromName(name);
  157.         }
  158.       }
  159.     }
  160.     return "";
  161. }
  162.  
  163. function aimErrorBox(errorText)
  164. {
  165.     top.alert(errorText);
  166. }
  167.  
  168. /* Global menu commands. Menu commands that might be useful to multiple apps go here */
  169.  
  170. function aimCmdNewBrowser(url)
  171. {
  172.     var Browser_pref=null;
  173.     try
  174.     {
  175.     Browser_pref = Components.classes["@mozilla.org/preferences-service;1"];
  176.     if (Browser_pref)       Browser_pref = Browser_pref.getService();
  177.     if (Browser_pref)       Browser_pref = Browser_pref.QueryInterface(Components.interfaces.nsIPrefBranch);
  178.     }
  179.     catch (ex)
  180.     {
  181.     Browser_pref = null;
  182.     }
  183.  
  184.     window.openDialog( "chrome://navigator/content/navigator.xul", "_blank", "chrome,all,dialog=no", url);
  185. }
  186.  
  187.  
  188. function aimCmdNewEmail()
  189. {
  190.    // MERC: SL Mar 22/05 - Mail removed from AIM
  191.     // openDialog("chrome://messenger/content/messengercompose/messengercompose.xul", "");
  192. }
  193.  
  194. function aimCheckForGroupCount()
  195. {
  196.   var aimbuddy = aimBuddyManager();
  197.   var groups = aimbuddy.GetIMBuddyGroups();
  198.   if (groups.hasMoreElements())
  199.     return true;
  200.   else
  201.     return false;
  202. }
  203.  
  204. /* returns the selected groups*/
  205.  
  206. function aimGetSelectedBuddyGroups()
  207. {
  208.   var tree = getSelectedTreeName();
  209.   var rangeCount = tree.treeBoxObject.selection.getRangeCount();
  210.   if (rangeCount == 0)
  211.     return null;
  212.   var groups = new Array();
  213.   var count = 0; 
  214.   var col = getSelectedTabName();
  215.   var view = tree.treeBoxObject.view;
  216.   for(var i = 0; i < rangeCount; i++) {
  217.     var startIndex = {};
  218.     var endIndex = {};
  219.     tree.treeBoxObject.selection.getRangeAt(i, startIndex, endIndex);
  220.     for (var j = startIndex.value; j <= endIndex.value; j++) {
  221.       var level = view.getLevel(j);
  222.       if (level == 0) {
  223.         //first see whether the selection is a group by checking the level
  224.         //var colName = view.getCellText(j, col);
  225.         var groupResource = GetBuddyResource(tree, j);
  226.         var colName = GetBuddyAttribute(tree, groupResource, "Name");
  227.         if (colName != "Offline")
  228.           // ignore if Offline group is selected.
  229.           groups[count++] = colName;
  230.       }
  231.     }
  232.   }
  233.  
  234.   return groups;
  235. }
  236.  
  237.  
  238. // this function tries to find where the groups data in the tree starts, 
  239. // and returns the node, else null. 
  240.  
  241. function aimBuddyTreeFindGroups( tree )
  242. {
  243.     if ( !tree ) {
  244.         return( null);
  245.     }
  246.  
  247.     else if ( !tree.childNodes )
  248.     {
  249.         return( null );
  250.     }
  251.  
  252.     for ( var i = 0; i < tree.childNodes.length; i++ ) {
  253.         if ( tree.childNodes[i].nodeName == "treechildren" ) {
  254.             return( tree.childNodes[i].childNodes );
  255.         }
  256.     }
  257.     return( null );
  258. }
  259.  
  260. function aimGlobalCmdStartupWizard()
  261. {
  262.     //var windowManager = Components.classes['@mozilla.org/rdf/datasource;1?name=window-mediator'].getService();
  263.     //var    windowManagerInterface = windowManager.QueryInterface(Components.interfaces.nsIWindowMediator);
  264.   var windowManagerInterface = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(Components.interfaces.nsIWindowMediator);
  265.     var topWindow = windowManagerInterface.getMostRecentWindow("Aim:StartupWizard");
  266.   if(topWindow)
  267.     topWindow.focus();
  268.   else{
  269.     var testingWizard = aimPrefsManager().GetBoolPref("aim.session.testingregistrationwizard", null, true);
  270.     if(testingWizard){
  271.        window.openDialog('chrome://aim/content/migration.xul','CPW','chrome,titlebar,resizable=yes',document);
  272.        }
  273.        else{
  274.           window.openDialog('chrome://aim/content/migrationWizard.xul','CPW','chrome,titlebar,resizable=yes',document);
  275.        }
  276.     }
  277. }
  278.  
  279. function openEditAIMAccountLink()
  280. {
  281.   parent.loadURI("https://my.screenname.aol.com", null, null); 
  282. }
  283.  
  284. function ClearMenuList( menulist )
  285. {
  286.     if ( menulist ) {
  287.         menulist.selectedItem = null;
  288.         while( menulist.firstChild )
  289.             menulist.removeChild( menulist.firstChild );
  290.     }
  291. }
  292.  
  293. /* 
  294.  * Name: aimRDFSession
  295.  * Arguments: None
  296.  * Description:
  297.  * Returns: the NC:AIM/session resource
  298.  * Author: syd@netscape.com 5/18/2001
  299.  *
  300. */
  301. function AppendStringToMenulist(menulist, string)
  302. {
  303.   if (menulist) {
  304.     var menupopup = menulist.firstChild;
  305.     // May not have any popup yet -- so create one
  306.     if (!menupopup) {
  307.       menupopup = document.createElement("menupopup");
  308.       if (menupopup)
  309.         menulist.appendChild(menupopup);
  310.       else {
  311.         return null;
  312.       }
  313.     }
  314.     menuItem = document.createElement("menuitem");
  315.     if (menuItem) {
  316.       menuItem.setAttribute("label", string);
  317.       menupopup.appendChild(menuItem);
  318.       return menuItem;
  319.     }
  320.   }
  321.   return null;
  322. }
  323.