<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -79,16 +79,15 @@ class Blackbook::Importer::Hotmail &lt; Blackbook::Importer::PageScraper
     rows = page.search(&quot;//div[@class='ContactsPrintPane cPrintContact BorderTop']&quot;)
     rows.collect do |row|
       name = row.search(&quot;//div[@class='cDisplayName']&quot;).first.innerText.strip
-      name = name[0,(name.size-3)] # char 142 is last char of clean text
-
+      
       vals = {}
-      row.search(&quot;/table/tr&quot;).each do |pair|
+      row.search(&quot;//table/tr&quot;).each do |pair|
         key = pair.search(&quot;/td[@class='TextAlignRight Label']&quot;).first.innerText.strip
         val = pair.search(&quot;/td[@class='Value']&quot;).first.innerText.strip
         vals[key.to_sym] = val
       end
       vals[:name] = name
-      vals[:email] = (vals['Personal e-mail'.to_sym] || vals['Work e-mail'.to_sym]).split(' ').first rescue ''
+      vals[:email] = (vals['Personal e-mail:'.to_sym] || vals['Work e-mail:'.to_sym]).split(' ').first rescue ''
       vals
     end
   end</diff>
      <filename>lib/blackbook/importer/hotmail.rb</filename>
    </modified>
    <modified>
      <diff>@@ -1,132 +1,191 @@
 
-
 &lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;
 &lt;html dir=&quot;ltr&quot;&gt;
     &lt;head&gt;
         &lt;title&gt;Windows Live Hotmail Print Contacts&lt;/title&gt;
-        &lt;link rel=&quot;stylesheet&quot; href=&quot;/mail/ThemeCommon_12.1.0069.1213.aspx?Theme=4&amp;culture=en-US&quot; type=&quot;text/css&quot; id=&quot;ssThemeService&quot;/&gt;
-        &lt;link rel=&quot;stylesheet&quot; href=&quot;http://gfx8.hotmail.com/mail/12.1.0069.1213/LayoutCommon.css&quot; type=&quot;text/css&quot;/&gt;
-        &lt;link rel=&quot;stylesheet&quot; href=&quot;/mail/LayoutCommon_12.1.0069.1213.aspx?Theme=4&amp;culture=en-US&quot; type=&quot;text/css&quot;/&gt;
-        &lt;link rel=&quot;stylesheet&quot; href=&quot;http://gfx8.hotmail.com/mail/12.1.0069.1213/LayoutContactCommon.css&quot; type=&quot;text/css&quot;/&gt;
-        &lt;link rel=&quot;stylesheet&quot; href=&quot;/mail/LayoutContactCommon_12.1.0069.1213.aspx?Theme=4&amp;culture=en-US&quot; type=&quot;text/css&quot;/&gt;
+        &lt;link rel=&quot;stylesheet&quot; href=&quot;http://gfx8.hotmail.com/mail/13.2.0242.1113/styles/Base/hig.css&quot; type=&quot;text/css&quot;/&gt;
+        &lt;link rel=&quot;stylesheet&quot; href=&quot;/mail/LayoutCommon_13.2.0242.1113.aspx?culture=en-US&quot; type=&quot;text/css&quot;/&gt;
+        &lt;link rel=&quot;stylesheet&quot; href=&quot;http://gfx8.hotmail.com/mail/13.2.0242.1113/styles/Base/LayoutContactCommon.css&quot; type=&quot;text/css&quot;/&gt;
         
         &lt;style type=&quot;text/css&quot;&gt;
             .FloatLeft, .HeaderLabel, .HeaderData  {float:left;}
             .FloatRight {float:right;}
             .HeaderLabel {margin-right:0.45em;}
-            .ContainerPadding {margin:0;padding:0.32em 0.64em 0.64em 0.64em;}
+            .ContainerPadding {padding:4px 4px 8px 4px;}
+            .PrintContent {padding:0px 12px;}
+            #PrintShellToolbar IMG {padding-right:4px;}
         &lt;/style&gt;
+
         &lt;script type=&quot;text/javascript&quot;&gt;
         function PrintDocument()
         {
-            document.getElementById(&quot;PrintShellToolbar&quot;).style.display = &quot;none&quot;;
-            window.setTimeout(&quot;window.print();&quot;,1)
-            window.setTimeout(&quot;document.getElementById('PrintShellToolbar').style.display = 'block';&quot;,1)
+            var elem = document.getElementById(&quot;PrintShellToolbar&quot;);
+            if (elem)
+            {
+                elem.style.display = &quot;none&quot;;
+                window.setTimeout(&quot;window.print();&quot;,1)
+                window.setTimeout(&quot;document.getElementById('PrintShellToolbar').style.display = 'block';&quot;,1)
+            }
         }
         &lt;/script&gt;
     &lt;/head&gt;
     &lt;body onload=&quot;javascript:PrintDocument();&quot;&gt;
-    &lt;div id=&quot;HeaderContainer&quot;&gt;
-       &lt;table cellspacing=&quot;0&quot; id=&quot;uxp_hdr&quot;&gt;&lt;tr&gt;&lt;td class=&quot;uxp_hdrInner&quot;&gt;&lt;table class=&quot;uxp_hdrInnerTable&quot; cellspacing=&quot;0&quot;&gt;&lt;tr&gt;&lt;td&gt;&lt;span id=&quot;uxp_hdr_jewelSpan&quot;&gt;&lt;/span&gt;&lt;a id=&quot;uxp_hdr_jewelLink&quot; href=&quot;#&quot;&gt;&lt;img src=&quot;http://gfx1.hotmail.com/mail/uxp/w2/pr03/HIG/img/h/jewel_24_hover.png&quot; alt=&quot;More services&quot; title=&quot;&quot; width=&quot;39&quot; height=&quot;37&quot; style=&quot;visibility:hidden&quot;/&gt;&lt;span class=&quot;uxp_hdr_windowsLiveText&quot;&gt;Windows Live&lt;span class=&quot;uxp_hdr_tm&quot;&gt;&amp;trade;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
-    &lt;/div&gt;
     
-    
-          &lt;div class=&quot;cPrintDiv&quot;&gt;
+          &lt;div class=&quot;PrintContent&quot;&gt;
               
 &lt;style type=&quot;text/css&quot;&gt; 
 .ContactsPrintPane .ContactHeader {padding:0em 0em 1.33em .41em;padding-right:0em;padding-left:.41em;position:relative;}
 .ContactHeader .cDisplayName {padding-top:.45em;}
-.ContactsPrintPane DIV.Label {width:12.91em;padding:.36em  1.64em .36em 0;padding-right:1.64em;padding-left:0;text-align:right;}
-.ContactsPrintPane DIV.Value {margin-left:13.91em;padding:.36em 0;}
+.ContactsPrintPane TD.Label {width:12.91em;padding:.36em  1.64em .36em 0;padding-right:1.64em;padding-left:0;text-align:right;}
+.ContactsPrintPane TD.Value {margin-left:13.91em;padding:.36em 0;}
 .cPrintContact {padding:1em 0em 1em .41em;padding-right:0em;padding-left:.41em;}
-.cLinks {padding-left:.91em;)
+.cLinks {padding-left:.91em;}
+.ContactsPrintPane .cCol1 {float:none;padding:0px;}
 &lt;/style&gt;          
 
 &lt;div id=&quot;PrintShellToolbar&quot;&gt;
     &lt;div class=&quot;ContainerPadding&quot;&gt;
         &lt;span class=&quot;FloatRight&quot;&gt;
+
             &lt;a href=&quot;javascript:window.close();&quot; &gt;
-                &lt;img alt=&quot;&quot; src=&quot;http://gfx1.hotmail.com/mail/w2/ltr/glyph_close_rest.gif&quot; /&gt;&amp;nbsp;Close window
+                &lt;img alt=&quot;&quot; src=&quot;http://gfx1.hotmail.com/mail/w3/ltr/glyph_close_rest.gif&quot; /&gt;&amp;nbsp;Close window
             &lt;/a&gt;
         &lt;/span&gt;
         &lt;span&gt;
             &lt;a href=&quot;javascript:PrintDocument();&quot; &gt;
-                &lt;img alt=&quot;&quot; src=&quot;http://gfx2.hotmail.com/mail/w2/ltr/i_print.gif&quot; /&gt;&amp;nbsp;Print
+                &lt;img alt=&quot;&quot; src=&quot;http://gfx2.hotmail.com/mail/w3/ltr/i_print.gif&quot; /&gt;&lt;span class='VAlignTop'&gt;&amp;nbsp;Print&lt;/span&gt;
             &lt;/a&gt;
         &lt;/span&gt;
+
     &lt;/div&gt;
 &lt;/div&gt;
 
             &lt;div class=&quot;ContactsPrintPane cPrintContact BorderTop&quot;&gt;
             
-&lt;div class=&quot;ContactHeader&quot;&gt;    
-           
+
+&lt;script type=&quot;text/javascript&quot;&gt;
+    function ToggleDetails(hideId, showId)
+    {
+        var e = document.getElementById(hideId);
+        if (e)
+        {
+            e.style.display = &quot;none&quot;;
+            e = document.getElementById(showId);
+            if (e)
+                e.style.display = &quot;block&quot;;
+        }
+    }
+&lt;/script&gt;
+&lt;div class=&quot;ContactHeader ClearBoth&quot;&gt;        
     &lt;div class=&quot;cContactHeaderInfo&quot;&gt;
+        
         &lt;div class=&quot;cDisplayName&quot; &gt;            
-            Jane User&#8206;
+            Jane User
         &lt;/div&gt;
-        
+            
     &lt;/div&gt;
+
 &lt;/div&gt;
-&lt;table&gt;
-
-&lt;tr&gt;
-&lt;td class=&quot;TextAlignRight Label&quot; &gt;Personal e-mail&lt;/td&gt;
-&lt;td class=&quot;Value&quot; &gt;jane.user&amp;#64;example.com&lt;span&gt; (preferred e-mail address)&lt;/span&gt;&lt;/td&gt;
-&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td class=&quot;TextAlignRight Label&quot; &gt;Home phone&lt;/td&gt;
-&lt;td class=&quot;Value&quot; &gt;2068675309&lt;/td&gt;
-&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td class=&quot;TextAlignRight Label&quot; &gt;Mobile phone&lt;/td&gt;
-&lt;td class=&quot;Value&quot; &gt;2068675308&lt;/td&gt;
-&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td class=&quot;TextAlignRight Label&quot; &gt;Company&lt;/td&gt;
-&lt;td class=&quot;Value&quot; &gt;Example, Inc.&lt;/td&gt;
-&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td class=&quot;TextAlignRight Label&quot; &gt;Work e-mail&lt;/td&gt;
-&lt;td class=&quot;Value&quot; &gt;jane.work&amp;#64;example.com&lt;/td&gt;
-&lt;/tr&gt;
-
-&lt;tr&gt;
-&lt;td class=&quot;TextAlignRight Label&quot; &gt;Work phone&lt;/td&gt;
-&lt;td class=&quot;Value&quot; &gt;2068675307&lt;/td&gt;
-&lt;/tr&gt;
-
-&lt;/table&gt;
+
+ &lt;div id=&quot;cFullView&quot; class=&quot;ClearBoth&quot;&gt;
+
+        &lt;div class=&quot;cCol1&quot;&gt;
+            &lt;table&gt;
+                
+                &lt;tr&gt;
+                &lt;td class=&quot;TextAlignRight Label&quot; &gt;Name:&lt;/td&gt;
+                &lt;td class=&quot;Value&quot; &gt;Jane User&lt;/td&gt;
+
+                &lt;/tr&gt;
+                                    
+            &lt;/table&gt;   
+        &lt;/div&gt;
+        &lt;div class=&quot;cCol2&quot;&gt;
+            &lt;table&gt;
+                  
+            &lt;/table&gt;
+        &lt;/div&gt;
+        &lt;div class=&quot;cDetailsSeparator&quot;&gt;&amp;nbsp;&lt;/div&gt;
+    
+        &lt;div class=&quot;cCol1&quot;&gt;
+
+            &lt;table&gt;
+                
+                &lt;tr&gt;
+                &lt;td class=&quot;TextAlignRight Label&quot; &gt;Personal e-mail:&lt;/td&gt;
+                &lt;td class=&quot;Value&quot; &gt;jane.user&amp;#64;example.com&lt;/td&gt;
+                &lt;/tr&gt;
+                             
+            &lt;/table&gt;
+        &lt;/div&gt;
+
+        &lt;div class=&quot;cCol2&quot;&gt;
+            &lt;table&gt;
+                      
+            &lt;/table&gt;
+        &lt;/div&gt;    
+        &lt;div class=&quot;cDetailsSeparator&quot;&gt;&amp;nbsp;&lt;/div&gt;               
+            
+&lt;/div&gt;
+
             &lt;/div&gt;
         
             &lt;div class=&quot;ContactsPrintPane cPrintContact BorderTop&quot;&gt;
             
-&lt;div class=&quot;ContactHeader&quot;&gt;    
-           
+
+&lt;script type=&quot;text/javascript&quot;&gt;
+    function ToggleDetails(hideId, showId)
+    {
+        var e = document.getElementById(hideId);
+        if (e)
+        {
+            e.style.display = &quot;none&quot;;
+            e = document.getElementById(showId);
+            if (e)
+                e.style.display = &quot;block&quot;;
+        }
+    }
+
+&lt;/script&gt;
+&lt;div class=&quot;ContactHeader ClearBoth&quot;&gt;        
     &lt;div class=&quot;cContactHeaderInfo&quot;&gt;
+        
         &lt;div class=&quot;cDisplayName&quot; &gt;            
-            Joe User&#8206;
+          joe.user&amp;#64;example.com
         &lt;/div&gt;
-        
+            
     &lt;/div&gt;
 &lt;/div&gt;
-&lt;table&gt;
 
-&lt;tr&gt;
-&lt;td class=&quot;TextAlignRight Label&quot; &gt;Personal e-mail&lt;/td&gt;
-&lt;td class=&quot;Value&quot; &gt;joe.user&amp;#64;example.com&lt;/td&gt;
-&lt;/tr&gt;
+ &lt;div id=&quot;cFullView&quot; class=&quot;ClearBoth&quot;&gt;
+
+        &lt;div class=&quot;cCol1&quot;&gt;
+
+            &lt;table&gt;
+                
+                &lt;tr&gt;
+                &lt;td class=&quot;TextAlignRight Label&quot; &gt;Personal e-mail:&lt;/td&gt;
+                &lt;td class=&quot;Value&quot; &gt;joe.user&amp;#64;example.com&lt;/td&gt;
+                &lt;/tr&gt;
+                             
+            &lt;/table&gt;
+        &lt;/div&gt;
+
+        &lt;div class=&quot;cCol2&quot;&gt;
+            &lt;table&gt;
+                      
+            &lt;/table&gt;
+        &lt;/div&gt;    
+        &lt;div class=&quot;cDetailsSeparator&quot;&gt;&amp;nbsp;&lt;/div&gt;               
+            
+&lt;/div&gt;
 
-&lt;/table&gt;
             &lt;/div&gt;
         
-    &lt;img id=&quot;cleargif&quot; alt=&quot;&quot; src=&quot;http://h.live.com/c.gif?RF=&amp;PI=44364&amp;DI=5707&amp;PS=93140&quot; width=&quot;1&quot; height=&quot;1&quot; /&gt;       
+    &lt;img id=&quot;cleargif&quot; alt=&quot;&quot; src=&quot;http://h.msn.com/c.gif?RF=&amp;PI=44364&amp;DI=5707&amp;PS=93140&quot; width=&quot;1&quot; height=&quot;1&quot; /&gt;       
 
           &lt;/div&gt;
     
     &lt;/body&gt;
+
 &lt;/html&gt;</diff>
      <filename>test/fixtures/hotmail_contacts.html</filename>
    </modified>
    <modified>
      <diff>@@ -77,8 +77,12 @@ class TestBlackbookImporterHotmail &lt; Test::Unit::TestCase
     assert_nothing_raised do
       contacts = @importer.scrape_contacts
       assert_equal 2, contacts.size
+
+      # Joe doesn't have a name, so we use his display name (which hotmail sets to his email)
       assert contacts.detect{|c| c[:email] == 'joe.user@example.com'}
-      assert contacts.detect{|c| c[:name] == 'Joe User'}
+      assert contacts.detect{|c| c[:name] == 'joe.user@example.com'}
+
+      # Jane has both a name and an email
       assert contacts.detect{|c| c[:email] == 'jane.user@example.com'}
       assert contacts.detect{|c| c[:name] == 'Jane User'}
     end</diff>
      <filename>test/test_blackbook_importer_hotmail.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>837bc908894e8d679f7c6ac7b8c1901878de04da</id>
    </parent>
  </parents>
  <author>
    <name>Jeff Jolma</name>
    <email>jeff@animoto.com</email>
  </author>
  <url>http://github.com/purzelrakete/blackbook/commit/506473b07a8c01975cc200b949ea0a316fa7bf93</url>
  <id>506473b07a8c01975cc200b949ea0a316fa7bf93</id>
  <committed-date>2008-12-16T16:29:49-08:00</committed-date>
  <authored-date>2008-12-10T08:04:39-08:00</authored-date>
  <message>fix hotmail import

One weird case is how to handle contacts that don't have names.
Hotmail gives them a &quot;display name&quot; with their email address.  Should
we use that as the name or nil?  This keeps it using this display
name, but I could be convinced otherwise.

Signed-off-by: Rany Keddo &lt;rany@playtype.net&gt;</message>
  <tree>1ce6a7479778090878cda41eb0d25f566f939471</tree>
  <committer>
    <name>Rany Keddo</name>
    <email>rany@playtype.net</email>
  </committer>
</commit>
