1 String.prototype.trim = function() {
2 return this.replace(/(^\s+|\s+$)/g, '');
5 String.prototype.repeat = function(count) {
7 for (var i = 0; i < count; i++) {
14 String.prototype.capitalize = function() {
15 return this.replace(/\w+/g,
17 return ( a.charAt(0).toUpperCase()
18 + a.substr(1).toLowerCase() );
22 String.prototype.decodeEntities = function() {
23 return this.replace(/&#(\d+);/g,
24 function(wholematch, parenmatch1) {
25 return String.fromCharCode(+parenmatch1);
29 String.prototype.asDate = function () {
31 var date = this.split("/");
33 newDate = new Date(date[2], date[1] - 1, date[0]);
35 date = this.split("-");
37 newDate = new Date(date[0], date[1] - 1, date[2]);
39 if (this.length == 8) {
40 newDate = new Date(this.substring(0, 4),
41 this.substring(4, 6) - 1,
42 this.substring(6, 8));
50 Date.prototype.sogoDayName = function() {
53 var day = this.getDay();
55 dayName = labels['a2_Sunday'];
56 } else if (day == 1) {
57 dayName = labels['a2_Monday'];
58 } else if (day == 2) {
59 dayName = labels['a2_Tuesday'];
60 } else if (day == 3) {
61 dayName = labels['a2_Wednesday'];
62 } else if (day == 4) {
63 dayName = labels['a2_Thursday'];
64 } else if (day == 5) {
65 dayName = labels['a2_Friday'];
66 } else if (day == 6) {
67 dayName = labels['a2_Saturday'];
73 Date.prototype.daysUpTo = function(otherDate) {
74 var days = new Array();
76 var day1 = this.getTime();
77 var day2 = otherDate.getTime();
79 var nbrDays = Math.floor((day2 - day1) / 86400000) + 1;
80 for (var i = 0; i < nbrDays; i++) {
81 var newDate = new Date();
82 newDate.setTime(day1 + (i * 86400000));
89 Date.prototype.getDayString = function() {
90 var newString = this.getYear() + 1900;
91 var month = '' + (this.getMonth() + 1);
92 if (month.length == 1)
95 var day = '' + this.getDate();
103 Date.prototype.getHourString = function() {
104 var newString = this.getHours() + '00';
105 if (newString.length == 3)
106 newString = '0' + newString;
111 Date.prototype.getDisplayHoursString = function() {
112 var hoursString = "" + this.getHours();
113 if (hoursString.length == 1)
114 hoursString = '0' + hoursString;
116 var minutesString = "" + this.getMinutes();
117 if (minutesString.length == 1)
118 minutesString = '0' + minutesString;
120 return hoursString + ":" + minutesString;
123 Date.prototype.stringWithSeparator = function(separator) {
124 var month = '' + (this.getMonth() + 1);
125 var day = '' + this.getDate();
126 if (month.length == 1)
131 if (separator == '-')
132 str = (this.getYear() + 1900) + '-' + month + '-' + day;
134 str = day + '/' + month + '/' + (this.getYear() + 1900);
139 Date.prototype.sogoFreeBusyStringWithSeparator = function(separator) {
140 return this.sogoDayName() + ", " + this.stringWithSeparator(separator);
143 Date.prototype.addDays = function(nbrDays) {
144 var milliSeconds = this.getTime();
145 milliSeconds += 86400000 * nbrDays;
146 this.setTime(milliSeconds);
149 Date.prototype.earlierDate = function(otherDate) {
150 var workDate = new Date();
151 workDate.setTime(otherDate.getTime());
152 workDate.setHours(0);
153 return ((this.getTime() < workDate.getTime())
157 Date.prototype.laterDate = function(otherDate) {
158 var workDate = new Date();
159 workDate.setTime(otherDate.getTime());
160 workDate.setHours(23);
161 workDate.setMinutes(59);
162 workDate.setSeconds(59);
163 workDate.setMilliseconds(999);
164 return ((this.getTime() < workDate.getTime())
168 Date.prototype.beginOfWeek = function() {
170 var dayNumber = this.getDay();
171 if (weekStartIsMonday) {
179 var beginOfWeek = new Date();
180 beginOfWeek.setTime(this.getTime());
181 beginOfWeek.addDays(beginNumber - dayNumber);
182 beginOfWeek.setHours(0);
183 beginOfWeek.setMinutes(0);
184 beginOfWeek.setSeconds(0);
185 beginOfWeek.setMilliseconds(0);
190 Date.prototype.endOfWeek = function() {
192 var dayNumber = this.getDay();
193 if (weekStartIsMonday) {
201 var endOfWeek = new Date();
202 endOfWeek.setTime(this.getTime());
203 endOfWeek.addDays(6 + beginNumber - dayNumber);
205 endOfWeek.setHours(23);
206 endOfWeek.setMinutes(59);
207 endOfWeek.setSeconds(59);
208 endOfWeek.setMilliseconds(999);