1 String.prototype.trim = function() {
2 return this.replace(/(^\s+|\s+$)/g, '');
5 String.prototype.formatted = function() {
8 for (var i = 0; i < arguments.length; i++)
9 newString = newString.replace("%{" + i + "}", arguments[i], "g");
14 String.prototype.repeat = function(count) {
16 for (var i = 0; i < count; i++) {
23 String.prototype.capitalize = function() {
24 return this.replace(/\w+/g,
26 return ( a.charAt(0).toUpperCase()
27 + a.substr(1).toLowerCase() );
31 String.prototype.decodeEntities = function() {
32 return this.replace(/&#(\d+);/g,
33 function(wholematch, parenmatch1) {
34 return String.fromCharCode(+parenmatch1);
38 String.prototype.asDate = function () {
40 var date = this.split("/");
42 newDate = new Date(date[2], date[1] - 1, date[0]);
44 date = this.split("-");
46 newDate = new Date(date[0], date[1] - 1, date[2]);
48 if (this.length == 8) {
49 newDate = new Date(this.substring(0, 4),
50 this.substring(4, 6) - 1,
51 this.substring(6, 8));
59 Date.prototype.sogoDayName = function() {
62 var day = this.getDay();
64 dayName = labels['a2_Sunday'];
65 } else if (day == 1) {
66 dayName = labels['a2_Monday'];
67 } else if (day == 2) {
68 dayName = labels['a2_Tuesday'];
69 } else if (day == 3) {
70 dayName = labels['a2_Wednesday'];
71 } else if (day == 4) {
72 dayName = labels['a2_Thursday'];
73 } else if (day == 5) {
74 dayName = labels['a2_Friday'];
75 } else if (day == 6) {
76 dayName = labels['a2_Saturday'];
82 Date.prototype.daysUpTo = function(otherDate) {
83 var days = new Array();
85 var day1 = this.getTime();
86 var day2 = otherDate.getTime();
88 var nbrDays = Math.floor((day2 - day1) / 86400000) + 1;
89 for (var i = 0; i < nbrDays; i++) {
90 var newDate = new Date();
91 newDate.setTime(day1 + (i * 86400000));
98 Date.prototype.getDayString = function() {
99 var newString = this.getYear();
100 if (newString < 1000) newString += 1900;
101 var month = '' + (this.getMonth() + 1);
102 if (month.length == 1)
105 var day = '' + this.getDate();
113 Date.prototype.getHourString = function() {
114 var newString = this.getHours() + '00';
115 if (newString.length == 3)
116 newString = '0' + newString;
121 Date.prototype.getDisplayHoursString = function() {
122 var hoursString = "" + this.getHours();
123 if (hoursString.length == 1)
124 hoursString = '0' + hoursString;
126 var minutesString = "" + this.getMinutes();
127 if (minutesString.length == 1)
128 minutesString = '0' + minutesString;
130 return hoursString + ":" + minutesString;
133 Date.prototype.stringWithSeparator = function(separator) {
134 var month = '' + (this.getMonth() + 1);
135 var day = '' + this.getDate();
136 var year = this.getYear();
138 year = '' + (year + 1900);
139 if (month.length == 1)
144 if (separator == '-')
145 str = year + '-' + month + '-' + day;
147 str = day + '/' + month + '/' + year;
152 Date.prototype.sogoFreeBusyStringWithSeparator = function(separator) {
153 return this.sogoDayName() + ", " + this.stringWithSeparator(separator);
156 Date.prototype.addDays = function(nbrDays) {
157 var milliSeconds = this.getTime();
158 milliSeconds += 86400000 * nbrDays;
159 this.setTime(milliSeconds);
162 Date.prototype.earlierDate = function(otherDate) {
163 var workDate = new Date();
164 workDate.setTime(otherDate.getTime());
165 workDate.setHours(0);
166 return ((this.getTime() < workDate.getTime())
170 Date.prototype.laterDate = function(otherDate) {
171 var workDate = new Date();
172 workDate.setTime(otherDate.getTime());
173 workDate.setHours(23);
174 workDate.setMinutes(59);
175 workDate.setSeconds(59);
176 workDate.setMilliseconds(999);
177 return ((this.getTime() < workDate.getTime())
181 Date.prototype.beginOfWeek = function() {
183 var dayNumber = this.getDay();
184 if (weekStartIsMonday) {
192 var beginOfWeek = new Date();
193 beginOfWeek.setTime(this.getTime());
194 beginOfWeek.addDays(beginNumber - dayNumber);
195 beginOfWeek.setHours(0);
196 beginOfWeek.setMinutes(0);
197 beginOfWeek.setSeconds(0);
198 beginOfWeek.setMilliseconds(0);
203 Date.prototype.endOfWeek = function() {
205 var dayNumber = this.getDay();
206 if (weekStartIsMonday) {
214 var endOfWeek = new Date();
215 endOfWeek.setTime(this.getTime());
216 endOfWeek.addDays(6 + beginNumber - dayNumber);
218 endOfWeek.setHours(23);
219 endOfWeek.setMinutes(59);
220 endOfWeek.setSeconds(59);
221 endOfWeek.setMilliseconds(999);