diff --git a/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/gui/MessagesStepBean.java b/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/gui/MessagesStepBean.java
index 108fe172779e6b5bb519b173359c4c2602ef6cc9..a44c2b9ba2bebcfacdadaabad700e2ed79c9dd01 100644
--- a/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/gui/MessagesStepBean.java
+++ b/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/gui/MessagesStepBean.java
@@ -2,7 +2,10 @@ package net.ihe.gazelle.proxy.gui;
 
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Calendar;
 import java.util.Collections;
+import java.util.Date;
+import java.util.GregorianCalendar;
 import java.util.List;
 import java.util.Map;
 
@@ -32,11 +35,15 @@ import org.jboss.seam.annotations.In;
 import org.jboss.seam.annotations.Name;
 import org.jboss.seam.annotations.Scope;
 import org.jboss.seam.faces.Redirect;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 @Name("messagesStepBean")
 @Scope(ScopeType.PAGE)
 public class MessagesStepBean {
 
+	private static Logger log = LoggerFactory.getLogger(MessagesStepBean.class);
+
 	private transient HibernateMessageDataModel<AbstractMessage> messageDataModel;
 	private MessageFilterStep messageFilterStep;
 
@@ -198,5 +205,157 @@ public class MessagesStepBean {
 	public void setFilterPathReceiver(boolean filterPathReceiver) {
 		messageFilterStep.setFilterPathReceiver(filterPathReceiver);
 	}
+	
+	public boolean isFilterPersoDate() {
+		return messageFilterStep.isFilterPersoDate();
+	}
+
+	public void setFilterPersoDate(boolean filterPersoDate) {
+		messageFilterStep.setFilterPersoDate(filterPersoDate);
+	}
+
+	public Date getStartDate() {
+		return messageFilterStep.startDate;
+	}
+
+	public Date getEndDate() {
+		return messageFilterStep.endDate;
+	}
+
+	public void setStartDate(Date startDate) {
+		messageFilterStep.setStartDate(startDate);
+	}
+
+	public void setEndDate(Date endDate) {
+		messageFilterStep.setEndDate(endDate);
+	}
 
+	public void dateSelection(String value) {
+		if (value.equals("1")) {
+			setFilterPersoDate(false);
+		} else {
+			setFilterDates(false);
+		}
+	}
+
+	private String currentSelectDate;
+
+	public String getCurrentSelectDate() {
+		return currentSelectDate;
+	}
+
+	public void setCurrentSelectDate(String currentSelectDate) {
+		this.currentSelectDate = currentSelectDate;
+	}
+
+	public void selectDate(String date) {
+		if (!(date.equals("--")) && !(date.isEmpty()) && date != null) {
+			Date startDate, endDate = null;
+			startDate = new Date();
+			Calendar cal = new GregorianCalendar();
+
+			if (date.equals("today")) {
+				cal.set(Calendar.HOUR_OF_DAY, 0);
+				cal.set(Calendar.MINUTE, 0);
+				cal.set(Calendar.SECOND, 0);
+				cal.set(Calendar.MILLISECOND, 0);
+			}
+			if (date.equals("yesterday")) {
+				if (cal.get(Calendar.DAY_OF_YEAR) == 1) {
+					cal.set(Calendar.YEAR, (cal.get(Calendar.YEAR) - 1));
+					cal.set(Calendar.MONTH, cal.get(Calendar.DECEMBER));
+					cal.set(Calendar.DAY_OF_MONTH, 31);
+				} else {
+					cal.set(Calendar.DAY_OF_YEAR, (cal.get(Calendar.DAY_OF_YEAR) - 1));
+				}
+				cal.set(Calendar.HOUR_OF_DAY, 0);
+				cal.set(Calendar.MINUTE, 0);
+				cal.set(Calendar.SECOND, 0);
+				cal.set(Calendar.MILLISECOND, 0);
+			}
+			if (date.equals("this week")) {
+				if (cal.get(Calendar.DAY_OF_YEAR) < 7) {
+					cal.set(Calendar.YEAR, (cal.get(Calendar.YEAR) - 1));
+					cal.set(Calendar.MONTH, cal.get(Calendar.DECEMBER));
+					cal.set(Calendar.DAY_OF_MONTH, 31 - (7 - cal.get(Calendar.DAY_OF_YEAR)));
+				}
+				cal.set(Calendar.DAY_OF_WEEK, 2);
+				cal.set(Calendar.HOUR_OF_DAY, 0);
+				cal.set(Calendar.MINUTE, 0);
+				cal.set(Calendar.SECOND, 0);
+				cal.set(Calendar.MILLISECOND, 0);
+			}
+			if (date.equals("this month")) {
+				cal.set(Calendar.DAY_OF_MONTH, 1);
+				cal.set(Calendar.HOUR_OF_DAY, 0);
+				cal.set(Calendar.MINUTE, 0);
+				cal.set(Calendar.SECOND, 0);
+				cal.set(Calendar.MILLISECOND, 0);
+			}
+			if (date.equals("last week")) {
+				if (cal.get(Calendar.WEEK_OF_YEAR) == 1) {
+					cal.set(Calendar.YEAR, (cal.get(Calendar.YEAR) - 1));
+					cal.set(Calendar.WEEK_OF_YEAR, 52);
+				} else {
+					cal.set(Calendar.WEEK_OF_YEAR, (cal.get(Calendar.WEEK_OF_YEAR) - 1));
+				}
+				cal.set(Calendar.DAY_OF_WEEK, 2);
+				cal.set(Calendar.HOUR_OF_DAY, 0);
+				cal.set(Calendar.MINUTE, 0);
+				cal.set(Calendar.SECOND, 0);
+				cal.set(Calendar.MILLISECOND, 0);
+			}
+			if (date.equals("last month")) {
+				if (cal.get(Calendar.MONTH) == 0) {
+					cal.set(Calendar.YEAR, (cal.get(Calendar.YEAR) - 1));
+					cal.set(Calendar.MONTH, cal.get(Calendar.DECEMBER));
+				} else {
+					cal.set(Calendar.MONTH, (cal.get(Calendar.MONTH) - 1));
+				}
+				cal.set(Calendar.DAY_OF_MONTH, 1);
+				cal.set(Calendar.HOUR_OF_DAY, 0);
+				cal.set(Calendar.MINUTE, 0);
+				cal.set(Calendar.SECOND, 0);
+				cal.set(Calendar.MILLISECOND, 0);
+			}
+			if (date.equals("last hour")) {
+				cal.set(Calendar.HOUR, (cal.get(Calendar.HOUR) - 1));
+			}
+			startDate = cal.getTime();
+			endDate = new Date();
+
+			cal = new GregorianCalendar();
+			if (date.equals("yesterday")) {
+				cal.set(Calendar.HOUR_OF_DAY, 0);
+				cal.set(Calendar.MINUTE, 0);
+				cal.set(Calendar.SECOND, 0);
+				cal.set(Calendar.MILLISECOND, 0);
+				endDate = cal.getTime();
+			}
+			if (date.equals("last week")) {
+				cal.set(Calendar.WEEK_OF_YEAR, cal.get(Calendar.WEEK_OF_YEAR));
+				cal.set(Calendar.DAY_OF_WEEK, 2);
+				cal.set(Calendar.HOUR_OF_DAY, 0);
+				cal.set(Calendar.MINUTE, 0);
+				cal.set(Calendar.SECOND, 0);
+				cal.set(Calendar.MILLISECOND, 0);
+				endDate = cal.getTime();
+			}
+			if (date.equals("last month")) {
+				cal.set(Calendar.MONTH, cal.get(Calendar.MONTH));
+				cal.set(Calendar.DAY_OF_MONTH, 1);
+				cal.set(Calendar.HOUR_OF_DAY, 0);
+				cal.set(Calendar.MINUTE, 0);
+				cal.set(Calendar.SECOND, 0);
+				cal.set(Calendar.MILLISECOND, 0);
+				endDate = cal.getTime();
+			}
+			messageFilterStep.setStartDate(startDate);
+			messageFilterStep.setEndDate(endDate);
+
+		} else {
+			log.error("Date problem");
+		}
+
+	}
 }