summaryrefslogtreecommitdiff
path: root/frontend/beta/js/Clipperz/PM/Date.js
Side-by-side diff
Diffstat (limited to 'frontend/beta/js/Clipperz/PM/Date.js') (more/less context) (ignore whitespace changes)
-rw-r--r--frontend/beta/js/Clipperz/PM/Date.js193
1 files changed, 193 insertions, 0 deletions
diff --git a/frontend/beta/js/Clipperz/PM/Date.js b/frontend/beta/js/Clipperz/PM/Date.js
new file mode 100644
index 0000000..5e21340
--- a/dev/null
+++ b/frontend/beta/js/Clipperz/PM/Date.js
@@ -0,0 +1,193 @@
+/*
+
+Copyright 2008-2011 Clipperz Srl
+
+This file is part of Clipperz's Javascript Crypto Library.
+Javascript Crypto Library provides web developers with an extensive
+and efficient set of cryptographic functions. The library aims to
+obtain maximum execution speed while preserving modularity and
+reusability.
+For further information about its features and functionalities please
+refer to http://www.clipperz.com
+
+* Javascript Crypto Library is free software: you can redistribute
+ it and/or modify it under the terms of the GNU Affero General Public
+ License as published by the Free Software Foundation, either version
+ 3 of the License, or (at your option) any later version.
+
+* Javascript Crypto Library is distributed in the hope that it will
+ be useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Affero General Public License for more details.
+
+* You should have received a copy of the GNU Affero General Public
+ License along with Javascript Crypto Library. If not, see
+ <http://www.gnu.org/licenses/>.
+
+*/
+
+if (typeof(Clipperz) == 'undefined') { Clipperz = {}; }
+if (typeof(Clipperz.PM) == 'undefined') { Clipperz.PM = {}; }
+if (typeof(Clipperz.PM.Date) == 'undefined') { Clipperz.PM.Date = {}; }
+
+Clipperz.PM.Date.VERSION = "0.1";
+Clipperz.PM.Date.NAME = "Clipperz.PM.Date";
+
+MochiKit.Base.update(Clipperz.PM.Date, {
+
+ '__repr__': function () {
+ return "[" + this.NAME + " " + this.VERSION + "]";
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'toString': function () {
+ return this.__repr__();
+ },
+
+ //-------------------------------------------------------------------------
+
+ 'locale': function() {
+ return {
+ 'amDesignation': Clipperz.PM.Strings['calendarStrings']['amDesignation'],
+ 'pmDesignation': Clipperz.PM.Strings['calendarStrings']['pmDesignation'],
+ 'days': Clipperz.PM.Strings['calendarStrings']['days'],
+ 'shortDays': Clipperz.PM.Strings['calendarStrings']['shortDays'],
+ 'shortMonths': Clipperz.PM.Strings['calendarStrings']['shortMonths'],
+ 'months': Clipperz.PM.Strings['calendarStrings']['months']
+ }
+ },
+
+ //=========================================================================
+/*
+ 'formatDateWithPHPLikeTemplate': function(aDate, aTemplate) {
+ return Clipperz.Date.formatDateWithPHPLikeTemplateAndLocale(aDate, aTemplate, Clipperz.PM.Date.locale());
+ },
+
+ 'parseDateWithPHPLikeTemplate': function(aDate, aTemplate) {
+ return Clipperz.Date.parseDateWithPHPTemplateAndLocale(aDate, aTemplate, Clipperz.PM.Date.locale());
+ },
+
+ //=========================================================================
+
+ 'formatDateWithJavaLikeTemplate': function(aDate, aTemplate) {
+ return Clipperz.Date.formatDateWithJavaLikeTemplateAndLocale(aDate, aTemplate, Clipperz.PM.Date.locale());
+ },
+
+ 'parseDateWithJavaLikeTemplate': function(aDate, aTemplate) {
+ return Clipperz.Date.parseDateWithJavaLikeTemplateAndLocale(aDate, aTemplate, Clipperz.PM.Date.locale());
+ },
+*/
+ //=========================================================================
+
+ 'formatDateWithTemplate': function(aDate, aTemplate) {
+ var result;
+
+ if (aDate == null) {
+ result = ""
+ } else {
+ result = Clipperz.Date.formatDateWithPHPLikeTemplateAndLocale(aDate, aTemplate, Clipperz.PM.Date.locale());
+ };
+
+ return result;
+ },
+
+ 'parseDateWithTemplate': function(aValue, aTemplate) {
+ return Clipperz.Date.parseDateWithPHPTemplateAndLocale(aValue, aTemplate, Clipperz.PM.Date.locale());
+ },
+
+ //=========================================================================
+
+ 'formatDateWithUTCFormat': function(aDate) {
+ return Clipperz.Date.formatDateWithUTCFormatAndLocale(aDate, Clipperz.PM.Date.locale());
+ },
+
+ 'parseDateWithUTCFormat': function(aValue) {
+ var result;
+
+ if (aValue == null) {
+ result = null;
+ } else {
+ result = Clipperz.Date.parseDateWithUTCFormatAndLocale(aValue, Clipperz.PM.Date.locale());
+ }
+
+ return result;
+ },
+
+ //=========================================================================
+
+ 'getElapsedTimeDescription': function(aDate) {
+ var result;
+
+ result = ""
+
+ if (aDate != null) {
+ var now;
+ var elapsedTime;
+
+ var millisencondsInAMinute;
+ var millisencondsInAnHour;
+ var millisencondsInADay;
+ var millisencondsInAWeek;
+ var millisencondsInAMonth;
+
+ now = new Date();
+ elapsedTime = now.getTime() - aDate.getTime();
+
+ millisencondsInAMinute = 60 * 1000;
+ millisencondsInAnHour = millisencondsInAMinute * 60;
+ millisencondsInADay = millisencondsInAnHour * 24;
+ millisencondsInAWeek = millisencondsInADay * 7;
+ millisencondsInAMonth = millisencondsInAWeek * 5;
+
+ if ((elapsedTime / millisencondsInAMonth) > 1) {
+ result = Clipperz.PM.Strings['elapsedTimeDescriptions']['MORE_THAN_A_MONTH_AGO'];
+ } else if ((elapsedTime / millisencondsInAWeek) > 1) {
+ var elapsedWeeks;
+
+ elapsedWeeks = Math.floor((elapsedTime / millisencondsInAWeek));
+ if (elapsedWeeks == 1) {
+ result = Clipperz.PM.Strings['elapsedTimeDescriptions']['MORE_THAN_A_WEEK_AGO'];
+ } else {
+ result = Clipprez.PM.Strings['elapsedTimeDescriptions']['MORE_THAN_*_WEEKS_AGO'].replace(/__elapsed__/, elapsedWeeks);
+ }
+ } else if ((elapsedTime / millisencondsInADay) > 1) {
+ var elapsedDays;
+
+ elapsedDays = Math.floor((elapsedTime / millisencondsInADay));
+ if (elapsedDays == 1) {
+ result = Clipperz.PM.Strings['elapsedTimeDescriptions']['YESTERDAY'];
+ } else {
+ result = Clipperz.PM.Strings['elapsedTimeDescriptions']['*_DAYS_AGO'].replace(/__elapsed__/, elapsedDays);
+ }
+ } else if ((elapsedTime / millisencondsInAnHour) > 1) {
+ var elapsedHours;
+
+ elapsedHours = Math.floor((elapsedTime / millisencondsInAnHour));
+ if (elapsedHours == 1) {
+ result = Clipperz.PM.Strings['elapsedTimeDescriptions']['ABOUT_AN_HOUR_AGO'];
+ } else {
+ result = Clipperz.PM.Strings['elapsedTimeDescriptions']['*_HOURS_AGO'].replace(/__elapsed__/, elapsedHours);
+ }
+ } else {
+ var elapsed10Minutes;
+
+ elapsed10Minutes = (Math.floor((elapsedTime / millisencondsInAMinute) / 10)) * 10;
+ if (elapsed10Minutes == 0) {
+ result = Clipperz.PM.Strings['elapsedTimeDescriptions']['JUST_A_FEW_MINUTES_AGO'];
+ } else {
+ result = Clipperz.PM.Strings['elapsedTimeDescriptions']['ABOUT_*_MINUTES_AGO'].replace(/__elapsed__/, elapsed10Minutes+"");
+ }
+ }
+ }
+
+ return result;
+ },
+
+ //-------------------------------------------------------------------------
+
+ //-------------------------------------------------------------------------
+ __syntaxFix__: "syntax fix"
+
+});
+