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 / AimBuddyAlert.js < prev    next >
Text File  |  2004-12-02  |  5KB  |  155 lines

  1. var gScreenName="";
  2. var gGroupName=null;
  3.  
  4. /*
  5. * Name: getBuddyState
  6. * Arguments: screenName 
  7. * Description: This function is called during the onload of buddyalert window. It gets the buddystate for the user 
  8. * whose screenname is passed in frm the datasource. If there is a valid user state it returns the user's current state.
  9. * Return Value: buddy state
  10. * Author: Prassanna<prass@netscape.com> 
  11. */
  12.  
  13. function getBuddyState(screenName)
  14. {
  15.   var buddyState = aimRDF().GetResource("http://home.netscape.com/NC-rdf#BuddyStateString");
  16.   var buddyResource = aimBuddyManager().GetUserResource(screenName);
  17.   if (buddyResource)
  18.     var target = aimRDFDataSource().GetTarget(buddyResource, buddyState, true);
  19.   if (target) {
  20.     var state = target.QueryInterface(Components.interfaces.nsIRDFLiteral).Value;
  21.     return state;
  22.   }
  23.   return null;
  24. }
  25.  
  26. /*
  27. * Name: AimBuddyAlertWndOnLoad
  28. * Arguments: None
  29. * Description: This function is called by the onload handler of buddyalert window. It gets the screenname argument which is 
  30. * passed through the  buddy alert window open call and gets the state of the screenname user. It sets the appropriate
  31. * check boxes based on user state and sets the Ok/Cancel button handlers.
  32. * Author: Prassanna<prass@netscape.com> 
  33. */
  34.  
  35. function AimBuddyAlertWndOnLoad() {
  36.   // Set the buddyname value from the window argument which has the user selected screenname frm listsetup/online tab
  37.   var buddyelem = document.getElementById('buddyname');
  38.   var winarg = window.arguments[0];
  39.   var winarg1 = window.arguments[1];
  40.   if (winarg != null) {
  41.     buddyelem.setAttribute('value', '"'+winarg+'"');
  42.     gScreenName=winarg;
  43.   }
  44.  
  45.   if (winarg1 != null) {
  46.     gGroupName=winarg1;
  47.   }
  48.   
  49.   //since we do not support idle for icq now
  50.   if (IsIcqServiceUser(winarg))
  51.     document.getElementById('idlestateMsg').setAttribute("hidden", true);
  52.   else
  53.     document.getElementById('idlestateMsg').removeAttribute("hidden");
  54.  
  55.   if (window.arguments[2] != null) {
  56.     doEditAlert(gScreenName);
  57.   }
  58.   else
  59.     doSetupAlert(gScreenName);
  60. }
  61.  
  62. function doSetupAlert(winarg)
  63. {
  64.   // Default the radio button to the right state based on user state
  65.   var state=getBuddyState(winarg);
  66.   switch (state) {
  67.     case "Offline": document.getElementById('onlinestateMsg').checked="true"; break;
  68.     case "Idle":  document.getElementById('idlestateMsg').checked="true"; break;
  69.     case "Away":  document.getElementById('awaystateMsg').checked="true"; break;
  70.     default: break;
  71.   }
  72.  
  73.   document.getElementById('alertwindow').checked="true";
  74.   var fStored=new Object();
  75.   aimBuddyManager().IsStoredAlert(gScreenName, fStored);
  76.   if (fStored.value == true)
  77.     document.getElementById('alertsave').checked="true";
  78.   
  79.   doSetOKCancel(onOK, 0);
  80. }
  81.  
  82. function onOK()
  83. {
  84.   var alertMaskSet= Components.interfaces.nsAimBuddyAlertMask;
  85.   alertMaskSet=0;
  86.   var alertEnums = Components.interfaces.nsAimBuddyAlertFlags;
  87.   var aimBuddy=aimBuddyManager();
  88.   var gChecked=0;
  89.   var saveInFeedbag=0;
  90.  
  91.  
  92.   // Handle save of the alert states
  93.   if (document.getElementById("onlinestateMsg").checked) {
  94.     alertMaskSet |=  alertEnums.AlertFromOffline;
  95.     gChecked=1;
  96.     }
  97.   if (document.getElementById("idlestateMsg").checked) {
  98.     alertMaskSet |=  alertEnums.AlertFromIdle;
  99.     gChecked=1;
  100.    } 
  101.   if (document.getElementById("awaystateMsg").checked) {
  102.     alertMaskSet |=  alertEnums.AlertFromAway;
  103.     gChecked=1;
  104.     }
  105.   if (gChecked == 0)  {
  106.       aimErrorBox(aimString("msg.chooseAlertMethod"));
  107.       return;
  108.       }
  109.   var gChecked2=0;
  110.     
  111.   // Handle save of the alert methods
  112.   if (document.getElementById("alertwindow").checked) {
  113.     alertMaskSet |=  alertEnums.AlertByWindow;
  114.     gChecked2=1;
  115.     }
  116.   if (document.getElementById("alertsound").checked) {
  117.     alertMaskSet |=  alertEnums.AlertBySound;
  118.     gChecked2=1;
  119.     }
  120.   if (gChecked2 == 0)  {
  121.         aimErrorBox(aimString("msg.chooseAlertMethod"));
  122.         return;
  123.         }
  124.   if (document.getElementById("alertsave").checked) 
  125.     saveInFeedbag=1;
  126.  
  127.   aimBuddy.BuddyAlert(gScreenName, gGroupName, alertMaskSet, saveInFeedbag);
  128.   top.window.close();
  129.   }
  130.  
  131.  
  132. function doEditAlert(ScreenName)
  133. {
  134.   var alertEnums = Components.interfaces.nsAimBuddyAlertFlags;
  135.   var res=new Object();
  136.   aimBuddyManager().GetBuddyAlert(ScreenName, res);
  137.   var alertMaskSet = res.value;
  138.   if (alertMaskSet & alertEnums.AlertFromOffline)
  139.       document.getElementById("onlinestateMsg").checked="true"; 
  140.   if (alertMaskSet & alertEnums.AlertFromIdle)
  141.       document.getElementById("idlestateMsg").checked="true" ;
  142.   if (alertMaskSet & alertEnums.AlertFromAway)
  143.       document.getElementById("awaystateMsg").checked="true" ;
  144.   if (alertMaskSet & alertEnums.AlertByWindow)
  145.       document.getElementById("alertwindow").checked="true";
  146.   if (alertMaskSet & alertEnums.AlertBySound)
  147.       document.getElementById("alertsound").checked="true";
  148.   var fStored=new Object();
  149.   aimBuddyManager().IsStoredAlert(gScreenName, fStored);
  150.   if (fStored.value == true) 
  151.     document.getElementById('alertsave').checked="true";
  152.   doSetOKCancel(onOK, 0);
  153. }
  154.  
  155.