зеркало из https://github.com/mozilla/pjs.git
529 строки
19 KiB
JavaScript
529 строки
19 KiB
JavaScript
/* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
|
* ***** BEGIN LICENSE BLOCK *****
|
|
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
|
*
|
|
* The contents of this file are subject to the Mozilla Public License Version
|
|
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
* the License. You may obtain a copy of the License at
|
|
* http://www.mozilla.org/MPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
* for the specific language governing rights and limitations under the
|
|
* License.
|
|
*
|
|
* The Original Code is Mozilla Communicator client code, released
|
|
* March 31, 1998.
|
|
*
|
|
* The Initial Developer of the Original Code is
|
|
* Netscape Communications Corporation.
|
|
* Portions created by the Initial Developer are Copyright (C) 1998-1999
|
|
* the Initial Developer. All Rights Reserved.
|
|
*
|
|
* Contributor(s):
|
|
* Alec Flett <alecf@netscape.com>
|
|
* Seth Spitzer <sspitzer@netscape.com>
|
|
*
|
|
* Alternatively, the contents of this file may be used under the terms of
|
|
* either of the GNU General Public License Version 2 or later (the "GPL"),
|
|
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
|
* in which case the provisions of the GPL or the LGPL are applicable instead
|
|
* of those above. If you wish to allow use of your version of this file only
|
|
* under the terms of either the GPL or the LGPL, and not to allow others to
|
|
* use your version of this file under the terms of the MPL, indicate your
|
|
* decision by deleting the provisions above and replace them with the notice
|
|
* and other provisions required by the GPL or the LGPL. If you do not delete
|
|
* the provisions above, a recipient may use your version of this file under
|
|
* the terms of any one of the MPL, the GPL or the LGPL.
|
|
*
|
|
* ***** END LICENSE BLOCK ***** */
|
|
|
|
//NOTE: gAddressBookBundle must be defined and set or this Overlay won't work
|
|
|
|
var gPrefs = Components.classes["@mozilla.org/preferences-service;1"];
|
|
gPrefs = gPrefs.getService();
|
|
gPrefs = gPrefs.QueryInterface(Components.interfaces.nsIPrefBranch);
|
|
|
|
var gProfileDirURL;
|
|
|
|
var gMapItURLFormat = gPrefs.getComplexValue("mail.addr_book.mapit_url.format",
|
|
Components.interfaces.nsIPrefLocalizedString).data;
|
|
|
|
var gAddrbookSession = Components.classes["@mozilla.org/addressbook/services/session;1"].getService().QueryInterface(Components.interfaces.nsIAddrBookSession);
|
|
|
|
var gIOService = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
|
|
var gFileHandler = gIOService.getProtocolHandler("file").QueryInterface(Components.interfaces.nsIFileProtocolHandler);
|
|
|
|
var zListName;
|
|
var zPrimaryEmail;
|
|
var zSecondaryEmail;
|
|
var zScreenName;
|
|
var zNickname;
|
|
var zDisplayName;
|
|
var zWork;
|
|
var zHome;
|
|
var zFax;
|
|
var zCellular;
|
|
var zPager;
|
|
var zCustom1;
|
|
var zCustom2;
|
|
var zCustom3;
|
|
var zCustom4;
|
|
|
|
var cvData;
|
|
|
|
function OnLoadCardView()
|
|
{
|
|
zPrimaryEmail = gAddressBookBundle.getString("propertyPrimaryEmail");
|
|
zSecondaryEmail = gAddressBookBundle.getString("propertySecondaryEmail");
|
|
zScreenName = gAddressBookBundle.getString("propertyScreenName");
|
|
zNickname = gAddressBookBundle.getString("propertyNickname");
|
|
zDisplayName = gAddressBookBundle.getString("propertyDisplayName");
|
|
zListName = gAddressBookBundle.getString("propertyListName");
|
|
zWork = gAddressBookBundle.getString("propertyWork");
|
|
zHome = gAddressBookBundle.getString("propertyHome");
|
|
zFax = gAddressBookBundle.getString("propertyFax");
|
|
zCellular = gAddressBookBundle.getString("propertyCellular");
|
|
zPager = gAddressBookBundle.getString("propertyPager");
|
|
zCustom1 = gAddressBookBundle.getString("propertyCustom1");
|
|
zCustom2 = gAddressBookBundle.getString("propertyCustom2");
|
|
zCustom3 = gAddressBookBundle.getString("propertyCustom3");
|
|
zCustom4 = gAddressBookBundle.getString("propertyCustom4");
|
|
|
|
var doc = document;
|
|
|
|
/* data for address book, prefixes: "cvb" = card view box
|
|
"cvh" = crad view header
|
|
"cv" = card view (normal fields) */
|
|
cvData = new Object;
|
|
|
|
// Card View Box
|
|
cvData.CardViewBox = doc.getElementById("CardViewInnerBox");
|
|
// Title
|
|
cvData.CardTitle = doc.getElementById("CardTitle");
|
|
// Name section
|
|
cvData.cvbContact = doc.getElementById("cvbContact");
|
|
cvData.cvhContact = doc.getElementById("cvhContact");
|
|
cvData.cvNickname = doc.getElementById("cvNickname");
|
|
cvData.cvDisplayName = doc.getElementById("cvDisplayName");
|
|
cvData.cvEmail1Box = doc.getElementById("cvEmail1Box");
|
|
cvData.cvEmail1 = doc.getElementById("cvEmail1");
|
|
cvData.cvScreennameBox = doc.getElementById("cvScreennameBox");
|
|
cvData.cvAimPresence = doc.getElementById("cvAimPresence");
|
|
cvData.cvScreenname = doc.getElementById("cvScreenname");
|
|
cvData.cvBuddyIcon = doc.getElementById("cvBuddyIcon");
|
|
cvData.cvListNameBox = doc.getElementById("cvListNameBox");
|
|
cvData.cvListName = doc.getElementById("cvListName");
|
|
cvData.cvEmail2Box = doc.getElementById("cvEmail2Box");
|
|
cvData.cvEmail2 = doc.getElementById("cvEmail2");
|
|
// Home section
|
|
cvData.cvbHome = doc.getElementById("cvbHome");
|
|
cvData.cvhHome = doc.getElementById("cvhHome");
|
|
cvData.cvHomeAddress = doc.getElementById("cvHomeAddress");
|
|
cvData.cvHomeAddress2 = doc.getElementById("cvHomeAddress2");
|
|
cvData.cvHomeCityStZip = doc.getElementById("cvHomeCityStZip");
|
|
cvData.cvHomeCountry = doc.getElementById("cvHomeCountry");
|
|
cvData.cvbHomeMapItBox = doc.getElementById("cvbHomeMapItBox");
|
|
cvData.cvHomeMapIt = doc.getElementById("cvHomeMapIt");
|
|
cvData.cvHomeWebPageBox = doc.getElementById("cvHomeWebPageBox");
|
|
cvData.cvHomeWebPage = doc.getElementById("cvHomeWebPage");
|
|
// Other section
|
|
cvData.cvbOther = doc.getElementById("cvbOther");
|
|
cvData.cvhOther = doc.getElementById("cvhOther");
|
|
cvData.cvCustom1 = doc.getElementById("cvCustom1");
|
|
cvData.cvCustom2 = doc.getElementById("cvCustom2");
|
|
cvData.cvCustom3 = doc.getElementById("cvCustom3");
|
|
cvData.cvCustom4 = doc.getElementById("cvCustom4");
|
|
cvData.cvNotes = doc.getElementById("cvNotes");
|
|
// Description section (mailing lists only)
|
|
cvData.cvbDescription = doc.getElementById("cvbDescription");
|
|
cvData.cvhDescription = doc.getElementById("cvhDescription");
|
|
cvData.cvDescription = doc.getElementById("cvDescription");
|
|
// Addresses section (mailing lists only)
|
|
cvData.cvbAddresses = doc.getElementById("cvbAddresses");
|
|
cvData.cvhAddresses = doc.getElementById("cvhAddresses");
|
|
cvData.cvAddresses = doc.getElementById("cvAddresses");
|
|
// Phone section
|
|
cvData.cvbPhone = doc.getElementById("cvbPhone");
|
|
cvData.cvhPhone = doc.getElementById("cvhPhone");
|
|
cvData.cvPhWork = doc.getElementById("cvPhWork");
|
|
cvData.cvPhHome = doc.getElementById("cvPhHome");
|
|
cvData.cvPhFax = doc.getElementById("cvPhFax");
|
|
cvData.cvPhCellular = doc.getElementById("cvPhCellular");
|
|
cvData.cvPhPager = doc.getElementById("cvPhPager");
|
|
// Work section
|
|
cvData.cvbWork = doc.getElementById("cvbWork");
|
|
cvData.cvhWork = doc.getElementById("cvhWork");
|
|
cvData.cvJobTitle = doc.getElementById("cvJobTitle");
|
|
cvData.cvDepartment = doc.getElementById("cvDepartment");
|
|
cvData.cvCompany = doc.getElementById("cvCompany");
|
|
cvData.cvWorkAddress = doc.getElementById("cvWorkAddress");
|
|
cvData.cvWorkAddress2 = doc.getElementById("cvWorkAddress2");
|
|
cvData.cvWorkCityStZip = doc.getElementById("cvWorkCityStZip");
|
|
cvData.cvWorkCountry = doc.getElementById("cvWorkCountry");
|
|
cvData.cvbWorkMapItBox = doc.getElementById("cvbWorkMapItBox");
|
|
cvData.cvWorkMapIt = doc.getElementById("cvWorkMapIt");
|
|
cvData.cvWorkWebPageBox = doc.getElementById("cvWorkWebPageBox");
|
|
cvData.cvWorkWebPage = doc.getElementById("cvWorkWebPage");
|
|
}
|
|
|
|
// XXX todo
|
|
// some similar code (in spirit) already exists, see OnLoadEditList()
|
|
// perhaps we could combine and put in abCommon.js?
|
|
function GetAddressesFromURI(uri)
|
|
{
|
|
var addresses = "";
|
|
|
|
var editList = GetDirectoryFromURI(uri);
|
|
var addressList = editList.addressLists;
|
|
if (addressList) {
|
|
var total = addressList.Count();
|
|
if (total > 0)
|
|
addresses = addressList.GetElementAt(0).QueryInterface(Components.interfaces.nsIAbCard).primaryEmail;
|
|
for (var i = 1; i < total; i++ ) {
|
|
addresses += ", " + addressList.GetElementAt(i).QueryInterface(Components.interfaces.nsIAbCard).primaryEmail;
|
|
}
|
|
}
|
|
return addresses;
|
|
}
|
|
|
|
function GoIM()
|
|
{
|
|
LaunchUrl(top.cvData.cvAimPresence.getAttribute("url"));
|
|
}
|
|
|
|
function DisplayCardViewPane(card)
|
|
{
|
|
var generatedName = gAddrbookSession.generateNameFromCard(card, gPrefs.getIntPref("mail.addr_book.lastnamefirst"));
|
|
|
|
var data = top.cvData;
|
|
var visible;
|
|
|
|
var titleString;
|
|
if (generatedName == "")
|
|
titleString = card.primaryEmail; // if no generatedName, use email
|
|
else
|
|
titleString = generatedName;
|
|
|
|
// set fields in card view pane
|
|
if (card.isMailList)
|
|
cvSetNode(data.CardTitle, gAddressBookBundle.getFormattedString("viewListTitle", [generatedName]));
|
|
else
|
|
cvSetNode(data.CardTitle, gAddressBookBundle.getFormattedString("viewCardTitle", [titleString]));
|
|
|
|
// Contact section
|
|
cvSetNodeWithLabel(data.cvNickname, zNickname, card.nickName);
|
|
|
|
if (card.isMailList) {
|
|
// email1, display name and screenname always hidden when a mailing list.
|
|
cvSetVisible(data.cvDisplayName, false);
|
|
cvSetVisible(data.cvEmail1Box, false);
|
|
cvSetVisible(data.cvScreennameBox, false);
|
|
|
|
visible = HandleLink(data.cvListName, zListName, card.displayName, data.cvListNameBox, "mailto:" + encodeURIComponent(GenerateAddressFromCard(card))) || visible;
|
|
}
|
|
else {
|
|
// listname always hidden if not a mailing list
|
|
cvSetVisible(data.cvListNameBox, false);
|
|
|
|
cvSetNodeWithLabel(data.cvDisplayName, zDisplayName, card.displayName);
|
|
|
|
visible = HandleLink(data.cvEmail1, zPrimaryEmail, card.primaryEmail, data.cvEmail1Box, "mailto:" + card.primaryEmail) || visible;
|
|
}
|
|
|
|
var onlineCheckAllowed = gPrefs.getBoolPref("mail.addr_book.im.onlineCheckAllowed");
|
|
var goimURL = "aim:goim?screenname=" + card.aimScreenName;
|
|
var hasScreenName = HandleLink(data.cvScreenname, zScreenName, card.aimScreenName, data.cvScreennameBox, goimURL);
|
|
|
|
if (!onlineCheckAllowed || !hasScreenName || gIOService.offline) {
|
|
data.cvAimPresence.removeAttribute("src");
|
|
data.cvAimPresence.removeAttribute("url");
|
|
data.cvAimPresence.setAttribute("width","0");
|
|
}
|
|
else {
|
|
data.cvAimPresence.setAttribute("src","http://big.oscar.aol.com:80/" + card.aimScreenName + "?on_url=http://ncmail.netscape.com/include/nc/images/online.gif&off_url=http://ncmail.netscape.com/include/nc/images/offline.gif");
|
|
data.cvAimPresence.setAttribute("url", goimURL);
|
|
data.cvAimPresence.setAttribute("width","16");
|
|
}
|
|
|
|
visible = hasScreenName || visible;
|
|
visible = HandleLink(data.cvEmail2, zSecondaryEmail, card.secondEmail, data.cvEmail2Box, "mailto:" + card.secondEmail) || visible;
|
|
|
|
// Home section
|
|
visible = cvSetNode(data.cvHomeAddress, card.homeAddress);
|
|
visible = cvSetNode(data.cvHomeAddress2, card.homeAddress2) || visible;
|
|
visible = cvSetCityStateZip(data.cvHomeCityStZip, card.homeCity, card.homeState, card.homeZipCode) || visible;
|
|
visible = cvSetNode(data.cvHomeCountry, card.homeCountry) || visible;
|
|
if (visible) {
|
|
var homeMapItUrl = CreateMapItURL(card.homeAddress, card.homeAddress2, card.homeCity, card.homeState, card.homeZipCode, card.homeCountry);
|
|
if (homeMapItUrl) {
|
|
cvSetVisible(data.cvbHomeMapItBox, true);
|
|
data.cvHomeMapIt.setAttribute('url', homeMapItUrl);
|
|
}
|
|
else {
|
|
cvSetVisible(data.cvbHomeMapItBox, false);
|
|
}
|
|
}
|
|
else {
|
|
cvSetVisible(data.cvbHomeMapItBox, false);
|
|
}
|
|
|
|
visible = HandleLink(data.cvHomeWebPage, "", card.webPage2, data.cvHomeWebPageBox, card.webPage2) || visible;
|
|
|
|
cvSetVisible(data.cvhHome, visible);
|
|
cvSetVisible(data.cvbHome, visible);
|
|
if (card.isMailList) {
|
|
// Description section
|
|
visible = cvSetNode(data.cvDescription, card.notes)
|
|
cvSetVisible(data.cvbDescription, visible);
|
|
|
|
// Addresses section
|
|
visible = cvAddAddressNodes(data.cvAddresses, card.mailListURI);
|
|
cvSetVisible(data.cvbAddresses, visible);
|
|
|
|
// Other section, not shown for mailing lists.
|
|
cvSetVisible(data.cvbOther, false);
|
|
}
|
|
else {
|
|
// Other section
|
|
visible = cvSetNodeWithLabel(data.cvCustom1, zCustom1, card.custom1);
|
|
visible = cvSetNodeWithLabel(data.cvCustom2, zCustom2, card.custom2) || visible;
|
|
visible = cvSetNodeWithLabel(data.cvCustom3, zCustom3, card.custom3) || visible;
|
|
visible = cvSetNodeWithLabel(data.cvCustom4, zCustom4, card.custom4) || visible;
|
|
visible = cvSetNode(data.cvNotes, card.notes) || visible;
|
|
visible = setBuddyIcon(card, data.cvBuddyIcon) || visible;
|
|
|
|
cvSetVisible(data.cvhOther, visible);
|
|
cvSetVisible(data.cvbOther, visible);
|
|
|
|
// hide description section, not show for non-mailing lists
|
|
cvSetVisible(data.cvbDescription, false);
|
|
|
|
// hide addresses section, not show for non-mailing lists
|
|
cvSetVisible(data.cvbAddresses, false);
|
|
}
|
|
|
|
// Phone section
|
|
visible = cvSetNodeWithLabel(data.cvPhWork, zWork, card.workPhone);
|
|
visible = cvSetNodeWithLabel(data.cvPhHome, zHome, card.homePhone) || visible;
|
|
visible = cvSetNodeWithLabel(data.cvPhFax, zFax, card.faxNumber) || visible;
|
|
visible = cvSetNodeWithLabel(data.cvPhCellular, zCellular, card.cellularNumber) || visible;
|
|
visible = cvSetNodeWithLabel(data.cvPhPager, zPager, card.pagerNumber) || visible;
|
|
cvSetVisible(data.cvhPhone, visible);
|
|
cvSetVisible(data.cvbPhone, visible);
|
|
// Work section
|
|
visible = cvSetNode(data.cvJobTitle, card.jobTitle);
|
|
visible = cvSetNode(data.cvDepartment, card.department) || visible;
|
|
visible = cvSetNode(data.cvCompany, card.company) || visible;
|
|
|
|
var addressVisible = cvSetNode(data.cvWorkAddress, card.workAddress);
|
|
addressVisible = cvSetNode(data.cvWorkAddress2, card.workAddress2) || addressVisible;
|
|
addressVisible = cvSetCityStateZip(data.cvWorkCityStZip, card.workCity, card.workState, card.workZipCode) || addressVisible;
|
|
addressVisible = cvSetNode(data.cvWorkCountry, card.workCountry) || addressVisible;
|
|
|
|
if (addressVisible) {
|
|
var workMapItUrl = CreateMapItURL(card.workAddress, card.workAddress2, card.workCity, card.workState, card.workZipCode, card.workCountry);
|
|
data.cvWorkMapIt.setAttribute('url', workMapItUrl);
|
|
if (workMapItUrl) {
|
|
cvSetVisible(data.cvbWorkMapItBox, true);
|
|
data.cvWorkMapIt.setAttribute('url', workMapItUrl);
|
|
}
|
|
else {
|
|
cvSetVisible(data.cvbWorkMapItBox, false);
|
|
}
|
|
}
|
|
else {
|
|
cvSetVisible(data.cvbWorkMapItBox, false);
|
|
}
|
|
|
|
visible = HandleLink(data.cvWorkWebPage, "", card.webPage1, data.cvWorkWebPageBox, card.webPage1) || addressVisible || visible;
|
|
|
|
cvSetVisible(data.cvhWork, visible);
|
|
cvSetVisible(data.cvbWork, visible);
|
|
|
|
// make the card view box visible
|
|
cvSetVisible(top.cvData.CardViewBox, true);
|
|
}
|
|
|
|
function setBuddyIcon(card, buddyIcon)
|
|
{
|
|
try {
|
|
var myScreenName = gPrefs.getCharPref("aim.session.screenname");
|
|
if (myScreenName && card.primaryEmail) {
|
|
if (!gProfileDirURL) {
|
|
// lazily create these file urls, and keep them around
|
|
var dirService = Components.classes["@mozilla.org/file/directory_service;1"]
|
|
.getService(Components.interfaces.nsIProperties);
|
|
var profileDir = dirService.get("ProfD", Components.interfaces.nsIFile);
|
|
gProfileDirURL = gIOService.newFileURI(profileDir);
|
|
}
|
|
|
|
// if we did have a buddy icon on disk for this screenname, this would be the file url spec for it
|
|
var iconURLStr = gProfileDirURL.spec + "/NIM/" + myScreenName + "/picture/" + card.aimScreenName + ".gif";
|
|
|
|
// check if the file exists
|
|
var file = gFileHandler.getFileFromURLSpec(iconURLStr);
|
|
|
|
// check if the file exists
|
|
// is this a perf hit? (how expensive is stat()?)
|
|
if (file.exists()) {
|
|
buddyIcon.setAttribute("src", iconURLStr);
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
catch (ex) {
|
|
// can get here if no screenname
|
|
}
|
|
|
|
buddyIcon.setAttribute("src", "");
|
|
return false;
|
|
}
|
|
|
|
function ClearCardViewPane()
|
|
{
|
|
cvSetVisible(top.cvData.CardViewBox, false);
|
|
}
|
|
|
|
function cvSetNodeWithLabel(node, label, text)
|
|
{
|
|
if (text) {
|
|
if (label)
|
|
return cvSetNode(node, label + ": " + text);
|
|
else
|
|
return cvSetNode(node, text);
|
|
}
|
|
else
|
|
return cvSetNode(node, "");
|
|
}
|
|
|
|
function cvSetCityStateZip(node, city, state, zip)
|
|
{
|
|
var text = "";
|
|
|
|
if ( city )
|
|
{
|
|
text = city;
|
|
if ( state || zip )
|
|
text += ", ";
|
|
}
|
|
if ( state )
|
|
text += state + " ";
|
|
if ( zip )
|
|
text += zip;
|
|
|
|
return cvSetNode(node, text);
|
|
}
|
|
|
|
function cvSetNode(node, text)
|
|
{
|
|
if ( node )
|
|
{
|
|
if ( !node.hasChildNodes() )
|
|
{
|
|
var textNode = document.createTextNode(text);
|
|
node.appendChild(textNode);
|
|
}
|
|
else if ( node.childNodes.length == 1 )
|
|
node.childNodes[0].nodeValue = text;
|
|
|
|
var visible;
|
|
|
|
if ( text )
|
|
visible = true;
|
|
else
|
|
visible = false;
|
|
|
|
cvSetVisible(node, visible);
|
|
}
|
|
|
|
return visible;
|
|
}
|
|
|
|
function cvAddAddressNodes(node, uri)
|
|
{
|
|
var visible = false;
|
|
if ( node )
|
|
{
|
|
var displayName = "";
|
|
var address = "";
|
|
|
|
var editList = GetDirectoryFromURI(uri);
|
|
var addressList = editList.addressLists;
|
|
|
|
if (addressList) {
|
|
var total = addressList.Count();
|
|
if (total > 0) {
|
|
while (node.hasChildNodes()) {
|
|
node.removeChild(node.lastChild);
|
|
}
|
|
for (i = 0; i < total; i++ ) {
|
|
var descNode = document.createElement("description");
|
|
address = addressList.GetElementAt(i).QueryInterface(Components.interfaces.nsIAbCard).primaryEmail;
|
|
displayName = addressList.GetElementAt(i).QueryInterface(Components.interfaces.nsIAbCard).displayName;
|
|
descNode.setAttribute("class", "CardViewLink");
|
|
node.appendChild(descNode);
|
|
|
|
var linkNode = document.createElementNS("http://www.w3.org/1999/xhtml", "a");
|
|
linkNode.setAttribute("id", "addr#" + i);
|
|
linkNode.setAttribute("href", "mailto:" + address);
|
|
descNode.appendChild(linkNode);
|
|
|
|
var textNode = document.createTextNode(displayName + " <" + address + ">");
|
|
linkNode.appendChild(textNode);
|
|
}
|
|
visible = true;
|
|
}
|
|
}
|
|
cvSetVisible(node, visible);
|
|
}
|
|
return visible;
|
|
}
|
|
|
|
function cvSetVisible(node, visible)
|
|
{
|
|
if ( visible )
|
|
node.removeAttribute("collapsed");
|
|
else
|
|
node.setAttribute("collapsed", "true");
|
|
}
|
|
|
|
function HandleLink(node, label, value, box, link)
|
|
{
|
|
var visible = cvSetNodeWithLabel(node, label, value);
|
|
if (visible)
|
|
node.setAttribute('href', link);
|
|
cvSetVisible(box, visible);
|
|
|
|
return visible;
|
|
}
|
|
|
|
function MapIt(id)
|
|
{
|
|
var button = document.getElementById(id);
|
|
openTopWin(button.getAttribute('url'));
|
|
}
|
|
|
|
function CreateMapItURL(address1, address2, city, state, zip, country)
|
|
{
|
|
if (!gMapItURLFormat)
|
|
return null;
|
|
|
|
var urlFormat = gMapItURLFormat.replace("@A1", encodeURIComponent(address1));
|
|
urlFormat = urlFormat.replace("@A2", encodeURIComponent(address2));
|
|
urlFormat = urlFormat.replace("@CO", encodeURIComponent(country));
|
|
urlFormat = urlFormat.replace("@CI", encodeURIComponent(city));
|
|
urlFormat = urlFormat.replace("@ST", encodeURIComponent(state));
|
|
urlFormat = urlFormat.replace("@ZI", encodeURIComponent(zip));
|
|
|
|
return urlFormat;
|
|
}
|
|
|
|
function openLink(id)
|
|
{
|
|
openTopWin(document.getElementById(id).getAttribute("href"));
|
|
// return false, so we don't load the href in the addressbook window
|
|
return false;
|
|
}
|
|
|