aboutsummaryrefslogtreecommitdiffstats
path: root/WebContent
diff options
context:
space:
mode:
authorJoonas Lehtinen <joonas.lehtinen@itmill.com>2006-12-29 17:06:50 +0000
committerJoonas Lehtinen <joonas.lehtinen@itmill.com>2006-12-29 17:06:50 +0000
commit651728e5b945e38b546e26515372512b1afed9ca (patch)
treee3113c8c880d280c882b8dd041b10866db95c04a /WebContent
parent8529dc20fd0a2fc48c0bfcedb2ddc9d1d69618fb (diff)
downloadvaadin-framework-651728e5b945e38b546e26515372512b1afed9ca.tar.gz
vaadin-framework-651728e5b945e38b546e26515372512b1afed9ca.zip
- Renamed default theme to base
- Merged XSLT and AJAX -based themes - Added automatic browser detection and mode selection - Added automatic ajax-html page generation - Added automatic XSLT theme header generation (no more window template modifications needed!) svn changeset:190/svn branch:toolkit
Diffstat (limited to 'WebContent')
-rw-r--r--WebContent/themes/default/calendar-default.css235
-rw-r--r--WebContent/themes/default/img/bg1.gifbin416 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/bg3.jpgbin1629 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/button/btn-bg.gifbin866 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/button/btn-left.gifbin1341 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/button/btn-left.pngbin3722 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/button/btn-right.gifbin1342 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/button/btn-right.pngbin3774 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/debug.gifbin288 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/icon/attention.gifbin1641 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/icon/attention.pngbin2613 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/icon/error-mini.gifbin82 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/icon/error.gifbin1538 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/icon/info-mini.gifbin509 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/icon/info.gifbin1641 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/panel/bottom-left.gifbin724 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/panel/bottom-right.gifbin237 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/panel/bottom.gifbin52 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/panel/middle-light.gifbin280 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/panel/middle.gifbin62 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/panel/top-left-light.gifbin1780 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/panel/top-left.gifbin1114 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/panel/top-right-light.gifbin452 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/panel/top-right.gifbin291 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/panel/top.gifbin70 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/table/asc.gifbin70 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/table/bottom-left.gifbin987 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/table/bottom-right.gifbin818 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/table/caption-bg.gifbin151 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/table/caption-left.gifbin653 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/table/caption-right.gifbin651 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/table/col-header-bg.gifbin100 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/table/colsel.gifbin70 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/table/desc.gifbin69 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/table/handle.gifbin43 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/table/off.gifbin69 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/table/on.gifbin70 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/table/test.gifbin10828 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/table/top-left.gifbin224 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/table/top-right.gifbin66 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/tree/empty.gifbin55 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/tree/off.gifbin69 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/tree/on.gifbin70 -> 0 bytes
-rw-r--r--WebContent/themes/default/img/w2x2.gifbin35 -> 0 bytes
-rw-r--r--WebContent/themes/default/jscalendar/calendar-blue.css232
-rw-r--r--WebContent/themes/default/jscalendar/calendar-blue2.css236
-rw-r--r--WebContent/themes/default/jscalendar/calendar-brown.css225
-rw-r--r--WebContent/themes/default/jscalendar/calendar-green.css229
-rw-r--r--WebContent/themes/default/jscalendar/calendar-setup.js200
-rw-r--r--WebContent/themes/default/jscalendar/calendar-setup_stripped.js21
-rw-r--r--WebContent/themes/default/jscalendar/calendar-system.css251
-rw-r--r--WebContent/themes/default/jscalendar/calendar-tas.css239
-rw-r--r--WebContent/themes/default/jscalendar/calendar-win2k-1.css271
-rw-r--r--WebContent/themes/default/jscalendar/calendar-win2k-2.css271
-rw-r--r--WebContent/themes/default/jscalendar/calendar-win2k-cold-1.css265
-rw-r--r--WebContent/themes/default/jscalendar/calendar-win2k-cold-2.css271
-rw-r--r--WebContent/themes/default/jscalendar/calendar.js1806
-rw-r--r--WebContent/themes/default/jscalendar/calendar_stripped.js14
-rw-r--r--WebContent/themes/default/jscalendar/dayinfo.html109
-rw-r--r--WebContent/themes/default/jscalendar/img.gifbin223 -> 0 bytes
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-af.js39
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-al.js101
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-bg.js124
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-big5-utf8.js123
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-big5.js123
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-br.js108
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-ca.js123
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-cs-utf8.js65
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-cs-win.js65
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-da.js123
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-de.js124
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-du.js45
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-el.js89
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-en.js127
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-es.js129
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-fi.js109
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-fr.js125
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-he-utf8.js123
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-hr-utf8.js49
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-hr.jsbin3088 -> 0 bytes
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-hu.js124
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-it.js124
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-jp.js45
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-ko-utf8.js120
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-ko.js120
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-lt-utf8.js114
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-lt.js114
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-lv.js123
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-nl.js73
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-no.js114
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-pl-utf8.js93
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-pl.js56
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-pt.js123
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-ro.js66
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-ru.js123
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-ru_win_.js123
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-si.js94
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-sk.js99
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-sp.js110
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-sv.js113
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-tr.js58
-rw-r--r--WebContent/themes/default/jscalendar/lang/calendar-zh.js119
-rw-r--r--WebContent/themes/default/jscalendar/lang/cn_utf8.js123
-rw-r--r--WebContent/themes/default/theme.css425
-rw-r--r--WebContent/themes/default/theme.js4248
105 files changed, 0 insertions, 13833 deletions
diff --git a/WebContent/themes/default/calendar-default.css b/WebContent/themes/default/calendar-default.css
deleted file mode 100644
index c766d64ee2..0000000000
--- a/WebContent/themes/default/calendar-default.css
+++ /dev/null
@@ -1,235 +0,0 @@
-/* The main calendar widget. DIV containing a table. */
-
-div.calendar { position: relative; }
-
-.calendar, .calendar table {
- border: 1px solid #aaaaaa;
- font-size: 11px;
- color: #000000;
- cursor: default;
- background: #ffffff;
- font-family: tahoma,verdana,sans-serif;
- border-collapse: collapse;
-}
-
-/* Header part -- contains navigation buttons and day names. */
-
-.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
- text-align: center; /* They are the navigation buttons */
- padding: 2px; /* Make the buttons seem like they're pressing */
- border: 1px solid #aaaaaa;
-}
-
-.calendar .nav {
- background: #ffffff url(menuarrow.gif) no-repeat 100% 100%;
-}
-
-.calendar thead .title { /* This holds the current "month, year" */
- font-weight: bold; /* Pressing it will take you to the current date */
- text-align: center;
- background: #fff;
- background-repeat: repeat-x; color: #000;
- padding: 2px;
-}
-
-.calendar thead .headrow { /* Row <TR> containing navigation buttons */
- background: #f5f5fa;
- color: #000000;
-}
-
-.calendar thead .daynames { /* Row <TR> containing the day names */
- background: #ffffff;
- backgound-image:
-}
-
-.calendar thead .name { /* Cells <TD> containing the day names */
- border-bottom: 1px solid #556;
- padding: 2px;
- text-align: center;
- color: #000;
-}
-
-.calendar thead .weekend { /* How a weekend day name shows in header */
- color: #a66;
-}
-
-.calendar thead .hilite { /* How do the buttons in header appear when hover */
- background-color: #bbb;
- background-repeat: repeat-x;
- color: #000;
- padding: 1px;
-}
-
-.calendar thead .active { /* Active (pressed) buttons in header */
- padding: 2px 0px 0px 2px;
-}
-
-/* The body part -- contains all the days in month. */
-
-.calendar tbody .day { /* Cells <TD> containing month days dates */
- width: 2em;
- color: #456;
- text-align: right;
- padding: 2px 4px 2px 2px;
-}
-.calendar tbody .day.othermonth {
- font-size: 80%;
- color: #bbb;
-}
-.calendar tbody .day.othermonth.oweekend {
- color: #fbb;
-}
-
-.calendar table .wn {
- padding: 2px 3px 2px 2px;
- border-right: 1px solid #000;
- background: #ffffff;
-}
-
-.calendar tbody .rowhilite td {
-
-}
-
-.calendar tbody .rowhilite td.wn {
-
-}
-
-.calendar tbody td.hilite { /* Hovered cells <TD> */
- Xpadding: 1px 3px 1px 1px;
- xborder: 1px solid #bbb;
- background-color: #bbb;
-
-}
-
-.calendar tbody td.active { /* Active (pressed) cells <TD> */
- background: #cde;
- padding: 2px 2px 0px 2px;
-}
-
-.calendar tbody td.selected { /* Cell showing today date */
- font-weight: bold;
- border: 1px solid #aaaaaa;
- padding: 1px 3px 1px 1px;
- background: #fff;
- color: #000;
-}
-
-.calendar tbody td.weekend { /* Cells showing weekend days */
- color: #a66;
-}
-
-.calendar tbody td.today { /* Cell showing selected date */
- font-weight: bold;
- color: #00f;
-}
-
-.calendar tbody .disabled { color: #999; }
-
-.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
- visibility: hidden;
-}
-
-.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
- display: none;
-}
-
-/* The footer part -- status bar and "Close" button */
-
-.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
- text-align: center;
- background: #556;
- color: #fff;
-}
-
-.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
- background: #fff;
- color: #445;
- border-top: 1px solid #556;
- padding: 1px;
-}
-
-.calendar tfoot .hilite { /* Hover style for buttons in footer */
- background: #aaf;
- border: 1px solid #04f;
- color: #000;
- padding: 1px;
-}
-
-.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
- background: #77c;
- padding: 2px 0px 0px 2px;
-}
-
-/* Combo boxes (menus that display months/years for direct selection) */
-
-.calendar .combo {
- position: absolute;
- display: none;
- top: 0px;
- left: 0px;
- width: 4em;
- cursor: default;
- border: 1px solid #aaaaaa;
- background: #ffffff;
- color: #000;
- font-size: 90%;
- z-index: 100;
-}
-
-.calendar .combo .label,
-.calendar .combo .label-IEfix {
- text-align: center;
- padding: 1px;
-}
-
-.calendar .combo .label-IEfix {
- width: 4em;
-}
-
-.calendar .combo .hilite {
- background: #acf;
-}
-
-.calendar .combo .active {
- border-top: 1px solid #46a;
- border-bottom: 1px solid #46a;
- background: #eef;
- font-weight: bold;
-}
-
-.calendar td.time {
- border-top: 1px solid #000;
- padding: 1px 0px;
- text-align: center;
- background-color: #f4f0e8;
-}
-
-.calendar td.time .hour,
-.calendar td.time .minute,
-.calendar td.time .ampm {
- padding: 0px 3px 0px 4px;
- border: 1px solid #889;
- font-weight: bold;
- background-color: #fff;
-}
-
-.calendar td.time .ampm {
- text-align: center;
-}
-
-.calendar td.time .colon {
- padding: 0px 2px 0px 3px;
- font-weight: bold;
-}
-
-.calendar td.time span.hilite {
- border-color: #000;
- background-color: #667;
- color: #fff;
-}
-
-.calendar td.time span.active {
- border-color: #f00;
- background-color: #000;
- color: #0f0;
-}
diff --git a/WebContent/themes/default/img/bg1.gif b/WebContent/themes/default/img/bg1.gif
deleted file mode 100644
index f93245029c..0000000000
--- a/WebContent/themes/default/img/bg1.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/bg3.jpg b/WebContent/themes/default/img/bg3.jpg
deleted file mode 100644
index 51a70f18c3..0000000000
--- a/WebContent/themes/default/img/bg3.jpg
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/button/btn-bg.gif b/WebContent/themes/default/img/button/btn-bg.gif
deleted file mode 100644
index 2b9f4ceae7..0000000000
--- a/WebContent/themes/default/img/button/btn-bg.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/button/btn-left.gif b/WebContent/themes/default/img/button/btn-left.gif
deleted file mode 100644
index d11581e0e8..0000000000
--- a/WebContent/themes/default/img/button/btn-left.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/button/btn-left.png b/WebContent/themes/default/img/button/btn-left.png
deleted file mode 100644
index 8ab99a0bd6..0000000000
--- a/WebContent/themes/default/img/button/btn-left.png
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/button/btn-right.gif b/WebContent/themes/default/img/button/btn-right.gif
deleted file mode 100644
index 870d3bc2bb..0000000000
--- a/WebContent/themes/default/img/button/btn-right.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/button/btn-right.png b/WebContent/themes/default/img/button/btn-right.png
deleted file mode 100644
index c9903c8479..0000000000
--- a/WebContent/themes/default/img/button/btn-right.png
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/debug.gif b/WebContent/themes/default/img/debug.gif
deleted file mode 100644
index a27451e7c7..0000000000
--- a/WebContent/themes/default/img/debug.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/icon/attention.gif b/WebContent/themes/default/img/icon/attention.gif
deleted file mode 100644
index c3c8b2778c..0000000000
--- a/WebContent/themes/default/img/icon/attention.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/icon/attention.png b/WebContent/themes/default/img/icon/attention.png
deleted file mode 100644
index a5b13118ef..0000000000
--- a/WebContent/themes/default/img/icon/attention.png
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/icon/error-mini.gif b/WebContent/themes/default/img/icon/error-mini.gif
deleted file mode 100644
index a17267228a..0000000000
--- a/WebContent/themes/default/img/icon/error-mini.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/icon/error.gif b/WebContent/themes/default/img/icon/error.gif
deleted file mode 100644
index 8acbcfd443..0000000000
--- a/WebContent/themes/default/img/icon/error.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/icon/info-mini.gif b/WebContent/themes/default/img/icon/info-mini.gif
deleted file mode 100644
index 2aedd2f9a9..0000000000
--- a/WebContent/themes/default/img/icon/info-mini.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/icon/info.gif b/WebContent/themes/default/img/icon/info.gif
deleted file mode 100644
index d181af0f73..0000000000
--- a/WebContent/themes/default/img/icon/info.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/panel/bottom-left.gif b/WebContent/themes/default/img/panel/bottom-left.gif
deleted file mode 100644
index 8a9bb94e80..0000000000
--- a/WebContent/themes/default/img/panel/bottom-left.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/panel/bottom-right.gif b/WebContent/themes/default/img/panel/bottom-right.gif
deleted file mode 100644
index 1527ccefc8..0000000000
--- a/WebContent/themes/default/img/panel/bottom-right.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/panel/bottom.gif b/WebContent/themes/default/img/panel/bottom.gif
deleted file mode 100644
index eb27901203..0000000000
--- a/WebContent/themes/default/img/panel/bottom.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/panel/middle-light.gif b/WebContent/themes/default/img/panel/middle-light.gif
deleted file mode 100644
index 1d16e828f3..0000000000
--- a/WebContent/themes/default/img/panel/middle-light.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/panel/middle.gif b/WebContent/themes/default/img/panel/middle.gif
deleted file mode 100644
index e36e2f5a36..0000000000
--- a/WebContent/themes/default/img/panel/middle.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/panel/top-left-light.gif b/WebContent/themes/default/img/panel/top-left-light.gif
deleted file mode 100644
index 1afc98e4ae..0000000000
--- a/WebContent/themes/default/img/panel/top-left-light.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/panel/top-left.gif b/WebContent/themes/default/img/panel/top-left.gif
deleted file mode 100644
index 996483a0d6..0000000000
--- a/WebContent/themes/default/img/panel/top-left.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/panel/top-right-light.gif b/WebContent/themes/default/img/panel/top-right-light.gif
deleted file mode 100644
index 8d24902fc3..0000000000
--- a/WebContent/themes/default/img/panel/top-right-light.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/panel/top-right.gif b/WebContent/themes/default/img/panel/top-right.gif
deleted file mode 100644
index 0df2da052f..0000000000
--- a/WebContent/themes/default/img/panel/top-right.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/panel/top.gif b/WebContent/themes/default/img/panel/top.gif
deleted file mode 100644
index 2479fb8d18..0000000000
--- a/WebContent/themes/default/img/panel/top.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/table/asc.gif b/WebContent/themes/default/img/table/asc.gif
deleted file mode 100644
index b23d660d90..0000000000
--- a/WebContent/themes/default/img/table/asc.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/table/bottom-left.gif b/WebContent/themes/default/img/table/bottom-left.gif
deleted file mode 100644
index 601002bdf3..0000000000
--- a/WebContent/themes/default/img/table/bottom-left.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/table/bottom-right.gif b/WebContent/themes/default/img/table/bottom-right.gif
deleted file mode 100644
index f975e42e79..0000000000
--- a/WebContent/themes/default/img/table/bottom-right.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/table/caption-bg.gif b/WebContent/themes/default/img/table/caption-bg.gif
deleted file mode 100644
index ed8cca0f0d..0000000000
--- a/WebContent/themes/default/img/table/caption-bg.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/table/caption-left.gif b/WebContent/themes/default/img/table/caption-left.gif
deleted file mode 100644
index fe4f3203a6..0000000000
--- a/WebContent/themes/default/img/table/caption-left.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/table/caption-right.gif b/WebContent/themes/default/img/table/caption-right.gif
deleted file mode 100644
index e5d83b08e3..0000000000
--- a/WebContent/themes/default/img/table/caption-right.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/table/col-header-bg.gif b/WebContent/themes/default/img/table/col-header-bg.gif
deleted file mode 100644
index 8a0e2efb4e..0000000000
--- a/WebContent/themes/default/img/table/col-header-bg.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/table/colsel.gif b/WebContent/themes/default/img/table/colsel.gif
deleted file mode 100644
index b23d660d90..0000000000
--- a/WebContent/themes/default/img/table/colsel.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/table/desc.gif b/WebContent/themes/default/img/table/desc.gif
deleted file mode 100644
index bc8b454f81..0000000000
--- a/WebContent/themes/default/img/table/desc.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/table/handle.gif b/WebContent/themes/default/img/table/handle.gif
deleted file mode 100644
index bdf7a77041..0000000000
--- a/WebContent/themes/default/img/table/handle.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/table/off.gif b/WebContent/themes/default/img/table/off.gif
deleted file mode 100644
index bc8b454f81..0000000000
--- a/WebContent/themes/default/img/table/off.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/table/on.gif b/WebContent/themes/default/img/table/on.gif
deleted file mode 100644
index b23d660d90..0000000000
--- a/WebContent/themes/default/img/table/on.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/table/test.gif b/WebContent/themes/default/img/table/test.gif
deleted file mode 100644
index 8a21c28c18..0000000000
--- a/WebContent/themes/default/img/table/test.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/table/top-left.gif b/WebContent/themes/default/img/table/top-left.gif
deleted file mode 100644
index 58554e9d77..0000000000
--- a/WebContent/themes/default/img/table/top-left.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/table/top-right.gif b/WebContent/themes/default/img/table/top-right.gif
deleted file mode 100644
index d0b36ec517..0000000000
--- a/WebContent/themes/default/img/table/top-right.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/tree/empty.gif b/WebContent/themes/default/img/tree/empty.gif
deleted file mode 100644
index 1aa9e9bb71..0000000000
--- a/WebContent/themes/default/img/tree/empty.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/tree/off.gif b/WebContent/themes/default/img/tree/off.gif
deleted file mode 100644
index bc8b454f81..0000000000
--- a/WebContent/themes/default/img/tree/off.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/tree/on.gif b/WebContent/themes/default/img/tree/on.gif
deleted file mode 100644
index b23d660d90..0000000000
--- a/WebContent/themes/default/img/tree/on.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/img/w2x2.gif b/WebContent/themes/default/img/w2x2.gif
deleted file mode 100644
index 03e0677003..0000000000
--- a/WebContent/themes/default/img/w2x2.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/jscalendar/calendar-blue.css b/WebContent/themes/default/jscalendar/calendar-blue.css
deleted file mode 100644
index ca33cde007..0000000000
--- a/WebContent/themes/default/jscalendar/calendar-blue.css
+++ /dev/null
@@ -1,232 +0,0 @@
-/* The main calendar widget. DIV containing a table. */
-
-div.calendar { position: relative; }
-
-.calendar, .calendar table {
- border: 1px solid #556;
- font-size: 11px;
- color: #000;
- cursor: default;
- background: #eef;
- font-family: tahoma,verdana,sans-serif;
-}
-
-/* Header part -- contains navigation buttons and day names. */
-
-.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
- text-align: center; /* They are the navigation buttons */
- padding: 2px; /* Make the buttons seem like they're pressing */
-}
-
-.calendar .nav {
- background: #778 url(menuarrow.gif) no-repeat 100% 100%;
-}
-
-.calendar thead .title { /* This holds the current "month, year" */
- font-weight: bold; /* Pressing it will take you to the current date */
- text-align: center;
- background: #fff;
- color: #000;
- padding: 2px;
-}
-
-.calendar thead .headrow { /* Row <TR> containing navigation buttons */
- background: #778;
- color: #fff;
-}
-
-.calendar thead .daynames { /* Row <TR> containing the day names */
- background: #bdf;
-}
-
-.calendar thead .name { /* Cells <TD> containing the day names */
- border-bottom: 1px solid #556;
- padding: 2px;
- text-align: center;
- color: #000;
-}
-
-.calendar thead .weekend { /* How a weekend day name shows in header */
- color: #a66;
-}
-
-.calendar thead .hilite { /* How do the buttons in header appear when hover */
- background-color: #aaf;
- color: #000;
- border: 1px solid #04f;
- padding: 1px;
-}
-
-.calendar thead .active { /* Active (pressed) buttons in header */
- background-color: #77c;
- padding: 2px 0px 0px 2px;
-}
-
-/* The body part -- contains all the days in month. */
-
-.calendar tbody .day { /* Cells <TD> containing month days dates */
- width: 2em;
- color: #456;
- text-align: right;
- padding: 2px 4px 2px 2px;
-}
-.calendar tbody .day.othermonth {
- font-size: 80%;
- color: #bbb;
-}
-.calendar tbody .day.othermonth.oweekend {
- color: #fbb;
-}
-
-.calendar table .wn {
- padding: 2px 3px 2px 2px;
- border-right: 1px solid #000;
- background: #bdf;
-}
-
-.calendar tbody .rowhilite td {
- background: #def;
-}
-
-.calendar tbody .rowhilite td.wn {
- background: #eef;
-}
-
-.calendar tbody td.hilite { /* Hovered cells <TD> */
- background: #def;
- padding: 1px 3px 1px 1px;
- border: 1px solid #bbb;
-}
-
-.calendar tbody td.active { /* Active (pressed) cells <TD> */
- background: #cde;
- padding: 2px 2px 0px 2px;
-}
-
-.calendar tbody td.selected { /* Cell showing today date */
- font-weight: bold;
- border: 1px solid #000;
- padding: 1px 3px 1px 1px;
- background: #fff;
- color: #000;
-}
-
-.calendar tbody td.weekend { /* Cells showing weekend days */
- color: #a66;
-}
-
-.calendar tbody td.today { /* Cell showing selected date */
- font-weight: bold;
- color: #00f;
-}
-
-.calendar tbody .disabled { color: #999; }
-
-.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
- visibility: hidden;
-}
-
-.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
- display: none;
-}
-
-/* The footer part -- status bar and "Close" button */
-
-.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
- text-align: center;
- background: #556;
- color: #fff;
-}
-
-.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
- background: #fff;
- color: #445;
- border-top: 1px solid #556;
- padding: 1px;
-}
-
-.calendar tfoot .hilite { /* Hover style for buttons in footer */
- background: #aaf;
- border: 1px solid #04f;
- color: #000;
- padding: 1px;
-}
-
-.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
- background: #77c;
- padding: 2px 0px 0px 2px;
-}
-
-/* Combo boxes (menus that display months/years for direct selection) */
-
-.calendar .combo {
- position: absolute;
- display: none;
- top: 0px;
- left: 0px;
- width: 4em;
- cursor: default;
- border: 1px solid #655;
- background: #def;
- color: #000;
- font-size: 90%;
- z-index: 100;
-}
-
-.calendar .combo .label,
-.calendar .combo .label-IEfix {
- text-align: center;
- padding: 1px;
-}
-
-.calendar .combo .label-IEfix {
- width: 4em;
-}
-
-.calendar .combo .hilite {
- background: #acf;
-}
-
-.calendar .combo .active {
- border-top: 1px solid #46a;
- border-bottom: 1px solid #46a;
- background: #eef;
- font-weight: bold;
-}
-
-.calendar td.time {
- border-top: 1px solid #000;
- padding: 1px 0px;
- text-align: center;
- background-color: #f4f0e8;
-}
-
-.calendar td.time .hour,
-.calendar td.time .minute,
-.calendar td.time .ampm {
- padding: 0px 3px 0px 4px;
- border: 1px solid #889;
- font-weight: bold;
- background-color: #fff;
-}
-
-.calendar td.time .ampm {
- text-align: center;
-}
-
-.calendar td.time .colon {
- padding: 0px 2px 0px 3px;
- font-weight: bold;
-}
-
-.calendar td.time span.hilite {
- border-color: #000;
- background-color: #667;
- color: #fff;
-}
-
-.calendar td.time span.active {
- border-color: #f00;
- background-color: #000;
- color: #0f0;
-}
diff --git a/WebContent/themes/default/jscalendar/calendar-blue2.css b/WebContent/themes/default/jscalendar/calendar-blue2.css
deleted file mode 100644
index 47128ecb0f..0000000000
--- a/WebContent/themes/default/jscalendar/calendar-blue2.css
+++ /dev/null
@@ -1,236 +0,0 @@
-/* The main calendar widget. DIV containing a table. */
-
-div.calendar { position: relative; }
-
-.calendar, .calendar table {
- border: 1px solid #206A9B;
- font-size: 11px;
- color: #000;
- cursor: default;
- background: #F1F8FC;
- font-family: tahoma,verdana,sans-serif;
-}
-
-/* Header part -- contains navigation buttons and day names. */
-
-.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
- text-align: center; /* They are the navigation buttons */
- padding: 2px; /* Make the buttons seem like they're pressing */
-}
-
-.calendar .nav {
- background: #007ED1 url(menuarrow2.gif) no-repeat 100% 100%;
-}
-
-.calendar thead .title { /* This holds the current "month, year" */
- font-weight: bold; /* Pressing it will take you to the current date */
- text-align: center;
- background: #000;
- color: #fff;
- padding: 2px;
-}
-
-.calendar thead tr { /* Row <TR> containing navigation buttons */
- background: #007ED1;
- color: #fff;
-}
-
-.calendar thead .daynames { /* Row <TR> containing the day names */
- background: #C7E1F3;
-}
-
-.calendar thead .name { /* Cells <TD> containing the day names */
- border-bottom: 1px solid #206A9B;
- padding: 2px;
- text-align: center;
- color: #000;
-}
-
-.calendar thead .weekend { /* How a weekend day name shows in header */
- color: #a66;
-}
-
-.calendar thead .hilite { /* How do the buttons in header appear when hover */
- background-color: #34ABFA;
- color: #000;
- border: 1px solid #016DC5;
- padding: 1px;
-}
-
-.calendar thead .active { /* Active (pressed) buttons in header */
- background-color: #006AA9;
- border: 1px solid #008AFF;
- padding: 2px 0px 0px 2px;
-}
-
-/* The body part -- contains all the days in month. */
-
-.calendar tbody .day { /* Cells <TD> containing month days dates */
- width: 2em;
- color: #456;
- text-align: right;
- padding: 2px 4px 2px 2px;
-}
-.calendar tbody .day.othermonth {
- font-size: 80%;
- color: #bbb;
-}
-.calendar tbody .day.othermonth.oweekend {
- color: #fbb;
-}
-
-.calendar table .wn {
- padding: 2px 3px 2px 2px;
- border-right: 1px solid #000;
- background: #C7E1F3;
-}
-
-.calendar tbody .rowhilite td {
- background: #def;
-}
-
-.calendar tbody .rowhilite td.wn {
- background: #F1F8FC;
-}
-
-.calendar tbody td.hilite { /* Hovered cells <TD> */
- background: #def;
- padding: 1px 3px 1px 1px;
- border: 1px solid #8FC4E8;
-}
-
-.calendar tbody td.active { /* Active (pressed) cells <TD> */
- background: #cde;
- padding: 2px 2px 0px 2px;
-}
-
-.calendar tbody td.selected { /* Cell showing today date */
- font-weight: bold;
- border: 1px solid #000;
- padding: 1px 3px 1px 1px;
- background: #fff;
- color: #000;
-}
-
-.calendar tbody td.weekend { /* Cells showing weekend days */
- color: #a66;
-}
-
-.calendar tbody td.today { /* Cell showing selected date */
- font-weight: bold;
- color: #D50000;
-}
-
-.calendar tbody .disabled { color: #999; }
-
-.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
- visibility: hidden;
-}
-
-.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
- display: none;
-}
-
-/* The footer part -- status bar and "Close" button */
-
-.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
- text-align: center;
- background: #206A9B;
- color: #fff;
-}
-
-.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
- background: #000;
- color: #fff;
- border-top: 1px solid #206A9B;
- padding: 1px;
-}
-
-.calendar tfoot .hilite { /* Hover style for buttons in footer */
- background: #B8DAF0;
- border: 1px solid #178AEB;
- color: #000;
- padding: 1px;
-}
-
-.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
- background: #006AA9;
- padding: 2px 0px 0px 2px;
-}
-
-/* Combo boxes (menus that display months/years for direct selection) */
-
-.calendar .combo {
- position: absolute;
- display: none;
- top: 0px;
- left: 0px;
- width: 4em;
- cursor: default;
- border: 1px solid #655;
- background: #def;
- color: #000;
- font-size: 90%;
- z-index: 100;
-}
-
-.calendar .combo .label,
-.calendar .combo .label-IEfix {
- text-align: center;
- padding: 1px;
-}
-
-.calendar .combo .label-IEfix {
- width: 4em;
-}
-
-.calendar .combo .hilite {
- background: #34ABFA;
- border-top: 1px solid #46a;
- border-bottom: 1px solid #46a;
- font-weight: bold;
-}
-
-.calendar .combo .active {
- border-top: 1px solid #46a;
- border-bottom: 1px solid #46a;
- background: #F1F8FC;
- font-weight: bold;
-}
-
-.calendar td.time {
- border-top: 1px solid #000;
- padding: 1px 0px;
- text-align: center;
- background-color: #E3F0F9;
-}
-
-.calendar td.time .hour,
-.calendar td.time .minute,
-.calendar td.time .ampm {
- padding: 0px 3px 0px 4px;
- border: 1px solid #889;
- font-weight: bold;
- background-color: #F1F8FC;
-}
-
-.calendar td.time .ampm {
- text-align: center;
-}
-
-.calendar td.time .colon {
- padding: 0px 2px 0px 3px;
- font-weight: bold;
-}
-
-.calendar td.time span.hilite {
- border-color: #000;
- background-color: #267DB7;
- color: #fff;
-}
-
-.calendar td.time span.active {
- border-color: red;
- background-color: #000;
- color: #A5FF00;
-}
diff --git a/WebContent/themes/default/jscalendar/calendar-brown.css b/WebContent/themes/default/jscalendar/calendar-brown.css
deleted file mode 100644
index c42da5e0d9..0000000000
--- a/WebContent/themes/default/jscalendar/calendar-brown.css
+++ /dev/null
@@ -1,225 +0,0 @@
-/* The main calendar widget. DIV containing a table. */
-
-div.calendar { position: relative; }
-
-.calendar, .calendar table {
- border: 1px solid #655;
- font-size: 11px;
- color: #000;
- cursor: default;
- background: #ffd;
- font-family: tahoma,verdana,sans-serif;
-}
-
-/* Header part -- contains navigation buttons and day names. */
-
-.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
- text-align: center; /* They are the navigation buttons */
- padding: 2px; /* Make the buttons seem like they're pressing */
-}
-
-.calendar .nav {
- background: #edc url(menuarrow.gif) no-repeat 100% 100%;
-}
-
-.calendar thead .title { /* This holds the current "month, year" */
- font-weight: bold; /* Pressing it will take you to the current date */
- text-align: center;
- background: #654;
- color: #fed;
- padding: 2px;
-}
-
-.calendar thead .headrow { /* Row <TR> containing navigation buttons */
- background: #edc;
- color: #000;
-}
-
-.calendar thead .name { /* Cells <TD> containing the day names */
- border-bottom: 1px solid #655;
- padding: 2px;
- text-align: center;
- color: #000;
-}
-
-.calendar thead .weekend { /* How a weekend day name shows in header */
- color: #f00;
-}
-
-.calendar thead .hilite { /* How do the buttons in header appear when hover */
- background-color: #faa;
- color: #000;
- border: 1px solid #f40;
- padding: 1px;
-}
-
-.calendar thead .active { /* Active (pressed) buttons in header */
- background-color: #c77;
- padding: 2px 0px 0px 2px;
-}
-
-.calendar thead .daynames { /* Row <TR> containing the day names */
- background: #fed;
-}
-
-/* The body part -- contains all the days in month. */
-
-.calendar tbody .day { /* Cells <TD> containing month days dates */
- width: 2em;
- text-align: right;
- padding: 2px 4px 2px 2px;
-}
-.calendar tbody .day.othermonth {
- font-size: 80%;
- color: #bbb;
-}
-.calendar tbody .day.othermonth.oweekend {
- color: #fbb;
-}
-
-.calendar table .wn {
- padding: 2px 3px 2px 2px;
- border-right: 1px solid #000;
- background: #fed;
-}
-
-.calendar tbody .rowhilite td {
- background: #ddf;
-}
-
-.calendar tbody .rowhilite td.wn {
- background: #efe;
-}
-
-.calendar tbody td.hilite { /* Hovered cells <TD> */
- background: #ffe;
- padding: 1px 3px 1px 1px;
- border: 1px solid #bbb;
-}
-
-.calendar tbody td.active { /* Active (pressed) cells <TD> */
- background: #ddc;
- padding: 2px 2px 0px 2px;
-}
-
-.calendar tbody td.selected { /* Cell showing today date */
- font-weight: bold;
- border: 1px solid #000;
- padding: 1px 3px 1px 1px;
- background: #fea;
-}
-
-.calendar tbody td.weekend { /* Cells showing weekend days */
- color: #f00;
-}
-
-.calendar tbody td.today { font-weight: bold; }
-
-.calendar tbody .disabled { color: #999; }
-
-.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
- visibility: hidden;
-}
-
-.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
- display: none;
-}
-
-/* The footer part -- status bar and "Close" button */
-
-.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
- text-align: center;
- background: #988;
- color: #000;
-}
-
-.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
- border-top: 1px solid #655;
- background: #dcb;
- color: #840;
-}
-
-.calendar tfoot .hilite { /* Hover style for buttons in footer */
- background: #faa;
- border: 1px solid #f40;
- padding: 1px;
-}
-
-.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
- background: #c77;
- padding: 2px 0px 0px 2px;
-}
-
-/* Combo boxes (menus that display months/years for direct selection) */
-
-.calendar .combo {
- position: absolute;
- display: none;
- top: 0px;
- left: 0px;
- width: 4em;
- cursor: default;
- border: 1px solid #655;
- background: #ffe;
- color: #000;
- font-size: 90%;
- z-index: 100;
-}
-
-.calendar .combo .label,
-.calendar .combo .label-IEfix {
- text-align: center;
- padding: 1px;
-}
-
-.calendar .combo .label-IEfix {
- width: 4em;
-}
-
-.calendar .combo .hilite {
- background: #fc8;
-}
-
-.calendar .combo .active {
- border-top: 1px solid #a64;
- border-bottom: 1px solid #a64;
- background: #fee;
- font-weight: bold;
-}
-
-.calendar td.time {
- border-top: 1px solid #a88;
- padding: 1px 0px;
- text-align: center;
- background-color: #fed;
-}
-
-.calendar td.time .hour,
-.calendar td.time .minute,
-.calendar td.time .ampm {
- padding: 0px 3px 0px 4px;
- border: 1px solid #988;
- font-weight: bold;
- background-color: #fff;
-}
-
-.calendar td.time .ampm {
- text-align: center;
-}
-
-.calendar td.time .colon {
- padding: 0px 2px 0px 3px;
- font-weight: bold;
-}
-
-.calendar td.time span.hilite {
- border-color: #000;
- background-color: #866;
- color: #fff;
-}
-
-.calendar td.time span.active {
- border-color: #f00;
- background-color: #000;
- color: #0f0;
-}
diff --git a/WebContent/themes/default/jscalendar/calendar-green.css b/WebContent/themes/default/jscalendar/calendar-green.css
deleted file mode 100644
index 2e1867a0c2..0000000000
--- a/WebContent/themes/default/jscalendar/calendar-green.css
+++ /dev/null
@@ -1,229 +0,0 @@
-/* The main calendar widget. DIV containing a table. */
-
-div.calendar { position: relative; }
-
-.calendar, .calendar table {
- border: 1px solid #565;
- font-size: 11px;
- color: #000;
- cursor: default;
- background: #efe;
- font-family: tahoma,verdana,sans-serif;
-}
-
-/* Header part -- contains navigation buttons and day names. */
-
-.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
- text-align: center; /* They are the navigation buttons */
- padding: 2px; /* Make the buttons seem like they're pressing */
- background: #676;
- color: #fff;
- font-size: 90%;
-}
-
-.calendar .nav {
- background: #676 url(menuarrow.gif) no-repeat 100% 100%;
-}
-
-.calendar thead .title { /* This holds the current "month, year" */
- font-weight: bold; /* Pressing it will take you to the current date */
- text-align: center;
- padding: 2px;
- background: #250;
- color: #efa;
-}
-
-.calendar thead .headrow { /* Row <TR> containing navigation buttons */
-}
-
-.calendar thead .name { /* Cells <TD> containing the day names */
- border-bottom: 1px solid #565;
- padding: 2px;
- text-align: center;
- color: #000;
-}
-
-.calendar thead .weekend { /* How a weekend day name shows in header */
- color: #a66;
-}
-
-.calendar thead .hilite { /* How do the buttons in header appear when hover */
- background-color: #afa;
- color: #000;
- border: 1px solid #084;
- padding: 1px;
-}
-
-.calendar thead .active { /* Active (pressed) buttons in header */
- background-color: #7c7;
- padding: 2px 0px 0px 2px;
-}
-
-.calendar thead .daynames { /* Row <TR> containing the day names */
- background: #dfb;
-}
-
-/* The body part -- contains all the days in month. */
-
-.calendar tbody .day { /* Cells <TD> containing month days dates */
- width: 2em;
- color: #564;
- text-align: right;
- padding: 2px 4px 2px 2px;
-}
-.calendar tbody .day.othermonth {
- font-size: 80%;
- color: #bbb;
-}
-.calendar tbody .day.othermonth.oweekend {
- color: #fbb;
-}
-
-.calendar table .wn {
- padding: 2px 3px 2px 2px;
- border-right: 1px solid #8a8;
- background: #dfb;
-}
-
-.calendar tbody .rowhilite td {
- background: #dfd;
-}
-
-.calendar tbody .rowhilite td.wn {
- background: #efe;
-}
-
-.calendar tbody td.hilite { /* Hovered cells <TD> */
- background: #efd;
- padding: 1px 3px 1px 1px;
- border: 1px solid #bbb;
-}
-
-.calendar tbody td.active { /* Active (pressed) cells <TD> */
- background: #dec;
- padding: 2px 2px 0px 2px;
-}
-
-.calendar tbody td.selected { /* Cell showing today date */
- font-weight: bold;
- border: 1px solid #000;
- padding: 1px 3px 1px 1px;
- background: #f8fff8;
- color: #000;
-}
-
-.calendar tbody td.weekend { /* Cells showing weekend days */
- color: #a66;
-}
-
-.calendar tbody td.today { font-weight: bold; color: #0a0; }
-
-.calendar tbody .disabled { color: #999; }
-
-.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
- visibility: hidden;
-}
-
-.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
- display: none;
-}
-
-/* The footer part -- status bar and "Close" button */
-
-.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
- text-align: center;
- background: #565;
- color: #fff;
-}
-
-.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
- padding: 2px;
- background: #250;
- color: #efa;
-}
-
-.calendar tfoot .hilite { /* Hover style for buttons in footer */
- background: #afa;
- border: 1px solid #084;
- color: #000;
- padding: 1px;
-}
-
-.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
- background: #7c7;
- padding: 2px 0px 0px 2px;
-}
-
-/* Combo boxes (menus that display months/years for direct selection) */
-
-.calendar .combo {
- position: absolute;
- display: none;
- top: 0px;
- left: 0px;
- width: 4em;
- cursor: default;
- border: 1px solid #565;
- background: #efd;
- color: #000;
- font-size: 90%;
- z-index: 100;
-}
-
-.calendar .combo .label,
-.calendar .combo .label-IEfix {
- text-align: center;
- padding: 1px;
-}
-
-.calendar .combo .label-IEfix {
- width: 4em;
-}
-
-.calendar .combo .hilite {
- background: #af8;
-}
-
-.calendar .combo .active {
- border-top: 1px solid #6a4;
- border-bottom: 1px solid #6a4;
- background: #efe;
- font-weight: bold;
-}
-
-.calendar td.time {
- border-top: 1px solid #8a8;
- padding: 1px 0px;
- text-align: center;
- background-color: #dfb;
-}
-
-.calendar td.time .hour,
-.calendar td.time .minute,
-.calendar td.time .ampm {
- padding: 0px 3px 0px 4px;
- border: 1px solid #898;
- font-weight: bold;
- background-color: #fff;
-}
-
-.calendar td.time .ampm {
- text-align: center;
-}
-
-.calendar td.time .colon {
- padding: 0px 2px 0px 3px;
- font-weight: bold;
-}
-
-.calendar td.time span.hilite {
- border-color: #000;
- background-color: #686;
- color: #fff;
-}
-
-.calendar td.time span.active {
- border-color: #f00;
- background-color: #000;
- color: #0f0;
-}
diff --git a/WebContent/themes/default/jscalendar/calendar-setup.js b/WebContent/themes/default/jscalendar/calendar-setup.js
deleted file mode 100644
index 7f3855c07a..0000000000
--- a/WebContent/themes/default/jscalendar/calendar-setup.js
+++ /dev/null
@@ -1,200 +0,0 @@
-/* Copyright Mihai Bazon, 2002, 2003 | http://dynarch.com/mishoo/
- * ---------------------------------------------------------------------------
- *
- * The DHTML Calendar
- *
- * Details and latest version at:
- * http://dynarch.com/mishoo/calendar.epl
- *
- * This script is distributed under the GNU Lesser General Public License.
- * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
- *
- * This file defines helper functions for setting up the calendar. They are
- * intended to help non-programmers get a working calendar on their site
- * quickly. This script should not be seen as part of the calendar. It just
- * shows you what one can do with the calendar, while in the same time
- * providing a quick and simple method for setting it up. If you need
- * exhaustive customization of the calendar creation process feel free to
- * modify this code to suit your needs (this is recommended and much better
- * than modifying calendar.js itself).
- */
-
-// $Id: calendar-setup.js,v 1.1 2005/09/28 10:04:05 se Exp $
-
-/**
- * This function "patches" an input field (or other element) to use a calendar
- * widget for date selection.
- *
- * The "params" is a single object that can have the following properties:
- *
- * prop. name | description
- * -------------------------------------------------------------------------------------------------
- * inputField | the ID of an input field to store the date
- * displayArea | the ID of a DIV or other element to show the date
- * button | ID of a button or other element that will trigger the calendar
- * eventName | event that will trigger the calendar, without the "on" prefix (default: "click")
- * ifFormat | date format that will be stored in the input field
- * daFormat | the date format that will be used to display the date in displayArea
- * singleClick | (true/false) wether the calendar is in single click mode or not (default: true)
- * firstDay | numeric: 0 to 6. "0" means display Sunday first, "1" means display Monday first, etc.
- * align | alignment (default: "Br"); if you don't know what's this see the calendar documentation
- * range | array with 2 elements. Default: [1900, 2999] -- the range of years available
- * weekNumbers | (true/false) if it's true (default) the calendar will display week numbers
- * flat | null or element ID; if not null the calendar will be a flat calendar having the parent with the given ID
- * flatCallback | function that receives a JS Date object and returns an URL to point the browser to (for flat calendar)
- * disableFunc | function that receives a JS Date object and should return true if that date has to be disabled in the calendar
- * onSelect | function that gets called when a date is selected. You don't _have_ to supply this (the default is generally okay)
- * onClose | function that gets called when the calendar is closed. [default]
- * onUpdate | function that gets called after the date is updated in the input field. Receives a reference to the calendar.
- * date | the date that the calendar will be initially displayed to
- * showsTime | default: false; if true the calendar will include a time selector
- * timeFormat | the time format; can be "12" or "24", default is "12"
- * electric | if true (default) then given fields/date areas are updated for each move; otherwise they're updated only on close
- * step | configures the step of the years in drop-down boxes; default: 2
- * position | configures the calendar absolute position; default: null
- * cache | if "true" (but default: "false") it will reuse the same calendar object, where possible
- * showOthers | if "true" (but default: "false") it will show days from other months too
- *
- * None of them is required, they all have default values. However, if you
- * pass none of "inputField", "displayArea" or "button" you'll get a warning
- * saying "nothing to setup".
- */
-Calendar.setup = function (params) {
- function param_default(pname, def) { if (typeof params[pname] == "undefined") { params[pname] = def; } };
-
- param_default("inputField", null);
- param_default("displayArea", null);
- param_default("button", null);
- param_default("eventName", "click");
- param_default("ifFormat", "%Y/%m/%d");
- param_default("daFormat", "%Y/%m/%d");
- param_default("singleClick", true);
- param_default("disableFunc", null);
- param_default("dateStatusFunc", params["disableFunc"]); // takes precedence if both are defined
- param_default("dateText", null);
- param_default("firstDay", null);
- param_default("align", "Br");
- param_default("range", [1900, 2999]);
- param_default("weekNumbers", true);
- param_default("flat", null);
- param_default("flatCallback", null);
- param_default("onSelect", null);
- param_default("onClose", null);
- param_default("onUpdate", null);
- param_default("date", null);
- param_default("showsTime", false);
- param_default("timeFormat", "24");
- param_default("electric", true);
- param_default("step", 2);
- param_default("position", null);
- param_default("cache", false);
- param_default("showOthers", false);
- param_default("multiple", null);
-
- var tmp = ["inputField", "displayArea", "button"];
- for (var i in tmp) {
- if (typeof params[tmp[i]] == "string") {
- params[tmp[i]] = document.getElementById(params[tmp[i]]);
- }
- }
- if (!(params.flat || params.multiple || params.inputField || params.displayArea || params.button)) {
- alert("Calendar.setup:\n Nothing to setup (no fields found). Please check your code");
- return false;
- }
-
- function onSelect(cal) {
- var p = cal.params;
- var update = (cal.dateClicked || p.electric);
- if (update && p.inputField) {
- p.inputField.value = cal.date.print(p.ifFormat);
- if (typeof p.inputField.onchange == "function")
- p.inputField.onchange();
- }
- if (update && p.displayArea)
- p.displayArea.innerHTML = cal.date.print(p.daFormat);
- if (update && typeof p.onUpdate == "function")
- p.onUpdate(cal);
- if (update && p.flat) {
- if (typeof p.flatCallback == "function")
- p.flatCallback(cal);
- }
- if (update && p.singleClick && cal.dateClicked)
- cal.callCloseHandler();
- };
-
- if (params.flat != null) {
- if (typeof params.flat == "string")
- params.flat = document.getElementById(params.flat);
- if (!params.flat) {
- alert("Calendar.setup:\n Flat specified but can't find parent.");
- return false;
- }
- var cal = new Calendar(params.firstDay, params.date, params.onSelect || onSelect);
- cal.showsOtherMonths = params.showOthers;
- cal.showsTime = params.showsTime;
- cal.time24 = (params.timeFormat == "24");
- cal.params = params;
- cal.weekNumbers = params.weekNumbers;
- cal.setRange(params.range[0], params.range[1]);
- cal.setDateStatusHandler(params.dateStatusFunc);
- cal.getDateText = params.dateText;
- if (params.ifFormat) {
- cal.setDateFormat(params.ifFormat);
- }
- if (params.inputField && typeof params.inputField.value == "string") {
- cal.parseDate(params.inputField.value);
- }
- cal.create(params.flat);
- cal.show();
- return false;
- }
-
- var triggerEl = params.button || params.displayArea || params.inputField;
- triggerEl["on" + params.eventName] = function() {
- var dateEl = params.inputField || params.displayArea;
- var dateFmt = params.inputField ? params.ifFormat : params.daFormat;
- var mustCreate = false;
- var cal = window.calendar;
- if (dateEl)
- params.date = Date.parseDate(dateEl.value || dateEl.innerHTML, dateFmt);
- if (!(cal && params.cache)) {
- window.calendar = cal = new Calendar(params.firstDay,
- params.date,
- params.onSelect || onSelect,
- params.onClose || function(cal) { cal.hide(); });
- cal.showsTime = params.showsTime;
- cal.time24 = (params.timeFormat == "24");
- cal.weekNumbers = params.weekNumbers;
- mustCreate = true;
- } else {
- if (params.date)
- cal.setDate(params.date);
- cal.hide();
- }
- if (params.multiple) {
- cal.multiple = {};
- for (var i = params.multiple.length; --i >= 0;) {
- var d = params.multiple[i];
- var ds = d.print("%Y%m%d");
- cal.multiple[ds] = d;
- }
- }
- cal.showsOtherMonths = params.showOthers;
- cal.yearStep = params.step;
- cal.setRange(params.range[0], params.range[1]);
- cal.params = params;
- cal.setDateStatusHandler(params.dateStatusFunc);
- cal.getDateText = params.dateText;
- cal.setDateFormat(dateFmt);
- if (mustCreate)
- cal.create();
- cal.refresh();
- if (!params.position)
- cal.showAtElement(params.button || params.displayArea || params.inputField, params.align);
- else
- cal.showAt(params.position[0], params.position[1]);
- return false;
- };
-
- return cal;
-};
diff --git a/WebContent/themes/default/jscalendar/calendar-setup_stripped.js b/WebContent/themes/default/jscalendar/calendar-setup_stripped.js
deleted file mode 100644
index 91c927f82e..0000000000
--- a/WebContent/themes/default/jscalendar/calendar-setup_stripped.js
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright Mihai Bazon, 2002, 2003 | http://dynarch.com/mishoo/
- * ---------------------------------------------------------------------------
- *
- * The DHTML Calendar
- *
- * Details and latest version at:
- * http://dynarch.com/mishoo/calendar.epl
- *
- * This script is distributed under the GNU Lesser General Public License.
- * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
- *
- * This file defines helper functions for setting up the calendar. They are
- * intended to help non-programmers get a working calendar on their site
- * quickly. This script should not be seen as part of the calendar. It just
- * shows you what one can do with the calendar, while in the same time
- * providing a quick and simple method for setting it up. If you need
- * exhaustive customization of the calendar creation process feel free to
- * modify this code to suit your needs (this is recommended and much better
- * than modifying calendar.js itself).
- */
- Calendar.setup=function(params){function param_default(pname,def){if(typeof params[pname]=="undefined"){params[pname]=def;}};param_default("inputField",null);param_default("displayArea",null);param_default("button",null);param_default("eventName","click");param_default("ifFormat","%Y/%m/%d");param_default("daFormat","%Y/%m/%d");param_default("singleClick",true);param_default("disableFunc",null);param_default("dateStatusFunc",params["disableFunc"]);param_default("dateText",null);param_default("firstDay",null);param_default("align","Br");param_default("range",[1900,2999]);param_default("weekNumbers",true);param_default("flat",null);param_default("flatCallback",null);param_default("onSelect",null);param_default("onClose",null);param_default("onUpdate",null);param_default("date",null);param_default("showsTime",false);param_default("timeFormat","24");param_default("electric",true);param_default("step",2);param_default("position",null);param_default("cache",false);param_default("showOthers",false);param_default("multiple",null);var tmp=["inputField","displayArea","button"];for(var i in tmp){if(typeof params[tmp[i]]=="string"){params[tmp[i]]=document.getElementById(params[tmp[i]]);}}if(!(params.flat||params.multiple||params.inputField||params.displayArea||params.button)){alert("Calendar.setup:\n Nothing to setup (no fields found). Please check your code");return false;}function onSelect(cal){var p=cal.params;var update=(cal.dateClicked||p.electric);if(update&&p.inputField){p.inputField.value=cal.date.print(p.ifFormat);if(typeof p.inputField.onchange=="function")p.inputField.onchange();}if(update&&p.displayArea)p.displayArea.innerHTML=cal.date.print(p.daFormat);if(update&&typeof p.onUpdate=="function")p.onUpdate(cal);if(update&&p.flat){if(typeof p.flatCallback=="function")p.flatCallback(cal);}if(update&&p.singleClick&&cal.dateClicked)cal.callCloseHandler();};if(params.flat!=null){if(typeof params.flat=="string")params.flat=document.getElementById(params.flat);if(!params.flat){alert("Calendar.setup:\n Flat specified but can't find parent.");return false;}var cal=new Calendar(params.firstDay,params.date,params.onSelect||onSelect);cal.showsOtherMonths=params.showOthers;cal.showsTime=params.showsTime;cal.time24=(params.timeFormat=="24");cal.params=params;cal.weekNumbers=params.weekNumbers;cal.setRange(params.range[0],params.range[1]);cal.setDateStatusHandler(params.dateStatusFunc);cal.getDateText=params.dateText;if(params.ifFormat){cal.setDateFormat(params.ifFormat);}if(params.inputField&&typeof params.inputField.value=="string"){cal.parseDate(params.inputField.value);}cal.create(params.flat);cal.show();return false;}var triggerEl=params.button||params.displayArea||params.inputField;triggerEl["on"+params.eventName]=function(){var dateEl=params.inputField||params.displayArea;var dateFmt=params.inputField?params.ifFormat:params.daFormat;var mustCreate=false;var cal=window.calendar;if(dateEl)params.date=Date.parseDate(dateEl.value||dateEl.innerHTML,dateFmt);if(!(cal&&params.cache)){window.calendar=cal=new Calendar(params.firstDay,params.date,params.onSelect||onSelect,params.onClose||function(cal){cal.hide();});cal.showsTime=params.showsTime;cal.time24=(params.timeFormat=="24");cal.weekNumbers=params.weekNumbers;mustCreate=true;}else{if(params.date)cal.setDate(params.date);cal.hide();}if(params.multiple){cal.multiple={};for(var i=params.multiple.length;--i>=0;){var d=params.multiple[i];var ds=d.print("%Y%m%d");cal.multiple[ds]=d;}}cal.showsOtherMonths=params.showOthers;cal.yearStep=params.step;cal.setRange(params.range[0],params.range[1]);cal.params=params;cal.setDateStatusHandler(params.dateStatusFunc);cal.getDateText=params.dateText;cal.setDateFormat(dateFmt);if(mustCreate)cal.create();cal.refresh();if(!params.position)cal.showAtElement(params.button||params.displayArea||params.inputField,params.align);else cal.showAt(params.position[0],params.position[1]);return false;};return cal;}; \ No newline at end of file
diff --git a/WebContent/themes/default/jscalendar/calendar-system.css b/WebContent/themes/default/jscalendar/calendar-system.css
deleted file mode 100644
index b22488572e..0000000000
--- a/WebContent/themes/default/jscalendar/calendar-system.css
+++ /dev/null
@@ -1,251 +0,0 @@
-/* The main calendar widget. DIV containing a table. */
-
-.calendar {
- position: relative;
- display: none;
- border: 1px solid;
- border-color: #fff #000 #000 #fff;
- font-size: 11px;
- cursor: default;
- background: Window;
- color: WindowText;
- font-family: tahoma,verdana,sans-serif;
-}
-
-.calendar table {
- border: 1px solid;
- border-color: #fff #000 #000 #fff;
- font-size: 11px;
- cursor: default;
- background: Window;
- color: WindowText;
- font-family: tahoma,verdana,sans-serif;
-}
-
-/* Header part -- contains navigation buttons and day names. */
-
-.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
- text-align: center;
- padding: 1px;
- border: 1px solid;
- border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
- background: ButtonFace;
-}
-
-.calendar .nav {
- background: ButtonFace url(menuarrow.gif) no-repeat 100% 100%;
-}
-
-.calendar thead .title { /* This holds the current "month, year" */
- font-weight: bold;
- padding: 1px;
- border: 1px solid #000;
- background: ActiveCaption;
- color: CaptionText;
- text-align: center;
-}
-
-.calendar thead .headrow { /* Row <TR> containing navigation buttons */
-}
-
-.calendar thead .daynames { /* Row <TR> containing the day names */
-}
-
-.calendar thead .name { /* Cells <TD> containing the day names */
- border-bottom: 1px solid ButtonShadow;
- padding: 2px;
- text-align: center;
- background: ButtonFace;
- color: ButtonText;
-}
-
-.calendar thead .weekend { /* How a weekend day name shows in header */
- color: #f00;
-}
-
-.calendar thead .hilite { /* How do the buttons in header appear when hover */
- border: 2px solid;
- padding: 0px;
- border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
-}
-
-.calendar thead .active { /* Active (pressed) buttons in header */
- border-width: 1px;
- padding: 2px 0px 0px 2px;
- border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
-}
-
-/* The body part -- contains all the days in month. */
-
-.calendar tbody .day { /* Cells <TD> containing month days dates */
- width: 2em;
- text-align: right;
- padding: 2px 4px 2px 2px;
-}
-.calendar tbody .day.othermonth {
- font-size: 80%;
- color: #aaa;
-}
-.calendar tbody .day.othermonth.oweekend {
- color: #faa;
-}
-
-.calendar table .wn {
- padding: 2px 3px 2px 2px;
- border-right: 1px solid ButtonShadow;
- background: ButtonFace;
- color: ButtonText;
-}
-
-.calendar tbody .rowhilite td {
- background: Highlight;
- color: HighlightText;
-}
-
-.calendar tbody td.hilite { /* Hovered cells <TD> */
- padding: 1px 3px 1px 1px;
- border-top: 1px solid #fff;
- border-right: 1px solid #000;
- border-bottom: 1px solid #000;
- border-left: 1px solid #fff;
-}
-
-.calendar tbody td.active { /* Active (pressed) cells <TD> */
- padding: 2px 2px 0px 2px;
- border: 1px solid;
- border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
-}
-
-.calendar tbody td.selected { /* Cell showing selected date */
- font-weight: bold;
- border: 1px solid;
- border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
- padding: 2px 2px 0px 2px;
- background: ButtonFace;
- color: ButtonText;
-}
-
-.calendar tbody td.weekend { /* Cells showing weekend days */
- color: #f00;
-}
-
-.calendar tbody td.today { /* Cell showing today date */
- font-weight: bold;
- color: #00f;
-}
-
-.calendar tbody td.disabled { color: GrayText; }
-
-.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
- visibility: hidden;
-}
-
-.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
- display: none;
-}
-
-/* The footer part -- status bar and "Close" button */
-
-.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
-}
-
-.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
- background: ButtonFace;
- padding: 1px;
- border: 1px solid;
- border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
- color: ButtonText;
- text-align: center;
-}
-
-.calendar tfoot .hilite { /* Hover style for buttons in footer */
- border-top: 1px solid #fff;
- border-right: 1px solid #000;
- border-bottom: 1px solid #000;
- border-left: 1px solid #fff;
- padding: 1px;
- background: #e4e0d8;
-}
-
-.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
- padding: 2px 0px 0px 2px;
- border-top: 1px solid #000;
- border-right: 1px solid #fff;
- border-bottom: 1px solid #fff;
- border-left: 1px solid #000;
-}
-
-/* Combo boxes (menus that display months/years for direct selection) */
-
-.calendar .combo {
- position: absolute;
- display: none;
- width: 4em;
- top: 0px;
- left: 0px;
- cursor: default;
- border: 1px solid;
- border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
- background: Menu;
- color: MenuText;
- font-size: 90%;
- padding: 1px;
- z-index: 100;
-}
-
-.calendar .combo .label,
-.calendar .combo .label-IEfix {
- text-align: center;
- padding: 1px;
-}
-
-.calendar .combo .label-IEfix {
- width: 4em;
-}
-
-.calendar .combo .active {
- padding: 0px;
- border: 1px solid #000;
-}
-
-.calendar .combo .hilite {
- background: Highlight;
- color: HighlightText;
-}
-
-.calendar td.time {
- border-top: 1px solid ButtonShadow;
- padding: 1px 0px;
- text-align: center;
- background-color: ButtonFace;
-}
-
-.calendar td.time .hour,
-.calendar td.time .minute,
-.calendar td.time .ampm {
- padding: 0px 3px 0px 4px;
- border: 1px solid #889;
- font-weight: bold;
- background-color: Menu;
-}
-
-.calendar td.time .ampm {
- text-align: center;
-}
-
-.calendar td.time .colon {
- padding: 0px 2px 0px 3px;
- font-weight: bold;
-}
-
-.calendar td.time span.hilite {
- border-color: #000;
- background-color: Highlight;
- color: HighlightText;
-}
-
-.calendar td.time span.active {
- border-color: #f00;
- background-color: #000;
- color: #0f0;
-}
diff --git a/WebContent/themes/default/jscalendar/calendar-tas.css b/WebContent/themes/default/jscalendar/calendar-tas.css
deleted file mode 100644
index c2f872168c..0000000000
--- a/WebContent/themes/default/jscalendar/calendar-tas.css
+++ /dev/null
@@ -1,239 +0,0 @@
-/* The main calendar widget. DIV containing a table. */
-
-div.calendar { position: relative; }
-
-.calendar, .calendar table {
- border: 1px solid #655;
- font-size: 11px;
- color: #000;
- cursor: default;
- background: #ffd;
- font-family: tahoma,verdana,sans-serif;
- filter:
-progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#DDDCCC,EndColorStr=#FFFFFF);
-}
-
-/* Header part -- contains navigation buttons and day names. */
-
-.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
- text-align: center; /* They are the navigation buttons */
- padding: 2px; /* Make the buttons seem like they're pressing */
- color:#363636;
-}
-
-.calendar .nav {
- background: #edc url(menuarrow.gif) no-repeat 100% 100%;
-}
-
-.calendar thead .title { /* This holds the current "month, year" */
- font-weight: bold; /* Pressing it will take you to the current date */
- text-align: center;
- background: #654;
- color: #363636;
- padding: 2px;
- filter:
-progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#ffffff,EndColorStr=#dddccc);
-}
-
-.calendar thead .headrow { /* Row <TR> containing navigation buttons */
- /*background: #3B86A0;*/
- color: #363636;
- font-weight: bold;
-filter:
-progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#ffffff,EndColorStr=#3b86a0);
-}
-
-.calendar thead .name { /* Cells <TD> containing the day names */
- border-bottom: 1px solid #655;
- padding: 2px;
- text-align: center;
- color: #363636;
- filter:
-progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#DDDCCC,EndColorStr=#FFFFFF);
-}
-
-.calendar thead .weekend { /* How a weekend day name shows in header */
- color: #f00;
-}
-
-.calendar thead .hilite { /* How do the buttons in header appear when hover */
- background-color: #ffcc86;
- color: #000;
- border: 1px solid #b59345;
- padding: 1px;
-}
-
-.calendar thead .active { /* Active (pressed) buttons in header */
- background-color: #c77;
- padding: 2px 0px 0px 2px;
-}
-
-.calendar thead .daynames { /* Row <TR> containing the day names */
- background: #fed;
-}
-
-/* The body part -- contains all the days in month. */
-
-.calendar tbody .day { /* Cells <TD> containing month days dates */
- width: 2em;
- text-align: right;
- padding: 2px 4px 2px 2px;
-}
-.calendar tbody .day.othermonth {
- font-size: 80%;
- color: #aaa;
-}
-.calendar tbody .day.othermonth.oweekend {
- color: #faa;
-}
-
-.calendar table .wn {
- padding: 2px 3px 2px 2px;
- border-right: 1px solid #000;
- background: #fed;
-}
-
-.calendar tbody .rowhilite td {
- background: #ddf;
-
-}
-
-.calendar tbody .rowhilite td.wn {
- background: #efe;
-}
-
-.calendar tbody td.hilite { /* Hovered cells <TD> */
- background: #ffe;
- padding: 1px 3px 1px 1px;
- border: 1px solid #bbb;
-}
-
-.calendar tbody td.active { /* Active (pressed) cells <TD> */
- background: #ddc;
- padding: 2px 2px 0px 2px;
-}
-
-.calendar tbody td.selected { /* Cell showing today date */
- font-weight: bold;
- border: 1px solid #000;
- padding: 1px 3px 1px 1px;
- background: #fea;
-}
-
-.calendar tbody td.weekend { /* Cells showing weekend days */
- color: #f00;
-}
-
-.calendar tbody td.today { font-weight: bold; }
-
-.calendar tbody .disabled { color: #999; }
-
-.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
- visibility: hidden;
-}
-
-.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
- display: none;
-}
-
-/* The footer part -- status bar and "Close" button */
-
-.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
- text-align: center;
- background: #988;
- color: #000;
-
-}
-
-.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
- border-top: 1px solid #655;
- background: #dcb;
- color: #363636;
- font-weight: bold;
- filter:
-progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#FFFFFF,EndColorStr=#DDDCCC);
-}
-.calendar tfoot .hilite { /* Hover style for buttons in footer */
- background: #faa;
- border: 1px solid #f40;
- padding: 1px;
-}
-
-.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
- background: #c77;
- padding: 2px 0px 0px 2px;
-}
-
-/* Combo boxes (menus that display months/years for direct selection) */
-
-.combo {
- position: absolute;
- display: none;
- top: 0px;
- left: 0px;
- width: 4em;
- cursor: default;
- border: 1px solid #655;
- background: #ffe;
- color: #000;
- font-size: smaller;
- z-index: 100;
-}
-
-.combo .label,
-.combo .label-IEfix {
- text-align: center;
- padding: 1px;
-}
-
-.combo .label-IEfix {
- width: 4em;
-}
-
-.combo .hilite {
- background: #fc8;
-}
-
-.combo .active {
- border-top: 1px solid #a64;
- border-bottom: 1px solid #a64;
- background: #fee;
- font-weight: bold;
-}
-
-.calendar td.time {
- border-top: 1px solid #a88;
- padding: 1px 0px;
- text-align: center;
- background-color: #fed;
-}
-
-.calendar td.time .hour,
-.calendar td.time .minute,
-.calendar td.time .ampm {
- padding: 0px 3px 0px 4px;
- border: 1px solid #988;
- font-weight: bold;
- background-color: #fff;
-}
-
-.calendar td.time .ampm {
- text-align: center;
-}
-
-.calendar td.time .colon {
- padding: 0px 2px 0px 3px;
- font-weight: bold;
-}
-
-.calendar td.time span.hilite {
- border-color: #000;
- background-color: #866;
- color: #fff;
-}
-
-.calendar td.time span.active {
- border-color: #f00;
- background-color: #000;
- color: #0f0;
-}
diff --git a/WebContent/themes/default/jscalendar/calendar-win2k-1.css b/WebContent/themes/default/jscalendar/calendar-win2k-1.css
deleted file mode 100644
index 8c5d026657..0000000000
--- a/WebContent/themes/default/jscalendar/calendar-win2k-1.css
+++ /dev/null
@@ -1,271 +0,0 @@
-/* The main calendar widget. DIV containing a table. */
-
-.calendar {
- position: relative;
- display: none;
- border-top: 2px solid #fff;
- border-right: 2px solid #000;
- border-bottom: 2px solid #000;
- border-left: 2px solid #fff;
- font-size: 11px;
- color: #000;
- cursor: default;
- background: #d4d0c8;
- font-family: tahoma,verdana,sans-serif;
-}
-
-.calendar table {
- border-top: 1px solid #000;
- border-right: 1px solid #fff;
- border-bottom: 1px solid #fff;
- border-left: 1px solid #000;
- font-size: 11px;
- color: #000;
- cursor: default;
- background: #d4d0c8;
- font-family: tahoma,verdana,sans-serif;
-}
-
-/* Header part -- contains navigation buttons and day names. */
-
-.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
- text-align: center;
- padding: 1px;
- border-top: 1px solid #fff;
- border-right: 1px solid #000;
- border-bottom: 1px solid #000;
- border-left: 1px solid #fff;
-}
-
-.calendar .nav {
- background: transparent url(menuarrow.gif) no-repeat 100% 100%;
-}
-
-.calendar thead .title { /* This holds the current "month, year" */
- font-weight: bold;
- padding: 1px;
- border: 1px solid #000;
- background: #848078;
- color: #fff;
- text-align: center;
-}
-
-.calendar thead .headrow { /* Row <TR> containing navigation buttons */
-}
-
-.calendar thead .daynames { /* Row <TR> containing the day names */
-}
-
-.calendar thead .name { /* Cells <TD> containing the day names */
- border-bottom: 1px solid #000;
- padding: 2px;
- text-align: center;
- background: #f4f0e8;
-}
-
-.calendar thead .weekend { /* How a weekend day name shows in header */
- color: #f00;
-}
-
-.calendar thead .hilite { /* How do the buttons in header appear when hover */
- border-top: 2px solid #fff;
- border-right: 2px solid #000;
- border-bottom: 2px solid #000;
- border-left: 2px solid #fff;
- padding: 0px;
- background-color: #e4e0d8;
-}
-
-.calendar thead .active { /* Active (pressed) buttons in header */
- padding: 2px 0px 0px 2px;
- border-top: 1px solid #000;
- border-right: 1px solid #fff;
- border-bottom: 1px solid #fff;
- border-left: 1px solid #000;
- background-color: #c4c0b8;
-}
-
-/* The body part -- contains all the days in month. */
-
-.calendar tbody .day { /* Cells <TD> containing month days dates */
- width: 2em;
- text-align: right;
- padding: 2px 4px 2px 2px;
-}
-.calendar tbody .day.othermonth {
- font-size: 80%;
- color: #aaa;
-}
-.calendar tbody .day.othermonth.oweekend {
- color: #faa;
-}
-
-.calendar table .wn {
- padding: 2px 3px 2px 2px;
- border-right: 1px solid #000;
- background: #f4f0e8;
-}
-
-.calendar tbody .rowhilite td {
- background: #e4e0d8;
-}
-
-.calendar tbody .rowhilite td.wn {
- background: #d4d0c8;
-}
-
-.calendar tbody td.hilite { /* Hovered cells <TD> */
- padding: 1px 3px 1px 1px;
- border-top: 1px solid #fff;
- border-right: 1px solid #000;
- border-bottom: 1px solid #000;
- border-left: 1px solid #fff;
-}
-
-.calendar tbody td.active { /* Active (pressed) cells <TD> */
- padding: 2px 2px 0px 2px;
- border-top: 1px solid #000;
- border-right: 1px solid #fff;
- border-bottom: 1px solid #fff;
- border-left: 1px solid #000;
-}
-
-.calendar tbody td.selected { /* Cell showing selected date */
- font-weight: bold;
- border-top: 1px solid #000;
- border-right: 1px solid #fff;
- border-bottom: 1px solid #fff;
- border-left: 1px solid #000;
- padding: 2px 2px 0px 2px;
- background: #e4e0d8;
-}
-
-.calendar tbody td.weekend { /* Cells showing weekend days */
- color: #f00;
-}
-
-.calendar tbody td.today { /* Cell showing today date */
- font-weight: bold;
- color: #00f;
-}
-
-.calendar tbody .disabled { color: #999; }
-
-.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
- visibility: hidden;
-}
-
-.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
- display: none;
-}
-
-/* The footer part -- status bar and "Close" button */
-
-.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
-}
-
-.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
- background: #f4f0e8;
- padding: 1px;
- border: 1px solid #000;
- background: #848078;
- color: #fff;
- text-align: center;
-}
-
-.calendar tfoot .hilite { /* Hover style for buttons in footer */
- border-top: 1px solid #fff;
- border-right: 1px solid #000;
- border-bottom: 1px solid #000;
- border-left: 1px solid #fff;
- padding: 1px;
- background: #e4e0d8;
-}
-
-.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
- padding: 2px 0px 0px 2px;
- border-top: 1px solid #000;
- border-right: 1px solid #fff;
- border-bottom: 1px solid #fff;
- border-left: 1px solid #000;
-}
-
-/* Combo boxes (menus that display months/years for direct selection) */
-
-.calendar .combo {
- position: absolute;
- display: none;
- width: 4em;
- top: 0px;
- left: 0px;
- cursor: default;
- border-top: 1px solid #fff;
- border-right: 1px solid #000;
- border-bottom: 1px solid #000;
- border-left: 1px solid #fff;
- background: #e4e0d8;
- font-size: 90%;
- padding: 1px;
- z-index: 100;
-}
-
-.calendar .combo .label,
-.calendar .combo .label-IEfix {
- text-align: center;
- padding: 1px;
-}
-
-.calendar .combo .label-IEfix {
- width: 4em;
-}
-
-.calendar .combo .active {
- background: #c4c0b8;
- padding: 0px;
- border-top: 1px solid #000;
- border-right: 1px solid #fff;
- border-bottom: 1px solid #fff;
- border-left: 1px solid #000;
-}
-
-.calendar .combo .hilite {
- background: #048;
- color: #fea;
-}
-
-.calendar td.time {
- border-top: 1px solid #000;
- padding: 1px 0px;
- text-align: center;
- background-color: #f4f0e8;
-}
-
-.calendar td.time .hour,
-.calendar td.time .minute,
-.calendar td.time .ampm {
- padding: 0px 3px 0px 4px;
- border: 1px solid #889;
- font-weight: bold;
- background-color: #fff;
-}
-
-.calendar td.time .ampm {
- text-align: center;
-}
-
-.calendar td.time .colon {
- padding: 0px 2px 0px 3px;
- font-weight: bold;
-}
-
-.calendar td.time span.hilite {
- border-color: #000;
- background-color: #766;
- color: #fff;
-}
-
-.calendar td.time span.active {
- border-color: #f00;
- background-color: #000;
- color: #0f0;
-}
diff --git a/WebContent/themes/default/jscalendar/calendar-win2k-2.css b/WebContent/themes/default/jscalendar/calendar-win2k-2.css
deleted file mode 100644
index 6f37b7dcd7..0000000000
--- a/WebContent/themes/default/jscalendar/calendar-win2k-2.css
+++ /dev/null
@@ -1,271 +0,0 @@
-/* The main calendar widget. DIV containing a table. */
-
-.calendar {
- position: relative;
- display: none;
- border-top: 2px solid #fff;
- border-right: 2px solid #000;
- border-bottom: 2px solid #000;
- border-left: 2px solid #fff;
- font-size: 11px;
- color: #000;
- cursor: default;
- background: #d4c8d0;
- font-family: tahoma,verdana,sans-serif;
-}
-
-.calendar table {
- border-top: 1px solid #000;
- border-right: 1px solid #fff;
- border-bottom: 1px solid #fff;
- border-left: 1px solid #000;
- font-size: 11px;
- color: #000;
- cursor: default;
- background: #d4c8d0;
- font-family: tahoma,verdana,sans-serif;
-}
-
-/* Header part -- contains navigation buttons and day names. */
-
-.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
- text-align: center;
- padding: 1px;
- border-top: 1px solid #fff;
- border-right: 1px solid #000;
- border-bottom: 1px solid #000;
- border-left: 1px solid #fff;
-}
-
-.calendar .nav {
- background: transparent url(menuarrow.gif) no-repeat 100% 100%;
-}
-
-.calendar thead .title { /* This holds the current "month, year" */
- font-weight: bold;
- padding: 1px;
- border: 1px solid #000;
- background: #847880;
- color: #fff;
- text-align: center;
-}
-
-.calendar thead .headrow { /* Row <TR> containing navigation buttons */
-}
-
-.calendar thead .daynames { /* Row <TR> containing the day names */
-}
-
-.calendar thead .name { /* Cells <TD> containing the day names */
- border-bottom: 1px solid #000;
- padding: 2px;
- text-align: center;
- background: #f4e8f0;
-}
-
-.calendar thead .weekend { /* How a weekend day name shows in header */
- color: #f00;
-}
-
-.calendar thead .hilite { /* How do the buttons in header appear when hover */
- border-top: 2px solid #fff;
- border-right: 2px solid #000;
- border-bottom: 2px solid #000;
- border-left: 2px solid #fff;
- padding: 0px;
- background-color: #e4d8e0;
-}
-
-.calendar thead .active { /* Active (pressed) buttons in header */
- padding: 2px 0px 0px 2px;
- border-top: 1px solid #000;
- border-right: 1px solid #fff;
- border-bottom: 1px solid #fff;
- border-left: 1px solid #000;
- background-color: #c4b8c0;
-}
-
-/* The body part -- contains all the days in month. */
-
-.calendar tbody .day { /* Cells <TD> containing month days dates */
- width: 2em;
- text-align: right;
- padding: 2px 4px 2px 2px;
-}
-.calendar tbody .day.othermonth {
- font-size: 80%;
- color: #aaa;
-}
-.calendar tbody .day.othermonth.oweekend {
- color: #faa;
-}
-
-.calendar table .wn {
- padding: 2px 3px 2px 2px;
- border-right: 1px solid #000;
- background: #f4e8f0;
-}
-
-.calendar tbody .rowhilite td {
- background: #e4d8e0;
-}
-
-.calendar tbody .rowhilite td.wn {
- background: #d4c8d0;
-}
-
-.calendar tbody td.hilite { /* Hovered cells <TD> */
- padding: 1px 3px 1px 1px;
- border-top: 1px solid #fff;
- border-right: 1px solid #000;
- border-bottom: 1px solid #000;
- border-left: 1px solid #fff;
-}
-
-.calendar tbody td.active { /* Active (pressed) cells <TD> */
- padding: 2px 2px 0px 2px;
- border-top: 1px solid #000;
- border-right: 1px solid #fff;
- border-bottom: 1px solid #fff;
- border-left: 1px solid #000;
-}
-
-.calendar tbody td.selected { /* Cell showing selected date */
- font-weight: bold;
- border-top: 1px solid #000;
- border-right: 1px solid #fff;
- border-bottom: 1px solid #fff;
- border-left: 1px solid #000;
- padding: 2px 2px 0px 2px;
- background: #e4d8e0;
-}
-
-.calendar tbody td.weekend { /* Cells showing weekend days */
- color: #f00;
-}
-
-.calendar tbody td.today { /* Cell showing today date */
- font-weight: bold;
- color: #00f;
-}
-
-.calendar tbody .disabled { color: #999; }
-
-.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
- visibility: hidden;
-}
-
-.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
- display: none;
-}
-
-/* The footer part -- status bar and "Close" button */
-
-.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
-}
-
-.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
- background: #f4e8f0;
- padding: 1px;
- border: 1px solid #000;
- background: #847880;
- color: #fff;
- text-align: center;
-}
-
-.calendar tfoot .hilite { /* Hover style for buttons in footer */
- border-top: 1px solid #fff;
- border-right: 1px solid #000;
- border-bottom: 1px solid #000;
- border-left: 1px solid #fff;
- padding: 1px;
- background: #e4d8e0;
-}
-
-.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
- padding: 2px 0px 0px 2px;
- border-top: 1px solid #000;
- border-right: 1px solid #fff;
- border-bottom: 1px solid #fff;
- border-left: 1px solid #000;
-}
-
-/* Combo boxes (menus that display months/years for direct selection) */
-
-.calendar .combo {
- position: absolute;
- display: none;
- width: 4em;
- top: 0px;
- left: 0px;
- cursor: default;
- border-top: 1px solid #fff;
- border-right: 1px solid #000;
- border-bottom: 1px solid #000;
- border-left: 1px solid #fff;
- background: #e4d8e0;
- font-size: 90%;
- padding: 1px;
- z-index: 100;
-}
-
-.calendar .combo .label,
-.calendar .combo .label-IEfix {
- text-align: center;
- padding: 1px;
-}
-
-.calendar .combo .label-IEfix {
- width: 4em;
-}
-
-.calendar .combo .active {
- background: #d4c8d0;
- padding: 0px;
- border-top: 1px solid #000;
- border-right: 1px solid #fff;
- border-bottom: 1px solid #fff;
- border-left: 1px solid #000;
-}
-
-.calendar .combo .hilite {
- background: #408;
- color: #fea;
-}
-
-.calendar td.time {
- border-top: 1px solid #000;
- padding: 1px 0px;
- text-align: center;
- background-color: #f4f0e8;
-}
-
-.calendar td.time .hour,
-.calendar td.time .minute,
-.calendar td.time .ampm {
- padding: 0px 3px 0px 4px;
- border: 1px solid #889;
- font-weight: bold;
- background-color: #fff;
-}
-
-.calendar td.time .ampm {
- text-align: center;
-}
-
-.calendar td.time .colon {
- padding: 0px 2px 0px 3px;
- font-weight: bold;
-}
-
-.calendar td.time span.hilite {
- border-color: #000;
- background-color: #766;
- color: #fff;
-}
-
-.calendar td.time span.active {
- border-color: #f00;
- background-color: #000;
- color: #0f0;
-}
diff --git a/WebContent/themes/default/jscalendar/calendar-win2k-cold-1.css b/WebContent/themes/default/jscalendar/calendar-win2k-cold-1.css
deleted file mode 100644
index fa5c093217..0000000000
--- a/WebContent/themes/default/jscalendar/calendar-win2k-cold-1.css
+++ /dev/null
@@ -1,265 +0,0 @@
-/* The main calendar widget. DIV containing a table. */
-
-.calendar {
- position: relative;
- display: none;
- border-top: 2px solid #fff;
- border-right: 2px solid #000;
- border-bottom: 2px solid #000;
- border-left: 2px solid #fff;
- font-size: 11px;
- color: #000;
- cursor: default;
- background: #c8d0d4;
- font-family: tahoma,verdana,sans-serif;
-}
-
-.calendar table {
- border-top: 1px solid #000;
- border-right: 1px solid #fff;
- border-bottom: 1px solid #fff;
- border-left: 1px solid #000;
- font-size: 11px;
- color: #000;
- cursor: default;
- background: #c8d0d4;
- font-family: tahoma,verdana,sans-serif;
-}
-
-/* Header part -- contains navigation buttons and day names. */
-
-.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
- text-align: center;
- padding: 1px;
- border-top: 1px solid #fff;
- border-right: 1px solid #000;
- border-bottom: 1px solid #000;
- border-left: 1px solid #fff;
-}
-
-.calendar .nav {
- background: transparent url(menuarrow.gif) no-repeat 100% 100%;
-}
-
-.calendar thead .title { /* This holds the current "month, year" */
- font-weight: bold;
- padding: 1px;
- border: 1px solid #000;
- background: #788084;
- color: #fff;
- text-align: center;
-}
-
-.calendar thead .headrow { /* Row <TR> containing navigation buttons */
-}
-
-.calendar thead .daynames { /* Row <TR> containing the day names */
-}
-
-.calendar thead .name { /* Cells <TD> containing the day names */
- border-bottom: 1px solid #000;
- padding: 2px;
- text-align: center;
- background: #e8f0f4;
-}
-
-.calendar thead .weekend { /* How a weekend day name shows in header */
- color: #f00;
-}
-
-.calendar thead .hilite { /* How do the buttons in header appear when hover */
- border-top: 2px solid #fff;
- border-right: 2px solid #000;
- border-bottom: 2px solid #000;
- border-left: 2px solid #fff;
- padding: 0px;
- background-color: #d8e0e4;
-}
-
-.calendar thead .active { /* Active (pressed) buttons in header */
- padding: 2px 0px 0px 2px;
- border-top: 1px solid #000;
- border-right: 1px solid #fff;
- border-bottom: 1px solid #fff;
- border-left: 1px solid #000;
- background-color: #b8c0c4;
-}
-
-/* The body part -- contains all the days in month. */
-
-.calendar tbody .day { /* Cells <TD> containing month days dates */
- width: 2em;
- text-align: right;
- padding: 2px 4px 2px 2px;
-}
-.calendar tbody .day.othermonth {
- font-size: 80%;
- color: #aaa;
-}
-.calendar tbody .day.othermonth.oweekend {
- color: #faa;
-}
-
-.calendar table .wn {
- padding: 2px 3px 2px 2px;
- border-right: 1px solid #000;
- background: #e8f4f0;
-}
-
-.calendar tbody .rowhilite td {
- background: #d8e4e0;
-}
-
-.calendar tbody .rowhilite td.wn {
- background: #c8d4d0;
-}
-
-.calendar tbody td.hilite { /* Hovered cells <TD> */
- padding: 1px 3px 1px 1px;
- border: 1px solid;
- border-color: #fff #000 #000 #fff;
-}
-
-.calendar tbody td.active { /* Active (pressed) cells <TD> */
- padding: 2px 2px 0px 2px;
- border: 1px solid;
- border-color: #000 #fff #fff #000;
-}
-
-.calendar tbody td.selected { /* Cell showing selected date */
- font-weight: bold;
- padding: 2px 2px 0px 2px;
- border: 1px solid;
- border-color: #000 #fff #fff #000;
- background: #d8e0e4;
-}
-
-.calendar tbody td.weekend { /* Cells showing weekend days */
- color: #f00;
-}
-
-.calendar tbody td.today { /* Cell showing today date */
- font-weight: bold;
- color: #00f;
-}
-
-.calendar tbody .disabled { color: #999; }
-
-.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
- visibility: hidden;
-}
-
-.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
- display: none;
-}
-
-/* The footer part -- status bar and "Close" button */
-
-.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
-}
-
-.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
- background: #e8f0f4;
- padding: 1px;
- border: 1px solid #000;
- background: #788084;
- color: #fff;
- text-align: center;
-}
-
-.calendar tfoot .hilite { /* Hover style for buttons in footer */
- border-top: 1px solid #fff;
- border-right: 1px solid #000;
- border-bottom: 1px solid #000;
- border-left: 1px solid #fff;
- padding: 1px;
- background: #d8e0e4;
-}
-
-.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
- padding: 2px 0px 0px 2px;
- border-top: 1px solid #000;
- border-right: 1px solid #fff;
- border-bottom: 1px solid #fff;
- border-left: 1px solid #000;
-}
-
-/* Combo boxes (menus that display months/years for direct selection) */
-
-.calendar .combo {
- position: absolute;
- display: none;
- width: 4em;
- top: 0px;
- left: 0px;
- cursor: default;
- border-top: 1px solid #fff;
- border-right: 1px solid #000;
- border-bottom: 1px solid #000;
- border-left: 1px solid #fff;
- background: #d8e0e4;
- font-size: 90%;
- padding: 1px;
- z-index: 100;
-}
-
-.calendar .combo .label,
-.calendar .combo .label-IEfix {
- text-align: center;
- padding: 1px;
-}
-
-.calendar .combo .label-IEfix {
- width: 4em;
-}
-
-.calendar .combo .active {
- background: #c8d0d4;
- padding: 0px;
- border-top: 1px solid #000;
- border-right: 1px solid #fff;
- border-bottom: 1px solid #fff;
- border-left: 1px solid #000;
-}
-
-.calendar .combo .hilite {
- background: #048;
- color: #aef;
-}
-
-.calendar td.time {
- border-top: 1px solid #000;
- padding: 1px 0px;
- text-align: center;
- background-color: #e8f0f4;
-}
-
-.calendar td.time .hour,
-.calendar td.time .minute,
-.calendar td.time .ampm {
- padding: 0px 3px 0px 4px;
- border: 1px solid #889;
- font-weight: bold;
- background-color: #fff;
-}
-
-.calendar td.time .ampm {
- text-align: center;
-}
-
-.calendar td.time .colon {
- padding: 0px 2px 0px 3px;
- font-weight: bold;
-}
-
-.calendar td.time span.hilite {
- border-color: #000;
- background-color: #667;
- color: #fff;
-}
-
-.calendar td.time span.active {
- border-color: #f00;
- background-color: #000;
- color: #0f0;
-}
diff --git a/WebContent/themes/default/jscalendar/calendar-win2k-cold-2.css b/WebContent/themes/default/jscalendar/calendar-win2k-cold-2.css
deleted file mode 100644
index 8e930c8f4f..0000000000
--- a/WebContent/themes/default/jscalendar/calendar-win2k-cold-2.css
+++ /dev/null
@@ -1,271 +0,0 @@
-/* The main calendar widget. DIV containing a table. */
-
-.calendar {
- position: relative;
- display: none;
- border-top: 2px solid #fff;
- border-right: 2px solid #000;
- border-bottom: 2px solid #000;
- border-left: 2px solid #fff;
- font-size: 11px;
- color: #000;
- cursor: default;
- background: #c8d4d0;
- font-family: tahoma,verdana,sans-serif;
-}
-
-.calendar table {
- border-top: 1px solid #000;
- border-right: 1px solid #fff;
- border-bottom: 1px solid #fff;
- border-left: 1px solid #000;
- font-size: 11px;
- color: #000;
- cursor: default;
- background: #c8d4d0;
- font-family: tahoma,verdana,sans-serif;
-}
-
-/* Header part -- contains navigation buttons and day names. */
-
-.calendar .button { /* "<<", "<", ">", ">>" buttons have this class */
- text-align: center;
- padding: 1px;
- border-top: 1px solid #fff;
- border-right: 1px solid #000;
- border-bottom: 1px solid #000;
- border-left: 1px solid #fff;
-}
-
-.calendar .nav {
- background: transparent url(menuarrow.gif) no-repeat 100% 100%;
-}
-
-.calendar thead .title { /* This holds the current "month, year" */
- font-weight: bold;
- padding: 1px;
- border: 1px solid #000;
- background: #788480;
- color: #fff;
- text-align: center;
-}
-
-.calendar thead .headrow { /* Row <TR> containing navigation buttons */
-}
-
-.calendar thead .daynames { /* Row <TR> containing the day names */
-}
-
-.calendar thead .name { /* Cells <TD> containing the day names */
- border-bottom: 1px solid #000;
- padding: 2px;
- text-align: center;
- background: #e8f4f0;
-}
-
-.calendar thead .weekend { /* How a weekend day name shows in header */
- color: #f00;
-}
-
-.calendar thead .hilite { /* How do the buttons in header appear when hover */
- border-top: 2px solid #fff;
- border-right: 2px solid #000;
- border-bottom: 2px solid #000;
- border-left: 2px solid #fff;
- padding: 0px;
- background-color: #d8e4e0;
-}
-
-.calendar thead .active { /* Active (pressed) buttons in header */
- padding: 2px 0px 0px 2px;
- border-top: 1px solid #000;
- border-right: 1px solid #fff;
- border-bottom: 1px solid #fff;
- border-left: 1px solid #000;
- background-color: #b8c4c0;
-}
-
-/* The body part -- contains all the days in month. */
-
-.calendar tbody .day { /* Cells <TD> containing month days dates */
- width: 2em;
- text-align: right;
- padding: 2px 4px 2px 2px;
-}
-.calendar tbody .day.othermonth {
- font-size: 80%;
- color: #aaa;
-}
-.calendar tbody .day.othermonth.oweekend {
- color: #faa;
-}
-
-.calendar table .wn {
- padding: 2px 3px 2px 2px;
- border-right: 1px solid #000;
- background: #e8f4f0;
-}
-
-.calendar tbody .rowhilite td {
- background: #d8e4e0;
-}
-
-.calendar tbody .rowhilite td.wn {
- background: #c8d4d0;
-}
-
-.calendar tbody td.hilite { /* Hovered cells <TD> */
- padding: 1px 3px 1px 1px;
- border-top: 1px solid #fff;
- border-right: 1px solid #000;
- border-bottom: 1px solid #000;
- border-left: 1px solid #fff;
-}
-
-.calendar tbody td.active { /* Active (pressed) cells <TD> */
- padding: 2px 2px 0px 2px;
- border-top: 1px solid #000;
- border-right: 1px solid #fff;
- border-bottom: 1px solid #fff;
- border-left: 1px solid #000;
-}
-
-.calendar tbody td.selected { /* Cell showing selected date */
- font-weight: bold;
- border-top: 1px solid #000;
- border-right: 1px solid #fff;
- border-bottom: 1px solid #fff;
- border-left: 1px solid #000;
- padding: 2px 2px 0px 2px;
- background: #d8e4e0;
-}
-
-.calendar tbody td.weekend { /* Cells showing weekend days */
- color: #f00;
-}
-
-.calendar tbody td.today { /* Cell showing today date */
- font-weight: bold;
- color: #00f;
-}
-
-.calendar tbody .disabled { color: #999; }
-
-.calendar tbody .emptycell { /* Empty cells (the best is to hide them) */
- visibility: hidden;
-}
-
-.calendar tbody .emptyrow { /* Empty row (some months need less than 6 rows) */
- display: none;
-}
-
-/* The footer part -- status bar and "Close" button */
-
-.calendar tfoot .footrow { /* The <TR> in footer (only one right now) */
-}
-
-.calendar tfoot .ttip { /* Tooltip (status bar) cell <TD> */
- background: #e8f4f0;
- padding: 1px;
- border: 1px solid #000;
- background: #788480;
- color: #fff;
- text-align: center;
-}
-
-.calendar tfoot .hilite { /* Hover style for buttons in footer */
- border-top: 1px solid #fff;
- border-right: 1px solid #000;
- border-bottom: 1px solid #000;
- border-left: 1px solid #fff;
- padding: 1px;
- background: #d8e4e0;
-}
-
-.calendar tfoot .active { /* Active (pressed) style for buttons in footer */
- padding: 2px 0px 0px 2px;
- border-top: 1px solid #000;
- border-right: 1px solid #fff;
- border-bottom: 1px solid #fff;
- border-left: 1px solid #000;
-}
-
-/* Combo boxes (menus that display months/years for direct selection) */
-
-.calendar .combo {
- position: absolute;
- display: none;
- width: 4em;
- top: 0px;
- left: 0px;
- cursor: default;
- border-top: 1px solid #fff;
- border-right: 1px solid #000;
- border-bottom: 1px solid #000;
- border-left: 1px solid #fff;
- background: #d8e4e0;
- font-size: 90%;
- padding: 1px;
- z-index: 100;
-}
-
-.calendar .combo .label,
-.calendar .combo .label-IEfix {
- text-align: center;
- padding: 1px;
-}
-
-.calendar .combo .label-IEfix {
- width: 4em;
-}
-
-.calendar .combo .active {
- background: #c8d4d0;
- padding: 0px;
- border-top: 1px solid #000;
- border-right: 1px solid #fff;
- border-bottom: 1px solid #fff;
- border-left: 1px solid #000;
-}
-
-.calendar .combo .hilite {
- background: #048;
- color: #aef;
-}
-
-.calendar td.time {
- border-top: 1px solid #000;
- padding: 1px 0px;
- text-align: center;
- background-color: #e8f0f4;
-}
-
-.calendar td.time .hour,
-.calendar td.time .minute,
-.calendar td.time .ampm {
- padding: 0px 3px 0px 4px;
- border: 1px solid #889;
- font-weight: bold;
- background-color: #fff;
-}
-
-.calendar td.time .ampm {
- text-align: center;
-}
-
-.calendar td.time .colon {
- padding: 0px 2px 0px 3px;
- font-weight: bold;
-}
-
-.calendar td.time span.hilite {
- border-color: #000;
- background-color: #667;
- color: #fff;
-}
-
-.calendar td.time span.active {
- border-color: #f00;
- background-color: #000;
- color: #0f0;
-}
diff --git a/WebContent/themes/default/jscalendar/calendar.js b/WebContent/themes/default/jscalendar/calendar.js
deleted file mode 100644
index 633b251b99..0000000000
--- a/WebContent/themes/default/jscalendar/calendar.js
+++ /dev/null
@@ -1,1806 +0,0 @@
-/* Copyright Mihai Bazon, 2002-2005 | www.bazon.net/mishoo
- * -----------------------------------------------------------
- *
- * The DHTML Calendar, version 1.0 "It is happening again"
- *
- * Details and latest version at:
- * www.dynarch.com/projects/calendar
- *
- * This script is developed by Dynarch.com. Visit us at www.dynarch.com.
- *
- * This script is distributed under the GNU Lesser General Public License.
- * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
- */
-
-// $Id: calendar.js,v 1.1 2005/09/28 10:04:05 se Exp $
-
-/** The Calendar object constructor. */
-Calendar = function (firstDayOfWeek, dateStr, onSelected, onClose) {
- // member variables
- this.activeDiv = null;
- this.currentDateEl = null;
- this.getDateStatus = null;
- this.getDateToolTip = null;
- this.getDateText = null;
- this.timeout = null;
- this.onSelected = onSelected || null;
- this.onClose = onClose || null;
- this.dragging = false;
- this.hidden = false;
- this.minYear = 1970;
- this.maxYear = 2050;
- this.dateFormat = Calendar._TT["DEF_DATE_FORMAT"];
- this.ttDateFormat = Calendar._TT["TT_DATE_FORMAT"];
- this.isPopup = true;
- this.weekNumbers = true;
- this.firstDayOfWeek = typeof firstDayOfWeek == "number" ? firstDayOfWeek : Calendar._FD; // 0 for Sunday, 1 for Monday, etc.
- this.showsOtherMonths = false;
- this.dateStr = dateStr;
- this.ar_days = null;
- this.showsTime = false;
- this.time24 = true;
- this.yearStep = 2;
- this.hiliteToday = true;
- this.multiple = null;
- // HTML elements
- this.table = null;
- this.element = null;
- this.tbody = null;
- this.firstdayname = null;
- // Combo boxes
- this.monthsCombo = null;
- this.yearsCombo = null;
- this.hilitedMonth = null;
- this.activeMonth = null;
- this.hilitedYear = null;
- this.activeYear = null;
- // Information
- this.dateClicked = false;
-
- // one-time initializations
- if (typeof Calendar._SDN == "undefined") {
- // table of short day names
- if (typeof Calendar._SDN_len == "undefined")
- Calendar._SDN_len = 3;
- var ar = new Array();
- for (var i = 8; i > 0;) {
- ar[--i] = Calendar._DN[i].substr(0, Calendar._SDN_len);
- }
- Calendar._SDN = ar;
- // table of short month names
- if (typeof Calendar._SMN_len == "undefined")
- Calendar._SMN_len = 3;
- ar = new Array();
- for (var i = 12; i > 0;) {
- ar[--i] = Calendar._MN[i].substr(0, Calendar._SMN_len);
- }
- Calendar._SMN = ar;
- }
-};
-
-// ** constants
-
-/// "static", needed for event handlers.
-Calendar._C = null;
-
-/// detect a special case of "web browser"
-Calendar.is_ie = ( /msie/i.test(navigator.userAgent) &&
- !/opera/i.test(navigator.userAgent) );
-
-Calendar.is_ie5 = ( Calendar.is_ie && /msie 5\.0/i.test(navigator.userAgent) );
-
-/// detect Opera browser
-Calendar.is_opera = /opera/i.test(navigator.userAgent);
-
-/// detect KHTML-based browsers
-Calendar.is_khtml = /Konqueror|Safari|KHTML/i.test(navigator.userAgent);
-
-// BEGIN: UTILITY FUNCTIONS; beware that these might be moved into a separate
-// library, at some point.
-
-Calendar.getAbsolutePos = function(el) {
- var SL = 0, ST = 0;
- var is_div = /^div$/i.test(el.tagName);
- if (is_div && el.scrollLeft)
- SL = el.scrollLeft;
- if (is_div && el.scrollTop)
- ST = el.scrollTop;
- var r = { x: el.offsetLeft - SL, y: el.offsetTop - ST };
- if (el.offsetParent) {
- var tmp = this.getAbsolutePos(el.offsetParent);
- r.x += tmp.x;
- r.y += tmp.y;
- }
- return r;
-};
-
-Calendar.isRelated = function (el, evt) {
- var related = evt.relatedTarget;
- if (!related) {
- var type = evt.type;
- if (type == "mouseover") {
- related = evt.fromElement;
- } else if (type == "mouseout") {
- related = evt.toElement;
- }
- }
- while (related) {
- if (related == el) {
- return true;
- }
- related = related.parentNode;
- }
- return false;
-};
-
-Calendar.removeClass = function(el, className) {
- if (!(el && el.className)) {
- return;
- }
- var cls = el.className.split(" ");
- var ar = new Array();
- for (var i = cls.length; i > 0;) {
- if (cls[--i] != className) {
- ar[ar.length] = cls[i];
- }
- }
- el.className = ar.join(" ");
-};
-
-Calendar.addClass = function(el, className) {
- Calendar.removeClass(el, className);
- el.className += " " + className;
-};
-
-// FIXME: the following 2 functions totally suck, are useless and should be replaced immediately.
-Calendar.getElement = function(ev) {
- var f = Calendar.is_ie ? window.event.srcElement : ev.currentTarget;
- while (f.nodeType != 1 || /^div$/i.test(f.tagName))
- f = f.parentNode;
- return f;
-};
-
-Calendar.getTargetElement = function(ev) {
- var f = Calendar.is_ie ? window.event.srcElement : ev.target;
- while (f.nodeType != 1)
- f = f.parentNode;
- return f;
-};
-
-Calendar.stopEvent = function(ev) {
- ev || (ev = window.event);
- if (Calendar.is_ie) {
- ev.cancelBubble = true;
- ev.returnValue = false;
- } else {
- ev.preventDefault();
- ev.stopPropagation();
- }
- return false;
-};
-
-Calendar.addEvent = function(el, evname, func) {
- if (el.attachEvent) { // IE
- el.attachEvent("on" + evname, func);
- } else if (el.addEventListener) { // Gecko / W3C
- el.addEventListener(evname, func, true);
- } else {
- el["on" + evname] = func;
- }
-};
-
-Calendar.removeEvent = function(el, evname, func) {
- if (el.detachEvent) { // IE
- el.detachEvent("on" + evname, func);
- } else if (el.removeEventListener) { // Gecko / W3C
- el.removeEventListener(evname, func, true);
- } else {
- el["on" + evname] = null;
- }
-};
-
-Calendar.createElement = function(type, parent) {
- var el = null;
- if (document.createElementNS) {
- // use the XHTML namespace; IE won't normally get here unless
- // _they_ "fix" the DOM2 implementation.
- el = document.createElementNS("http://www.w3.org/1999/xhtml", type);
- } else {
- el = document.createElement(type);
- }
- if (typeof parent != "undefined") {
- parent.appendChild(el);
- }
- return el;
-};
-
-// END: UTILITY FUNCTIONS
-
-// BEGIN: CALENDAR STATIC FUNCTIONS
-
-/** Internal -- adds a set of events to make some element behave like a button. */
-Calendar._add_evs = function(el) {
- with (Calendar) {
- addEvent(el, "mouseover", dayMouseOver);
- addEvent(el, "mousedown", dayMouseDown);
- addEvent(el, "mouseout", dayMouseOut);
- if (is_ie) {
- addEvent(el, "dblclick", dayMouseDblClick);
- el.setAttribute("unselectable", true);
- }
- }
-};
-
-Calendar.findMonth = function(el) {
- if (typeof el.month != "undefined") {
- return el;
- } else if (typeof el.parentNode.month != "undefined") {
- return el.parentNode;
- }
- return null;
-};
-
-Calendar.findYear = function(el) {
- if (typeof el.year != "undefined") {
- return el;
- } else if (typeof el.parentNode.year != "undefined") {
- return el.parentNode;
- }
- return null;
-};
-
-Calendar.showMonthsCombo = function () {
- var cal = Calendar._C;
- if (!cal) {
- return false;
- }
- var cal = cal;
- var cd = cal.activeDiv;
- var mc = cal.monthsCombo;
- if (cal.hilitedMonth) {
- Calendar.removeClass(cal.hilitedMonth, "hilite");
- }
- if (cal.activeMonth) {
- Calendar.removeClass(cal.activeMonth, "active");
- }
- var mon = cal.monthsCombo.getElementsByTagName("div")[cal.date.getMonth()];
- Calendar.addClass(mon, "active");
- cal.activeMonth = mon;
- var s = mc.style;
- s.display = "block";
- if (cd.navtype < 0)
- s.left = cd.offsetLeft + "px";
- else {
- var mcw = mc.offsetWidth;
- if (typeof mcw == "undefined")
- // Konqueror brain-dead techniques
- mcw = 50;
- s.left = (cd.offsetLeft + cd.offsetWidth - mcw) + "px";
- }
- s.top = (cd.offsetTop + cd.offsetHeight) + "px";
-};
-
-Calendar.showYearsCombo = function (fwd) {
- var cal = Calendar._C;
- if (!cal) {
- return false;
- }
- var cal = cal;
- var cd = cal.activeDiv;
- var yc = cal.yearsCombo;
- if (cal.hilitedYear) {
- Calendar.removeClass(cal.hilitedYear, "hilite");
- }
- if (cal.activeYear) {
- Calendar.removeClass(cal.activeYear, "active");
- }
- cal.activeYear = null;
- var Y = cal.date.getFullYear() + (fwd ? 1 : -1);
- var yr = yc.firstChild;
- var show = false;
- for (var i = 12; i > 0; --i) {
- if (Y >= cal.minYear && Y <= cal.maxYear) {
- yr.innerHTML = Y;
- yr.year = Y;
- yr.style.display = "block";
- show = true;
- } else {
- yr.style.display = "none";
- }
- yr = yr.nextSibling;
- Y += fwd ? cal.yearStep : -cal.yearStep;
- }
- if (show) {
- var s = yc.style;
- s.display = "block";
- if (cd.navtype < 0)
- s.left = cd.offsetLeft + "px";
- else {
- var ycw = yc.offsetWidth;
- if (typeof ycw == "undefined")
- // Konqueror brain-dead techniques
- ycw = 50;
- s.left = (cd.offsetLeft + cd.offsetWidth - ycw) + "px";
- }
- s.top = (cd.offsetTop + cd.offsetHeight) + "px";
- }
-};
-
-// event handlers
-
-Calendar.tableMouseUp = function(ev) {
- var cal = Calendar._C;
- if (!cal) {
- return false;
- }
- if (cal.timeout) {
- clearTimeout(cal.timeout);
- }
- var el = cal.activeDiv;
- if (!el) {
- return false;
- }
- var target = Calendar.getTargetElement(ev);
- ev || (ev = window.event);
- Calendar.removeClass(el, "active");
- if (target == el || target.parentNode == el) {
- Calendar.cellClick(el, ev);
- }
- var mon = Calendar.findMonth(target);
- var date = null;
- if (mon) {
- date = new Date(cal.date);
- if (mon.month != date.getMonth()) {
- date.setMonth(mon.month);
- cal.setDate(date);
- cal.dateClicked = false;
- cal.callHandler();
- }
- } else {
- var year = Calendar.findYear(target);
- if (year) {
- date = new Date(cal.date);
- if (year.year != date.getFullYear()) {
- date.setFullYear(year.year);
- cal.setDate(date);
- cal.dateClicked = false;
- cal.callHandler();
- }
- }
- }
- with (Calendar) {
- removeEvent(document, "mouseup", tableMouseUp);
- removeEvent(document, "mouseover", tableMouseOver);
- removeEvent(document, "mousemove", tableMouseOver);
- cal._hideCombos();
- _C = null;
- return stopEvent(ev);
- }
-};
-
-Calendar.tableMouseOver = function (ev) {
- var cal = Calendar._C;
- if (!cal) {
- return;
- }
- var el = cal.activeDiv;
- var target = Calendar.getTargetElement(ev);
- if (target == el || target.parentNode == el) {
- Calendar.addClass(el, "hilite active");
- Calendar.addClass(el.parentNode, "rowhilite");
- } else {
- if (typeof el.navtype == "undefined" || (el.navtype != 50 && (el.navtype == 0 || Math.abs(el.navtype) > 2)))
- Calendar.removeClass(el, "active");
- Calendar.removeClass(el, "hilite");
- Calendar.removeClass(el.parentNode, "rowhilite");
- }
- ev || (ev = window.event);
- if (el.navtype == 50 && target != el) {
- var pos = Calendar.getAbsolutePos(el);
- var w = el.offsetWidth;
- var x = ev.clientX;
- var dx;
- var decrease = true;
- if (x > pos.x + w) {
- dx = x - pos.x - w;
- decrease = false;
- } else
- dx = pos.x - x;
-
- if (dx < 0) dx = 0;
- var range = el._range;
- var current = el._current;
- var count = Math.floor(dx / 10) % range.length;
- for (var i = range.length; --i >= 0;)
- if (range[i] == current)
- break;
- while (count-- > 0)
- if (decrease) {
- if (--i < 0)
- i = range.length - 1;
- } else if ( ++i >= range.length )
- i = 0;
- var newval = range[i];
- el.innerHTML = newval;
-
- cal.onUpdateTime();
- }
- var mon = Calendar.findMonth(target);
- if (mon) {
- if (mon.month != cal.date.getMonth()) {
- if (cal.hilitedMonth) {
- Calendar.removeClass(cal.hilitedMonth, "hilite");
- }
- Calendar.addClass(mon, "hilite");
- cal.hilitedMonth = mon;
- } else if (cal.hilitedMonth) {
- Calendar.removeClass(cal.hilitedMonth, "hilite");
- }
- } else {
- if (cal.hilitedMonth) {
- Calendar.removeClass(cal.hilitedMonth, "hilite");
- }
- var year = Calendar.findYear(target);
- if (year) {
- if (year.year != cal.date.getFullYear()) {
- if (cal.hilitedYear) {
- Calendar.removeClass(cal.hilitedYear, "hilite");
- }
- Calendar.addClass(year, "hilite");
- cal.hilitedYear = year;
- } else if (cal.hilitedYear) {
- Calendar.removeClass(cal.hilitedYear, "hilite");
- }
- } else if (cal.hilitedYear) {
- Calendar.removeClass(cal.hilitedYear, "hilite");
- }
- }
- return Calendar.stopEvent(ev);
-};
-
-Calendar.tableMouseDown = function (ev) {
- if (Calendar.getTargetElement(ev) == Calendar.getElement(ev)) {
- return Calendar.stopEvent(ev);
- }
-};
-
-Calendar.calDragIt = function (ev) {
- var cal = Calendar._C;
- if (!(cal && cal.dragging)) {
- return false;
- }
- var posX;
- var posY;
- if (Calendar.is_ie) {
- posY = window.event.clientY + document.body.scrollTop;
- posX = window.event.clientX + document.body.scrollLeft;
- } else {
- posX = ev.pageX;
- posY = ev.pageY;
- }
- cal.hideShowCovered();
- var st = cal.element.style;
- st.left = (posX - cal.xOffs) + "px";
- st.top = (posY - cal.yOffs) + "px";
- return Calendar.stopEvent(ev);
-};
-
-Calendar.calDragEnd = function (ev) {
- var cal = Calendar._C;
- if (!cal) {
- return false;
- }
- cal.dragging = false;
- with (Calendar) {
- removeEvent(document, "mousemove", calDragIt);
- removeEvent(document, "mouseup", calDragEnd);
- tableMouseUp(ev);
- }
- cal.hideShowCovered();
-};
-
-Calendar.dayMouseDown = function(ev) {
- var el = Calendar.getElement(ev);
- if (el.disabled) {
- return false;
- }
- var cal = el.calendar;
- cal.activeDiv = el;
- Calendar._C = cal;
- if (el.navtype != 300) with (Calendar) {
- if (el.navtype == 50) {
- el._current = el.innerHTML;
- addEvent(document, "mousemove", tableMouseOver);
- } else
- addEvent(document, Calendar.is_ie5 ? "mousemove" : "mouseover", tableMouseOver);
- addClass(el, "hilite active");
- addEvent(document, "mouseup", tableMouseUp);
- } else if (cal.isPopup) {
- cal._dragStart(ev);
- }
- if (el.navtype == -1 || el.navtype == 1) {
- if (cal.timeout) clearTimeout(cal.timeout);
- cal.timeout = setTimeout("Calendar.showMonthsCombo()", 250);
- } else if (el.navtype == -2 || el.navtype == 2) {
- if (cal.timeout) clearTimeout(cal.timeout);
- cal.timeout = setTimeout((el.navtype > 0) ? "Calendar.showYearsCombo(true)" : "Calendar.showYearsCombo(false)", 250);
- } else {
- cal.timeout = null;
- }
- return Calendar.stopEvent(ev);
-};
-
-Calendar.dayMouseDblClick = function(ev) {
- Calendar.cellClick(Calendar.getElement(ev), ev || window.event);
- if (Calendar.is_ie) {
- document.selection.empty();
- }
-};
-
-Calendar.dayMouseOver = function(ev) {
- var el = Calendar.getElement(ev);
- if (Calendar.isRelated(el, ev) || Calendar._C || el.disabled) {
- return false;
- }
- if (el.ttip) {
- if (el.ttip.substr(0, 1) == "_") {
- el.ttip = el.caldate.print(el.calendar.ttDateFormat) + el.ttip.substr(1);
- }
- el.calendar.tooltips.innerHTML = el.ttip;
- }
- if (el.navtype != 300) {
- Calendar.addClass(el, "hilite");
- if (el.caldate) {
- Calendar.addClass(el.parentNode, "rowhilite");
- }
- }
- return Calendar.stopEvent(ev);
-};
-
-Calendar.dayMouseOut = function(ev) {
- with (Calendar) {
- var el = getElement(ev);
- if (isRelated(el, ev) || _C || el.disabled)
- return false;
- removeClass(el, "hilite");
- if (el.caldate)
- removeClass(el.parentNode, "rowhilite");
- if (el.calendar)
- el.calendar.tooltips.innerHTML = _TT["SEL_DATE"];
- return stopEvent(ev);
- }
-};
-
-/**
- * A generic "click" handler :) handles all types of buttons defined in this
- * calendar.
- */
-Calendar.cellClick = function(el, ev) {
- var cal = el.calendar;
- var closing = false;
- var newdate = false;
- var date = null;
- if (typeof el.navtype == "undefined") {
- if (cal.currentDateEl) {
- Calendar.removeClass(cal.currentDateEl, "selected");
- Calendar.addClass(el, "selected");
- closing = (cal.currentDateEl == el);
- if (!closing) {
- cal.currentDateEl = el;
- }
- }
- cal.date.setDateOnly(el.caldate);
- date = cal.date;
- var other_month = !(cal.dateClicked = !el.otherMonth);
- if (!other_month && !cal.currentDateEl)
- cal._toggleMultipleDate(new Date(date));
- else
- newdate = !el.disabled;
- // a date was clicked
- if (other_month)
- cal._init(cal.firstDayOfWeek, date);
- } else {
- if (el.navtype == 200) {
- Calendar.removeClass(el, "hilite");
- cal.callCloseHandler();
- return;
- }
- date = new Date(cal.date);
- if (el.navtype == 0)
- date.setDateOnly(new Date()); // TODAY
- // unless "today" was clicked, we assume no date was clicked so
- // the selected handler will know not to close the calenar when
- // in single-click mode.
- // cal.dateClicked = (el.navtype == 0);
- cal.dateClicked = false;
- var year = date.getFullYear();
- var mon = date.getMonth();
- function setMonth(m) {
- var day = date.getDate();
- var max = date.getMonthDays(m);
- if (day > max) {
- date.setDate(max);
- }
- date.setMonth(m);
- };
- switch (el.navtype) {
- case 400:
- Calendar.removeClass(el, "hilite");
- var text = Calendar._TT["ABOUT"];
- if (typeof text != "undefined") {
- text += cal.showsTime ? Calendar._TT["ABOUT_TIME"] : "";
- } else {
- // FIXME: this should be removed as soon as lang files get updated!
- text = "Help and about box text is not translated into this language.\n" +
- "If you know this language and you feel generous please update\n" +
- "the corresponding file in \"lang\" subdir to match calendar-en.js\n" +
- "and send it back to <mihai_bazon@yahoo.com> to get it into the distribution ;-)\n\n" +
- "Thank you!\n" +
- "http://dynarch.com/mishoo/calendar.epl\n";
- }
- alert(text);
- return;
- case -2:
- if (year > cal.minYear) {
- date.setFullYear(year - 1);
- }
- break;
- case -1:
- if (mon > 0) {
- setMonth(mon - 1);
- } else if (year-- > cal.minYear) {
- date.setFullYear(year);
- setMonth(11);
- }
- break;
- case 1:
- if (mon < 11) {
- setMonth(mon + 1);
- } else if (year < cal.maxYear) {
- date.setFullYear(year + 1);
- setMonth(0);
- }
- break;
- case 2:
- if (year < cal.maxYear) {
- date.setFullYear(year + 1);
- }
- break;
- case 100:
- cal.setFirstDayOfWeek(el.fdow);
- return;
- case 50:
- var range = el._range;
- var current = el.innerHTML;
- for (var i = range.length; --i >= 0;)
- if (range[i] == current)
- break;
- if (ev && ev.shiftKey) {
- if (--i < 0)
- i = range.length - 1;
- } else if ( ++i >= range.length )
- i = 0;
- var newval = range[i];
- el.innerHTML = newval;
- cal.onUpdateTime();
- return;
- case 0:
- // TODAY will bring us here
- if ((typeof cal.getDateStatus == "function") &&
- cal.getDateStatus(date, date.getFullYear(), date.getMonth(), date.getDate())) {
- return false;
- }
- break;
- }
- if (!date.equalsTo(cal.date)) {
- cal.setDate(date);
- newdate = true;
- } else if (el.navtype == 0)
- newdate = closing = true;
- }
- if (newdate) {
- ev && cal.callHandler();
- }
- if (closing) {
- Calendar.removeClass(el, "hilite");
- ev && cal.callCloseHandler();
- }
-};
-
-// END: CALENDAR STATIC FUNCTIONS
-
-// BEGIN: CALENDAR OBJECT FUNCTIONS
-
-/**
- * This function creates the calendar inside the given parent. If _par is
- * null than it creates a popup calendar inside the BODY element. If _par is
- * an element, be it BODY, then it creates a non-popup calendar (still
- * hidden). Some properties need to be set before calling this function.
- */
-Calendar.prototype.create = function (_par) {
- var parent = null;
- if (! _par) {
- // default parent is the document body, in which case we create
- // a popup calendar.
- parent = document.getElementsByTagName("body")[0];
- this.isPopup = true;
- } else {
- parent = _par;
- this.isPopup = false;
- }
- this.date = this.dateStr ? new Date(this.dateStr) : new Date();
-
- var table = Calendar.createElement("table");
- this.table = table;
- table.cellSpacing = 0;
- table.cellPadding = 0;
- table.calendar = this;
- Calendar.addEvent(table, "mousedown", Calendar.tableMouseDown);
-
- var div = Calendar.createElement("div");
- this.element = div;
- div.className = "calendar";
- if (this.isPopup) {
- div.style.position = "absolute";
- div.style.display = "none";
- }
- div.appendChild(table);
-
- var thead = Calendar.createElement("thead", table);
- var cell = null;
- var row = null;
-
- var cal = this;
- var hh = function (text, cs, navtype) {
- cell = Calendar.createElement("td", row);
- cell.colSpan = cs;
- cell.className = "button";
- if (navtype != 0 && Math.abs(navtype) <= 2)
- cell.className += " nav";
- Calendar._add_evs(cell);
- cell.calendar = cal;
- cell.navtype = navtype;
- cell.innerHTML = "<div unselectable='on'>" + text + "</div>";
- return cell;
- };
-
- row = Calendar.createElement("tr", thead);
- var title_length = 6;
- (this.isPopup) && --title_length;
- (this.weekNumbers) && ++title_length;
-
- hh("?", 1, 400).ttip = Calendar._TT["INFO"];
- this.title = hh("", title_length, 300);
- this.title.className = "title";
- if (this.isPopup) {
- this.title.ttip = Calendar._TT["DRAG_TO_MOVE"];
- this.title.style.cursor = "move";
- hh("&#x00d7;", 1, 200).ttip = Calendar._TT["CLOSE"];
- }
-
- row = Calendar.createElement("tr", thead);
- row.className = "headrow";
-
- this._nav_py = hh("&#x00ab;", 1, -2);
- this._nav_py.ttip = Calendar._TT["PREV_YEAR"];
-
- this._nav_pm = hh("&#x2039;", 1, -1);
- this._nav_pm.ttip = Calendar._TT["PREV_MONTH"];
-
- this._nav_now = hh(Calendar._TT["TODAY"], this.weekNumbers ? 4 : 3, 0);
- this._nav_now.ttip = Calendar._TT["GO_TODAY"];
-
- this._nav_nm = hh("&#x203a;", 1, 1);
- this._nav_nm.ttip = Calendar._TT["NEXT_MONTH"];
-
- this._nav_ny = hh("&#x00bb;", 1, 2);
- this._nav_ny.ttip = Calendar._TT["NEXT_YEAR"];
-
- // day names
- row = Calendar.createElement("tr", thead);
- row.className = "daynames";
- if (this.weekNumbers) {
- cell = Calendar.createElement("td", row);
- cell.className = "name wn";
- cell.innerHTML = Calendar._TT["WK"];
- }
- for (var i = 7; i > 0; --i) {
- cell = Calendar.createElement("td", row);
- if (!i) {
- cell.navtype = 100;
- cell.calendar = this;
- Calendar._add_evs(cell);
- }
- }
- this.firstdayname = (this.weekNumbers) ? row.firstChild.nextSibling : row.firstChild;
- this._displayWeekdays();
-
- var tbody = Calendar.createElement("tbody", table);
- this.tbody = tbody;
-
- for (i = 6; i > 0; --i) {
- row = Calendar.createElement("tr", tbody);
- if (this.weekNumbers) {
- cell = Calendar.createElement("td", row);
- }
- for (var j = 7; j > 0; --j) {
- cell = Calendar.createElement("td", row);
- cell.calendar = this;
- Calendar._add_evs(cell);
- }
- }
-
- if (this.showsTime) {
- row = Calendar.createElement("tr", tbody);
- row.className = "time";
-
- cell = Calendar.createElement("td", row);
- cell.className = "time";
- cell.colSpan = 2;
- cell.innerHTML = Calendar._TT["TIME"] || "&nbsp;";
-
- cell = Calendar.createElement("td", row);
- cell.className = "time";
- cell.colSpan = this.weekNumbers ? 4 : 3;
-
- (function(){
- function makeTimePart(className, init, range_start, range_end) {
- var part = Calendar.createElement("span", cell);
- part.className = className;
- part.innerHTML = init;
- part.calendar = cal;
- part.ttip = Calendar._TT["TIME_PART"];
- part.navtype = 50;
- part._range = [];
- if (typeof range_start != "number")
- part._range = range_start;
- else {
- for (var i = range_start; i <= range_end; ++i) {
- var txt;
- if (i < 10 && range_end >= 10) txt = '0' + i;
- else txt = '' + i;
- part._range[part._range.length] = txt;
- }
- }
- Calendar._add_evs(part);
- return part;
- };
- var hrs = cal.date.getHours();
- var mins = cal.date.getMinutes();
- var t12 = !cal.time24;
- var pm = (hrs > 12);
- if (t12 && pm) hrs -= 12;
- var H = makeTimePart("hour", hrs, t12 ? 1 : 0, t12 ? 12 : 23);
- var span = Calendar.createElement("span", cell);
- span.innerHTML = ":";
- span.className = "colon";
- var M = makeTimePart("minute", mins, 0, 59);
- var AP = null;
- cell = Calendar.createElement("td", row);
- cell.className = "time";
- cell.colSpan = 2;
- if (t12)
- AP = makeTimePart("ampm", pm ? "pm" : "am", ["am", "pm"]);
- else
- cell.innerHTML = "&nbsp;";
-
- cal.onSetTime = function() {
- var pm, hrs = this.date.getHours(),
- mins = this.date.getMinutes();
- if (t12) {
- pm = (hrs >= 12);
- if (pm) hrs -= 12;
- if (hrs == 0) hrs = 12;
- AP.innerHTML = pm ? "pm" : "am";
- }
- H.innerHTML = (hrs < 10) ? ("0" + hrs) : hrs;
- M.innerHTML = (mins < 10) ? ("0" + mins) : mins;
- };
-
- cal.onUpdateTime = function() {
- var date = this.date;
- var h = parseInt(H.innerHTML, 10);
- if (t12) {
- if (/pm/i.test(AP.innerHTML) && h < 12)
- h += 12;
- else if (/am/i.test(AP.innerHTML) && h == 12)
- h = 0;
- }
- var d = date.getDate();
- var m = date.getMonth();
- var y = date.getFullYear();
- date.setHours(h);
- date.setMinutes(parseInt(M.innerHTML, 10));
- date.setFullYear(y);
- date.setMonth(m);
- date.setDate(d);
- this.dateClicked = false;
- this.callHandler();
- };
- })();
- } else {
- this.onSetTime = this.onUpdateTime = function() {};
- }
-
- var tfoot = Calendar.createElement("tfoot", table);
-
- row = Calendar.createElement("tr", tfoot);
- row.className = "footrow";
-
- cell = hh(Calendar._TT["SEL_DATE"], this.weekNumbers ? 8 : 7, 300);
- cell.className = "ttip";
- if (this.isPopup) {
- cell.ttip = Calendar._TT["DRAG_TO_MOVE"];
- cell.style.cursor = "move";
- }
- this.tooltips = cell;
-
- div = Calendar.createElement("div", this.element);
- this.monthsCombo = div;
- div.className = "combo";
- for (i = 0; i < Calendar._MN.length; ++i) {
- var mn = Calendar.createElement("div");
- mn.className = Calendar.is_ie ? "label-IEfix" : "label";
- mn.month = i;
- mn.innerHTML = Calendar._SMN[i];
- div.appendChild(mn);
- }
-
- div = Calendar.createElement("div", this.element);
- this.yearsCombo = div;
- div.className = "combo";
- for (i = 12; i > 0; --i) {
- var yr = Calendar.createElement("div");
- yr.className = Calendar.is_ie ? "label-IEfix" : "label";
- div.appendChild(yr);
- }
-
- this._init(this.firstDayOfWeek, this.date);
- parent.appendChild(this.element);
-};
-
-/** keyboard navigation, only for popup calendars */
-Calendar._keyEvent = function(ev) {
- var cal = window._dynarch_popupCalendar;
- if (!cal || cal.multiple)
- return false;
- (Calendar.is_ie) && (ev = window.event);
- var act = (Calendar.is_ie || ev.type == "keypress"),
- K = ev.keyCode;
- if (ev.ctrlKey) {
- switch (K) {
- case 37: // KEY left
- act && Calendar.cellClick(cal._nav_pm);
- break;
- case 38: // KEY up
- act && Calendar.cellClick(cal._nav_py);
- break;
- case 39: // KEY right
- act && Calendar.cellClick(cal._nav_nm);
- break;
- case 40: // KEY down
- act && Calendar.cellClick(cal._nav_ny);
- break;
- default:
- return false;
- }
- } else switch (K) {
- case 32: // KEY space (now)
- Calendar.cellClick(cal._nav_now);
- break;
- case 27: // KEY esc
- act && cal.callCloseHandler();
- break;
- case 37: // KEY left
- case 38: // KEY up
- case 39: // KEY right
- case 40: // KEY down
- if (act) {
- var prev, x, y, ne, el, step;
- prev = K == 37 || K == 38;
- step = (K == 37 || K == 39) ? 1 : 7;
- function setVars() {
- el = cal.currentDateEl;
- var p = el.pos;
- x = p & 15;
- y = p >> 4;
- ne = cal.ar_days[y][x];
- };setVars();
- function prevMonth() {
- var date = new Date(cal.date);
- date.setDate(date.getDate() - step);
- cal.setDate(date);
- };
- function nextMonth() {
- var date = new Date(cal.date);
- date.setDate(date.getDate() + step);
- cal.setDate(date);
- };
- while (1) {
- switch (K) {
- case 37: // KEY left
- if (--x >= 0)
- ne = cal.ar_days[y][x];
- else {
- x = 6;
- K = 38;
- continue;
- }
- break;
- case 38: // KEY up
- if (--y >= 0)
- ne = cal.ar_days[y][x];
- else {
- prevMonth();
- setVars();
- }
- break;
- case 39: // KEY right
- if (++x < 7)
- ne = cal.ar_days[y][x];
- else {
- x = 0;
- K = 40;
- continue;
- }
- break;
- case 40: // KEY down
- if (++y < cal.ar_days.length)
- ne = cal.ar_days[y][x];
- else {
- nextMonth();
- setVars();
- }
- break;
- }
- break;
- }
- if (ne) {
- if (!ne.disabled)
- Calendar.cellClick(ne);
- else if (prev)
- prevMonth();
- else
- nextMonth();
- }
- }
- break;
- case 13: // KEY enter
- if (act)
- Calendar.cellClick(cal.currentDateEl, ev);
- break;
- default:
- return false;
- }
- return Calendar.stopEvent(ev);
-};
-
-/**
- * (RE)Initializes the calendar to the given date and firstDayOfWeek
- */
-Calendar.prototype._init = function (firstDayOfWeek, date) {
- var today = new Date(),
- TY = today.getFullYear(),
- TM = today.getMonth(),
- TD = today.getDate();
- this.table.style.visibility = "hidden";
- var year = date.getFullYear();
- if (year < this.minYear) {
- year = this.minYear;
- date.setFullYear(year);
- } else if (year > this.maxYear) {
- year = this.maxYear;
- date.setFullYear(year);
- }
- this.firstDayOfWeek = firstDayOfWeek;
- this.date = new Date(date);
- var month = date.getMonth();
- var mday = date.getDate();
- var no_days = date.getMonthDays();
-
- // calendar voodoo for computing the first day that would actually be
- // displayed in the calendar, even if it's from the previous month.
- // WARNING: this is magic. ;-)
- date.setDate(1);
- var day1 = (date.getDay() - this.firstDayOfWeek) % 7;
- if (day1 < 0)
- day1 += 7;
- date.setDate(-day1);
- date.setDate(date.getDate() + 1);
-
- var row = this.tbody.firstChild;
- var MN = Calendar._SMN[month];
- var ar_days = this.ar_days = new Array();
- var weekend = Calendar._TT["WEEKEND"];
- var dates = this.multiple ? (this.datesCells = {}) : null;
- for (var i = 0; i < 6; ++i, row = row.nextSibling) {
- var cell = row.firstChild;
- if (this.weekNumbers) {
- cell.className = "day wn";
- cell.innerHTML = date.getWeekNumber();
- cell = cell.nextSibling;
- }
- row.className = "daysrow";
- var hasdays = false, iday, dpos = ar_days[i] = [];
- for (var j = 0; j < 7; ++j, cell = cell.nextSibling, date.setDate(iday + 1)) {
- iday = date.getDate();
- var wday = date.getDay();
- cell.className = "day";
- cell.pos = i << 4 | j;
- dpos[j] = cell;
- var current_month = (date.getMonth() == month);
- if (!current_month) {
- if (this.showsOtherMonths) {
- cell.className += " othermonth";
- cell.otherMonth = true;
- } else {
- cell.className = "emptycell";
- cell.innerHTML = "&nbsp;";
- cell.disabled = true;
- continue;
- }
- } else {
- cell.otherMonth = false;
- hasdays = true;
- }
- cell.disabled = false;
- cell.innerHTML = this.getDateText ? this.getDateText(date, iday) : iday;
- if (dates)
- dates[date.print("%Y%m%d")] = cell;
- if (this.getDateStatus) {
- var status = this.getDateStatus(date, year, month, iday);
- if (this.getDateToolTip) {
- var toolTip = this.getDateToolTip(date, year, month, iday);
- if (toolTip)
- cell.title = toolTip;
- }
- if (status === true) {
- cell.className += " disabled";
- cell.disabled = true;
- } else {
- if (/disabled/i.test(status))
- cell.disabled = true;
- cell.className += " " + status;
- }
- }
- if (!cell.disabled) {
- cell.caldate = new Date(date);
- cell.ttip = "_";
- if (!this.multiple && current_month
- && iday == mday && this.hiliteToday) {
- cell.className += " selected";
- this.currentDateEl = cell;
- }
- if (date.getFullYear() == TY &&
- date.getMonth() == TM &&
- iday == TD) {
- cell.className += " today";
- cell.ttip += Calendar._TT["PART_TODAY"];
- }
- if (weekend.indexOf(wday.toString()) != -1)
- cell.className += cell.otherMonth ? " oweekend" : " weekend";
- }
- }
- if (!(hasdays || this.showsOtherMonths))
- row.className = "emptyrow";
- }
- this.title.innerHTML = Calendar._MN[month] + ", " + year;
- this.onSetTime();
- this.table.style.visibility = "visible";
- this._initMultipleDates();
- // PROFILE
- // this.tooltips.innerHTML = "Generated in " + ((new Date()) - today) + " ms";
-};
-
-Calendar.prototype._initMultipleDates = function() {
- if (this.multiple) {
- for (var i in this.multiple) {
- var cell = this.datesCells[i];
- var d = this.multiple[i];
- if (!d)
- continue;
- if (cell)
- cell.className += " selected";
- }
- }
-};
-
-Calendar.prototype._toggleMultipleDate = function(date) {
- if (this.multiple) {
- var ds = date.print("%Y%m%d");
- var cell = this.datesCells[ds];
- if (cell) {
- var d = this.multiple[ds];
- if (!d) {
- Calendar.addClass(cell, "selected");
- this.multiple[ds] = date;
- } else {
- Calendar.removeClass(cell, "selected");
- delete this.multiple[ds];
- }
- }
- }
-};
-
-Calendar.prototype.setDateToolTipHandler = function (unaryFunction) {
- this.getDateToolTip = unaryFunction;
-};
-
-/**
- * Calls _init function above for going to a certain date (but only if the
- * date is different than the currently selected one).
- */
-Calendar.prototype.setDate = function (date) {
- if (!date.equalsTo(this.date)) {
- this._init(this.firstDayOfWeek, date);
- }
-};
-
-/**
- * Refreshes the calendar. Useful if the "disabledHandler" function is
- * dynamic, meaning that the list of disabled date can change at runtime.
- * Just * call this function if you think that the list of disabled dates
- * should * change.
- */
-Calendar.prototype.refresh = function () {
- this._init(this.firstDayOfWeek, this.date);
-};
-
-/** Modifies the "firstDayOfWeek" parameter (pass 0 for Synday, 1 for Monday, etc.). */
-Calendar.prototype.setFirstDayOfWeek = function (firstDayOfWeek) {
- this._init(firstDayOfWeek, this.date);
- this._displayWeekdays();
-};
-
-/**
- * Allows customization of what dates are enabled. The "unaryFunction"
- * parameter must be a function object that receives the date (as a JS Date
- * object) and returns a boolean value. If the returned value is true then
- * the passed date will be marked as disabled.
- */
-Calendar.prototype.setDateStatusHandler = Calendar.prototype.setDisabledHandler = function (unaryFunction) {
- this.getDateStatus = unaryFunction;
-};
-
-/** Customization of allowed year range for the calendar. */
-Calendar.prototype.setRange = function (a, z) {
- this.minYear = a;
- this.maxYear = z;
-};
-
-/** Calls the first user handler (selectedHandler). */
-Calendar.prototype.callHandler = function () {
- if (this.onSelected) {
- this.onSelected(this, this.date.print(this.dateFormat));
- }
-};
-
-/** Calls the second user handler (closeHandler). */
-Calendar.prototype.callCloseHandler = function () {
- if (this.onClose) {
- this.onClose(this);
- }
- this.hideShowCovered();
-};
-
-/** Removes the calendar object from the DOM tree and destroys it. */
-Calendar.prototype.destroy = function () {
- var el = this.element.parentNode;
- el.removeChild(this.element);
- Calendar._C = null;
- window._dynarch_popupCalendar = null;
-};
-
-/**
- * Moves the calendar element to a different section in the DOM tree (changes
- * its parent).
- */
-Calendar.prototype.reparent = function (new_parent) {
- var el = this.element;
- el.parentNode.removeChild(el);
- new_parent.appendChild(el);
-};
-
-// This gets called when the user presses a mouse button anywhere in the
-// document, if the calendar is shown. If the click was outside the open
-// calendar this function closes it.
-Calendar._checkCalendar = function(ev) {
- var calendar = window._dynarch_popupCalendar;
- if (!calendar) {
- return false;
- }
- var el = Calendar.is_ie ? Calendar.getElement(ev) : Calendar.getTargetElement(ev);
- for (; el != null && el != calendar.element; el = el.parentNode);
- if (el == null) {
- // calls closeHandler which should hide the calendar.
- window._dynarch_popupCalendar.callCloseHandler();
- return Calendar.stopEvent(ev);
- }
-};
-
-/** Shows the calendar. */
-Calendar.prototype.show = function () {
- var rows = this.table.getElementsByTagName("tr");
- for (var i = rows.length; i > 0;) {
- var row = rows[--i];
- Calendar.removeClass(row, "rowhilite");
- var cells = row.getElementsByTagName("td");
- for (var j = cells.length; j > 0;) {
- var cell = cells[--j];
- Calendar.removeClass(cell, "hilite");
- Calendar.removeClass(cell, "active");
- }
- }
- this.element.style.display = "block";
- this.hidden = false;
- if (this.isPopup) {
- window._dynarch_popupCalendar = this;
- Calendar.addEvent(document, "keydown", Calendar._keyEvent);
- Calendar.addEvent(document, "keypress", Calendar._keyEvent);
- Calendar.addEvent(document, "mousedown", Calendar._checkCalendar);
- }
- this.hideShowCovered();
-};
-
-/**
- * Hides the calendar. Also removes any "hilite" from the class of any TD
- * element.
- */
-Calendar.prototype.hide = function () {
- if (this.isPopup) {
- Calendar.removeEvent(document, "keydown", Calendar._keyEvent);
- Calendar.removeEvent(document, "keypress", Calendar._keyEvent);
- Calendar.removeEvent(document, "mousedown", Calendar._checkCalendar);
- }
- this.element.style.display = "none";
- this.hidden = true;
- this.hideShowCovered();
-};
-
-/**
- * Shows the calendar at a given absolute position (beware that, depending on
- * the calendar element style -- position property -- this might be relative
- * to the parent's containing rectangle).
- */
-Calendar.prototype.showAt = function (x, y) {
- var s = this.element.style;
- s.left = x + "px";
- s.top = y + "px";
- this.show();
-};
-
-/** Shows the calendar near a given element. */
-Calendar.prototype.showAtElement = function (el, opts) {
- var self = this;
- var p = Calendar.getAbsolutePos(el);
- if (!opts || typeof opts != "string") {
- this.showAt(p.x, p.y + el.offsetHeight);
- return true;
- }
- function fixPosition(box) {
- if (box.x < 0)
- box.x = 0;
- if (box.y < 0)
- box.y = 0;
- var cp = document.createElement("div");
- var s = cp.style;
- s.position = "absolute";
- s.right = s.bottom = s.width = s.height = "0px";
- document.body.appendChild(cp);
- var br = Calendar.getAbsolutePos(cp);
- document.body.removeChild(cp);
- if (Calendar.is_ie) {
- br.y += document.body.scrollTop;
- br.x += document.body.scrollLeft;
- } else {
- br.y += window.scrollY;
- br.x += window.scrollX;
- }
- var tmp = box.x + box.width - br.x;
- if (tmp > 0) box.x -= tmp;
- tmp = box.y + box.height - br.y;
- if (tmp > 0) box.y -= tmp;
- };
- this.element.style.display = "block";
- Calendar.continuation_for_the_fucking_khtml_browser = function() {
- var w = self.element.offsetWidth;
- var h = self.element.offsetHeight;
- self.element.style.display = "none";
- var valign = opts.substr(0, 1);
- var halign = "l";
- if (opts.length > 1) {
- halign = opts.substr(1, 1);
- }
- // vertical alignment
- switch (valign) {
- case "T": p.y -= h; break;
- case "B": p.y += el.offsetHeight; break;
- case "C": p.y += (el.offsetHeight - h) / 2; break;
- case "t": p.y += el.offsetHeight - h; break;
- case "b": break; // already there
- }
- // horizontal alignment
- switch (halign) {
- case "L": p.x -= w; break;
- case "R": p.x += el.offsetWidth; break;
- case "C": p.x += (el.offsetWidth - w) / 2; break;
- case "l": p.x += el.offsetWidth - w; break;
- case "r": break; // already there
- }
- p.width = w;
- p.height = h + 40;
- self.monthsCombo.style.display = "none";
- fixPosition(p);
- self.showAt(p.x, p.y);
- };
- if (Calendar.is_khtml)
- setTimeout("Calendar.continuation_for_the_fucking_khtml_browser()", 10);
- else
- Calendar.continuation_for_the_fucking_khtml_browser();
-};
-
-/** Customizes the date format. */
-Calendar.prototype.setDateFormat = function (str) {
- this.dateFormat = str;
-};
-
-/** Customizes the tooltip date format. */
-Calendar.prototype.setTtDateFormat = function (str) {
- this.ttDateFormat = str;
-};
-
-/**
- * Tries to identify the date represented in a string. If successful it also
- * calls this.setDate which moves the calendar to the given date.
- */
-Calendar.prototype.parseDate = function(str, fmt) {
- if (!fmt)
- fmt = this.dateFormat;
- this.setDate(Date.parseDate(str, fmt));
-};
-
-Calendar.prototype.hideShowCovered = function () {
- if (!Calendar.is_ie && !Calendar.is_opera)
- return;
- function getVisib(obj){
- var value = obj.style.visibility;
- if (!value) {
- if (document.defaultView && typeof (document.defaultView.getComputedStyle) == "function") { // Gecko, W3C
- if (!Calendar.is_khtml)
- value = document.defaultView.
- getComputedStyle(obj, "").getPropertyValue("visibility");
- else
- value = '';
- } else if (obj.currentStyle) { // IE
- value = obj.currentStyle.visibility;
- } else
- value = '';
- }
- return value;
- };
-
- var tags = new Array("applet", "iframe", "select");
- var el = this.element;
-
- var p = Calendar.getAbsolutePos(el);
- var EX1 = p.x;
- var EX2 = el.offsetWidth + EX1;
- var EY1 = p.y;
- var EY2 = el.offsetHeight + EY1;
-
- for (var k = tags.length; k > 0; ) {
- var ar = document.getElementsByTagName(tags[--k]);
- var cc = null;
-
- for (var i = ar.length; i > 0;) {
- cc = ar[--i];
-
- p = Calendar.getAbsolutePos(cc);
- var CX1 = p.x;
- var CX2 = cc.offsetWidth + CX1;
- var CY1 = p.y;
- var CY2 = cc.offsetHeight + CY1;
-
- if (this.hidden || (CX1 > EX2) || (CX2 < EX1) || (CY1 > EY2) || (CY2 < EY1)) {
- if (!cc.__msh_save_visibility) {
- cc.__msh_save_visibility = getVisib(cc);
- }
- cc.style.visibility = cc.__msh_save_visibility;
- } else {
- if (!cc.__msh_save_visibility) {
- cc.__msh_save_visibility = getVisib(cc);
- }
- cc.style.visibility = "hidden";
- }
- }
- }
-};
-
-/** Internal function; it displays the bar with the names of the weekday. */
-Calendar.prototype._displayWeekdays = function () {
- var fdow = this.firstDayOfWeek;
- var cell = this.firstdayname;
- var weekend = Calendar._TT["WEEKEND"];
- for (var i = 0; i < 7; ++i) {
- cell.className = "day name";
- var realday = (i + fdow) % 7;
- if (i) {
- cell.ttip = Calendar._TT["DAY_FIRST"].replace("%s", Calendar._DN[realday]);
- cell.navtype = 100;
- cell.calendar = this;
- cell.fdow = realday;
- Calendar._add_evs(cell);
- }
- if (weekend.indexOf(realday.toString()) != -1) {
- Calendar.addClass(cell, "weekend");
- }
- cell.innerHTML = Calendar._SDN[(i + fdow) % 7];
- cell = cell.nextSibling;
- }
-};
-
-/** Internal function. Hides all combo boxes that might be displayed. */
-Calendar.prototype._hideCombos = function () {
- this.monthsCombo.style.display = "none";
- this.yearsCombo.style.display = "none";
-};
-
-/** Internal function. Starts dragging the element. */
-Calendar.prototype._dragStart = function (ev) {
- if (this.dragging) {
- return;
- }
- this.dragging = true;
- var posX;
- var posY;
- if (Calendar.is_ie) {
- posY = window.event.clientY + document.body.scrollTop;
- posX = window.event.clientX + document.body.scrollLeft;
- } else {
- posY = ev.clientY + window.scrollY;
- posX = ev.clientX + window.scrollX;
- }
- var st = this.element.style;
- this.xOffs = posX - parseInt(st.left);
- this.yOffs = posY - parseInt(st.top);
- with (Calendar) {
- addEvent(document, "mousemove", calDragIt);
- addEvent(document, "mouseup", calDragEnd);
- }
-};
-
-// BEGIN: DATE OBJECT PATCHES
-
-/** Adds the number of days array to the Date object. */
-Date._MD = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
-
-/** Constants used for time computations */
-Date.SECOND = 1000 /* milliseconds */;
-Date.MINUTE = 60 * Date.SECOND;
-Date.HOUR = 60 * Date.MINUTE;
-Date.DAY = 24 * Date.HOUR;
-Date.WEEK = 7 * Date.DAY;
-
-Date.parseDate = function(str, fmt) {
- var today = new Date();
- var y = 0;
- var m = -1;
- var d = 0;
- var a = str.split(/\W+/);
- var b = fmt.match(/%./g);
- var i = 0, j = 0;
- var hr = 0;
- var min = 0;
- for (i = 0; i < a.length; ++i) {
- if (!a[i])
- continue;
- switch (b[i]) {
- case "%d":
- case "%e":
- d = parseInt(a[i], 10);
- break;
-
- case "%m":
- m = parseInt(a[i], 10) - 1;
- break;
-
- case "%Y":
- case "%y":
- y = parseInt(a[i], 10);
- (y < 100) && (y += (y > 29) ? 1900 : 2000);
- break;
-
- case "%b":
- case "%B":
- for (j = 0; j < 12; ++j) {
- if (Calendar._MN[j].substr(0, a[i].length).toLowerCase() == a[i].toLowerCase()) { m = j; break; }
- }
- break;
-
- case "%H":
- case "%I":
- case "%k":
- case "%l":
- hr = parseInt(a[i], 10);
- break;
-
- case "%P":
- case "%p":
- if (/pm/i.test(a[i]) && hr < 12)
- hr += 12;
- else if (/am/i.test(a[i]) && hr >= 12)
- hr -= 12;
- break;
-
- case "%M":
- min = parseInt(a[i], 10);
- break;
- }
- }
- if (isNaN(y)) y = today.getFullYear();
- if (isNaN(m)) m = today.getMonth();
- if (isNaN(d)) d = today.getDate();
- if (isNaN(hr)) hr = today.getHours();
- if (isNaN(min)) min = today.getMinutes();
- if (y != 0 && m != -1 && d != 0)
- return new Date(y, m, d, hr, min, 0);
- y = 0; m = -1; d = 0;
- for (i = 0; i < a.length; ++i) {
- if (a[i].search(/[a-zA-Z]+/) != -1) {
- var t = -1;
- for (j = 0; j < 12; ++j) {
- if (Calendar._MN[j].substr(0, a[i].length).toLowerCase() == a[i].toLowerCase()) { t = j; break; }
- }
- if (t != -1) {
- if (m != -1) {
- d = m+1;
- }
- m = t;
- }
- } else if (parseInt(a[i], 10) <= 12 && m == -1) {
- m = a[i]-1;
- } else if (parseInt(a[i], 10) > 31 && y == 0) {
- y = parseInt(a[i], 10);
- (y < 100) && (y += (y > 29) ? 1900 : 2000);
- } else if (d == 0) {
- d = a[i];
- }
- }
- if (y == 0)
- y = today.getFullYear();
- if (m != -1 && d != 0)
- return new Date(y, m, d, hr, min, 0);
- return today;
-};
-
-/** Returns the number of days in the current month */
-Date.prototype.getMonthDays = function(month) {
- var year = this.getFullYear();
- if (typeof month == "undefined") {
- month = this.getMonth();
- }
- if (((0 == (year%4)) && ( (0 != (year%100)) || (0 == (year%400)))) && month == 1) {
- return 29;
- } else {
- return Date._MD[month];
- }
-};
-
-/** Returns the number of day in the year. */
-Date.prototype.getDayOfYear = function() {
- var now = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);
- var then = new Date(this.getFullYear(), 0, 0, 0, 0, 0);
- var time = now - then;
- return Math.floor(time / Date.DAY);
-};
-
-/** Returns the number of the week in year, as defined in ISO 8601. */
-Date.prototype.getWeekNumber = function() {
- var d = new Date(this.getFullYear(), this.getMonth(), this.getDate(), 0, 0, 0);
- var DoW = d.getDay();
- d.setDate(d.getDate() - (DoW + 6) % 7 + 3); // Nearest Thu
- var ms = d.valueOf(); // GMT
- d.setMonth(0);
- d.setDate(4); // Thu in Week 1
- return Math.round((ms - d.valueOf()) / (7 * 864e5)) + 1;
-};
-
-/** Checks date and time equality */
-Date.prototype.equalsTo = function(date) {
- return ((this.getFullYear() == date.getFullYear()) &&
- (this.getMonth() == date.getMonth()) &&
- (this.getDate() == date.getDate()) &&
- (this.getHours() == date.getHours()) &&
- (this.getMinutes() == date.getMinutes()));
-};
-
-/** Set only the year, month, date parts (keep existing time) */
-Date.prototype.setDateOnly = function(date) {
- var tmp = new Date(date);
- this.setDate(1);
- this.setFullYear(tmp.getFullYear());
- this.setMonth(tmp.getMonth());
- this.setDate(tmp.getDate());
-};
-
-/** Prints the date in a string according to the given format. */
-Date.prototype.print = function (str) {
- var m = this.getMonth();
- var d = this.getDate();
- var y = this.getFullYear();
- var wn = this.getWeekNumber();
- var w = this.getDay();
- var s = {};
- var hr = this.getHours();
- var pm = (hr >= 12);
- var ir = (pm) ? (hr - 12) : hr;
- var dy = this.getDayOfYear();
- if (ir == 0)
- ir = 12;
- var min = this.getMinutes();
- var sec = this.getSeconds();
- s["%a"] = Calendar._SDN[w]; // abbreviated weekday name [FIXME: I18N]
- s["%A"] = Calendar._DN[w]; // full weekday name
- s["%b"] = Calendar._SMN[m]; // abbreviated month name [FIXME: I18N]
- s["%B"] = Calendar._MN[m]; // full month name
- // FIXME: %c : preferred date and time representation for the current locale
- s["%C"] = 1 + Math.floor(y / 100); // the century number
- s["%d"] = (d < 10) ? ("0" + d) : d; // the day of the month (range 01 to 31)
- s["%e"] = d; // the day of the month (range 1 to 31)
- // FIXME: %D : american date style: %m/%d/%y
- // FIXME: %E, %F, %G, %g, %h (man strftime)
- s["%H"] = (hr < 10) ? ("0" + hr) : hr; // hour, range 00 to 23 (24h format)
- s["%I"] = (ir < 10) ? ("0" + ir) : ir; // hour, range 01 to 12 (12h format)
- s["%j"] = (dy < 100) ? ((dy < 10) ? ("00" + dy) : ("0" + dy)) : dy; // day of the year (range 001 to 366)
- s["%k"] = hr; // hour, range 0 to 23 (24h format)
- s["%l"] = ir; // hour, range 1 to 12 (12h format)
- s["%m"] = (m < 9) ? ("0" + (1+m)) : (1+m); // month, range 01 to 12
- s["%M"] = (min < 10) ? ("0" + min) : min; // minute, range 00 to 59
- s["%n"] = "\n"; // a newline character
- s["%p"] = pm ? "PM" : "AM";
- s["%P"] = pm ? "pm" : "am";
- // FIXME: %r : the time in am/pm notation %I:%M:%S %p
- // FIXME: %R : the time in 24-hour notation %H:%M
- s["%s"] = Math.floor(this.getTime() / 1000);
- s["%S"] = (sec < 10) ? ("0" + sec) : sec; // seconds, range 00 to 59
- s["%t"] = "\t"; // a tab character
- // FIXME: %T : the time in 24-hour notation (%H:%M:%S)
- s["%U"] = s["%W"] = s["%V"] = (wn < 10) ? ("0" + wn) : wn;
- s["%u"] = w + 1; // the day of the week (range 1 to 7, 1 = MON)
- s["%w"] = w; // the day of the week (range 0 to 6, 0 = SUN)
- // FIXME: %x : preferred date representation for the current locale without the time
- // FIXME: %X : preferred time representation for the current locale without the date
- s["%y"] = ('' + y).substr(2, 2); // year without the century (range 00 to 99)
- s["%Y"] = y; // year with the century
- s["%%"] = "%"; // a literal '%' character
-
- var re = /%./g;
- if (!Calendar.is_ie5 && !Calendar.is_khtml)
- return str.replace(re, function (par) { return s[par] || par; });
-
- var a = str.match(re);
- for (var i = 0; i < a.length; i++) {
- var tmp = s[a[i]];
- if (tmp) {
- re = new RegExp(a[i], 'g');
- str = str.replace(re, tmp);
- }
- }
-
- return str;
-};
-
-Date.prototype.__msh_oldSetFullYear = Date.prototype.setFullYear;
-Date.prototype.setFullYear = function(y) {
- var d = new Date(this);
- d.__msh_oldSetFullYear(y);
- if (d.getMonth() != this.getMonth())
- this.setDate(28);
- this.__msh_oldSetFullYear(y);
-};
-
-// END: DATE OBJECT PATCHES
-
-
-// global object that remembers the calendar
-window._dynarch_popupCalendar = null;
diff --git a/WebContent/themes/default/jscalendar/calendar_stripped.js b/WebContent/themes/default/jscalendar/calendar_stripped.js
deleted file mode 100644
index 4fe03f1ea9..0000000000
--- a/WebContent/themes/default/jscalendar/calendar_stripped.js
+++ /dev/null
@@ -1,14 +0,0 @@
-/* Copyright Mihai Bazon, 2002-2005 | www.bazon.net/mishoo
- * -----------------------------------------------------------
- *
- * The DHTML Calendar, version 1.0 "It is happening again"
- *
- * Details and latest version at:
- * www.dynarch.com/projects/calendar
- *
- * This script is developed by Dynarch.com. Visit us at www.dynarch.com.
- *
- * This script is distributed under the GNU Lesser General Public License.
- * Read the entire license text here: http://www.gnu.org/licenses/lgpl.html
- */
- Calendar=function(firstDayOfWeek,dateStr,onSelected,onClose){this.activeDiv=null;this.currentDateEl=null;this.getDateStatus=null;this.getDateToolTip=null;this.getDateText=null;this.timeout=null;this.onSelected=onSelected||null;this.onClose=onClose||null;this.dragging=false;this.hidden=false;this.minYear=1970;this.maxYear=2050;this.dateFormat=Calendar._TT["DEF_DATE_FORMAT"];this.ttDateFormat=Calendar._TT["TT_DATE_FORMAT"];this.isPopup=true;this.weekNumbers=true;this.firstDayOfWeek=typeof firstDayOfWeek=="number"?firstDayOfWeek:Calendar._FD;this.showsOtherMonths=false;this.dateStr=dateStr;this.ar_days=null;this.showsTime=false;this.time24=true;this.yearStep=2;this.hiliteToday=true;this.multiple=null;this.table=null;this.element=null;this.tbody=null;this.firstdayname=null;this.monthsCombo=null;this.yearsCombo=null;this.hilitedMonth=null;this.activeMonth=null;this.hilitedYear=null;this.activeYear=null;this.dateClicked=false;if(typeof Calendar._SDN=="undefined"){if(typeof Calendar._SDN_len=="undefined")Calendar._SDN_len=3;var ar=new Array();for(var i=8;i>0;){ar[--i]=Calendar._DN[i].substr(0,Calendar._SDN_len);}Calendar._SDN=ar;if(typeof Calendar._SMN_len=="undefined")Calendar._SMN_len=3;ar=new Array();for(var i=12;i>0;){ar[--i]=Calendar._MN[i].substr(0,Calendar._SMN_len);}Calendar._SMN=ar;}};Calendar._C=null;Calendar.is_ie=(/msie/i.test(navigator.userAgent)&&!/opera/i.test(navigator.userAgent));Calendar.is_ie5=(Calendar.is_ie&&/msie 5\.0/i.test(navigator.userAgent));Calendar.is_opera=/opera/i.test(navigator.userAgent);Calendar.is_khtml=/Konqueror|Safari|KHTML/i.test(navigator.userAgent);Calendar.getAbsolutePos=function(el){var SL=0,ST=0;var is_div=/^div$/i.test(el.tagName);if(is_div&&el.scrollLeft)SL=el.scrollLeft;if(is_div&&el.scrollTop)ST=el.scrollTop;var r={x:el.offsetLeft-SL,y:el.offsetTop-ST};if(el.offsetParent){var tmp=this.getAbsolutePos(el.offsetParent);r.x+=tmp.x;r.y+=tmp.y;}return r;};Calendar.isRelated=function(el,evt){var related=evt.relatedTarget;if(!related){var type=evt.type;if(type=="mouseover"){related=evt.fromElement;}else if(type=="mouseout"){related=evt.toElement;}}while(related){if(related==el){return true;}related=related.parentNode;}return false;};Calendar.removeClass=function(el,className){if(!(el&&el.className)){return;}var cls=el.className.split(" ");var ar=new Array();for(var i=cls.length;i>0;){if(cls[--i]!=className){ar[ar.length]=cls[i];}}el.className=ar.join(" ");};Calendar.addClass=function(el,className){Calendar.removeClass(el,className);el.className+=" "+className;};Calendar.getElement=function(ev){var f=Calendar.is_ie?window.event.srcElement:ev.currentTarget;while(f.nodeType!=1||/^div$/i.test(f.tagName))f=f.parentNode;return f;};Calendar.getTargetElement=function(ev){var f=Calendar.is_ie?window.event.srcElement:ev.target;while(f.nodeType!=1)f=f.parentNode;return f;};Calendar.stopEvent=function(ev){ev||(ev=window.event);if(Calendar.is_ie){ev.cancelBubble=true;ev.returnValue=false;}else{ev.preventDefault();ev.stopPropagation();}return false;};Calendar.addEvent=function(el,evname,func){if(el.attachEvent){el.attachEvent("on"+evname,func);}else if(el.addEventListener){el.addEventListener(evname,func,true);}else{el["on"+evname]=func;}};Calendar.removeEvent=function(el,evname,func){if(el.detachEvent){el.detachEvent("on"+evname,func);}else if(el.removeEventListener){el.removeEventListener(evname,func,true);}else{el["on"+evname]=null;}};Calendar.createElement=function(type,parent){var el=null;if(document.createElementNS){el=document.createElementNS("http://www.w3.org/1999/xhtml",type);}else{el=document.createElement(type);}if(typeof parent!="undefined"){parent.appendChild(el);}return el;};Calendar._add_evs=function(el){with(Calendar){addEvent(el,"mouseover",dayMouseOver);addEvent(el,"mousedown",dayMouseDown);addEvent(el,"mouseout",dayMouseOut);if(is_ie){addEvent(el,"dblclick",dayMouseDblClick);el.setAttribute("unselectable",true);}}};Calendar.findMonth=function(el){if(typeof el.month!="undefined"){return el;}else if(typeof el.parentNode.month!="undefined"){return el.parentNode;}return null;};Calendar.findYear=function(el){if(typeof el.year!="undefined"){return el;}else if(typeof el.parentNode.year!="undefined"){return el.parentNode;}return null;};Calendar.showMonthsCombo=function(){var cal=Calendar._C;if(!cal){return false;}var cal=cal;var cd=cal.activeDiv;var mc=cal.monthsCombo;if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}if(cal.activeMonth){Calendar.removeClass(cal.activeMonth,"active");}var mon=cal.monthsCombo.getElementsByTagName("div")[cal.date.getMonth()];Calendar.addClass(mon,"active");cal.activeMonth=mon;var s=mc.style;s.display="block";if(cd.navtype<0)s.left=cd.offsetLeft+"px";else{var mcw=mc.offsetWidth;if(typeof mcw=="undefined")mcw=50;s.left=(cd.offsetLeft+cd.offsetWidth-mcw)+"px";}s.top=(cd.offsetTop+cd.offsetHeight)+"px";};Calendar.showYearsCombo=function(fwd){var cal=Calendar._C;if(!cal){return false;}var cal=cal;var cd=cal.activeDiv;var yc=cal.yearsCombo;if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}if(cal.activeYear){Calendar.removeClass(cal.activeYear,"active");}cal.activeYear=null;var Y=cal.date.getFullYear()+(fwd?1:-1);var yr=yc.firstChild;var show=false;for(var i=12;i>0;--i){if(Y>=cal.minYear&&Y<=cal.maxYear){yr.innerHTML=Y;yr.year=Y;yr.style.display="block";show=true;}else{yr.style.display="none";}yr=yr.nextSibling;Y+=fwd?cal.yearStep:-cal.yearStep;}if(show){var s=yc.style;s.display="block";if(cd.navtype<0)s.left=cd.offsetLeft+"px";else{var ycw=yc.offsetWidth;if(typeof ycw=="undefined")ycw=50;s.left=(cd.offsetLeft+cd.offsetWidth-ycw)+"px";}s.top=(cd.offsetTop+cd.offsetHeight)+"px";}};Calendar.tableMouseUp=function(ev){var cal=Calendar._C;if(!cal){return false;}if(cal.timeout){clearTimeout(cal.timeout);}var el=cal.activeDiv;if(!el){return false;}var target=Calendar.getTargetElement(ev);ev||(ev=window.event);Calendar.removeClass(el,"active");if(target==el||target.parentNode==el){Calendar.cellClick(el,ev);}var mon=Calendar.findMonth(target);var date=null;if(mon){date=new Date(cal.date);if(mon.month!=date.getMonth()){date.setMonth(mon.month);cal.setDate(date);cal.dateClicked=false;cal.callHandler();}}else{var year=Calendar.findYear(target);if(year){date=new Date(cal.date);if(year.year!=date.getFullYear()){date.setFullYear(year.year);cal.setDate(date);cal.dateClicked=false;cal.callHandler();}}}with(Calendar){removeEvent(document,"mouseup",tableMouseUp);removeEvent(document,"mouseover",tableMouseOver);removeEvent(document,"mousemove",tableMouseOver);cal._hideCombos();_C=null;return stopEvent(ev);}};Calendar.tableMouseOver=function(ev){var cal=Calendar._C;if(!cal){return;}var el=cal.activeDiv;var target=Calendar.getTargetElement(ev);if(target==el||target.parentNode==el){Calendar.addClass(el,"hilite active");Calendar.addClass(el.parentNode,"rowhilite");}else{if(typeof el.navtype=="undefined"||(el.navtype!=50&&(el.navtype==0||Math.abs(el.navtype)>2)))Calendar.removeClass(el,"active");Calendar.removeClass(el,"hilite");Calendar.removeClass(el.parentNode,"rowhilite");}ev||(ev=window.event);if(el.navtype==50&&target!=el){var pos=Calendar.getAbsolutePos(el);var w=el.offsetWidth;var x=ev.clientX;var dx;var decrease=true;if(x>pos.x+w){dx=x-pos.x-w;decrease=false;}else dx=pos.x-x;if(dx<0)dx=0;var range=el._range;var current=el._current;var count=Math.floor(dx/10)%range.length;for(var i=range.length;--i>=0;)if(range[i]==current)break;while(count-->0)if(decrease){if(--i<0)i=range.length-1;}else if(++i>=range.length)i=0;var newval=range[i];el.innerHTML=newval;cal.onUpdateTime();}var mon=Calendar.findMonth(target);if(mon){if(mon.month!=cal.date.getMonth()){if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}Calendar.addClass(mon,"hilite");cal.hilitedMonth=mon;}else if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}}else{if(cal.hilitedMonth){Calendar.removeClass(cal.hilitedMonth,"hilite");}var year=Calendar.findYear(target);if(year){if(year.year!=cal.date.getFullYear()){if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}Calendar.addClass(year,"hilite");cal.hilitedYear=year;}else if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}}else if(cal.hilitedYear){Calendar.removeClass(cal.hilitedYear,"hilite");}}return Calendar.stopEvent(ev);};Calendar.tableMouseDown=function(ev){if(Calendar.getTargetElement(ev)==Calendar.getElement(ev)){return Calendar.stopEvent(ev);}};Calendar.calDragIt=function(ev){var cal=Calendar._C;if(!(cal&&cal.dragging)){return false;}var posX;var posY;if(Calendar.is_ie){posY=window.event.clientY+document.body.scrollTop;posX=window.event.clientX+document.body.scrollLeft;}else{posX=ev.pageX;posY=ev.pageY;}cal.hideShowCovered();var st=cal.element.style;st.left=(posX-cal.xOffs)+"px";st.top=(posY-cal.yOffs)+"px";return Calendar.stopEvent(ev);};Calendar.calDragEnd=function(ev){var cal=Calendar._C;if(!cal){return false;}cal.dragging=false;with(Calendar){removeEvent(document,"mousemove",calDragIt);removeEvent(document,"mouseup",calDragEnd);tableMouseUp(ev);}cal.hideShowCovered();};Calendar.dayMouseDown=function(ev){var el=Calendar.getElement(ev);if(el.disabled){return false;}var cal=el.calendar;cal.activeDiv=el;Calendar._C=cal;if(el.navtype!=300)with(Calendar){if(el.navtype==50){el._current=el.innerHTML;addEvent(document,"mousemove",tableMouseOver);}else addEvent(document,Calendar.is_ie5?"mousemove":"mouseover",tableMouseOver);addClass(el,"hilite active");addEvent(document,"mouseup",tableMouseUp);}else if(cal.isPopup){cal._dragStart(ev);}if(el.navtype==-1||el.navtype==1){if(cal.timeout)clearTimeout(cal.timeout);cal.timeout=setTimeout("Calendar.showMonthsCombo()",250);}else if(el.navtype==-2||el.navtype==2){if(cal.timeout)clearTimeout(cal.timeout);cal.timeout=setTimeout((el.navtype>0)?"Calendar.showYearsCombo(true)":"Calendar.showYearsCombo(false)",250);}else{cal.timeout=null;}return Calendar.stopEvent(ev);};Calendar.dayMouseDblClick=function(ev){Calendar.cellClick(Calendar.getElement(ev),ev||window.event);if(Calendar.is_ie){document.selection.empty();}};Calendar.dayMouseOver=function(ev){var el=Calendar.getElement(ev);if(Calendar.isRelated(el,ev)||Calendar._C||el.disabled){return false;}if(el.ttip){if(el.ttip.substr(0,1)=="_"){el.ttip=el.caldate.print(el.calendar.ttDateFormat)+el.ttip.substr(1);}el.calendar.tooltips.innerHTML=el.ttip;}if(el.navtype!=300){Calendar.addClass(el,"hilite");if(el.caldate){Calendar.addClass(el.parentNode,"rowhilite");}}return Calendar.stopEvent(ev);};Calendar.dayMouseOut=function(ev){with(Calendar){var el=getElement(ev);if(isRelated(el,ev)||_C||el.disabled)return false;removeClass(el,"hilite");if(el.caldate)removeClass(el.parentNode,"rowhilite");if(el.calendar)el.calendar.tooltips.innerHTML=_TT["SEL_DATE"];return stopEvent(ev);}};Calendar.cellClick=function(el,ev){var cal=el.calendar;var closing=false;var newdate=false;var date=null;if(typeof el.navtype=="undefined"){if(cal.currentDateEl){Calendar.removeClass(cal.currentDateEl,"selected");Calendar.addClass(el,"selected");closing=(cal.currentDateEl==el);if(!closing){cal.currentDateEl=el;}}cal.date.setDateOnly(el.caldate);date=cal.date;var other_month=!(cal.dateClicked=!el.otherMonth);if(!other_month&&!cal.currentDateEl)cal._toggleMultipleDate(new Date(date));else newdate=!el.disabled;if(other_month)cal._init(cal.firstDayOfWeek,date);}else{if(el.navtype==200){Calendar.removeClass(el,"hilite");cal.callCloseHandler();return;}date=new Date(cal.date);if(el.navtype==0)date.setDateOnly(new Date());cal.dateClicked=false;var year=date.getFullYear();var mon=date.getMonth();function setMonth(m){var day=date.getDate();var max=date.getMonthDays(m);if(day>max){date.setDate(max);}date.setMonth(m);};switch(el.navtype){case 400:Calendar.removeClass(el,"hilite");var text=Calendar._TT["ABOUT"];if(typeof text!="undefined"){text+=cal.showsTime?Calendar._TT["ABOUT_TIME"]:"";}else{text="Help and about box text is not translated into this language.\n"+"If you know this language and you feel generous please update\n"+"the corresponding file in \"lang\" subdir to match calendar-en.js\n"+"and send it back to <mihai_bazon@yahoo.com> to get it into the distribution ;-)\n\n"+"Thank you!\n"+"http://dynarch.com/mishoo/calendar.epl\n";}alert(text);return;case-2:if(year>cal.minYear){date.setFullYear(year-1);}break;case-1:if(mon>0){setMonth(mon-1);}else if(year-->cal.minYear){date.setFullYear(year);setMonth(11);}break;case 1:if(mon<11){setMonth(mon+1);}else if(year<cal.maxYear){date.setFullYear(year+1);setMonth(0);}break;case 2:if(year<cal.maxYear){date.setFullYear(year+1);}break;case 100:cal.setFirstDayOfWeek(el.fdow);return;case 50:var range=el._range;var current=el.innerHTML;for(var i=range.length;--i>=0;)if(range[i]==current)break;if(ev&&ev.shiftKey){if(--i<0)i=range.length-1;}else if(++i>=range.length)i=0;var newval=range[i];el.innerHTML=newval;cal.onUpdateTime();return;case 0:if((typeof cal.getDateStatus=="function")&&cal.getDateStatus(date,date.getFullYear(),date.getMonth(),date.getDate())){return false;}break;}if(!date.equalsTo(cal.date)){cal.setDate(date);newdate=true;}else if(el.navtype==0)newdate=closing=true;}if(newdate){ev&&cal.callHandler();}if(closing){Calendar.removeClass(el,"hilite");ev&&cal.callCloseHandler();}};Calendar.prototype.create=function(_par){var parent=null;if(!_par){parent=document.getElementsByTagName("body")[0];this.isPopup=true;}else{parent=_par;this.isPopup=false;}this.date=this.dateStr?new Date(this.dateStr):new Date();var table=Calendar.createElement("table");this.table=table;table.cellSpacing=0;table.cellPadding=0;table.calendar=this;Calendar.addEvent(table,"mousedown",Calendar.tableMouseDown);var div=Calendar.createElement("div");this.element=div;div.className="calendar";if(this.isPopup){div.style.position="absolute";div.style.display="none";}div.appendChild(table);var thead=Calendar.createElement("thead",table);var cell=null;var row=null;var cal=this;var hh=function(text,cs,navtype){cell=Calendar.createElement("td",row);cell.colSpan=cs;cell.className="button";if(navtype!=0&&Math.abs(navtype)<=2)cell.className+=" nav";Calendar._add_evs(cell);cell.calendar=cal;cell.navtype=navtype;cell.innerHTML="<div unselectable='on'>"+text+"</div>";return cell;};row=Calendar.createElement("tr",thead);var title_length=6;(this.isPopup)&&--title_length;(this.weekNumbers)&&++title_length;hh("?",1,400).ttip=Calendar._TT["INFO"];this.title=hh("",title_length,300);this.title.className="title";if(this.isPopup){this.title.ttip=Calendar._TT["DRAG_TO_MOVE"];this.title.style.cursor="move";hh("&#x00d7;",1,200).ttip=Calendar._TT["CLOSE"];}row=Calendar.createElement("tr",thead);row.className="headrow";this._nav_py=hh("&#x00ab;",1,-2);this._nav_py.ttip=Calendar._TT["PREV_YEAR"];this._nav_pm=hh("&#x2039;",1,-1);this._nav_pm.ttip=Calendar._TT["PREV_MONTH"];this._nav_now=hh(Calendar._TT["TODAY"],this.weekNumbers?4:3,0);this._nav_now.ttip=Calendar._TT["GO_TODAY"];this._nav_nm=hh("&#x203a;",1,1);this._nav_nm.ttip=Calendar._TT["NEXT_MONTH"];this._nav_ny=hh("&#x00bb;",1,2);this._nav_ny.ttip=Calendar._TT["NEXT_YEAR"];row=Calendar.createElement("tr",thead);row.className="daynames";if(this.weekNumbers){cell=Calendar.createElement("td",row);cell.className="name wn";cell.innerHTML=Calendar._TT["WK"];}for(var i=7;i>0;--i){cell=Calendar.createElement("td",row);if(!i){cell.navtype=100;cell.calendar=this;Calendar._add_evs(cell);}}this.firstdayname=(this.weekNumbers)?row.firstChild.nextSibling:row.firstChild;this._displayWeekdays();var tbody=Calendar.createElement("tbody",table);this.tbody=tbody;for(i=6;i>0;--i){row=Calendar.createElement("tr",tbody);if(this.weekNumbers){cell=Calendar.createElement("td",row);}for(var j=7;j>0;--j){cell=Calendar.createElement("td",row);cell.calendar=this;Calendar._add_evs(cell);}}if(this.showsTime){row=Calendar.createElement("tr",tbody);row.className="time";cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=2;cell.innerHTML=Calendar._TT["TIME"]||"&nbsp;";cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=this.weekNumbers?4:3;(function(){function makeTimePart(className,init,range_start,range_end){var part=Calendar.createElement("span",cell);part.className=className;part.innerHTML=init;part.calendar=cal;part.ttip=Calendar._TT["TIME_PART"];part.navtype=50;part._range=[];if(typeof range_start!="number")part._range=range_start;else{for(var i=range_start;i<=range_end;++i){var txt;if(i<10&&range_end>=10)txt='0'+i;else txt=''+i;part._range[part._range.length]=txt;}}Calendar._add_evs(part);return part;};var hrs=cal.date.getHours();var mins=cal.date.getMinutes();var t12=!cal.time24;var pm=(hrs>12);if(t12&&pm)hrs-=12;var H=makeTimePart("hour",hrs,t12?1:0,t12?12:23);var span=Calendar.createElement("span",cell);span.innerHTML=":";span.className="colon";var M=makeTimePart("minute",mins,0,59);var AP=null;cell=Calendar.createElement("td",row);cell.className="time";cell.colSpan=2;if(t12)AP=makeTimePart("ampm",pm?"pm":"am",["am","pm"]);else cell.innerHTML="&nbsp;";cal.onSetTime=function(){var pm,hrs=this.date.getHours(),mins=this.date.getMinutes();if(t12){pm=(hrs>=12);if(pm)hrs-=12;if(hrs==0)hrs=12;AP.innerHTML=pm?"pm":"am";}H.innerHTML=(hrs<10)?("0"+hrs):hrs;M.innerHTML=(mins<10)?("0"+mins):mins;};cal.onUpdateTime=function(){var date=this.date;var h=parseInt(H.innerHTML,10);if(t12){if(/pm/i.test(AP.innerHTML)&&h<12)h+=12;else if(/am/i.test(AP.innerHTML)&&h==12)h=0;}var d=date.getDate();var m=date.getMonth();var y=date.getFullYear();date.setHours(h);date.setMinutes(parseInt(M.innerHTML,10));date.setFullYear(y);date.setMonth(m);date.setDate(d);this.dateClicked=false;this.callHandler();};})();}else{this.onSetTime=this.onUpdateTime=function(){};}var tfoot=Calendar.createElement("tfoot",table);row=Calendar.createElement("tr",tfoot);row.className="footrow";cell=hh(Calendar._TT["SEL_DATE"],this.weekNumbers?8:7,300);cell.className="ttip";if(this.isPopup){cell.ttip=Calendar._TT["DRAG_TO_MOVE"];cell.style.cursor="move";}this.tooltips=cell;div=Calendar.createElement("div",this.element);this.monthsCombo=div;div.className="combo";for(i=0;i<Calendar._MN.length;++i){var mn=Calendar.createElement("div");mn.className=Calendar.is_ie?"label-IEfix":"label";mn.month=i;mn.innerHTML=Calendar._SMN[i];div.appendChild(mn);}div=Calendar.createElement("div",this.element);this.yearsCombo=div;div.className="combo";for(i=12;i>0;--i){var yr=Calendar.createElement("div");yr.className=Calendar.is_ie?"label-IEfix":"label";div.appendChild(yr);}this._init(this.firstDayOfWeek,this.date);parent.appendChild(this.element);};Calendar._keyEvent=function(ev){var cal=window._dynarch_popupCalendar;if(!cal||cal.multiple)return false;(Calendar.is_ie)&&(ev=window.event);var act=(Calendar.is_ie||ev.type=="keypress"),K=ev.keyCode;if(ev.ctrlKey){switch(K){case 37:act&&Calendar.cellClick(cal._nav_pm);break;case 38:act&&Calendar.cellClick(cal._nav_py);break;case 39:act&&Calendar.cellClick(cal._nav_nm);break;case 40:act&&Calendar.cellClick(cal._nav_ny);break;default:return false;}}else switch(K){case 32:Calendar.cellClick(cal._nav_now);break;case 27:act&&cal.callCloseHandler();break;case 37:case 38:case 39:case 40:if(act){var prev,x,y,ne,el,step;prev=K==37||K==38;step=(K==37||K==39)?1:7;function setVars(){el=cal.currentDateEl;var p=el.pos;x=p&15;y=p>>4;ne=cal.ar_days[y][x];};setVars();function prevMonth(){var date=new Date(cal.date);date.setDate(date.getDate()-step);cal.setDate(date);};function nextMonth(){var date=new Date(cal.date);date.setDate(date.getDate()+step);cal.setDate(date);};while(1){switch(K){case 37:if(--x>=0)ne=cal.ar_days[y][x];else{x=6;K=38;continue;}break;case 38:if(--y>=0)ne=cal.ar_days[y][x];else{prevMonth();setVars();}break;case 39:if(++x<7)ne=cal.ar_days[y][x];else{x=0;K=40;continue;}break;case 40:if(++y<cal.ar_days.length)ne=cal.ar_days[y][x];else{nextMonth();setVars();}break;}break;}if(ne){if(!ne.disabled)Calendar.cellClick(ne);else if(prev)prevMonth();else nextMonth();}}break;case 13:if(act)Calendar.cellClick(cal.currentDateEl,ev);break;default:return false;}return Calendar.stopEvent(ev);};Calendar.prototype._init=function(firstDayOfWeek,date){var today=new Date(),TY=today.getFullYear(),TM=today.getMonth(),TD=today.getDate();this.table.style.visibility="hidden";var year=date.getFullYear();if(year<this.minYear){year=this.minYear;date.setFullYear(year);}else if(year>this.maxYear){year=this.maxYear;date.setFullYear(year);}this.firstDayOfWeek=firstDayOfWeek;this.date=new Date(date);var month=date.getMonth();var mday=date.getDate();var no_days=date.getMonthDays();date.setDate(1);var day1=(date.getDay()-this.firstDayOfWeek)%7;if(day1<0)day1+=7;date.setDate(-day1);date.setDate(date.getDate()+1);var row=this.tbody.firstChild;var MN=Calendar._SMN[month];var ar_days=this.ar_days=new Array();var weekend=Calendar._TT["WEEKEND"];var dates=this.multiple?(this.datesCells={}):null;for(var i=0;i<6;++i,row=row.nextSibling){var cell=row.firstChild;if(this.weekNumbers){cell.className="day wn";cell.innerHTML=date.getWeekNumber();cell=cell.nextSibling;}row.className="daysrow";var hasdays=false,iday,dpos=ar_days[i]=[];for(var j=0;j<7;++j,cell=cell.nextSibling,date.setDate(iday+1)){iday=date.getDate();var wday=date.getDay();cell.className="day";cell.pos=i<<4|j;dpos[j]=cell;var current_month=(date.getMonth()==month);if(!current_month){if(this.showsOtherMonths){cell.className+=" othermonth";cell.otherMonth=true;}else{cell.className="emptycell";cell.innerHTML="&nbsp;";cell.disabled=true;continue;}}else{cell.otherMonth=false;hasdays=true;}cell.disabled=false;cell.innerHTML=this.getDateText?this.getDateText(date,iday):iday;if(dates)dates[date.print("%Y%m%d")]=cell;if(this.getDateStatus){var status=this.getDateStatus(date,year,month,iday);if(this.getDateToolTip){var toolTip=this.getDateToolTip(date,year,month,iday);if(toolTip)cell.title=toolTip;}if(status===true){cell.className+=" disabled";cell.disabled=true;}else{if(/disabled/i.test(status))cell.disabled=true;cell.className+=" "+status;}}if(!cell.disabled){cell.caldate=new Date(date);cell.ttip="_";if(!this.multiple&&current_month&&iday==mday&&this.hiliteToday){cell.className+=" selected";this.currentDateEl=cell;}if(date.getFullYear()==TY&&date.getMonth()==TM&&iday==TD){cell.className+=" today";cell.ttip+=Calendar._TT["PART_TODAY"];}if(weekend.indexOf(wday.toString())!=-1)cell.className+=cell.otherMonth?" oweekend":" weekend";}}if(!(hasdays||this.showsOtherMonths))row.className="emptyrow";}this.title.innerHTML=Calendar._MN[month]+", "+year;this.onSetTime();this.table.style.visibility="visible";this._initMultipleDates();};Calendar.prototype._initMultipleDates=function(){if(this.multiple){for(var i in this.multiple){var cell=this.datesCells[i];var d=this.multiple[i];if(!d)continue;if(cell)cell.className+=" selected";}}};Calendar.prototype._toggleMultipleDate=function(date){if(this.multiple){var ds=date.print("%Y%m%d");var cell=this.datesCells[ds];if(cell){var d=this.multiple[ds];if(!d){Calendar.addClass(cell,"selected");this.multiple[ds]=date;}else{Calendar.removeClass(cell,"selected");delete this.multiple[ds];}}}};Calendar.prototype.setDateToolTipHandler=function(unaryFunction){this.getDateToolTip=unaryFunction;};Calendar.prototype.setDate=function(date){if(!date.equalsTo(this.date)){this._init(this.firstDayOfWeek,date);}};Calendar.prototype.refresh=function(){this._init(this.firstDayOfWeek,this.date);};Calendar.prototype.setFirstDayOfWeek=function(firstDayOfWeek){this._init(firstDayOfWeek,this.date);this._displayWeekdays();};Calendar.prototype.setDateStatusHandler=Calendar.prototype.setDisabledHandler=function(unaryFunction){this.getDateStatus=unaryFunction;};Calendar.prototype.setRange=function(a,z){this.minYear=a;this.maxYear=z;};Calendar.prototype.callHandler=function(){if(this.onSelected){this.onSelected(this,this.date.print(this.dateFormat));}};Calendar.prototype.callCloseHandler=function(){if(this.onClose){this.onClose(this);}this.hideShowCovered();};Calendar.prototype.destroy=function(){var el=this.element.parentNode;el.removeChild(this.element);Calendar._C=null;window._dynarch_popupCalendar=null;};Calendar.prototype.reparent=function(new_parent){var el=this.element;el.parentNode.removeChild(el);new_parent.appendChild(el);};Calendar._checkCalendar=function(ev){var calendar=window._dynarch_popupCalendar;if(!calendar){return false;}var el=Calendar.is_ie?Calendar.getElement(ev):Calendar.getTargetElement(ev);for(;el!=null&&el!=calendar.element;el=el.parentNode);if(el==null){window._dynarch_popupCalendar.callCloseHandler();return Calendar.stopEvent(ev);}};Calendar.prototype.show=function(){var rows=this.table.getElementsByTagName("tr");for(var i=rows.length;i>0;){var row=rows[--i];Calendar.removeClass(row,"rowhilite");var cells=row.getElementsByTagName("td");for(var j=cells.length;j>0;){var cell=cells[--j];Calendar.removeClass(cell,"hilite");Calendar.removeClass(cell,"active");}}this.element.style.display="block";this.hidden=false;if(this.isPopup){window._dynarch_popupCalendar=this;Calendar.addEvent(document,"keydown",Calendar._keyEvent);Calendar.addEvent(document,"keypress",Calendar._keyEvent);Calendar.addEvent(document,"mousedown",Calendar._checkCalendar);}this.hideShowCovered();};Calendar.prototype.hide=function(){if(this.isPopup){Calendar.removeEvent(document,"keydown",Calendar._keyEvent);Calendar.removeEvent(document,"keypress",Calendar._keyEvent);Calendar.removeEvent(document,"mousedown",Calendar._checkCalendar);}this.element.style.display="none";this.hidden=true;this.hideShowCovered();};Calendar.prototype.showAt=function(x,y){var s=this.element.style;s.left=x+"px";s.top=y+"px";this.show();};Calendar.prototype.showAtElement=function(el,opts){var self=this;var p=Calendar.getAbsolutePos(el);if(!opts||typeof opts!="string"){this.showAt(p.x,p.y+el.offsetHeight);return true;}function fixPosition(box){if(box.x<0)box.x=0;if(box.y<0)box.y=0;var cp=document.createElement("div");var s=cp.style;s.position="absolute";s.right=s.bottom=s.width=s.height="0px";document.body.appendChild(cp);var br=Calendar.getAbsolutePos(cp);document.body.removeChild(cp);if(Calendar.is_ie){br.y+=document.body.scrollTop;br.x+=document.body.scrollLeft;}else{br.y+=window.scrollY;br.x+=window.scrollX;}var tmp=box.x+box.width-br.x;if(tmp>0)box.x-=tmp;tmp=box.y+box.height-br.y;if(tmp>0)box.y-=tmp;};this.element.style.display="block";Calendar.continuation_for_the_fucking_khtml_browser=function(){var w=self.element.offsetWidth;var h=self.element.offsetHeight;self.element.style.display="none";var valign=opts.substr(0,1);var halign="l";if(opts.length>1){halign=opts.substr(1,1);}switch(valign){case "T":p.y-=h;break;case "B":p.y+=el.offsetHeight;break;case "C":p.y+=(el.offsetHeight-h)/2;break;case "t":p.y+=el.offsetHeight-h;break;case "b":break;}switch(halign){case "L":p.x-=w;break;case "R":p.x+=el.offsetWidth;break;case "C":p.x+=(el.offsetWidth-w)/2;break;case "l":p.x+=el.offsetWidth-w;break;case "r":break;}p.width=w;p.height=h+40;self.monthsCombo.style.display="none";fixPosition(p);self.showAt(p.x,p.y);};if(Calendar.is_khtml)setTimeout("Calendar.continuation_for_the_fucking_khtml_browser()",10);else Calendar.continuation_for_the_fucking_khtml_browser();};Calendar.prototype.setDateFormat=function(str){this.dateFormat=str;};Calendar.prototype.setTtDateFormat=function(str){this.ttDateFormat=str;};Calendar.prototype.parseDate=function(str,fmt){if(!fmt)fmt=this.dateFormat;this.setDate(Date.parseDate(str,fmt));};Calendar.prototype.hideShowCovered=function(){if(!Calendar.is_ie&&!Calendar.is_opera)return;function getVisib(obj){var value=obj.style.visibility;if(!value){if(document.defaultView&&typeof(document.defaultView.getComputedStyle)=="function"){if(!Calendar.is_khtml)value=document.defaultView. getComputedStyle(obj,"").getPropertyValue("visibility");else value='';}else if(obj.currentStyle){value=obj.currentStyle.visibility;}else value='';}return value;};var tags=new Array("applet","iframe","select");var el=this.element;var p=Calendar.getAbsolutePos(el);var EX1=p.x;var EX2=el.offsetWidth+EX1;var EY1=p.y;var EY2=el.offsetHeight+EY1;for(var k=tags.length;k>0;){var ar=document.getElementsByTagName(tags[--k]);var cc=null;for(var i=ar.length;i>0;){cc=ar[--i];p=Calendar.getAbsolutePos(cc);var CX1=p.x;var CX2=cc.offsetWidth+CX1;var CY1=p.y;var CY2=cc.offsetHeight+CY1;if(this.hidden||(CX1>EX2)||(CX2<EX1)||(CY1>EY2)||(CY2<EY1)){if(!cc.__msh_save_visibility){cc.__msh_save_visibility=getVisib(cc);}cc.style.visibility=cc.__msh_save_visibility;}else{if(!cc.__msh_save_visibility){cc.__msh_save_visibility=getVisib(cc);}cc.style.visibility="hidden";}}}};Calendar.prototype._displayWeekdays=function(){var fdow=this.firstDayOfWeek;var cell=this.firstdayname;var weekend=Calendar._TT["WEEKEND"];for(var i=0;i<7;++i){cell.className="day name";var realday=(i+fdow)%7;if(i){cell.ttip=Calendar._TT["DAY_FIRST"].replace("%s",Calendar._DN[realday]);cell.navtype=100;cell.calendar=this;cell.fdow=realday;Calendar._add_evs(cell);}if(weekend.indexOf(realday.toString())!=-1){Calendar.addClass(cell,"weekend");}cell.innerHTML=Calendar._SDN[(i+fdow)%7];cell=cell.nextSibling;}};Calendar.prototype._hideCombos=function(){this.monthsCombo.style.display="none";this.yearsCombo.style.display="none";};Calendar.prototype._dragStart=function(ev){if(this.dragging){return;}this.dragging=true;var posX;var posY;if(Calendar.is_ie){posY=window.event.clientY+document.body.scrollTop;posX=window.event.clientX+document.body.scrollLeft;}else{posY=ev.clientY+window.scrollY;posX=ev.clientX+window.scrollX;}var st=this.element.style;this.xOffs=posX-parseInt(st.left);this.yOffs=posY-parseInt(st.top);with(Calendar){addEvent(document,"mousemove",calDragIt);addEvent(document,"mouseup",calDragEnd);}};Date._MD=new Array(31,28,31,30,31,30,31,31,30,31,30,31);Date.SECOND=1000;Date.MINUTE=60*Date.SECOND;Date.HOUR=60*Date.MINUTE;Date.DAY=24*Date.HOUR;Date.WEEK=7*Date.DAY;Date.parseDate=function(str,fmt){var today=new Date();var y=0;var m=-1;var d=0;var a=str.split(/\W+/);var b=fmt.match(/%./g);var i=0,j=0;var hr=0;var min=0;for(i=0;i<a.length;++i){if(!a[i])continue;switch(b[i]){case "%d":case "%e":d=parseInt(a[i],10);break;case "%m":m=parseInt(a[i],10)-1;break;case "%Y":case "%y":y=parseInt(a[i],10);(y<100)&&(y+=(y>29)?1900:2000);break;case "%b":case "%B":for(j=0;j<12;++j){if(Calendar._MN[j].substr(0,a[i].length).toLowerCase()==a[i].toLowerCase()){m=j;break;}}break;case "%H":case "%I":case "%k":case "%l":hr=parseInt(a[i],10);break;case "%P":case "%p":if(/pm/i.test(a[i])&&hr<12)hr+=12;else if(/am/i.test(a[i])&&hr>=12)hr-=12;break;case "%M":min=parseInt(a[i],10);break;}}if(isNaN(y))y=today.getFullYear();if(isNaN(m))m=today.getMonth();if(isNaN(d))d=today.getDate();if(isNaN(hr))hr=today.getHours();if(isNaN(min))min=today.getMinutes();if(y!=0&&m!=-1&&d!=0)return new Date(y,m,d,hr,min,0);y=0;m=-1;d=0;for(i=0;i<a.length;++i){if(a[i].search(/[a-zA-Z]+/)!=-1){var t=-1;for(j=0;j<12;++j){if(Calendar._MN[j].substr(0,a[i].length).toLowerCase()==a[i].toLowerCase()){t=j;break;}}if(t!=-1){if(m!=-1){d=m+1;}m=t;}}else if(parseInt(a[i],10)<=12&&m==-1){m=a[i]-1;}else if(parseInt(a[i],10)>31&&y==0){y=parseInt(a[i],10);(y<100)&&(y+=(y>29)?1900:2000);}else if(d==0){d=a[i];}}if(y==0)y=today.getFullYear();if(m!=-1&&d!=0)return new Date(y,m,d,hr,min,0);return today;};Date.prototype.getMonthDays=function(month){var year=this.getFullYear();if(typeof month=="undefined"){month=this.getMonth();}if(((0==(year%4))&&((0!=(year%100))||(0==(year%400))))&&month==1){return 29;}else{return Date._MD[month];}};Date.prototype.getDayOfYear=function(){var now=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var then=new Date(this.getFullYear(),0,0,0,0,0);var time=now-then;return Math.floor(time/Date.DAY);};Date.prototype.getWeekNumber=function(){var d=new Date(this.getFullYear(),this.getMonth(),this.getDate(),0,0,0);var DoW=d.getDay();d.setDate(d.getDate()-(DoW+6)%7+3);var ms=d.valueOf();d.setMonth(0);d.setDate(4);return Math.round((ms-d.valueOf())/(7*864e5))+1;};Date.prototype.equalsTo=function(date){return((this.getFullYear()==date.getFullYear())&&(this.getMonth()==date.getMonth())&&(this.getDate()==date.getDate())&&(this.getHours()==date.getHours())&&(this.getMinutes()==date.getMinutes()));};Date.prototype.setDateOnly=function(date){var tmp=new Date(date);this.setDate(1);this.setFullYear(tmp.getFullYear());this.setMonth(tmp.getMonth());this.setDate(tmp.getDate());};Date.prototype.print=function(str){var m=this.getMonth();var d=this.getDate();var y=this.getFullYear();var wn=this.getWeekNumber();var w=this.getDay();var s={};var hr=this.getHours();var pm=(hr>=12);var ir=(pm)?(hr-12):hr;var dy=this.getDayOfYear();if(ir==0)ir=12;var min=this.getMinutes();var sec=this.getSeconds();s["%a"]=Calendar._SDN[w];s["%A"]=Calendar._DN[w];s["%b"]=Calendar._SMN[m];s["%B"]=Calendar._MN[m];s["%C"]=1+Math.floor(y/100);s["%d"]=(d<10)?("0"+d):d;s["%e"]=d;s["%H"]=(hr<10)?("0"+hr):hr;s["%I"]=(ir<10)?("0"+ir):ir;s["%j"]=(dy<100)?((dy<10)?("00"+dy):("0"+dy)):dy;s["%k"]=hr;s["%l"]=ir;s["%m"]=(m<9)?("0"+(1+m)):(1+m);s["%M"]=(min<10)?("0"+min):min;s["%n"]="\n";s["%p"]=pm?"PM":"AM";s["%P"]=pm?"pm":"am";s["%s"]=Math.floor(this.getTime()/1000);s["%S"]=(sec<10)?("0"+sec):sec;s["%t"]="\t";s["%U"]=s["%W"]=s["%V"]=(wn<10)?("0"+wn):wn;s["%u"]=w+1;s["%w"]=w;s["%y"]=(''+y).substr(2,2);s["%Y"]=y;s["%%"]="%";var re=/%./g;if(!Calendar.is_ie5&&!Calendar.is_khtml)return str.replace(re,function(par){return s[par]||par;});var a=str.match(re);for(var i=0;i<a.length;i++){var tmp=s[a[i]];if(tmp){re=new RegExp(a[i],'g');str=str.replace(re,tmp);}}return str;};Date.prototype.__msh_oldSetFullYear=Date.prototype.setFullYear;Date.prototype.setFullYear=function(y){var d=new Date(this);d.__msh_oldSetFullYear(y);if(d.getMonth()!=this.getMonth())this.setDate(28);this.__msh_oldSetFullYear(y);};window._dynarch_popupCalendar=null; \ No newline at end of file
diff --git a/WebContent/themes/default/jscalendar/dayinfo.html b/WebContent/themes/default/jscalendar/dayinfo.html
deleted file mode 100644
index bc415c878c..0000000000
--- a/WebContent/themes/default/jscalendar/dayinfo.html
+++ /dev/null
@@ -1,109 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html> <head>
-<title>How to include additional info in day cells</title>
-<script type="text/javascript" src="calendar.js"></script>
-<script type="text/javascript" src="lang/calendar-en.js"></script>
-<script type="text/javascript" src="calendar-setup.js"></script>
-<script type="text/javascript">
- // define info for dates in this table:
- var dateInfo = {
- "20050308" : "Mishoo's&nbsp;birthday",
- "20050310" : "foo",
- "20050315" : "bar",
- "20050318" : "25$",
- "20050324" : "60$"
- };
-</script>
-<style type="text/css">
- @import url(calendar-win2k-1.css);
- .calendar .inf { font-size: 80%; color: #444; }
- .calendar .wn { font-weight: bold; vertical-align: top; }
-</style>
-</head>
-
-<body>
-<h1>How to include additional info in day cells</h1>
-
-<div id="flatcal" style="float: right"></div>
-
-<script type="text/javascript">
- function getDateText(date, d) {
- var inf = dateInfo[date.print("%Y%m%d")];
- if (!inf) {
- return d + "<div class='inf'>&nbsp;</div>";
- } else {
- return d + "<div class='inf'>" + inf + "</div>";
- }
- };
- function flatCallback(cal) {
- if (cal.dateClicked) {
- // do something here
- window.status = "Selected: " + cal.date;
- var inf = dateInfo[cal.date.print("%Y%m%d")];
- if (inf) {
- window.status += ". Additional info: " + inf;
- }
- }
- };
- Calendar.setup({
- flat: "flatcal",
- dateText: getDateText,
- flatCallback: flatCallback
- });
-</script>
-
-<p>The idea is simple:</p>
-
-<ol>
- <li>
- <p>Define a callback that takes two parameters like this:</p>
- <pre>function getDateText(date, d)</pre>
- <p>
- This function will receive the date object as the first
- parameter and the current date number (1..31) as the second (you
- can get it as well by calling date.getDate() but since it's very
- probably useful I thought I'd pass it too so that we can avoid a
- function call).
- </p>
- <p>
- This function <em>must</em> return the text to be inserted in
- the cell of the passed date. That is, one should at least
- "return d;".
- </p>
- </li>
- <li>
- Pass the above function as the "dateText" parameter to
- Calendar.setup.
- </li>
-</ol>
-
-<p>
- The function could simply look like:
-</p>
-
-<pre
-> function getDateText(date, d) {
- if (d == 12) {
- return "12th";
- } else if (d == 13) {
- return "bad luck";
- } /* ... etc ... */
- }</pre>
-
-<p>
- but it's easy to imagine that this approach sucks. For a better
- way, see the source of this page and note the usage of an externally
- defined "dateText" object which maps "date" to "date info", also
- taking into account the year and month. This object can be easily
- generated from a database, and the getDateText function becomes
- extremely simple (and static).
-</p>
-
-<p>
- Cheers!
-</p>
-
-<hr />
-<address><a href="http://dynarch.com/mishoo/">mishoo</a></address>
-<!-- hhmts start --> Last modified: Sat Mar 5 17:18:06 EET 2005 <!-- hhmts end -->
-</body> </html>
diff --git a/WebContent/themes/default/jscalendar/img.gif b/WebContent/themes/default/jscalendar/img.gif
deleted file mode 100644
index cd2c4a5217..0000000000
--- a/WebContent/themes/default/jscalendar/img.gif
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-af.js b/WebContent/themes/default/jscalendar/lang/calendar-af.js
deleted file mode 100644
index aeda58197b..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-af.js
+++ /dev/null
@@ -1,39 +0,0 @@
-// ** I18N Afrikaans
-Calendar._DN = new Array
-("Sondag",
- "Maandag",
- "Dinsdag",
- "Woensdag",
- "Donderdag",
- "Vrydag",
- "Saterdag",
- "Sondag");
-Calendar._MN = new Array
-("Januarie",
- "Februarie",
- "Maart",
- "April",
- "Mei",
- "Junie",
- "Julie",
- "Augustus",
- "September",
- "Oktober",
- "November",
- "Desember");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["TOGGLE"] = "Verander eerste dag van die week";
-Calendar._TT["PREV_YEAR"] = "Vorige jaar (hou vir keuselys)";
-Calendar._TT["PREV_MONTH"] = "Vorige maand (hou vir keuselys)";
-Calendar._TT["GO_TODAY"] = "Gaan na vandag";
-Calendar._TT["NEXT_MONTH"] = "Volgende maand (hou vir keuselys)";
-Calendar._TT["NEXT_YEAR"] = "Volgende jaar (hou vir keuselys)";
-Calendar._TT["SEL_DATE"] = "Kies datum";
-Calendar._TT["DRAG_TO_MOVE"] = "Sleep om te skuif";
-Calendar._TT["PART_TODAY"] = " (vandag)";
-Calendar._TT["MON_FIRST"] = "Vertoon Maandag eerste";
-Calendar._TT["SUN_FIRST"] = "Display Sunday first";
-Calendar._TT["CLOSE"] = "Close";
-Calendar._TT["TODAY"] = "Today";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-al.js b/WebContent/themes/default/jscalendar/lang/calendar-al.js
deleted file mode 100644
index 4f701cf72d..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-al.js
+++ /dev/null
@@ -1,101 +0,0 @@
-// Calendar ALBANIAN language
-//author Rigels Gordani rige@hotmail.com
-
-// ditet
-Calendar._DN = new Array
-("E Diele",
-"E Hene",
-"E Marte",
-"E Merkure",
-"E Enjte",
-"E Premte",
-"E Shtune",
-"E Diele");
-
-//ditet shkurt
-Calendar._SDN = new Array
-("Die",
-"Hen",
-"Mar",
-"Mer",
-"Enj",
-"Pre",
-"Sht",
-"Die");
-
-// muajt
-Calendar._MN = new Array
-("Janar",
-"Shkurt",
-"Mars",
-"Prill",
-"Maj",
-"Qeshor",
-"Korrik",
-"Gusht",
-"Shtator",
-"Tetor",
-"Nentor",
-"Dhjetor");
-
-// muajte shkurt
-Calendar._SMN = new Array
-("Jan",
-"Shk",
-"Mar",
-"Pri",
-"Maj",
-"Qes",
-"Kor",
-"Gus",
-"Sht",
-"Tet",
-"Nen",
-"Dhj");
-
-// ndihmesa
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Per kalendarin";
-
-Calendar._TT["ABOUT"] =
-"Zgjedhes i ores/dates ne DHTML \n" +
-"\n\n" +"Zgjedhja e Dates:\n" +
-"- Perdor butonat \xab, \xbb per te zgjedhur vitin\n" +
-"- Perdor butonat" + String.fromCharCode(0x2039) + ", " +
-String.fromCharCode(0x203a) +
-" per te zgjedhur muajin\n" +
-"- Mbani shtypur butonin e mousit per nje zgjedje me te shpejte.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Zgjedhja e kohes:\n" +
-"- Kliko tek ndonje nga pjeset e ores per ta rritur ate\n" +
-"- ose kliko me Shift per ta zvogeluar ate\n" +
-"- ose cliko dhe terhiq per zgjedhje me te shpejte.";
-
-Calendar._TT["PREV_YEAR"] = "Viti i shkuar (prit per menune)";
-Calendar._TT["PREV_MONTH"] = "Muaji i shkuar (prit per menune)";
-Calendar._TT["GO_TODAY"] = "Sot";
-Calendar._TT["NEXT_MONTH"] = "Muaji i ardhshem (prit per menune)";
-Calendar._TT["NEXT_YEAR"] = "Viti i ardhshem (prit per menune)";
-Calendar._TT["SEL_DATE"] = "Zgjidh daten";
-Calendar._TT["DRAG_TO_MOVE"] = "Terhiqe per te levizur";
-Calendar._TT["PART_TODAY"] = " (sot)";
-
-// "%s" eshte dita e pare e javes
-// %s do te zevendesohet me emrin e dite
-Calendar._TT["DAY_FIRST"] = "Trego te %s te paren";
-
-
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "Mbyll";
-Calendar._TT["TODAY"] = "Sot";
-Calendar._TT["TIME_PART"] = "Kliko me (Shift-)ose terhiqe per te ndryshuar
-vleren";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
-
-Calendar._TT["WK"] = "Java";
-Calendar._TT["TIME"] = "Koha:";
-
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-bg.js b/WebContent/themes/default/jscalendar/lang/calendar-bg.js
deleted file mode 100644
index 4f4fd863e5..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-bg.js
+++ /dev/null
@@ -1,124 +0,0 @@
-// ** I18N
-
-// Calendar BG language
-// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
-// Translator: Valentin Sheiretsky, <valio@valio.eu.org>
-// Encoding: Windows-1251
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible. We strongly believe that
-// Unicode is the answer to a real internationalized world. Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("Íåäåëÿ",
- "Ïîíåäåëíèê",
- "Âòîðíèê",
- "Ñðÿäà",
- "×åòâúðòúê",
- "Ïåòúê",
- "Ñúáîòà",
- "Íåäåëÿ");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary. We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-// Calendar._SDN_len = N; // short day name length
-// Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("Íåä",
- "Ïîí",
- "Âòî",
- "Ñðÿ",
- "×åò",
- "Ïåò",
- "Ñúá",
- "Íåä");
-
-// full month names
-Calendar._MN = new Array
-("ßíóàðè",
- "Ôåâðóàðè",
- "Ìàðò",
- "Àïðèë",
- "Ìàé",
- "Þíè",
- "Þëè",
- "Àâãóñò",
- "Ñåïòåìâðè",
- "Îêòîìâðè",
- "Íîåìâðè",
- "Äåêåìâðè");
-
-// short month names
-Calendar._SMN = new Array
-("ßíó",
- "Ôåâ",
- "Ìàð",
- "Àïð",
- "Ìàé",
- "Þíè",
- "Þëè",
- "Àâã",
- "Ñåï",
- "Îêò",
- "Íîå",
- "Äåê");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Èíôîðìàöèÿ çà êàëåíäàðà";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
-"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
-"\n\n" +
-"Date selection:\n" +
-"- Use the \xab, \xbb buttons to select year\n" +
-"- Use the " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " buttons to select month\n" +
-"- Hold mouse button on any of the above buttons for faster selection.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Time selection:\n" +
-"- Click on any of the time parts to increase it\n" +
-"- or Shift-click to decrease it\n" +
-"- or click and drag for faster selection.";
-
-Calendar._TT["PREV_YEAR"] = "Ïðåäíà ãîäèíà (çàäðúæòå çà ìåíþ)";
-Calendar._TT["PREV_MONTH"] = "Ïðåäåí ìåñåö (çàäðúæòå çà ìåíþ)";
-Calendar._TT["GO_TODAY"] = "Èçáåðåòå äíåñ";
-Calendar._TT["NEXT_MONTH"] = "Ñëåäâàù ìåñåö (çàäðúæòå çà ìåíþ)";
-Calendar._TT["NEXT_YEAR"] = "Ñëåäâàùà ãîäèíà (çàäðúæòå çà ìåíþ)";
-Calendar._TT["SEL_DATE"] = "Èçáåðåòå äàòà";
-Calendar._TT["DRAG_TO_MOVE"] = "Ïðåìåñòâàíå";
-Calendar._TT["PART_TODAY"] = " (äíåñ)";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "%s êàòî ïúðâè äåí";
-
-// This may be locale-dependent. It specifies the week-end days, as an array
-// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "Çàòâîðåòå";
-Calendar._TT["TODAY"] = "Äíåñ";
-Calendar._TT["TIME_PART"] = "(Shift-)Click èëè drag çà äà ïðîìåíèòå ñòîéíîñòòà";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%A - %e %B %Y";
-
-Calendar._TT["WK"] = "Ñåäì";
-Calendar._TT["TIME"] = "×àñ:";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-big5-utf8.js b/WebContent/themes/default/jscalendar/lang/calendar-big5-utf8.js
deleted file mode 100644
index 14e0d5ddee..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-big5-utf8.js
+++ /dev/null
@@ -1,123 +0,0 @@
-// ** I18N
-
-// Calendar big5-utf8 language
-// Author: Gary Fu, <gary@garyfu.idv.tw>
-// Encoding: utf8
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible. We strongly believe that
-// Unicode is the answer to a real internationalized world. Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("星期日",
- "星期一",
- "星期二",
- "星期三",
- "星期四",
- "星期五",
- "星期六",
- "星期日");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary. We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-// Calendar._SDN_len = N; // short day name length
-// Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("æ—¥",
- "一",
- "二",
- "三",
- "å››",
- "五",
- "å…­",
- "æ—¥");
-
-// full month names
-Calendar._MN = new Array
-("一月",
- "二月",
- "三月",
- "四月",
- "五月",
- "六月",
- "七月",
- "八月",
- "ä¹æœˆ",
- "å月",
- "å一月",
- "å二月");
-
-// short month names
-Calendar._SMN = new Array
-("一月",
- "二月",
- "三月",
- "四月",
- "五月",
- "六月",
- "七月",
- "八月",
- "ä¹æœˆ",
- "å月",
- "å一月",
- "å二月");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "關於";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
-"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
-"\n\n" +
-"日期é¸æ“‡æ–¹æ³•:\n" +
-"- 使用 \xab, \xbb 按鈕å¯é¸æ“‡å¹´ä»½\n" +
-"- 使用 " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " 按鈕å¯é¸æ“‡æœˆä»½\n" +
-"- 按ä½ä¸Šé¢çš„按鈕å¯ä»¥åŠ å¿«é¸å–";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"時間é¸æ“‡æ–¹æ³•:\n" +
-"- 點擊任何的時間部份å¯å¢žåŠ å…¶å€¼\n" +
-"- åŒæ™‚按Shiftéµå†é»žæ“Šå¯æ¸›å°‘其值\n" +
-"- 點擊並拖曳å¯åŠ å¿«æ”¹è®Šçš„值";
-
-Calendar._TT["PREV_YEAR"] = "上一年 (按ä½é¸å–®)";
-Calendar._TT["PREV_MONTH"] = "下一年 (按ä½é¸å–®)";
-Calendar._TT["GO_TODAY"] = "到今日";
-Calendar._TT["NEXT_MONTH"] = "上一月 (按ä½é¸å–®)";
-Calendar._TT["NEXT_YEAR"] = "下一月 (按ä½é¸å–®)";
-Calendar._TT["SEL_DATE"] = "é¸æ“‡æ—¥æœŸ";
-Calendar._TT["DRAG_TO_MOVE"] = "拖曳";
-Calendar._TT["PART_TODAY"] = " (今日)";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "å°‡ %s 顯示在å‰";
-
-// This may be locale-dependent. It specifies the week-end days, as an array
-// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "關閉";
-Calendar._TT["TODAY"] = "今日";
-Calendar._TT["TIME_PART"] = "點擊or拖曳å¯æ”¹è®Šæ™‚é–“(åŒæ™‚按Shift為減)";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
-
-Calendar._TT["WK"] = "週";
-Calendar._TT["TIME"] = "Time:";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-big5.js b/WebContent/themes/default/jscalendar/lang/calendar-big5.js
deleted file mode 100644
index a58935873f..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-big5.js
+++ /dev/null
@@ -1,123 +0,0 @@
-// ** I18N
-
-// Calendar big5 language
-// Author: Gary Fu, <gary@garyfu.idv.tw>
-// Encoding: big5
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible. We strongly believe that
-// Unicode is the answer to a real internationalized world. Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("¬P´Á¤é",
- "¬P´Á¤@",
- "¬P´Á¤G",
- "¬P´Á¤T",
- "¬P´Á¥|",
- "¬P´Á¤­",
- "¬P´Á¤»",
- "¬P´Á¤é");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary. We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-// Calendar._SDN_len = N; // short day name length
-// Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("¤é",
- "¤@",
- "¤G",
- "¤T",
- "¥|",
- "¤­",
- "¤»",
- "¤é");
-
-// full month names
-Calendar._MN = new Array
-("¤@¤ë",
- "¤G¤ë",
- "¤T¤ë",
- "¥|¤ë",
- "¤­¤ë",
- "¤»¤ë",
- "¤C¤ë",
- "¤K¤ë",
- "¤E¤ë",
- "¤Q¤ë",
- "¤Q¤@¤ë",
- "¤Q¤G¤ë");
-
-// short month names
-Calendar._SMN = new Array
-("¤@¤ë",
- "¤G¤ë",
- "¤T¤ë",
- "¥|¤ë",
- "¤­¤ë",
- "¤»¤ë",
- "¤C¤ë",
- "¤K¤ë",
- "¤E¤ë",
- "¤Q¤ë",
- "¤Q¤@¤ë",
- "¤Q¤G¤ë");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Ãö©ó";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
-"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
-"\n\n" +
-"¤é´Á¿ï¾Ü¤èªk:\n" +
-"- ¨Ï¥Î \xab, \xbb «ö¶s¥i¿ï¾Ü¦~¥÷\n" +
-"- ¨Ï¥Î " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " «ö¶s¥i¿ï¾Ü¤ë¥÷\n" +
-"- «ö¦í¤W­±ªº«ö¶s¥i¥H¥[§Ö¿ï¨ú";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"®É¶¡¿ï¾Ü¤èªk:\n" +
-"- ÂIÀ»¥ô¦óªº®É¶¡³¡¥÷¥i¼W¥[¨ä­È\n" +
-"- ¦P®É«öShiftÁä¦AÂIÀ»¥i´î¤Ö¨ä­È\n" +
-"- ÂIÀ»¨Ã©ì¦²¥i¥[§Ö§ïÅܪº­È";
-
-Calendar._TT["PREV_YEAR"] = "¤W¤@¦~ («ö¦í¿ï³æ)";
-Calendar._TT["PREV_MONTH"] = "¤U¤@¦~ («ö¦í¿ï³æ)";
-Calendar._TT["GO_TODAY"] = "¨ì¤µ¤é";
-Calendar._TT["NEXT_MONTH"] = "¤W¤@¤ë («ö¦í¿ï³æ)";
-Calendar._TT["NEXT_YEAR"] = "¤U¤@¤ë («ö¦í¿ï³æ)";
-Calendar._TT["SEL_DATE"] = "¿ï¾Ü¤é´Á";
-Calendar._TT["DRAG_TO_MOVE"] = "©ì¦²";
-Calendar._TT["PART_TODAY"] = " (¤µ¤é)";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "±N %s Åã¥Ü¦b«e";
-
-// This may be locale-dependent. It specifies the week-end days, as an array
-// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "Ãö³¬";
-Calendar._TT["TODAY"] = "¤µ¤é";
-Calendar._TT["TIME_PART"] = "ÂIÀ»or©ì¦²¥i§ïÅܮɶ¡(¦P®É«öShift¬°´î)";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
-
-Calendar._TT["WK"] = "¶g";
-Calendar._TT["TIME"] = "Time:";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-br.js b/WebContent/themes/default/jscalendar/lang/calendar-br.js
deleted file mode 100644
index bfb074717c..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-br.js
+++ /dev/null
@@ -1,108 +0,0 @@
-// ** I18N
-
-// Calendar pt-BR language
-// Author: Fernando Dourado, <fernando.dourado@ig.com.br>
-// Encoding: any
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible. We strongly believe that
-// Unicode is the answer to a real internationalized world. Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("Domingo",
- "Segunda",
- "Terça",
- "Quarta",
- "Quinta",
- "Sexta",
- "Sabádo",
- "Domingo");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary. We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-// Calendar._SDN_len = N; // short day name length
-// Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-// [No changes using default values]
-
-// full month names
-Calendar._MN = new Array
-("Janeiro",
- "Fevereiro",
- "Março",
- "Abril",
- "Maio",
- "Junho",
- "Julho",
- "Agosto",
- "Setembro",
- "Outubro",
- "Novembro",
- "Dezembro");
-
-// short month names
-// [No changes using default values]
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Sobre o calendário";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
-"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
-"\n\n" +
-"Translate to portuguese Brazil (pt-BR) by Fernando Dourado (fernando.dourado@ig.com.br)\n" +
-"Tradução para o português Brasil (pt-BR) por Fernando Dourado (fernando.dourado@ig.com.br)" +
-"\n\n" +
-"Selecionar data:\n" +
-"- Use as teclas \xab, \xbb para selecionar o ano\n" +
-"- Use as teclas " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " para selecionar o mês\n" +
-"- Clique e segure com o mouse em qualquer botão para selecionar rapidamente.";
-
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Selecionar hora:\n" +
-"- Clique em qualquer uma das partes da hora para aumentar\n" +
-"- ou Shift-clique para diminuir\n" +
-"- ou clique e arraste para selecionar rapidamente.";
-
-Calendar._TT["PREV_YEAR"] = "Ano anterior (clique e segure para menu)";
-Calendar._TT["PREV_MONTH"] = "Mês anterior (clique e segure para menu)";
-Calendar._TT["GO_TODAY"] = "Ir para a data atual";
-Calendar._TT["NEXT_MONTH"] = "Próximo mês (clique e segure para menu)";
-Calendar._TT["NEXT_YEAR"] = "Próximo ano (clique e segure para menu)";
-Calendar._TT["SEL_DATE"] = "Selecione uma data";
-Calendar._TT["DRAG_TO_MOVE"] = "Clique e segure para mover";
-Calendar._TT["PART_TODAY"] = " (hoje)";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "Exibir %s primeiro";
-
-// This may be locale-dependent. It specifies the week-end days, as an array
-// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "Fechar";
-Calendar._TT["TODAY"] = "Hoje";
-Calendar._TT["TIME_PART"] = "(Shift-)Clique ou arraste para mudar o valor";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%d/%m/%Y";
-Calendar._TT["TT_DATE_FORMAT"] = "%d de %B de %Y";
-
-Calendar._TT["WK"] = "sem";
-Calendar._TT["TIME"] = "Hora:";
-
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-ca.js b/WebContent/themes/default/jscalendar/lang/calendar-ca.js
deleted file mode 100644
index a2121bcb40..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-ca.js
+++ /dev/null
@@ -1,123 +0,0 @@
-// ** I18N
-
-// Calendar CA language
-// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
-// Encoding: any
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible. We strongly believe that
-// Unicode is the answer to a real internationalized world. Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("Diumenge",
- "Dilluns",
- "Dimarts",
- "Dimecres",
- "Dijous",
- "Divendres",
- "Dissabte",
- "Diumenge");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary. We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-// Calendar._SDN_len = N; // short day name length
-// Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("Diu",
- "Dil",
- "Dmt",
- "Dmc",
- "Dij",
- "Div",
- "Dis",
- "Diu");
-
-// full month names
-Calendar._MN = new Array
-("Gener",
- "Febrer",
- "Març",
- "Abril",
- "Maig",
- "Juny",
- "Juliol",
- "Agost",
- "Setembre",
- "Octubre",
- "Novembre",
- "Desembre");
-
-// short month names
-Calendar._SMN = new Array
-("Gen",
- "Feb",
- "Mar",
- "Abr",
- "Mai",
- "Jun",
- "Jul",
- "Ago",
- "Set",
- "Oct",
- "Nov",
- "Des");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Sobre el calendari";
-
-Calendar._TT["ABOUT"] =
-"DHTML Selector de Data/Hora\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
-"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
-"\n\n" +
-"Sel.lecció de Dates:\n" +
-"- Fes servir els botons \xab, \xbb per sel.leccionar l'any\n" +
-"- Fes servir els botons " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " per se.lecciconar el mes\n" +
-"- Manté el ratolí apretat en qualsevol dels anteriors per sel.lecció ràpida.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Time selection:\n" +
-"- claca en qualsevol de les parts de la hora per augmentar-les\n" +
-"- o Shift-click per decrementar-la\n" +
-"- or click and arrastra per sel.lecció ràpida.";
-
-Calendar._TT["PREV_YEAR"] = "Any anterior (Mantenir per menu)";
-Calendar._TT["PREV_MONTH"] = "Mes anterior (Mantenir per menu)";
-Calendar._TT["GO_TODAY"] = "Anar a avui";
-Calendar._TT["NEXT_MONTH"] = "Mes següent (Mantenir per menu)";
-Calendar._TT["NEXT_YEAR"] = "Any següent (Mantenir per menu)";
-Calendar._TT["SEL_DATE"] = "Sel.leccionar data";
-Calendar._TT["DRAG_TO_MOVE"] = "Arrastrar per moure";
-Calendar._TT["PART_TODAY"] = " (avui)";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "Mostra %s primer";
-
-// This may be locale-dependent. It specifies the week-end days, as an array
-// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "Tanca";
-Calendar._TT["TODAY"] = "Avui";
-Calendar._TT["TIME_PART"] = "(Shift-)Click a arrastra per canviar el valor";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
-
-Calendar._TT["WK"] = "st";
-Calendar._TT["TIME"] = "Hora:";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-cs-utf8.js b/WebContent/themes/default/jscalendar/lang/calendar-cs-utf8.js
deleted file mode 100644
index f6bbbeba14..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-cs-utf8.js
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- calendar-cs-win.js
- language: Czech
- encoding: windows-1250
- author: Lubos Jerabek (xnet@seznam.cz)
- Jan Uhlir (espinosa@centrum.cz)
-*/
-
-// ** I18N
-Calendar._DN = new Array('Neděle','Pondělí','Úterý','Středa','Čtvrtek','Pátek','Sobota','Neděle');
-Calendar._SDN = new Array('Ne','Po','Út','St','Čt','Pá','So','Ne');
-Calendar._MN = new Array('Leden','Únor','Březen','Duben','Květen','Červen','Červenec','Srpen','Září','Říjen','Listopad','Prosinec');
-Calendar._SMN = new Array('Led','Úno','Bře','Dub','Kvě','Črv','Čvc','Srp','Zář','Říj','Lis','Pro');
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "O komponentě kalendář";
-Calendar._TT["TOGGLE"] = "Změna prvního dne v týdnu";
-Calendar._TT["PREV_YEAR"] = "Předchozí rok (přidrž pro menu)";
-Calendar._TT["PREV_MONTH"] = "Předchozí měsíc (přidrž pro menu)";
-Calendar._TT["GO_TODAY"] = "Dnešní datum";
-Calendar._TT["NEXT_MONTH"] = "Další měsíc (přidrž pro menu)";
-Calendar._TT["NEXT_YEAR"] = "Další rok (přidrž pro menu)";
-Calendar._TT["SEL_DATE"] = "Vyber datum";
-Calendar._TT["DRAG_TO_MOVE"] = "Chyť a táhni, pro přesun";
-Calendar._TT["PART_TODAY"] = " (dnes)";
-Calendar._TT["MON_FIRST"] = "Ukaž jako první Pondělí";
-//Calendar._TT["SUN_FIRST"] = "Ukaž jako první Neděli";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
-"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
-"\n\n" +
-"Výběr datumu:\n" +
-"- Use the \xab, \xbb buttons to select year\n" +
-"- Použijte tlaÄítka " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " k výbÄ›ru mÄ›síce\n" +
-"- Podržte tlaÄítko myÅ¡i na jakémkoliv z tÄ›ch tlaÄítek pro rychlejší výbÄ›r.";
-
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"VýbÄ›r Äasu:\n" +
-"- KliknÄ›te na jakoukoliv z Äástí výbÄ›ru Äasu pro zvýšení.\n" +
-"- nebo Shift-click pro snížení\n" +
-"- nebo klikněte a táhněte pro rychlejší výběr.";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "Zobraz %s první";
-
-// This may be locale-dependent. It specifies the week-end days, as an array
-// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "Zavřít";
-Calendar._TT["TODAY"] = "Dnes";
-Calendar._TT["TIME_PART"] = "(Shift-)Klikni nebo táhni pro změnu hodnoty";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "d.m.yy";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
-
-Calendar._TT["WK"] = "wk";
-Calendar._TT["TIME"] = "ÄŒas:";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-cs-win.js b/WebContent/themes/default/jscalendar/lang/calendar-cs-win.js
deleted file mode 100644
index 140dff318c..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-cs-win.js
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- calendar-cs-win.js
- language: Czech
- encoding: windows-1250
- author: Lubos Jerabek (xnet@seznam.cz)
- Jan Uhlir (espinosa@centrum.cz)
-*/
-
-// ** I18N
-Calendar._DN = new Array('Nedìle','Pondìlí','Úterý','Støeda','Ètvrtek','Pátek','Sobota','Nedìle');
-Calendar._SDN = new Array('Ne','Po','Út','St','Èt','Pá','So','Ne');
-Calendar._MN = new Array('Leden','Únor','Bøezen','Duben','Kvìten','Èerven','Èervenec','Srpen','Záøí','Øíjen','Listopad','Prosinec');
-Calendar._SMN = new Array('Led','Úno','Bøe','Dub','Kvì','Èrv','Èvc','Srp','Záø','Øíj','Lis','Pro');
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "O komponentì kalendáø";
-Calendar._TT["TOGGLE"] = "Zmìna prvního dne v týdnu";
-Calendar._TT["PREV_YEAR"] = "Pøedchozí rok (pøidrž pro menu)";
-Calendar._TT["PREV_MONTH"] = "Pøedchozí mìsíc (pøidrž pro menu)";
-Calendar._TT["GO_TODAY"] = "Dnešní datum";
-Calendar._TT["NEXT_MONTH"] = "Další mìsíc (pøidrž pro menu)";
-Calendar._TT["NEXT_YEAR"] = "Další rok (pøidrž pro menu)";
-Calendar._TT["SEL_DATE"] = "Vyber datum";
-Calendar._TT["DRAG_TO_MOVE"] = "Chy a táhni, pro pøesun";
-Calendar._TT["PART_TODAY"] = " (dnes)";
-Calendar._TT["MON_FIRST"] = "Ukaž jako první Pondìlí";
-//Calendar._TT["SUN_FIRST"] = "Ukaž jako první Nedìli";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
-"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
-"\n\n" +
-"Výbìr datumu:\n" +
-"- Use the \xab, \xbb buttons to select year\n" +
-"- Použijte tlaèítka " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " k výbìru mìsíce\n" +
-"- Podržte tlaèítko myši na jakémkoliv z tìch tlaèítek pro rychlejší výbìr.";
-
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Výbìr èasu:\n" +
-"- Kliknìte na jakoukoliv z èástí výbìru èasu pro zvýšení.\n" +
-"- nebo Shift-click pro snížení\n" +
-"- nebo kliknìte a táhnìte pro rychlejší výbìr.";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "Zobraz %s první";
-
-// This may be locale-dependent. It specifies the week-end days, as an array
-// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "Zavøít";
-Calendar._TT["TODAY"] = "Dnes";
-Calendar._TT["TIME_PART"] = "(Shift-)Klikni nebo táhni pro zmìnu hodnoty";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "d.m.yy";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
-
-Calendar._TT["WK"] = "wk";
-Calendar._TT["TIME"] = "Èas:";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-da.js b/WebContent/themes/default/jscalendar/lang/calendar-da.js
deleted file mode 100644
index a99b598f03..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-da.js
+++ /dev/null
@@ -1,123 +0,0 @@
-// ** I18N
-
-// Calendar DA language
-// Author: Michael Thingmand Henriksen, <michael (a) thingmand dot dk>
-// Encoding: any
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible. We strongly believe that
-// Unicode is the answer to a real internationalized world. Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("Søndag",
-"Mandag",
-"Tirsdag",
-"Onsdag",
-"Torsdag",
-"Fredag",
-"Lørdag",
-"Søndag");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary. We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-// Calendar._SDN_len = N; // short day name length
-// Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("Søn",
-"Man",
-"Tir",
-"Ons",
-"Tor",
-"Fre",
-"Lør",
-"Søn");
-
-// full month names
-Calendar._MN = new Array
-("Januar",
-"Februar",
-"Marts",
-"April",
-"Maj",
-"Juni",
-"Juli",
-"August",
-"September",
-"Oktober",
-"November",
-"December");
-
-// short month names
-Calendar._SMN = new Array
-("Jan",
-"Feb",
-"Mar",
-"Apr",
-"Maj",
-"Jun",
-"Jul",
-"Aug",
-"Sep",
-"Okt",
-"Nov",
-"Dec");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Om Kalenderen";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"For den seneste version besøg: http://www.dynarch.com/projects/calendar/\n"; +
-"Distribueret under GNU LGPL. Se http://gnu.org/licenses/lgpl.html for detajler." +
-"\n\n" +
-"Valg af dato:\n" +
-"- Brug \xab, \xbb knapperne for at vælge år\n" +
-"- Brug " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " knapperne for at vælge måned\n" +
-"- Hold knappen på musen nede på knapperne ovenfor for hurtigere valg.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Valg af tid:\n" +
-"- Klik på en vilkårlig del for større værdi\n" +
-"- eller Shift-klik for for mindre værdi\n" +
-"- eller klik og træk for hurtigere valg.";
-
-Calendar._TT["PREV_YEAR"] = "Ét år tilbage (hold for menu)";
-Calendar._TT["PREV_MONTH"] = "Én måned tilbage (hold for menu)";
-Calendar._TT["GO_TODAY"] = "GÃ¥ til i dag";
-Calendar._TT["NEXT_MONTH"] = "Én måned frem (hold for menu)";
-Calendar._TT["NEXT_YEAR"] = "Ét år frem (hold for menu)";
-Calendar._TT["SEL_DATE"] = "Vælg dag";
-Calendar._TT["DRAG_TO_MOVE"] = "Træk vinduet";
-Calendar._TT["PART_TODAY"] = " (i dag)";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "Vis %s først";
-
-// This may be locale-dependent. It specifies the week-end days, as an array
-// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "Luk";
-Calendar._TT["TODAY"] = "I dag";
-Calendar._TT["TIME_PART"] = "(Shift-)klik eller træk for at ændre værdi";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
-
-Calendar._TT["WK"] = "Uge";
-Calendar._TT["TIME"] = "Tid:";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-de.js b/WebContent/themes/default/jscalendar/lang/calendar-de.js
deleted file mode 100644
index 4bc1137cc1..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-de.js
+++ /dev/null
@@ -1,124 +0,0 @@
-// ** I18N
-
-// Calendar DE language
-// Author: Jack (tR), <jack@jtr.de>
-// Encoding: any
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible. We strongly believe that
-// Unicode is the answer to a real internationalized world. Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("Sonntag",
- "Montag",
- "Dienstag",
- "Mittwoch",
- "Donnerstag",
- "Freitag",
- "Samstag",
- "Sonntag");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary. We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-// Calendar._SDN_len = N; // short day name length
-// Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("So",
- "Mo",
- "Di",
- "Mi",
- "Do",
- "Fr",
- "Sa",
- "So");
-
-// full month names
-Calendar._MN = new Array
-("Januar",
- "Februar",
- "M\u00e4rz",
- "April",
- "Mai",
- "Juni",
- "Juli",
- "August",
- "September",
- "Oktober",
- "November",
- "Dezember");
-
-// short month names
-Calendar._SMN = new Array
-("Jan",
- "Feb",
- "M\u00e4r",
- "Apr",
- "May",
- "Jun",
- "Jul",
- "Aug",
- "Sep",
- "Okt",
- "Nov",
- "Dez");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "\u00DCber dieses Kalendarmodul";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this ;-)
-"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
-"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
-"\n\n" +
-"Datum ausw\u00e4hlen:\n" +
-"- Benutzen Sie die \xab, \xbb Buttons um das Jahr zu w\u00e4hlen\n" +
-"- Benutzen Sie die " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " Buttons um den Monat zu w\u00e4hlen\n" +
-"- F\u00fcr eine Schnellauswahl halten Sie die Maustaste \u00fcber diesen Buttons fest.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Zeit ausw\u00e4hlen:\n" +
-"- Klicken Sie auf die Teile der Uhrzeit, um diese zu erh\u00F6hen\n" +
-"- oder klicken Sie mit festgehaltener Shift-Taste um diese zu verringern\n" +
-"- oder klicken und festhalten f\u00fcr Schnellauswahl.";
-
-Calendar._TT["TOGGLE"] = "Ersten Tag der Woche w\u00e4hlen";
-Calendar._TT["PREV_YEAR"] = "Voriges Jahr (Festhalten f\u00fcr Schnellauswahl)";
-Calendar._TT["PREV_MONTH"] = "Voriger Monat (Festhalten f\u00fcr Schnellauswahl)";
-Calendar._TT["GO_TODAY"] = "Heute ausw\u00e4hlen";
-Calendar._TT["NEXT_MONTH"] = "N\u00e4chst. Monat (Festhalten f\u00fcr Schnellauswahl)";
-Calendar._TT["NEXT_YEAR"] = "N\u00e4chst. Jahr (Festhalten f\u00fcr Schnellauswahl)";
-Calendar._TT["SEL_DATE"] = "Datum ausw\u00e4hlen";
-Calendar._TT["DRAG_TO_MOVE"] = "Zum Bewegen festhalten";
-Calendar._TT["PART_TODAY"] = " (Heute)";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "Woche beginnt mit %s ";
-
-// This may be locale-dependent. It specifies the week-end days, as an array
-// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "Schlie\u00dfen";
-Calendar._TT["TODAY"] = "Heute";
-Calendar._TT["TIME_PART"] = "(Shift-)Klick oder Festhalten und Ziehen um den Wert zu \u00e4ndern";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%d.%m.%Y";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
-
-Calendar._TT["WK"] = "wk";
-Calendar._TT["TIME"] = "Zeit:";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-du.js b/WebContent/themes/default/jscalendar/lang/calendar-du.js
deleted file mode 100644
index 2200448051..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-du.js
+++ /dev/null
@@ -1,45 +0,0 @@
-// ** I18N
-Calendar._DN = new Array
-("Zondag",
- "Maandag",
- "Dinsdag",
- "Woensdag",
- "Donderdag",
- "Vrijdag",
- "Zaterdag",
- "Zondag");
-Calendar._MN = new Array
-("Januari",
- "Februari",
- "Maart",
- "April",
- "Mei",
- "Juni",
- "Juli",
- "Augustus",
- "September",
- "Oktober",
- "November",
- "December");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["TOGGLE"] = "Toggle startdag van de week";
-Calendar._TT["PREV_YEAR"] = "Vorig jaar (indrukken voor menu)";
-Calendar._TT["PREV_MONTH"] = "Vorige month (indrukken voor menu)";
-Calendar._TT["GO_TODAY"] = "Naar Vandaag";
-Calendar._TT["NEXT_MONTH"] = "Volgende Maand (indrukken voor menu)";
-Calendar._TT["NEXT_YEAR"] = "Volgend jaar (indrukken voor menu)";
-Calendar._TT["SEL_DATE"] = "Selecteer datum";
-Calendar._TT["DRAG_TO_MOVE"] = "Sleep om te verplaatsen";
-Calendar._TT["PART_TODAY"] = " (vandaag)";
-Calendar._TT["MON_FIRST"] = "Toon Maandag eerst";
-Calendar._TT["SUN_FIRST"] = "Toon Zondag eerst";
-Calendar._TT["CLOSE"] = "Sluiten";
-Calendar._TT["TODAY"] = "Vandaag";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "y-mm-dd";
-Calendar._TT["TT_DATE_FORMAT"] = "D, M d";
-
-Calendar._TT["WK"] = "wk";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-el.js b/WebContent/themes/default/jscalendar/lang/calendar-el.js
deleted file mode 100644
index fee5575eab..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-el.js
+++ /dev/null
@@ -1,89 +0,0 @@
-// ** I18N
-Calendar._DN = new Array
-("ΚυÏιακή",
- "ΔευτέÏα",
- "ΤÏίτη",
- "ΤετάÏτη",
- "Πέμπτη",
- "ΠαÏασκευή",
- "Σάββατο",
- "ΚυÏιακή");
-
-Calendar._SDN = new Array
-("Κυ",
- "Δε",
- "TÏ",
- "Τε",
- "Πε",
- "Πα",
- "Σα",
- "Κυ");
-
-Calendar._MN = new Array
-("ΙανουάÏιος",
- "ΦεβÏουάÏιος",
- "ΜάÏτιος",
- "ΑπÏίλιος",
- "Μάϊος",
- "ΙοÏνιος",
- "ΙοÏλιος",
- "ΑÏγουστος",
- "ΣεπτέμβÏιος",
- "ΟκτώβÏιος",
- "ÎοέμβÏιος",
- "ΔεκέμβÏιος");
-
-Calendar._SMN = new Array
-("Ιαν",
- "Φεβ",
- "ΜαÏ",
- "ΑπÏ",
- "Μαι",
- "Ιουν",
- "Ιουλ",
- "Αυγ",
- "Σεπ",
- "Οκτ",
- "Îοε",
- "Δεκ");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Για το ημεÏολόγιο";
-
-Calendar._TT["ABOUT"] =
-"Επιλογέας ημεÏομηνίας/ÏŽÏας σε DHTML\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"Για τελευταία έκδοση: http://www.dynarch.com/projects/calendar/\n" +
-"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
-"\n\n" +
-"Επιλογή ημεÏομηνίας:\n" +
-"- ΧÏησιμοποιείστε τα κουμπιά \xab, \xbb για επιλογή έτους\n" +
-"- ΧÏησιμοποιείστε τα κουμπιά " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " για επιλογή μήνα\n" +
-"- ΚÏατήστε κουμπί Ï€Î¿Î½Ï„Î¹ÎºÎ¿Ï Ï€Î±Ï„Î·Î¼Î­Î½Î¿ στα παÏαπάνω κουμπιά για πιο γÏήγοÏη επιλογή.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Επιλογή ÏŽÏας:\n" +
-"- Κάντε κλικ σε ένα από τα μέÏη της ÏŽÏας για αÏξηση\n" +
-"- ή Shift-κλικ για μείωση\n" +
-"- ή κλικ και μετακίνηση για πιο γÏήγοÏη επιλογή.";
-Calendar._TT["TOGGLE"] = "ΜπάÏα Ï€Ïώτης ημέÏας της εβδομάδας";
-Calendar._TT["PREV_YEAR"] = "ΠÏοηγ. έτος (κÏατήστε για το μενοÏ)";
-Calendar._TT["PREV_MONTH"] = "ΠÏοηγ. μήνας (κÏατήστε για το μενοÏ)";
-Calendar._TT["GO_TODAY"] = "ΣήμεÏα";
-Calendar._TT["NEXT_MONTH"] = "Επόμενος μήνας (κÏατήστε για το μενοÏ)";
-Calendar._TT["NEXT_YEAR"] = "Επόμενο έτος (κÏατήστε για το μενοÏ)";
-Calendar._TT["SEL_DATE"] = "Επιλέξτε ημεÏομηνία";
-Calendar._TT["DRAG_TO_MOVE"] = "ΣÏÏτε για να μετακινήσετε";
-Calendar._TT["PART_TODAY"] = " (σήμεÏα)";
-Calendar._TT["MON_FIRST"] = "Εμφάνιση ΔευτέÏας Ï€Ïώτα";
-Calendar._TT["SUN_FIRST"] = "Εμφάνιση ΚυÏιακής Ï€Ïώτα";
-Calendar._TT["CLOSE"] = "Κλείσιμο";
-Calendar._TT["TODAY"] = "ΣήμεÏα";
-Calendar._TT["TIME_PART"] = "(Shift-)κλικ ή μετακίνηση για αλλαγή";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-y";
-Calendar._TT["TT_DATE_FORMAT"] = "D, d M";
-
-Calendar._TT["WK"] = "εβδ";
-
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-en.js b/WebContent/themes/default/jscalendar/lang/calendar-en.js
deleted file mode 100644
index 0dbde793d8..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-en.js
+++ /dev/null
@@ -1,127 +0,0 @@
-// ** I18N
-
-// Calendar EN language
-// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
-// Encoding: any
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible. We strongly believe that
-// Unicode is the answer to a real internationalized world. Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("Sunday",
- "Monday",
- "Tuesday",
- "Wednesday",
- "Thursday",
- "Friday",
- "Saturday",
- "Sunday");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary. We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-// Calendar._SDN_len = N; // short day name length
-// Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("Sun",
- "Mon",
- "Tue",
- "Wed",
- "Thu",
- "Fri",
- "Sat",
- "Sun");
-
-// First day of the week. "0" means display Sunday first, "1" means display
-// Monday first, etc.
-Calendar._FD = 0;
-
-// full month names
-Calendar._MN = new Array
-("January",
- "February",
- "March",
- "April",
- "May",
- "June",
- "July",
- "August",
- "September",
- "October",
- "November",
- "December");
-
-// short month names
-Calendar._SMN = new Array
-("Jan",
- "Feb",
- "Mar",
- "Apr",
- "May",
- "Jun",
- "Jul",
- "Aug",
- "Sep",
- "Oct",
- "Nov",
- "Dec");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "About the calendar";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
-"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
-"\n\n" +
-"Date selection:\n" +
-"- Use the \xab, \xbb buttons to select year\n" +
-"- Use the " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " buttons to select month\n" +
-"- Hold mouse button on any of the above buttons for faster selection.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Time selection:\n" +
-"- Click on any of the time parts to increase it\n" +
-"- or Shift-click to decrease it\n" +
-"- or click and drag for faster selection.";
-
-Calendar._TT["PREV_YEAR"] = "Prev. year (hold for menu)";
-Calendar._TT["PREV_MONTH"] = "Prev. month (hold for menu)";
-Calendar._TT["GO_TODAY"] = "Go Today";
-Calendar._TT["NEXT_MONTH"] = "Next month (hold for menu)";
-Calendar._TT["NEXT_YEAR"] = "Next year (hold for menu)";
-Calendar._TT["SEL_DATE"] = "Select date";
-Calendar._TT["DRAG_TO_MOVE"] = "Drag to move";
-Calendar._TT["PART_TODAY"] = " (today)";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "Display %s first";
-
-// This may be locale-dependent. It specifies the week-end days, as an array
-// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "Close";
-Calendar._TT["TODAY"] = "Today";
-Calendar._TT["TIME_PART"] = "(Shift-)Click or drag to change value";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
-
-Calendar._TT["WK"] = "wk";
-Calendar._TT["TIME"] = "Time:";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-es.js b/WebContent/themes/default/jscalendar/lang/calendar-es.js
deleted file mode 100644
index 19c1b30bdc..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-es.js
+++ /dev/null
@@ -1,129 +0,0 @@
-// ** I18N
-
-// Calendar ES (spanish) language
-// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
-// Updater: Servilio Afre Puentes <servilios@yahoo.com>
-// Updated: 2004-06-03
-// Encoding: utf-8
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible. We strongly believe that
-// Unicode is the answer to a real internationalized world. Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("Domingo",
- "Lunes",
- "Martes",
- "Miércoles",
- "Jueves",
- "Viernes",
- "Sábado",
- "Domingo");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary. We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-// Calendar._SDN_len = N; // short day name length
-// Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("Dom",
- "Lun",
- "Mar",
- "Mié",
- "Jue",
- "Vie",
- "Sáb",
- "Dom");
-
-// First day of the week. "0" means display Sunday first, "1" means display
-// Monday first, etc.
-Calendar._FD = 1;
-
-// full month names
-Calendar._MN = new Array
-("Enero",
- "Febrero",
- "Marzo",
- "Abril",
- "Mayo",
- "Junio",
- "Julio",
- "Agosto",
- "Septiembre",
- "Octubre",
- "Noviembre",
- "Diciembre");
-
-// short month names
-Calendar._SMN = new Array
-("Ene",
- "Feb",
- "Mar",
- "Abr",
- "May",
- "Jun",
- "Jul",
- "Ago",
- "Sep",
- "Oct",
- "Nov",
- "Dic");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Acerca del calendario";
-
-Calendar._TT["ABOUT"] =
-"Selector DHTML de Fecha/Hora\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"Para conseguir la última versión visite: http://www.dynarch.com/projects/calendar/\n" +
-"Distribuido bajo licencia GNU LGPL. Visite http://gnu.org/licenses/lgpl.html para más detalles." +
-"\n\n" +
-"Selección de fecha:\n" +
-"- Use los botones \xab, \xbb para seleccionar el año\n" +
-"- Use los botones " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " para seleccionar el mes\n" +
-"- Mantenga pulsado el ratón en cualquiera de estos botones para una selección rápida.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Selección de hora:\n" +
-"- Pulse en cualquiera de las partes de la hora para incrementarla\n" +
-"- o pulse las mayúsculas mientras hace clic para decrementarla\n" +
-"- o haga clic y arrastre el ratón para una selección más rápida.";
-
-Calendar._TT["PREV_YEAR"] = "Año anterior (mantener para menú)";
-Calendar._TT["PREV_MONTH"] = "Mes anterior (mantener para menú)";
-Calendar._TT["GO_TODAY"] = "Ir a hoy";
-Calendar._TT["NEXT_MONTH"] = "Mes siguiente (mantener para menú)";
-Calendar._TT["NEXT_YEAR"] = "Año siguiente (mantener para menú)";
-Calendar._TT["SEL_DATE"] = "Seleccionar fecha";
-Calendar._TT["DRAG_TO_MOVE"] = "Arrastrar para mover";
-Calendar._TT["PART_TODAY"] = " (hoy)";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "Hacer %s primer día de la semana";
-
-// This may be locale-dependent. It specifies the week-end days, as an array
-// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "Cerrar";
-Calendar._TT["TODAY"] = "Hoy";
-Calendar._TT["TIME_PART"] = "(Mayúscula-)Clic o arrastre para cambiar valor";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%d/%m/%Y";
-Calendar._TT["TT_DATE_FORMAT"] = "%A, %e de %B de %Y";
-
-Calendar._TT["WK"] = "sem";
-Calendar._TT["TIME"] = "Hora:";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-fi.js b/WebContent/themes/default/jscalendar/lang/calendar-fi.js
deleted file mode 100644
index 58899e7770..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-fi.js
+++ /dev/null
@@ -1,109 +0,0 @@
-// ** I18N
-
-// Calendar FI language (Finnish, Suomi)
-// Author: Jarno K?yhk?, <gambler@phnet.fi>
-// Updated: 20060206 Marc Englund / IT Mill
-// Encoding: UTF-8
-// Distributed under the same terms as the calendar itself.
-
-// full day names
-Calendar._DN = new Array
-("Sunnuntai",
- "Maanantai",
- "Tiistai",
- "Keskiviikko",
- "Torstai",
- "Perjantai",
- "Lauantai",
- "Sunnuntai");
-
-// short day names
-Calendar._SDN = new Array
-("Su",
- "Ma",
- "Ti",
- "Ke",
- "To",
- "Pe",
- "La",
- "Su");
-
-// full month names
-Calendar._MN = new Array
-("Tammikuu",
- "Helmikuu",
- "Maaliskuu",
- "Huhtikuu",
- "Toukokuu",
- "Kesäkuu",
- "Heinäkuu",
- "Elokuu",
- "Syyskuu",
- "Lokakuu",
- "Marraskuu",
- "Joulukuu");
-
-// short month names
-Calendar._SMN = new Array
-("Tam",
- "Hel",
- "Maa",
- "Huh",
- "Tou",
- "Kes",
- "Hei",
- "Elo",
- "Syy",
- "Lok",
- "Mar",
- "Jou");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Tietoja kalenterista";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"Uusin versio osoitteessa: http://www.dynarch.com/projects/calendar/\n" +
-"Julkaistu GNU LGPL lisenssin alaisuudessa. Lisätietoja osoitteessa http://gnu.org/licenses/lgpl.html" +
-"\n\n" +
-"Päivämäärä valinta:\n" +
-"- Käytä \xab, \xbb painikkeita valitaksesi vuosi\n" +
-"- Käytä " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " painikkeita valitaksesi kuukausi\n" +
-"- Pitämällä hiiren painiketta minkä tahansa yllä olevan painikkeen kohdalla, saat näkyviin valikon nopeampaan siirtymiseen.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Ajan valinta:\n" +
-"- Klikkaa kellonajan numeroita lisätäksesi aikaa\n" +
-"- tai pitämällä Shift-näppäintä pohjassa saat aikaa taaksepäin\n" +
-"- tai klikkaa ja pidä hiiren painike pohjassa sekä liikuta hiirtä muuttaaksesi aikaa nopeasti eteen- ja taaksepäin.";
-
-Calendar._TT["PREV_YEAR"] = "Edell. vuosi (paina hetki, näet valikon)";
-Calendar._TT["PREV_MONTH"] = "Edell. kuukausi (paina hetki, näet valikon)";
-Calendar._TT["GO_TODAY"] = "Siirry tähän päivään";
-Calendar._TT["NEXT_MONTH"] = "Seur. kuukausi (paina hetki, näet valikon)";
-Calendar._TT["NEXT_YEAR"] = "Seur. vuosi (paina hetki, näet valikon)";
-Calendar._TT["SEL_DATE"] = "Valitse päivämäärä";
-Calendar._TT["DRAG_TO_MOVE"] = "Siirrä kalenterin paikkaa";
-Calendar._TT["PART_TODAY"] = " (tänään)";
-Calendar._TT["MON_FIRST"] = "Näytä maanantai ensimmäisenä";
-Calendar._TT["SUN_FIRST"] = "Näytä sunnuntai ensimmäisenä";
-Calendar._TT["CLOSE"] = "Sulje";
-Calendar._TT["TODAY"] = "Tänään";
-Calendar._TT["TIME_PART"] = "(Shift-) Klikkaa tai liikuta muuttaaksesi aikaa";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "Näytä %s ensimmäisenä";
-
-// This may be locale-dependent. It specifies the week-end days, as an array
-// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%d.%m.%Y";
-Calendar._TT["TT_DATE_FORMAT"] = "%d.%m.%Y";
-
-Calendar._TT["WK"] = "Vko";
-Calendar._TT["TIME"] = "Aika:";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-fr.js b/WebContent/themes/default/jscalendar/lang/calendar-fr.js
deleted file mode 100644
index 2a9e0b20bb..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-fr.js
+++ /dev/null
@@ -1,125 +0,0 @@
-// ** I18N
-
-// Calendar EN language
-// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
-// Encoding: any
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible. We strongly believe that
-// Unicode is the answer to a real internationalized world. Also please
-// include your contact information in the header, as can be seen above.
-
-// Translator: David Duret, <pilgrim@mala-template.net> from previous french version
-
-// full day names
-Calendar._DN = new Array
-("Dimanche",
- "Lundi",
- "Mardi",
- "Mercredi",
- "Jeudi",
- "Vendredi",
- "Samedi",
- "Dimanche");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary. We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-// Calendar._SDN_len = N; // short day name length
-// Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("Dim",
- "Lun",
- "Mar",
- "Mar",
- "Jeu",
- "Ven",
- "Sam",
- "Dim");
-
-// full month names
-Calendar._MN = new Array
-("Janvier",
- "Février",
- "Mars",
- "Avril",
- "Mai",
- "Juin",
- "Juillet",
- "Août",
- "Septembre",
- "Octobre",
- "Novembre",
- "Décembre");
-
-// short month names
-Calendar._SMN = new Array
-("Jan",
- "Fev",
- "Mar",
- "Avr",
- "Mai",
- "Juin",
- "Juil",
- "Aout",
- "Sep",
- "Oct",
- "Nov",
- "Dec");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "A propos du calendrier";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Heure Selecteur\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"Pour la derniere version visitez : http://www.dynarch.com/projects/calendar/\n" +
-"Distribué par GNU LGPL. Voir http://gnu.org/licenses/lgpl.html pour les details." +
-"\n\n" +
-"Selection de la date :\n" +
-"- Utiliser les bouttons \xab, \xbb pour selectionner l\'annee\n" +
-"- Utiliser les bouttons " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " pour selectionner les mois\n" +
-"- Garder la souris sur n'importe quels boutons pour une selection plus rapide";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Selection de l\'heure :\n" +
-"- Cliquer sur heures ou minutes pour incrementer\n" +
-"- ou Maj-clic pour decrementer\n" +
-"- ou clic et glisser-deplacer pour une selection plus rapide";
-
-Calendar._TT["PREV_YEAR"] = "Année préc. (maintenir pour menu)";
-Calendar._TT["PREV_MONTH"] = "Mois préc. (maintenir pour menu)";
-Calendar._TT["GO_TODAY"] = "Atteindre la date du jour";
-Calendar._TT["NEXT_MONTH"] = "Mois suiv. (maintenir pour menu)";
-Calendar._TT["NEXT_YEAR"] = "Année suiv. (maintenir pour menu)";
-Calendar._TT["SEL_DATE"] = "Sélectionner une date";
-Calendar._TT["DRAG_TO_MOVE"] = "Déplacer";
-Calendar._TT["PART_TODAY"] = " (Aujourd'hui)";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "Afficher %s en premier";
-
-// This may be locale-dependent. It specifies the week-end days, as an array
-// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "Fermer";
-Calendar._TT["TODAY"] = "Aujourd'hui";
-Calendar._TT["TIME_PART"] = "(Maj-)Clic ou glisser pour modifier la valeur";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%d/%m/%Y";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
-
-Calendar._TT["WK"] = "Sem.";
-Calendar._TT["TIME"] = "Heure :";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-he-utf8.js b/WebContent/themes/default/jscalendar/lang/calendar-he-utf8.js
deleted file mode 100644
index 7861217bae..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-he-utf8.js
+++ /dev/null
@@ -1,123 +0,0 @@
-// ** I18N
-
-// Calendar EN language
-// Author: Idan Sofer, <idan@idanso.dyndns.org>
-// Encoding: UTF-8
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible. We strongly believe that
-// Unicode is the answer to a real internationalized world. Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("ר×שון",
- "שני",
- "שלישי",
- "רביעי",
- "חמישי",
- "שישי",
- "שבת",
- "ר×שון");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary. We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-// Calendar._SDN_len = N; // short day name length
-// Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("×",
- "ב",
- "×’",
- "ד",
- "×”",
- "ו",
- "ש",
- "×");
-
-// full month names
-Calendar._MN = new Array
-("ינו×ר",
- "פברו×ר",
- "מרץ",
- "×פריל",
- "מ××™",
- "יוני",
- "יולי",
- "×וגוסט",
- "ספטמבר",
- "×וקטובר",
- "נובמבר",
- "דצמבר");
-
-// short month names
-Calendar._SMN = new Array
-("×™× ×",
- "פבר",
- "מרץ",
- "×פר",
- "מ××™",
- "יונ",
- "יול",
- "×וג",
- "ספט",
- "×וק",
- "נוב",
- "דצמ");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "×ודות השנתון";
-
-Calendar._TT["ABOUT"] =
-"בחרן ת×ריך/שעה DHTML\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"×”×’×™×¨×¡× ×”×חרונה זמינה ב: http://www.dynarch.com/projects/calendar/\n" +
-"מופץ תחת זיכיון ×” GNU LGPL. עיין ב http://gnu.org/licenses/lgpl.html ×œ×¤×¨×˜×™× × ×•×¡×¤×™×." +
-"\n\n" +
-בחירת ת×ריך:\n" +
-"- השתמש ×‘×›×¤×ª×•×¨×™× \xab, \xbb לבחירת שנה\n" +
-"- השתמש ×‘×›×¤×ª×•×¨×™× " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " לבחירת חודש\n" +
-"- החזק העכבר לחוץ מעל ×”×›×¤×ª×•×¨×™× ×”×ž×•×–×›×¨×™× ×œ×¢×™×œ לבחירה מהירה יותר.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"בחירת זמן:\n" +
-"- לחץ על כל ×חד מחלקי הזמן כדי להוסיף\n" +
-"- ×ו shift בשילוב ×¢× ×œ×—×™×¦×” כדי להחסיר\n" +
-"- ×ו לחץ וגרור לפעולה מהירה יותר.";
-
-Calendar._TT["PREV_YEAR"] = "שנה קודמת - החזק לקבלת תפריט";
-Calendar._TT["PREV_MONTH"] = "חודש ×§×•×“× - החזק לקבלת תפריט";
-Calendar._TT["GO_TODAY"] = "עבור להיו×";
-Calendar._TT["NEXT_MONTH"] = "חודש ×”×‘× - החזק לתפריט";
-Calendar._TT["NEXT_YEAR"] = "שנה הב××” - החזק לתפריט";
-Calendar._TT["SEL_DATE"] = "בחר ת×ריך";
-Calendar._TT["DRAG_TO_MOVE"] = "גרור להזזה";
-Calendar._TT["PART_TODAY"] = " )היו×(";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "הצג %s קוד×";
-
-// This may be locale-dependent. It specifies the week-end days, as an array
-// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "6";
-
-Calendar._TT["CLOSE"] = "סגור";
-Calendar._TT["TODAY"] = "היו×";
-Calendar._TT["TIME_PART"] = "(שיפט-)לחץ וגרור כדי לשנות ערך";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
-
-Calendar._TT["WK"] = "wk";
-Calendar._TT["TIME"] = "שעה::";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-hr-utf8.js b/WebContent/themes/default/jscalendar/lang/calendar-hr-utf8.js
deleted file mode 100644
index baf01b179c..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-hr-utf8.js
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Croatian language file for the DHTML Calendar version 0.9.2
-* Author Krunoslav Zubrinic <krunoslav.zubrinic@vip.hr>, June 2003.
-* Feel free to use this script under the terms of the GNU Lesser General
-* Public License, as long as you do not remove or alter this notice.
-*/
-Calendar._DN = new Array
-("Nedjelja",
- "Ponedjeljak",
- "Utorak",
- "Srijeda",
- "ÄŒetvrtak",
- "Petak",
- "Subota",
- "Nedjelja");
-Calendar._MN = new Array
-("SijeÄanj",
- "VeljaÄa",
- "Ožujak",
- "Travanj",
- "Svibanj",
- "Lipanj",
- "Srpanj",
- "Kolovoz",
- "Rujan",
- "Listopad",
- "Studeni",
- "Prosinac");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["TOGGLE"] = "Promjeni dan s kojim poÄinje tjedan";
-Calendar._TT["PREV_YEAR"] = "Prethodna godina (dugi pritisak za meni)";
-Calendar._TT["PREV_MONTH"] = "Prethodni mjesec (dugi pritisak za meni)";
-Calendar._TT["GO_TODAY"] = "Idi na tekući dan";
-Calendar._TT["NEXT_MONTH"] = "Slijedeći mjesec (dugi pritisak za meni)";
-Calendar._TT["NEXT_YEAR"] = "Slijedeća godina (dugi pritisak za meni)";
-Calendar._TT["SEL_DATE"] = "Izaberite datum";
-Calendar._TT["DRAG_TO_MOVE"] = "Pritisni i povuci za promjenu pozicije";
-Calendar._TT["PART_TODAY"] = " (today)";
-Calendar._TT["MON_FIRST"] = "Prikaži ponedjeljak kao prvi dan";
-Calendar._TT["SUN_FIRST"] = "Prikaži nedjelju kao prvi dan";
-Calendar._TT["CLOSE"] = "Zatvori";
-Calendar._TT["TODAY"] = "Danas";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-y";
-Calendar._TT["TT_DATE_FORMAT"] = "DD, dd.mm.y";
-
-Calendar._TT["WK"] = "Tje"; \ No newline at end of file
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-hr.js b/WebContent/themes/default/jscalendar/lang/calendar-hr.js
deleted file mode 100644
index 6c27f60c4f..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-hr.js
+++ /dev/null
Binary files differ
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-hu.js b/WebContent/themes/default/jscalendar/lang/calendar-hu.js
deleted file mode 100644
index f5bf057ecf..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-hu.js
+++ /dev/null
@@ -1,124 +0,0 @@
-// ** I18N
-
-// Calendar HU language
-// Author: ???
-// Modifier: KARASZI Istvan, <jscalendar@spam.raszi.hu>
-// Encoding: any
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible. We strongly believe that
-// Unicode is the answer to a real internationalized world. Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("Vasárnap",
- "Hétfõ",
- "Kedd",
- "Szerda",
- "Csütörtök",
- "Péntek",
- "Szombat",
- "Vasárnap");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary. We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-// Calendar._SDN_len = N; // short day name length
-// Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("v",
- "h",
- "k",
- "sze",
- "cs",
- "p",
- "szo",
- "v");
-
-// full month names
-Calendar._MN = new Array
-("január",
- "február",
- "március",
- "április",
- "május",
- "június",
- "július",
- "augusztus",
- "szeptember",
- "október",
- "november",
- "december");
-
-// short month names
-Calendar._SMN = new Array
-("jan",
- "feb",
- "már",
- "ápr",
- "máj",
- "jún",
- "júl",
- "aug",
- "sze",
- "okt",
- "nov",
- "dec");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "A kalendáriumról";
-
-Calendar._TT["ABOUT"] =
-"DHTML dátum/idõ kiválasztó\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"a legfrissebb verzió megtalálható: http://www.dynarch.com/projects/calendar/\n" +
-"GNU LGPL alatt terjesztve. Lásd a http://gnu.org/licenses/lgpl.html oldalt a részletekhez." +
-"\n\n" +
-"Dátum választás:\n" +
-"- használja a \xab, \xbb gombokat az év kiválasztásához\n" +
-"- használja a " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " gombokat a hónap kiválasztásához\n" +
-"- tartsa lenyomva az egérgombot a gyors választáshoz.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Idõ választás:\n" +
-"- kattintva növelheti az idõt\n" +
-"- shift-tel kattintva csökkentheti\n" +
-"- lenyomva tartva és húzva gyorsabban kiválaszthatja.";
-
-Calendar._TT["PREV_YEAR"] = "Elõzõ év (tartsa nyomva a menühöz)";
-Calendar._TT["PREV_MONTH"] = "Elõzõ hónap (tartsa nyomva a menühöz)";
-Calendar._TT["GO_TODAY"] = "Mai napra ugrás";
-Calendar._TT["NEXT_MONTH"] = "Köv. hónap (tartsa nyomva a menühöz)";
-Calendar._TT["NEXT_YEAR"] = "Köv. év (tartsa nyomva a menühöz)";
-Calendar._TT["SEL_DATE"] = "Válasszon dátumot";
-Calendar._TT["DRAG_TO_MOVE"] = "Húzza a mozgatáshoz";
-Calendar._TT["PART_TODAY"] = " (ma)";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "%s legyen a hét elsõ napja";
-
-// This may be locale-dependent. It specifies the week-end days, as an array
-// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "Bezár";
-Calendar._TT["TODAY"] = "Ma";
-Calendar._TT["TIME_PART"] = "(Shift-)Klikk vagy húzás az érték változtatásához";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%b %e, %a";
-
-Calendar._TT["WK"] = "hét";
-Calendar._TT["TIME"] = "idõ:";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-it.js b/WebContent/themes/default/jscalendar/lang/calendar-it.js
deleted file mode 100644
index 7f84cde01f..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-it.js
+++ /dev/null
@@ -1,124 +0,0 @@
-// ** I18N
-
-// Calendar EN language
-// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
-// Translator: Fabio Di Bernardini, <altraqua@email.it>
-// Encoding: any
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible. We strongly believe that
-// Unicode is the answer to a real internationalized world. Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("Domenica",
- "Lunedì",
- "Martedì",
- "Mercoledì",
- "Giovedì",
- "Venerdì",
- "Sabato",
- "Domenica");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary. We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-// Calendar._SDN_len = N; // short day name length
-// Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("Dom",
- "Lun",
- "Mar",
- "Mer",
- "Gio",
- "Ven",
- "Sab",
- "Dom");
-
-// full month names
-Calendar._MN = new Array
-("Gennaio",
- "Febbraio",
- "Marzo",
- "Aprile",
- "Maggio",
- "Giugno",
- "Luglio",
- "Augosto",
- "Settembre",
- "Ottobre",
- "Novembre",
- "Dicembre");
-
-// short month names
-Calendar._SMN = new Array
-("Gen",
- "Feb",
- "Mar",
- "Apr",
- "Mag",
- "Giu",
- "Lug",
- "Ago",
- "Set",
- "Ott",
- "Nov",
- "Dic");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Informazioni sul calendario";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"Per gli aggiornamenti: http://www.dynarch.com/projects/calendar/\n" +
-"Distribuito sotto licenza GNU LGPL. Vedi http://gnu.org/licenses/lgpl.html per i dettagli." +
-"\n\n" +
-"Selezione data:\n" +
-"- Usa \xab, \xbb per selezionare l'anno\n" +
-"- Usa " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " per i mesi\n" +
-"- Tieni premuto a lungo il mouse per accedere alle funzioni di selezione veloce.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Selezione orario:\n" +
-"- Clicca sul numero per incrementarlo\n" +
-"- o Shift+click per decrementarlo\n" +
-"- o click e sinistra o destra per variarlo.";
-
-Calendar._TT["PREV_YEAR"] = "Anno prec.(clicca a lungo per il menù)";
-Calendar._TT["PREV_MONTH"] = "Mese prec. (clicca a lungo per il menù)";
-Calendar._TT["GO_TODAY"] = "Oggi";
-Calendar._TT["NEXT_MONTH"] = "Pross. mese (clicca a lungo per il menù)";
-Calendar._TT["NEXT_YEAR"] = "Pross. anno (clicca a lungo per il menù)";
-Calendar._TT["SEL_DATE"] = "Seleziona data";
-Calendar._TT["DRAG_TO_MOVE"] = "Trascina per spostarlo";
-Calendar._TT["PART_TODAY"] = " (oggi)";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "Mostra prima %s";
-
-// This may be locale-dependent. It specifies the week-end days, as an array
-// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "Chiudi";
-Calendar._TT["TODAY"] = "Oggi";
-Calendar._TT["TIME_PART"] = "(Shift-)Click o trascina per cambiare il valore";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y";
-Calendar._TT["TT_DATE_FORMAT"] = "%a:%b:%e";
-
-Calendar._TT["WK"] = "set";
-Calendar._TT["TIME"] = "Ora:";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-jp.js b/WebContent/themes/default/jscalendar/lang/calendar-jp.js
deleted file mode 100644
index 3bca7ebf60..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-jp.js
+++ /dev/null
@@ -1,45 +0,0 @@
-// ** I18N
-Calendar._DN = new Array
-("“ú",
- "ŒŽ",
- "‰Î",
- "…",
- "–Ø",
- "‹à",
- "“y",
- "“ú");
-Calendar._MN = new Array
-("1ŒŽ",
- "2ŒŽ",
- "3ŒŽ",
- "4ŒŽ",
- "5ŒŽ",
- "6ŒŽ",
- "7ŒŽ",
- "8ŒŽ",
- "9ŒŽ",
- "10ŒŽ",
- "11ŒŽ",
- "12ŒŽ");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["TOGGLE"] = "T‚Ìʼn‚Ì—j“ú‚ðØ‚è‘Ö‚¦";
-Calendar._TT["PREV_YEAR"] = "‘O”N";
-Calendar._TT["PREV_MONTH"] = "‘OŒŽ";
-Calendar._TT["GO_TODAY"] = "¡“ú";
-Calendar._TT["NEXT_MONTH"] = "—‚ŒŽ";
-Calendar._TT["NEXT_YEAR"] = "—‚”N";
-Calendar._TT["SEL_DATE"] = "“ú•t‘I‘ð";
-Calendar._TT["DRAG_TO_MOVE"] = "ƒEƒBƒ“ƒhƒE‚̈ړ®";
-Calendar._TT["PART_TODAY"] = " (¡“ú)";
-Calendar._TT["MON_FIRST"] = "ŒŽ—j“ú‚ð擪‚É";
-Calendar._TT["SUN_FIRST"] = "“ú—j“ú‚ð擪‚É";
-Calendar._TT["CLOSE"] = "•Â‚¶‚é";
-Calendar._TT["TODAY"] = "¡“ú";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "y-mm-dd";
-Calendar._TT["TT_DATE_FORMAT"] = "%mŒŽ %d“ú (%a)";
-
-Calendar._TT["WK"] = "T";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-ko-utf8.js b/WebContent/themes/default/jscalendar/lang/calendar-ko-utf8.js
deleted file mode 100644
index 035dd748d3..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-ko-utf8.js
+++ /dev/null
@@ -1,120 +0,0 @@
-// ** I18N
-
-// Calendar EN language
-// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
-// Translation: Yourim Yi <yyi@yourim.net>
-// Encoding: EUC-KR
-// lang : ko
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible. We strongly believe that
-// Unicode is the answer to a real internationalized world. Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-
-Calendar._DN = new Array
-("ì¼ìš”ì¼",
- "월요ì¼",
- "화요ì¼",
- "수요ì¼",
- "목요ì¼",
- "금요ì¼",
- "토요ì¼",
- "ì¼ìš”ì¼");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary. We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-// Calendar._SDN_len = N; // short day name length
-// Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("ì¼",
- "ì›”",
- "í™”",
- "수",
- "목",
- "금",
- "토",
- "ì¼");
-
-// full month names
-Calendar._MN = new Array
-("1ì›”",
- "2ì›”",
- "3ì›”",
- "4ì›”",
- "5ì›”",
- "6ì›”",
- "7ì›”",
- "8ì›”",
- "9ì›”",
- "10ì›”",
- "11ì›”",
- "12ì›”");
-
-// short month names
-Calendar._SMN = new Array
-("1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "10",
- "11",
- "12");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "calendar ì— ëŒ€í•´ì„œ";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"\n"+
-"최신 ë²„ì „ì„ ë°›ìœ¼ì‹œë ¤ë©´ http://www.dynarch.com/projects/calendar/ ì— ë°©ë¬¸í•˜ì„¸ìš”\n" +
-"\n"+
-"GNU LGPL ë¼ì´ì„¼ìŠ¤ë¡œ ë°°í¬ë©ë‹ˆë‹¤. \n"+
-"ë¼ì´ì„¼ìŠ¤ì— 대한 ìžì„¸í•œ ë‚´ìš©ì€ http://gnu.org/licenses/lgpl.html ì„ ì½ìœ¼ì„¸ìš”." +
-"\n\n" +
-"날짜 ì„ íƒ:\n" +
-"- ì—°ë„를 ì„ íƒí•˜ë ¤ë©´ \xab, \xbb ë²„íŠ¼ì„ ì‚¬ìš©í•©ë‹ˆë‹¤\n" +
-"- ë‹¬ì„ ì„ íƒí•˜ë ¤ë©´ " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " ë²„íŠ¼ì„ ëˆ„ë¥´ì„¸ìš”\n" +
-"- ê³„ì† ëˆ„ë¥´ê³  있으면 위 ê°’ë“¤ì„ ë¹ ë¥´ê²Œ ì„ íƒí•˜ì‹¤ 수 있습니다.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"시간 ì„ íƒ:\n" +
-"- 마우스로 누르면 ì‹œê°„ì´ ì¦ê°€í•©ë‹ˆë‹¤\n" +
-"- Shift 키와 함께 누르면 ê°ì†Œí•©ë‹ˆë‹¤\n" +
-"- 누른 ìƒíƒœì—ì„œ 마우스를 움ì§ì´ë©´ 좀 ë” ë¹ ë¥´ê²Œ ê°’ì´ ë³€í•©ë‹ˆë‹¤.\n";
-
-Calendar._TT["PREV_YEAR"] = "지난 í•´ (길게 누르면 목ë¡)";
-Calendar._TT["PREV_MONTH"] = "지난 달 (길게 누르면 목ë¡)";
-Calendar._TT["GO_TODAY"] = "오늘 날짜로";
-Calendar._TT["NEXT_MONTH"] = "ë‹¤ìŒ ë‹¬ (길게 누르면 목ë¡)";
-Calendar._TT["NEXT_YEAR"] = "ë‹¤ìŒ í•´ (길게 누르면 목ë¡)";
-Calendar._TT["SEL_DATE"] = "날짜를 ì„ íƒí•˜ì„¸ìš”";
-Calendar._TT["DRAG_TO_MOVE"] = "마우스 드래그로 ì´ë™ 하세요";
-Calendar._TT["PART_TODAY"] = " (오늘)";
-Calendar._TT["MON_FIRST"] = "월요ì¼ì„ í•œ ì£¼ì˜ ì‹œìž‘ ìš”ì¼ë¡œ";
-Calendar._TT["SUN_FIRST"] = "ì¼ìš”ì¼ì„ í•œ ì£¼ì˜ ì‹œìž‘ ìš”ì¼ë¡œ";
-Calendar._TT["CLOSE"] = "닫기";
-Calendar._TT["TODAY"] = "오늘";
-Calendar._TT["TIME_PART"] = "(Shift-)í´ë¦­ ë˜ëŠ” 드래그 하세요";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%b/%e [%a]";
-
-Calendar._TT["WK"] = "주";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-ko.js b/WebContent/themes/default/jscalendar/lang/calendar-ko.js
deleted file mode 100644
index 8cddf58645..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-ko.js
+++ /dev/null
@@ -1,120 +0,0 @@
-// ** I18N
-
-// Calendar EN language
-// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
-// Translation: Yourim Yi <yyi@yourim.net>
-// Encoding: EUC-KR
-// lang : ko
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible. We strongly believe that
-// Unicode is the answer to a real internationalized world. Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-
-Calendar._DN = new Array
-("ÀÏ¿äÀÏ",
- "¿ù¿äÀÏ",
- "È­¿äÀÏ",
- "¼ö¿äÀÏ",
- "¸ñ¿äÀÏ",
- "±Ý¿äÀÏ",
- "Åä¿äÀÏ",
- "ÀÏ¿äÀÏ");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary. We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-// Calendar._SDN_len = N; // short day name length
-// Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("ÀÏ",
- "¿ù",
- "È­",
- "¼ö",
- "¸ñ",
- "±Ý",
- "Åä",
- "ÀÏ");
-
-// full month names
-Calendar._MN = new Array
-("1¿ù",
- "2¿ù",
- "3¿ù",
- "4¿ù",
- "5¿ù",
- "6¿ù",
- "7¿ù",
- "8¿ù",
- "9¿ù",
- "10¿ù",
- "11¿ù",
- "12¿ù");
-
-// short month names
-Calendar._SMN = new Array
-("1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "10",
- "11",
- "12");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "calendar ¿¡ ´ëÇؼ­";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"\n"+
-"ÃֽŠ¹öÀüÀ» ¹ÞÀ¸½Ã·Á¸é http://www.dynarch.com/projects/calendar/ ¿¡ ¹æ¹®Çϼ¼¿ä\n" +
-"\n"+
-"GNU LGPL ¶óÀ̼¾½º·Î ¹èÆ÷µË´Ï´Ù. \n"+
-"¶óÀ̼¾½º¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº http://gnu.org/licenses/lgpl.html À» ÀÐÀ¸¼¼¿ä." +
-"\n\n" +
-"³¯Â¥ ¼±ÅÃ:\n" +
-"- ¿¬µµ¸¦ ¼±ÅÃÇÏ·Á¸é \xab, \xbb ¹öÆ°À» »ç¿ëÇÕ´Ï´Ù\n" +
-"- ´ÞÀ» ¼±ÅÃÇÏ·Á¸é " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " ¹öÆ°À» ´©¸£¼¼¿ä\n" +
-"- °è¼Ó ´©¸£°í ÀÖÀ¸¸é À§ °ªµéÀ» ºü¸£°Ô ¼±ÅÃÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"½Ã°£ ¼±ÅÃ:\n" +
-"- ¸¶¿ì½º·Î ´©¸£¸é ½Ã°£ÀÌ Áõ°¡ÇÕ´Ï´Ù\n" +
-"- Shift Å°¿Í ÇÔ²² ´©¸£¸é °¨¼ÒÇÕ´Ï´Ù\n" +
-"- ´©¸¥ »óÅ¿¡¼­ ¸¶¿ì½º¸¦ ¿òÁ÷À̸é Á» ´õ ºü¸£°Ô °ªÀÌ º¯ÇÕ´Ï´Ù.\n";
-
-Calendar._TT["PREV_YEAR"] = "Áö³­ ÇØ (±æ°Ô ´©¸£¸é ¸ñ·Ï)";
-Calendar._TT["PREV_MONTH"] = "Áö³­ ´Þ (±æ°Ô ´©¸£¸é ¸ñ·Ï)";
-Calendar._TT["GO_TODAY"] = "¿À´Ã ³¯Â¥·Î";
-Calendar._TT["NEXT_MONTH"] = "´ÙÀ½ ´Þ (±æ°Ô ´©¸£¸é ¸ñ·Ï)";
-Calendar._TT["NEXT_YEAR"] = "´ÙÀ½ ÇØ (±æ°Ô ´©¸£¸é ¸ñ·Ï)";
-Calendar._TT["SEL_DATE"] = "³¯Â¥¸¦ ¼±ÅÃÇϼ¼¿ä";
-Calendar._TT["DRAG_TO_MOVE"] = "¸¶¿ì½º µå·¡±×·Î À̵¿ Çϼ¼¿ä";
-Calendar._TT["PART_TODAY"] = " (¿À´Ã)";
-Calendar._TT["MON_FIRST"] = "¿ù¿äÀÏÀ» ÇÑ ÁÖÀÇ ½ÃÀÛ ¿äÀÏ·Î";
-Calendar._TT["SUN_FIRST"] = "ÀÏ¿äÀÏÀ» ÇÑ ÁÖÀÇ ½ÃÀÛ ¿äÀÏ·Î";
-Calendar._TT["CLOSE"] = "´Ý±â";
-Calendar._TT["TODAY"] = "¿À´Ã";
-Calendar._TT["TIME_PART"] = "(Shift-)Ŭ¸¯ ¶Ç´Â µå·¡±× Çϼ¼¿ä";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%b/%e [%a]";
-
-Calendar._TT["WK"] = "ÁÖ";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-lt-utf8.js b/WebContent/themes/default/jscalendar/lang/calendar-lt-utf8.js
deleted file mode 100644
index d39653be27..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-lt-utf8.js
+++ /dev/null
@@ -1,114 +0,0 @@
-// ** I18N
-
-// Calendar LT language
-// Author: Martynas Majeris, <martynas@solmetra.lt>
-// Encoding: UTF-8
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible. We strongly believe that
-// Unicode is the answer to a real internationalized world. Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("Sekmadienis",
- "Pirmadienis",
- "Antradienis",
- "TreÄiadienis",
- "Ketvirtadienis",
- "Pentadienis",
- "Šeštadienis",
- "Sekmadienis");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary. We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-// Calendar._SDN_len = N; // short day name length
-// Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("Sek",
- "Pir",
- "Ant",
- "Tre",
- "Ket",
- "Pen",
- "Šeš",
- "Sek");
-
-// full month names
-Calendar._MN = new Array
-("Sausis",
- "Vasaris",
- "Kovas",
- "Balandis",
- "Gegužė",
- "Birželis",
- "Liepa",
- "Rugpjūtis",
- "RugsÄ—jis",
- "Spalis",
- "Lapkritis",
- "Gruodis");
-
-// short month names
-Calendar._SMN = new Array
-("Sau",
- "Vas",
- "Kov",
- "Bal",
- "Geg",
- "Bir",
- "Lie",
- "Rgp",
- "Rgs",
- "Spa",
- "Lap",
- "Gru");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Apie kalendorių";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"NaujausiÄ… versijÄ… rasite: http://www.dynarch.com/projects/calendar/\n" +
-"Platinamas pagal GNU LGPL licencijÄ…. Aplankykite http://gnu.org/licenses/lgpl.html" +
-"\n\n" +
-"Datos pasirinkimas:\n" +
-"- Metų pasirinkimas: \xab, \xbb\n" +
-"- MÄ—nesio pasirinkimas: " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + "\n" +
-"- Nuspauskite ir laikykite pelės klavišą greitesniam pasirinkimui.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Laiko pasirinkimas:\n" +
-"- Spustelkite ant valandų arba minuÄių - skaiÄius padidÄ—s vienetu.\n" +
-"- Jei spausite kartu su Shift, skaiÄius sumažės.\n" +
-"- Greitam pasirinkimui spustelkite ir pajudinkite pelÄ™.";
-
-Calendar._TT["PREV_YEAR"] = "Ankstesni metai (laikykite, jei norite meniu)";
-Calendar._TT["PREV_MONTH"] = "Ankstesnis mÄ—nuo (laikykite, jei norite meniu)";
-Calendar._TT["GO_TODAY"] = "Pasirinkti Å¡iandienÄ…";
-Calendar._TT["NEXT_MONTH"] = "Kitas mÄ—nuo (laikykite, jei norite meniu)";
-Calendar._TT["NEXT_YEAR"] = "Kiti metai (laikykite, jei norite meniu)";
-Calendar._TT["SEL_DATE"] = "Pasirinkite datÄ…";
-Calendar._TT["DRAG_TO_MOVE"] = "Tempkite";
-Calendar._TT["PART_TODAY"] = " (Å¡iandien)";
-Calendar._TT["MON_FIRST"] = "Pirma savaitÄ—s diena - pirmadienis";
-Calendar._TT["SUN_FIRST"] = "Pirma savaitÄ—s diena - sekmadienis";
-Calendar._TT["CLOSE"] = "Uždaryti";
-Calendar._TT["TODAY"] = "Å iandien";
-Calendar._TT["TIME_PART"] = "Spustelkite arba tempkite jei norite pakeisti";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%A, %Y-%m-%d";
-
-Calendar._TT["WK"] = "sav";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-lt.js b/WebContent/themes/default/jscalendar/lang/calendar-lt.js
deleted file mode 100644
index 43b93d6810..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-lt.js
+++ /dev/null
@@ -1,114 +0,0 @@
-// ** I18N
-
-// Calendar LT language
-// Author: Martynas Majeris, <martynas@solmetra.lt>
-// Encoding: Windows-1257
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible. We strongly believe that
-// Unicode is the answer to a real internationalized world. Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("Sekmadienis",
- "Pirmadienis",
- "Antradienis",
- "Treèiadienis",
- "Ketvirtadienis",
- "Pentadienis",
- "Ðeðtadienis",
- "Sekmadienis");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary. We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-// Calendar._SDN_len = N; // short day name length
-// Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("Sek",
- "Pir",
- "Ant",
- "Tre",
- "Ket",
- "Pen",
- "Ðeð",
- "Sek");
-
-// full month names
-Calendar._MN = new Array
-("Sausis",
- "Vasaris",
- "Kovas",
- "Balandis",
- "Geguþë",
- "Birþelis",
- "Liepa",
- "Rugpjûtis",
- "Rugsëjis",
- "Spalis",
- "Lapkritis",
- "Gruodis");
-
-// short month names
-Calendar._SMN = new Array
-("Sau",
- "Vas",
- "Kov",
- "Bal",
- "Geg",
- "Bir",
- "Lie",
- "Rgp",
- "Rgs",
- "Spa",
- "Lap",
- "Gru");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Apie kalendoriø";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"Naujausià versijà rasite: http://www.dynarch.com/projects/calendar/\n" +
-"Platinamas pagal GNU LGPL licencijà. Aplankykite http://gnu.org/licenses/lgpl.html" +
-"\n\n" +
-"Datos pasirinkimas:\n" +
-"- Metø pasirinkimas: \xab, \xbb\n" +
-"- Mënesio pasirinkimas: " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + "\n" +
-"- Nuspauskite ir laikykite pelës klaviðà greitesniam pasirinkimui.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Laiko pasirinkimas:\n" +
-"- Spustelkite ant valandø arba minuèiø - skaièus padidës vienetu.\n" +
-"- Jei spausite kartu su Shift, skaièius sumaþës.\n" +
-"- Greitam pasirinkimui spustelkite ir pajudinkite pelæ.";
-
-Calendar._TT["PREV_YEAR"] = "Ankstesni metai (laikykite, jei norite meniu)";
-Calendar._TT["PREV_MONTH"] = "Ankstesnis mënuo (laikykite, jei norite meniu)";
-Calendar._TT["GO_TODAY"] = "Pasirinkti ðiandienà";
-Calendar._TT["NEXT_MONTH"] = "Kitas mënuo (laikykite, jei norite meniu)";
-Calendar._TT["NEXT_YEAR"] = "Kiti metai (laikykite, jei norite meniu)";
-Calendar._TT["SEL_DATE"] = "Pasirinkite datà";
-Calendar._TT["DRAG_TO_MOVE"] = "Tempkite";
-Calendar._TT["PART_TODAY"] = " (ðiandien)";
-Calendar._TT["MON_FIRST"] = "Pirma savaitës diena - pirmadienis";
-Calendar._TT["SUN_FIRST"] = "Pirma savaitës diena - sekmadienis";
-Calendar._TT["CLOSE"] = "Uþdaryti";
-Calendar._TT["TODAY"] = "Ðiandien";
-Calendar._TT["TIME_PART"] = "Spustelkite arba tempkite jei norite pakeisti";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%A, %Y-%m-%d";
-
-Calendar._TT["WK"] = "sav";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-lv.js b/WebContent/themes/default/jscalendar/lang/calendar-lv.js
deleted file mode 100644
index 407699d36d..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-lv.js
+++ /dev/null
@@ -1,123 +0,0 @@
-// ** I18N
-
-// Calendar LV language
-// Author: Juris Valdovskis, <juris@dc.lv>
-// Encoding: cp1257
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible. We strongly believe that
-// Unicode is the answer to a real internationalized world. Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("Svçtdiena",
- "Pirmdiena",
- "Otrdiena",
- "Treðdiena",
- "Ceturdiena",
- "Piektdiena",
- "Sestdiena",
- "Svçtdiena");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary. We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-// Calendar._SDN_len = N; // short day name length
-// Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("Sv",
- "Pr",
- "Ot",
- "Tr",
- "Ce",
- "Pk",
- "Se",
- "Sv");
-
-// full month names
-Calendar._MN = new Array
-("Janvâris",
- "Februâris",
- "Marts",
- "Aprîlis",
- "Maijs",
- "Jûnijs",
- "Jûlijs",
- "Augusts",
- "Septembris",
- "Oktobris",
- "Novembris",
- "Decembris");
-
-// short month names
-Calendar._SMN = new Array
-("Jan",
- "Feb",
- "Mar",
- "Apr",
- "Mai",
- "Jûn",
- "Jûl",
- "Aug",
- "Sep",
- "Okt",
- "Nov",
- "Dec");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Par kalendâru";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
-"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
-"\n\n" +
-"Datuma izvçle:\n" +
-"- Izmanto \xab, \xbb pogas, lai izvçlçtos gadu\n" +
-"- Izmanto " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + "pogas, lai izvçlçtos mçnesi\n" +
-"- Turi nospiestu peles pogu uz jebkuru no augstâk minçtajâm pogâm, lai paâtrinâtu izvçli.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Laika izvçle:\n" +
-"- Uzklikðíini uz jebkuru no laika daïâm, lai palielinâtu to\n" +
-"- vai Shift-klikðíis, lai samazinâtu to\n" +
-"- vai noklikðíini un velc uz attiecîgo virzienu lai mainîtu âtrâk.";
-
-Calendar._TT["PREV_YEAR"] = "Iepr. gads (turi izvçlnei)";
-Calendar._TT["PREV_MONTH"] = "Iepr. mçnesis (turi izvçlnei)";
-Calendar._TT["GO_TODAY"] = "Ðodien";
-Calendar._TT["NEXT_MONTH"] = "Nâkoðais mçnesis (turi izvçlnei)";
-Calendar._TT["NEXT_YEAR"] = "Nâkoðais gads (turi izvçlnei)";
-Calendar._TT["SEL_DATE"] = "Izvçlies datumu";
-Calendar._TT["DRAG_TO_MOVE"] = "Velc, lai pârvietotu";
-Calendar._TT["PART_TODAY"] = " (ðodien)";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "Attçlot %s kâ pirmo";
-
-// This may be locale-dependent. It specifies the week-end days, as an array
-// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "1,7";
-
-Calendar._TT["CLOSE"] = "Aizvçrt";
-Calendar._TT["TODAY"] = "Ðodien";
-Calendar._TT["TIME_PART"] = "(Shift-)Klikðíis vai pârvieto, lai mainîtu";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %e %b";
-
-Calendar._TT["WK"] = "wk";
-Calendar._TT["TIME"] = "Laiks:";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-nl.js b/WebContent/themes/default/jscalendar/lang/calendar-nl.js
deleted file mode 100644
index a1dea94bdb..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-nl.js
+++ /dev/null
@@ -1,73 +0,0 @@
-// ** I18N
-Calendar._DN = new Array
-("Zondag",
- "Maandag",
- "Dinsdag",
- "Woensdag",
- "Donderdag",
- "Vrijdag",
- "Zaterdag",
- "Zondag");
-
-Calendar._SDN_len = 2;
-
-Calendar._MN = new Array
-("Januari",
- "Februari",
- "Maart",
- "April",
- "Mei",
- "Juni",
- "Juli",
- "Augustus",
- "September",
- "Oktober",
- "November",
- "December");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Info";
-
-Calendar._TT["ABOUT"] =
-"DHTML Datum/Tijd Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" +
-"Ga voor de meest recente versie naar: http://www.dynarch.com/projects/calendar/\n" +
-"Verspreid onder de GNU LGPL. Zie http://gnu.org/licenses/lgpl.html voor details." +
-"\n\n" +
-"Datum selectie:\n" +
-"- Gebruik de \xab \xbb knoppen om een jaar te selecteren\n" +
-"- Gebruik de " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " knoppen om een maand te selecteren\n" +
-"- Houd de muis ingedrukt op de genoemde knoppen voor een snellere selectie.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Tijd selectie:\n" +
-"- Klik op een willekeurig onderdeel van het tijd gedeelte om het te verhogen\n" +
-"- of Shift-klik om het te verlagen\n" +
-"- of klik en sleep voor een snellere selectie.";
-
-//Calendar._TT["TOGGLE"] = "Selecteer de eerste week-dag";
-Calendar._TT["PREV_YEAR"] = "Vorig jaar (ingedrukt voor menu)";
-Calendar._TT["PREV_MONTH"] = "Vorige maand (ingedrukt voor menu)";
-Calendar._TT["GO_TODAY"] = "Ga naar Vandaag";
-Calendar._TT["NEXT_MONTH"] = "Volgende maand (ingedrukt voor menu)";
-Calendar._TT["NEXT_YEAR"] = "Volgend jaar (ingedrukt voor menu)";
-Calendar._TT["SEL_DATE"] = "Selecteer datum";
-Calendar._TT["DRAG_TO_MOVE"] = "Klik en sleep om te verplaatsen";
-Calendar._TT["PART_TODAY"] = " (vandaag)";
-//Calendar._TT["MON_FIRST"] = "Toon Maandag eerst";
-//Calendar._TT["SUN_FIRST"] = "Toon Zondag eerst";
-
-Calendar._TT["DAY_FIRST"] = "Toon %s eerst";
-
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "Sluiten";
-Calendar._TT["TODAY"] = "(vandaag)";
-Calendar._TT["TIME_PART"] = "(Shift-)Klik of sleep om de waarde te veranderen";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %e %b %Y";
-
-Calendar._TT["WK"] = "wk";
-Calendar._TT["TIME"] = "Tijd:"; \ No newline at end of file
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-no.js b/WebContent/themes/default/jscalendar/lang/calendar-no.js
deleted file mode 100644
index d9297d179a..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-no.js
+++ /dev/null
@@ -1,114 +0,0 @@
-// ** I18N
-
-// Calendar NO language
-// Author: Daniel Holmen, <daniel.holmen@ciber.no>
-// Encoding: UTF-8
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible. We strongly believe that
-// Unicode is the answer to a real internationalized world. Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("Søndag",
- "Mandag",
- "Tirsdag",
- "Onsdag",
- "Torsdag",
- "Fredag",
- "Lørdag",
- "Søndag");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary. We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-// Calendar._SDN_len = N; // short day name length
-// Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("Søn",
- "Man",
- "Tir",
- "Ons",
- "Tor",
- "Fre",
- "Lør",
- "Søn");
-
-// full month names
-Calendar._MN = new Array
-("Januar",
- "Februar",
- "Mars",
- "April",
- "Mai",
- "Juni",
- "Juli",
- "August",
- "September",
- "Oktober",
- "November",
- "Desember");
-
-// short month names
-Calendar._SMN = new Array
-("Jan",
- "Feb",
- "Mar",
- "Apr",
- "Mai",
- "Jun",
- "Jul",
- "Aug",
- "Sep",
- "Okt",
- "Nov",
- "Des");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Om kalenderen";
-
-Calendar._TT["ABOUT"] =
-"DHTML Dato-/Tidsvelger\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"For nyeste versjon, gå til: http://www.dynarch.com/projects/calendar/\n" +
-"Distribuert under GNU LGPL. Se http://gnu.org/licenses/lgpl.html for detaljer." +
-"\n\n" +
-"Datovalg:\n" +
-"- Bruk knappene \xab og \xbb for å velge år\n" +
-"- Bruk knappene " + String.fromCharCode(0x2039) + " og " + String.fromCharCode(0x203a) + " for å velge måned\n" +
-"- Hold inne musknappen eller knappene over for raskere valg.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Tidsvalg:\n" +
-"- Klikk på en av tidsdelene for å øke den\n" +
-"- eller Shift-klikk for å senke verdien\n" +
-"- eller klikk-og-dra for raskere valg..";
-
-Calendar._TT["PREV_YEAR"] = "Forrige. år (hold for meny)";
-Calendar._TT["PREV_MONTH"] = "Forrige. måned (hold for meny)";
-Calendar._TT["GO_TODAY"] = "GÃ¥ til idag";
-Calendar._TT["NEXT_MONTH"] = "Neste måned (hold for meny)";
-Calendar._TT["NEXT_YEAR"] = "Neste år (hold for meny)";
-Calendar._TT["SEL_DATE"] = "Velg dato";
-Calendar._TT["DRAG_TO_MOVE"] = "Dra for å flytte";
-Calendar._TT["PART_TODAY"] = " (idag)";
-Calendar._TT["MON_FIRST"] = "Vis mandag først";
-Calendar._TT["SUN_FIRST"] = "Vis søndag først";
-Calendar._TT["CLOSE"] = "Lukk";
-Calendar._TT["TODAY"] = "Idag";
-Calendar._TT["TIME_PART"] = "(Shift-)Klikk eller dra for å endre verdi";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%d.%m.%Y";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
-
-Calendar._TT["WK"] = "uke"; \ No newline at end of file
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-pl-utf8.js b/WebContent/themes/default/jscalendar/lang/calendar-pl-utf8.js
deleted file mode 100644
index 6b8ca67aa2..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-pl-utf8.js
+++ /dev/null
@@ -1,93 +0,0 @@
-// ** I18N
-
-// Calendar PL language
-// Author: Dariusz Pietrzak, <eyck@ghost.anime.pl>
-// Author: Janusz Piwowarski, <jpiw@go2.pl>
-// Encoding: utf-8
-// Distributed under the same terms as the calendar itself.
-
-Calendar._DN = new Array
-("Niedziela",
- "Poniedziałek",
- "Wtorek",
- "Åšroda",
- "Czwartek",
- "PiÄ…tek",
- "Sobota",
- "Niedziela");
-Calendar._SDN = new Array
-("Nie",
- "Pn",
- "Wt",
- "Åšr",
- "Cz",
- "Pt",
- "So",
- "Nie");
-Calendar._MN = new Array
-("Styczeń",
- "Luty",
- "Marzec",
- "Kwiecień",
- "Maj",
- "Czerwiec",
- "Lipiec",
- "Sierpień",
- "Wrzesień",
- "Październik",
- "Listopad",
- "Grudzień");
-Calendar._SMN = new Array
-("Sty",
- "Lut",
- "Mar",
- "Kwi",
- "Maj",
- "Cze",
- "Lip",
- "Sie",
- "Wrz",
- "Paź",
- "Lis",
- "Gru");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "O kalendarzu";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"Aby pobrać najnowszą wersję, odwiedź: http://www.dynarch.com/projects/calendar/\n" +
-"Dostępny na licencji GNU LGPL. Zobacz szczegóły na http://gnu.org/licenses/lgpl.html." +
-"\n\n" +
-"Wybór daty:\n" +
-"- Użyj przycisków \xab, \xbb by wybrać rok\n" +
-"- Użyj przycisków " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " by wybrać miesiąc\n" +
-"- Przytrzymaj klawisz myszy nad jednym z powyższych przycisków dla szybszego wyboru.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Wybór czasu:\n" +
-"- Kliknij na jednym z pól czasu by zwiększyć jego wartość\n" +
-"- lub kliknij trzymając Shift by zmiejszyć jego wartość\n" +
-"- lub kliknij i przeciÄ…gnij dla szybszego wyboru.";
-
-//Calendar._TT["TOGGLE"] = "Zmień pierwszy dzień tygodnia";
-Calendar._TT["PREV_YEAR"] = "Poprzedni rok (przytrzymaj dla menu)";
-Calendar._TT["PREV_MONTH"] = "Poprzedni miesiÄ…c (przytrzymaj dla menu)";
-Calendar._TT["GO_TODAY"] = "Idź do dzisiaj";
-Calendar._TT["NEXT_MONTH"] = "Następny miesiąc (przytrzymaj dla menu)";
-Calendar._TT["NEXT_YEAR"] = "Następny rok (przytrzymaj dla menu)";
-Calendar._TT["SEL_DATE"] = "Wybierz datÄ™";
-Calendar._TT["DRAG_TO_MOVE"] = "Przeciągnij by przesunąć";
-Calendar._TT["PART_TODAY"] = " (dzisiaj)";
-Calendar._TT["MON_FIRST"] = "Wyświetl poniedziałek jako pierwszy";
-Calendar._TT["SUN_FIRST"] = "Wyświetl niedzielę jako pierwszą";
-Calendar._TT["CLOSE"] = "Zamknij";
-Calendar._TT["TODAY"] = "Dzisiaj";
-Calendar._TT["TIME_PART"] = "(Shift-)Kliknij lub przeciągnij by zmienić wartość";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%e %B, %A";
-
-Calendar._TT["WK"] = "ty";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-pl.js b/WebContent/themes/default/jscalendar/lang/calendar-pl.js
deleted file mode 100644
index 76e0551ab6..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-pl.js
+++ /dev/null
@@ -1,56 +0,0 @@
-// ** I18N
-// Calendar PL language
-// Author: Artur Filipiak, <imagen@poczta.fm>
-// January, 2004
-// Encoding: UTF-8
-Calendar._DN = new Array
-("Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota", "Niedziela");
-
-Calendar._SDN = new Array
-("N", "Pn", "Wt", "Åšr", "Cz", "Pt", "So", "N");
-
-Calendar._MN = new Array
-("Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień");
-
-Calendar._SMN = new Array
-("Sty", "Lut", "Mar", "Kwi", "Maj", "Cze", "Lip", "Sie", "Wrz", "Paź", "Lis", "Gru");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "O kalendarzu";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
-"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
-"\n\n" +
-"Wybór daty:\n" +
-"- aby wybrać rok użyj przycisków \xab, \xbb\n" +
-"- aby wybrać miesiąc użyj przycisków " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + "\n" +
-"- aby przyspieszyć wybór przytrzymaj wciśnięty przycisk myszy nad ww. przyciskami.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Wybór czasu:\n" +
-"- aby zwiększyć wartość kliknij na dowolnym elemencie selekcji czasu\n" +
-"- aby zmniejszyć wartość użyj dodatkowo klawisza Shift\n" +
-"- możesz również poruszać myszkę w lewo i prawo wraz z wciśniętym lewym klawiszem.";
-
-Calendar._TT["PREV_YEAR"] = "Poprz. rok (przytrzymaj dla menu)";
-Calendar._TT["PREV_MONTH"] = "Poprz. miesiÄ…c (przytrzymaj dla menu)";
-Calendar._TT["GO_TODAY"] = "Pokaż dziś";
-Calendar._TT["NEXT_MONTH"] = "Nast. miesiÄ…c (przytrzymaj dla menu)";
-Calendar._TT["NEXT_YEAR"] = "Nast. rok (przytrzymaj dla menu)";
-Calendar._TT["SEL_DATE"] = "Wybierz datÄ™";
-Calendar._TT["DRAG_TO_MOVE"] = "Przesuń okienko";
-Calendar._TT["PART_TODAY"] = " (dziÅ›)";
-Calendar._TT["MON_FIRST"] = "Pokaż Poniedziałek jako pierwszy";
-Calendar._TT["SUN_FIRST"] = "Pokaż Niedzielę jako pierwszą";
-Calendar._TT["CLOSE"] = "Zamknij";
-Calendar._TT["TODAY"] = "DziÅ›";
-Calendar._TT["TIME_PART"] = "(Shift-)klik | drag, aby zmienić wartość";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y.%m.%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
-
-Calendar._TT["WK"] = "wk"; \ No newline at end of file
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-pt.js b/WebContent/themes/default/jscalendar/lang/calendar-pt.js
deleted file mode 100644
index deee8a19ed..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-pt.js
+++ /dev/null
@@ -1,123 +0,0 @@
-// ** I18N
-
-// Calendar pt_BR language
-// Author: Adalberto Machado, <betosm@terra.com.br>
-// Encoding: any
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible. We strongly believe that
-// Unicode is the answer to a real internationalized world. Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("Domingo",
- "Segunda",
- "Terca",
- "Quarta",
- "Quinta",
- "Sexta",
- "Sabado",
- "Domingo");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary. We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-// Calendar._SDN_len = N; // short day name length
-// Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("Dom",
- "Seg",
- "Ter",
- "Qua",
- "Qui",
- "Sex",
- "Sab",
- "Dom");
-
-// full month names
-Calendar._MN = new Array
-("Janeiro",
- "Fevereiro",
- "Marco",
- "Abril",
- "Maio",
- "Junho",
- "Julho",
- "Agosto",
- "Setembro",
- "Outubro",
- "Novembro",
- "Dezembro");
-
-// short month names
-Calendar._SMN = new Array
-("Jan",
- "Fev",
- "Mar",
- "Abr",
- "Mai",
- "Jun",
- "Jul",
- "Ago",
- "Set",
- "Out",
- "Nov",
- "Dez");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Sobre o calendario";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"Ultima versao visite: http://www.dynarch.com/projects/calendar/\n" +
-"Distribuido sobre GNU LGPL. Veja http://gnu.org/licenses/lgpl.html para detalhes." +
-"\n\n" +
-"Selecao de data:\n" +
-"- Use os botoes \xab, \xbb para selecionar o ano\n" +
-"- Use os botoes " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " para selecionar o mes\n" +
-"- Segure o botao do mouse em qualquer um desses botoes para selecao rapida.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Selecao de hora:\n" +
-"- Clique em qualquer parte da hora para incrementar\n" +
-"- ou Shift-click para decrementar\n" +
-"- ou clique e segure para selecao rapida.";
-
-Calendar._TT["PREV_YEAR"] = "Ant. ano (segure para menu)";
-Calendar._TT["PREV_MONTH"] = "Ant. mes (segure para menu)";
-Calendar._TT["GO_TODAY"] = "Hoje";
-Calendar._TT["NEXT_MONTH"] = "Prox. mes (segure para menu)";
-Calendar._TT["NEXT_YEAR"] = "Prox. ano (segure para menu)";
-Calendar._TT["SEL_DATE"] = "Selecione a data";
-Calendar._TT["DRAG_TO_MOVE"] = "Arraste para mover";
-Calendar._TT["PART_TODAY"] = " (hoje)";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "Mostre %s primeiro";
-
-// This may be locale-dependent. It specifies the week-end days, as an array
-// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "Fechar";
-Calendar._TT["TODAY"] = "Hoje";
-Calendar._TT["TIME_PART"] = "(Shift-)Click ou arraste para mudar valor";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%d/%m/%Y";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %e %b";
-
-Calendar._TT["WK"] = "sm";
-Calendar._TT["TIME"] = "Hora:";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-ro.js b/WebContent/themes/default/jscalendar/lang/calendar-ro.js
deleted file mode 100644
index 116e358ba2..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-ro.js
+++ /dev/null
@@ -1,66 +0,0 @@
-// ** I18N
-Calendar._DN = new Array
-("Duminică",
- "Luni",
- "Marţi",
- "Miercuri",
- "Joi",
- "Vineri",
- "Sâmbătă",
- "Duminică");
-Calendar._SDN_len = 2;
-Calendar._MN = new Array
-("Ianuarie",
- "Februarie",
- "Martie",
- "Aprilie",
- "Mai",
- "Iunie",
- "Iulie",
- "August",
- "Septembrie",
- "Octombrie",
- "Noiembrie",
- "Decembrie");
-
-// tooltips
-Calendar._TT = {};
-
-Calendar._TT["INFO"] = "Despre calendar";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"Pentru ultima versiune vizitaţi: http://www.dynarch.com/projects/calendar/\n" +
-"Distribuit sub GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
-"\n\n" +
-"Selecţia datei:\n" +
-"- Folosiţi butoanele \xab, \xbb pentru a selecta anul\n" +
-"- Folosiţi butoanele " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " pentru a selecta luna\n" +
-"- Tineţi butonul mouse-ului apăsat pentru selecţie mai rapidă.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Selecţia orei:\n" +
-"- Click pe ora sau minut pentru a mări valoarea cu 1\n" +
-"- Sau Shift-Click pentru a micÅŸora valoarea cu 1\n" +
-"- Sau Click ÅŸi drag pentru a selecta mai repede.";
-
-Calendar._TT["PREV_YEAR"] = "Anul precedent (lung pt menu)";
-Calendar._TT["PREV_MONTH"] = "Luna precedentă (lung pt menu)";
-Calendar._TT["GO_TODAY"] = "Data de azi";
-Calendar._TT["NEXT_MONTH"] = "Luna următoare (lung pt menu)";
-Calendar._TT["NEXT_YEAR"] = "Anul următor (lung pt menu)";
-Calendar._TT["SEL_DATE"] = "Selectează data";
-Calendar._TT["DRAG_TO_MOVE"] = "Trage pentru a miÅŸca";
-Calendar._TT["PART_TODAY"] = " (astăzi)";
-Calendar._TT["DAY_FIRST"] = "Afişează %s prima zi";
-Calendar._TT["WEEKEND"] = "0,6";
-Calendar._TT["CLOSE"] = "ÃŽnchide";
-Calendar._TT["TODAY"] = "Astăzi";
-Calendar._TT["TIME_PART"] = "(Shift-)Click sau drag pentru a selecta";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y";
-Calendar._TT["TT_DATE_FORMAT"] = "%A, %d %B";
-
-Calendar._TT["WK"] = "spt";
-Calendar._TT["TIME"] = "Ora:";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-ru.js b/WebContent/themes/default/jscalendar/lang/calendar-ru.js
deleted file mode 100644
index 9f75a6a432..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-ru.js
+++ /dev/null
@@ -1,123 +0,0 @@
-// ** I18N
-
-// Calendar RU language
-// Translation: Sly Golovanov, http://golovanov.net, <sly@golovanov.net>
-// Encoding: any
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible. We strongly believe that
-// Unicode is the answer to a real internationalized world. Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("воÑкреÑенье",
- "понедельник",
- "вторник",
- "Ñреда",
- "четверг",
- "пÑтница",
- "Ñуббота",
- "воÑкреÑенье");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary. We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-// Calendar._SDN_len = N; // short day name length
-// Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("вÑк",
- "пон",
- "втр",
- "Ñрд",
- "чет",
- "пÑÑ‚",
- "Ñуб",
- "вÑк");
-
-// full month names
-Calendar._MN = new Array
-("Ñнварь",
- "февраль",
- "март",
- "апрель",
- "май",
- "июнь",
- "июль",
- "авгуÑÑ‚",
- "ÑентÑбрь",
- "октÑбрь",
- "ноÑбрь",
- "декабрь");
-
-// short month names
-Calendar._SMN = new Array
-("Ñнв",
- "фев",
- "мар",
- "апр",
- "май",
- "июн",
- "июл",
- "авг",
- "Ñен",
- "окт",
- "ноÑ",
- "дек");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "О календаре...";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
-"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
-"\n\n" +
-"Как выбрать дату:\n" +
-"- При помощи кнопок \xab, \xbb можно выбрать год\n" +
-"- При помощи кнопок " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " можно выбрать меÑÑц\n" +
-"- Подержите Ñти кнопки нажатыми, чтобы поÑвилоÑÑŒ меню быÑтрого выбора.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Как выбрать времÑ:\n" +
-"- При клике на чаÑах или минутах они увеличиваютÑÑ\n" +
-"- при клике Ñ Ð½Ð°Ð¶Ð°Ñ‚Ð¾Ð¹ клавишей Shift они уменьшаютÑÑ\n" +
-"- еÑли нажать и двигать мышкой влево/вправо, они будут менÑÑ‚ÑŒÑÑ Ð±Ñ‹Ñтрее.";
-
-Calendar._TT["PREV_YEAR"] = "Ðа год назад (удерживать Ð´Ð»Ñ Ð¼ÐµÐ½ÑŽ)";
-Calendar._TT["PREV_MONTH"] = "Ðа меÑÑц назад (удерживать Ð´Ð»Ñ Ð¼ÐµÐ½ÑŽ)";
-Calendar._TT["GO_TODAY"] = "СегоднÑ";
-Calendar._TT["NEXT_MONTH"] = "Ðа меÑÑц вперед (удерживать Ð´Ð»Ñ Ð¼ÐµÐ½ÑŽ)";
-Calendar._TT["NEXT_YEAR"] = "Ðа год вперед (удерживать Ð´Ð»Ñ Ð¼ÐµÐ½ÑŽ)";
-Calendar._TT["SEL_DATE"] = "Выберите дату";
-Calendar._TT["DRAG_TO_MOVE"] = "ПеретаÑкивайте мышкой";
-Calendar._TT["PART_TODAY"] = " (ÑегоднÑ)";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "Первый день недели будет %s";
-
-// This may be locale-dependent. It specifies the week-end days, as an array
-// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "Закрыть";
-Calendar._TT["TODAY"] = "СегоднÑ";
-Calendar._TT["TIME_PART"] = "(Shift-)клик или нажать и двигать";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%e %b, %a";
-
-Calendar._TT["WK"] = "нед";
-Calendar._TT["TIME"] = "ВремÑ:";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-ru_win_.js b/WebContent/themes/default/jscalendar/lang/calendar-ru_win_.js
deleted file mode 100644
index de455afa08..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-ru_win_.js
+++ /dev/null
@@ -1,123 +0,0 @@
-// ** I18N
-
-// Calendar RU language
-// Translation: Sly Golovanov, http://golovanov.net, <sly@golovanov.net>
-// Encoding: any
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible. We strongly believe that
-// Unicode is the answer to a real internationalized world. Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("âîñêðåñåíüå",
- "ïîíåäåëüíèê",
- "âòîðíèê",
- "ñðåäà",
- "÷åòâåðã",
- "ïÿòíèöà",
- "ñóááîòà",
- "âîñêðåñåíüå");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary. We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-// Calendar._SDN_len = N; // short day name length
-// Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("âñê",
- "ïîí",
- "âòð",
- "ñðä",
- "÷åò",
- "ïÿò",
- "ñóá",
- "âñê");
-
-// full month names
-Calendar._MN = new Array
-("ÿíâàðü",
- "ôåâðàëü",
- "ìàðò",
- "àïðåëü",
- "ìàé",
- "èþíü",
- "èþëü",
- "àâãóñò",
- "ñåíòÿáðü",
- "îêòÿáðü",
- "íîÿáðü",
- "äåêàáðü");
-
-// short month names
-Calendar._SMN = new Array
-("ÿíâ",
- "ôåâ",
- "ìàð",
- "àïð",
- "ìàé",
- "èþí",
- "èþë",
- "àâã",
- "ñåí",
- "îêò",
- "íîÿ",
- "äåê");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Î êàëåíäàðå...";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
-"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
-"\n\n" +
-"Êàê âûáðàòü äàòó:\n" +
-"- Ïðè ïîìîùè êíîïîê \xab, \xbb ìîæíî âûáðàòü ãîä\n" +
-"- Ïðè ïîìîùè êíîïîê " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " ìîæíî âûáðàòü ìåñÿö\n" +
-"- Ïîäåðæèòå ýòè êíîïêè íàæàòûìè, ÷òîáû ïîÿâèëîñü ìåíþ áûñòðîãî âûáîðà.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Êàê âûáðàòü âðåìÿ:\n" +
-"- Ïðè êëèêå íà ÷àñàõ èëè ìèíóòàõ îíè óâåëè÷èâàþòñÿ\n" +
-"- ïðè êëèêå ñ íàæàòîé êëàâèøåé Shift îíè óìåíüøàþòñÿ\n" +
-"- åñëè íàæàòü è äâèãàòü ìûøêîé âëåâî/âïðàâî, îíè áóäóò ìåíÿòüñÿ áûñòðåå.";
-
-Calendar._TT["PREV_YEAR"] = "Íà ãîä íàçàä (óäåðæèâàòü äëÿ ìåíþ)";
-Calendar._TT["PREV_MONTH"] = "Íà ìåñÿö íàçàä (óäåðæèâàòü äëÿ ìåíþ)";
-Calendar._TT["GO_TODAY"] = "Ñåãîäíÿ";
-Calendar._TT["NEXT_MONTH"] = "Íà ìåñÿö âïåðåä (óäåðæèâàòü äëÿ ìåíþ)";
-Calendar._TT["NEXT_YEAR"] = "Íà ãîä âïåðåä (óäåðæèâàòü äëÿ ìåíþ)";
-Calendar._TT["SEL_DATE"] = "Âûáåðèòå äàòó";
-Calendar._TT["DRAG_TO_MOVE"] = "Ïåðåòàñêèâàéòå ìûøêîé";
-Calendar._TT["PART_TODAY"] = " (ñåãîäíÿ)";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "Ïåðâûé äåíü íåäåëè áóäåò %s";
-
-// This may be locale-dependent. It specifies the week-end days, as an array
-// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "Çàêðûòü";
-Calendar._TT["TODAY"] = "Ñåãîäíÿ";
-Calendar._TT["TIME_PART"] = "(Shift-)êëèê èëè íàæàòü è äâèãàòü";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%e %b, %a";
-
-Calendar._TT["WK"] = "íåä";
-Calendar._TT["TIME"] = "Âðåìÿ:";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-si.js b/WebContent/themes/default/jscalendar/lang/calendar-si.js
deleted file mode 100644
index 100c522e4d..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-si.js
+++ /dev/null
@@ -1,94 +0,0 @@
-/* Slovenian language file for the DHTML Calendar version 0.9.2
-* Author David Milost <mercy@volja.net>, January 2004.
-* Feel free to use this script under the terms of the GNU Lesser General
-* Public License, as long as you do not remove or alter this notice.
-*/
- // full day names
-Calendar._DN = new Array
-("Nedelja",
- "Ponedeljek",
- "Torek",
- "Sreda",
- "ÄŒetrtek",
- "Petek",
- "Sobota",
- "Nedelja");
- // short day names
- Calendar._SDN = new Array
-("Ned",
- "Pon",
- "Tor",
- "Sre",
- "ÄŒet",
- "Pet",
- "Sob",
- "Ned");
-// short month names
-Calendar._SMN = new Array
-("Jan",
- "Feb",
- "Mar",
- "Apr",
- "Maj",
- "Jun",
- "Jul",
- "Avg",
- "Sep",
- "Okt",
- "Nov",
- "Dec");
- // full month names
-Calendar._MN = new Array
-("Januar",
- "Februar",
- "Marec",
- "April",
- "Maj",
- "Junij",
- "Julij",
- "Avgust",
- "September",
- "Oktober",
- "November",
- "December");
-
-// tooltips
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "O koledarju";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"Za zadnjo verzijo pojdine na naslov: http://www.dynarch.com/projects/calendar/\n" +
-"Distribuirano pod GNU LGPL. Poglejte http://gnu.org/licenses/lgpl.html za podrobnosti." +
-"\n\n" +
-"Izbor datuma:\n" +
-"- Uporabite \xab, \xbb gumbe za izbor leta\n" +
-"- Uporabite " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " gumbe za izbor meseca\n" +
-"- Zadržite klik na kateremkoli od zgornjih gumbov za hiter izbor.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Izbor ćasa:\n" +
-"- Kliknite na katerikoli del ćasa za poveć. le-tega\n" +
-"- ali Shift-click za zmanj. le-tega\n" +
-"- ali kliknite in povlecite za hiter izbor.";
-
-Calendar._TT["TOGGLE"] = "Spremeni dan s katerim se prićne teden";
-Calendar._TT["PREV_YEAR"] = "Predhodnje leto (dolg klik za meni)";
-Calendar._TT["PREV_MONTH"] = "Predhodnji mesec (dolg klik za meni)";
-Calendar._TT["GO_TODAY"] = "Pojdi na tekoći dan";
-Calendar._TT["NEXT_MONTH"] = "Naslednji mesec (dolg klik za meni)";
-Calendar._TT["NEXT_YEAR"] = "Naslednje leto (dolg klik za meni)";
-Calendar._TT["SEL_DATE"] = "Izberite datum";
-Calendar._TT["DRAG_TO_MOVE"] = "Pritisni in povleci za spremembo pozicije";
-Calendar._TT["PART_TODAY"] = " (danes)";
-Calendar._TT["MON_FIRST"] = "Prikaži ponedeljek kot prvi dan";
-Calendar._TT["SUN_FIRST"] = "Prikaži nedeljo kot prvi dan";
-Calendar._TT["CLOSE"] = "Zapri";
-Calendar._TT["TODAY"] = "Danes";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
-
-Calendar._TT["WK"] = "Ted"; \ No newline at end of file
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-sk.js b/WebContent/themes/default/jscalendar/lang/calendar-sk.js
deleted file mode 100644
index 4fe6a3c8bb..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-sk.js
+++ /dev/null
@@ -1,99 +0,0 @@
-// ** I18N
-
-// Calendar SK language
-// Author: Peter Valach (pvalach@gmx.net)
-// Encoding: utf-8
-// Last update: 2003/10/29
-// Distributed under the same terms as the calendar itself.
-
-// full day names
-Calendar._DN = new Array
-("NedeÄľa",
- "Pondelok",
- "Utorok",
- "Streda",
- "Ĺ tvrtok",
- "Piatok",
- "Sobota",
- "NedeÄľa");
-
-// short day names
-Calendar._SDN = new Array
-("Ned",
- "Pon",
- "Uto",
- "Str",
- "Ĺ tv",
- "Pia",
- "Sob",
- "Ned");
-
-// full month names
-Calendar._MN = new Array
-("Január",
- "Február",
- "Marec",
- "AprĂ­l",
- "Máj",
- "JÄ‚ÅŸn",
- "JÄ‚ÅŸl",
- "August",
- "September",
- "OktĂłber",
- "November",
- "December");
-
-// short month names
-Calendar._SMN = new Array
-("Jan",
- "Feb",
- "Mar",
- "Apr",
- "Máj",
- "JÄ‚ÅŸn",
- "JÄ‚ÅŸl",
- "Aug",
- "Sep",
- "Okt",
- "Nov",
- "Dec");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "O kalendári";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" +
-"Poslednú verziu nájdete na: http://www.dynarch.com/projects/calendar/\n" +
-"Distribuované pod GNU LGPL. Viď http://gnu.org/licenses/lgpl.html pre detaily." +
-"\n\n" +
-"VÄ‚Ëber dátumu:\n" +
-"- PouĹľite tlaÄŤidlá \xab, \xbb pre vÄ‚Ëber roku\n" +
-"- PouĹľite tlaÄŤidlá " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " pre vÄ‚Ëber mesiaca\n" +
-"- Ak ktorĂ©koÄľvek z tÄ‚Ëchto tlaÄŤidiel podržíte dlhšie, zobrazĂ­ sa rÄ‚Ëchly vÄ‚Ëber.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"VÄ‚Ëber ÄŤasu:\n" +
-"- Kliknutie na niektorÄ‚ÅŸ poloĹľku ÄŤasu ju zvÄ‚Ëši\n" +
-"- Shift-klik ju znĂ­Ĺľi\n" +
-"- Ak podržíte tlačítko stlačené, posúvaním meníte hodnotu.";
-
-Calendar._TT["PREV_YEAR"] = "PredošlÄ‚Ë rok (podrĹľte pre menu)";
-Calendar._TT["PREV_MONTH"] = "PredošlÄ‚Ë mesiac (podrĹľte pre menu)";
-Calendar._TT["GO_TODAY"] = "Prejsť na dnešok";
-Calendar._TT["NEXT_MONTH"] = "Nasl. mesiac (podrĹľte pre menu)";
-Calendar._TT["NEXT_YEAR"] = "Nasl. rok (podrĹľte pre menu)";
-Calendar._TT["SEL_DATE"] = "Zvoľte dátum";
-Calendar._TT["DRAG_TO_MOVE"] = "PodrĹľanĂ­m tlaÄŤĂ­tka zmenĂ­te polohu";
-Calendar._TT["PART_TODAY"] = " (dnes)";
-Calendar._TT["MON_FIRST"] = "ZobraziĹĄ pondelok ako prvÄ‚Ë";
-Calendar._TT["SUN_FIRST"] = "ZobraziĹĄ nedeÄľu ako prvĂş";
-Calendar._TT["CLOSE"] = "ZavrieĹĄ";
-Calendar._TT["TODAY"] = "Dnes";
-Calendar._TT["TIME_PART"] = "(Shift-)klik/ĹĄahanie zmenĂ­ hodnotu";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "$d. %m. %Y";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %e. %b";
-
-Calendar._TT["WK"] = "tÄ‚ËĹľ";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-sp.js b/WebContent/themes/default/jscalendar/lang/calendar-sp.js
deleted file mode 100644
index 239d1b3be9..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-sp.js
+++ /dev/null
@@ -1,110 +0,0 @@
-// ** I18N
-
-// Calendar SP language
-// Author: Rafael Velasco <rvu_at_idecnet_dot_com>
-// Encoding: any
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible. We strongly believe that
-// Unicode is the answer to a real internationalized world. Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("Domingo",
- "Lunes",
- "Martes",
- "Miercoles",
- "Jueves",
- "Viernes",
- "Sabado",
- "Domingo");
-
-Calendar._SDN = new Array
-("Dom",
- "Lun",
- "Mar",
- "Mie",
- "Jue",
- "Vie",
- "Sab",
- "Dom");
-
-// full month names
-Calendar._MN = new Array
-("Enero",
- "Febrero",
- "Marzo",
- "Abril",
- "Mayo",
- "Junio",
- "Julio",
- "Agosto",
- "Septiembre",
- "Octubre",
- "Noviembre",
- "Diciembre");
-
-// short month names
-Calendar._SMN = new Array
-("Ene",
- "Feb",
- "Mar",
- "Abr",
- "May",
- "Jun",
- "Jul",
- "Ago",
- "Sep",
- "Oct",
- "Nov",
- "Dic");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Información del Calendario";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"Nuevas versiones en: http://www.dynarch.com/projects/calendar/\n" +
-"Distribuida bajo licencia GNU LGPL. Para detalles vea http://gnu.org/licenses/lgpl.html ." +
-"\n\n" +
-"Selección de Fechas:\n" +
-"- Use \xab, \xbb para seleccionar el año\n" +
-"- Use " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " para seleccionar el mes\n" +
-"- Mantenga presionado el botón del ratón en cualquiera de las opciones superiores para un acceso rapido .";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Selección del Reloj:\n" +
-"- Seleccione la hora para cambiar el reloj\n" +
-"- o presione Shift-click para disminuirlo\n" +
-"- o presione click y arrastre del ratón para una selección rapida.";
-
-Calendar._TT["PREV_YEAR"] = "Año anterior (Presione para menu)";
-Calendar._TT["PREV_MONTH"] = "Mes Anterior (Presione para menu)";
-Calendar._TT["GO_TODAY"] = "Ir a Hoy";
-Calendar._TT["NEXT_MONTH"] = "Mes Siguiente (Presione para menu)";
-Calendar._TT["NEXT_YEAR"] = "Año Siguiente (Presione para menu)";
-Calendar._TT["SEL_DATE"] = "Seleccione fecha";
-Calendar._TT["DRAG_TO_MOVE"] = "Arrastre y mueva";
-Calendar._TT["PART_TODAY"] = " (Hoy)";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "Mostrar %s primero";
-
-// This may be locale-dependent. It specifies the week-end days, as an array
-// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "Cerrar";
-Calendar._TT["TODAY"] = "Hoy";
-Calendar._TT["TIME_PART"] = "(Shift-)Click o arrastra para cambar el valor";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%dd-%mm-%yy";
-Calendar._TT["TT_DATE_FORMAT"] = "%A, %e de %B de %Y";
-
-Calendar._TT["WK"] = "Sm";
-Calendar._TT["TIME"] = "Hora:";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-sv.js b/WebContent/themes/default/jscalendar/lang/calendar-sv.js
deleted file mode 100644
index 55015b3f99..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-sv.js
+++ /dev/null
@@ -1,113 +0,0 @@
-// ** I18N
-
-// Calendar SV language (Swedish, svenska)
-// Author: Mihai Bazon, <mihai_bazon@yahoo.com>
-// Translation team: <sv@li.org>
-// Translator: Leonard Norrgård <leonard.norrgard@refactor.fi>
-// Last translator: Leonard Norrgård <leonard.norrgard@refactor.fi>
-// Encoding: iso-latin-1
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible. We strongly believe that
-// Unicode is the answer to a real internationalized world. Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("söndag",
- "måndag",
- "tisdag",
- "onsdag",
- "torsdag",
- "fredag",
- "lördag",
- "söndag");
-
-Calendar._SDN = new Array
-("Sö",
- "MÃ¥",
- "Ti",
- "On",
- "To",
- "Fr",
- "Lö",
- "Sö");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary. We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-// Calendar._SDN_len = N; // short day name length
-// Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-Calendar._SDN_len = 2;
-Calendar._SMN_len = 3;
-
-// full month names
-Calendar._MN = new Array
-("januari",
- "februari",
- "mars",
- "april",
- "maj",
- "juni",
- "juli",
- "augusti",
- "september",
- "oktober",
- "november",
- "december");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Om kalendern";
-
-Calendar._TT["ABOUT"] =
-"DHTML Datum/tid-väljare\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"För senaste version gå till: http://www.dynarch.com/projects/calendar/\n" +
-"Distribueras under GNU LGPL. Se http://gnu.org/licenses/lgpl.html för detaljer." +
-"\n\n" +
-"Val av datum:\n" +
-"- Använd knapparna \xab, \xbb för att välja år\n" +
-"- Använd knapparna " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " för att välja månad\n" +
-"- Håll musknappen nedtryckt på någon av ovanstående knappar för snabbare val.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Val av tid:\n" +
-"- Klicka på en del av tiden för att öka den delen\n" +
-"- eller skift-klicka för att minska den\n" +
-"- eller klicka och drag för snabbare val.";
-
-Calendar._TT["PREV_YEAR"] = "Föregående år (håll för meny)";
-Calendar._TT["PREV_MONTH"] = "Föregående månad (håll för meny)";
-Calendar._TT["GO_TODAY"] = "GÃ¥ till dagens datum";
-Calendar._TT["NEXT_MONTH"] = "Följande månad (håll för meny)";
-Calendar._TT["NEXT_YEAR"] = "Följande år (håll för meny)";
-Calendar._TT["SEL_DATE"] = "Välj datum";
-Calendar._TT["DRAG_TO_MOVE"] = "Drag för att flytta";
-Calendar._TT["PART_TODAY"] = " (idag)";
-Calendar._TT["MON_FIRST"] = "Visa måndag först";
-Calendar._TT["SUN_FIRST"] = "Visa söndag först";
-Calendar._TT["CLOSE"] = "Stäng";
-Calendar._TT["TODAY"] = "Idag";
-Calendar._TT["TIME_PART"] = "(Skift-)klicka eller drag för att ändra tid";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "Visa %s först";
-
-// This may be locale-dependent. It specifies the week-end days, as an array
-// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%A %d %b %Y";
-
-Calendar._TT["WK"] = "vecka";
-Calendar._TT["TIME"] = "Tid:";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-tr.js b/WebContent/themes/default/jscalendar/lang/calendar-tr.js
deleted file mode 100644
index f2c906c46c..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-tr.js
+++ /dev/null
@@ -1,58 +0,0 @@
-//////////////////////////////////////////////////////////////////////////////////////////////
-// Turkish Translation by Nuri AKMAN
-// Location: Ankara/TURKEY
-// e-mail : nuriakman@hotmail.com
-// Date : April, 9 2003
-//
-// Note: if Turkish Characters does not shown on you screen
-// please include falowing line your html code:
-//
-// <meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
-//
-//////////////////////////////////////////////////////////////////////////////////////////////
-
-// ** I18N
-Calendar._DN = new Array
-("Pazar",
- "Pazartesi",
- "Salý",
- "Çarþamba",
- "Perþembe",
- "Cuma",
- "Cumartesi",
- "Pazar");
-Calendar._MN = new Array
-("Ocak",
- "Þubat",
- "Mart",
- "Nisan",
- "Mayýs",
- "Haziran",
- "Temmuz",
- "Aðustos",
- "Eylül",
- "Ekim",
- "Kasým",
- "Aralýk");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["TOGGLE"] = "Haftanýn ilk gününü kaydýr";
-Calendar._TT["PREV_YEAR"] = "Önceki Yýl (Menü için basýlý tutunuz)";
-Calendar._TT["PREV_MONTH"] = "Önceki Ay (Menü için basýlý tutunuz)";
-Calendar._TT["GO_TODAY"] = "Bugün'e git";
-Calendar._TT["NEXT_MONTH"] = "Sonraki Ay (Menü için basýlý tutunuz)";
-Calendar._TT["NEXT_YEAR"] = "Sonraki Yýl (Menü için basýlý tutunuz)";
-Calendar._TT["SEL_DATE"] = "Tarih seçiniz";
-Calendar._TT["DRAG_TO_MOVE"] = "Taþýmak için sürükleyiniz";
-Calendar._TT["PART_TODAY"] = " (bugün)";
-Calendar._TT["MON_FIRST"] = "Takvim Pazartesi gününden baþlasýn";
-Calendar._TT["SUN_FIRST"] = "Takvim Pazar gününden baþlasýn";
-Calendar._TT["CLOSE"] = "Kapat";
-Calendar._TT["TODAY"] = "Bugün";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-y";
-Calendar._TT["TT_DATE_FORMAT"] = "d MM y, DD";
-
-Calendar._TT["WK"] = "Hafta";
diff --git a/WebContent/themes/default/jscalendar/lang/calendar-zh.js b/WebContent/themes/default/jscalendar/lang/calendar-zh.js
deleted file mode 100644
index 4a0feb6b73..0000000000
--- a/WebContent/themes/default/jscalendar/lang/calendar-zh.js
+++ /dev/null
@@ -1,119 +0,0 @@
-// ** I18N
-
-// Calendar ZH language
-// Author: muziq, <muziq@sina.com>
-// Encoding: GB2312 or GBK
-// Distributed under the same terms as the calendar itself.
-
-// full day names
-Calendar._DN = new Array
-("ÐÇÆÚÈÕ",
- "ÐÇÆÚÒ»",
- "ÐÇÆÚ¶þ",
- "ÐÇÆÚÈý",
- "ÐÇÆÚËÄ",
- "ÐÇÆÚÎå",
- "ÐÇÆÚÁù",
- "ÐÇÆÚÈÕ");
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary. We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-// Calendar._SDN_len = N; // short day name length
-// Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("ÈÕ",
- "Ò»",
- "¶þ",
- "Èý",
- "ËÄ",
- "Îå",
- "Áù",
- "ÈÕ");
-
-// full month names
-Calendar._MN = new Array
-("Ò»ÔÂ",
- "¶þÔÂ",
- "ÈýÔÂ",
- "ËÄÔÂ",
- "ÎåÔÂ",
- "ÁùÔÂ",
- "ÆßÔÂ",
- "°ËÔÂ",
- "¾ÅÔÂ",
- "Ê®ÔÂ",
- "ʮһÔÂ",
- "Ê®¶þÔÂ");
-
-// short month names
-Calendar._SMN = new Array
-("Ò»ÔÂ",
- "¶þÔÂ",
- "ÈýÔÂ",
- "ËÄÔÂ",
- "ÎåÔÂ",
- "ÁùÔÂ",
- "ÆßÔÂ",
- "°ËÔÂ",
- "¾ÅÔÂ",
- "Ê®ÔÂ",
- "ʮһÔÂ",
- "Ê®¶þÔÂ");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "°ïÖú";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"For latest version visit: http://www.dynarch.com/projects/calendar/\n" +
-"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
-"\n\n" +
-"Ñ¡ÔñÈÕÆÚ:\n" +
-"- µã»÷ \xab, \xbb °´Å¥Ñ¡ÔñÄê·Ý\n" +
-"- µã»÷ " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " °´Å¥Ñ¡ÔñÔ·Ý\n" +
-"- ³¤°´ÒÔÉÏ°´Å¥¿É´Ó²Ëµ¥ÖпìËÙÑ¡ÔñÄê·Ý»òÔ·Ý";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Ñ¡Ôñʱ¼ä:\n" +
-"- µã»÷Сʱ»ò·ÖÖÓ¿Éʹ¸ÄÊýÖµ¼ÓÒ»\n" +
-"- °´×¡Shift¼üµã»÷Сʱ»ò·ÖÖÓ¿Éʹ¸ÄÊýÖµ¼õÒ»\n" +
-"- µã»÷Í϶¯Êó±ê¿É½øÐпìËÙÑ¡Ôñ";
-
-Calendar._TT["PREV_YEAR"] = "ÉÏÒ»Äê (°´×¡³ö²Ëµ¥)";
-Calendar._TT["PREV_MONTH"] = "ÉÏÒ»Ô (°´×¡³ö²Ëµ¥)";
-Calendar._TT["GO_TODAY"] = "תµ½½ñÈÕ";
-Calendar._TT["NEXT_MONTH"] = "ÏÂÒ»Ô (°´×¡³ö²Ëµ¥)";
-Calendar._TT["NEXT_YEAR"] = "ÏÂÒ»Äê (°´×¡³ö²Ëµ¥)";
-Calendar._TT["SEL_DATE"] = "Ñ¡ÔñÈÕÆÚ";
-Calendar._TT["DRAG_TO_MOVE"] = "Í϶¯";
-Calendar._TT["PART_TODAY"] = " (½ñÈÕ)";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "×î×ó±ßÏÔʾ%s";
-
-// This may be locale-dependent. It specifies the week-end days, as an array
-// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "¹Ø±Õ";
-Calendar._TT["TODAY"] = "½ñÈÕ";
-Calendar._TT["TIME_PART"] = "(Shift-)µã»÷Êó±ê»òÍ϶¯¸Ä±äÖµ";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%A, %b %eÈÕ";
-
-Calendar._TT["WK"] = "ÖÜ";
-Calendar._TT["TIME"] = "ʱ¼ä:";
diff --git a/WebContent/themes/default/jscalendar/lang/cn_utf8.js b/WebContent/themes/default/jscalendar/lang/cn_utf8.js
deleted file mode 100644
index de61b4618d..0000000000
--- a/WebContent/themes/default/jscalendar/lang/cn_utf8.js
+++ /dev/null
@@ -1,123 +0,0 @@
-// ** I18N
-
-// Calendar EN language
-// Author: Mihai Bazon, <mishoo@infoiasi.ro>
-// Encoding: any
-// Translator : Niko <nikoused@gmail.com>
-// Distributed under the same terms as the calendar itself.
-
-// For translators: please use UTF-8 if possible. We strongly believe that
-// Unicode is the answer to a real internationalized world. Also please
-// include your contact information in the header, as can be seen above.
-
-// full day names
-Calendar._DN = new Array
-("\u5468\u65e5",//\u5468\u65e5
- "\u5468\u4e00",//\u5468\u4e00
- "\u5468\u4e8c",//\u5468\u4e8c
- "\u5468\u4e09",//\u5468\u4e09
- "\u5468\u56db",//\u5468\u56db
- "\u5468\u4e94",//\u5468\u4e94
- "\u5468\u516d",//\u5468\u516d
- "\u5468\u65e5");//\u5468\u65e5
-
-// Please note that the following array of short day names (and the same goes
-// for short month names, _SMN) isn't absolutely necessary. We give it here
-// for exemplification on how one can customize the short day names, but if
-// they are simply the first N letters of the full name you can simply say:
-//
-// Calendar._SDN_len = N; // short day name length
-// Calendar._SMN_len = N; // short month name length
-//
-// If N = 3 then this is not needed either since we assume a value of 3 if not
-// present, to be compatible with translation files that were written before
-// this feature.
-
-// short day names
-Calendar._SDN = new Array
-("\u5468\u65e5",
- "\u5468\u4e00",
- "\u5468\u4e8c",
- "\u5468\u4e09",
- "\u5468\u56db",
- "\u5468\u4e94",
- "\u5468\u516d",
- "\u5468\u65e5");
-
-// full month names
-Calendar._MN = new Array
-("\u4e00\u6708",
- "\u4e8c\u6708",
- "\u4e09\u6708",
- "\u56db\u6708",
- "\u4e94\u6708",
- "\u516d\u6708",
- "\u4e03\u6708",
- "\u516b\u6708",
- "\u4e5d\u6708",
- "\u5341\u6708",
- "\u5341\u4e00\u6708",
- "\u5341\u4e8c\u6708");
-
-// short month names
-Calendar._SMN = new Array
-("\u4e00\u6708",
- "\u4e8c\u6708",
- "\u4e09\u6708",
- "\u56db\u6708",
- "\u4e94\u6708",
- "\u516d\u6708",
- "\u4e03\u6708",
- "\u516b\u6708",
- "\u4e5d\u6708",
- "\u5341\u6708",
- "\u5341\u4e00\u6708",
- "\u5341\u4e8c\u6708");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "\u5173\u4e8e";
-
-Calendar._TT["ABOUT"] =
-" DHTML \u65e5\u8d77/\u65f6\u95f4\u9009\u62e9\u63a7\u4ef6\n" +
-"(c) dynarch.com 2002-2005 / Author: Mihai Bazon\n" + // don't translate this this ;-)
-"For latest version visit: \u6700\u65b0\u7248\u672c\u8bf7\u767b\u9646http://www.dynarch.com/projects/calendar/\u5bdf\u770b\n" +
-"\u9075\u5faaGNU LGPL. \u7ec6\u8282\u53c2\u9605 http://gnu.org/licenses/lgpl.html" +
-"\n\n" +
-"\u65e5\u671f\u9009\u62e9:\n" +
-"- \u70b9\u51fb\xab(\xbb)\u6309\u94ae\u9009\u62e9\u4e0a(\u4e0b)\u4e00\u5e74\u5ea6.\n" +
-"- \u70b9\u51fb" + String.fromCharCode(0x2039) + "(" + String.fromCharCode(0x203a) + ")\u6309\u94ae\u9009\u62e9\u4e0a(\u4e0b)\u4e2a\u6708\u4efd.\n" +
-"- \u957f\u65f6\u95f4\u6309\u7740\u6309\u94ae\u5c06\u51fa\u73b0\u66f4\u591a\u9009\u62e9\u9879.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"\u65f6\u95f4\u9009\u62e9:\n" +
-"-\u5728\u65f6\u95f4\u90e8\u5206(\u5206\u6216\u8005\u79d2)\u4e0a\u5355\u51fb\u9f20\u6807\u5de6\u952e\u6765\u589e\u52a0\u5f53\u524d\u65f6\u95f4\u90e8\u5206(\u5206\u6216\u8005\u79d2)\n" +
-"-\u5728\u65f6\u95f4\u90e8\u5206(\u5206\u6216\u8005\u79d2)\u4e0a\u6309\u4f4fShift\u952e\u540e\u5355\u51fb\u9f20\u6807\u5de6\u952e\u6765\u51cf\u5c11\u5f53\u524d\u65f6\u95f4\u90e8\u5206(\u5206\u6216\u8005\u79d2).";
-
-Calendar._TT["PREV_YEAR"] = "\u4e0a\u4e00\u5e74";
-Calendar._TT["PREV_MONTH"] = "\u4e0a\u4e2a\u6708";
-Calendar._TT["GO_TODAY"] = "\u5230\u4eca\u5929";
-Calendar._TT["NEXT_MONTH"] = "\u4e0b\u4e2a\u6708";
-Calendar._TT["NEXT_YEAR"] = "\u4e0b\u4e00\u5e74";
-Calendar._TT["SEL_DATE"] = "\u9009\u62e9\u65e5\u671f";
-Calendar._TT["DRAG_TO_MOVE"] = "\u62d6\u52a8";
-Calendar._TT["PART_TODAY"] = " (\u4eca\u5929)";
-
-// the following is to inform that "%s" is to be the first day of week
-// %s will be replaced with the day name.
-Calendar._TT["DAY_FIRST"] = "%s\u4e3a\u8fd9\u5468\u7684\u7b2c\u4e00\u5929";
-
-// This may be locale-dependent. It specifies the week-end days, as an array
-// of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1
-// means Monday, etc.
-Calendar._TT["WEEKEND"] = "0,6";
-
-Calendar._TT["CLOSE"] = "\u5173\u95ed";
-Calendar._TT["TODAY"] = "\u4eca\u5929";
-Calendar._TT["TIME_PART"] = "(\u6309\u7740Shift\u952e)\u5355\u51fb\u6216\u62d6\u52a8\u6539\u53d8\u503c";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e\u65e5";
-
-Calendar._TT["WK"] = "\u5468";
-Calendar._TT["TIME"] = "\u65f6\u95f4:";
diff --git a/WebContent/themes/default/theme.css b/WebContent/themes/default/theme.css
deleted file mode 100644
index fb9b96ac0d..0000000000
--- a/WebContent/themes/default/theme.css
+++ /dev/null
@@ -1,425 +0,0 @@
-/* Debug styles */
-.uidl {
- position: absolute;
- z-index: 1001;
- text-indent: 18px;
- background-color: white;
- background-image: url('img/debug.gif');
- background-repeat: no-repeat;
- background-position: 1 1;
- font-weight: normal;
- white-space: nowrap;
-}
-.minimized {
- overflow: hidden;
- width: 18px;
- height: 18px;
- z-index: 1000;
-}
-
-/* General styles */
-
-* {
- background-color: ThreeDFace;
- font-family: sans-serif;
- /* font-size: 10pt; */
- font-weight: normal;
-}
-.abs {
- position: absolute;
-}
-
-.inline {
- display: inline;
-}
-
-.hidden, .hide {
- display: none;
-}
-
-.border {
- background-color: ButtonFace;
- border-width: 1px;
- border-style: solid;
- border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
-}
-
-.outset {
- border: 1px solid ButtonFace;
-}
-/* DISABLED */
-.disabled {
- color: GrayText;
- opacity: 0.5;
- filter: alpha(opacity=50);
-}
-.disabled .caption {
- color: GrayText;
-}
-.disabled .border .caption {
- color: GrayText;
-}
-INPUT, SELECT, SELECT OPTION, TEXTAREA {
- background-color: ThreeDHighlight;
-}
-.disabled INPUT, .disabled SELECT, .disabled SELECT OPTION {
- background-color: ThreeDFace;
-}
-
-/* CAPTION */
-.caption {
- color: ButtonText;
-}
-.caption .icon {
- width: 1em;
- height: 1em;
- vertical-align: middle;
- padding-right: 5px;
-}
-
-.clickable {
- cursor: hand;
- cursor: pointer;
-}
-
-.over {
- border: 1px solid ThreeDDarkShadow;
-}
-.over .caption {
- color: ActiveCaption;
-}
-
-.selected {
- font-weight: bold;
- background: #aaaaaa;
-}
-
-.content {
- padding: 7px;
-}
-
-/* TOOLTIP */
-IMG.overlay {
- position: absolute;
- z-index: 5;
-}
-.popup {
- position: absolute;
- z-index: 99999;
- overflow: hidden;
-}
-.popup.hide {
- display: none;
-}
-.popup .border {
- border: 1px solid InfoText;
- background-color: InfoBackground;
-}
-.popup .caption {
- text-align: left;
-}
-.popup * {
- /*white-space: nowrap;*/ /* Really, there's no point doing it like this. If we need nowrap, we define it in the content that needs it, not on all. */
- color: InfoText;
- background-color: InfoBackground;
-}
-.popup .error {
- font-size: 0.9em;
- overflow: auto;
- border: solid 1px red;
-}
-
-/* COMPONENTS */
-
-/* Button */
-.button INPUT {
- background-color: ThreeDFace;
-}
-.button .border {
- height: 1.2em;
- overflow: hidden;
- padding: 0.2em 0.4em 0.2em 0.4em;
- text-align: center;
-}
-
-.button-link .caption {
- color: ActiveCaption;
- font-style: italic;
-}
-.button-link .over {
- border: none;
-}
-.button-link .over .caption {
- text-decoration: underline;
-}
-
-/* DateField */
-.datefield .btn {
- background-color: ButtonFace;
- margin-right: 3px;
-}
-
-/* Link */
-.link .caption {
- color: ActiveCaption;
- font-style: italic;
-}
-.link .over {
- border: none;
-}
-.link .over .caption {
- text-decoration: underline;
-}
-.link .description {
- font-size: 0.8em;
- text-indent: 1.5em;
-}
-
-/* Panel */
-.panelcaption {
- padding: 0.2em 0.4em 0.2em 0.4em;
-}
-.panel .panelcaption {
- border-bottom: 2px groove ThreeDHighlight;
-}
-.panel-strong .panelcaption {
- border-bottom: 2px groove ButtonShadow;
- color: CaptionText;
- background-color: ActiveCaption;
-}
-.panel .panelborder, .panel-strong .panelborder, .panel-light .panelborder {
- border: 2px groove ThreeDHighlight;
-}
-
-/* Select */
-.select-optiongroup INPUT.option {
- background-color: ThreeDFace;
-}
-.select-optiongroup DIV.newitem {
- margin-left: 1.2em;
- margin-top: 0.3em;
-}
-.select-twincol {
- width: 350px;
-}
-.select-twincol div.buttons {
- text-align:center;
-}
-.select-twincol div.buttons button {
- text-align:center;
- widht:35px;
-}
-.select-twincol select.unselected {
- float:left;
- width: 150px;
- /* force white, may be grey if empty initially */
- background-color: white;
-}
-.select-twincol select.selected {
- float:right;
- width: 150px;
- /* force white, may be grey if empty initially */
- background-color: white;
-}
-
-/* Table */
-
-.table .tablestatus {
- position: absolute;
- padding: 0.2em 0.4em 0.1em 0.4em;
- border: 1px solid InfoText;
- background-color: InfoBackground;
-}
-
-.table .colsel {
- margin: 0.25em ;
- width: 0.4em;
- height: 0.4em;
- border: 1px solid ButtonText;
- border-top: 2px solid ButtonText;
- cursor: hand;
- cursor: pointer;
-}
-.table .popup {
- position: absolute;
-
-}
-.table {
- border: 1px solid;
- border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
-}
-.table .cout, .table .cin {
- background-color: Window;
-}
-.table .tablecaption {
- border: 1px solid;
- border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
- padding: 0.0em 0.4em 0.1em 0.4em;
-}
-
-.table .hout {
- height: 1em;
- overflow: hidden;
- padding-bottom: 0.2em;
- border-bottom: 1px solid ButtonShadow;
-}
-.table .hin .hah {
- border-right: 1px solid ButtonShadow;
- padding-left: 0.2em;
-}
-.table .hin .hah IMG, .table .hin .tableheader IMG {
- height: 1em;
- width: 2px;
- cursor:w-resize;
-}
-.table .hin .tableheader IMG.sort {
- Xposition: absolute;
- Xmargin-top: 0.5em;
- Xmargin-left: 2px;
- width: 9px;
- height: 5px;
- background-repeat: no-repeat;
-}
-.table .hin .tableheader IMG.sortasc {
- background-image: url('img/table/asc.gif');
-}
-.table .hin .tableheader IMG.sortdesc {
- background-image: url('img/table/desc.gif');
-}
-.table .hin .tableheader {
- border-left: 1px solid ButtonHighlight;
- border-right: 1px solid ButtonShadow;
- padding-left: 0.2em;
-}
-.table TABLE {
- border-collapse: collapse;
- empty-cells: show;
-}
-.table .cin .tableheader {
- padding-left: 0.2em;
-}
-.table .cin .tablecell {
- padding-left: 0.2em;
-}
-
-.table .selected TD DIV {
- background-color: Highlight;
- color: HighlightText;
-}
-.table .selected TD {
- background-color: Highlight;
- color: HighlightText;
- border-left: 1px solid Highlight;
-}
-.table .even TD DIV {
- border-left: 1px solid Window;
- background-color: Window;
-}
-.table .odd TD DIV {
- border-left: 1px solid ButtonFace;
- background-color: ButtonFace;
-}
-
-
-
-
-/* TabSheet */
-.tabsheet .tabs {
- margin-top: 0.5em;
-}
-.tabsheet .tabs .tab .caption, .tabsheet .tabs .tab-on .caption {
- margin-left: 1px;
- margin-right: 1px;
- padding: 0.2em 0.4em 0.1em 0.4em;
-}
-.tabsheet .tabs .tab .border {
- border-bottom: 1px solid ThreeDHighlight;
-}
-.tabsheet .tabs .tab-on .border {
- border-bottom: 1px solid ThreeDFace;
-}
-.tabsheet .tabs .over {
- border: none;
-}
-.tabsheet .tabs .over .border {
- border-bottom: 1px solid ThreeDFace;
-}
-
-/* TextField */
-.textfield {
- margin-top: 0.05em;
-}
-.textfield .border {
- border: none;
-}
-.textfield INPUT {
- font-size: 1em;
- padding: 0.12em 0.4em 0.12em 0.4em;
-}
-
-/* Tree */
-.tree {
- border: 1px solid;
- border-color: ButtonShadow ButtonHighlight ButtonHighlight ButtonShadow;
-}
-.tree .caption {
- border: 1px solid;
- border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
- padding: 0.0em 0.4em 0.1em 0.4em;
-}
-.tree .content, .tree .content .node, .tree .content .nodes, .tree .content .node IMG {
- background-color: Window;
-}
-.tree .node {
- border: none;
- padding: 0.1em 0.4em 0.2em 0em;
-}
-
-.tree .nodes {
- padding-left: 1em;
-}
-.tree .over {
- text-decoration: underline;
- color: Highlight;
-}
-.tree .content DIV.selected, .tree .content .selected IMG {
- background-color: Highlight;
- color: HighlightText;
- font-weight: normal;
-}
-
-/* ACTIONS */
-
-.actions {
- position: absolute;
- border: 1px solid;
- border-color: ButtonShadow ButtonText ButtonText ButtonShadow;
-}
-.actions .border {
- background-color: ButtonFace;
- border: 1px solid;
- border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight;
-
-}
-.actions .item {
- padding: 0.2em 1em 0.2em 1em;
- color: ButtonText;
- white-space: nowrap;
-}
-.actions .over {
- border: none;
- text-decoration: none;
- color: HighlightText;
- background-color: Highlight;
-}
-.table .actions .over {
- background-color: Highlight;
-}
-.upload-iframe {
- width: 450px;
- height: 30px;
- border: none;
- margin: 0px;
- padding: 0px;
- background: transparent;
-}
diff --git a/WebContent/themes/default/theme.js b/WebContent/themes/default/theme.js
deleted file mode 100644
index a552d994ce..0000000000
--- a/WebContent/themes/default/theme.js
+++ /dev/null
@@ -1,4248 +0,0 @@
-// IE DOM Node support
-if(document.all) {
- Node = new Object();
- Node.ELEMENT_NODE = 1;
- Node.ATTRIBUTE_NODE = 2;
- Node.TEXT_NODE = 3;
- Node.CDATA_SECTION_NODE = 4;
- Node.ENTITY_REFERENCE_NODE = 5;
- Node.ENTITY_NODE = 6;
- Node.PROCESSING_INSTRUCTION_NODE = 7;
- Node.COMMENT_NODE = 8;
- Node.DOCUMENT_NODE = 9;
- Node.DOCUMENT_TYPE_NODE = 10;
- Node.DOCUMENT_FRAGMENT_NODE = 11;
- Node.NOTATION_NODE = 12;
-}
-
-/** Default theme constructor.
- *
- * @param themeRoot The base URL for theme resources.
- * @constructor
- *
- */
-function DefaultTheme(themeRoot) {
- this.themeName = "DefaultTheme";
-
- // Store the the root URL
- this.root = themeRoot;
-}
-
-/** Register all renderers to a ajax client.
- *
- * @param client The ajax client instance.
- */
-DefaultTheme.prototype.registerTo = function(client) {
-
- // This hides all integer, string, etc. variables
- client.registerRenderer(this,"integer",null,function() {});
- client.registerRenderer(this,"string",null,function() {});
- // and special tags
- client.registerRenderer(this,"description",null,function() {});
- client.registerRenderer(this,"error",null,function() {});
- client.registerRenderer(this,"actions",null,function() {});
-
-
- // Register renderer functions
- client.registerRenderer(this,"component",null,this.renderComponent);
- client.registerRenderer(this,"label",null,this.renderLabel);
- client.registerRenderer(this,"data",null,this.renderData);
- client.registerRenderer(this,"pre",null,this.renderData);
- client.registerRenderer(this,"link",null,this.renderLink);
- client.registerRenderer(this,"button",null,this.renderButton);
- client.registerRenderer(this,"textfield",null,this.renderTextField);
- client.registerRenderer(this,"datefield",null,this.renderDateField);
- client.registerRenderer(this,"datefield","calendar",this.renderDateFieldCalendar);
- client.registerRenderer(this,"select",null,this.renderSelect);
- client.registerRenderer(this,"select","optiongroup",this.renderSelectOptionGroup);
- client.registerRenderer(this,"select","twincol",this.renderSelectTwincol);
- client.registerRenderer(this,"upload",null,this.renderUpload);
- client.registerRenderer(this,"embedded",null,this.renderEmbedded);
-
- client.registerRenderer(this,"window",null,this.renderWindow);
- client.registerRenderer(this,"framewindow",null,this.renderFramewindow);
- client.registerRenderer(this,"open",null,this.renderOpen);
-
- client.registerRenderer(this,"panel",null,this.renderPanel);
- client.registerRenderer(this,"orderedlayout",null,this.renderOrderedLayout);
- client.registerRenderer(this,"customlayout",null,this.renderCustomLayout);
- client.registerRenderer(this,"gridlayout",null,this.renderGridLayout);
- client.registerRenderer(this,"tabsheet",null,this.renderTabSheet);
-
- client.registerRenderer(this,"table",null,this.renderScrollTable);
- client.registerRenderer(this,"table","paging",this.renderPagingTable);
- client.registerRenderer(this,"tree",null,this.renderTree);
- client.registerRenderer(this,"tree","coolmenu",this.renderTreeMenu);
- //client.registerRenderer(this,"tree","menu",this.renderTreeMenu);
-};
-
-/*
-#### DOM functions ########################################################
-*/
-
-DefaultTheme.prototype.createElementTo = function (target, tagName, cssClass) {
-
- if (target == null) return null;
-
- // Create the requested element
- var e = target.ownerDocument.createElement(tagName);
-
- // Set CSS class if specified
- if (cssClass) {
- this.setCSSClass(e,cssClass);
- }
-
- // Append to parent
- target.appendChild(e);
-
- return e;
-}
-
-DefaultTheme.prototype.createTextNodeTo = function (target,text) {
-
- // Sanity check
- if (text == null || target == null) return null;
-
- // Create DIV as container
- var tn = target.ownerDocument.createTextNode(text);
-
- // Append to parent
- target.appendChild(tn);
-
- return tn;
-}
-
-DefaultTheme.prototype.getFirstElement = function(parent, elementName) {
- if (parent && parent.childNodes) {
- for (var i=0;i<parent.childNodes.length;i++) {
- if (parent.childNodes[i].nodeName == elementName) {
- return parent.childNodes[i];
- }
- }
- }
- return null;
-}
-
-DefaultTheme.prototype.getFirstTextNode = function(parent) {
- if (parent == null || parent.childNodes == null) return null;
-
- var cns = parent.childNodes;
- var len = cns.length;
- for (var i=0; i<len; i++) {
- var child = cns[i];
- if (child.nodeType == Node.TEXT_NODE) {
- return child;
- }
- }
-
-}
-
-/**
- * Removes all children of an element an element.
- *
- * @param element Remove children of this element.
- *
- * @return the element with children removed
- */
-DefaultTheme.prototype.removeAllChildNodes = function(element) {
- //TODO event listener leakage prevention, verify
- // MOVED to client
- //this.removeAllEventListeners(element);
- while (element.childNodes&&element.childNodes.length > 0) {
- element.removeChild(element.childNodes[0]);
- }
- return element;
-}
-
-DefaultTheme.prototype.getElementContent = function(parent, elementName) {
- if (elementName != null) {
- // Find element and return its content
- var n = this.getFirstElement(parent,elementName);
- if (n == null) return null;
- var tn = this.getFirstTextNode(n);
- if (tn != null && tn.data != null) {
- return tn.data;
- }
- return "";
- } else {
- // If no element name is given return
- // content of parent
- var tn = this.getFirstTextNode(parent);
- if (tn != null && tn.data != null) {
- return tn.data;
- }
- return "";
- }
-}
-
-DefaultTheme.prototype.getChildElements = function(parent, tagName) {
-
- if (parent == null || parent.childNodes == null || tagName == null) return null;
-
- // Iterate all child nodes
- var res = new Array();
- for (var i=0; i < parent.childNodes.length; i++) {
- var n = parent.childNodes[i];
- if (n.nodeType == Node.ELEMENT_NODE && n.nodeName == tagName) {
- res[res.length++] = n;
- }
- }
- return res;
-}
-DefaultTheme.prototype.nodeToString = function(node, deep) {
-
- if (node == null) {
- return "";
- } else if (node.nodeType == Node.TEXT_NODE) {
- // Render text nodes.
- if (node.data) {
- return node.data;
- } else {
- return "";
- }
-
- } else if (node.nodeType == Node.ELEMENT_NODE) {
-
- // Renderer element nodes.
- var txt = "<" + node.nodeName;
- if (node.attributes.length > 0)
- for(var i=0; i<node.attributes.length; i++) {
- var a = node.attributes.item(i);
- txt += " " + a.name + "=\"" + a.value+"\"";
- }
- if (deep && node.childNodes != null && node.childNodes.length >0) {
- txt += ">";
- for (var i=0; i<node.childNodes.length; i++) {
- var c = node.childNodes.item(i);
- txt += this.nodeToString(c,deep);
- }
- txt += "</"+node.nodeName+">";
- } else {
- txt += "/>";
- }
- return txt;
- }
-
- return ""+node.nodeName + "-node";
-}
-DefaultTheme.prototype.createInputElementTo = function(target,type,className,focusid) {
-
- var input = null;
- if (document.all && !window.opera) {
- // IE only
- input = this.createElementTo(target,"<input type='"+type+"'>");
- } else {
- // Other browsers
- input = this.createElementTo(target,"input");
- input.type = type;
- }
-
- // Assign class
- if (className != null && className != "") {
- this.setCSSClass(input,className);
- }
-
- if (focusid) input.focusid = focusid;
-
- return input;
-}
-
-
-
-/*
-#### CSS functions ######################################################
-*/
-
-DefaultTheme.prototype.addCSSClass = function(element, className) {
- if (element == null) return element;
- if (element.className) {
- var classArray = element.className.split(" ");
- for (var i in classArray) {
- if (classArray[i]==className) {
- // allready in className
- return element;
- }
- }
- }
- element.className = (element.className?element.className:"") + " " + className;
- return element;
-}
-
-DefaultTheme.prototype.removeCSSClass = function(element, className) {
- if (element == null) return element;
- var classArray = new Array();
- if (element.className) {
- classArray = element.className.split(" ");
- }
- var newArray = new Array();
- for (var i in classArray) {
- if (classArray[i]!=className) {
- newArray[newArray.length] = classArray[i];
- }
- }
- element.className = newArray.join(" ");
- return element;
-}
-DefaultTheme.prototype.toggleCSSClass = function(element, className) {
- if (element == null) return element;
-
- var classArray = new Array();
- if (element.className) {
- classArray = element.className.split(" ");
- }
- for (var i=0;i<classArray.length;i++) {
- if (classArray[i]==className) {
- this.removeCSSClass(element, className);
- return;
- }
- }
- this.addCSSClass(element, className);
-
- return element;
-}
-DefaultTheme.prototype.setCSSClass = function(element, className) {
- if (element == null) return element;
- element.className = className;
- return element;
-}
-DefaultTheme.prototype.setCSSDefaultClass = function(renderer,element,uidl) {
- if (element == null) return element;
- var cn = this.styleToCSSClass(renderer.tag,uidl.getAttribute("style"));
- element.className = cn;
- return element;
-}
-DefaultTheme.prototype.styleToCSSClass = function(prefix,style) {
-
- var s = "";
- if (prefix != null) {
- s = prefix;
- }
- if (style != null) {
- if (s.length > 0) {
- s = s + "-";
- }
- s = s + style;
- }
- return s
-}
-
-/*
-#### Generic JS helpers ##################################################
-*/
-
-/**
- * Check if integer list contains a number.
- *
- * @param list Comma separated list of integers
- * @param number Number to be tested
- *
- * @return true iff the number can be found in the list
- */
-
-DefaultTheme.prototype.listContainsInt = function(list,number) {
- if (!list) return false;
- a = list.split(",");
-
- for (i=0;i<a.length;i++) {
- if (a[i] == number) return true;
- }
-
- return false;
-}
-/** Add number to integer list, if it does not exit before.
- *
- *
- * @param list Comma separated list of integers
- * @param number Number to be added
- *
- * @return new list
- */
-
-DefaultTheme.prototype.listAddInt = function(list,number) {
-
- if (this.listContainsInt(list,number))
- return list;
-
- if (list == "") return number;
- else return list + "," + number;
-}
-/** Remove number from integer list.
- *
- * @param list Comma separated list of integers
- * @param number Number to be removed
- *
- * @return new list
- */
-DefaultTheme.prototype.listRemoveInt = function(list,number) {
- if (!list) return "";
- retval = "";
- a = list.split(',');
-
- for (i=0;i<a.length;i++) {
- if (a[i] != number) {
- if (i == 0) retval += a[i];
- else retval += "," + a[i];
- }
- }
- return retval;
-}
-/*
-#### Variable helpers #############################################
-*/
-DefaultTheme.prototype.getVariableElement = function(uidl,type,name) {
-
- if (uidl == null) return;
-
- var nodes = this.getChildElements(uidl,type);
- if (nodes != null) {
- for (var i=0; i < nodes.length; i++) {
- if (nodes[i].getAttribute("name") == name) {
- return nodes[i];
- }
- }
- }
- return null;
-}
-DefaultTheme.prototype.createVariableElementTo = function(target,variableElement) {
- if (!variableElement) {
- return null;
- }
- /* TODO FF kludge try, does not work - how to prevent flashing hiddens?
- var d = this.createElementTo(target,"div");
- d.style.border = "none";
- d.style.background = "none";
- d.style.padding = "0px";
- d.style.margin = "0px;"
- d.style.width = "0px";
- d.style.height = "0px";
- d.style.overflow = "hidden";
- */
- var input = this.createInputElementTo(target,"hidden");
- input.variableId = variableElement.getAttribute("id");
- input.variableName = variableElement.getAttribute("name");
- if (variableElement.nodeName == "array") {
- input.variableId = "array:"+input.variableId;
- input.value = this.arrayToList(variableElement);
- } else if (variableElement.nodeName == "string") {
- var node = this.getFirstTextNode(variableElement);
- input.value = (node?node.data:"");
- } else {
- input.value = variableElement.getAttribute("value");
- }
- return input;
-}
-DefaultTheme.prototype.getVariableElementValue = function(variableElement) {
- if ( variableElement == null) {
- return null;
- }
-
- if (variableElement.nodeName == "array") {
- return this.arrayToList(variableElement);
- } else if (variableElement.nodeName == "string") {
- var node = this.getFirstTextNode(variableElement);
- return (node?node.data:"");
- } else {
- return variableElement.getAttribute("value");
- }
- return null;
-}
-DefaultTheme.prototype.setVariable = function(client, variableNode, newValue, immediate) {
- if (variableNode == null) return;
- variableNode.value = newValue;
- client.changeVariable(variableNode.variableId, newValue, immediate);
-}
-DefaultTheme.prototype.addArrayVariable = function(client, variableNode, newValue, immediate) {
- if (variableNode == null) return;
- variableNode.value = this.listAddInt(variableNode.value,newValue);
- client.changeVariable(variableNode.variableId, variableNode.value, immediate);
-}
-DefaultTheme.prototype.toggleArrayVariable = function(client, variableNode, value, immediate) {
- if (variableNode == null) return;
- if (this.listContainsInt(variableNode.value,value)) {
- variableNode.value = this.listRemoveInt(variableNode.value,value);
- } else {
- variableNode.value = this.listAddInt(variableNode.value,value);
- }
- client.changeVariable(variableNode.variableId, variableNode.value, immediate);
-}
-DefaultTheme.prototype.removeArrayVariable = function(client, variableNode, value, immediate) {
- if (variableNode == null) return;
- variableNode.value = this.listRemoveInt(variableNode.value,value);
- client.changeVariable(variableNode.variableId, variableNode.value, immediate);
-}
-DefaultTheme.prototype.arrayToList = function(arrayVariableElement) {
-
- var list = "";
- if (arrayVariableElement == null || arrayVariableElement.childNodes == null) return list;
-
- var items = arrayVariableElement.getElementsByTagName("ai");
- if (items == null) return list;
-
- for (var i=0; i <items.length;i++) {
- var v = this.getFirstTextNode(items[i]);
- if (v != null && v.data != null) {
- if (list.length >0) list += ",";
- list += v.data;
- }
- }
-
- return list;
-}
-
-
-/*
-#### Generic component functions #############################################
-*/
-DefaultTheme.prototype.renderChildNodes = function(renderer, uidl, to) {
- for (var i=0; i<uidl.childNodes.length; i++) {
- var child = uidl.childNodes.item(i);
- if (child.nodeType == Node.ELEMENT_NODE) {
- renderer.client.renderUIDL(child,to);
- } else if (child.nodeType == Node.TEXT_NODE) {
- to.appendChild(to.ownerDocument.createTextNode(child.data));
- }
- }
-}
-DefaultTheme.prototype.applyWidthAndHeight = function(uidl,target) {
- if (target == null || uidl == null) return;
-
- // Width
- var widthEl = this.getVariableElement(uidl,"integer","width");
- if (widthEl) {
- var w = widthEl.getAttribute("value");
- if (w > 0) {
- target.style.width = ""+w+"px";
- }
- }
-
- // Height
- var heightEl = this.getVariableElement(uidl,"integer","height");
- if (heightEl) {
- var h = heightEl.getAttribute("value");
- if (h > 0) {
- target.style.height = ""+h+"px";
- }
- }
-}
-DefaultTheme.prototype.createPaintableElement = function (renderer, uidl, target,layoutInfo) {
-
- // And create DIV as container
- var div = null;
- var pid = uidl.getAttribute("id");
- var li = layoutInfo||target.layoutInfo;
- if (pid != null && target.getAttribute("id") == pid){
- div = target;
- } else {
- //TODO: Remove this if the statement below works.
- // div = renderer.theme.createElementTo(target,"div");
- div = renderer.client.createPaintableElement(uidl,target);
- }
- div.layoutInfo = li;
-
- // Remove possible previous content from target
- /* TODO remove when tested
- while (div.firstChild != null) {
- div.removeChild(div.firstChild);
- }
- */
- div.innerHTML = "";
- if (li&&li.captionNode) {
- // caption placed elsewhere (form); see renderDefaultComponentHeader()
- li.captionNode.innerHTML = "";
- }
-
- // Assign CSS class
- this.setCSSDefaultClass(renderer,div,uidl);
- if ("true"==uidl.getAttribute("disabled")) {
- this.addCSSClass(div,"disabled");
- }
- if (this.getFirstElement(uidl,"error")) {
- this.addCSSClass(div,"error");
- }
-
- return div;
-}
-
-DefaultTheme.prototype.renderDefaultComponentHeader = function(renderer, uidl, target, layoutInfo) {
- var theme = renderer.theme;
- var doc = renderer.doc;
- var client = renderer.client;
-
- var captionText = uidl.getAttribute("caption");
- var error = theme.getFirstElement(uidl,"error");
- var description = theme.getFirstElement(uidl,"description");
- var icon = uidl.getAttribute("icon");
-
- if (!captionText && !error && !description && !icon) {
- return null;
- }
-
- if (!layoutInfo) {
- layoutInfo = target.layoutInfo;
- }
-
- // If layout info contains caption node, use it as caption position
- if (layoutInfo != null && layoutInfo.captionNode) {
- target = layoutInfo.captionNode;
- target.innerHTML = "";
- }
-
- // Caption container
- var caption = this.createElementTo(target,"div");
- // Create debug-mode UIDL div
- if (renderer.client.debugEnabled) {
- var uidlDebug = this.createElementTo(caption,"div","uidl minimized");
- renderer.client.renderHTML(uidl,uidlDebug);
- var t = this;
- client.addEventListener(uidlDebug,"click", function (e) {
- if (uidlDebug.className.indexOf("minimized") >=0) {
- t.removeCSSClass(uidlDebug,"minimized");
- } else {
- t.addCSSClass(uidlDebug,"minimized");
- }
- }
- );
- }
- if (captionText||error||description||icon) {
- this.addCSSClass(caption,"caption");
- } else {
- return caption;
- }
- if (description || error) {
- this.addCSSClass(caption,"clickable");
- }
-
- var iconUrl = uidl.getAttribute("icon");
-
- var errorIcon;
- if (error) {
- var icon = this.createElementTo(caption,"img","icon");
- icon.src = theme.root+"img/icon/error-mini.gif";
- if (iconUrl) {
- /* overlay icon */
- this.setCSSClass(icon,"overlay");
- } else {
- this.setCSSClass(icon,"error");
- }
- errorIcon = icon;
- } else if (description) {
- var icon = this.createElementTo(caption,"img","icon");
- icon.src = theme.root+"img/icon/info-mini.gif";
- if (iconUrl) {
- /* overlay icon */
- this.setCSSClass(icon,"overlay");
- } else {
- this.setCSSClass(icon,"error");
- }
- }
-
- var popupTarget = (captionText)?caption:target;
- if (error||description) {
- if(description) popupTarget._descriptionHTML = client.getXMLtext(description);
- if(error) popupTarget._errorHTML = client.getXMLtext(error);
- this.addDescriptionAndErrorPopupListener(theme, client, popupTarget, errorIcon);
- }
-
- if (iconUrl) {
- if (iconUrl.indexOf("theme://") == 0) {
- iconUrl = (theme.iconRoot != null ? theme.iconRoot : theme.root)
- + iconUrl.substring(8);
- }
- var icon = this.createElementTo(caption,"img","icon");
- icon.src = iconUrl;
- }
- // Caption text
- this.createTextNodeTo(caption,captionText);
-
- return caption;
-}
-
-DefaultTheme.prototype.renderActionPopup = function(renderer, uidl, to, actions, actionVar, id, popupEvent) {
- // Shortcuts
- var theme = renderer.theme;
- var client = renderer.client;
- var evtName = popupEvent||"rightclick";
-
- var ak = uidl.getElementsByTagName("ak");
- var len = ak.length;
- if (len < 1) return;
-
- var popup = theme.createElementTo((to.nodeName=="TR"?to.firstChild:to),"div", "actions outset hide");
- theme.addHidePopupListener(theme,client,popup,"click");
- theme.addStopListener(theme,client,popup,"click");
-
- var inner = theme.createElementTo(popup,"div", "border");
- var item = theme.createElementTo(inner,"div", "item pad clickable");
-
- for (var k=0;k<len;k++) {
- var key = theme.getFirstTextNode(ak[k]).data;
- var item = theme.createElementTo(inner,"div", "item pad clickable");
- theme.createTextNodeTo(item,actions[key]);
- theme.addAddClassListener(theme,client,item,"mouseover","over");
- theme.addRemoveClassListener(theme,client,item,"mouseout","over");
- theme.addSetVarListener(theme,client,item,"click",actionVar,id+","+key,true);
- theme.addHidePopupListener(theme,client,item,"click");
- theme.addStopListener(theme,client,item,"click");
- }
- theme.addStopListener(theme,client,to,"contextmenu");
- //theme.addStopListener(theme,client,to,evtName);
- theme.addTogglePopupListener(theme,client,to,evtName,popup);
-}
-
-
-/** Show popup at specified position.
- * Hides previous popup.
- *
- * @param popup The element to popup
- * @param x horizontal popup position
- * @param y vertical popup position
- * @param delay delay before popping up
- * @param defWidth (optional) default width for the popup
- *
- */
-DefaultTheme.prototype.showPopup = function(client,popup, x, y, delay, defWidth) {
- if (this.popupTimeout) {
- clearTimeout(this.popupTimeout);
- delete this.popupTimeout;
- }
- if (!popup) {
- var popup = this.popup;
- this.popupShowing = true;
- var scrollTop = (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
- var scrollLeft = (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
- var docWidth = document.body.clientWidth;
- var docHeight = document.body.clientHeight;
- this.removeCSSClass(popup,"hide");
-
- var ua = navigator.userAgent.toLowerCase();
- if (ua.indexOf("msie")>=0) {
- var sels = popup.ownerDocument.getElementsByTagName("select");
- if (sels) {
- var len = sels.length;
- var hidden = new Array();
- for (var i=0;i<len;i++) {
- var sel = sels[i];
- if (sel.style&&sel.style.display!="none") {
- sel.style.visibility = "hidden";
- hidden[hidden.length] = sel;
- }
- }
- this.popupSelectsHidden = hidden;
- }
- }
- /* TODO fix popup width & position */
- return;
- }
- if (!delay) var delay = 0;
- if (this.popup && this.popup != popup) {
- this.hidePopup();
- }
- this.popup = popup;
-/* THIS CODE IS NOT NEEDED IF WE CAN POSITION THE POPUP BEFOREHAND
-
- popup.style.left = 0+"px";
- popup.style.top = 0+"px";
- this.removeCSSClass(popup,"hide");
-
- var p = client.getElementPosition(popup);
- this.addCSSClass(popup,"hide");
- // TODOO!!! width not working properly
- if (p.w > document.body.clientWidth/2) {
- popup.style.width = Math.round(document.body.clientWidth/2)+"px";
- p.w = Math.round(document.body.clientWidth/2);
- }
-
- var posX = x||p.x;
- var posY = y||p.y;
- if (posX+p.w>document.body.clientWidth) {
- posX = document.body.clientWidth-p.w;
- if (posX<0) posX=0;
- }
- if (posY+p.h>document.body.clientHeight) {
- posY = document.body.clientHeight-p.h;
- if (posY < 0) posY =0;
- }
-
- if (p.h > document.body.clientHeight -20) {
- popup.style.height = document.body.clientHeight -20 + "px";
- popup.style.overflow = "auto";
- posX -= 20;
- }
-
-
- popup.style.left = posX+"px";
- popup.style.top = posY+"px";
-*/
- if (delay > 0) {
- with ({theme:this}) {
- theme.popupTimeout = setTimeout(function(){
- theme.showPopup(client);
- }, delay);
- }
- } else {
- this.showPopup(client);
- }
-}
-/** Hides previous popup.
- */
-DefaultTheme.prototype.hidePopup = function() {
- if (this.popupSelectsHidden) {
- var len = this.popupSelectsHidden.length;
- for (var i=0;i<len;i++) {
- var sel = this.popupSelectsHidden[i];
- sel.style.visibility = "visible";
- }
- this.popupSelectsHidden = null;
- }
-
- if (this.popup) {
- this.addCSSClass(this.popup,"hide");
- this.popupShowing = false;
- }
- if (this.popupTimeout) {
- clearTimeout(this.popupTimeout);
- delete this.popupTimeout;
- }
-}
-/** Shows the popup if it's not currently shown,
- * hides the popup otherwise.
- * Hides previous popup.
- *
- * @param popup The element to popup
- * @param x horizontal popup position
- * @param y vertical popup position
- * @param delay delay before popping up
- * @param defWidth (optional) default width for the popup
- *
- */
-DefaultTheme.prototype.togglePopup = function(popup, x, y, delay, defWidth) {
- if (this.popup == popup && this.popupShowing) {
- this.hidePopup();
- } else {
- this.showPopup(client,popup,x,y,delay,defWidth);
- }
-}
-
-
-/*
-#### Generic event handlers ######################################################
-*/
-DefaultTheme.prototype.addAddClassListener = function(theme,client,element,event,className,target,current) {
- client.addEventListener(element,event, function(e) {
- if (current) {
- if (current.length) {
- var length = current.length;
- while (length--) {
- theme.removeCSSClass(current[length],className);
- delete current[length];
- }
- } else {
- for (e in current) {
- theme.removeCSSClass(current[e],className);
- delete current[e];
- }
- }
- }
- theme.addCSSClass((target?target:element),className);
- if (current) {
- current[current.length] = (target?target:element);
- }
- }
- );
-}
-DefaultTheme.prototype.addRemoveClassListener = function(theme,client,element,event,className,target) {
- client.addEventListener(element,event, function(e) {
- theme.removeCSSClass((target?target:element),className);
- }
- );
-}
-DefaultTheme.prototype.addToggleClassListener = function(theme,client,element,event,className,target) {
- client.addEventListener(element,event, function(e) {
- theme.toggleCSSClass((target?target:element),className);
- }
- );
-}
-DefaultTheme.prototype.addStopListener = function(theme,client,element,event) {
- client.addEventListener(element, event, function(e) {
- var evt = client.getEvent(e);
- evt.stop();
- return false;
- }
- );
-}
-DefaultTheme.prototype.addSetVarListener = function(theme,client,element,event,variable,key,immediate) {
- client.addEventListener(element,event, function(e) {
- var value = "";
- if (typeof(key)=="string") {
- value = key;
- } else if (key.type=="checkbox"||key.type=="radio") {
- value = key.checked;
- } else if (key.type=="select-multiple") {
- var s = new Array();
- for (var i = 0; i < key.options.length; i++) {
- if (key.options[i].selected) {
- s[s.length] = key.options[i].value;
- }
- }
- value = s.join(',');
- } else {
- value = key.value;
- }
- if (typeof(variable) == "string") {
- client.changeVariable(variable,value,immediate);
- } else {
- theme.setVariable(client,variable,value,immediate);
- }
- }
- );
-}
-DefaultTheme.prototype.addRemoveVarListener = function(theme,client,element,event,variable,key,immediate) {
- client.addEventListener(element,event, function(e) {
- theme.removeArrayVariable(client,variable,key,immediate);
- }
- );
-}
-DefaultTheme.prototype.addAddVarListener = function(theme,client,element,event,variable,key,immediate) {
- client.addEventListener(element,event, function(e) {
- theme.addArrayVariable(client,variable,key,immediate);
- }
- );
-}
-DefaultTheme.prototype.addToggleVarListener = function(theme,client,element,event,variable,key,immediate) {
- client.addEventListener(element,event, function(e) {
- theme.toggleArrayVariable(client,variable,key,immediate);
- }
- );
-}
-DefaultTheme.prototype.addExpandNodeListener = function(theme,client,img,event,subnodes,expandVariable,collapseVariable,key,immediate,target) {
- client.addEventListener((target?target:img), event, function(e) {
- if (img.expanded == "true") {
- theme.removeArrayVariable(client,expandVariable,key,false);
- theme.addArrayVariable(client,collapseVariable,key,immediate);
- img.src = theme.root + "img/tree/off.gif";
- img.expanded = "false";
- } else {
- theme.removeArrayVariable(client,collapseVariable,key,false);
- theme.addArrayVariable(client,expandVariable,key,immediate ||
- !img.expanded || !subnodes.childNodes || subnodes.childNodes.length <= 0);
- img.src = theme.root + "img/tree/on.gif";
- img.expanded = "true";
- }
- }
- );
-}
-
-DefaultTheme.prototype.addTogglePopupListener = function(theme,client,element,event,popup,delay,defWidth,popupAt) {
- client.addEventListener(element,(event=="rightclick"?"mouseup":event), function(e) {
- var evt = client.getEvent(e);
- if (event=="rightclick"&&!evt.rightclick) return;
- if(evt.target.nodeName == "INPUT" || evt.target.nodeName == "SELECT") return;
- if (evt.alt) return;
- if (popupAt) {
- var p = client.getElementPosition(popupAt);
- theme.togglePopup(popup,p.x,(p.y+p.h),(delay?delay:0),(defWidth?defWidth:100));
- } else {
- theme.togglePopup(popup,evt.mouseX,evt.mouseY,(delay?delay:0),(defWidth?defWidth:100));
- }
- evt.stop();
- }
- );
-}
-DefaultTheme.prototype.addShowPopupListener = function(theme,client,element,event,popup,delay,defWidth) {
- client.addEventListener(element,(event=="rightclick"?"click":event), function(e) {
- var evt = client.getEvent(e);
- if (event=="rightclick"&&!evt.rightclick) return;
-
- theme.showPopup(client,popup,evt.mouseX,evt.mouseY,(delay?delay:0),(defWidth?defWidth:100));
- evt.stop();
- }
- );
-}
-// TODO dontstop -> stop in all listeners
-DefaultTheme.prototype.addHidePopupListener = function(theme,client,element,event,dontstop) {
- client.addEventListener(element,(event=="rightclick"?"click":event), function(e) {
- var evt = client.getEvent(e);
- if (evt.alt) return;
- if (event=="rightclick"&&!evt.rightclick) return;
- theme.hidePopup();
- if (!dontstop) {
- evt.stop();
- }
- }
- );
-}
-
-/**
-* Adds a hidden button with a tabindex; adds .over to hoverTarget when focused
-*/
-DefaultTheme.prototype.addTabtoHandlers = function(client,theme,target,hoverTarget,tabindex,defaultButton) {
-
- var d = this.createElementTo(target,"div");
- d.style.border = "none";
- d.style.background = "none";
- d.style.padding = "0px";
- d.style.margin = "0px";
- d.style.width = "0px";
- d.style.height = "0px";
- d.style.overflow = "hidden";
-
- var b = this.createInputElementTo(d,(defaultButton?"submit":"button"));
-
- if (tabindex) b.tabIndex = tabindex;
-
- client.addEventListener(b,"focus", function() {
- theme.addCSSClass(hoverTarget,"over");
- });
- client.addEventListener(b,"blur", function() {
- theme.removeCSSClass(hoverTarget,"over");
- });
-}
-
-/*
-#### Component renderers ######################################################
-*/
-DefaultTheme.prototype.renderComponent = function(renderer,uidl,target,layoutInfo) {
-
- // Create containing element
- var div = renderer.theme.createPaintableElement(renderer,uidl,target,layoutInfo);
- if (uidl.getAttribute("invisible")) return; // Don't render content if invisible
-
- // Render default header
- renderer.theme.renderDefaultComponentHeader(renderer,uidl,div,layoutInfo);
-
- // Render children to div
- renderer.theme.renderChildNodes(renderer, uidl, div);
-}
-
-
-DefaultTheme.prototype.renderWindow = function(renderer,uidl,target,layoutInfo) {
- var div = renderer.theme.createPaintableElement(renderer,uidl,target,layoutInfo);
- if (uidl.getAttribute("invisible")) return; // Don't render content if invisible
-
- var theme = renderer.theme;
-
- theme.addHidePopupListener(theme,renderer.client,div,"click",true);
- // Render children to div
- theme.renderChildNodes(renderer, uidl, div);
-
- // Apply width and height
- theme.applyWidthAndHeight(uidl,div);
-
- // Focusing
- var focused = theme.getVariableElement(uidl,"string","focused");
- var focusid = theme.getVariableElementValue(focused);
- if (focusid) {
- var found = false;
- var els = div.getElementsByTagName("input");
- var len = (els?els.length:0);
- for (var i=0;i<len;i++) {
- var el = els[i];
- if (focusid == el["focusid"]) {
- el.focus();
- found = true;
- break;
- }
- }
- if (!found) {
- els = div.getElementsByTagName("select");
- var len = (els?els.length:0);
- for (var i=0;i<len;i++) {
- var el = els[i];
- if (focusid == el["focusid"]) {
- el.focus();
- found = true;
- break;
- }
- }
- }
- if (!found) {
- els = div.getElementsByTagName("textarea");
- var len = (els?els.length:0);
- for (var i=0;i<len;i++) {
- var el = els[i];
- if (focusid == el["focusid"]) {
- el.focus();
- found = true;
- break;
- }
- }
- }
- }
-}
-
-DefaultTheme.prototype.renderOpen = function(renderer,uidl,target,layoutInfo) {
- var theme = renderer.theme;
-
- var src = uidl.getAttribute("src");
- var name = uidl.getAttribute("name");
-
- if (name) {
- window.open(src,name);
- } else {
- var div = theme.createPaintableElement(renderer,uidl,target,layoutInfo);
- div.innerHTML = "<IFRAME name=\""+name+"\" id=\""+name+"\" width=100% height=100% style=\"border:none;margin:0px;padding:0px;background:none;\" src=\""+src+"\"></IFRAME>";
- }
-}
-
-DefaultTheme.prototype.renderFramewindow = function(renderer,uidl,target,layoutInfo) {
- var theme = renderer.theme;
- var client = renderer.client;
-
- // TODO: Should we unregister all previous child windows?
-
- // We just reinitialize the window
- var win = target.ownerDocument.ownerWindow;
- client.initializeNewWindow(win,uidl,theme);
-}
-
-DefaultTheme.prototype.renderCustomLayout = function(renderer,uidl,target,layoutInfo) {
- // Shortcuts
- var theme = renderer.theme;
-
- // Get style
- var style = uidl.getAttribute("style");
- if (style == null) return null;
-
- // Load the layout
- var url = theme.root + style;
- var text = renderer.client.loadDocument(url,false);
- if (text == null) {
- client.debug("CustomLayout " + style + " NOT FOUND @ "+ url);
- return null;
- }
-
- // Create containing element
- var main = renderer.theme.createPaintableElement(renderer,uidl,target,layoutInfo);
- if (uidl.getAttribute("invisible")) return; // Don't render content if invisible
-
- var locations = new Object();
- var unused = new Object();
- var cN = uidl.childNodes;
- var len = cN.length;
- for (var j=0; j < len; j++) {
- var c = cN.item(j);
- if (c.nodeType == Node.ELEMENT_NODE
- && c.nodeName == "location"
- && c.getAttribute("name")) {
-
- locations[c.getAttribute("name")] = c;
- unused[c.getAttribute("name")] = c;
- }
- }
-
-
- var n = theme.createElementTo(main, "div");
- n.setAttribute("id",uidl.getAttribute("id"));
- n.innerHTML=text;
- var divs = n.getElementsByTagName("div");
- for (var i=0; i<divs.length; i++) {
- var div = divs.item(i);
- var name = div.getAttribute("location");
- if (name != null) {
- var c = locations[name];
- if (c && c.getAttribute("name") == name) {
- delete unused[name];
- for (var k=0; k<c.childNodes.length; k++) {
- var cc = c.childNodes.item(k);
- if (cc.nodeType == Node.ELEMENT_NODE) {
- var parent = div.parentNode;
- // TODO
- if (parent != null) {
- theme.removeAllChildNodes(div);
- var newNode = renderer.client.renderUIDL(cc,div);
- }
- }
- }
- } else {
- client.warn("Location " + name + " NOT USED in CustomLayout " + style);
- }
- }
- }
- if (unused.length>0) {
- for (var k in usedLocations) {
- client.error("Location " + k + " NOT FOUND in CustomLayout " + style);
- }
- }
-
-}
-
-DefaultTheme.prototype.renderOrderedLayout = function(renderer,uidl,target,layoutInfo) {
- // Shortcuts
- var theme = renderer.theme;
-
- // Create containing element
- var div = renderer.theme.createPaintableElement(renderer,uidl,target,layoutInfo);
- if (uidl.getAttribute("invisible")) return; // Don't render content if invisible
-
- // Render all children to table
- var vertical = uidl.getAttribute("orientation") != "horizontal";
- var table = null;
- var tr = null;
- var td = null;
- var style = uidl.getAttribute("style");
- var form = style == "form";
-
- for (var i=0; i<uidl.childNodes.length; i++) {
- var childUIDL = uidl.childNodes.item(i);
- td = null;
- if (childUIDL.nodeType == Node.ELEMENT_NODE) {
-
- // Ensure TABLE and TR
- if (tr == null || vertical) {
- if (table == null) {
- table = renderer.theme.createElementTo(div,"table","orderedlayout");
- //table.width="100%";
- renderer.theme.addCSSClass(table,"layout");
- table = renderer.theme.createElementTo(table,"tbody","layout");
- }
- tr = renderer.theme.createElementTo(table,"tr","layout");
- }
-
- // Create extra TD for form style captions
- var layoutInfo = null;
- if (form) {
- layoutInfo = new Object()
- td = renderer.theme.createElementTo(tr,"td","layout");
- layoutInfo.captionNode = td;
- }
-
- // Force new TD for each child rendered
- td = renderer.theme.createElementTo(tr,"td","layout");
-
- // Render the component to TD
- renderer.client.renderUIDL(childUIDL,td, null, layoutInfo);
-
- }
- }
-}
-
-
-DefaultTheme.prototype.renderGridLayout = function(renderer,uidl,target,layoutInfo) {
- // NOTE TODO indenting might be off
- // Shortcuts
- var theme = renderer.theme;
-
- var h = uidl.getAttribute("h");
- var w = uidl.getAttribute("w");
- // Create component element
- var div = theme.createPaintableElement(renderer,uidl,target,layoutInfo);
- if (uidl.getAttribute("invisible")) return; // Don't render content if invisible
- //var width = (div.offsetWidth||div.clientWidth)-20;
- //var px = Math.floor(width/parseInt(w));
-
- var table = theme.createElementTo(div,"table", "layout");
- table = renderer.theme.createElementTo(table,"tbody","layout");
- var tr = null;
- var td = null;
- for (var y=0; y<uidl.childNodes.length; y++) {
- var rowUidl = uidl.childNodes[y];
-
- if (rowUidl.nodeType == Node.ELEMENT_NODE || rowUidl.nodeName == "gr") {
-
- tr = theme.createElementTo(table,"tr","layout");
- tr.style.verticalAlign = "top";
- td = null;
-
- for (var x=0; x<rowUidl.childNodes.length; x++) {
- var cellUidl = rowUidl.childNodes[x];
-
- // Add colspan and rowspan
- if (cellUidl.nodeType == Node.ELEMENT_NODE && cellUidl.nodeName == "gc") {
- // Create new TD for each child rendered
- td = renderer.theme.createElementTo(tr,"td","layout");
-
- var w = cellUidl.getAttribute('w');
- var h = cellUidl.getAttribute('h');
- //var cont = renderer.theme.createElementTo(td,"div");
- //cont.style.width = ((w?w:1)*px)+"px";
- if (w != null) {
- td.setAttribute('colSpan',w);
- }
- if (h != null) {
- td.setAttribute('rowSpan',h);
- }
- // Render the component(s) to TD
- if (cellUidl.childNodes != null && cellUidl.childNodes.length >0) {
- var len = cellUidl.childNodes.length;
- for (var c=0;c<len;c++) {
- var el = cellUidl.childNodes[c];
- if (el.nodeType == Node.ELEMENT_NODE) {
- renderer.client.renderUIDL(el,td);
- }
- }
- //cont.style.width = "";
- }
- }
- }
- }
- }
-}
-
-DefaultTheme.prototype.renderPanel = function(renderer,uidl,target,layoutInfo) {
- // Supports styles "light" and "none"
-
- // Shortcuts
- var theme = renderer.theme;
-
- var style = uidl.getAttribute("style");
-
- var borderStyle = "panelborder";
-
- // Create component element
- var outer = theme.createPaintableElement(renderer,uidl,target,layoutInfo);
- if (uidl.getAttribute("invisible")) return; // Don't render content if invisible
-
- if ("none"!=style) {
- theme.addCSSClass(div,"outset");
- }
- if ("light"==style) {
- theme.addCSSClass(div,"light");
- //borderStyle += "light";
- }
-
- // Create extra DIV for visual layout
- var div = theme.createElementTo(outer,"div");
- if ("none"!=style) {
- theme.setCSSClass(div,borderStyle);
- }
-
- // Create default header
- var caption = theme.renderDefaultComponentHeader(renderer,uidl,div);
- theme.addCSSClass(caption,"panelcaption");
- if ("light"==style) {
- theme.addCSSClass(caption,"panelcaptionlight");
- }
-
- // Create content DIV
- var content = theme.createElementTo(div,"div");
- theme.setCSSClass(content,"content");
-
- // Render children to div
- theme.renderChildNodes(renderer, uidl, content);
-
- // Apply width and height
- theme.applyWidthAndHeight(uidl,outer);
-
-}
-
-DefaultTheme.prototype.renderTabSheet = function(renderer,uidl,target,layoutInfo) {
-
- var theme = renderer.theme;
-
- // Create container element
- var div = renderer.theme.createPaintableElement(renderer,uidl,target,layoutInfo);
- if (uidl.getAttribute("invisible")) return; // Don't render content if invisible
-
- // Create default header
- var caption = renderer.theme.renderDefaultComponentHeader(renderer,uidl,div,layoutInfo);
-
- // Render tabs
- var tabs = theme.createElementTo(div,"div","tabs");
- var varId = theme.getVariableElement(uidl,"string","selected").getAttribute("id");
-
- var tabNodes = theme.getChildElements(uidl,"tabs");
- if (tabNodes != null && tabNodes.length >0) tabNodes = theme.getChildElements(tabNodes[0],"tab");
- var selectedTabNode = null;
- if (tabNodes != null && tabNodes.length >0) {
- for (var i=0; i< tabNodes.length;i++) {
- var tabNode = tabNodes[i];
- var tab = theme.createElementTo(tabs,"div");
- var key = tabNode.getAttribute("key");
- var iconUrl = tabNode.getAttribute("icon");
- if (iconUrl && iconUrl.indexOf("theme://") == 0) {
- iconUrl = (theme.iconRoot != null ? theme.iconRoot : theme.root)
- + iconUrl.substring(8);
- }
- if (tabNode.getAttribute("selected") == "true") {
- theme.addCSSClass(tab,"tab-on inline");
- selectedTabNode = tabNode;
- } else if (tabNode.getAttribute("disabled") == "true"
- || uidl.getAttribute("disabled") == "true"
- || uidl.getAttribute("readonly") == "true") {
- theme.setCSSClass(tab,"tab disabled inline");
- } else {
- theme.setCSSClass(tab,"tab clickable inline");
- theme.addAddClassListener(theme,client,tab,"mouseover","over",tab);
- theme.addRemoveClassListener(theme,client,tab,"mouseout","over",tab);
- theme.addSetVarListener(theme,client,tab,"click",varId,key,true);
- }
- // Extra div in tab
- tab = theme.createElementTo(tab,"div","caption border pad inline");
-
- // Icon
- if (iconUrl) {
- tab.innerHTML = "<IMG src=\""+iconUrl+"\" class=\"icon\" />" + tabNode.getAttribute("caption");
- } else {
- tab.innerHTML = tabNode.getAttribute("caption");
- }
-
- }
- }
-
- // Render content (IE renderbug need three)
- var content = theme.createElementTo(div,"div","outset");
- content = theme.createElementTo(content,"div","border");
- content = theme.createElementTo(content,"div","content");
- if (selectedTabNode != null) {
- theme.renderChildNodes(renderer,selectedTabNode, content);
- }
-}
-
-DefaultTheme.prototype.renderTree = function(renderer,uidl,target,layoutInfo) {
-
- var theme = renderer.theme;
-
- // Create container element
- var div = renderer.theme.createPaintableElement(renderer,uidl,target,layoutInfo);
- if (uidl.getAttribute("invisible")) return; // Don't render content if invisible
-
- // Get tree attributes
- var style = uidl.getAttribute("style");
- var immediate = ("true" == uidl.getAttribute("immediate"));
- var disabled = ("true" == uidl.getAttribute("disabled"));
- var readonly = ("true" == uidl.getAttribute("readonly"));
- var selectMode = uidl.getAttribute("selectmode");
- var selectable = selectMode == "multi" || selectMode == "single";
- var selected;
- if (selectable) {
- selected = new Object();
- }
- var selectionVariable = theme.createVariableElementTo(div,theme.getVariableElement(uidl,"array","selected"));
- var expandVariable = theme.createVariableElementTo(div,theme.getVariableElement(uidl,"array","expand"));
- var collapseVariable = theme.createVariableElementTo(div,theme.getVariableElement(uidl,"array","collapse"));
-
- var actions = null;
- var actionVar = null;
- var alNode = theme.getFirstElement(uidl,"actions")
- if (alNode) {
- actionVar = theme.createVariableElementTo(div,theme.getVariableElement(alNode,"string","action"));
- actions = new Object();
- var ak = alNode.getElementsByTagName("action");
- for (var i=0;i<ak.length;i++) {
- actions[ak[i].getAttribute("key")] = ak[i].getAttribute("caption");
- }
- }
- delete alNode;
-
- // Create default header
- var caption = renderer.theme.renderDefaultComponentHeader(renderer,uidl,div,layoutInfo);
-
- // Content DIV
- var content = theme.createElementTo(div,"div","content");
-
- // Iterate all nodes
- for (var i = 0; i< uidl.childNodes.length;i++) {
- var node = uidl.childNodes[i];
- if (node.nodeName == "node" || node.nodeName == "leaf") {
- theme.renderTreeNode(renderer,node,content,selectable,selectMode,selected,selectionVariable,expandVariable,collapseVariable,actions,actionVar,immediate,disabled,readonly);
- }
- }
-}
-
-DefaultTheme.prototype.renderTreeNode = function(renderer,node,target,selectable,selectMode,selected,selectionVariable,expandVariable,collapseVariable,actions,actionVar,immediate,disabled,readonly) {
-
- var theme = renderer.theme;
- var client = renderer.client;
-
- var n = theme.createElementTo(target,"div","node clickable");
-
- // Expand/collapse/spacer button
- var img = theme.createElementTo(n,"img","icon");
- var key = node.getAttribute("key");
- var icon = node.getAttribute("icon");
- if (icon) {
- var iconurl = theme.root+icon.split("theme:")[1];
- var iimg = theme.createElementTo(n,"img","icon");
- iimg.src = iconurl;
- }
-
- // Caption
- var cap = theme.createElementTo(n,"div","nodecaption inline");
- theme.createTextNodeTo(n,node.getAttribute("caption"));
-
- // Hover effects
- if (!disabled&&!readonly) {
- theme.addAddClassListener(theme,client,n,"mouseover","over",n);
- theme.addRemoveClassListener(theme,client,n,"mouseout","over",n);
- }
-
- // Server-side selection
- if (selectable && node.getAttribute("selected") == "true") {
- theme.addCSSClass(n,"selected");
- selected[key] = n;
- }
-
- // Indicate selection
- if (theme.listContainsInt(selectionVariable.value,key)) {
- theme.addCSSClass(n, "selected");
- }
-
- // Selection listeners
- if (selectable && !disabled) {
- if (!readonly) {
- if (selectMode == "single") {
- theme.addAddClassListener(theme,client,n,"click","selected",n,selected);
- theme.addSetVarListener(theme,client,n,"click",selectionVariable,key,immediate);
-
- } else if (selectMode == "multi") {
- theme.addToggleClassListener(theme,client,n,"click","selected");
- theme.addToggleVarListener(theme,client,n,"click",selectionVariable,key,immediate);
-
- }
- }
- }
-
- // Actions
- if (!disabled && !readonly) {
- for (var i = 0; i< node.childNodes.length;i++) {
- var childNode = node.childNodes[i];
- if (childNode.nodeName == "al" ) {
- theme.renderActionPopup(renderer,childNode,n,actions,actionVar,key); // TODO check
- }
- }
- }
-
- // Render all sub-nodes
- if (node.nodeName == "node") {
- var subnodes = theme.createElementTo(target,"div","nodes");
- if (node.childNodes != null && node.childNodes.length >0) {
- img.src = theme.root + "img/tree/on.gif";
- img.expanded = "true";
- } else {
- img.src = theme.root + "img/tree/off.gif";
- img.expanded = "false";
- }
- for (var i = 0; i< node.childNodes.length;i++) {
- var childNode = node.childNodes[i];
- if (childNode.nodeName == "node" || childNode.nodeName == "leaf") {
- theme.renderTreeNode(renderer,childNode,subnodes,selectable,selectMode,selected,selectionVariable,expandVariable,collapseVariable,actions,actionVar,immediate,disabled,readonly);
- }
- }
-
- // Add event listener
- if (!disabled) {
- var target = (selectable&&!readonly?img:n);
- theme.addToggleClassListener(theme,client,target,"mouseup","hidden",subnodes);
- theme.addExpandNodeListener(theme,client,img,"mouseup",subnodes,expandVariable,collapseVariable,key,immediate,target);
- theme.addStopListener(theme,client,target,"mouseup");
- theme.addStopListener(theme,client,target,"click");
- }
-
- } else {
- img.src = theme.root + "img/tree/empty.gif";
- }
-
-}
-
-DefaultTheme.prototype.renderTextField = function(renderer,uidl,target, layoutInfo) {
-
- var client = renderer.client;
- var theme = renderer.theme;
- var immediate = uidl.getAttribute("immediate") == "true";
- var readonly = uidl.getAttribute("readonly") == "true";
- var multiline = uidl.getAttribute("multiline") == "true";
- var secret = uidl.getAttribute("secret") == "true";
- var cols = uidl.getAttribute("cols");
- var rows = uidl.getAttribute("rows");
- var disabled = uidl.getAttribute("disabled") == "true";
- var focusid = uidl.getAttribute("focusid");
- var tabindex = uidl.getAttribute("tabindex");
-
- // Create containing element
- var div = renderer.theme.createPaintableElement(renderer,uidl,target,layoutInfo);
- if (uidl.getAttribute("invisible")) return; // Don't render content if invisible
-
- // Render default header
- renderer.theme.renderDefaultComponentHeader(renderer,uidl,div, layoutInfo);
-
- // Create border
- var border = renderer.theme.createElementTo(div,"div","border");
-
- // Create input
- var input = null;
- if (multiline) {
- input = renderer.theme.createElementTo(border,"textarea");
- input.wrap = "off";
- if (focusid) {
- input.focusid = focusid;
- }
- } else {
- input = renderer.theme.createInputElementTo(border,(secret?"password":"text"),null,focusid);
- }
- if (tabindex) input.tabIndex = tabindex;
- if (disabled||readonly) {
- input.disabled = "true";
- }
-
- // Assign cols and rows
- if (cols >0) {
- if (multiline) {
- input.cols = cols;
- } else {
- input.size = cols;
- input.maxlength = cols;
- }
- }
- if (rows >0) {
- input.rows = rows;
- }
-
- // Find variable node
- var strNode = theme.getVariableElement(uidl,"string","text");
- var inputId = strNode.getAttribute("id");
- input.id = inputId;
-
- // Assign value
- strNode= theme.getFirstTextNode(strNode);
- if (strNode != null && strNode.data != null) {
- input.value = strNode.data;
- }
-
- // Listener
- theme.addSetVarListener(theme,client,input,"change",inputId,input,immediate);
-}
-
-DefaultTheme.prototype.renderDateField = function(renderer,uidl,target,layoutInfo) {
- // TODO needs simplification
- // - jscalendar supports time! but not resolution?
- // - dynamic .js loading!
-
- var theme = renderer.theme;
-
- // Create containing element
- var div = renderer.theme.createPaintableElement(renderer,uidl,target,layoutInfo);
-
- if (uidl.getAttribute("invisible")) return; // Don't render content if invisible
-
- /* Styles:
- * time - only time selection (no date)
- */
- var style = uidl.getAttribute("style");
-
- var immediate = uidl.getAttribute("immediate") == "true";
- var disabled = uidl.getAttribute("disabled") == "true";
- var readonly = uidl.getAttribute("readonly") == "true";
-
- /* locale, translate UI */
- var locale = uidl.getAttribute("locale")
- if (locale && !disabled && !readonly) {
- locale = locale.toLowerCase().split("_")[0];
- var lang = renderer.client.loadDocument(theme.root+"jscalendar/lang/calendar-"+locale+".js",false);
- if (lang) {
- try {
- window.eval(lang);
- } catch (e) {
- client.error("Could not eval DateField lang ("+locale+"):"+e );
- }
- }
- }
-
- // Render default header
- renderer.theme.renderDefaultComponentHeader(renderer,uidl,div,layoutInfo);
-
- var yearVar = theme.getVariableElement(uidl,"integer","year");
- var monthVar = theme.getVariableElement(uidl,"integer","month");
- var dayVar = theme.getVariableElement(uidl,"integer","day");
- var hourVar = theme.getVariableElement(uidl,"integer","hour");
- var minVar = theme.getVariableElement(uidl,"integer","min");
- var secVar = theme.getVariableElement(uidl,"integer","sec");
- var msecVar = theme.getVariableElement(uidl,"integer","msec");
-
- var year = null;
- var month = null;
- var day = null;
- var hour = null;
- var min = null;
- var sec = null;
- var msec = null;
- var text = null;
-
- var inputId = yearVar.getAttribute("id") + "_input";
- var buttonId = yearVar.getAttribute("id") + "_button";
-
- // Assign the value to textfield
- var yearValue = yearVar != null? yearVar.getAttribute("value"): null;
- var monthValue = monthVar != null? monthVar.getAttribute("value"): null;
- var dayValue = dayVar != null? dayVar.getAttribute("value"): null;
- var hourValue = hourVar != null? hourVar.getAttribute("value"): null;
- var minValue = minVar != null? minVar.getAttribute("value"): null;
- var secValue = secVar != null? secVar.getAttribute("value"): null;
- var msecValue = msecVar != null? msecVar.getAttribute("value"): null;
-
- if (style != "time") {
- if (dayValue) {
- // Using calendar - create textfield
- if (readonly) {
- text = theme.createTextNodeTo(div,dayValue+"."+monthValue+"."+yearValue);
- } else {
- text = theme.createInputElementTo(div,"text");
- text.id = inputId;
- text.size = "10";
- if (disabled) {
- text.disabled = true;
- }
- if (yearValue >0 && monthValue >0 && dayValue >0) {
- text.value = dayValue+"."+monthValue+"."+yearValue;
- } else {
- text.value ="";
- }
- }
-
- // Create button
- var button = theme.createInputElementTo(div,"button","btn clickable");
- button.id =buttonId;
- button.value = "...";
- if (disabled||readonly) {
- button.disabled = true;
- }
- } else {
- if (yearVar) {
- // Year select
- if (readonly) {
- theme.createTextNodeTo(div,yearValue);
- } else {
- var year = theme.createElementTo(div,"select");
- year.options[0] = new Option("",-1);
- for (var i=0;i<2000;i++) {
- year.options[i+1] = new Option(i+1900,i+1900);
- if (yearValue == (i+1900)) {
- year.options[i+1].selected = true;
- }
- }
- if (disabled) {
- year.disabled = true;
- }
- if (!readonly) theme.addSetVarListener(theme,client,year,"change",yearVar.getAttribute("id"),year,immediate);
- }
- }
- if (monthVar) {
- // Month select
- if (readonly) {
- theme.createTextNodeTo(div,"."+monthValue);
- } else {
- month = theme.createElementTo(div,"select");
- month.options[0] = new Option("",-1);
- for (var i=0;i<12;i++) {
- month.options[i+1] = new Option(i+2,i+2);
- if (monthValue == i+2) {
- month.options[i+1].selected = true;
- }
- }
- if (disabled) {
- month.disabled = true;
- }
- if (!readonly) theme.addSetVarListener(theme,client,month,"change",monthVar.getAttribute("id"),month,immediate);
- }
- }
- }
- }
- if (hourVar) {
- if (readonly) {
- theme.createTextNodeTo(div," "+(hourValue<10?"0"+hourValue:hourValue));
- } else {
- hour = theme.createElementTo(div,"select");
- hour.options[0] = new Option("",-1);
- for (var i=0;i<24;i++) {
- var cap = (i+1<10?"0"+(i+1):(i+1));
- if (!minVar) {
- // Append anyway, makes it easier to recognize as time
- cap = cap + ":00";
- }
- hour.options[i+1] = new Option(cap,i+1);
- if (hourValue == i+1) {
- hour.options[i+1].selected = true;
- }
- }
- if (disabled) {
- hour.disabled = true;
- }
- if (!readonly) theme.addSetVarListener(theme,client,hour,"change",hourVar.getAttribute("id"),hour,immediate);
- }
- }
- if (minVar) {
- // Minute select
- if (readonly) {
- theme.createTextNodeTo(div,":"+(minValue<10?"0"+minValue:minValue));
- } else {
- theme.createTextNodeTo(div,":");
- min = theme.createElementTo(div,"select");
- min.options[0] = new Option("",-1);
- for (var i=0;i<60;i++) {
- min.options[i+1] = new Option((i<10?"0"+(i):(i)),i);
- if (minValue == i) {
- min.options[i+1].selected = true;
- }
- }
- if (disabled) {
- min.disabled = true;
- }
- if (!readonly) theme.addSetVarListener(theme,client,min,"change",minVar.getAttribute("id"),min,immediate);
- }
- }
- if (secVar) {
- // Second select
- if (readonly) {
- theme.createTextNodeTo(div,":"+(secValue<10?"0"+secValue:secValue));
- } else {
- theme.createTextNodeTo(div,":");
- sec = theme.createElementTo(div,"select");
- sec.options[0] = new Option("",-1);
- for (var i=0;i<60;i++) {
- sec.options[i+1] = new Option((i<10?"0"+(i):(i)),i);
- if (secValue == i) {
- sec.options[i+1].selected = true;
- }
- }
- if (disabled) {
- sec.disabled = true;
- }
- if (!readonly) theme.addSetVarListener(theme,client,sec,"change",secVar.getAttribute("id"),sec,immediate);
- }
- }
- if (msecVar) {
- // Millisecond select
- if (readonly) {
- var cap = msecValue;
- if (i+1 < 100) {
- cap = "0"+cap;
- }
- if (i+1 < 10) {
- cap = "0"+cap;
- }
- theme.createTextNodeTo(div,"."+cap);
- } else {
- theme.createTextNodeTo(div,".");
- msec = theme.createElementTo(div,"select");
- msec.options[0] = new Option("",-1);
- for (var i=0;i<1000;i++) {
- var cap = i;
- if (i < 100) {
- cap = "0"+cap;
- }
- if (i < 10) {
- cap = "0"+cap;
- }
- msec.options[i+1] = new Option(cap,i);
- if (msecValue == i) {
- msec.options[i+1].selected = true;
- }
- }
- if (disabled) {
- msec.disabled = true;
- }
- if (!readonly) theme.addSetVarListener(theme,client,msec,"change",msecVar.getAttribute("id"),msec,immediate);
- }
- }
-
- if (!readonly) {
- if (msec) theme.addDateFieldNullListener(client,msec,text,msec,sec,min,hour,day,month,year,yearVar,immediate);
- if (sec) theme.addDateFieldNullListener(client,sec,text,msec,sec,min,hour,day,month,year,yearVar,immediate);
- if (min) theme.addDateFieldNullListener(client,min,text,msec,sec,min,hour,day,month,year,yearVar,immediate);
- if (hour) theme.addDateFieldNullListener(client,hour,text,msec,sec,min,hour,day,month,year,yearVar,immediate);
- if (day) theme.addDateFieldNullListener(client,day,text,msec,sec,min,hour,day,month,year,yearVar,immediate);
- if (month) theme.addDateFieldNullListener(client,month,text,msec,sec,min,hour,day,month,year,yearVar,immediate);
- if (year) theme.addDateFieldNullListener(client,year,text,msec,sec,min,hour,day,month,year,yearVar,immediate);
-
- }
-
- var nullFunc = function () {
- // TODO wierd when un-nulling
- // -> serverside, examine
- // + nulls in dropdowns!
- text.value = "";
- if (msec) {
- msec.options[0].selected = true;
- //client.changeVariable(msecVar.getAttribute("id"), -1, false);
- }
- if (sec) {
- sec.options[0].selected = true;
- //client.changeVariable(secVar.getAttribute("id"), -1, false);
- }
- if (min) {
- min.options[0].selected = true;
- //client.changeVariable(minVar.getAttribute("id"), -1, false);
- }
- if (hour) {
- hour.options[0].selected = true;
- //client.changeVariable(hourVar.getAttribute("id"), -1, false);
- }
- //client.changeVariable(dayVar.getAttribute("id"), -1, false);
- //client.changeVariable(monthVar.getAttribute("id"), -1, false);
- client.changeVariable(yearVar.getAttribute("id"), -1, immediate);
- }
-
- // Function that updates the datefield
- var updateFunc = function (event) {
- if (text.value == null || text.value == "") {
- nullFunc();
- return;
- }
- if (dayVar) {
- var d = text.value.split(".")[0];
- if (d == null || d < 1 || d > 31 ) alert("Error");
- client.changeVariable(dayVar.getAttribute("id"), d, false);
- }
- if (monthVar) {
- var m = text.value.split(".")[1];
- if (m == null || m < 1 || m > 12) alert("Error");
- client.changeVariable(monthVar.getAttribute("id"), m, false);
- }
- var y = text.value.split(".")[2];
- if (y == null || y < 0 || y > 5000) alert("Error");
- client.changeVariable(yearVar.getAttribute("id"), y, immediate);
-
-
- };
-
- if (!readonly && !disabled && style != "time" && dayVar) {
- // Create a unique temporary variable
- // Dont know if all this is needed, but its purpose is to avoid
- // javascript problems with event handlers scopes.
- var temp = "datefield_" + (new Date()).getTime();;
- eval (temp + " = new Object();");
- (eval (temp)).update = function () { updateFunc() };
- var st = "Calendar.setup({onUpdate : function () { " + temp +
- ".update(); } ,inputField : '"+inputId+"', firstDay : 1,"+
- " ifFormat : '%d.%m.%Y', button : '"+buttonId+"'});";
-
- // Assign update function to textfield
- text.onchange = updateFunc;
-
- // TODO externalize:
- // Assign initialization to button mouseover (lazy initialization)
- client.addEventListener(button, "mouseover", function(event) {
- if (!eval(temp).initialized) {
- eval(temp).initialized =true;
- eval(st);
- }
- }
- );
- }
-}
-DefaultTheme.prototype.addDateFieldNullListener = function (client,elm,text,msec,sec,min,hour,day,month,year,yearVar,immediate) {
- client.addEventListener(elm, "change", function(event) {
-
- if ( !elm || elm.value != -1) return;
-
-
- if (text) text.value = "";
-
- if (msec) {
- msec.options[0].selected = true;
- //client.changeVariable(msecVar.getAttribute("id"), -1, false);
- }
- if (sec) {
- sec.options[0].selected = true;
- //client.changeVariable(secVar.getAttribute("id"), -1, false);
- }
- if (min) {
- min.options[0].selected = true;
- //client.changeVariable(minVar.getAttribute("id"), -1, false);
- }
- if (hour) {
- hour.options[0].selected = true;
- //client.changeVariable(hourVar.getAttribute("id"), -1, false);
- }
- if (day) {
- hour.options[0].selected = true;
- //client.changeVariable(hourVar.getAttribute("id"), -1, false);
- }
- if (month) {
- hour.options[0].selected = true;
- //client.changeVariable(hourVar.getAttribute("id"), -1, false);
- }
- if (year) {
- hour.options[0].selected = true;
- //client.changeVariable(hourVar.getAttribute("id"), -1, false);
- }
- //client.changeVariable(dayVar.getAttribute("id"), -1, false);
- //client.changeVariable(monthVar.getAttribute("id"), -1, false);
- client.changeVariable(yearVar.getAttribute("id"), -1, immediate);
- });
-}
-
-DefaultTheme.prototype.renderDateFieldCalendar = function(renderer,uidl,target,layoutInfo) {
-
- var theme = renderer.theme;
-
- // Create containing element
- var div = renderer.theme.createPaintableElement(renderer,uidl,target,layoutInfo);
- if (uidl.getAttribute("invisible")) return; // Don't render content if invisible
-
- // Render default header
- renderer.theme.renderDefaultComponentHeader(renderer,uidl,div,layoutInfo);
-
- var immediate = uidl.getAttribute("immediate") == "true";
- var enabled = uidl.getAttribute("enabled") == "true";
- var readonly = uidl.getAttribute("readonly") == "true";
- var yearVar = theme.getVariableElement(uidl,"integer","year");
- var monthVar = theme.getVariableElement(uidl,"integer","month");
- var dayVar = theme.getVariableElement(uidl,"integer","day");
- var hourVar = theme.getVariableElement(uidl,"integer","hour");
- var minVar = theme.getVariableElement(uidl,"integer","minutes");
- var secVar = theme.getVariableElement(uidl,"integer","seconds");
- var msecVar = theme.getVariableElement(uidl,"integer","millseconds");
-
- var showTime = hourVar != null;
- var inputId = yearVar.getAttribute("id") + "_input";
-
- // Create container DIV
- var calDiv = theme.createElementTo(div,"div");
- calDiv.id = inputId;
-
- // Assign the value to textfield
- var yearValue = yearVar != null? yearVar.getAttribute("value"): -1;
- var monthValue = monthVar != null? monthVar.getAttribute("value"): -1;
- var dayValue = dayVar != null? dayVar.getAttribute("value"): -1;
- var hourValue = hourVar != null? hourVar.getAttribute("value"): -1;
- var minValue = minVar != null? minVar.getAttribute("value"): -1;
- var secValue = secVar != null? secVar.getAttribute("value"): -1;
- var msecValue = msecVar != null? msecVar.getAttribute("value"): -1;
- if (yearValue >0 && monthValue >0 && dayValue >0) {
- //TODO Assign date
- } else {
- //TODO Assign date
- }
-
-
- // Create a unique temporary variable
- // Dont know if all this is needed, but its purpose is to avoid
- // javascript problems with event handlers scopes.
- var temp = "datefield_" + (new Date()).getTime();;
- eval (temp + " = new Object();");
-
- // Function that updates the datefield
- var dateChanged = function (cal) {
- var y = cal.date.getFullYear();
- var m = cal.date.getMonth();
- var d = cal.date.getDate();
- if (d == null || y == null || m == null || d < 1 ||
- d > 31 || m < 1 || m > 12 || y < 0 || y > 5000) alert("Error");
- client.changeVariable(dayVar.getAttribute("id"), d, false);
- client.changeVariable(monthVar.getAttribute("id"), m, false);
- client.changeVariable(yearVar.getAttribute("id"), y, immediate);
- };
-
- // Calendar setup code
- (eval (temp)).update = dateChanged;
- var st = "Calendar.setup({flatCallback : function (cal) { " + temp +
- ".update(cal); } ,showsTime: "+showTime+", flat: '"+inputId+"', firstDay : 1,"+
- " ifFormat : '%d.%m.%Y'});";
-
-
- // Assign initialization to button mouseover (lazy initialization)
- client.addEventListener(div, "mouseover", function(event) {
- if (!eval(temp).initialized) {
- eval(temp).initialized =true;
- eval(st);
-
- }
- }
- );
-
-}
-
-DefaultTheme.prototype.renderUpload = function(renderer,uidl,target,layoutInfo) {
-
- var theme = renderer.theme;
- var client = renderer.client;
- var varNode = theme.getVariableElement(uidl,"uploadstream","stream");
-
- // Create containing element
- var div = renderer.theme.createPaintableElement(renderer,uidl,target,layoutInfo);
- if (uidl.getAttribute("invisible")) return; // Don't render content if invisible
-
- // Render default header
- renderer.theme.renderDefaultComponentHeader(renderer,uidl,div,layoutInfo);
-
- // Unique name for iframes
- var frameName = "upload_"+varNode.getAttribute("id")+"_iframe";
-
- var iframe = theme.createElementTo(div, "iframe","upload-iframe");
- iframe.id = frameName;
- iframe.name = frameName;
- iframe.src = 'about:blank';
-
- // Get the window object of the iframe
- var ifr = window.frames[frameName];
-
- // TODO: FF fix. The above does not work in FF, so we
- // have to work our way around it. Iterate all frames.
- if (ifr == null) {
- var fi = 0;
- while (fi < window.frames.length) {
- if (window.frames[fi].frameElement != null && window.frames[fi].frameElement.name == frameName) {
- ifr = window.frames[fi];
- }
- fi++;
- }
- }
-
- if (ifr != null) {
-
- // Put some initial content to IFRAME.
- // Nasty, but without this the browsers fail
- // to create any elements into window.
- // TODO import CSS file to get right background-color for IE
- var code="<HTML><HEAD><STYLE TYPE=\"text/css\">html,body {overflow: hidden; border: none; margin: 0px; padding: 0px;background: transparent;}</STYLE></HEAD><BODY><\/BODY><\/HTML>";
- ifr.document.open();
- ifr.document.write(code);
- ifr.document.close();
-
- // Ok. Now we are ready render the actual upload form and
- // inputs.
- var form = ifr.document.createElement('form');
- form.setAttribute("action",client.ajaxAdapterServletUrl);
- form.setAttribute("method", "post");
- form.setAttribute("enctype", "multipart/form-data");
- if (document.all && !window.opera) {
- form = ifr.document.createElement('<form action="'+client.ajaxAdapterServletUrl+'" method="post" enctype="multipart/form-data">');
- }
- var upload = theme.createInputElementTo(form, "file");
- upload.id = varNode.getAttribute("id");
- upload.name = varNode.getAttribute("id");
- var submit = theme.createInputElementTo(form, "submit");
- submit.value = "Send";
- // submit.value = caption
- submit.disabled = true;
- submit.onclick = function() {
- iframe.style.visibility='hidden';
- }
- upload.onchange = function() {
- if(upload.value) {
- submit.disabled = false;
- } else {
- submit.disabled = true;
- }
- }
-
- ifr.document.body.appendChild(form);
-
- // Attach event listeners for processing the chencges after upload.
- if (document.all && !window.opera) {
- iframe.onreadystatechange = function() {
- if (iframe.readyState == "complete") {
- iframe.onreadystatechange = null;
- client.processVariableChanges(true);
- // FIXME next line is workaround to 'iframe is not instantly updated after upload is done' bug.
- // location.reload();
- }
- };
- } else {
- iframe.onload = function() {
- if (ifr.document != null) {
- iframe.onload = null;
- client.processVariableChanges(true);
- // FIXME next line is workaround to 'iframe is not instantly updated after upload is done' bug.
- // location.reload();
- }
- };
- }
-
- }
-}
-
-DefaultTheme.prototype.renderEmbedded = function(renderer,uidl,target,layoutInfo) {
-
- var theme = renderer.theme;
-
- // Create containing element
- var div = renderer.theme.createPaintableElement(renderer,uidl,target,layoutInfo);
- if (uidl.getAttribute("invisible")) return; // Don't render content if invisible
-
- // Render default header
- renderer.theme.renderDefaultComponentHeader(renderer,uidl,div,layoutInfo);
-
- if (uidl.getAttribute("type") == "image") {
-
- // Image mode
- var img = renderer.theme.createElementTo(div,"img","embedded");
-
- // SRC
- var val = uidl.getAttribute("src");
- if (val != null) img.src = val;
-
- // Width
- val = uidl.getAttribute("width");
- if (val != null && val > 0) img.width = val;
-
- // Height
- val = uidl.getAttribute("height");
- if (val != null && val > 0) img.height = val;
-
- // ALT-attribute
- img.alt = theme.getElementContent(uidl,"description");
- } else {
-
- /*
- // Object mode
- var embedded = renderer.theme.createElementTo(div,"object","embedded");
- // SRC
- var val = uidl.getAttribute("src");
- if (val) embedded.src = val;
-
-
- // Width
- val = uidl.getAttribute("width");
- if (val != null && val > 0) embedded.width = val;
-
- // Height
- val = uidl.getAttribute("height");
- if (val != null && val > 0) embedded.height = val;
-
- // Codebase
- val = uidl.getAttribute("codebase");
- if (val != null) embedded.codebase = val;
-
- // Standby
- val = uidl.getAttribute("standby");
- if (val != null) embedded.codebase = val;
- */
-
- var html = "<object ";
- var val = uidl.getAttribute("src");
- if (val) html += " data=\""+val+"\" ";
-
- val = uidl.getAttribute("width");
- if (val) html += " width=\""+val+"\" ";
-
- val = uidl.getAttribute("height");
- if (val) html += " height=\""+val+"\" ";
-
- val = uidl.getAttribute("codebase");
- if (val) html += " codebase=\""+val+"\" ";
-
- val = uidl.getAttribute("standby");
- if (val) html += " standby=\""+val+"\" ";
-
- html += ">";
-
- // Add all parameters
- var params = theme.getChildElements(uidl,"embeddedparams");
- if (params != null) {
- var len = params.length;
- for (var i=0;i<len;i++) {
- html += "<param name=\""+params[i].getAttribute("name")+"\" value=\""+params[i].getAttribute("name")+"\" />"
- }
- }
-
- html += "</object>";
-
- div.innerHTML = html;
- }
-}
-
-DefaultTheme.prototype.renderLink = function(renderer,uidl,target,layoutInfo) {
- // Shortcut variables
- var theme = renderer.theme;
- var client = renderer.client;
-
- var immediate = "true"==uidl.getAttribute("immediate");
- var disabled = "true"==uidl.getAttribute("disabled");
- var readonly = "true"==uidl.getAttribute("readonly");
-
- var targetName = uidl.getAttribute("name");
- var width = uidl.getAttribute("width");
- var height = uidl.getAttribute("height");
- var border = uidl.getAttribute("border");
- var src = uidl.getAttribute("src");
- if (src && src.indexOf("theme://") == 0) {
- src = theme.root + src.substring(8);
- }
-
- // Create containing element
- var div = theme.createPaintableElement(renderer,uidl,target,layoutInfo);
- if (uidl.getAttribute("invisible")) return; // Don't render content if invisible
-
- var link = theme.createElementTo(div,"div", "link pad clickable");
-
- if (!disabled&&!readonly) {
- theme.addAddClassListener(theme,client,link,"mouseover","over");
- theme.addRemoveClassListener(theme,client,link,"mouseout","over");
-
- var feat;
- switch (border) {
- case "minimal":
- feat = "menubar=yes,location=no,status=no";
- break;
- case "none":
- feat = "menubar=no,location=no,status=no";
- break;
- default:
- feat = "menubar=yes,location=yes,scrollbars=yes,status=yes";
- break;
- }
- if (width||height) {
- feat += ",resizable=no";
- feat += (width?",width="+width:"");
- feat += (height?",height="+height:"");
- } else {
- feat += ",resizable=yes";
- }
- theme.addLinkOpenWindowListener(theme,client,div,"click",src,targetName,feat);
- }
- /*
- with(props) {
- client.addEventListener(div,"mouseover", function(e) {
- theme.addCSSClass(div,"over");
- }
- );
- client.addEventListener(div,"mouseout", function(e) {
- theme.removeCSSClass(div,"over");
- }
- );
- client.addEventListener(div,"click", function(e) {
- theme.hidePopup();
- if (!target) {
- window.location = src;
- } else {
- var feat;
- switch (border) {
- case "minimal":
- feat = "menubar=yes,location=no,status=no";
- break;
- case "none":
- feat = "menubar=no,location=no,status=no";
- break;
- default:
- feat = "menubar=yes,location=yes,scrollbars=yes,status=yes";
- break;
- }
- if (width||height) {
- feat += ",resizable=no"
- } else {
- feat += ",resizable=yes"
- }
- var win = window.open(src, target,
- feat
- +(width?",width="+width:"")
- +(height?",height="+height:"")
- );
- win.focus();
- }
- }
- );
- }
- */
- //var inner = theme.createElementTo(div,"div", "border pad");
-
- // Render default header
- theme.renderDefaultComponentHeader(renderer,uidl,link);
-
- // Description under link
- var descriptionText = theme.getElementContent(uidl,"description");
- if (descriptionText) {
- var desc = theme.createElementTo(link,"div", "description");
- theme.createTextNodeTo(desc,descriptionText);
- }
-}
-DefaultTheme.prototype.addLinkOpenWindowListener = function(theme,client,element,event,url,target,features) {
- client.addEventListener(element,(event=="rightclick"?"click":event), function(e) {
- var evt = client.getEvent(e);
- if (event=="rightclick"&&!evt.rightclick) return;
- if (!target) {
- window.location = url;
- } else {
- var win = window.open(url, target, features);
- win.focus();
- }
- }
- );
-}
-DefaultTheme.prototype.renderPagingTable = function(renderer,uidl,target,layoutInfo) {
- // Shortcut variables
- var theme = renderer.theme;
- var client = renderer.client;
-
- // Create containing DIV
- var div = theme.createPaintableElement(renderer,uidl,target,layoutInfo);
- if (uidl.getAttribute("invisible")) return; // Don't render content if invisible
-
- if ("list"==uidl.getAttribute("style")) {
- theme.removeCSSClass(div,"table");
- theme.addCSSClass(div,"list");
- }
- // Create default header
- var caption = theme.renderDefaultComponentHeader(renderer,uidl,div,layoutInfo);
-
- // Get table attributes
- var rowheaders = ("true"==uidl.getAttribute("rowheaders"));
- var totalrows = parseInt(uidl.getAttribute("totalrows"));
- var pagelength = parseInt(uidl.getAttribute("pagelength"));
- var rowCount = parseInt(uidl.getAttribute("rows"));
- var firstvisible = theme.getVariableElementValue(theme.getVariableElement(uidl,"integer","firstvisible"))||1;
- var firstvisibleVar = theme.createVariableElementTo(div,theme.getVariableElement(uidl,"integer","firstvisible"));
- var immediate = ("true" == uidl.getAttribute("immediate"));
- var selectMode = uidl.getAttribute("selectmode");
- var selectable = selectMode == "multi" || selectMode == "single";
- var selected; // Selected map
- if (selectable) {
- selected = new Array();
- }
- var selectionVariable = theme.createVariableElementTo(div,theme.getVariableElement(uidl,"array","selected"));
- var visibleCols = theme.getFirstElement(uidl,"visiblecolumns");
- var collapseVariable = theme.createVariableElementTo(div,theme.getVariableElement(uidl,"array","collapsedcolumns"));
- var sortcolVar = theme.createVariableElementTo(div,theme.getVariableElement(uidl,"string","sortcolumn"));
- var sortkey = theme.getVariableElementValue(theme.getVariableElement(uidl,"string","sortcolumn"));
- var sortasc = theme.getVariableElement(uidl,"boolean","sortascending");
- var sortascVar = theme.createVariableElementTo(div,sortasc);
- sortasc = sortasc != null && "true"==sortasc.getAttribute("value");
-
- var actions = null;
- var actionVar = null;
- var alNode = theme.getFirstElement(uidl,"actions")
- if (alNode) {
- actionVar = theme.createVariableElementTo(div,theme.getVariableElement(alNode,"string","action"));
- actions = new Object();
- var ak = alNode.getElementsByTagName("action");
- for (var i=0;i<ak.length;i++) {
- actions[ak[i].getAttribute("key")] = ak[i].getAttribute("caption");
- }
- }
- delete alNode;
-
- // Create table for content
- div = theme.createElementTo(div,"div","outset");
- div = theme.createElementTo(div,"div","content border");
-
- var table = theme.createElementTo(div,"table");
- table = theme.createElementTo(table,"tbody");
- table.setAttribute("cellpadding","0");
- table.setAttribute("cellspacing","0");
- var tr = null;
- var td = null;
-
-
- // Column headers
- var cols = theme.getFirstElement(uidl,"cols");
- if (cols != null) {
- cols = cols.getElementsByTagName("ch");
- }
- if (cols != null && cols.length >0) {
- tr = theme.createElementTo(table,"tr","header");
- if (rowheaders) {
- theme.createElementTo(tr,"td","empty");
- }
- for (var i=0; i<cols.length;i++) {
- var sortable = cols[i].getAttribute("sortable");
- td = theme.createElementTo(tr,"td","cheader bg");
- // Sorting
- var key = cols[i].getAttribute("cid");
- if (sortable=="true") {
- theme.addCSSClass(td,"clickable");
- // Sorting always immediate
- theme.addSetVarListener(theme,client,td,"click",sortascVar,(key==sortkey?!sortasc:sortasc),false);
- theme.addSetVarListener(theme,client,td,"click",sortcolVar,key,true);
-
- }
- var ch = cols[i].getAttribute("caption");
- var cap = theme.createElementTo(td,"div","caption");
- theme.createTextNodeTo(cap,ch != null? ch : "");
- if (sortkey==key) {
- var icon = theme.createElementTo(cap,"IMG","icon");
- icon.src = theme.root+"img/table/"+(sortasc?"asc.gif":"desc.gif");
- }
- }
-
- // Collapsing
- td = theme.createElementTo(tr,"td","cheader scroll bg");
- if (visibleCols) {
- var iconDiv = theme.createElementTo(td,"div");
- var icon = theme.createElementTo(iconDiv,"img","icon");
- icon.src = theme.root+"img/table/colsel.gif";
- var popup = theme.createElementTo(td,"div","outset popup hide");
- var inner = theme.createElementTo(popup,"div","border");
- // empty row to allow closing:
- var row = theme.createElementTo(inner,"div","item clickable pad border");
-
- theme.addHidePopupListener(theme,client,row,"click");
- theme.addToggleClassListener(theme,client,row,"mouseover","over");
- theme.addToggleClassListener(theme,client,row,"mouseout","over");
- theme.addTogglePopupListener(theme,client,iconDiv,"click",popup);
-
- var cols = visibleCols.getElementsByTagName("column");
- for (var i=0;i<cols.length;i++) {
- var row = theme.createElementTo(inner,"div","item clickable pad border");
- var collapsed = "true"==cols[i].getAttribute("collapsed");
- icon = theme.createElementTo(row,"img","icon");
- icon.src = theme.root+"img/table/"+(collapsed?"off.gif":"on.gif");
- theme.createTextNodeTo(row,cols[i].getAttribute("caption"));
-
- theme.addToggleClassListener(theme,client,row,"mouseover","over");
- theme.addToggleClassListener(theme,client,row,"mouseout","over");
- theme.addToggleVarListener(theme,client,row,"click",collapseVariable,cols[i].getAttribute("cid"),true);
- }
- delete cols;
- }
- }
- delete cols;
-
- // Table rows
- var rows = theme.getFirstElement(uidl,"rows");
- if (rows != null) {
- rows = theme.getChildElements(rows,"tr");
- }
- if (rows != null && rows.length >0) {
- for (var i=0; i<rows.length;i++) {
- tr = theme.createElementTo(table,"tr");
- // TODO rowheader
- theme.setCSSClass(tr, (i % 2 == 0?"even":"odd"));
-
- if (selectable) theme.addCSSClass(tr, "clickable");
- var key = rows[i].getAttribute("key");
-
- if (selectable&&"true"==rows[i].getAttribute("selected")) {
- theme.addCSSClass(tr, "selected");
- selected[selected.length] = tr;
- }
-
- if (selectable) {
- if (selectMode == "multi") {
- theme.addToggleClassListener(theme,client,tr,"click","selected");
- theme.addToggleVarListener(theme,client,tr,"click",selectionVariable,key,immediate);
- } else {
- theme.addAddClassListener(theme,client,tr,"click","selected",tr,selected);
- theme.addSetVarListener(theme,client,tr,"click",selectionVariable,key,immediate);
- }
- }
-
- if (rowheaders) {
- var td = theme.createElementTo(tr,"td","rheader bg");
- var caption = theme.createElementTo(td,"div","caption");
- theme.createTextNodeTo(caption,rows[i].getAttribute("caption"));
- }
- if (rows[i].childNodes != null && rows[i].childNodes.length >0) {
- var al = null;
- for (var j=0; j<rows[i].childNodes.length;j++) {
- if (rows[i].childNodes[j].nodeName == "al") {
- al = rows[i].childNodes[j];
- } else if (rows[i].childNodes[j].nodeType == Node.ELEMENT_NODE) {
- td = theme.createElementTo(tr,"td");
- renderer.client.renderUIDL(rows[i].childNodes[j],td);
- if (al) {
- theme.renderActionPopup(renderer,al,td,actions,actionVar,key);
- }
- }
- }
- }
- // SCROLLBAR
- if (i==0) {
- td = theme.createElementTo(tr,"td", "scroll border");
- // TODO:
- //theme.tableAddScrollEvents(theme,td);
-
- td.setAttribute("rowSpan",rows.length);
- var inner = theme.createElementTo(td,"div", "scroll");
- }
- }
- }
- delete rows;
-
- var paging = theme.createElementTo(div,"div","nav pad");
- var button = theme.createElementTo(paging,"div","pad caption inline");
- if (firstvisible > 1) {
- theme.addCSSClass(button,"clickable");
- theme.addAddClassListener(theme,client,button,"mouseover","bg");
- theme.addRemoveClassListener(theme,client,button,"mouseout","bg");
- theme.addSetVarListener(theme,client,button,"click",firstvisibleVar,(String) (parseInt(firstvisible)-parseInt(pagelength)),true);
- } else {
- theme.addCSSClass(button,"disabled");
- }
- theme.createTextNodeTo(button,"<<");
-
- button = theme.createElementTo(paging,"div","small pad inline");
- theme.createTextNodeTo(button,firstvisible+" - "+(firstvisible-1+parseInt(rowCount))+ " / " + totalrows);
-
- button = theme.createElementTo(paging,"div","pad caption inline");
- if (parseInt(firstvisible)+parseInt(pagelength)<=parseInt(totalrows)) {
- theme.addCSSClass(button,"clickable");
- theme.addAddClassListener(theme,client,button,"mouseover","bg");
- theme.addRemoveClassListener(theme,client,button,"mouseout","bg");
- theme.addSetVarListener(theme,client,button,"click",firstvisibleVar, (String) (parseInt(firstvisible)+parseInt(pagelength)),true);
- } else {
- theme.addCSSClass(button,"disabled");
- }
- theme.createTextNodeTo(button,">>");
-}
-
-DefaultTheme.prototype.renderScrollTable = function(renderer,uidl,target,layoutInfo) {
- // Shortcut variables
- var theme = renderer.theme;
- var client = renderer.client;
- var colWidths;
- if (target.colWidths) {
- colWidths = target.colWidths;
- } else {
- colWidths = new Object();
- }
- var wholeWidth = target.wholeWidth;
- var scrolledLeft = target.scrolledLeft;
-
- // Get attributes
- var pid = uidl.getAttribute("id");
- var immediate = uidl.getAttribute("immediate")||false;
- var selectmode = uidl.getAttribute("selectmode");
- var cols = parseInt(uidl.getAttribute("cols"));
- var rows = parseInt(uidl.getAttribute("rows"));
- var totalrows = parseInt(uidl.getAttribute("totalrows"));
- var pagelength = uidl.getAttribute("pagelength");
- var colheaders = uidl.getAttribute("colheaders")||false;
- var rowheaders = uidl.getAttribute("rowheaders")||false;
- var visiblecols = theme.getFirstElement(uidl,"visiblecolumns");
- var sortkey = theme.getVariableElementValue(theme.getVariableElement(uidl,"string","sortcolumn"));
-
- var colorder = new Array();
- var fv = parseInt(theme.getVariableElementValue(theme.getVariableElement(uidl,"integer","firstvisible"))||1);
- var selected; // Selected map
- if (selectmode) {
- selected = new Array();
- }
-
- // Create containing DIV
- var div = theme.createPaintableElement(renderer,uidl,target,layoutInfo);
- div.colWidths = colWidths;
- if (uidl.getAttribute("invisible")) return; // Don't render content if invisible
-
- // Variables
- var fvVar = theme.createVariableElementTo(div,theme.getVariableElement(uidl,"integer","firstvisible"));
- var ccVar = theme.createVariableElementTo(div,theme.getVariableElement(uidl,"array","collapsedcolumns"));
- var coVar = theme.createVariableElementTo(div,theme.getVariableElement(uidl,"array","columnorder"));
- var selVar = theme.createVariableElementTo(div,theme.getVariableElement(uidl,"array","selected"));
- var sortVar = theme.createVariableElementTo(div,theme.getVariableElement(uidl,"string","sortcolumn"));
- var sortasc = theme.getVariableElement(uidl,"boolean","sortascending");
- var sortascVar = theme.createVariableElementTo(div,sortasc);
- sortasc = (sortasc != null && "true"==sortasc.getAttribute("value"));
-
- // Create default header
- var caption = theme.renderDefaultComponentHeader(renderer,uidl,div,layoutInfo);
- theme.addCSSClass(caption,"tablecaption");
-
- // column collapsing
-
- // main div
- var inner = theme.createElementTo(div,"div","border");
- inner.innerHTML = "<TABLE width=\"100%\"><TR><TD></TD></TR></TABLE>";
- if (!wholeWidth) {
- wholeWidth = inner.offsetWidth||inner.clientWidth||300;
- wholeWidth -= 2; // Leave room for border, TODO: more dynamic
- if (wholeWidth<200) wholeWidth = 300;
- }
- div.wholeWidth = wholeWidth;
- var offsetLeft = client.getElementPosition(inner).x;
-
- // Actions
- var actions = null;
- var actionVar = null;
- var alNode = theme.getFirstElement(uidl,"actions")
- if (alNode) {
- actionVar = theme.createVariableElementTo(div,theme.getVariableElement(alNode,"string","action"));
- actions = new Object();
- var ak = alNode.getElementsByTagName("action");
- for (var i=0;i<ak.length;i++) {
- actions[ak[i].getAttribute("key")] = ak[i].getAttribute("caption");
- }
- }
- delete alNode;
-
- inner.innerHTML = "<DIV id=\""+pid+"status\" align=\"center\" class=\"tablestatus\" style=\"width:"+(wholeWidth/2)+"px;display:none;\"></DIV><TABLE cellpadding=0 cellspacing=0 border=0 width=100%><TBODY><TR valign=top class=bg><TD></TD><TD align=center width=16></TD></TR></TBODY></TABLE><TABLE>";
- //inner.style.width = wholeWidth+"px";
- var vcols = inner.childNodes[1].firstChild.firstChild.childNodes[1];
- if (visiblecols) {
- vcols.innerHTML = "<DIV class=\"colsel\"><DIV/></DIV>";
- var icon = vcols.firstChild;
- vcols.id = pid+"vcols";
- var popup = theme.createElementTo(div,"div","border popup hide");
- theme.addTogglePopupListener(theme,client,icon,"click",popup);
- theme.addStopListener(theme,client,icon,"mouseover");
- theme.addStopListener(theme,client,icon,"mouseout");
- var row = theme.createElementTo(popup,"div","item clickable pad border");
- theme.addHidePopupListener(theme,client,row,"click");
- var cols = visiblecols.getElementsByTagName("column");
- for (var i=0;i<cols.length;i++) {
- var row = theme.createElementTo(popup,"div","item clickable pad border");
- var collapsed = "true"==cols[i].getAttribute("collapsed");
- icon = theme.createElementTo(row,"img","icon");
- icon.src = theme.root+"img/table/"+(collapsed?"off.gif":"on.gif");
- theme.createTextNodeTo(row,cols[i].getAttribute("caption"));
- theme.addAddClassListener(theme,client,row,"mouseover","over");
- theme.addRemoveClassListener(theme,client,row,"mouseout","over");
- theme.addToggleVarListener(theme,client,row,"click",ccVar,cols[i].getAttribute("cid"),true);
- }
- delete cols;
- }
-
-
- // FIRST render the table
- var alignments = new Array();
-
- // headers
- var hout = theme.createElementTo(inner.childNodes[1].firstChild.firstChild.firstChild,"div","bg");
- hout.style.width = (wholeWidth-16)+"px";
- hout.style.paddingRight = "0px";
- hout.id = pid+"hout";
- hout.style.overflow = "hidden";
- theme.addCSSClass(hout,"hout");
- var html = "<TABLE id=\""+pid+"hin\" class=\"hin\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><TBODY><TR>";
- if (rowheaders) {
- html += "<TD ";
- if (colWidths["heh"]) {
- html += "width=\""+colWidths["heh"]+"\" ";
- }
- html += "style=\"overflow:hidden\" cid=\"heh\" id=\""+pid+"heh\"><DIV class=\"padnr hah\" style=\"";
- if (colWidths["heh"]) {
- html += "width:"+colWidths["heh"]+"px;";
- }
- html += "overflow:hidden;height:100%;white-space:nowrap;\"><IMG id=\""+pid+"hah\" align=\"right\" src=\""+theme.root+"img/table/handle.gif\" border=\"0\"></DIV></TD>";
- }
- var chs = theme.getFirstElement(uidl, "cols").getElementsByTagName("ch");
- var len = chs.length;
- for (var i=0;i<len;i++) {
- var col = chs[i];
- var cap = col.getAttribute("caption")||(visiblecols?"":"");
- var sort = col.getAttribute("sortable");
- var cid = col.getAttribute("cid");
- var iconUrl = col.getAttribute("icon");
- if (iconUrl && iconUrl.indexOf("theme://") == 0) {
- iconUrl = (theme.iconRoot != null ? theme.iconRoot : theme.root)
- + iconUrl.substring(8);
- }
- alignments[i] = col.getAttribute("align");
- colorder[i] = cid;
- html += "<TD ";
- if (colWidths[cid]) {
- html += "width=\""+colWidths[cid]+"\" ";
- }
- if (sortkey == cid) {
- html += "sorted=\"true\" class=\"sorted\" ";
- }
- html += "style=\"overflow:hidden\" cid=\""+cid+"\" id=\""+pid+"he"+i+"\" >"
- html += "<DIV class=\"padnr tableheader\" ";
- if (alignments[i]) {
- switch (alignments[i]) {
- case "e":
- html += "align=\"right\"";
- break;
- case "c":
- html += "align=\"center\"";
- break;
- default:
- }
- }
- html += " style=\"";
- if (colWidths[cid]) {
- html += "width:"+colWidths[cid]+"px;";
- }
- html += "overflow:hidden;height:100%;white-space:nowrap;\"><IMG id=\""+pid+"ha"+cid+"\" align=\"right\" src=\""+theme.root+"img/table/handle.gif\" border=\"0\">";
- html += (iconUrl?"<IMG src=\""+iconUrl+"\" class=\"icon\">":"")+cap+(sortkey==cid?"<IMG align=right class=\"sort sort"+(sortasc?"asc":"desc")+"\"/>":"")+"</DIV></TD>";
- }
- html += "</TR></TBODY></TABLE>";
- hout.innerHTML = html;
-
- // content
- // scroll padding calculations
- // TODO these need to be calculated better, perhaps updated after rendering content
- var prePad = (fv==1?1:fv*22);
- var postPad = (totalrows-fv-rows+1)*22;
- // html
- cout = theme.createElementTo(inner,"div");
- cout.style.width = wholeWidth+"px";
- cout.style.height = (18*rows)+"px";
- cout.id = pid+"cout";
- theme.addCSSClass(cout,"cout");
- cout.style.overflow = "scroll";
- html = "<TABLE border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"cin\" id=\""+pid+"cin\"><TBODY><TR height=\""+prePad+"\"></TR>";
- var trs = theme.getFirstElement(uidl, "rows").getElementsByTagName("tr");
- len = trs.length;
- if (len==0) {
- html += "<TR id=\""+pid+"firstrow\"><TD style=\"overflow:hidden\">";
- html += "<DIV class=\"tablecell pad\" style=\"overflow:hidden;height:100%;white-space:nowrap;border-right:1px solid gray;\"></DIV></TD></TR>";
- }
- for (var i=0;i<len;i++) {
- var row = trs[i];
- var cap = row.getAttribute("caption");
- var key = row.getAttribute("key");
- var seld = row.getAttribute("selected");
- var iconUrl = row.getAttribute("icon");
- html += "<TR "+(i==0?"id=\""+pid+"firstrow\"":"");
- html += " key=\""+key+"\"";
- if (seld) {
- html += " selected=\"true\" class=\"selected\" ";
- } else {
- html += "class=\""+(i%2!=0?"odd":"even")+"\" ";
- }
- html += ">";
- if (rowheaders) {
- html += "<TD ";
- if (colWidths["heh"]) {
- html += "width=\""+colWidths["heh"]+"\" ";
- }
- html += "style=\"overflow:hidden\"><DIV class=\"padnr tableheader\" style=\"";
- if (colWidths["heh"]) {
- html += "width:"+colWidths["heh"]+"px;";
- }
- html += "overflow:hidden;height:100%;white-space:nowrap;border-right:1px solid gray;\">";
- if (iconUrl) {
- if (iconUrl.indexOf("theme://") == 0) {
- iconUrl = (theme.iconRoot != null ? theme.iconRoot : theme.root)
- + iconUrl.substring(8);
- }
- html += "<IMG src=\""+iconUrl+"\" class=\"icon\" />";
- }
- html += row.getAttribute("caption")+"</DIV></TD>";
- }
- var comps = row.childNodes;
- var l = comps.length;
- if (l==0) {
- html += "<TD><DIV class=\"padnr tablecell\" style=\"overflow:hidden;height:100%;white-space:nowrap;border-right:1px solid gray;\"></DIV></TD>";
- }
-
- var colNum = -1;
- for (j=0;j<l;j++) {
- var comp = comps[j];
- if (comp.nodeName == "al"||comp.nodeName == "#text") continue;
- colNum++;
- // Placeholder TD, we'll render the content later
- html += "<TD "
- if (colWidths[colorder[colNum]]) {
- html += "width=\""+colWidths[colorder[colNum]]+"\" ";
- }
- html += "style=\"overflow:hidden\"><DIV class=\"padnr tablecell\" style=\"";
- if (colWidths[colorder[colNum]]) {
- html += "width:"+colWidths[colorder[colNum]]+"px;";
- }
- html += "overflow:hidden;height:100%;white-space:nowrap;border-right:1px solid gray;\" ";
- if (alignments[colNum]) {
- switch (alignments[colNum]) {
- case "e":
- html += " align=\"right\" ";
- break;
- case "c":
- html += " align=\"center\" ";
- break;
- default:
- }
- }
- html += "></DIV></TD>";
- }
- html += "</TR>";
- }
- html += "<TR id=\""+pid+"lastrow\" height=\""+postPad+"\"></TR></TBODY></TABLE>";
- cout.innerHTML = html;
-
- // SECOND render the sub-components (TD content)
- var trs = cout.firstChild.firstChild.childNodes;
- var utrs = theme.getFirstElement(uidl, "rows").getElementsByTagName("tr");
- for (var i=0;i<len;i++) {
- var tr = trs[i+1];
- var key = tr.getAttribute("key");
- var comps = utrs[i].childNodes;
- var l = comps.length;
- var currentCol = (rowheaders?1:0);
- var al = null;
- for (j=0;j<l;j++) {
- var comp = comps[j];
- if (comp.nodeName == "#text") continue;
- if (comp.nodeName == "al") {
- al = comp;
- continue;
- }
- var trg = tr.childNodes[currentCol++].firstChild;
- client.renderUIDL(comp, trg);
- }
-
- if (al&&tr.firstChild) {
- theme.renderActionPopup(renderer,al,tr,actions,actionVar,key,"rightclick");
- }
-
- // selection
- if (selectmode) {
- selected[selected.length] = tr;
- theme.addCSSClass(tr,"clickable");
- theme.addToggleClassListener(theme,client,tr,"mouseover","selectable");
- theme.addToggleClassListener(theme,client,tr,"mouseout","selectable");
- if (selectmode == "multi") {
- theme.addToggleClassListener(theme,client,tr,"click","selected");
- theme.addToggleVarListener(theme,client,tr,"click",selVar,key,immediate);
- } else {
- theme.addAddClassListener(theme,client,tr,"click","selected",tr,selected);
- theme.addSetVarListener(theme,client,tr,"click",selVar,key,immediate);
- }
- }
- }
-
- // THIRD do some initial sizing and scrolling
- var fr = target.ownerDocument.getElementById(pid+"firstrow").offsetTop;
- var lr = target.ownerDocument.getElementById(pid+"lastrow").offsetTop;
- cout.style.height = (lr-fr+20)+"px";
- cout.scrollTop = (fv>totalrows-rows?cout.scrollHeight:fr);
- div.recalc = theme.scrollTableRecalc;
- div.initialWidth = wholeWidth;
- div.recalc(pid,target);
- cout.scrollLeft = scrolledLeft;
- hout.scrollLeft = scrolledLeft;
-
- var status = target.ownerDocument.getElementById(pid+"status");
- var p = client.getElementPosition(inner);
- status.style.top = (p.y + p.h/2) + "px";
- status.style.left = (p.x + p.w/2 - wholeWidth/4) +"px";
- theme.scrollTableAddScrollHandler(client,theme,cout,div,status,lr,fr,rows,totalrows,fv,fvVar,immediate);
- theme.scrollTableAddScrollListener(theme,div,pid,lr,fr,rows,totalrows,fv);
-
-
- // Column order drag & drop
- var hin = target.ownerDocument.getElementById(pid+"hin");
- var h = hin.getElementsByTagName("td");
- var dragOrderGroup = new Object();
- for (var i = 0;i<h.length;i++) {
- var id = h[i].getAttribute("id");
- if (id==pid+"heh") {
- var handle = target.ownerDocument.getElementById(pid+"hah");
- if (handle) {
- theme.tableAddWidthListeners(client,theme,handle,"heh",div,pid);
- }
- }
- if (!id||id.indexOf(pid+"he")<0) {
- continue;
- }
- var cid = h[i].getAttribute("cid");
- var handle = target.ownerDocument.getElementById(pid+"ha"+cid);
- if (handle) {
- theme.tableAddWidthListeners(client,theme,handle,cid,div,pid);
- }
- if (coVar||sortVar) {
- theme.addCSSClass(h[i],"clickable");
- theme.addToDragOrderGroup(client,theme,h[i],dragOrderGroup,coVar,sortVar,sortascVar,sortasc);
- }
- }
-
- var hin = target.ownerDocument.getElementById(pid+"hin");
- var cin = target.ownerDocument.getElementById(pid+"cin");
- theme.scrollTableRegisterLF(client,theme,div,inner,cout,hout,cin,hin);
-}
-// Header order drag & drop
-DefaultTheme.prototype.tableAddWidthListeners = function(client,theme,element,cid,table,pid) {
-
- var colWidths = table.colWidths;
-
- var mouseDragListener = function (e) {
- var evt = client.getEvent(e);
- evt.stop();
- element.ownerDocument.onselectstart = function(e) {return false;}
- var target = element.target;
- var div = target.parentNode;
- var td = div.parentNode;
- //target.style.position = "relative";
- target.style.zIndex = "99999";
- var offset = -(target.origX-evt.mouseX+10);
- var w = (target.origW+offset);
- if (w < 7) w = 7;
- try {
- target.style.left = offset+"px";
- td.width = w;
- td.style.width = w+"px";
- td.firstChild.style.width = w+"px";
- colWidths[cid] = w;
- } catch (err) {
- client.debug("Failed: d&d target.style.left="+ offset+"px");
- }
-
- }
-
- var mouseUpListener = function(e) {
- client.removeEventListener(element.ownerDocument.body,"mousemove",mouseDragListener);
- client.removeEventListener(element.ownerDocument.body,"mouseup",arguments.callee);
- client.removeEventListener(element.ownerDocument.body,"drag",stopListener);
- var evt = client.getEvent(e);
- evt.stop();
- element.ownerDocument.onselectstart = null;
- element.dragging = false;
- // TODO apply for all rows
- table.recalc(pid,table);
- return false;
- };
-
- var stopListener = function (e) {
- var evt = client.getEvent(e);
- evt.stop();
- return false;
- }
-
- client.addEventListener(element,"mousedown", function(e) {
- var evt = client.getEvent(e);
- evt.stop();
- element.dragging = true;
- element.moved = false;
- element.target = evt.target;
- evt.target.origX = evt.mouseX;
- evt.target.origW = evt.target.parentNode.offsetWidth;
- client.addEventListener(element.ownerDocument.body,"mousemove", mouseDragListener);
- client.addEventListener(element.ownerDocument.body,"mouseup", mouseUpListener);
- client.addEventListener(element.ownerDocument.body,"drag",stopListener);
- });
-}
-
-DefaultTheme.prototype.scrollTableRegisterLF = function(client,theme,paintableElement,inner,cout,hout,cin,hin) {
- client.registerLayoutFunction(paintableElement,function() {
- var w = (inner.offsetWidth-2) +"px";
- cout.style.width = w;
- //cin.style.width = w;
- //hout.style.width = w;
- //hin.style.width = w;
- hout.style.width = hout.offsetParent.offsetWidth + "px";
- //div.recalc();
- });
-}
-
-DefaultTheme.prototype.scrollTableAddScrollListener = function (theme,target,pid,lr,fr,rows,totalrows,fv) {
- var hout = target.ownerDocument.getElementById(pid+"hout");
- var cout = target.ownerDocument.getElementById(pid+"cout");
- client.addEventListener(cout,"scroll", function (e) {
- if (cout.scrollTimeout) {
- clearTimeout(cout.scrollTimeout);
- }
- hout.scrollLeft = cout.scrollLeft;
- target.scrolledLeft = cout.scrollLeft;
- var status = target.ownerDocument.getElementById(pid+"status");
- var d = theme.scrollTableGetFV(cout,lr,fr,rows,totalrows,fv);
- if (d!=fv) {
- status.innerHTML = d + "-" + (d+rows-1) + " / " + totalrows;
- status.style.display = "";
- }
- cout.scrollTimeout = setTimeout(function () {
- var cout = target.ownerDocument.getElementById(pid+"cout");
- cout.scrollHandler();
- },500)
- });
-}
-DefaultTheme.prototype.scrollTableGetFV = function(cout,lr,fr,rows,totalrows,fv) {
- var rh = (lr-fr)/rows;
- if (cout.scrollTop >= (fr+rh/2) || cout.scrollTop <= (fr-rh/2)) {
- var d = Math.round((cout.scrollTop-fr)/rh);
- d = (fv+d);
- if (d<1) d=1; // scrolled past begin
- if (d>(totalrows-rows+1)) d=(totalrows-rows+1); // scrolled past last page
- return d;
- } else {
- return fv;
- }
- }
-DefaultTheme.prototype.scrollTableAddScrollHandler = function(client,theme,cout,target,status,lr,fr,rows,totalrows,fv,fvVar,immediate) {
- cout.scrollHandler = function () {
- var rh = (lr-fr)/rows;
- var d = theme.scrollTableGetFV(cout,lr,fr,rows,totalrows,fv);
- if (d!=fv) {
- // only submit if firstvisible changed
- status.innerHTML = d + "-" + (d+rows-1) + " / " + totalrows + "...";
- status.style.display = "";
- // always immediate
- theme.setVariable(client, fvVar, d, true);
- } else {
- // else realign
- status.style.display = "none";
- cout.scrollTop = fr;
- }
- };
-}
-DefaultTheme.prototype.scrollTableRecalc = function(pid,target) {
- var defPad = 7;
- var div = target.ownerDocument.getElementById(pid);
- var wholeWidth = div.initialWidth;
- var colWidths = div.colWidths;
- if (!colWidths) {
- colWidths = new Object();
- div.colWidths = colWidths;
- }
- var hout = target.ownerDocument.getElementById(pid+"hout");
- var cout = target.ownerDocument.getElementById(pid+"cout");
- var hin = target.ownerDocument.getElementById(pid+"hin");
- var cin = target.ownerDocument.getElementById(pid+"cin");
- var h = hin.getElementsByTagName("td");
- var c = cin.getElementsByTagName("td");
-
- var whole = 0;
- var col = -1;
- for (var i = 0;i<h.length;i++) {
- if (!h[i].getAttribute||!h[i].getAttribute("id")||h[i].getAttribute("id").indexOf(pid+"he")<0) {
- continue;
- }
- col++;
- // colWidth, or whole width if only one column
- var cw = (h.length>1?colWidths[h[i].getAttribute("cid")]:hout.clientWidth-20);
- var w1 = h[i].firstChild.clientWidth + defPad;
- var w2 = (c[col]?c[col].firstChild.clientWidth + defPad:0);
-
- var w = parseInt((cw?cw:(w1>w2?w1:w2)));
-
- h[i].width = w;
- h[i].style.width = w+"px";
- h[i].firstChild.style.width = w+"px";
- var rows = c.length/h.length;
- for (var j=0;j<rows;j++) {
- var idx = j*h.length+col;
-
- if (c[idx]) {
- c[idx].width = w;
- c[idx].firstChild.style.width = w+"px";
- c[idx].style.width = w+"px";
- colWidths[h[i].getAttribute("cid")] = w;
- }
- }
- whole += parseInt(w);
- }
-
-}
-// Header order drag & drop
-DefaultTheme.prototype.addToDragOrderGroup = function (client,theme,element,group,variable,sortVar,sortascVar,sortasc) {
- element.dragGroup = group;
- if (!group.elements) {
- group.elements = new Array();
- }
- var idx = group.elements.length;
- group.elements[idx] = element;
-
- var mouseDragListener = function (e) {
- var evt = client.getEvent(e);
- evt.stop();
- element.ownerDocument.onselectstart = function() {return false;}
- var target = element.target;
- target.style.position = "relative";
- target.style.top = "5px";
- try {
- target.style.left = -(target.origX-evt.mouseX+10)+"px";
- } catch (err) {
- client.error("Failed: d&d target.style.left="+ (-(target.origX-evt.mouseX+10)+"px"));
- }
- var dragGroup = element.dragGroup;
- dragGroup.moved = true;
- var els = dragGroup.elements;
- for (var i=0;i<els.length;i++) {
- if (i==element.idx) continue;
- var el = els[i];
- var p = client.getElementPosition(el);
- if (i!=dragGroup.origIdx&&i-1!=dragGroup.origIdx&&p.x < evt.mouseX && p.x+p.w/2 > evt.mouseX) {
- dragGroup.targetIdx = i;
- el.style.borderLeft = "1px solid black";
- el.style.borderRight = "";
- break;
- } else if (i!=dragGroup.origIdx&&i+1!=dragGroup.origIdx && p.x+p.w/2 < evt.mouseX && p.x+p.w > evt.mouseX) {
- dragGroup.targetIdx = i+1;
- el.style.borderRight = "1px solid black";
- el.style.borderLeft = "";
- break;
- } else {
- dragGroup.targetIdx = dragGroup.origIdx;
- el.style.borderRight = "";
- el.style.borderLeft = "";
- }
- }
- }
-
- var mouseUpListener = function(e) {
- client.removeEventListener(element.ownerDocument.body,"mousemove",mouseDragListener);
- client.removeEventListener(element.ownerDocument.body,"mouseup",arguments.callee);
- var evt = client.getEvent(e);
- evt.stop();
- element.ownerDocument.onselectstart = null;
- element.target.style.background = "";
- element.dragGroup.dragging = false;
- if (element.dragGroup.dragTM) {
- clearTimeout(element.dragGroup.dragTM);
- }
- if (!element.dragGroup.moved) {
- if (sortVar) {
- var cid = element.getAttribute("cid");
- var sorted = element.getAttribute("sorted");
- //alert("sorting "+element.getAttribute("cid") + " " + sorted + " " + sortasc);
- if (sorted) {
- theme.setVariable(client, sortascVar, !sortasc, true);
- } else {
- theme.setVariable(client, sortVar, cid, true);
- }
- }
- }
- var origIdx = element.dragGroup.origIdx;
- var targetIdx = element.dragGroup.targetIdx;
- if (origIdx != targetIdx) {
- var els = element.dragGroup.elements;
- var neworder = new Array();
- for (var i=0;i<els.length;i++) {
- if (i==origIdx) continue;
- if (i==targetIdx) {
- neworder[neworder.length] = els[origIdx].getAttribute("cid");
- }
- neworder[neworder.length] = els[i].getAttribute("cid");
- }
- theme.setVariable(client, variable, neworder, true);
- } else {
- element.target.style.left = "0px";
- element.target.style.top = "0px";
- }
- };
-
- client.addEventListener(element,"mousedown", function(e) {
- var evt = client.getEvent(e);
- evt.stop();
- element.dragGroup.dragging = true;
- element.dragGroup.moved = false;
- element.dragGroup.origIdx = idx;
- element.dragGroup.targetIdx = idx;
- element.target = evt.target;
- evt.target.dragGroup = element.dragGroup;
- evt.target.origX = evt.mouseX;
- evt.target.idx = idx;
- if (element.dragGroup.dragTM) {
- clearTimeout(element.dragGroup.dragTM);
- }
- client.addEventListener(element.ownerDocument.body,"mouseup", mouseUpListener);
- if (variable) {
- // column reordering allowed
- group.dragTM = setTimeout(function () {
- if(element.dragGroup.dragging) {
- evt.target.style.background = "white";
- client.addEventListener(element.ownerDocument.body,"mousemove",mouseDragListener);
- }
- },100);
- }
- });
- //client.addEventListener(element,"mouseup", mouseUpListener);
-}
-
-DefaultTheme.prototype.renderSelect = function(renderer,uidl,target,layoutInfo) {
-
- var theme = renderer.theme;
- var client = renderer.client;
-
- // Create containing element
- var div = renderer.theme.createPaintableElement(renderer,uidl,target,layoutInfo);
- if (uidl.getAttribute("invisible")) return; // Don't render content if invisible
-
- // Create selection variable
- var selectMode = uidl.getAttribute("selectmode");
- var selectable = selectMode == "multi" || selectMode == "single";
- var immediate = ("true" == uidl.getAttribute("immediate"));
- var disabled = ("true" == uidl.getAttribute("disabled"));
- var readonly = ("true" == uidl.getAttribute("readonly"));
- var newitem = ("true" == uidl.getAttribute("allownewitem"));
- var focusid = uidl.getAttribute("focusid");
- var tabindex = uidl.getAttribute("tabindex");
-
- var selectionVariable = theme.createVariableElementTo(div,theme.getVariableElement(uidl,"array","selected"));
-
- // Render default header
- theme.renderDefaultComponentHeader(renderer,uidl,div,layoutInfo);
-
- // Create select input
- var select = theme.createElementTo(div,"select");
- if (focusid) select.focusid = focusid;
- if (tabindex) select.tabIndex = tabindex;
- if (selectMode == "multi") {
- select.setAttribute("multiple", "true");
- if (newitem) {
- theme.createElementTo(div,"br");
- }
- } else {
- if (newitem) {
- theme.addCSSClass(div,"nobr");
- }
- }
- var options = theme.getFirstElement(uidl,"options");
- if (options != null) {
- options = options.getElementsByTagName("so");
- if (options && options.length && selectMode == "multi") {
- select.size = (options.length>7?7:options.length);
- }
- }
- if (disabled||readonly) {
- select.disabled = "true";
- } else {
- // Add change listener
- theme.addSetVarListener(theme,client,select,"change",selectionVariable,select,immediate);
- }
- // Empty selection for WA compatibility
- var optionNode = theme.createElementTo(select,"option");
- theme.createTextNodeTo(optionNode,"-");
-
- // Selected options
- if (options != null && options.length >0) {
- for (var i=0; i<options.length;i++) {
- var optionNode = new Option(
- options[i].getAttribute("caption"),
- options[i].getAttribute("key")
- );
- select.options[select.options.length] = optionNode;
- if (options[i].getAttribute("selected") == "true") {
- optionNode.selected = true;
- // IE bug workaraund to preserve selection in multiselect
- if(document.all) {
- window.scrollBy(0,0);
- }
- }
- }
- }
-
- if (newitem) {
- var input = theme.createInputElementTo(div,"text");
- var button = theme.createElementTo(div,"button");
- theme.createTextNodeTo(button,"+");
- var newitemVariable = theme.createVariableElementTo(div,theme.getVariableElement(uidl,"string","newitem"));
- theme.addSetVarListener(theme,client,input,"change",newitemVariable,input,true);
- }
-}
-
-DefaultTheme.prototype.renderSelectTwincol = function(renderer,uidl,target,layoutInfo) {
- function deleteOptionFromSelectByOptionValue(select, value) {
- for(var i = 0; i < select.options.length; i++) {
- if(select.options[i].value == value) {
- select.options[i] = null;
- return true;
- }
- }
- }
- function setSelectedOfOptionFromSelectByOptionValue(select, value, sel) {
- for(var i = 0; i < select.options.length; i++) {
- if(select.options[i].value == value) {
- select.options[i].selected = sel;
- return true;
- }
- }
- }
- var theme = renderer.theme;
- var client = renderer.client;
-
- // Create containing element
- var div = renderer.theme.createPaintableElement(renderer,uidl,target,layoutInfo);
- if (uidl.getAttribute("invisible")) return; // Don't render content if invisible
-
- // Create selection variable
- var selectMode = uidl.getAttribute("selectmode");
- var selectable = selectMode == "multi" || selectMode == "single";
- var immediate = ("true" == uidl.getAttribute("immediate"));
- var disabled = ("true" == uidl.getAttribute("disabled"));
- var readonly = ("true" == uidl.getAttribute("readonly"));
- var newitem = ("true" == uidl.getAttribute("allownewitem"));
- var focusid = uidl.getAttribute("focusid");
- var tabindex = uidl.getAttribute("tabindex");
-
- var selectionVariable = theme.createVariableElementTo(div,theme.getVariableElement(uidl,"array","selected"));
-
- // Render default header
- theme.renderDefaultComponentHeader(renderer,uidl,div,layoutInfo);
-
- if (newitem) {
- theme.createElementTo(div,"br");
- }
- // create two selects
- var unselected = theme.createElementTo(div,"select");
- unselected.setAttribute("multiple","true");
- unselected.className = "unselected";
- var selected = theme.createElementTo(div,"select");
- selected.setAttribute("multiple","true");
- selected.className = "selected";
- // buttons to move selections
- var buttonsDiv = theme.createElementTo(div,"div");
- buttonsDiv.className = "buttons";
-
- //set focus and tabindex to unselected select
- if (focusid) unselected.focusid = focusid;
- if (tabindex) unselected.tabIndex = tabindex;
-
- var options = theme.getFirstElement(uidl,"options");
- if (options != null) {
- options = options.getElementsByTagName("so");
- unselected.size = (options.length>7?7:options.length);
- selected.size = (options.length>7?7:options.length);
- }
-
- // Select options
- if (options != null && options.length >0) {
- for (var i=0; i<options.length;i++) {
- var modelOptionNode;
- if (options[i].getAttribute("selected") == "true") {
- modelOptionNode = theme.createElementTo(selected,"option");
- } else {
- modelOptionNode = theme.createElementTo(unselected,"option");
- }
- theme.createTextNodeTo(modelOptionNode,options[i].getAttribute("caption"));
- modelOptionNode.setAttribute("value", options[i].getAttribute("key"));
- }
- }
-
- if (newitem) {
- var input = theme.createInputElementTo(div,"text");
- var button = theme.createElementTo(div,"button");
- theme.createTextNodeTo(button,"+");
- var newitemVariable = theme.createVariableElementTo(div,theme.getVariableElement(uidl,"string","newitem"));
- theme.addSetVarListener(theme,client,input,"change",newitemVariable,input,true);
- }
- var moveRightButton = theme.createElementTo(buttonsDiv, "button");
- moveRightButton.innerHTML = "&gt;&gt;";
- moveRightButton.onclick = function() {
- // loop all selected options unselected-list
- while(unselected.selectedIndex > -1) {
- var option = unselected.options[unselected.selectedIndex];
- //add selected options to end of selected-list
- selected.options[selected.options.length] =
- new Option(
- option.text,
- option.value
- );
- // remove from unselected-list
- deleteOptionFromSelectByOptionValue(unselected,option.value)
- }
- if(selectMode != "multi") {
- // in single select mode, ensure only one option on right side
- // not ment for single select mode, just to be more compatible
- while(selected.options.length > 1) {
- var optionToLeft = selected.options[0];
- unselected.options[unselected.options.length] =
- new Option(
- optionToLeft.text,
- optionToLeft.value
- );
- selected.options[0] = null;
- // remove from selected-list
- deleteOptionFromSelectByOptionValue(selected,optionToLeft.value)
- }
- } // end checking for single variable
- // fire variable change
- var s = new Array();
- for (var i = 0; i < selected.options.length; i++) {
- s[s.length] = selected.options[i].value;
- }
- var value = s.join(',');
- theme.setVariable(client,selectionVariable,value,immediate);
- }
- var moveLeftButton = theme.createElementTo(buttonsDiv, "button");
- moveLeftButton.innerHTML = "&lt;&lt;";
- moveLeftButton.onclick = function() {
- // loop all selected options selected-list
- while(selected.selectedIndex > -1) {
- var option = selected.options[selected.selectedIndex];
- //add selected options to end of selected-list
- unselected.options[unselected.options.length] =
- new Option(
- option.text,
- option.value
- );
- // remove from unselected-list
- deleteOptionFromSelectByOptionValue(selected,option.value)
- }
- // fire variable change
- var s = new Array();
- for (var i = 0; i < selected.options.length; i++) {
- s[s.length] = selected.options[i].value;
- }
- var value = s.join(',');
- theme.setVariable(client,selectionVariable,value,immediate);
- }
- if (disabled||readonly) {
- selected.disabled = "true";
- unselected.disabled = "true";
- moveLeftButton.disabled = "true";
- moveRightButton.disabled = "true";
- }
-
-}
-
-DefaultTheme.prototype.renderSelectOptionGroup = function(renderer,uidl,target,layoutInfo) {
- // TODO:
- // - newitem currently always immediate, change
- // - optiongrouphorizontal style
-
- var theme = renderer.theme;
- var client = renderer.client;
-
- // Create containing element
- var div = theme.createPaintableElement(renderer,uidl,target);
- if (uidl.getAttribute("invisible")) return; // Don't render content if invisible
-
- // Create selection variable
- var selectMode = uidl.getAttribute("selectmode");
- var selectable = selectMode == "multi" || selectMode == "single";
- var immediate = ("true" == uidl.getAttribute("immediate"));
- var disabled = ("true" == uidl.getAttribute("disabled"));
- var readonly = ("true" == uidl.getAttribute("readonly"));
- var newitem = ("true" == uidl.getAttribute("allownewitem"));
- var selectionVariable = theme.createVariableElementTo(div,theme.getVariableElement(uidl,"array","selected"));
-
- // Render default header
- theme.renderDefaultComponentHeader(renderer,uidl,div,layoutInfo);
-
- // Create select input
- var select = theme.createElementTo(div,"div");
- var options = theme.getFirstElement(uidl,"options");
- if (options != null) {
- options = options.getElementsByTagName("so");
- }
-
- // Selected options
- if (options != null && options.length >0) {
- for (var i=0; i<options.length;i++) {
- var optionUidl = options[i];
- var iconUrl = optionUidl.getAttribute("icon");
- var div = theme.createElementTo(select,"div", "nobr");
- var key = optionUidl.getAttribute("key");
-
- // Create input
- var inputName = "input"+uidl.getAttribute("id");
- var inputId = inputName+i;
- var input = null;
- var caption = optionUidl.getAttribute("caption");
- var html;
- if (selectMode == "multi") {
- html = "<input class=\"option\" type=checkbox name=\""+inputName+"\" id=\""+inputId+"\" ";
- } else {
- html = "<input class=\"option\" type=radio name=\""+inputName+"\" id=\""+inputId+"\" ";
- }
- if (disabled||readonly) html += " disabled=\"true\" "
- if (optionUidl.getAttribute("selected") == "true") {
- html += " checked=\"true\" "
- }
- html += " ><label class=\"clickable\" for=\""+inputId+"\">";
- if (caption) html += caption;
- if (iconUrl) {
- if (iconUrl.indexOf("theme://") == 0) {
- iconUrl = (theme.iconRoot != null ? theme.iconRoot : theme.root)
- + iconUrl.substring(8);
- }
- html += "<IMG src=\""+iconUrl+"\" class=\"icon\">";
- }
- html += "</label>";
-
- div.innerHTML = html;
- if (!(disabled||readonly)) {
- var input = div.firstChild;
- if (selectMode == "multi") {
- theme.addToggleVarListener(theme,client,input,"click",selectionVariable,key,immediate);
- } else {
- theme.addSetVarListener(theme,client,input,"click",selectionVariable,key,immediate);
- }
- }
- }
- }
- if (newitem) {
- var ni = theme.createElementTo(div,"div","newitem");
- var input = theme.createInputElementTo(ni,"text");
- var button = theme.createElementTo(ni,"button");
- theme.createTextNodeTo(button,"+");
- var newitemVariable = theme.createVariableElementTo(ni,theme.getVariableElement(uidl,"string","newitem"));
- theme.addSetVarListener(theme,client,input,"change",newitemVariable,input,true);
- }
-}
-
-DefaultTheme.prototype.renderLabel = function(renderer,uidl,target,layoutInfo) {
-
- // Create container element
- var div = renderer.theme.createPaintableElement(renderer,uidl,target,layoutInfo);
- if (uidl.getAttribute("invisible")) return; // Don't render content if invisible
-
- // Create default header
- var caption = renderer.theme.renderDefaultComponentHeader(renderer,uidl,div,layoutInfo);
-
- // Render children to div
- if (uidl.childNodes.length>0) {
- div = renderer.theme.createElementTo(div,"div");
- renderer.theme.renderChildNodes(renderer, uidl, div);
- }
- if (div.innerHTML == "") div.innerHTML = "&nbsp;";
-}
-
-DefaultTheme.prototype.renderData = function(renderer,uidl,target) {
-
- var html = "";
- for (var i=0; i<uidl.childNodes.length; i++) {
- var child = uidl.childNodes.item(i);
- if (child.nodeType == Node.ELEMENT_NODE) {
- html += renderer.theme.nodeToString(child,true);
- } if (child.nodeType == Node.TEXT_NODE && child.data != null) {
- html += child.data;
- }
- }
- target.innerHTML = html;
-
-}
-
-DefaultTheme.prototype.renderPre = function(renderer,uidl,target) {
-
- // Create pre node
- var pre = renderer.theme.createElementTo(target,"pre");
-
- var html = "";
- for (var i=0; i<uidl.childNodes.length; i++) {
- var child = uidl.childNodes.item(i);
- if (child.nodeType == Node.ELEMENT_NODE) {
- html += renderer.theme.nodeToString(child,true);
- } if (child.nodeType == Node.TEXT_NODE && child.data != null) {
- html += child.data;
- }
- }
- pre.innerHTML = html;
-}
-
-
-DefaultTheme.prototype.renderButton = function(renderer,uidl,target,layoutInfo) {
- // Branch for checkbox
-
- if (uidl.getAttribute("type") == "switch") {
- return renderer.theme.renderCheckBox(renderer,uidl,target,layoutInfo);
- }
-
- // Shortcuts
- var theme = renderer.theme;
- var client = renderer.client;
-
- var disabled = "true"==uidl.getAttribute("disabled");
- var readonly = "true"==uidl.getAttribute("readonly");
- var immediate = "true"==uidl.getAttribute("immediate");
- var tabindex = uidl.getAttribute("tabindex");
-
- var linkStyle = "link"==uidl.getAttribute("style");
-
- var div = theme.createPaintableElement(renderer,uidl,target,layoutInfo);
- if (uidl.getAttribute("invisible")) return; // Don't render content if invisible
-
- div = renderer.theme.createElementTo(div,"div",(linkStyle?"link clickable":"outset clickable"));;
- var inner = renderer.theme.createElementTo(div,"div",(linkStyle?"pad":"border pad bg"));
-
- var caption = theme.renderDefaultComponentHeader(renderer,uidl,inner);
- theme.addTabtoHandlers(client,theme,caption,div,tabindex,("default"==uidl.getAttribute("style")));
-
- if (!disabled&&!readonly) {
- // Handlers
- var v = theme.getVariableElement(uidl,"boolean", "state");
- if (v != null) {
- var varId = v.getAttribute("id");
- theme.addSetVarListener(theme,client,div,"click",varId,"true",immediate);
- theme.addAddClassListener(theme,client,div,"mouseover","over",div);
- theme.addRemoveClassListener(theme,client,div,"mouseout","over",div);
- }
- }
-
-}
-
-DefaultTheme.prototype.renderCheckBox = function(renderer,uidl,target,layoutInfo) {
- // Shortcuts
- var theme = renderer.theme;
- var client = renderer.client;
-
- var div = theme.createPaintableElement(renderer,uidl,target,layoutInfo);
- if (uidl.getAttribute("invisible")) return; // Don't render content if invisible
-
- var immediate = (uidl.getAttribute("immediate") == "true");
- var disabled = (uidl.getAttribute("disabled") == "true");
- var readonly = (uidl.getAttribute("readonly") == "true");
- var tabindex = uidl.getAttribute("tabindex");
-
- // Create input
- var div = theme.createElementTo(div,"div","nocappad nobr");
- var input = theme.createInputElementTo(div,"checkbox");
- input.setAttribute("id", "input"+uidl.getAttribute("id"));
- if (tabindex) input.tabIndex = tabindex;
- if (disabled||readonly) {
- input.disabled = "true";
- }
-
- // Create label
- var label = theme.createElementTo(div,"label", "clickable");
- var cap = theme.renderDefaultComponentHeader(renderer,uidl,label);
- theme.addCSSClass(cap,"inline");
- label.setAttribute("for","input"+uidl.getAttribute("id"));
- // Value
- var v = theme.getVariableElement(uidl,"boolean", "state");
- if ( v!= null) {
- var varId = v.getAttribute("id");
- input.checked = (v.getAttribute("value") == "true");
- // Attach listener
- theme.addSetVarListener(theme,client,input,(immediate?"click":"change"),varId,input,immediate);
- }
-}
-
-
-///////
-/* TODO merge or delete the rest
-
-/**
- * Render tree as a menubar.
- * NOTE:
- * First level nodes are not selectable - menu opens with click.
- * If style == "coolmenu", immediate is forced.
- *
- */
-
-DefaultTheme.prototype.renderTreeMenu = function(renderer,uidl,target,layoutInfo) {
-
- var theme = renderer.theme;
-
- // Create container element
- var div = renderer.theme.createPaintableElement(renderer,uidl,target,layoutInfo);
- if (uidl.getAttribute("invisible")) return; // Don't render content if invisible
-
- // Get tree attributes
- var style = uidl.getAttribute("style");
- var immediate = ("true" == uidl.getAttribute("immediate")||style=="coolmenu");
- var disabled = ("true" == uidl.getAttribute("disabled"));
- var readonly = ("true" == uidl.getAttribute("readonly"));
- var selectMode = uidl.getAttribute("selectmode");
- var selectable = selectMode == "multi" || selectMode == "single";
- var selected;
- if (selectable) {
- selected = new Object();
- }
- var selectionVariable = theme.createVariableElementTo(div,theme.getVariableElement(uidl,"array","selected"));
- var expandVariable = theme.createVariableElementTo(div,theme.getVariableElement(uidl,"array","expand"));
- var collapseVariable = theme.createVariableElementTo(div,theme.getVariableElement(uidl,"array","collapse"));
-
- var actions = null;
- var actionVar = null;
- var alNode = theme.getFirstElement(uidl,"actions")
- if (alNode) {
- actionVar = theme.createVariableElementTo(div,theme.getVariableElement(alNode,"string","action"));
- actions = new Object();
- var ak = alNode.getElementsByTagName("action");
- for (var i=0;i<ak.length;i++) {
- actions[ak[i].getAttribute("key")] = ak[i].getAttribute("caption");
- }
- }
- delete alNode;
-
- // Create default header
- var caption = renderer.theme.renderDefaultComponentHeader(renderer,uidl,div,layoutInfo);
-
- // Content DIV
- var content = theme.createElementTo(div,"div","content menu");
-
- // Iterate all nodes
- for (var i = 0; i< uidl.childNodes.length;i++) {
- var node = uidl.childNodes[i];
- if (node.nodeName == "node" || node.nodeName == "leaf") {
- theme.renderTreeMenuNode(renderer,node,content,selectable,selectMode,selected,selectionVariable,expandVariable,collapseVariable,actions,actionVar,immediate,disabled,readonly,0);
- }
- }
-}
-
-DefaultTheme.prototype.renderTreeMenuNode = function(renderer,node,target,selectable,selectMode,selected,selectionVariable,expandVariable,collapseVariable,actions,actionVar,immediate,disabled,readonly,level) {
-
- var theme = renderer.theme;
- var client = renderer.client;
-
- var n = theme.createElementTo(target,"div",(level==0?"inline clickable":"clickable"));
-
-
- // Caption
- var cap = theme.createElementTo(n,"div","inline caption pad");
- theme.createTextNodeTo(cap,node.getAttribute("caption"));
-
- // Expand/collapse/spacer button
- var img = theme.createElementTo(n,"img","icon");
- img.align = "absbottom";
- var key = node.getAttribute("key");
- var icon = node.getAttribute("icon");
- if (icon) {
- var iconurl = theme.root+icon.split("theme:")[1];
- var iimg = theme.createElementTo(n,"img","icon");
- iimg.src = iconurl;
- }
-
-
- // Hover effects
- if (!disabled&&!readonly) {
- theme.addAddClassListener(theme,client,n,"mouseover","selected",n);
- theme.addRemoveClassListener(theme,client,n,"mouseout","selected",n);
- }
-
- // Server-side selection
- if (selectable && node.getAttribute("selected") == "true") {
- theme.addCSSClass(n,"selected");
- selected[key] = n;
- }
-
- // Indicate selection
- if (theme.listContainsInt(selectionVariable.value,key)) {
- theme.addCSSClass(n, "selected");
- }
-
- // Selection listeners
- if (selectable && !disabled && (level != 0 || node.nodeName == "leaf")) {
- if (!readonly) {
- if (selectMode == "single") {
- theme.addAddClassListener(theme,client,n,"click","selected",n,selected);
- theme.addSetVarListener(theme,client,n,"click",selectionVariable,key,immediate);
-
- } else if (selectMode == "multi") {
- theme.addToggleClassListener(theme,client,n,"click","selected");
- theme.addToggleVarListener(theme,client,n,"click",selectionVariable,key,immediate);
-
- }
- }
- }
-
- // Actions
- if (!disabled && !readonly) {
- for (var i = 0; i< node.childNodes.length;i++) {
- var childNode = node.childNodes[i];
- if (childNode.nodeName == "al" ) {
- theme.renderActionPopup(renderer,childNode,n,actions,actionVar,key,1); // TODO check
- }
- }
- }
-
- // Render all sub-nodes
- if (node.nodeName == "node") {
- var subnodes = theme.createElementTo(target,"div","hide popup");
- var inner = theme.createElementTo(subnodes,"div","border");
- theme.addTogglePopupListener(theme,client,n,(level==0?"click":"mouseover"),subnodes,0,null,n);
- //theme.addToggleClassListener(theme,client,n,(level==0?"click":"mouseover"),"hide",subnodes)
- if (node.childNodes != null && node.childNodes.length >0) {
- img.src = theme.root + "img/tree/empty.gif";
- img.expanded = "true";
- } else {
- img.src = theme.root + "img/tree/empty.gif";
- img.expanded = "false";
- }
- for (var i = 0; i< node.childNodes.length;i++) {
- var childNode = node.childNodes[i];
- if (childNode.nodeName == "node" || childNode.nodeName == "leaf") {
- theme.renderTreeMenuNode(renderer,childNode,inner,selectable,selectMode,selected,selectionVariable,expandVariable,collapseVariable,actions,actionVar,immediate,disabled,readonly,level+1);
- }
- }
-
- // Add event listener
- if (!disabled&&level!=0) {
- var target = (selectable&&!readonly?img:n);
- theme.addToggleClassListener(theme,client,target,"mouseup","hidden",subnodes);
- theme.addExpandNodeListener(theme,client,img,"mouseup",subnodes,expandVariable,collapseVariable,key,immediate,target);
- theme.addStopListener(theme,client,target,"mouseup");
- theme.addStopListener(theme,client,target,"click");
- }
-
- } else {
- img.src = theme.root + "img/tree/empty.gif";
- }
-}
-
-/**
-* 5.6.2006 - Jouni Koivuviita
-* New innerHTML components
-* RENAMED for testing both - marc
-*/
-
-DefaultTheme.prototype.renderNewPanel = function(renderer,uidl,target,layoutInfo) {
- // Shortcuts
- var theme = renderer.theme;
- var style = uidl.getAttribute("style");
- // Create component element
- var div = theme.createPaintableElement(renderer,uidl,target);
-
- /* New panel theme, 8.6.2006 - Jouni Koivuviita */
- div.innerHTML = "<div class=\"top\"><div class=\"right\"></div><div class=\"left\"><div class=\"title\"></div></div></div><div class=\"middle\"></div><div class=\"bottom\"><div class=\"right\"></div><div class=\"left\"></div></div>";
- var cap = div.firstChild.firstChild.nextSibling.firstChild;
- var content = div.childNodes[1];
- theme.applyWidthAndHeight(uidl,div.childNodes[1],"height");
- theme.applyWidthAndHeight(uidl,div,"width");
-
- /*
- div.innerHTML = "<TABLE width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><TR height=\"35\"><TD width=\"12\"><IMG onload=\"png(this);\" src=\""+theme.root+"img/top-left.png\"></TD><TD style=\"background: url('"+theme.root+"img/top.png') !important;background: none;background-position:right;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+theme.root+"img/top.png', sizingMethod='scale');\"></TD><TD width=\"12\"><IMG onload=\"png(this);\" src=\""+theme.root+"img/top-right.png\"></TD></TR><TR><TD style=\"background: url('"+theme.root+"img/left.png') !important;background: none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+theme.root+"img/left.png', sizingMethod='scale');\"></TD><TD bgcolor=white></TD><TD style=\"background: url('"+theme.root+"img/right.png') !important;background: none;background-position:right;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+theme.root+"img/right.png', sizingMethod='scale');\"></TD></TR><TR height=\"12\"><TD><IMG onload=\"png(this);\" src=\""+theme.root+"img/bottom-left.png\"></TD><TD style=\"background: url('"+theme.root+"img/bottom.png') !important;background: none;background-position:right;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+theme.root+"img/bottom.png', sizingMethod='scale');\"></TD><TD><IMG onload=\"png(this);\" src=\""+theme.root+"img/bottom-right.png\"></TD></TR></TABLE>";
- var cap = div.firstChild.firstChild.firstChild.childNodes[1];
- var content = div.firstChild.firstChild.childNodes[1].childNodes[1];
- */
-
- theme.renderDefaultComponentHeader(renderer,uidl,cap);
- theme.renderChildNodes(renderer, uidl, content);
-}
-
-DefaultTheme.prototype.renderNewPanelModal = function(renderer,uidl,target,layoutInfo,alignment) {
- // Shortcuts
- var theme = renderer.theme;
- //var parentTheme = theme.parent;
- // Create component element
- var div = theme.createPaintableElement(renderer,uidl,target);
- var html = "<IFRAME frameborder=\"0\" style=\"border:none;z-index:9997;position:absolute;top:0px;left:0px;width:100%;height:100%;background-color:white;filter: alpha(opacity=80);opacity:0.8;\"></IFRAME>";
- html += "<DIV align=\"center\" style=\"position:absolute;top:0px;width:100%;left:0px;z-index:9999;filter: alpha(opacity=100);opacity:1;\"><TABLE cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><TR height=\"35\"><TD width=\"12\"><IMG onload=\"png(this);\" src=\""+theme.root+"img/top-left.png\"></TD><TD style=\"background: url('"+theme.root+"img/top.png') !important;background: none;background-position:right;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+theme.root+"img/top.png', sizingMethod='scale');\"></TD><TD width=\"12\"><IMG onload=\"png(this);\" src=\""+theme.root+"img/top-right.png\"></TD></TR><TR><TD style=\"background: url('"+theme.root+"img/left.png') !important;background: none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+theme.root+"img/left.png', sizingMethod='scale');\"></TD><TD bgcolor=white ></TD><TD style=\"background: url('"+theme.root+"img/right.png') !important;background: none;background-position:right;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+theme.root+"img/right.png', sizingMethod='scale');\"></TD></TR><TR height=\"12\"><TD><IMG onload=\"png(this);\" src=\""+theme.root+"img/bottom-left.png\"></TD><TD style=\"background: url('"+theme.root+"img/bottom.png') !important;background: none;background-position:right;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+theme.root+"img/bottom.png', sizingMethod='scale');\"></TD><TD><IMG onload=\"png(this);\" src=\""+theme.root+"img/bottom-right.png\"></TD></TR></TABLE><DIV>";
- div.innerHTML = html;
- var overlay = div.firstChild;
- overlay.style.width = div.ownerDocument.body.offsetWidth + "px";
- overlay.style.height = div.ownerDocument.body.offsetHeight + "px";
- var table = div.childNodes[1].firstChild;
- var cap = table.firstChild.firstChild.childNodes[1];
- var content = table.firstChild.childNodes[1].childNodes[1];
-
- theme.renderDefaultComponentHeader(renderer,uidl,cap);
- theme.renderChildNodes(renderer, uidl, content);
-
- var ifrdiv = theme.createElementTo(div,"div");
-
- html = "<IFRAME frameborder=\"0\" style=\"border:none;z-index:9998;position:absolute;top:"+(div.childNodes[1].offsetTop+5)+"px;left:"+(table.offsetLeft+5)+"px;width:"+(table.offsetWidth-7)+"px;height:"+(table.offsetHeight-7)+"px;background-color:white;filter: alpha(opacity=100);opacity:1;\"></IFRAME>";
- ifrdiv.innerHTML += html;
-}
-
-DefaultTheme.prototype.renderNewPanelLight = function(renderer,uidl,target,layoutInfo) {
- // Shortcuts
- var theme = renderer.theme;
- var style = uidl.getAttribute("style");
- // Create component element
- var div = theme.createPaintableElement(renderer,uidl,target);
-
- div.innerHTML = "<TABLE width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><TR><TD width=\"12\"><IMG onload=\"png(this);\" src=\""+theme.root+"img/top-left-lite.png\"></TD><TD style=\"background: url('"+theme.root+"img/top-lite.png') !important;background: none;background-position:right;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+theme.root+"img/top-lite.png', sizingMethod='scale');\"></TD><TD width=\"12\"><IMG onload=\"png(this);\" src=\""+theme.root+"img/top-right-lite.png\"></TD></TR><TR><TD style=\"background: url('"+theme.root+"img/left.png') !important;background: none;background-position:right;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+theme.root+"img/left.png', sizingMethod='scale');\"></TD><TD bgcolor=white></TD><TD style=\"background: url('"+theme.root+"img/right.png') !important;background: none;background-position:right;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+theme.root+"img/right.png', sizingMethod='scale');\"></TD></TR><TR><TD><IMG onload=\"png(this);\" src=\""+theme.root+"img/bottom-left.png\"></TD><TD style=\"background: url('"+theme.root+"img/bottom.png') !important;background: none;background-position:right;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+theme.root+"img/bottom.png', sizingMethod='scale');\"></TD><TD><IMG onload=\"png(this);\" src=\""+theme.root+"img/bottom-right.png\"></TD></TR></TABLE>";
-
- var content = div.firstChild.firstChild.childNodes[1].childNodes[1];
-
- theme.renderDefaultComponentHeader(renderer,uidl,content);
- theme.renderChildNodes(renderer, uidl, content);
-}
-
-DefaultTheme.prototype.renderNewPanelNone = function(renderer,uidl,target,layoutInfo) {
- // Shortcuts
- var theme = renderer.theme;
- var style = uidl.getAttribute("style");
- // Create component element
- var div = theme.createPaintableElement(renderer,uidl,target);
-
- var content = theme.createElementTo(div,"div");
-
- theme.renderDefaultComponentHeader(renderer,uidl,content);
- theme.renderChildNodes(renderer, uidl, content);
-}
-
-DefaultTheme.prototype.renderNewTabSheet = function(renderer,uidl,target,layoutInfo) {
- // Shortcuts
- var theme = renderer.theme;
-
- // Create component element
- var div = theme.createPaintableElement(renderer,uidl,target);
- if (uidl.getAttribute("invisible")) return;
-
- var style = uidl.getAttribute("style");
- var disabled = ("true"==uidl.getAttribute("disabled"));
-
- var cdiv = theme.createElementTo(div,"div");
- var caption = theme.renderDefaultComponentHeader(renderer,uidl,cdiv,layoutInfo);
- div = theme.createElementTo(div,"div");
-
- // Tabs
- var tabNodes = theme.getChildElements(uidl,"tabs");
- if (tabNodes != null && tabNodes.length >0) tabNodes = theme.getChildElements(tabNodes[0],"tab");
- var selectedTabNode = null;
- if (tabNodes != null && tabNodes.length >0) {
- var html = "<TABLE width=\"100%\" class=\"tabsheet-table\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><TBODY>";
- html += "<TR valign=\"bottom\"><TD></TD>";
-
- var posttabs = "<TR valign=\"top\"><TD><IMG onload=\"png(this);\" src=\""+theme.root+"img/tabsheet/top-left-lite.png\"/></TD>";
- var len = tabNodes.length;
- for (var i=0; i<len;i++) {
- var tab = tabNodes[i];
- var caption = tab.getAttribute("caption");
- var icon = tab.getAttribute("icon");
- if (icon) icon = theme.root+icon.split("theme://")[1];
- var selected = ("true"==tab.getAttribute("selected"));
- var disabled = ("true"==tab.getAttribute("disabled"));
- var offset = (selected?6:4);
-
- var variant = "";
- if (disabled) {
- variant = "-dis";
- } else if (selected) {
- variant = "-on";
- }
-
- if (selected) selectedTabNode = tab;
-
- html += "<TD width=\"1\" align=\"right\"><IMG onload=\"png(this);\" onload=\"png(this);\" src=\""+theme.root+"img/tabsheet/top-left"+variant+".png\"/></TD><TD class=\""+(disabled?"caption":"caption clickable")+"\" style=\"background-image: url('"+theme.root+"img/tabsheet/top"+variant+".png') !important;background: none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+theme.root+"img/tabsheet/top"+variant+".png', sizingMethod='scale');\">"
- html += "<DIV style=\"padding-top:0.5em;\" class=\"caption"+(selected&&!disabled?"":" clickable")+"\">";
- if (icon) html += "<IMG onload=\"png(this);\" class=\"icon\" src=\""+icon+"\"/>";
- html += caption+"</DIV>";
- html += "</TD><TD><IMG onload=\"png(this);\" src=\""+theme.root+"img/tabsheet/top-right"+variant+".png\"/></TD>";
-
-
- // POSTTABS
- posttabs += "<TD align=\"right\" style=\"background-image: url('"+theme.root+"img/tabsheet/top-lite.png') !important;background: none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+theme.root+"img/tabsheet/top-lite.png', sizingMethod='scale');\"><IMG onload=\"png(this);\" height=\""+(selected?6:4)+"\" width=\"8\" src=\""+theme.root+"img/tabsheet/tab-left.png\"/></TD><TD "+(selected?"bgcolor=\"white\"":"style=\"background-image: url('"+theme.root+"img/tabsheet/top-lite.png') !important;background: white;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+theme.root+"img/tabsheet/top-lite.png', sizingMethod='scale');\"")+"></TD><TD style=\"background-image: url('"+theme.root+"img/tabsheet/top-lite.png') !important;background: none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+theme.root+"img/tabsheet/top-lite.png', sizingMethod='scale');\"><IMG onload=\"png(this);\" height=\""+(selected?6:4)+"\" width=\"8\" src=\""+theme.root+"img/tabsheet/tab-right.png\"/></TD>";
- }
- html += "<TD width=\"100%\"></TD></TR>"+posttabs+"<TD style=\"background-image: url('"+theme.root+"img/tabsheet/top-lite.png') !important;background: none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+theme.root+"img/tabsheet/top-lite.png', sizingMethod='scale');\" ></TD><TD><IMG onload=\"png(this);\" src=\""+theme.root+"img/tabsheet/top-right-lite.png\"/></TD></TR>";
-
- //Content
- html +="</TBODY></TABLE><TABLE width=\"100%\" class=\"tabsheet-table\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><TBODY><TR valign=\"top\"><TD style=\"width:12px;background-image: url('"+theme.root+"img/tabsheet/left.png') !important;background: none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+theme.root+"img/tabsheet/left.png', sizingMethod='scale');\"></TD><TD style=\"width:100% !important;width:auto;\" class=\"tabsheet-content\" bgcolor=\"white\" colspan=\""+(len*3+1)+"\"><DIV></DIV></TD><TD width=\"12\" style=\"background-image: url('"+theme.root+"img/tabsheet/right.png') !important;background: none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+theme.root+"img/tabsheet/right.png', sizingMethod='scale');\"></TD></TR>";
- html += "<TR height=\"12\" valign=\"top\"><TD width=\"8\"><IMG onload=\"png(this);\" src=\""+theme.root+"img/tabsheet/bottom-left.png\"></TD><TD style=\"background-image: url('"+theme.root+"img/tabsheet/bottom.png') !important;background: none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+theme.root+"img/tabsheet/bottom.png', sizingMethod='scale');\" colspan=\""+(len*3+1)+"\"></TD><TD><IMG onload=\"png(this);\" src=\""+theme.root+"img/tabsheet/bottom-right.png\"></TD></TR></TBODY></TABLE>";
- div.innerHTML = html;
-
- // TODO click listeners
-
- if (!disabled) {
- var varId = theme.getVariableElement(uidl,"string","selected").getAttribute("id");
- for (var i=0; i<len;i++) {
- var tabNode = tabNodes[i];
- if (tabNode == selectedTabNode||("true"==tabNode.getAttribute("disabled"))) continue;
- var key = tabNode.getAttribute("key");
- var tab = div.firstChild.firstChild.firstChild.childNodes[2+i*3];
- theme.addAddClassListener(theme,client,tab,"mouseover","over",tab);
- theme.addRemoveClassListener(theme,client,tab,"mouseout","over",tab);
- theme.addSetVarListener(theme,client,tab,"click",varId,key,true);
- }
- }
-
- var content = div.childNodes[1].firstChild.firstChild.childNodes[1];
- if (selectedTabNode) {
- theme.renderChildNodes(renderer,selectedTabNode, content);
- }
-
- }
-
-}
-
-
-DefaultTheme.prototype.addDescriptionAndErrorPopupListener = function(theme, client, target, errorIcon) {
-
- client.addEventListener(target, "mouseover",
- function(e) {
- var pos = theme.calculateAbsoluteEventPosition(theme, client, e);
- theme.showDescriptionAndErrorPopup(theme, target, pos, 500); // 500 = delay
- }
- );
- client.addEventListener(target, "mouseout",
- function(e) {
- if(!target._forcedOpen) theme.hideDescriptionAndErrorPopup(target);
- }
- );
- client.addEventListener(target.ownerDocument.body, "click",
- function(e) {
- var ev = e? e:window.event;
- if(!ev.cancelBubble) theme.hideDescriptionAndErrorPopup(target, true); // true = force close
- }
- );
-
- if(errorIcon) {
- client.addEventListener(errorIcon, "click",
- function(e) {
- var ev = e? e:window.event;
- var pos = theme.calculateAbsoluteEventPosition(theme, client, e);
- theme.showDescriptionAndErrorPopup(theme, target, pos, null, true); // null = no delay, true = force open
- if(e.stopPropagation) e.stopPropagation();
- ev.cancelBubble = true;
- }
- );
- }
-
-}
-
-DefaultTheme.prototype.showDescriptionAndErrorPopup = function(theme, target, pos, delay, forceOpen) {
-
- if(target._descriptionPopupTimeout) clearTimeout(target._descriptionPopupTimeout);
-
- var descHTML = target._descriptionHTML;
- var errorHTML = target._errorHTML;
- if(!descHTML && !errorHTML) return;
-
- if(!delay) {
- // Reference to correct document
- var doc = target.ownerDocument;
-
- // Maximum css width of the description popup
- var maxPopupWidth = "35em";
-
- var popupContainer;
- var description;
- var error;
-
- // TODO IFRAME below popup?
-
- // If the container div is not found, create it once
- if(!(popupContainer = doc.getElementById("popup-container-div"))) {
- popupContainer = doc.createElement("div");
- popupContainer.className = "popup";
- popupContainer.id = "popup-container-div";
- popupContainer.style.left = "-10000px";
- popupContainer.style.top = "-10000px";
-
- description = doc.createElement("div");
- description.className = "description border";
- popupContainer.appendChild(description);
-
- error = doc.createElement("div");
- error.className = "error";
- popupContainer.appendChild(error);
-
- doc.body.appendChild(popupContainer);
-
- // Enable clicking on container
- client.addEventListener(popupContainer, "click",
- function(e) {
- var ev = e? e:window.event;
- if(e.stopPropagation) e.stopPropagation();
- ev.cancelBubble = true;
- }
- );
- // If already create, restore references
- } else {
- description = popupContainer.firstChild;
- error = popupContainer.childNodes[1];
- }
-
- description.innerHTML = descHTML? descHTML : "";
- error.innerHTML = errorHTML? errorHTML : "";
-
- if(!descHTML) description.style.display = "none";
- else description.style.display = "block";
- if(!errorHTML) error.style.display = "none";
- else error.style.display = "block";
- popupContainer.style.width = "auto";
-
- // Align the popup
- // TODO take smaller resolutions into consideration (i.e. if the popupWidth is wider than the browser window)
- var popupWidth = popupContainer.clientWidth;
- var available = doc.body.clientWidth-pos.x;
-
- if(popupWidth > available) {
- popupContainer.style.width = maxPopupWidth;
- popupWidth = popupContainer.clientWidth;
- if(popupWidth > available) popupContainer.style.left = pos.x + 12 - (popupWidth-available) + "px";
- else popupContainer.style.left = pos.x + 12 + "px";
- popupContainer.style.top = pos.y + 20 + "px";
- } else {
- popupContainer.style.left = pos.x + 12 + "px";
- popupContainer.style.top = pos.y + 20 + "px";
- }
-
- if(forceOpen) target._forcedOpen = true;
- else target._forcedOpen = false;
-
- } else {
- target._descriptionPopupTimeout = setTimeout(function() {theme.showDescriptionAndErrorPopup(theme, target, pos);}, delay);
- }
-}
-
-DefaultTheme.prototype.hideDescriptionAndErrorPopup = function(target, forceClose) {
- if(target._descriptionPopupTimeout) clearTimeout(target._descriptionPopupTimeout);
- if((popupContainer = target.ownerDocument.getElementById("popup-container-div")) && (!target._forcedOpen || forceClose)) {
- popupContainer.style.left = "-10000px";
- popupContainer.style.top = "-10000px";
- target._forcedOpen = false;
- }
-}
-
-
-
-
-/**
-* Calculate the absolute coordinates relative to this documents window of
-* the event using mouse and browser window positions relative to the screen (IE)
-* (Not 100% accurate, some pixels off in both IE and FF)
-* Firefox uses normal DOM calculations.
-*
-* @param boolean modFF Don't use DOM calculations to get the position in Firefox.
-* (Not reliable with all frame and browser plugin compositions)
-*
-* Returns an object with x and y properties.
-*/
-DefaultTheme.prototype.calculateAbsoluteEventPosition = function(theme, client, e, modFF) {
-
- if (!e) var e = window.event;
-
- if(window.screenY) { // Firefox
-
- // Calculate with default DOM calculation
- if(!modFF) return theme.eventPosition(e);
-
- // Doesn't actually work, always returns true.
- var statusBarHeight = (window.statusbar.visible)? 26 : 0; // Default XP Blue theme estimate
-
- // Coordinates to browser windows content area, with no frames.
- // Substract browser chrome (toolbars and such) from the height.
- // Some plugins, that require screen estate from the browser content
- // window, may misalign the coordinates.
- var windowY = window.screenY + (window.outerHeight - window.innerHeight - statusBarHeight);
- var windowX = window.screenX + (window.outerWidth - window.innerWidth);
-
- // Gecko needs to take frames into consideration when calculating the position.
- // TODO Only works reliably when the page is simply divided either into rows or cols.
-
- // Are we in a frame?
- // (this script is in one of the frames, so the parent will have frames)
- var frames = window.parent.frames;
- var len = frames.length;
-
- if(len > 0) { // Frames in use
- var precedingWidth = 0, precedingHeight = 0;
- var flagSucceeding = false;
-
- for(var i=0; i < len; i++) {
- var frame = frames[i];
-
- if(window==frame) flagSucceeding = true;
-
- // Only count preceding widths that are different from this window (don't count row widths)
- if(frame.innerWidth != window.innerWidth || frame != window) {
- if(!flagSucceeding) {
- precedingWidth += frame.innerWidth;
- continue; // Don't count the height anymore
- }
- }
- // Same for preceding heights, if no width was added
- if(frame.innerHeight != window.innerHeight || frame != window) {
- if(!flagSucceeding) precedingHeight += frame.innerHeight;
- }
-
- }
-
- // Do the math :)
- windowY = window.screenY + (window.outerHeight - window.parent.innerHeight + precedingHeight - statusBarHeight);
- windowX = window.screenX + (window.outerWidth - window.parent.innerWidth + precedingWidth);
- }
-
- } else if(window.screenTop) { // IE, handles frames correct natively
- var windowY = window.screenTop;
- var windowX = window.screenLeft;
- }
-
- var scroll = theme.getScrollXY(window);
-
- // TODO Relative positioned containers for the popup
- // will cause wrong positioning
- var posx = e.screenX - windowX + scroll.x;
- var posy = e.screenY - windowY + scroll.y;
- return {x:posx, y:posy};
-
-}
-
-/**
-* Calculate the scroll amount of a window, both x and y.
-*
-* Returns an object with x and y properties.
-*/
-DefaultTheme.prototype.getScrollXY = function(win) {
- var doc = win.document;
- var scrOfX = 0, scrOfY = 0;
- if( typeof( win.pageYOffset ) == 'number' ) {
- //Netscape compliant
- scrOfY = win.pageYOffset;
- scrOfX = win.pageXOffset;
- } else if( doc.body && ( doc.body.scrollLeft || doc.body.scrollTop ) ) {
- //DOM compliant
- scrOfY = doc.body.scrollTop;
- scrOfX = doc.body.scrollLeft;
- } else if( doc.documentElement && ( doc.documentElement.scrollLeft || doc.documentElement.scrollTop ) ) {
- //IE6 standards compliant mode
- scrOfY = doc.documentElement.scrollTop;
- scrOfX = doc.documentElement.scrollLeft;
- }
-
- return {x:scrOfX, y:scrOfY};
-}
-
-/**
-* Calculate event position (Quirksmode.org script)
-*/
-DefaultTheme.prototype.eventPosition = function(e) {
- var posx = 0;
- var posy = 0;
- if (!e) var e = window.event;
-
- if (e.pageX || e.pageY) {
- posx = e.pageX;
- posy = e.pageY;
- } else if (e.clientX || e.clientY) {
- posx = e.clientX + document.body.scrollLeft
- + document.documentElement.scrollLeft;
- posy = e.clientY + document.body.scrollTop
- + document.documentElement.scrollTop;
- }
-
- return {x:posx, y:posy};
-} \ No newline at end of file