<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>db/migrate/20080908155341_split_dob.rb</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -19,7 +19,11 @@ class Persona &lt; ActiveRecord::Base
   # Returns the personas attribute for the given SReg name or AX Type URI
   def property(type)
     prop = Persona.mappings.detect { |i| i[1].include?(type) }
-    prop ? self[prop[0]].to_s : &quot;&quot;
+    prop ? self.send(prop[0]).to_s : &quot;&quot;
+  end
+  
+  def dob
+    &quot;#{dob_year? ? dob_year : '0000'}-#{dob_month? ? dob_month : '00'}-#{dob_day? ? dob_day : '00'}&quot;
   end
   
   protected
@@ -41,6 +45,9 @@ class Persona &lt; ActiveRecord::Base
       'timezone' =&gt; ['timezone', 'http://axschema.org/pref/timezone'],
       'gender' =&gt; ['gender', 'http://axschema.org/person/gender'],
       'dob' =&gt; ['dob', 'http://axschema.org/birthDate'],
+      'dob_day' =&gt; ['dob_day', 'http://axschema.org/birthDate/birthday'],
+      'dob_month' =&gt; ['dob_month', 'http://axschema.org/birthDate/birthMonth'],
+      'dob_year' =&gt; ['dob_year', 'http://axschema.org/birthDate/birthYear'],
       'address' =&gt; ['http://axschema.org/contact/postalAddress/home'],
       'address_additional' =&gt; ['http://axschema.org/contact/postalAddressAdditional/home'],
       'city' =&gt; ['http://axschema.org/contact/city/home'],</diff>
      <filename>app/models/persona.rb</filename>
    </modified>
    <modified>
      <diff>@@ -53,8 +53,10 @@
   	&lt;%= form.select :gender, [['Male', 'M'], ['Female', 'F']], { :include_blank =&gt; true } %&gt;
 	&lt;/div&gt;
 	&lt;div class=&quot;row inline space&quot;&gt;
-		&lt;%= form.label :dob_3i, property_label_text(:dob) %&gt;
-  	&lt;%= form.date_select :dob, :order =&gt; [:day, :month, :year], :start_year =&gt; 1950, :end_year =&gt; Date.today.year, :include_blank =&gt; true %&gt;
+		&lt;%= form.label :dob_day, property_label_text(:dob) %&gt;
+  	&lt;%= select_day @persona.dob_day, :prefix =&gt; 'persona', :field_name =&gt; 'dob_day', :include_blank =&gt; true %&gt;
+		&lt;%= select_month @persona.dob_month, :prefix =&gt; 'persona', :field_name =&gt; 'dob_month', :include_blank =&gt; true %&gt;
+		&lt;%= select_year @persona.dob_year, :prefix =&gt; 'persona', :field_name =&gt; 'dob_year', :include_blank =&gt; true, :start_year =&gt; (Date.today.year - 100), :end_year =&gt; Date.today.year %&gt;
 	&lt;/div&gt;
 
 	&lt;h3&gt;Professional information&lt;/h3&gt;</diff>
      <filename>app/views/personas/_form.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -46,7 +46,7 @@ or &lt;%= link_to_function &quot;choose another persona&quot;, 'Element.toggle(&quot;persona_selec
 		&lt;% end if sreg_request %&gt;
 		&lt;% ax_fetch_request.attributes.each do |property| %&gt;
 		&lt;tr&gt;
