#
# old_revision [64282771e1fb25846e93ccef41b7198b11c569f6]
#
# patch "SoObjects/Contacts/SOGoContactLDIFEntry.m"
#  from [71db282d913c7028250e0000ec1c0138370ebb7f]
#    to [ab9600cb1abfa069bb08014e6839995b1f121fcc]
#
============================================================
--- SoObjects/Contacts/SOGoContactLDIFEntry.m	71db282d913c7028250e0000ec1c0138370ebb7f
+++ SoObjects/Contacts/SOGoContactLDIFEntry.m	ab9600cb1abfa069bb08014e6839995b1f121fcc
@@ -87,6 +87,8 @@
     [vCard addTel: info
            types: [NSArray arrayWithObjects: @"home", @"voice", nil]];
   info = [ldifEntry objectForKey: @"fax"];
+  if (!info)
+    info = [ldifEntry objectForKey: @"facsimiletelephonenumber"];
   if (info)
     [vCard addTel: info
            types: [NSArray arrayWithObjects: @"work", @"fax", nil]];
@@ -109,7 +111,7 @@
 
 - (NGVCard *) vCard
 {
-  NSString *info, *surname, *streetAddress, *location, *region, *postalCode, *country, *org, *orgunit;
+  NSString *info, *surname, *streetAddress2, *streetAddress, *location, *region, *postalCode, *country, *org, *orgunit, *year, *month, *day;
   CardElement *element;
   unsigned int count;
 
@@ -156,8 +158,19 @@
       if (info)
         [vcard addEmail: info
                types: [NSArray arrayWithObjects: @"internet", @"pref", nil]];
+      info = [ldifEntry objectForKey: @"mozillasecondemail"];
+      if (info)
+        [vcard addEmail: info
+               types: [NSArray arrayWithObjects: @"internet", nil]];
+      info = [ldifEntry objectForKey: @"nsaimid"];
+      if (info)
+        [vcard addChildWithTag: @"x-aim"
+               types: nil
+               singleValue: info];
       [self _setPhonesOfVCard: vcard];
 
+      streetAddress2 = [ldifEntry objectForKey: @"mozillaworkstreet2"];
+
       streetAddress = [ldifEntry objectForKey: @"street"];
       if (!streetAddress)
         streetAddress = [ldifEntry objectForKey: @"streetaddress"];
@@ -182,6 +195,8 @@
                                  attributes: nil values: nil];
       [element setValue: 0 ofAttribute: @"type" to: @"work"];
 
+      if (streetAddress2)
+        [element setValue: 1 to: streetAddress2];
       if (streetAddress)
         [element setValue: 2 to: streetAddress];
       if (location)
@@ -193,9 +208,59 @@
       if (country)
 	[element setValue: 6 to: country];
       
-      if (streetAddress || location || region || postalCode || country)
+      if (streetAddress2 || streetAddress || location || region || postalCode || country)
         [vcard addChild: element];
 
+      info = [ldifEntry objectForKey: @"mozillaworkurl"];
+      if (!info)
+        info = [ldifEntry objectForKey: @"workurl"];
+      if (info)
+        [vcard addChildWithTag: @"url"
+               types: [NSArray arrayWithObjects: @"work", nil]
+               singleValue: info];
+
+      streetAddress2 = [ldifEntry objectForKey: @"mozillahomestreet2"];
+
+      streetAddress = [ldifEntry objectForKey: @"mozillahomestreet"];
+      if (!streetAddress)
+        streetAddress = [ldifEntry objectForKey: @"homestreet"];
+
+      location = [ldifEntry objectForKey: @"mozillahomelocalityname"];
+
+      region = [ldifEntry objectForKey: @"mozillahomestate"];
+
+      postalCode = [ldifEntry objectForKey: @"mozillahomepostalcode"];
+
+      country = [ldifEntry objectForKey: @"mozillahomecountryname"];
+
+      element = [CardElement elementWithTag: @"adr"
+                                 attributes: nil values: nil];
+      [element setValue: 0 ofAttribute: @"type" to: @"home"];
+
+      if (streetAddress2)
+        [element setValue: 1 to: streetAddress2];
+      if (streetAddress)
+        [element setValue: 2 to: streetAddress];
+      if (location)
+        [element setValue: 3 to: location];
+      if (region)
+        [element setValue: 4 to: region];
+      if (postalCode)
+        [element setValue: 5 to: postalCode];
+      if (country)
+        [element setValue: 6 to: country];
+
+      if (streetAddress2 || streetAddress || location || region || postalCode || country)
+        [vcard addChild: element];
+
+      info = [ldifEntry objectForKey: @"mozillahomeurl"];
+      if (!info)
+        info = [ldifEntry objectForKey: @"homeurl"];
+      if (info)
+        [vcard addChildWithTag: @"url"
+               types: [NSArray arrayWithObjects: @"home", nil]
+               singleValue: info];
+
       // We handle the org/orgunit stuff
       element = [CardElement elementWithTag: @"org"
                              attributes: nil values: nil];
@@ -212,6 +277,14 @@
       if (org || orgunit)
 	[vcard addChild: element];
 
+      year = [ldifEntry objectForKey: @"birthyear"];
+      month = [ldifEntry objectForKey: @"birthmonth"];
+      day = [ldifEntry objectForKey: @"birthday"];
+      if (year && month && day)
+        [vcard setBday: [NSString stringWithFormat: @"%04d-%02d-%02d",
+                                  [year intValue], [month intValue],
+                                  [day intValue]]];
+
       info = [ldifEntry objectForKey: @"calFBURL"];
       if (info)
         [vcard addChildWithTag: @"FBURL"
