// generates a renderer function to be used for textual date groups
Ext.util.Format.createTextDateRenderer = function(){
// create the cache of ranges to be reused
var today = new Date().clearTime(true);
var year = today.getFullYear();
var todayTime = today.getTime();
var yesterday = today.add('d', -1).getTime();
var tomorrow = today.add('d', 1).getTime();
var weekDays = today.add('d', 6).getTime();
var lastWeekDays = today.add('d', -6).getTime();
var weekAgo1 = today.add('d', -13).getTime();
var weekAgo2 = today.add('d', -20).getTime();
var weekAgo3 = today.add('d', -27).getTime();
var f = function(date){
if(!date) {
return '(No Date)';
}
var notime = date.clearTime(true).getTime();
if (notime == todayTime) {
return 'Today';
}
if(notime > todayTime){
if (notime == tomorrow) {
return 'Tomorrow';
}
if (notime <= weekDays) {
return date.format('l');
}
}else {
if(notime == yesterday) {
return 'Yesterday';
}
if(notime >= lastWeekDays) {
return 'Last ' + date.format('l');
}
}
return date.getFullYear() == year ? date.format('D m/d') : date.format('D m/d/Y');
};
f.date = today;
return f;
};