Index: extensions/pLoader/trunk/res/photo_properties_wdr.pl
===================================================================
--- extensions/pLoader/trunk/res/photo_properties_wdr.pl	(revision 4476)
+++ extensions/pLoader/trunk/res/photo_properties_wdr.pl	(revision 4477)
@@ -17,5 +17,5 @@
 use Wx qw( wxVERTICAL wxHORIZONTAL wxALL wxLEFT wxRIGHT wxTOP wxBOTTOM wxCENTRE wxGROW );
 use Wx qw( wxALIGN_RIGHT wxALIGN_BOTTOM wxALIGN_CENTER wxALIGN_CENTER_VERTICAL wxALIGN_CENTER_HORIZONTAL );
-use Wx qw( wxTE_MULTILINE );
+use Wx qw( wxTE_MULTILINE wxDP_DROPDOWN );
 
 # Bitmap functions
@@ -67,5 +67,5 @@
     $item2->AddWindow( $item9, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM, 5 );
 
-    my( $item10 ) = Wx::TextCtrl->new( $parent, $main::PHOTO_PROPERTIES_CREATE_DATE, "", wxDefaultPosition, [200,-1], 0 );
+    my( $item10 ) = Wx::DatePickerCtrl->new( $parent, $main::PHOTO_PROPERTIES_CREATE_DATE, Wx::DateTime->new(), wxDefaultPosition, [200,-1], wxDP_DROPDOWN );
     $item2->AddWindow( $item10, 0, wxALIGN_CENTER_VERTICAL, 5 );
 
Index: extensions/pLoader/trunk/src/Uploader/GUI/DlgCommon.pm
===================================================================
--- extensions/pLoader/trunk/src/Uploader/GUI/DlgCommon.pm	(revision 4476)
+++ extensions/pLoader/trunk/src/Uploader/GUI/DlgCommon.pm	(revision 4477)
@@ -1,4 +1,5 @@
 package Uploader::GUI::DlgCommon;
 use strict;
+use Wx::Calendar;
 
 use base qw/
@@ -19,4 +20,5 @@
 	    'Wx::TextCtrl' => sub { my ( $ctrl ) = @_; Wx::Event::EVT_TEXT( $ctrl, $ctrl, sub { $self->OnTextCtrl(@_) } ); },
 	    'Wx::Choice' => sub { my ( $ctrl ) = @_; Wx::Event::EVT_CHOICE( $ctrl, $ctrl, sub { $self->OnChoice(@_) } ); },
+	    'Wx::DatePickerCtrl' => sub { my ( $ctrl ) = @_; Wx::Event::EVT_DATE_CHANGED( $ctrl, $ctrl, sub { $self->OnDatePicker(@_) } ); },
 	};
 	
@@ -63,8 +65,31 @@
 }
 
+sub OnDatePicker {
+    my ( $self, $ctrl, $event ) = @_;
+	
+    my $id = $ctrl->GetId;
+
+    # change the property value
+	$self->properties->{$id}->{value}->(
+        $event->GetDate->FormatISODate
+    ) if exists $self->properties->{$id}->{value};
+    # exec the callback
+    $self->properties->{$id}->{frame_callback}->() if exists
+        $self->properties->{$id}->{frame_callback};	
+	
+}
+
 
 my $change_value = {
     'Wx::TextCtrl' => sub { my ($ctrl, $value ) = @_; $ctrl->ChangeValue($value)},
     'Wx::CheckBox' => sub { my ($ctrl, $value ) = @_; $ctrl->SetValue($value)},
+    'Wx::DatePickerCtrl' => sub { my ($ctrl, $value ) = @_;
+                                  my $date = Wx::DateTime->new;	
+                                  my ($yyyy, $mm, $dd, $hh, $mi, $ss ) = split(/[:\/\\\-\.\s]/, $value);
+								  $date->ParseDate(
+								      sprintf("%s/%s/%s", $yyyy, $mm, $dd)
+								  );
+	                              $ctrl->SetValue($date);
+	                            },
 };	
 
@@ -74,5 +99,4 @@
 	map {
         my $ctrl =$self->FindWindow($_);
-        #printf("ctrl %s : %s\n", $_, $ctrl);		
         if(defined $ctrl){
  	        # checkbox, static text
@@ -141,15 +165,11 @@
         if(defined $ctrl){
 		# checkbox, static text
+            $self->properties->{$_}->{value}->(
+                $ctrl->GetValue()
+		    ) if exists $self->properties->{$_}->{value};
 
-        $self->properties->{$_}->{value}->(
-            $ctrl->GetValue()
-		) if exists $self->properties->{$_}->{value};
-
-        $self->properties->{$_}->{selection}->(
-		    $ctrl->GetSelection()			
-		) if exists $self->properties->{$_}->{selection};
-		
-		printf("selection %s\n", $ctrl->GetSelection())if exists $self->properties->{$_}->{selection};
-		
+            $self->properties->{$_}->{selection}->(
+		        $ctrl->GetSelection()			
+		    ) if exists $self->properties->{$_}->{selection};
 		}
     }
Index: extensions/pLoader/trunk/src/Uploader/GUI/wxPhotoProperties.pm
===================================================================
--- extensions/pLoader/trunk/src/Uploader/GUI/wxPhotoProperties.pm	(revision 4476)
+++ extensions/pLoader/trunk/src/Uploader/GUI/wxPhotoProperties.pm	(revision 4477)
@@ -23,4 +23,5 @@
              wxDefaultSize
              wxDefaultPosition
+			 wxTAB_TRAVERSAL 
              wxID_CANCEL
              wxID_OK
@@ -43,5 +44,5 @@
 
 #    my $self = $class->SUPER::new( $params->{parentwnd}, -1, wxDefaultPosition, [600, 350]);
-    my $self = $class->SUPER::new( $params->{parentwnd}, -1, wxDefaultPosition, wxDefaultSize);
+    my $self = $class->SUPER::new( $params->{parentwnd}, -1, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
 	#$self->SetMinSize([600, 350]);
     # load controls
Index: extensions/pLoader/trunk/src/Uploader/Image.pm
===================================================================
--- extensions/pLoader/trunk/src/Uploader/Image.pm	(revision 4476)
+++ extensions/pLoader/trunk/src/Uploader/Image.pm	(revision 4477)
@@ -45,4 +45,5 @@
 sub Init {
     my ( $self ) = @_;
+
 }
 
@@ -56,9 +57,13 @@
 
 sub create_date {
-    my ( $self ) = @_;
+    my ( $self, $date ) = @_;
     
     my $exif = $self->exif_metadata ;
-    
-    $exif->{CreateDate};	
+   
+    $self->{-create_date} ||= $exif->{CreateDate};
+	
+    $self->{-create_date} = $date if defined $date;
+
+	$self->{-create_date};
 }
 
