calendar_date_select_rails3 1.16.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. data/.gitignore +3 -0
  2. data/History.txt +277 -0
  3. data/MIT-LICENSE +20 -0
  4. data/Manifest.txt +42 -0
  5. data/README.txt +17 -0
  6. data/Rakefile +37 -0
  7. data/VERSION +1 -0
  8. data/calendar_date_select_rails3.gemspec +94 -0
  9. data/js_test/functional/.tmp_cds_test.html +306 -0
  10. data/js_test/functional/cds_test.html +376 -0
  11. data/js_test/functional/format_iso_date_test.html +52 -0
  12. data/js_test/prototype.js +4184 -0
  13. data/js_test/test.css +40 -0
  14. data/js_test/unit/cds_helper_methods.html +46 -0
  15. data/js_test/unittest.js +564 -0
  16. data/lib/calendar_date_select.rb +47 -0
  17. data/lib/calendar_date_select/calendar_date_select.rb +122 -0
  18. data/lib/calendar_date_select/form_helpers.rb +237 -0
  19. data/lib/calendar_date_select/includes_helper.rb +29 -0
  20. data/public/blank_iframe.html +2 -0
  21. data/public/images/calendar_date_select/calendar.gif +0 -0
  22. data/public/javascripts/calendar_date_select/calendar_date_select.js +459 -0
  23. data/public/javascripts/calendar_date_select/format_american.js +35 -0
  24. data/public/javascripts/calendar_date_select/format_danish.js +31 -0
  25. data/public/javascripts/calendar_date_select/format_db.js +27 -0
  26. data/public/javascripts/calendar_date_select/format_euro_24hr.js +7 -0
  27. data/public/javascripts/calendar_date_select/format_euro_24hr_ymd.js +7 -0
  28. data/public/javascripts/calendar_date_select/format_finnish.js +32 -0
  29. data/public/javascripts/calendar_date_select/format_hyphen_ampm.js +37 -0
  30. data/public/javascripts/calendar_date_select/format_iso_date.js +29 -0
  31. data/public/javascripts/calendar_date_select/format_italian.js +24 -0
  32. data/public/javascripts/calendar_date_select/locale/ar.js +10 -0
  33. data/public/javascripts/calendar_date_select/locale/da.js +11 -0
  34. data/public/javascripts/calendar_date_select/locale/de.js +11 -0
  35. data/public/javascripts/calendar_date_select/locale/es.js +11 -0
  36. data/public/javascripts/calendar_date_select/locale/fi.js +10 -0
  37. data/public/javascripts/calendar_date_select/locale/fr.js +11 -0
  38. data/public/javascripts/calendar_date_select/locale/it.js +9 -0
  39. data/public/javascripts/calendar_date_select/locale/nl.js +11 -0
  40. data/public/javascripts/calendar_date_select/locale/pl.js +11 -0
  41. data/public/javascripts/calendar_date_select/locale/pt.js +11 -0
  42. data/public/javascripts/calendar_date_select/locale/ru.js +10 -0
  43. data/public/javascripts/calendar_date_select/locale/sl.js +11 -0
  44. data/public/stylesheets/calendar_date_select/blue.css +130 -0
  45. data/public/stylesheets/calendar_date_select/default.css +135 -0
  46. data/public/stylesheets/calendar_date_select/green.css +142 -0
  47. data/public/stylesheets/calendar_date_select/plain.css +128 -0
  48. data/public/stylesheets/calendar_date_select/red.css +135 -0
  49. data/public/stylesheets/calendar_date_select/silver.css +133 -0
  50. data/spec/calendar_date_select/calendar_date_select_spec.rb +14 -0
  51. data/spec/calendar_date_select/form_helpers_spec.rb +189 -0
  52. data/spec/calendar_date_select/includes_helper_spec.rb +46 -0
  53. data/spec/spec_helper.rb +26 -0
  54. metadata +106 -0
