<!-- Copyright IBM Corp. 2007, 2008  All Rights Reserved. -->
 
 
 
 
var blogsDate={
init: function() {
this.Now=new Date();
this.Now_Mills=this.Now.getTime();
}
}
blogsDate.date={
MILLS_IN_DAY: 86400000,
Days: ["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"],
Month: ["Jan", "Feb", "Mär", "Apr", "Mai", "Juni", "Juli", "Aug", "Sep", "Okt", "Nov", "Dez"],
Yesterday: "Gestern ",
Today: "Heute ",
Tomorrow: "Morgen ",
delta: function (dateMillis) {
var todayMidnight=new Date();
todayMidnight.setHours(0);
todayMidnight.setMinutes(0);
todayMidnight.setSeconds(0);
todayMidnight.setMilliseconds(0);
var diff=todayMidnight.getTime() - dateMillis;
/* calculate the number of days away from _now_ the date is
* this uses the truncate function (we defined it) since floor() won't
* work with negative numbers */
var dayDelta=Math.ceil(diff / (blogsDate.date.MILLS_IN_DAY));
return dayDelta;
},
localize: function (dateMillis, onlydate) {
var serverDate=new Date();
serverDate.setTime(dateMillis);
var dayDelta=blogsDate.date.delta(dateMillis);
var resultTime="";
if (dayDelta <= 2 && dayDelta >= -2) {
if (dayDelta == 2) {
if(onlydate === undefined)
resultTime=blogsDate.date.Days[serverDate.getDay()] + " " + blogsDate.date.getLocalizedTime(serverDate);
else
resultTime=blogsDate.date.Days[serverDate.getDay()];
} else if(dayDelta == 1) {
if(onlydate === undefined)
resultTime=blogsDate.date.Yesterday + blogsDate.date.getLocalizedTime(serverDate);
else
resultTime=blogsDate.date.Yesterday;
} else if(dayDelta == 0) {
if(onlydate === undefined)
resultTime=blogsDate.date.Today + blogsDate.date.getLocalizedTime(serverDate);
else
resultTime=blogsDate.date.Today;
} else if(dayDelta == -1) {
resultTime=blogsDate.date.Tomorrow;
} else if(dayDelta == -2) {
resultTime=blogsDate.date.Days[serverDate.getDay()];
}
} else if (blogsDate.Now.getFullYear() == serverDate.getFullYear()) {
var mainLocale=dojo.locale.substring(0,2).toLowerCase();
var country='';
if (dojo.locale.length > 2) {
country=dojo.locale.substring(3,5).toLowerCase();
}
if(mainLocale == 'en' && (country == '' || country == 'us')){
resultTime=blogsDate.date.Month[serverDate.getMonth()] + " " + serverDate.getDate();
}else {
resultTime=blogsDate.date.getLocalizedDate(serverDate);
}
} else {
var mainLocale=dojo.locale.substring(0,2).toLowerCase();
var country='';
if (dojo.locale.length > 2) {
country=dojo.locale.substring(3,5).toLowerCase();
}
if(mainLocale == 'en' && (country == '' || country == 'us')){
resultTime=blogsDate.date.Month[serverDate.getMonth()] + " " + serverDate.getDate() + " " + serverDate.getFullYear();
}else {
resultTime=blogsDate.date.getLocalizedDate(serverDate);
}
}
return "<span title=\"" + resultTime + "\">" + resultTime + "</span>";
},
correctHoursAndMins: function(date) {
var hours=date.getHours();
var mins=date.getMinutes();
if (mins < 10) {
mins="0" + mins;
}
var resultTime="";
if (hours == 0) {
resultTime="12:" + mins + "am";
} else if (hours < 12) {
resultTime=hours + ":" + mins + "am";
} else if (hours < 13) {
resultTime=hours + ":" + mins + "pm";
} else {
resultTime=(hours - 12) + ":" + mins + "pm";
}
return resultTime;
},
getLocalizedTime: function(date) {
if (document.getElementById("TemplateVersion")) {
return dojo.date.locale.format(date, {formatLength:'short',selector:'time', locale: dojo.locale });
} else {
return dojo.date.format(date, {selector:'timeOnly',formatLength:'short', locale: dojo.locale });
}
},
getLocalizedDate: function(date) {
if (document.getElementById("TemplateVersion")) {
return dojo.date.locale.format(date, {formatLength:'medium',selector:'date', locale: dojo.locale });
} else {
return dojo.date.format(date, {selector:'dateOnly',formatLength:'medium', locale: dojo.locale });
}
}
}
blogsDate.init();
