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 / AimAddBuddy.js < prev    next >
Text File  |  2006-01-06  |  12KB  |  370 lines

  1.  
  2. /*
  3.  * Function:  AimAddGroupWndOnLoad()
  4.  * Arguments: None
  5.  * Return: None
  6.  * Description:  This function is called when the user chooses to add a group and the addgroup window gets loaded.
  7.  * It sets the Ok button to do addgroup function and sets focus to the groupname text box field.
  8. */
  9.  
  10. function AimAddGroupWndOnLoad()
  11. {
  12.     doSetOKCancel(AddGroup, 0);
  13.     setTimeout("document.getElementById('fldGroupName').focus()",200);
  14. }
  15.  
  16.     // build an array of groups
  17.     // generate a list of checkboxes for each
  18.  
  19. /*
  20.  * Function:  AimAddBuddyWndOnLoad()
  21.  * Arguments: selectedGroups, tree, screenname, (optional) url-argument
  22.  * Return: None
  23.  * Description:  This function is called when the user chooses to add a buddy and the addbuddy window gets loaded.
  24.  * It builds the check box list with all the group names by calling BuildGroupFrame with selectedGroups value.
  25.  * The user can choose which groups the buddy name needs to be added to. It also sets the listSetupTree attribute
  26.  * on the window with the tree name. It sets the Ok button to do addbuddy function and sets focus to the buddyname
  27.  * text box field.
  28. */
  29.  
  30. function AimAddBuddyWndOnLoad()    
  31. {
  32.   var gps = window.arguments[0];
  33.   if (window.arguments.length > 3) {
  34.       if((window.arguments[3] != null) && (window.arguments[0] != null))  {
  35.         gps = gps.split(",");
  36.       }
  37.   }
  38.   if (isIcq())
  39.   {
  40.     var icqtitle=window.document.getElementById("AimAddBuddyPanel").getAttribute("icqtitle");
  41.     window.document.getElementById("AimAddBuddyPanel").setAttribute("title", icqtitle);
  42.     icqtitle=window.document.getElementById("labelBuddyName").getAttribute("icqvalue");
  43.     window.document.getElementById("labelBuddyName").setAttribute("value", icqtitle);
  44.     window.document.getElementById("labelDisplayName").setAttribute("hidden", "false");
  45.     window.document.getElementById("fldDisplayName").setAttribute("hidden", "false");
  46.     window.document.getElementById("icqSearchButton").setAttribute("hidden", "false");
  47.     window.document.getElementById("icqseparator").setAttribute("hidden", "false");
  48.     window.document.getElementById("separator1").setAttribute("hidden", "true");
  49.     window.document.getElementById("separator2").setAttribute("hidden", "true");
  50.     window.document.getElementById("labelEmailName").setAttribute("hidden", "true");
  51.     window.document.getElementById("fldEmailName").setAttribute("hidden", "true");
  52.   }
  53.   else
  54.   {
  55.     var imtitle=window.document.getElementById("AimAddBuddyPanel").getAttribute("imtitle");
  56.     window.document.getElementById("AimAddBuddyPanel").setAttribute("title", imtitle);
  57.     imtitle=window.document.getElementById("labelBuddyName").getAttribute("imvalue");
  58.     window.document.getElementById("labelBuddyName").setAttribute("value", imtitle);
  59.     window.document.getElementById("icqSearchButton").setAttribute("hidden", "true");
  60.     window.document.getElementById("icqseparator").setAttribute("hidden", "true");
  61.     var supportmailim = aimPrefsManager().GetBoolPref("aim.session.supportmailim", null, false);
  62.     if (!supportmailim) {
  63.       window.document.getElementById("labelDisplayName").setAttribute("hidden", "true");
  64.       window.document.getElementById("fldDisplayName").setAttribute("hidden", "true");
  65.       window.document.getElementById("labelEmailName").setAttribute("hidden", "true");
  66.       window.document.getElementById("fldEmailName").setAttribute("hidden", "true");
  67.     } 
  68.     else {
  69.       window.document.getElementById("labelEmailName").removeAttribute("hidden");
  70.       window.document.getElementById("fldEmailName").removeAttribute("hidden");
  71.     }
  72.     window.document.getElementById("separator1").setAttribute("hidden", "false");
  73.     window.document.getElementById("separator2").setAttribute("hidden", "false");
  74.   }
  75.     top.listSetupTree = window.arguments[1];
  76.   if (isIcq())
  77.     doSetOKCancel(IcqAddContact, 0);
  78.   else
  79.       doSetOKCancel(AimAddBuddies, 0);
  80.     BuildGroupFrame(gps);
  81.     if(window.arguments[2]) {
  82.         document.getElementById("fldBuddyName").value=window.arguments[2]
  83.     return;
  84.   }
  85.   else {
  86.     setTimeout("document.getElementById('fldBuddyName').focus()",200);
  87.   }
  88.   
  89. }
  90.  
  91. function AimAddBuddies()
  92. {
  93.   var fldBuddy = top.document.getElementById("fldBuddyName");
  94.   var buddy = fldBuddy.value;
  95.   var buddyRelative = null
  96.   var found = false;
  97.   var error = false;
  98.   var error2 = false;
  99.   var a = top.a;
  100.  
  101.   var pIAimBuddy = aimBuddyManager();
  102.   var aimIBuddy = Components.interfaces.nsIAimBuddy;
  103.   var service= new Object();
  104.  
  105.   if (!pIAimBuddy || !aimIBuddy) {
  106.     aimErrorBox(aimString("msg.BadBuddy"));
  107.     return;
  108.   }
  109.  
  110.   if ( buddy == "" || !buddy ) {
  111.     aimErrorBox(aimString("msg.EnterBuddy"));
  112.     return;
  113.   }
  114.  
  115.  
  116.   
  117.   var buddies = buddy.split(",");
  118.   for (var j=0; j < buddies.length; j++) 
  119.   {
  120.     var isAllDigits = true;
  121.     buddies[j] = buddies[j].replace(/^\s+|\s+$/g, "");
  122.     isAllDigits=IsIcqServiceUser(buddies[j]);
  123.     if (isAllDigits == true) 
  124.       service[j]=1;
  125.     else
  126.       service[j]=0;
  127.   }
  128.        
  129.   var fldDisplay = top.document.getElementById("fldDisplayName");
  130.   var display = fldDisplay.value;
  131.   var disp_buddies=null;
  132.   if (display) {
  133.     disp_buddies = display.split(",");
  134.     for (var j=0; j < disp_buddies.length; j++) {
  135.       // Mini Parser to extract all the display names....
  136.       disp_buddies[j] = disp_buddies[j].replace(/^\s+|\s+$/g, "");
  137.     }
  138.   } //if display
  139.  
  140.  
  141.   var emailAddress = top.document.getElementById("fldEmailName").value;
  142.   emailAddress = emailAddress.replace(/^\s+|\s+$/g, "");
  143.   var emailAddresses=null;
  144.   if (emailAddress) {
  145.     emailAddresses = emailAddress.split(",");
  146.     for (var k=0; k < emailAddresses.length; k++) {
  147.       emailAddresses[k] = emailAddresses[k].replace(/^\s+|\s+$/g, "");
  148.       if (!validateEmailAddress(emailAddresses[k])) {
  149.         aimErrorBox(aimString("msg.enterValidEmail"));
  150.         return;
  151.       }
  152.     }
  153.   }
  154.  
  155.     if ( top.groupSelected ) {
  156.       found = true;
  157.       buddyRelative = FindBuddySelected( top.groupSelected, top.listSetupTree );
  158.       try {
  159.         //now add each buddies in the each group selected
  160.         for (var j=0; j < buddies.length; j++) {
  161.           if (display) {
  162.             if (emailAddress) {
  163.               if (aimBuddyAddBuddyAfter( top.groupSelected, buddies[j], buddyRelative, disp_buddies[j], service[j], emailAddresses[j]) == 1)
  164.                 error = true;
  165.             }
  166.             else {
  167.               if (aimBuddyAddBuddyAfter( top.groupSelected, buddies[j], buddyRelative, disp_buddies[j], service[j], null) == 1)
  168.                 error = true;
  169.             }
  170.           }
  171.           else {
  172.             if (emailAddress) {
  173.               if (aimBuddyAddBuddyAfter( top.groupSelected, buddies[j], buddyRelative, null, service[j], emailAddresses[j]) == 1)
  174.                 error = true;
  175.             }
  176.             else {
  177.               if (aimBuddyAddBuddyAfter( top.groupSelected, buddies[j], buddyRelative, null, service[j], null) == 1)
  178.                 error = true;
  179.             }
  180.           }
  181.         }
  182.       }
  183.       catch (e) {
  184.         if (pIAimBuddy.GetnResetError() == aimIBuddy.TooManyBuddies){
  185.           aimErrorBox(aimString("msg.BigBuddyList").replace(/%MaxBudNum%/, "" + pIAimBuddy.GetMaxBudNum()));
  186.           return;
  187.         }
  188.         else 
  189.           error2 = true;
  190.       } //catch
  191.     } //ifcheckbox 
  192.   
  193.   if (error2 == true) {
  194.     aimErrorBox(aimString("msg.BadBuddy"));
  195.     top.document.getElementById('fldBuddyName').focus();
  196.     }
  197.   else
  198.     if ( found == true) {
  199.       top.window.close();
  200.       }
  201.       else if ( error == true) {
  202.         top.document.getElementById('fldBuddyName').focus();
  203.       }
  204.  
  205. }
  206.  
  207. function IcqAddContact()
  208. {
  209.   var fldBuddy = top.document.getElementById("fldBuddyName");
  210.   var buddy = fldBuddy.value;
  211.   var buddyRelative = null
  212.   var found = false;
  213.   var error = false;
  214.   var error2 = false;
  215.   var a = top.a;
  216.  
  217.   var pIAimBuddy = aimBuddyManager();
  218.   var aimIBuddy = Components.interfaces.nsIAimBuddy;
  219.   
  220.   var service= new Object();
  221.  
  222.   if (!pIAimBuddy || !aimIBuddy) {
  223.     aimErrorBox(aimString("msg.BadBuddy"));
  224.     return;
  225.   }
  226.  
  227.   if ( buddy == "" || !buddy ) {
  228.     aimErrorBox(aimString("msg.EnterBuddy"));
  229.     return;
  230.   }
  231.   
  232.   var buddies = buddy.split(",");
  233.   for (var j=0; j < buddies.length; j++) {
  234.     var isAllDigits=true;
  235.     buddies[j] = buddies[j].replace(/^\s+|\s+$/g, "");
  236.     isAllDigits=IsIcqServiceUser(buddies[j]);
  237.     if (isAllDigits == true) 
  238.         service[j]=1;
  239.     else
  240.       service[j]=0;
  241.   }
  242.  
  243.   var fldDisplay = top.document.getElementById("fldDisplayName");
  244.   var display = fldDisplay.value;
  245. /*
  246.   var selectedGroups=0;
  247.     
  248.   for (var i=0; i < a.length; i++) {
  249.     chkboxname = "checkBox" + a[i];
  250.     chkbox = document.getElementById(chkboxname);
  251.     if ( chkbox.checked )
  252.       selectedGroups++;
  253.   }
  254.   if (selectedGroups > 1) {
  255.     // Adding same buddy to more than 1 group 
  256.     aimErrorBox(aimString("msg.MultipleGroups"));
  257.     return;
  258.   }
  259.  
  260.   */
  261.       
  262.   for (var j=0; j < buddies.length; j++) {
  263.     var isInList = new Object();
  264.     aimBuddyManager().IsInBuddyList(buddies[j], isInList);
  265.     if ( isInList.value == true )  {
  266.       // Adding buddy who is already in contact list
  267.       aimErrorBox(aimString("msg.ExistingContact"));
  268.       return;
  269.     }
  270.  
  271.     var isInAuthList = new Object();
  272.     aimFeedbagManager().IsInAuthList(buddies[j], isInAuthList);
  273.     if ( isInAuthList.value == true )  {
  274.       // Adding buddy who is already in auth await list
  275.       aimErrorBox(aimString("msg.alreadyrequested"));
  276.       return;
  277.     }
  278.  
  279.   } //for loop
  280.  
  281.   if ( display == "" || !display ) {
  282.     // Display name field is empty!
  283.     aimErrorBox(aimString("msg.EnterDisplay"));
  284.     return;
  285.   }
  286.    
  287.   if ((display - 0) > 0) {
  288.     // Display name field should not be a number - enough with icq numbers!
  289.     aimErrorBox(aimString("msg.EnterCharDisplay"));
  290.     return;
  291.   }
  292.  
  293.  
  294.   var disp_buddies = display.split(",");
  295.   for (var j=0; j < disp_buddies.length; j++) {
  296.     // Mini Parser to extract all the display names....
  297.     disp_buddies[j] = disp_buddies[j].replace(/^\s+|\s+$/g, "");
  298.   }
  299.  
  300.   if ((buddies.length) != (disp_buddies.length)) {
  301.     // if number of buddies and number of display names do not match.
  302.     aimErrorBox(aimString("msg.MismatchDisplay"));
  303.     return;
  304.   }
  305.  
  306.  // for ( var i=0; i < a.length; i++ ) {
  307. //    if ( GetCheckBoxState( a, i ) == true ) {
  308.   if ( top.groupSelected ) {
  309.       found = true;
  310.       buddyRelative = FindBuddySelected( top.groupSelected, top.listSetupTree );
  311.       try {
  312.         //now add each buddies in the each group selected
  313.         for (var j=0; j < buddies.length; j++) {
  314.           if (aimBuddyAddBuddyAfter( top.groupSelected, buddies[j], buddyRelative, disp_buddies[j], service[j], null) == 1)
  315.             error=true;          
  316.         }
  317.       }
  318.       catch (e) {
  319.         if (pIAimBuddy.GetnResetError() == aimIBuddy.TooManyBuddies){
  320.           aimErrorBox(aimString("msg.BigBuddyList").replace(/%MaxBudNum%/, "" + pIAimBuddy.GetMaxBudNum()));
  321.           return;
  322.         }
  323.         else
  324.           error2 = true;
  325.       } //catch
  326.   } //ifcheckbox 
  327. // } //for 
  328.   if (error2 == true) {
  329.       aimErrorBox(aimString("msg.BadBuddy"));
  330.       top.document.getElementById('fldBuddyName').focus();
  331.   }
  332.   else
  333.     if ( found == true && error == false ) {
  334.       top.window.close();
  335.       }
  336.       else if ( error == false ) {
  337.         top.document.getElementById('fldBuddyName').focus();
  338.       }
  339.  
  340. }
  341.  
  342.  
  343.  
  344.  
  345. function AddGroup()
  346. {
  347.     var fldGroup = top.document.getElementById("fldGroupName");
  348.     var group = fldGroup.value;
  349.   if (group && group != "") {
  350.     // trim the spaces before and after the group.
  351.     group = group.replace(/^\s+|\s+$/g, "");
  352.   }
  353.   if (group && group.toLowerCase() == "offline") {
  354.     aimErrorBox(aimString("msg.GroupAlreadyInList"));
  355.     return;
  356.   }
  357.     if ( group && group != "" ) {
  358.         if ( !aimBuddyAddBuddyGroup(group, null) )
  359.             top.window.close();
  360.     }
  361.     else
  362.         aimErrorBox(aimString("msg.EnterGroup"));    
  363. }
  364.  
  365. function KeyPressAddGroup(event){
  366.     if(event.keyCode== 13){
  367.         AddGroup();
  368.     }
  369. }
  370.