@@ -0,0 +1,35 @@
1
+ // American Format: 12/31/2000 5:00 pm
2
+ // Thanks, Wes Hays
3
+ Date.prototype.toFormattedString = function(include_time){
4
+ str = Date.padded2(this.getMonth() + 1) + '/' +Date.padded2(this.getDate()) + '/' + this.getFullYear();
5
+
6
+ if (include_time) { hour=this.getHours(); str += " " + this.getAMPMHour() + ":" + this.getPaddedMinutes() + " " + this.getAMPM() }
7
+ return str;
8
+ }
9
+
10
+ Date.parseFormattedString = function (string) {
11
+ // Test these with and without the time
12
+ // 11/11/1111 12pm
13
+ // 11/11/1111 1pm
14
+ // 1/11/1111 10:10pm
15
+ // 11/1/1111 01pm
16
+ // 1/1/1111 01:11pm
17
+ // 1/1/1111 1:11pm
18
+ var regexp = "(([0-1]?[0-9])\/[0-3]?[0-9]\/[0-9]{4}) *([0-9]{1,2}(:[0-9]{2})? *(am|pm))?";
19
+ string = string.strip();
20
+ var d = string.match(new RegExp(regexp, "i"));
21
+ if (d==null) {
22
+ return Date.parse(string); // Give javascript a chance to parse it.
23
+ }
24
+
25
+ mdy = d[1].split('/');
26
+ hrs = 0;
27
+ mts = 0;
28
+ if(d[3] != null && d[3].strip() != "") {
29
+ hrs = parseInt(d[3].split('')[0], 10);
30
+ if(d[5].toLowerCase() == 'pm') { hrs += 12; } // Add 12 more to hrs
31
+ mts = d[4].split(':')[1];
32
+ }
33
+
34
+ return new Date(mdy[2], parseInt(mdy[0], 10)-1, mdy[1], hrs, mts, 0);
35
+ }
@@ -0,0 +1,31 @@
1
+ // Formats date and time as "2000/01/20 17:00"
2
+ Date.prototype.toFormattedString = function(include_time){
3
+ str = Date.padded2(this.getDate()) + "/" + Date.padded2(this.getMonth() + 1) + "/" + this.getFullYear();
4
+
5
+ if (include_time) {
6
+ str += " " + this.getHours() + ":" + this.getPaddedMinutes();
7
+ }
8
+ return str;
9
+ }
10
+
11
+ // Parses date and time as "2000/01/20 17:00"
12
+ Date.parseFormattedString = function(string) {
13
+ var regexp = "([0-9]{2})/([0-9]{2})/([0-9]{4})" +
14
+ "( ([0-9]{1,2}):([0-9]{2})(:([0-9]{2})(.([0-9]{3}))?)?" +
15
+ ")?";
16
+ var d = string.match(new RegExp(regexp, "i"));
17
+ if (d==null) return Date.parse(string); // at least give javascript a crack at it.
18
+ var offset = 0;
19
+ var date = new Date(d[3], 0, 1);
20
+ if (d[2]) { date.setMonth(d[2] - 1); }
21
+ if (d[1]) { date.setDate(d[1]); }
22
+ if (d[4]) {
23
+ hours = parseInt(d[5], 10);
24
+ date.setHours(hours);
25
+ }
26
+ if (d[6]) { date.setMinutes(d[6]); }
27
+ //if (d[8]) { date.setSeconds(d[7]); }
28
+ //if (d[9]) { date.setMiliseconds(Number("0." + d[8]) * 1000); }
29
+
30
+ return date;
31
+ }
@@ -0,0 +1,27 @@
1
+ // DB No Seconds Format: 2007-12-05 12:00
2
+
3
+ Date.padded2 = function(hour) { padded2 = hour.toString(); if ((parseInt(hour) < 10) || (parseInt(hour) == null)) padded2="0" + padded2; return padded2; }
4
+ Date.prototype.getAMPMHour = function() { hour=Date.padded2(this.getHours()); return (hour == null) ? 00 : (hour > 24 ? hour - 24 : hour ) }
5
+ Date.prototype.getAMPM = function() { return (this.getHours() < 12) ? "" : ""; }
6
+
7
+ Date.prototype.toFormattedString = function(include_time){
8
+ str = this.getFullYear() + "-" + (this.getMonth() + 1) + "-" + Date.padded2(this.getDate());
9
+ if (include_time) { hour=this.getHours(); str += " " + this.getAMPMHour() + ":" + this.getPaddedMinutes() }
10
+ return str;
11
+ }
12
+
13
+ Date.parseFormattedString = function (string) {
14
+ var regexp = '([0-9]{4})-(([0-9]{1,2})-(([0-9]{1,2})( ([0-9]{1,2}):([0-9]{2})? *)?)?)?';
15
+ var d = string.match(new RegExp(regexp, "i"));
16
+ if (d==null) return Date.parse(string); // at least give javascript a crack at it.
17
+ var offset = 0;
18
+ var date = new Date(d[1], 0, 1);
19
+ if (d[3]) { date.setMonth(d[3] - 1); }
20
+ if (d[5]) { date.setDate(d[5]); }
21
+ if (d[7]) {
22
+ date.setHours(parseInt(d[7], 10));
23
+ }
24
+ if (d[8]) { date.setMinutes(d[8]); }
25
+ if (d[10]) { date.setSeconds(d[10]); }
26
+ return date;
27
+ }
@@ -0,0 +1,7 @@
1
+ // Formats date and time as "01 January 2000 17:00"
2
+ Date.prototype.toFormattedString = function(include_time)
3
+ {
4
+ str = Date.padded2(this.getDate()) + " " + Date.months[this.getMonth()] + " " + this.getFullYear();
5
+ if (include_time) { str += " " + this.getHours() + ":" + this.getPaddedMinutes() }
6
+ return str;
7
+ }
@@ -0,0 +1,7 @@
1
+ // Formats date and time as "2000.01.20 17:00"
2
+ Date.prototype.toFormattedString = function(include_time)
3
+ {
4
+ str = this.getFullYear() + "." + Date.padded2(this.getMonth()+1) + "." + Date.padded2(this.getDate());
5
+ if (include_time) { str += " " + this.getHours() + ":" + this.getPaddedMinutes() }
6
+ return str;
7
+ }
@@ -0,0 +1,32 @@
1
+ Date.padded2 = function(hour) { padded2 = hour.toString(); if ((parseInt(hour) < 10) || (parseInt(hour) == null)) padded2="0" + padded2; return padded2; }
2
+ Date.prototype.getAMPMHour = function() { hour=Date.padded2(this.getHours()); return (hour == null) ? 00 : (hour > 24 ? hour - 24 : hour ) }
3
+ Date.prototype.getAMPM = function() { return (this.getHours() < 12) ? "" : ""; }
4
+
5
+ Date.prototype.toFormattedString = function(include_time){
6
+ str = this.getDate() + "." + (this.getMonth() + 1) + "." + this.getFullYear();
7
+ if (include_time) { hour=this.getHours(); str += " " + this.getAMPMHour() + ":" + this.getPaddedMinutes() }
8
+ return str;
9
+ }
10
+ Date.parseFormattedString = function (string) {
11
+ var regexp = '([0-9]{1,2})\.(([0-9]{1,2})\.(([0-9]{2,4})( ([0-9]{1,2}):([0-9]{2})? *)?)?)?';
12
+ var d = string.match(new RegExp(regexp, "i"));
13
+ if (d==null) return Date.parse(string); // at least give javascript a crack at it.
14
+ var offset = 0;
15
+ if (d[5] && d[5].length == 2) {
16
+ // we got only two digits for the year...
17
+ d[5] = Number(d[5]);
18
+ if (d[5] > 30)
19
+ d[5] += 1900;
20
+ else
21
+ d[5] += 2000;
22
+ }
23
+ var date = new Date(d[5], 0, 1);
24
+ if (d[3]) { date.setMonth(d[3] - 1); }
25
+ if (d[5]) { date.setDate(d[1]); }
26
+ if (d[7]) {
27
+ date.setHours(parseInt(d[7], 10));
28
+ }
29
+ if (d[8]) { date.setMinutes(d[8]); }
30
+ if (d[10]) { date.setSeconds(d[10]); }
31
+ return date;
32
+ }
@@ -0,0 +1,37 @@
1
+ Date.prototype.toFormattedString = function(include_time){
2
+ str = this.getFullYear() + "-" + Date.padded2(this.getMonth() + 1) + "-" +Date.padded2(this.getDate());
3
+
4
+ if (include_time) { hour=this.getHours(); str += " " + this.getAMPMHour() + ":" + this.getPaddedMinutes() + " " + this.getAMPM() }
5
+ return str;
6
+ }
7
+
8
+ Date.parseFormattedString = function (string) {
9
+ var regexp = "([0-9]{4})(-([0-9]{2})(-([0-9]{2})" +
10
+ "( ([0-9]{1,2}):([0-9]{2})? *(pm|am)" +
11
+ "?)?)?)?";
12
+ var d = string.match(new RegExp(regexp, "i"));
13
+ if (d==null) return Date.parse(string); // at least give javascript a crack at it.
14
+ var offset = 0;
15
+ var date = new Date(d[1], 0, 1);
16
+ if (d[3]) { date.setMonth(d[3] - 1); }
17
+ if (d[5]) { date.setDate(d[5]); }
18
+ if (d[7]) {
19
+ hours = parseInt(d[7], 10);
20
+ offset=0;
21
+ if (d[9]) {
22
+ is_pm = (d[9].toLowerCase()=="pm");
23
+ if (is_pm && hours <= 11) hours+=12;
24
+ if (!is_pm && hours == 12) hours=0;
25
+ }
26
+ date.setHours(hours);
27
+ }
28
+ if (d[8]) { date.setMinutes(d[8]); }
29
+ if (d[10]) { date.setSeconds(d[10]); }
30
+ if (d[12]) { date.setMilliseconds(Number("0." + d[12]) * 1000); }
31
+ if (d[14]) {
32
+ offset = (Number(d[16]) * 60) + Number(d[17]);
33
+ offset *= ((d[15] == '-') ? 1 : -1);
34
+ }
35
+
36
+ return date;
37
+ }
@@ -0,0 +1,29 @@
1
+ // International date format (ISO 8601): yyyy-mm-dd
2
+ // Including time (no seconds): yyyy-mm-dd HH:MM
3
+ Date.prototype.toFormattedString = function(include_time) {
4
+ var hour;
5
+ var str = this.getFullYear() + "-" + Date.padded2(this.getMonth() + 1) + "-" +Date.padded2(this.getDate());
6
+ if (include_time) {
7
+ hour = Date.padded2(this.getHours());
8
+ str += " " + hour + ":" + this.getPaddedMinutes();
9
+ }
10
+ return str;
11
+ };
12
+
13
+ // TODO: take care of timezone offsets
14
+ // as the timezone is not displayed in the input,
15
+ // this could be tricky (or just unnessesary)
16
+ Date.parseFormattedString = function (string) {
17
+ var regexp = "([0-9]{4})(-([0-9]{2})(-([0-9]{2})" +
18
+ "([T| ]([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.([0-9]+))?)?" +
19
+ "(Z|(([-+])([0-9]{2}):([0-9]{2})))?)?)?)?";
20
+ var d = string.match(new RegExp(regexp));
21
+
22
+ var date = new Date(d[1], 0, 1);
23
+
24
+ if (d[3]) { date.setMonth(d[3] - 1); }
25
+ if (d[5]) { date.setDate(d[5]); }
26
+ if (d[7]) { date.setHours(d[7]); }
27
+ if (d[8]) { date.setMinutes(d[8]); }
28
+ return date;
29
+ };
@@ -0,0 +1,24 @@
1
+ // Italian Format: 31/12/2000 23:00
2
+ // Thanks, Bigonazzi!
3
+
4
+ Date.prototype.toFormattedString = function(include_time){
5
+ str = this.getDate() + "/" + (this.getMonth() + 1) + "/" + this.getFullYear();
6
+ if (include_time) { str += " " + this.getHours() + ":" + this.getPaddedMinutes() }
7
+ return str;
8
+ }
9
+
10
+ Date.parseFormattedString = function (string) {
11
+ var regexp = '([0-9]{1,2})/(([0-9]{1,2})/(([0-9]{4})( ([0-9]{1,2}):([0-9]{2})? *)?)?)?';
12
+ var d = string.match(new RegExp(regexp, "i"));
13
+ if (d==null) return Date.parse(string); // at least give javascript a crack at it.
14
+ var offset = 0;
15
+ var date = new Date(d[5], 0, 1);
16
+ if (d[3]) { date.setMonth(d[3] - 1); }
17
+ if (d[5]) { date.setDate(d[1]); }
18
+ if (d[7]) {
19
+ date.setHours(parseInt(d[7], 10));
20
+ }
21
+ if (d[8]) { date.setMinutes(d[8]); }
22
+ if (d[10]) { date.setSeconds(d[10]); }
23
+ return date;
24
+ }
@@ -0,0 +1,10 @@
1
+ Date.weekdays = ['سبت', 'أحد', 'إثنين', 'ثلاثاء', 'أربعاء', 'خميس', 'جمعة'];
2
+ Date.months = ['كانون ثاني', 'شباط', 'آذار', 'نيسان', 'أيار', 'حزيران', 'تموز', 'آب', 'أيلول', 'تشرين أول', 'تشرين ثاني', 'كانون أول'];
3
+ Date.first_day_of_week = 6;
4
+
5
+ _translations = {
6
+ "OK": "نفذ",
7
+ "Now": "الآن",
8
+ "Today": "اليوم",
9
+ "Clear": "إلغاء"
10
+ }
@@ -0,0 +1,11 @@
1
+ Date.weekdays = $w('Ma Ti On To Fr Lø Sø');
2
+ Date.months = $w('Januar Februar Marts April Maj Juni Juli August September Oktober November December');
3
+
4
+ Date.first_day_of_week = 1;
5
+
6
+ _translations = {
7
+ "OK": "Vælg",
8
+ "Now": "Nu",
9
+ "Today": "I dag",
10
+ "Clear": "Slet"
11
+ }
@@ -0,0 +1,11 @@
1
+ Date.weekdays = $w('Mo Di Mi Do Fr Sa So');
2
+ Date.months = $w('Januar Februar März April Mai Juni Juli August September Oktober November Dezember');
3
+
4
+ Date.first_day_of_week = 1;
5
+
6
+ _translations = {
7
+ "OK": "OK",
8
+ "Now": "Jetzt",
9
+ "Today": "Heute",
10
+ "Clear": "Löschen"
11
+ }
@@ -0,0 +1,11 @@
1
+ Date.weekdays = $w("L M X J V S D");
2
+ Date.months = $w("Enero Febrero Marzo Abril Mayo Junio Julio Agosto Septiembre Octubre Noviembre Diciembre" );
3
+
4
+ Date.first_day_of_week = 1;
5
+
6
+ _translations = {
7
+ "OK": "Cancelar",
8
+ "Now": "Ahora",
9
+ "Clear": "Limpiar",
10
+ "Today": "Hoy"
11
+ }
@@ -0,0 +1,10 @@
1
+ Date.weekdays = $w("Ma Ti Ke To Pe La Su");
2
+ Date.months = $w("Tammikuu Helmikuu Maaliskuu Huhtikuu Toukokuu Kes�kuu Hein�kuu Elokuu Syyskuu Lokakuu Marraskuu Joulukuu" );
3
+
4
+ Date.first_day_of_week = 1
5
+
6
+ _translations = {
7
+ "OK": "OK",
8
+ "Now": "Nyt",
9
+ "Today": "T�n��n"
10
+ }
@@ -0,0 +1,11 @@
1
+ Date.weekdays = $w('L Ma Me J V S D');
2
+ Date.months = $w('Janvier Février Mars Avril Mai Juin Juillet Août Septembre Octobre Novembre Décembre');
3
+
4
+ Date.first_day_of_week = 1;
5
+
6
+ _translations = {
7
+ "OK": "OK",
8
+ "Now": "Maintenant",
9
+ "Today": "Aujourd'hui",
10
+ "Clear": "Effacer",
11
+ }
@@ -0,0 +1,9 @@
1
+ Date.weekdays = $w('Lu Ma Me Gi Ve Sa Do');
2
+ Date.months = $w('Gennaio Febbraio Marzo Aprile Maggio Giugno Luglio Agosto Settembre Ottobre Novembre Dicembre');
3
+ Date.first_day_of_week = 1;
4
+ _translations = {
5
+ "OK": "OK",
6
+ "Now": "Ora",
7
+ "Today": "Oggi",
8
+ "Clear": "Cancella"
9
+ }
@@ -0,0 +1,11 @@
1
+ Date.weekdays = $w('Ma Di Wo Do Vr Za Zo');
2
+ Date.months = $w('januari februari maart april mei juni juli augustus september oktober november december');
3
+
4
+ Date.first_day_of_week = 1;
5
+
6
+ _translations = {
7
+ "OK": "OK",
8
+ "Now": "Nu",
9
+ "Today": "Vandaag",
10
+ "Clear": "Wissen"
11
+ }
@@ -0,0 +1,11 @@
1
+ Date.weekdays = $w('P W Ś C P S N');
2
+ Date.months = $w('Styczeń Luty Marzec Kwiecień Maj Czerwiec Lipiec Sierpień Wrzesień Październik Listopad Grudzień');
3
+
4
+ Date.first_day_of_week = 1
5
+
6
+ _translations = {
7
+ "OK": "OK",
8
+ "Now": "Teraz",
9
+ "Clear": "Wyczyść",
10
+ "Today": "Dziś"
11
+ }
@@ -0,0 +1,11 @@
1
+ Date.weekdays = $w('D S T Q Q S S');
2
+ Date.months = $w('Janeiro Fevereiro Março Abril Maio Junho Julho Agosto Setembro Outubro Novembro Dezembro');
3
+
4
+ Date.first_day_of_week = 0
5
+
6
+ _translations = {
7
+ "OK": "OK",
8
+ "Now": "Agora",
9
+ "Today": "Hoje",
10
+ "Clear": "Limpar"
11
+ }
@@ -0,0 +1,10 @@
1
+ Date.weekdays = $w('Пн Вт Ср Чт Пт Сб Вс');
2
+ Date.months = $w('Январь Февраль Март Апрель Май Июнь Июль Август Сентябрь Октябрь Ноябрь Декабрь');
3
+
4
+ Date.first_day_of_week = 1
5
+
6
+ _translations = {
7
+ "OK": "OK",
8
+ "Now": "Сейчас",
9
+ "Today": "Сегодня"
10
+ }
@@ -0,0 +1,11 @@
1
+ Date.weekdays = $w('Po To Sr Če Pe So Ne');
2
+ Date.months = $w('Januar Februar Marec April Maj Junij Julij Avgust September Oktober November December');
3
+
4
+ Date.first_day_of_week = 1;
5
+
6
+ _translations = {
7
+ "OK": "OK",
8
+ "Now": "Trenutno",
9
+ "Today": "Danes",
10
+ "Clear": "Pobriši"
11
+ }
@@ -0,0 +1,130 @@
1
+ .calendar_date_select {
2
+ color:white;
3
+ border:#777 1px solid;
4
+ display:block;
5
+ width:195px;
6
+ z-index: 1000;
7
+ }
8
+ /* this is a fun ie6 hack to get drop downs to stay behind the popup window. This should always be just underneath .calendar_date_select */
9
+ iframe.ie6_blocker {
10
+ position: absolute;
11
+ z-index: 999;
12
+ }
13
+
14
+ .calendar_date_select thead th {
15
+ font-weight:bold;
16
+ background-color: #000;
17
+ border-top:1px solid #777;
18
+ border-bottom:2px solid #334;
19
+ color: white !important;
20
+ }
21
+
22
+ .calendar_date_select .cds_buttons {
23
+ text-align:center;
24
+ padding:5px 0px;
25
+ background-color: #000055;
26
+ }
27
+
28
+ .calendar_date_select .cds_footer {
29
+ background-color: black;
30
+ padding:3px;
31
+ font-size:12px;
32
+ text-align:center;
33
+ }
34
+
35
+ .calendar_date_select table {
36
+ margin: 0px;
37
+ padding: 0px;
38
+ }
39
+
40
+
41
+ .calendar_date_select .cds_header {
42
+ background-color: #ccc;
43
+ border-bottom: 2px solid #aaa;
44
+ text-align:center;
45
+ }
46
+
47
+ .calendar_date_select .cds_header span {
48
+ font-size:15px;
49
+ color: black;
50
+ font-weight: bold;
51
+ }
52
+
53
+ .calendar_date_select select { font-size:11px;}
54
+
55
+ .calendar_date_select .cds_header a:hover {
56
+ color: white;
57
+ }
58
+ .calendar_date_select .cds_header a {
59
+ width:22px;
60
+ height:20px;
61
+ text-decoration: none;
62
+ font-size:14px;
63
+ color:black !important;
64
+ }
65
+
66
+ .calendar_date_select .cds_header a.prev {
67
+ float:left;
68
+ }
69
+
70
+ .calendar_date_select .cds_header a.next {
71
+ float:right;
72
+ }
73
+
74
+ .calendar_date_select .cds_header a.close {
75
+ float:right;
76
+ display:none;
77
+ }
78
+
79
+
80
+ .calendar_date_select .cds_header select.month {
81
+ width:90px;
82
+ }
83
+
84
+ .calendar_date_select .cds_header select.year {
85
+ width:61px;
86
+ }
87
+
88
+ .calendar_date_select .cds_buttons a {
89
+ color: white;
90
+ font-size: 9px;
91
+ }
92
+
93
+ .calendar_date_select td {
94
+ background-color: #000066;
95
+ font-size:12px;
96
+ width: 24px;
97
+ height: 21px;
98
+ text-align:center;
99
+ vertical-align: middle;
100
+ }
101
+ .calendar_date_select td.weekend {
102
+ background-color: #00005a;
103
+ }
104
+
105
+ .calendar_date_select td div.other {
106
+ color: #4C5593;
107
+ }
108
+
109
+ .calendar_date_select tbody td {
110
+ border-bottom: 1px solid #000044;
111
+ }
112
+ .calendar_date_select td.selected {
113
+ background-color:white;
114
+ color:black;
115
+ }
116
+
117
+ .calendar_date_select td:hover {
118
+ background-color:#ccc;
119
+ }
120
+
121
+ .calendar_date_select td.disabled div {
122
+ color: #000044;
123
+ }
124
+ .calendar_date_select td.today {
125
+ border: 1px dashed blue;
126
+ }
127
+
128
+ .fieldWithErrors .calendar_date_select {
129
+ border: 2px solid red;
130
+ }