/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
 *
 * The contents of this file are subject to the Netscape Public License
 * Version 1.0 (the "NPL"); you may not use this file except in
 * compliance with the NPL.  You may obtain a copy of the NPL at
 * http://www.mozilla.org/NPL/
 *
 * Software distributed under the NPL is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
 * for the specific language governing rights and limitations under the
 * NPL.
 *
 * The Initial Developer of this code under the NPL is Netscape
 * Communications Corporation.  Portions created by Netscape are
 * Copyright (C) 1998 Netscape Communications Corporation.  All Rights
 * Reserved.
 */
 
#include "nsIAbBase.idl"

[ptr] native nsVoidArray(nsVoidArray);

%{C++
#include "nsVoidArray.h"
%}

[scriptable, uuid(FA5C977F-04C8-11d3-A2EB-001083003D0C)]
interface nsIAbCard : nsIAbBase {

	attribute string FirstName;
	attribute string LastName;
	attribute string DisplayName;
	attribute string NickName;
	attribute string PrimaryEmail;
	attribute string SecondEmail;
	attribute string WorkPhone;
	attribute string HomePhone;
	attribute string FaxNumber;
	attribute string PagerNumber;
	attribute string CellularNumber;
	attribute string HomeAddress;
	attribute string HomeAddress2;
	attribute string HomeCity;
	attribute string HomeState;
	attribute string HomeZipCode;
	attribute string HomeCountry;
	attribute string WorkAddress;
	attribute string WorkAddress2;
	attribute string WorkCity;
	attribute string WorkState;
	attribute string WorkZipCode;
	attribute string WorkCountry;
	attribute string JobTitle;
	attribute string Department;
	attribute string Company;
	attribute string WebPage1;
	attribute string WebPage2;
	attribute string BirthYear;
	attribute string BirthMonth;
	attribute string BirthDay;
	attribute string Custom1;
	attribute string Custom2;
	attribute string Custom3;
	attribute string Custom4;
	attribute string Notes;

	attribute boolean SendPlainText;

  
    attribute unsigned long DbTableID;
    attribute unsigned long DbRowID;

	void GetCardValue(in string attrname, out string value);
	void SetCardValue(in string attrname, in string value);
	void GetAnonymousAttrubutesList(out nsVoidArray attrlist);
	void GetAnonymousValuesList(out nsVoidArray valuelist);
	void SetAnonymousAttrubutesList(in nsVoidArray attrlist);
	void SetAnonymousValuesList(in nsVoidArray valuelist);
	void SetAnonymousAttribute(in string attrname, in string value);
	void GetCardURI(out string uri);
	void AddCardToDatabase();
	void EditCardToDatabase();
	void CopyCard(in nsIAbCard srcCard);
};
