home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 January / 01_02.iso / software / netscape62win / mail.xpi / bin / chrome / messenger.jar / content / messenger / addressbook / abCardViewOverlay.js < prev    next >
Text File  |  2001-08-31  |  10KB  |  267 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. //NOTE: gAddressBookBundle must be defined and set or this Overlay won't work
  25.  
  26. var zName;
  27. var zNickname;
  28. var zDisplayName;
  29. var zWork;
  30. var zHome;
  31. var zFax;
  32. var zCellular;
  33. var zPager;
  34. var zCustom1;
  35. var zCustom2;
  36. var zCustom3;
  37. var zCustom4;
  38.  
  39. var rdf;
  40. var cvData;
  41.  
  42. function OnLoadCardView()
  43. {
  44.   zName = gAddressBookBundle.getString("propertyName") + ": ";
  45.   zNickname = gAddressBookBundle.getString("propertyNickname") + ": ";
  46.   zDisplayName = gAddressBookBundle.getString("propertyDisplayName") + ": ";
  47.   zWork = gAddressBookBundle.getString("propertyWork") + ": ";
  48.   zHome = gAddressBookBundle.getString("propertyHome") + ": ";
  49.   zFax = gAddressBookBundle.getString("propertyFax") + ": ";
  50.   zCellular = gAddressBookBundle.getString("propertyCellular") + ": ";
  51.   zPager = gAddressBookBundle.getString("propertyPager") + ": ";
  52.   zCustom1 = gAddressBookBundle.getString("propertyCustom1") + ": ";
  53.   zCustom2 = gAddressBookBundle.getString("propertyCustom2") + ": ";
  54.   zCustom3 = gAddressBookBundle.getString("propertyCustom3") + ": ";
  55.   zCustom4 = gAddressBookBundle.getString("propertyCustom4") + ": ";
  56.  
  57.     rdf = Components.classes["@mozilla.org/rdf/rdf-service;1"].getService();
  58.     rdf = rdf.QueryInterface(Components.interfaces.nsIRDFService);
  59.  
  60.     var doc = document;
  61.     
  62.     /* data for address book, prefixes: "cvb" = card view box
  63.                                         "cvh" = crad view header
  64.                                         "cv"  = card view (normal fields) */
  65.     cvData = new Object;
  66.  
  67.     // Card View Box
  68.     cvData.CardViewBox        = doc.getElementById("CardViewInnerBox");
  69.     // Title
  70.     cvData.CardTitle        = doc.getElementById("CardTitle");
  71.     // Name section
  72.     cvData.cvbName            = doc.getElementById("cvbName");
  73.     cvData.cvhName            = doc.getElementById("cvhName");
  74.     cvData.cvNickname        = doc.getElementById("cvNickname");
  75.     cvData.cvDisplayName    = doc.getElementById("cvDisplayName");
  76.     cvData.cvEmail1            = doc.getElementById("cvEmail1");
  77.     cvData.cvEmail2            = doc.getElementById("cvEmail2");
  78.     // Home section
  79.     cvData.cvbHome            = doc.getElementById("cvbHome");
  80.     cvData.cvhHome            = doc.getElementById("cvhHome");
  81.     cvData.cvHomeAddress    = doc.getElementById("cvHomeAddress");
  82.     cvData.cvHomeAddress2    = doc.getElementById("cvHomeAddress2");
  83.     cvData.cvHomeCityStZip    = doc.getElementById("cvHomeCityStZip");
  84.     cvData.cvHomeCountry    = doc.getElementById("cvHomeCountry");
  85.     cvData.cvHomeWebPageBox = doc.getElementById("cvHomeWebPageBox");
  86.     cvData.cvHomeWebPage    = doc.getElementById("cvHomeWebPage");
  87.     // Other section
  88.     cvData.cvbOther            = doc.getElementById("cvbOther");
  89.     cvData.cvhOther            = doc.getElementById("cvhOther");
  90.     cvData.cvCustom1        = doc.getElementById("cvCustom1");
  91.     cvData.cvCustom2        = doc.getElementById("cvCustom2");
  92.     cvData.cvCustom3        = doc.getElementById("cvCustom3");
  93.     cvData.cvCustom4        = doc.getElementById("cvCustom4");
  94.     cvData.cvNotes            = doc.getElementById("cvNotes");
  95.     // Phone section
  96.     cvData.cvbPhone            = doc.getElementById("cvbPhone");
  97.     cvData.cvhPhone            = doc.getElementById("cvhPhone");
  98.     cvData.cvPhWork            = doc.getElementById("cvPhWork");
  99.     cvData.cvPhHome            = doc.getElementById("cvPhHome");
  100.     cvData.cvPhFax            = doc.getElementById("cvPhFax");
  101.     cvData.cvPhCellular        = doc.getElementById("cvPhCellular");
  102.     cvData.cvPhPager        = doc.getElementById("cvPhPager");
  103.     // Work section
  104.     cvData.cvbWork            = doc.getElementById("cvbWork");
  105.     cvData.cvhWork            = doc.getElementById("cvhWork");
  106.     cvData.cvJobTitle        = doc.getElementById("cvJobTitle");
  107.     cvData.cvDepartment        = doc.getElementById("cvDepartment");
  108.     cvData.cvCompany        = doc.getElementById("cvCompany");
  109.     cvData.cvWorkAddress    = doc.getElementById("cvWorkAddress");
  110.     cvData.cvWorkAddress2    = doc.getElementById("cvWorkAddress2");
  111.     cvData.cvWorkCityStZip    = doc.getElementById("cvWorkCityStZip");
  112.     cvData.cvWorkCountry    = doc.getElementById("cvWorkCountry");
  113.     cvData.cvWorkWebPageBox = doc.getElementById("cvWorkWebPageBox");
  114.     cvData.cvWorkWebPage    = doc.getElementById("cvWorkWebPage");
  115. }
  116.     
  117. function DisplayCardViewPane(abNode)
  118. {
  119.     var uri = abNode.getAttribute('id');
  120.     var cardResource = top.rdf.GetResource(uri);
  121.     var card = cardResource.QueryInterface(Components.interfaces.nsIAbCard);
  122.     
  123.     // name
  124.     var name;
  125.     var separator = "";
  126.     if ( card.lastName && card.firstName )
  127.     {
  128.         if ( cvPrefs.displayLastNameFirst )
  129.              separator = cvPrefs.lastFirstSeparator;
  130.         else
  131.              separator = cvPrefs.firstLastSeparator;
  132.     }
  133.     if ( cvPrefs.displayLastNameFirst )
  134.         name = card.lastName + separator + card.firstName;
  135.     else
  136.         name = card.firstName + separator + card.lastName;
  137.  
  138.     var cardTitle = card.name;
  139.     var nameHeader = name;
  140.     
  141.     if ( !nameHeader )
  142.         nameHeader = zName;
  143.         
  144.     var data = top.cvData;
  145.     var visible;
  146.  
  147.     // set fields in card view pane
  148.  
  149.     cvSetNode(data.CardTitle, gAddressBookBundle.getFormattedString("viewCardTitle", [ cardTitle]));
  150.     
  151.     // Name section
  152.     cvSetNode(data.cvhName, nameHeader);
  153.     cvSetNodeWithLabel(data.cvNickname, zNickname, card.nickName);
  154.     cvSetNodeWithLabel(data.cvDisplayName, zDisplayName, card.displayName);
  155.     cvSetNode(data.cvEmail1, card.primaryEmail);
  156.     cvSetNode(data.cvEmail2, card.secondEmail);
  157.     // Home section
  158.     visible = cvSetNode(data.cvHomeAddress, card.homeAddress);
  159.     visible = cvSetNode(data.cvHomeAddress2, card.homeAddress2) || visible;
  160.     visible = cvSetCityStateZip(data.cvHomeCityStZip, card.homeCity, card.homeState, card.homeZipCode) || visible;
  161.     visible = cvSetNode(data.cvHomeCountry, card.homeCountry) || visible;
  162.     var homeWebPageVisible = cvSetNode(data.cvHomeWebPage, card.webPage2);
  163.     visible = homeWebPageVisible || visible;
  164.     data.cvHomeWebPage.setAttribute('href', card.webPage2);
  165.     cvSetVisible(data.cvHomeWebPageBox, homeWebPageVisible);
  166.     cvSetVisible(data.cvhHome, visible);
  167.     cvSetVisible(data.cvbHome, visible);
  168.     // Other section
  169.     visible = cvSetNodeWithLabel(data.cvCustom1, zCustom1, card.custom1);
  170.     visible = cvSetNodeWithLabel(data.cvCustom2, zCustom2, card.custom2) || visible;
  171.     visible = cvSetNodeWithLabel(data.cvCustom3, zCustom3, card.custom3) || visible;
  172.     visible = cvSetNodeWithLabel(data.cvCustom4, zCustom4, card.custom4) || visible;
  173.     visible = cvSetNode(data.cvNotes, card.notes) || visible;
  174.     cvSetVisible(data.cvhOther, visible);
  175.     cvSetVisible(data.cvbOther, visible);
  176.     // Phone section
  177.     visible = cvSetNodeWithLabel(data.cvPhWork, zWork, card.workPhone);
  178.     visible = cvSetNodeWithLabel(data.cvPhHome, zHome, card.homePhone) || visible;
  179.     visible = cvSetNodeWithLabel(data.cvPhFax, zFax, card.faxNumber) || visible;
  180.     visible = cvSetNodeWithLabel(data.cvPhCellular, zCellular, card.cellularNumber) || visible;
  181.     visible = cvSetNodeWithLabel(data.cvPhPager, zPager, card.pagerNumber) || visible;
  182.     cvSetVisible(data.cvhPhone, visible);
  183.     cvSetVisible(data.cvbPhone, visible);
  184.     // Work section
  185.     visible = cvSetNode(data.cvJobTitle, card.jobTitle);
  186.     visible = cvSetNode(data.cvDepartment, card.department) || visible;
  187.     visible = cvSetNode(data.cvCompany, card.company) || visible;
  188.     visible = cvSetNode(data.cvWorkAddress, card.workAddress) || visible;
  189.     visible = cvSetNode(data.cvWorkAddress2, card.workAddress2) || visible;
  190.     visible = cvSetCityStateZip(data.cvWorkCityStZip, card.workCity, card.workState, card.workZipCode) || visible;
  191.     visible = cvSetNode(data.cvWorkCountry, card.workCountry) || visible;
  192.     var workWebPageVisible = cvSetNode(data.cvWorkWebPage, card.webPage1);
  193.     visible = workWebPageVisible || visible;
  194.     data.cvWorkWebPage.setAttribute('href', card.webPage1);
  195.     cvSetVisible(data.cvWorkWebPageBox, workWebPageVisible);
  196.     cvSetVisible(data.cvhWork, visible);
  197.     cvSetVisible(data.cvbWork, visible);
  198.  
  199.     // make the card view box visible
  200.     cvSetVisible(top.cvData.CardViewBox, true);
  201. }
  202.  
  203. function ClearCardViewPane()
  204. {
  205.     cvSetVisible(top.cvData.CardViewBox, false);
  206. }
  207.  
  208. function cvSetNodeWithLabel(node, label, text)
  209. {
  210.     if ( text )
  211.         return cvSetNode(node, label + text);
  212.     else
  213.         return cvSetNode(node, "");
  214. }
  215.  
  216. function cvSetCityStateZip(node, city, state, zip)
  217. {
  218.     var text = "";
  219.     
  220.     if ( city )
  221.     {
  222.         text = city;
  223.         if ( state || zip )
  224.             text += ", ";
  225.     }
  226.     if ( state )
  227.         text += state + " ";
  228.     if ( zip )
  229.         text += zip;
  230.     
  231.     return cvSetNode(node, text);
  232. }
  233.  
  234. function cvSetNode(node, text)
  235. {
  236.     if ( node )
  237.     {
  238.         if ( node.childNodes.length == 0 )
  239.         {
  240.             var textNode = document.createTextNode(text);
  241.             node.appendChild(textNode);                               
  242.         }
  243.         else if ( node.childNodes.length == 1 )
  244.             node.childNodes[0].nodeValue = text;
  245.  
  246.         var visible;
  247.         
  248.         if ( text )
  249.             visible = true;
  250.         else
  251.             visible = false;
  252.         
  253.         cvSetVisible(node, visible);
  254.     }
  255.  
  256.     return visible;
  257. }
  258.  
  259. function cvSetVisible(node, visible)
  260. {
  261.     if ( visible )
  262.         node.removeAttribute("collapsed");
  263.     else
  264.         node.setAttribute("collapsed", "true");
  265. }
  266.  
  267.