home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / mozil06.zip / bin / chrome / messenger.jar / content / messenger / addressbook / abCardViewOverlay.js < prev    next >
Text File  |  2001-02-14  |  9KB  |  254 lines

  1. /* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
  2.  * The contents of this file are subject to the Netscape Public
  3.  * License Version 1.1 (the "License"); you may not use this file
  4.  * except in compliance with the License. You may obtain a copy of
  5.  * the License at http://www.mozilla.org/NPL/
  6.  * 
  7.  * Software distributed under the License is distributed on an "AS
  8.  * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  9.  * implied. See the License for the specific language governing
  10.  * rights and limitations under the License.
  11.  * 
  12.  * The Original Code is Mozilla Communicator client code, released
  13.  * March 31, 1998.
  14.  * 
  15.  * The Initial Developer of the Original Code is Netscape
  16.  * Communications Corporation. Portions created by Netscape are
  17.  * Copyright (C) 1998-1999 Netscape Communications Corporation. All
  18.  * Rights Reserved.
  19.  * Contributor(s):
  20.  * Paul Hangas <hangas@netscape.com>
  21.  * Alec Flett <alecf@netscape.com>
  22.  */
  23.  
  24. var Bundle = srGetStrBundle("chrome://messenger/locale/addressbook/addressBook.properties")
  25.  
  26. var zName = Bundle.GetStringFromName("propertyName") + ": ";
  27. var zNickname = Bundle.GetStringFromName("propertyNickname") + ": ";
  28. var zDisplayName = Bundle.GetStringFromName("propertyDisplayName") + ": ";
  29. var zWork = Bundle.GetStringFromName("propertyWork") + ": ";
  30. var zHome = Bundle.GetStringFromName("propertyHome") + ": ";
  31. var zFax = Bundle.GetStringFromName("propertyFax") + ": ";
  32. var zCellular = Bundle.GetStringFromName("propertyCellular") + ": ";
  33. var zPager = Bundle.GetStringFromName("propertyPager") + ": ";
  34. var zCustom1 = Bundle.GetStringFromName("propertyCustom1") + ": ";
  35. var zCustom2 = Bundle.GetStringFromName("propertyCustom2") + ": ";
  36. var zCustom3 = Bundle.GetStringFromName("propertyCustom3") + ": ";
  37. var zCustom4 = Bundle.GetStringFromName("propertyCustom4") + ": ";
  38.  
  39. var rdf;
  40. var cvData;
  41.  
  42. function OnLoadCardView()
  43. {
  44.     rdf = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService();
  45.     rdf = rdf.QueryInterface(Components.interfaces.nsIRDFService);
  46.  
  47.     var doc = document;
  48.     
  49.     /* data for address book, prefixes: "cvb" = card view box
  50.                                         "cvh" = crad view header
  51.                                         "cv"  = card view (normal fields) */
  52.     cvData = new Object;
  53.  
  54.     // Card View Box
  55.     cvData.CardViewBox        = doc.getElementById("CardViewInnerBox");
  56.     // Title
  57.     cvData.CardTitle        = doc.getElementById("CardTitle");
  58.     // Name section
  59.     cvData.cvbName            = doc.getElementById("cvbName");
  60.     cvData.cvhName            = doc.getElementById("cvhName");
  61.     cvData.cvNickname        = doc.getElementById("cvNickname");
  62.     cvData.cvDisplayName    = doc.getElementById("cvDisplayName");
  63.     cvData.cvEmail1            = doc.getElementById("cvEmail1");
  64.     cvData.cvEmail2            = doc.getElementById("cvEmail2");
  65.     // Home section
  66.     cvData.cvbHome            = doc.getElementById("cvbHome");
  67.     cvData.cvhHome            = doc.getElementById("cvhHome");
  68.     cvData.cvHomeAddress    = doc.getElementById("cvHomeAddress");
  69.     cvData.cvHomeAddress2    = doc.getElementById("cvHomeAddress2");
  70.     cvData.cvHomeCityStZip    = doc.getElementById("cvHomeCityStZip");
  71.     cvData.cvHomeCountry    = doc.getElementById("cvHomeCountry");
  72.     cvData.cvHomeWebPageBox = doc.getElementById("cvHomeWebPageBox");
  73.     cvData.cvHomeWebPage    = doc.getElementById("cvHomeWebPage");
  74.     // Other section
  75.     cvData.cvbOther            = doc.getElementById("cvbOther");
  76.     cvData.cvhOther            = doc.getElementById("cvhOther");
  77.     cvData.cvCustom1        = doc.getElementById("cvCustom1");
  78.     cvData.cvCustom2        = doc.getElementById("cvCustom2");
  79.     cvData.cvCustom3        = doc.getElementById("cvCustom3");
  80.     cvData.cvCustom4        = doc.getElementById("cvCustom4");
  81.     cvData.cvNotes            = doc.getElementById("cvNotes");
  82.     // Phone section
  83.     cvData.cvbPhone            = doc.getElementById("cvbPhone");
  84.     cvData.cvhPhone            = doc.getElementById("cvhPhone");
  85.     cvData.cvPhWork            = doc.getElementById("cvPhWork");
  86.     cvData.cvPhHome            = doc.getElementById("cvPhHome");
  87.     cvData.cvPhFax            = doc.getElementById("cvPhFax");
  88.     cvData.cvPhCellular        = doc.getElementById("cvPhCellular");
  89.     cvData.cvPhPager        = doc.getElementById("cvPhPager");
  90.     // Work section
  91.     cvData.cvbWork            = doc.getElementById("cvbWork");
  92.     cvData.cvhWork            = doc.getElementById("cvhWork");
  93.     cvData.cvJobTitle        = doc.getElementById("cvJobTitle");
  94.     cvData.cvDepartment        = doc.getElementById("cvDepartment");
  95.     cvData.cvCompany        = doc.getElementById("cvCompany");
  96.     cvData.cvWorkAddress    = doc.getElementById("cvWorkAddress");
  97.     cvData.cvWorkAddress2    = doc.getElementById("cvWorkAddress2");
  98.     cvData.cvWorkCityStZip    = doc.getElementById("cvWorkCityStZip");
  99.     cvData.cvWorkCountry    = doc.getElementById("cvWorkCountry");
  100.     cvData.cvWorkWebPageBox = doc.getElementById("cvWorkWebPageBox");
  101.     cvData.cvWorkWebPage    = doc.getElementById("cvWorkWebPage");
  102. }
  103.     
  104. function DisplayCardViewPane(abNode)
  105. {
  106.     var uri = abNode.getAttribute('id');
  107.     var cardResource = top.rdf.GetResource(uri);
  108.     var card = cardResource.QueryInterface(Components.interfaces.nsIAbCard);
  109.     
  110.     // name
  111.     var name;
  112.     var separator = "";
  113.     if ( card.lastName && card.firstName )
  114.     {
  115.         if ( cvPrefs.displayLastNameFirst )
  116.              separator = cvPrefs.lastFirstSeparator;
  117.         else
  118.              separator = cvPrefs.firstLastSeparator;
  119.     }
  120.     if ( cvPrefs.displayLastNameFirst )
  121.         name = card.lastName + separator + card.firstName;
  122.     else
  123.         name = card.firstName + separator + card.lastName;
  124.  
  125.     var cardTitle = card.name;
  126.     var nameHeader = name;
  127.     
  128.     if ( !nameHeader )
  129.         nameHeader = zName;
  130.         
  131.     var data = top.cvData;
  132.     var visible;
  133.  
  134.     // set fields in card view pane
  135.  
  136.     cvSetNode(data.CardTitle, Bundle.formatStringFromName("viewCardTitle", [ cardTitle], 1));
  137.     
  138.     // Name section
  139.     cvSetNode(data.cvhName, nameHeader);
  140.     cvSetNodeWithLabel(data.cvNickname, zNickname, card.nickName);
  141.     cvSetNodeWithLabel(data.cvDisplayName, zDisplayName, card.displayName);
  142.     cvSetNode(data.cvEmail1, card.primaryEmail);
  143.     cvSetNode(data.cvEmail2, card.secondEmail);
  144.     // Home section
  145.     visible = cvSetNode(data.cvHomeAddress, card.homeAddress);
  146.     visible = cvSetNode(data.cvHomeAddress2, card.homeAddress2) || visible;
  147.     visible = cvSetCityStateZip(data.cvHomeCityStZip, card.homeCity, card.homeState, card.homeZipCode) || visible;
  148.     visible = cvSetNode(data.cvHomeCountry, card.homeCountry) || visible;
  149.     var homeWebPageVisible = cvSetNode(data.cvHomeWebPage, card.webPage2);
  150.     visible = homeWebPageVisible || visible;
  151.     data.cvHomeWebPage.setAttribute('href', card.webPage2);
  152.     cvSetVisible(data.cvHomeWebPageBox, homeWebPageVisible);
  153.     cvSetVisible(data.cvhHome, visible);
  154.     cvSetVisible(data.cvbHome, visible);
  155.     // Other section
  156.     visible = cvSetNodeWithLabel(data.cvCustom1, zCustom1, card.custom1);
  157.     visible = cvSetNodeWithLabel(data.cvCustom2, zCustom2, card.custom2) || visible;
  158.     visible = cvSetNodeWithLabel(data.cvCustom3, zCustom3, card.custom3) || visible;
  159.     visible = cvSetNodeWithLabel(data.cvCustom4, zCustom4, card.custom4) || visible;
  160.     visible = cvSetNode(data.cvNotes, card.notes) || visible;
  161.     cvSetVisible(data.cvhOther, visible);
  162.     cvSetVisible(data.cvbOther, visible);
  163.     // Phone section
  164.     visible = cvSetNodeWithLabel(data.cvPhWork, zWork, card.workPhone);
  165.     visible = cvSetNodeWithLabel(data.cvPhHome, zHome, card.homePhone) || visible;
  166.     visible = cvSetNodeWithLabel(data.cvPhFax, zFax, card.faxNumber) || visible;
  167.     visible = cvSetNodeWithLabel(data.cvPhCellular, zCellular, card.cellularNumber) || visible;
  168.     visible = cvSetNodeWithLabel(data.cvPhPager, zPager, card.pagerNumber) || visible;
  169.     cvSetVisible(data.cvhPhone, visible);
  170.     cvSetVisible(data.cvbPhone, visible);
  171.     // Work section
  172.     visible = cvSetNode(data.cvJobTitle, card.jobTitle);
  173.     visible = cvSetNode(data.cvDepartment, card.department) || visible;
  174.     visible = cvSetNode(data.cvCompany, card.company) || visible;
  175.     visible = cvSetNode(data.cvWorkAddress, card.workAddress) || visible;
  176.     visible = cvSetNode(data.cvWorkAddress2, card.workAddress2) || visible;
  177.     visible = cvSetCityStateZip(data.cvWorkCityStZip, card.workCity, card.workState, card.workZipCode) || visible;
  178.     visible = cvSetNode(data.cvWorkCountry, card.workCountry) || visible;
  179.     var workWebPageVisible = cvSetNode(data.cvWorkWebPage, card.webPage1);
  180.     visible = workWebPageVisible || visible;
  181.     data.cvWorkWebPage.setAttribute('href', card.webPage1);
  182.     cvSetVisible(data.cvWorkWebPageBox, workWebPageVisible);
  183.     cvSetVisible(data.cvhWork, visible);
  184.     cvSetVisible(data.cvbWork, visible);
  185.  
  186.     // make the card view box visible
  187.     cvSetVisible(top.cvData.CardViewBox, true);
  188. }
  189.  
  190. function ClearCardViewPane()
  191. {
  192.     cvSetVisible(top.cvData.CardViewBox, false);
  193. }
  194.  
  195. function cvSetNodeWithLabel(node, label, text)
  196. {
  197.     if ( text )
  198.         return cvSetNode(node, label + text);
  199.     else
  200.         return cvSetNode(node, "");
  201. }
  202.  
  203. function cvSetCityStateZip(node, city, state, zip)
  204. {
  205.     var text;
  206.     
  207.     if ( city )
  208.     {
  209.         text = city;
  210.         if ( state || zip )
  211.             text += ", ";
  212.     }
  213.     if ( state )
  214.         text += state + " ";
  215.     if ( zip )
  216.         text += zip;
  217.     
  218.     return cvSetNode(node, text);
  219. }
  220.  
  221. function cvSetNode(node, text)
  222. {
  223.     if ( node )
  224.     {
  225.         if ( node.childNodes.length == 0 )
  226.         {
  227.             var textNode = document.createTextNode(text);
  228.             node.appendChild(textNode);                               
  229.         }
  230.         else if ( node.childNodes.length == 1 )
  231.             node.childNodes[0].nodeValue = text;
  232.  
  233.         var visible;
  234.         
  235.         if ( text )
  236.             visible = true;
  237.         else
  238.             visible = false;
  239.         
  240.         cvSetVisible(node, visible);
  241.     }
  242.  
  243.     return visible;
  244. }
  245.  
  246. function cvSetVisible(node, visible)
  247. {
  248.     if ( visible )
  249.         node.removeAttribute("hide");
  250.     else
  251.         node.setAttribute("hide", "true");
  252. }
  253.  
  254.