-			&lt;td&gt;&lt;%= label_tag &quot;site_ax_#{property.ns_alias}&quot;, property.ns_alias %&gt;&lt;/td&gt;
+			&lt;td&gt;&lt;%= label_tag &quot;site_ax_#{property.ns_alias}&quot;, property_label_text(property.ns_alias) %&gt;&lt;/td&gt;
 			&lt;td&gt;&lt;%= label_tag &quot;site_ax_#{property.ns_alias}&quot;, @site.persona.property(property.type_uri) %&gt;&lt;/td&gt;
 			&lt;td&gt;
 				&lt;%= check_box_tag &quot;site[ax][#{property.ns_alias}][value]&quot;, @site.persona.property(property.type_uri), property.required, :id =&gt; &quot;site_ax_#{property.ns_alias}&quot;, :class =&gt; ax_request_for_field(property) %&gt;</diff>
      <filename>app/views/server/decide.html.erb</filename>
    </modified>
    <modified>
      <diff>@@ -32,30 +32,30 @@ form            { margin: 1em 0 1.7em 0; border: 1px dotted #CCC; border-top: 2p
 input           { padding: 0.2em; }
 select          { width: 24em; }
 input[type=text],
-input[type=password]    { width: 24em; }
-input[type=checkbox],  
-input[type=radio]       { position: relative; top: -0.2em; }
-input.space             { margin-right: 0.7em; }
-select#persona_dob_1i   { width: 6em; }
-select#persona_dob_2i   { width: 13em; }
-select#persona_dob_3i   { width: 5em; }
-div.row                 { margin: 0 0 0.7em 0; clear: both; }
-div.space               { margin: 0 0 1.7em 0; }
-label                   { display: block; }
-label.check             { display: inline; margin: 0 2em 0 0.2em; }
-label.note              { display: inline; margin: 0 0 0 0.4em; }
-div.inline label        { float: left; width: 8.5em; }
-.labelspace             { margin-left: 10.5em; }
-.options a              { margin-right: 0.7em; }
-.note                   { font-size: 0.9em; color: #AAA; font-weight: normal; }
-.note a,
-a#forgot_password       { color: #AAA; margin: 0 0.3em; text-decoration: underline; font-weight: normal; }
-#openid_identifier      { background: url(/images/openid_symbol.png) 2px 50% no-repeat; padding-left: 25px; }
-.clear                  { clear: both; }
-.notice                 { margin: 0 0 1.7em 0; border: 1px solid #60964f; padding: 0.5em; background: #b3dca7; }
-.fieldWithErrors label  { color: #FF6200; }
-.error,
-#errorExplanation       { margin: 0 0 1.7em 0; padding: 0.5em 1em; background: #FF6200; color: #222; }
-#errorExplanation h2    { font-size: 1.1em; color: #222; }
-#errorExplanation ul    { margin: 0 0 0 1.2em; list-style: square; }
-#errorExplanation ul li { padding: 0; border: 0; }
\ No newline at end of file
+input[type=password]     { width: 24em; }
+input[type=checkbox],    
+input[type=radio]        { position: relative; top: -0.2em; }
+input.space              { margin-right: 0.7em; }
+select#persona_dob_day   { width: 6em; }
+select#persona_dob_month { width: 11em; }
+select#persona_dob_year  { width: 6em; }
+div.row                  { margin: 0 0 0.7em 0; clear: both; }
+div.space                { margin: 0 0 1.7em 0; }
+label                    { display: block; }
+label.check              { display: inline; margin: 0 2em 0 0.2em; }
+label.note               { display: inline; margin: 0 0 0 0.4em; }
+div.inline label         { float: left; width: 8.5em; }
+.labelspace              { margin-left: 10.5em; }
+.options a               { margin-right: 0.7em; }
+.note                    { font-size: 0.9em; color: #AAA; font-weight: normal; }
+.note a,                 
+a#forgot_password        { color: #AAA; margin: 0 0.3em; text-decoration: underline; font-weight: normal; }
+#openid_identifier       { background: url(/images/openid_symbol.png) 2px 50% no-repeat; padding-left: 25px; }
+.clear                   { clear: both; }
+.notice                  { margin: 0 0 1.7em 0; border: 1px solid #60964f; padding: 0.5em; background: #b3dca7; }
+.fieldWithErrors label   { color: #FF6200; }
+.error,                  
+#errorExplanation        { margin: 0 0 1.7em 0; padding: 0.5em 1em; background: #FF6200; color: #222; }
+#errorExplanation h2     { font-size: 1.1em; color: #222; }
+#errorExplanation ul     { margin: 0 0 0 1.2em; list-style: square; }
+#errorExplanation ul li  { padding: 0; border: 0; }
\ No newline at end of file</diff>
      <filename>public/stylesheets/application.css</filename>
    </modified>
    <modified>
      <diff>@@ -21,4 +21,6 @@ private:
   language: DE
   timezone: Europe/Berlin
   gender: M
-  dob: 1982-01-10
\ No newline at end of file
+  dob_day: 10
+  dob_month: 01
+  dob_year: 1982
\ No newline at end of file</diff>
      <filename>test/fixtures/personas.yml</filename>
    </modified>
    <modified>
      <diff>@@ -44,7 +44,9 @@ class Test::Unit::TestCase
       :language =&gt; 'DE',
       :timezone =&gt; 'Europe/Berlin',
       :gender =&gt; 'M',
-      :dob =&gt; '1982-01-10' }
+      :dob_day =&gt; '10',
+      :dob_month =&gt; '01',
+      :dob_year =&gt; '1982' }
   end
   
   def valid_properties</diff>
      <filename>test/test_helper.rb</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>749d2452041e569ee9d10b3156f3845c3fbc8571</id>
    </parent>
  </parents>
  <author>
    <name>dbloete</name>
    <email>mail@dennisbloete.de</email>
  </author>
  <url>http://github.com/dbloete/masquerade/commit/f79964c5879c5460eeead55a865bfe4f6ab71d36</url>
  <id>f79964c5879c5460eeead55a865bfe4f6ab71d36</id>
  <committed-date>2008-09-08T09:38:17-07:00</committed-date>
  <authored-date>2008-09-08T09:38:17-07:00</authored-date>
  <message>Splitted date of birth to suit SReg specification.

Klaus Alexander Seistrup pointed out that the SReg spec says
about openid.sreg.dob:

&#187;The End User's date of birth as YYYY-MM-DD. Any values whose
representation uses fewer than the specified number of digits
should be zero-padded. The length of this value MUST always be
10. If the End User user does not want to reveal any particular
component of this value, it MUST be set to zero.
For instance, if a End User wants to specify that his date of
birth is in 1980, but not the month or day, the value returned
SHALL be &quot;1980-00-00&quot;.&#171;</message>
  <tree>efb188a03541a0174dd4f951add1c23ff8a982d8</tree>
  <committer>
    <name>dbloete</name>
    <email>mail@dennisbloete.de</email>
  </committer>
</commit>
