]> err.no Git - scalable-opengroupware.org/blob - UI/WebServerResources/JavascriptAPIExtensions.js
git-svn-id: http://svn.opengroupware.org/SOGo/inverse/trunk@1078 d1b88da0-ebda-0310...
[scalable-opengroupware.org] / UI / WebServerResources / JavascriptAPIExtensions.js
1 String.prototype.trim = function() {
2   return this.replace(/(^\s+|\s+$)/g, '');
3 }
4
5 String.prototype.repeat = function(count) {
6    var newString = "";
7    for (var i = 0; i < count; i++) {
8       newString += this;
9    }
10
11    return newString;
12 }
13
14 String.prototype.capitalize = function() {
15   return this.replace(/\w+/g,
16                       function(a) {
17                         return ( a.charAt(0).toUpperCase()
18                                  + a.substr(1).toLowerCase() );
19                       });
20 }
21
22 String.prototype.decodeEntities = function() {
23   return this.replace(/&#(\d+);/g,
24                       function(wholematch, parenmatch1) {
25                         return String.fromCharCode(+parenmatch1);
26                       });
27 }
28
29 String.prototype.asDate = function () {
30   var newDate;
31   var date = this.split("/");
32   if (date.length == 3)
33     newDate = new Date(date[2], date[1] - 1, date[0]);
34   else {
35     date = this.split("-");
36     newDate = new Date(date[0], date[1] - 1, date[2]);
37   }
38
39   return newDate;  
40 }
41
42 Date.prototype.sogoDayName = function() {
43   var dayName = "";
44
45   var day = this.getDay();
46   if (day == 0) {
47     dayName = labels['a2_Sunday'];
48   } else if (day == 1) {
49     dayName = labels['a2_Monday'];
50   } else if (day == 2) {
51     dayName = labels['a2_Tuesday'];
52   } else if (day == 3) {
53     dayName = labels['a2_Wednesday'];
54   } else if (day == 4) {
55     dayName = labels['a2_Thursday'];
56   } else if (day == 5) {
57     dayName = labels['a2_Friday'];
58   } else if (day == 6) {
59     dayName = labels['a2_Saturday'];
60   }
61
62   return dayName;
63 }
64
65 Date.prototype.daysUpTo = function(otherDate) {
66   var days = new Array();
67   var day1 = this.getTime();
68   var day2 = otherDate.getTime();
69
70   var nbrDays = Math.floor((day2 - day1) / 86400000) + 1;
71   for (var i = 0; i < nbrDays; i++) {
72     var newDate = new Date();
73     newDate.setTime(day1 + (i * 86400000));
74     days.push(newDate);
75   }
76
77   return days;
78 }
79
80 Date.prototype.stringWithSeparator = function(separator) {
81   var month = '' + (this.getMonth() + 1);
82   var day = '' + this.getDate();
83   if (month.length == 1)
84     month = '0' + month;
85   if (day.length == 1)
86     day = '0' + day;
87
88   if (separator == '-')
89     str = (this.getYear() + 1900) + '-' + month + '-' + day;
90   else
91     str = day + '/' + month + '/' + (this.getYear() + 1900);
92
93   return str;
94 }
95
96 Date.prototype.sogoFreeBusyStringWithSeparator = function(separator) {
97   return this.sogoDayName() + ", " + this.stringWithSeparator(separator);
98 }