diff --git a/oss/vtiger/trunk/jscalendar/calendar-setup.js b/oss/vtiger/trunk/jscalendar/calendar-setup.js
index 6d91ca23..e8566fd0 100644
--- a/oss/vtiger/trunk/jscalendar/calendar-setup.js
+++ b/oss/vtiger/trunk/jscalendar/calendar-setup.js
@@ -1,181 +1,181 @@
-/* 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 5728 2006-05-03 21:19:46Z allanbush $
-
-/**
- * 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("firstDay", 0); // defaults to "Sunday" first
- 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);
-
- 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.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.flat) {
- if (typeof p.flatCallback == "function")
- p.flatCallback(cal);
- else
- alert("No flatCallback given -- doing nothing.");
- return false;
- }
- 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 && p.singleClick && cal.dateClicked)
- cal.callCloseHandler();
- if (update && typeof p.onUpdate == "function")
- p.onUpdate(cal);
- };
-
- 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.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.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 (!(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();
- }
- cal.showsOtherMonths = params.showOthers;
- cal.yearStep = params.step;
- cal.setRange(params.range[0], params.range[1]);
- cal.params = params;
- cal.setDateStatusHandler(params.dateStatusFunc);
- cal.setDateFormat(dateFmt);
- if (mustCreate)
- cal.create();
- cal.parseDate(dateEl.value || dateEl.innerHTML);
- 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;
- };
-};
+/* 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 5728 2006-05-03 21:19:46Z allanbush $
+
+/**
+ * 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("firstDay", 0); // defaults to "Sunday" first
+ 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);
+
+ 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.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.flat) {
+ if (typeof p.flatCallback == "function")
+ p.flatCallback(cal);
+ else
+ alert("No flatCallback given -- doing nothing.");
+ return false;
+ }
+ 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 && p.singleClick && cal.dateClicked)
+ cal.callCloseHandler();
+ if (update && typeof p.onUpdate == "function")
+ p.onUpdate(cal);
+ };
+
+ 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.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.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 (!(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();
+ }
+ cal.showsOtherMonths = params.showOthers;
+ cal.yearStep = params.step;
+ cal.setRange(params.range[0], params.range[1]);
+ cal.params = params;
+ cal.setDateStatusHandler(params.dateStatusFunc);
+ cal.setDateFormat(dateFmt);
+ if (mustCreate)
+ cal.create();
+ cal.parseDate(dateEl.value || dateEl.innerHTML);
+ 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;
+ };
+};
diff --git a/oss/vtiger/trunk/jscalendar/calendar-win2k-cold-1.css b/oss/vtiger/trunk/jscalendar/calendar-win2k-cold-1.css
index a9d97fd2..47f71c56 100644
--- a/oss/vtiger/trunk/jscalendar/calendar-win2k-cold-1.css
+++ b/oss/vtiger/trunk/jscalendar/calendar-win2k-cold-1.css
@@ -1,265 +1,265 @@
-/* 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;
- z-index: 90000;
-}
-
-.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
in footer (only one right now) */
+}
+
+.calendar tfoot .ttip { /* Tooltip (status bar) cell | */
+ 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;
+}
+
+.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/oss/vtiger/trunk/jscalendar/calendar.js b/oss/vtiger/trunk/jscalendar/calendar.js
index 3c3a0cf7..c8ed1dd2 100644
--- a/oss/vtiger/trunk/jscalendar/calendar.js
+++ b/oss/vtiger/trunk/jscalendar/calendar.js
@@ -1,1721 +1,1721 @@
-/* Copyright Mihai Bazon, 2002, 2003 | http://dynarch.com/mishoo/
- * ------------------------------------------------------------------
- *
- * The DHTML Calendar, version 0.9.6 "Keep cool but don't freeze"
- *
- * 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
- */
-
-// $Id: calendar.js 11471 2007-10-15 12:18:52Z mangai $
-
-/** The Calendar object constructor. */
-Calendar = function (firstDayOfWeek, dateStr, onSelected, onClose) {
- // member variables
- this.activeDiv = null;
- this.currentDateEl = null;
- this.getDateStatus = 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 = firstDayOfWeek; // 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;
- // 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;
-};
-
-Calendar.getElement = function(ev) {
- if (Calendar.is_ie) {
- return window.event.srcElement;
- } else {
- return ev.currentTarget;
- }
-};
-
-Calendar.getTargetElement = function(ev) {
- if (Calendar.is_ie) {
- return window.event.srcElement;
- } else {
- return ev.target;
- }
-};
-
-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.firstChild.data = 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.firstChild.data = 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.firstChild.data;
- 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.firstChild.data = 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");
- }
- el.calendar.tooltips.firstChild.data = _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") {
- Calendar.removeClass(cal.currentDateEl, "selected");
- Calendar.addClass(el, "selected");
- closing = (cal.currentDateEl == el);
- if (!closing) {
- cal.currentDateEl = el;
- }
- cal.date = new Date(el.caldate);
- date = cal.date;
- newdate = true;
- // a date was clicked
- if (!(cal.dateClicked = !el.otherMonth))
- cal._init(cal.firstDayOfWeek, date);
- } else {
- if (el.navtype == 200) {
- Calendar.removeClass(el, "hilite");
- cal.callCloseHandler();
- return;
- }
- date = (el.navtype == 0) ? new Date() : new Date(cal.date);
- // 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 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.firstChild.data;
- 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.firstChild.data = 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())) {
- // remember, "date" was previously set to new
- // Date() if TODAY was clicked; thus, it
- // contains today date.
- return false;
- }
- break;
- }
- if (!date.equalsTo(cal.date)) {
- cal.setDate(date);
- newdate = true;
- }
- }
- if (newdate) {
- cal.callHandler();
- }
- if (closing) {
- Calendar.removeClass(el, "hilite");
- 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;
- if (text.substr(0, 1) != "&") {
- cell.appendChild(document.createTextNode(text));
- }
- else {
- // FIXME: dirty hack for entities
- cell.innerHTML = text;
- }
- 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("×", 1, 200).ttip = Calendar._TT["CLOSE"];
- }
-
- row = Calendar.createElement("tr", thead);
- row.className = "headrow";
-
- this._nav_py = hh("«", 1, -2);
- this._nav_py.ttip = Calendar._TT["PREV_YEAR"];
-
- this._nav_pm = hh("‹", 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("›", 1, 1);
- this._nav_nm.ttip = Calendar._TT["NEXT_MONTH"];
-
- this._nav_ny = hh("»", 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.appendChild(document.createTextNode(Calendar._TT["WK"]));
- }
- for (var i = 7; i > 0; --i) {
- cell = Calendar.createElement("td", row);
- cell.appendChild(document.createTextNode(""));
- 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);
- cell.appendChild(document.createTextNode(""));
- }
- for (var j = 7; j > 0; --j) {
- cell = Calendar.createElement("td", row);
- cell.appendChild(document.createTextNode(""));
- 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"] || " ";
-
- 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.appendChild(document.createTextNode(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.appendChild(document.createTextNode(":"));
- 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 = " ";
-
- cal.onSetTime = function() {
- var hrs = this.date.getHours();
- var mins = this.date.getMinutes();
- var pm = (hrs > 12);
- if (pm && t12) hrs -= 12;
- H.firstChild.data = (hrs < 10) ? ("0" + hrs) : hrs;
- M.firstChild.data = (mins < 10) ? ("0" + mins) : mins;
- if (t12)
- AP.firstChild.data = pm ? "pm" : "am";
- };
-
- cal.onUpdateTime = function() {
- var date = this.date;
- var h = parseInt(H.firstChild.data, 10);
- if (t12) {
- if (/pm/i.test(AP.firstChild.data) && h < 12)
- h += 12;
- else if (/am/i.test(AP.firstChild.data) && h == 12)
- h = 0;
- }
- var d = date.getDate();
- var m = date.getMonth();
- var y = date.getFullYear();
- date.setHours(h);
- date.setMinutes(parseInt(M.firstChild.data, 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.appendChild(document.createTextNode(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";
- yr.appendChild(document.createTextNode(""));
- div.appendChild(yr);
- }
-
- this._init(this.firstDayOfWeek, this.date);
- parent.appendChild(this.element);
-};
-
-/** keyboard navigation, only for popup calendars */
-Calendar._keyEvent = function(ev) {
- if (!window.calendar) {
- return false;
- }
- (Calendar.is_ie) && (ev = window.event);
- var cal = window.calendar;
- var act = (Calendar.is_ie || ev.type == "keypress");
- if (ev.ctrlKey) {
- switch (ev.keyCode) {
- 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 (ev.keyCode) {
- 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 date = cal.date.getDate() - 1;
- var el = cal.currentDateEl;
- var ne = null;
- var prev = (ev.keyCode == 37) || (ev.keyCode == 38);
- switch (ev.keyCode) {
- case 37: // KEY left
- (--date >= 0) && (ne = cal.ar_days[date]);
- break;
- case 38: // KEY up
- date -= 7;
- (date >= 0) && (ne = cal.ar_days[date]);
- break;
- case 39: // KEY right
- (++date < cal.ar_days.length) && (ne = cal.ar_days[date]);
- break;
- case 40: // KEY down
- date += 7;
- (date < cal.ar_days.length) && (ne = cal.ar_days[date]);
- break;
- }
- if (!ne) {
- if (prev) {
- Calendar.cellClick(cal._nav_pm);
- } else {
- Calendar.cellClick(cal._nav_nm);
- }
- date = (prev) ? cal.date.getMonthDays() : 1;
- el = cal.currentDateEl;
- ne = cal.ar_days[date - 1];
- }
- Calendar.removeClass(el, "selected");
- Calendar.addClass(ne, "selected");
- cal.date = new Date(ne.caldate);
- cal.callHandler();
- cal.currentDateEl = ne;
- }
- break;
- case 13: // KEY enter
- if (act) {
- cal.callHandler();
- cal.hide();
- }
- 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();
- 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 = new Array();
- var weekend = Calendar._TT["WEEKEND"];
- for (var i = 0; i < 6; ++i, row = row.nextSibling) {
- var cell = row.firstChild;
- if (this.weekNumbers) {
- cell.className = "day wn";
- cell.firstChild.data = date.getWeekNumber();
- cell = cell.nextSibling;
- }
- row.className = "daysrow";
- var hasdays = false;
- for (var j = 0; j < 7; ++j, cell = cell.nextSibling, date.setDate(date.getDate() + 1)) {
- var iday = date.getDate();
- var wday = date.getDay();
- cell.className = "day";
- var current_month = (date.getMonth() == month);
- if (!current_month) {
- if (this.showsOtherMonths) {
- cell.className += " othermonth";
- cell.otherMonth = true;
- } else {
- cell.className = "emptycell";
- cell.innerHTML = " ";
- cell.disabled = true;
- continue;
- }
- } else {
- cell.otherMonth = false;
- hasdays = true;
- }
- cell.disabled = false;
- cell.firstChild.data = iday;
- if (typeof this.getDateStatus == "function") {
- var status = this.getDateStatus(date, year, month, iday);
- if (status === true) {
- cell.className += " disabled";
- cell.disabled = true;
- } else {
- if (/disabled/i.test(status))
- cell.disabled = true;
- cell.className += " " + status;
- }
- }
- if (!cell.disabled) {
- ar_days[ar_days.length] = cell;
- cell.caldate = new Date(date);
- cell.ttip = "_";
- if (current_month && iday == mday) {
- cell.className += " selected";
- this.currentDateEl = cell;
- }
- if (date.getFullYear() == today.getFullYear() &&
- date.getMonth() == today.getMonth() &&
- iday == today.getDate()) {
- 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.ar_days = ar_days;
- this.title.firstChild.data = Calendar._MN[month] + ", " + year;
- this.onSetTime();
- this.table.style.visibility = "visible";
- // PROFILE
- // this.tooltips.firstChild.data = "Generated in " + ((new Date()) - today) + " ms";
-};
-
-/**
- * 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.calendar = 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) {
- if (!window.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.calendar.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.calendar = 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 || opts == "Br" || 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 "r": p.x += el.offsetWidth - w; break;
- case "l": 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) {
- var y = 0;
- var m = -1;
- var d = 0;
- var a = str.split(/\W+/);
- if (!fmt) {
- fmt = this.dateFormat;
- }
- 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;
- break;
-
- case "%M":
- min = parseInt(a[i], 10);
- break;
- }
- }
- if (y != 0 && m != -1 && d != 0) {
- this.setDate(new Date(y, m, d, hr, min, 0));
- return;
- }
- 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) {
- var today = new Date();
- y = today.getFullYear();
- }
- if (m != -1 && d != 0) {
- this.setDate(new Date(y, m, d, hr, min, 0));
- }
-};
-
-Calendar.prototype.hideShowCovered = function () {
- var self = this;
- Calendar.continuation_for_the_fucking_khtml_browser = function() {
- 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 = self.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 (self.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";
- }
- }
- }
- };
- if (Calendar.is_khtml)
- setTimeout("Calendar.continuation_for_the_fucking_khtml_browser()", 10);
- else
- Calendar.continuation_for_the_fucking_khtml_browser();
-};
-
-/** 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.firstChild.data = 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;
-
-/** 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 dates equality (ignores time) */
-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()));
-};
-
-/** 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)
-
- // return str.replace(re, function (par) { return s[par] || par; });
- // fix provided by dtnadmin. Many thanks
- for (var i in s) str=str.replace(i, s[i]);
- return str;
-
- 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;
-};
-
-if ( Date.prototype.__msh_oldSetFullYear == null ) {
-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.calendar = null;
+/* Copyright Mihai Bazon, 2002, 2003 | http://dynarch.com/mishoo/
+ * ------------------------------------------------------------------
+ *
+ * The DHTML Calendar, version 0.9.6 "Keep cool but don't freeze"
+ *
+ * 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
+ */
+
+// $Id: calendar.js 11471 2007-10-15 12:18:52Z mangai $
+
+/** The Calendar object constructor. */
+Calendar = function (firstDayOfWeek, dateStr, onSelected, onClose) {
+ // member variables
+ this.activeDiv = null;
+ this.currentDateEl = null;
+ this.getDateStatus = 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 = firstDayOfWeek; // 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;
+ // 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;
+};
+
+Calendar.getElement = function(ev) {
+ if (Calendar.is_ie) {
+ return window.event.srcElement;
+ } else {
+ return ev.currentTarget;
+ }
+};
+
+Calendar.getTargetElement = function(ev) {
+ if (Calendar.is_ie) {
+ return window.event.srcElement;
+ } else {
+ return ev.target;
+ }
+};
+
+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.firstChild.data = 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.firstChild.data = 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.firstChild.data;
+ 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.firstChild.data = 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");
+ }
+ el.calendar.tooltips.firstChild.data = _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") {
+ Calendar.removeClass(cal.currentDateEl, "selected");
+ Calendar.addClass(el, "selected");
+ closing = (cal.currentDateEl == el);
+ if (!closing) {
+ cal.currentDateEl = el;
+ }
+ cal.date = new Date(el.caldate);
+ date = cal.date;
+ newdate = true;
+ // a date was clicked
+ if (!(cal.dateClicked = !el.otherMonth))
+ cal._init(cal.firstDayOfWeek, date);
+ } else {
+ if (el.navtype == 200) {
+ Calendar.removeClass(el, "hilite");
+ cal.callCloseHandler();
+ return;
+ }
+ date = (el.navtype == 0) ? new Date() : new Date(cal.date);
+ // 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 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.firstChild.data;
+ 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.firstChild.data = 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())) {
+ // remember, "date" was previously set to new
+ // Date() if TODAY was clicked; thus, it
+ // contains today date.
+ return false;
+ }
+ break;
+ }
+ if (!date.equalsTo(cal.date)) {
+ cal.setDate(date);
+ newdate = true;
+ }
+ }
+ if (newdate) {
+ cal.callHandler();
+ }
+ if (closing) {
+ Calendar.removeClass(el, "hilite");
+ 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;
+ if (text.substr(0, 1) != "&") {
+ cell.appendChild(document.createTextNode(text));
+ }
+ else {
+ // FIXME: dirty hack for entities
+ cell.innerHTML = text;
+ }
+ 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("×", 1, 200).ttip = Calendar._TT["CLOSE"];
+ }
+
+ row = Calendar.createElement("tr", thead);
+ row.className = "headrow";
+
+ this._nav_py = hh("«", 1, -2);
+ this._nav_py.ttip = Calendar._TT["PREV_YEAR"];
+
+ this._nav_pm = hh("‹", 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("›", 1, 1);
+ this._nav_nm.ttip = Calendar._TT["NEXT_MONTH"];
+
+ this._nav_ny = hh("»", 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.appendChild(document.createTextNode(Calendar._TT["WK"]));
+ }
+ for (var i = 7; i > 0; --i) {
+ cell = Calendar.createElement("td", row);
+ cell.appendChild(document.createTextNode(""));
+ 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);
+ cell.appendChild(document.createTextNode(""));
+ }
+ for (var j = 7; j > 0; --j) {
+ cell = Calendar.createElement("td", row);
+ cell.appendChild(document.createTextNode(""));
+ 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"] || " ";
+
+ 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.appendChild(document.createTextNode(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.appendChild(document.createTextNode(":"));
+ 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 = " ";
+
+ cal.onSetTime = function() {
+ var hrs = this.date.getHours();
+ var mins = this.date.getMinutes();
+ var pm = (hrs > 12);
+ if (pm && t12) hrs -= 12;
+ H.firstChild.data = (hrs < 10) ? ("0" + hrs) : hrs;
+ M.firstChild.data = (mins < 10) ? ("0" + mins) : mins;
+ if (t12)
+ AP.firstChild.data = pm ? "pm" : "am";
+ };
+
+ cal.onUpdateTime = function() {
+ var date = this.date;
+ var h = parseInt(H.firstChild.data, 10);
+ if (t12) {
+ if (/pm/i.test(AP.firstChild.data) && h < 12)
+ h += 12;
+ else if (/am/i.test(AP.firstChild.data) && h == 12)
+ h = 0;
+ }
+ var d = date.getDate();
+ var m = date.getMonth();
+ var y = date.getFullYear();
+ date.setHours(h);
+ date.setMinutes(parseInt(M.firstChild.data, 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.appendChild(document.createTextNode(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";
+ yr.appendChild(document.createTextNode(""));
+ div.appendChild(yr);
+ }
+
+ this._init(this.firstDayOfWeek, this.date);
+ parent.appendChild(this.element);
+};
+
+/** keyboard navigation, only for popup calendars */
+Calendar._keyEvent = function(ev) {
+ if (!window.calendar) {
+ return false;
+ }
+ (Calendar.is_ie) && (ev = window.event);
+ var cal = window.calendar;
+ var act = (Calendar.is_ie || ev.type == "keypress");
+ if (ev.ctrlKey) {
+ switch (ev.keyCode) {
+ 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 (ev.keyCode) {
+ 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 date = cal.date.getDate() - 1;
+ var el = cal.currentDateEl;
+ var ne = null;
+ var prev = (ev.keyCode == 37) || (ev.keyCode == 38);
+ switch (ev.keyCode) {
+ case 37: // KEY left
+ (--date >= 0) && (ne = cal.ar_days[date]);
+ break;
+ case 38: // KEY up
+ date -= 7;
+ (date >= 0) && (ne = cal.ar_days[date]);
+ break;
+ case 39: // KEY right
+ (++date < cal.ar_days.length) && (ne = cal.ar_days[date]);
+ break;
+ case 40: // KEY down
+ date += 7;
+ (date < cal.ar_days.length) && (ne = cal.ar_days[date]);
+ break;
+ }
+ if (!ne) {
+ if (prev) {
+ Calendar.cellClick(cal._nav_pm);
+ } else {
+ Calendar.cellClick(cal._nav_nm);
+ }
+ date = (prev) ? cal.date.getMonthDays() : 1;
+ el = cal.currentDateEl;
+ ne = cal.ar_days[date - 1];
+ }
+ Calendar.removeClass(el, "selected");
+ Calendar.addClass(ne, "selected");
+ cal.date = new Date(ne.caldate);
+ cal.callHandler();
+ cal.currentDateEl = ne;
+ }
+ break;
+ case 13: // KEY enter
+ if (act) {
+ cal.callHandler();
+ cal.hide();
+ }
+ 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();
+ 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 = new Array();
+ var weekend = Calendar._TT["WEEKEND"];
+ for (var i = 0; i < 6; ++i, row = row.nextSibling) {
+ var cell = row.firstChild;
+ if (this.weekNumbers) {
+ cell.className = "day wn";
+ cell.firstChild.data = date.getWeekNumber();
+ cell = cell.nextSibling;
+ }
+ row.className = "daysrow";
+ var hasdays = false;
+ for (var j = 0; j < 7; ++j, cell = cell.nextSibling, date.setDate(date.getDate() + 1)) {
+ var iday = date.getDate();
+ var wday = date.getDay();
+ cell.className = "day";
+ var current_month = (date.getMonth() == month);
+ if (!current_month) {
+ if (this.showsOtherMonths) {
+ cell.className += " othermonth";
+ cell.otherMonth = true;
+ } else {
+ cell.className = "emptycell";
+ cell.innerHTML = " ";
+ cell.disabled = true;
+ continue;
+ }
+ } else {
+ cell.otherMonth = false;
+ hasdays = true;
+ }
+ cell.disabled = false;
+ cell.firstChild.data = iday;
+ if (typeof this.getDateStatus == "function") {
+ var status = this.getDateStatus(date, year, month, iday);
+ if (status === true) {
+ cell.className += " disabled";
+ cell.disabled = true;
+ } else {
+ if (/disabled/i.test(status))
+ cell.disabled = true;
+ cell.className += " " + status;
+ }
+ }
+ if (!cell.disabled) {
+ ar_days[ar_days.length] = cell;
+ cell.caldate = new Date(date);
+ cell.ttip = "_";
+ if (current_month && iday == mday) {
+ cell.className += " selected";
+ this.currentDateEl = cell;
+ }
+ if (date.getFullYear() == today.getFullYear() &&
+ date.getMonth() == today.getMonth() &&
+ iday == today.getDate()) {
+ 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.ar_days = ar_days;
+ this.title.firstChild.data = Calendar._MN[month] + ", " + year;
+ this.onSetTime();
+ this.table.style.visibility = "visible";
+ // PROFILE
+ // this.tooltips.firstChild.data = "Generated in " + ((new Date()) - today) + " ms";
+};
+
+/**
+ * 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.calendar = 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) {
+ if (!window.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.calendar.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.calendar = 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 || opts == "Br" || 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 "r": p.x += el.offsetWidth - w; break;
+ case "l": 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) {
+ var y = 0;
+ var m = -1;
+ var d = 0;
+ var a = str.split(/\W+/);
+ if (!fmt) {
+ fmt = this.dateFormat;
+ }
+ 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;
+ break;
+
+ case "%M":
+ min = parseInt(a[i], 10);
+ break;
+ }
+ }
+ if (y != 0 && m != -1 && d != 0) {
+ this.setDate(new Date(y, m, d, hr, min, 0));
+ return;
+ }
+ 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) {
+ var today = new Date();
+ y = today.getFullYear();
+ }
+ if (m != -1 && d != 0) {
+ this.setDate(new Date(y, m, d, hr, min, 0));
+ }
+};
+
+Calendar.prototype.hideShowCovered = function () {
+ var self = this;
+ Calendar.continuation_for_the_fucking_khtml_browser = function() {
+ 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 = self.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 (self.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";
+ }
+ }
+ }
+ };
+ if (Calendar.is_khtml)
+ setTimeout("Calendar.continuation_for_the_fucking_khtml_browser()", 10);
+ else
+ Calendar.continuation_for_the_fucking_khtml_browser();
+};
+
+/** 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.firstChild.data = 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;
+
+/** 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 dates equality (ignores time) */
+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()));
+};
+
+/** 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)
+
+ // return str.replace(re, function (par) { return s[par] || par; });
+ // fix provided by dtnadmin. Many thanks
+ for (var i in s) str=str.replace(i, s[i]);
+ return str;
+
+ 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;
+};
+
+if ( Date.prototype.__msh_oldSetFullYear == null ) {
+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.calendar = null;
diff --git a/oss/vtiger/trunk/jscalendar/lang/calendar-af.js b/oss/vtiger/trunk/jscalendar/lang/calendar-af.js
index aeda5819..ace710e6 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-af.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-af.js
@@ -1,39 +1,39 @@
-// ** 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";
+// ** 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/oss/vtiger/trunk/jscalendar/lang/calendar-br.js b/oss/vtiger/trunk/jscalendar/lang/calendar-br.js
index d7db4b46..7499af4f 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-br.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-br.js
@@ -1,45 +1,45 @@
-// ** I18N
-Calendar._DN = new Array
-("Domingo",
- "Segunda",
- "Terça",
- "Quarta",
- "Quinta",
- "Sexta",
- "Sábado",
- "Domingo");
-Calendar._MN = new Array
-("Janeiro",
- "Fevereiro",
- "Março",
- "Abril",
- "Maio",
- "Junho",
- "Julho",
- "Agosto",
- "Setembro",
- "Outubro",
- "Novembro",
- "Dezembro");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["TOGGLE"] = "Altera primeiro dia da semana";
-Calendar._TT["PREV_YEAR"] = "Ano anterior(hold for menu)";
-Calendar._TT["PREV_MONTH"] = "Mês anterior (hold for menu)";
-Calendar._TT["GO_TODAY"] = "Hoje";
-Calendar._TT["NEXT_MONTH"] = "Mês seguinte (hold for menu)";
-Calendar._TT["NEXT_YEAR"] = "ano seguinte (hold for menu)";
-Calendar._TT["SEL_DATE"] = "Seleciona uma data";
-Calendar._TT["DRAG_TO_MOVE"] = "Arrasta calendário";
-Calendar._TT["PART_TODAY"] = " (hoje)";
-Calendar._TT["MON_FIRST"] = "Inicia na segunda-feira";
-Calendar._TT["SUN_FIRST"] = "Inicia no domingo";
-Calendar._TT["CLOSE"] = "Fechar";
-Calendar._TT["TODAY"] = "Hoje";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-y";
-Calendar._TT["TT_DATE_FORMAT"] = "DD, dd de MM de y";
-
-Calendar._TT["WK"] = "sem";
+// ** I18N
+Calendar._DN = new Array
+("Domingo",
+ "Segunda",
+ "Terça",
+ "Quarta",
+ "Quinta",
+ "Sexta",
+ "Sábado",
+ "Domingo");
+Calendar._MN = new Array
+("Janeiro",
+ "Fevereiro",
+ "Março",
+ "Abril",
+ "Maio",
+ "Junho",
+ "Julho",
+ "Agosto",
+ "Setembro",
+ "Outubro",
+ "Novembro",
+ "Dezembro");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["TOGGLE"] = "Altera primeiro dia da semana";
+Calendar._TT["PREV_YEAR"] = "Ano anterior(hold for menu)";
+Calendar._TT["PREV_MONTH"] = "Mês anterior (hold for menu)";
+Calendar._TT["GO_TODAY"] = "Hoje";
+Calendar._TT["NEXT_MONTH"] = "Mês seguinte (hold for menu)";
+Calendar._TT["NEXT_YEAR"] = "ano seguinte (hold for menu)";
+Calendar._TT["SEL_DATE"] = "Seleciona uma data";
+Calendar._TT["DRAG_TO_MOVE"] = "Arrasta calendário";
+Calendar._TT["PART_TODAY"] = " (hoje)";
+Calendar._TT["MON_FIRST"] = "Inicia na segunda-feira";
+Calendar._TT["SUN_FIRST"] = "Inicia no domingo";
+Calendar._TT["CLOSE"] = "Fechar";
+Calendar._TT["TODAY"] = "Hoje";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-y";
+Calendar._TT["TT_DATE_FORMAT"] = "DD, dd de MM de y";
+
+Calendar._TT["WK"] = "sem";
diff --git a/oss/vtiger/trunk/jscalendar/lang/calendar-ca.js b/oss/vtiger/trunk/jscalendar/lang/calendar-ca.js
index 3498d765..324c34b0 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-ca.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-ca.js
@@ -1,45 +1,45 @@
-// ** I18N
-Calendar._DN = new Array
-("Diumenge",
- "Dilluns",
- "Dimarts",
- "Dimecres",
- "Dijous",
- "Divendres",
- "Dissabte",
- "Diumenge");
-Calendar._MN = new Array
-("Gener",
- "Febrer",
- "Març",
- "Abril",
- "Maig",
- "Juny",
- "Juliol",
- "Agost",
- "Setembre",
- "Octubre",
- "Novembre",
- "Desembre");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["TOGGLE"] = "Canvia el primer dia de la setmana";
-Calendar._TT["PREV_YEAR"] = "Any anterior (mantenir per a menu)";
-Calendar._TT["PREV_MONTH"] = "Mes anterior (mantenir per a menu)";
-Calendar._TT["GO_TODAY"] = "Anar a avui";
-Calendar._TT["NEXT_MONTH"] = "Mes següent (mantenir per a menu)";
-Calendar._TT["NEXT_YEAR"] = "Any següent (mantenir per a menu)";
-Calendar._TT["SEL_DATE"] = "Seleccionar data";
-Calendar._TT["DRAG_TO_MOVE"] = "Arrastrar per a moure";
-Calendar._TT["PART_TODAY"] = " (avui)";
-Calendar._TT["MON_FIRST"] = "Mostrar dilluns primer";
-Calendar._TT["SUN_FIRST"] = "Mostrar diumenge primer";
-Calendar._TT["CLOSE"] = "Tancar";
-Calendar._TT["TODAY"] = "Avui";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-yy";
-Calendar._TT["TT_DATE_FORMAT"] = "D, M d";
-
-Calendar._TT["WK"] = "sem";
+// ** I18N
+Calendar._DN = new Array
+("Diumenge",
+ "Dilluns",
+ "Dimarts",
+ "Dimecres",
+ "Dijous",
+ "Divendres",
+ "Dissabte",
+ "Diumenge");
+Calendar._MN = new Array
+("Gener",
+ "Febrer",
+ "Març",
+ "Abril",
+ "Maig",
+ "Juny",
+ "Juliol",
+ "Agost",
+ "Setembre",
+ "Octubre",
+ "Novembre",
+ "Desembre");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["TOGGLE"] = "Canvia el primer dia de la setmana";
+Calendar._TT["PREV_YEAR"] = "Any anterior (mantenir per a menu)";
+Calendar._TT["PREV_MONTH"] = "Mes anterior (mantenir per a menu)";
+Calendar._TT["GO_TODAY"] = "Anar a avui";
+Calendar._TT["NEXT_MONTH"] = "Mes següent (mantenir per a menu)";
+Calendar._TT["NEXT_YEAR"] = "Any següent (mantenir per a menu)";
+Calendar._TT["SEL_DATE"] = "Seleccionar data";
+Calendar._TT["DRAG_TO_MOVE"] = "Arrastrar per a moure";
+Calendar._TT["PART_TODAY"] = " (avui)";
+Calendar._TT["MON_FIRST"] = "Mostrar dilluns primer";
+Calendar._TT["SUN_FIRST"] = "Mostrar diumenge primer";
+Calendar._TT["CLOSE"] = "Tancar";
+Calendar._TT["TODAY"] = "Avui";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-yy";
+Calendar._TT["TT_DATE_FORMAT"] = "D, M d";
+
+Calendar._TT["WK"] = "sem";
diff --git a/oss/vtiger/trunk/jscalendar/lang/calendar-cs-win.js b/oss/vtiger/trunk/jscalendar/lang/calendar-cs-win.js
index b34213f5..5f4b6d90 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-cs-win.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-cs-win.js
@@ -1,34 +1,34 @@
-/*
- calendar-cs-win.js
- language: Czech
- encoding: windows-1250
- author: Lubos Jerabek (xnet@seznam.cz)
-*/
-
-// ** I18N
-Calendar._DN = new Array('Nedìle','Pondìlí','Úterý','Støeda','Ètvrtek','Pátek','Sobota','Nedìle');
-Calendar._DN3 = 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._MN3 = new Array('Led','Úno','Bøe','Dub','Kvì','Èrv','Èvc','Srp','Záø','Øíj','Lis','Pro');
-
-// tooltips
-Calendar._TT = {};
-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["CLOSE"] = "Zavøít";
-Calendar._TT["TODAY"] = "Dnes";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "d.m.yy";
-Calendar._TT["TT_DATE_FORMAT"] = "DD, 5.MM y";
-
-Calendar._TT["WK"] = "wk";
+/*
+ calendar-cs-win.js
+ language: Czech
+ encoding: windows-1250
+ author: Lubos Jerabek (xnet@seznam.cz)
+*/
+
+// ** I18N
+Calendar._DN = new Array('Nedìle','Pondìlí','Úterý','Støeda','Ètvrtek','Pátek','Sobota','Nedìle');
+Calendar._DN3 = 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._MN3 = new Array('Led','Úno','Bøe','Dub','Kvì','Èrv','Èvc','Srp','Záø','Øíj','Lis','Pro');
+
+// tooltips
+Calendar._TT = {};
+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["CLOSE"] = "Zavøít";
+Calendar._TT["TODAY"] = "Dnes";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "d.m.yy";
+Calendar._TT["TT_DATE_FORMAT"] = "DD, 5.MM y";
+
+Calendar._TT["WK"] = "wk";
diff --git a/oss/vtiger/trunk/jscalendar/lang/calendar-da.js b/oss/vtiger/trunk/jscalendar/lang/calendar-da.js
index 579cee05..5d9a0012 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-da.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-da.js
@@ -1,63 +1,63 @@
-// ** I18N
-Calendar._DN = new Array
-("Søndag",
- "Mandag",
- "Tirsdag",
- "Onsdag",
- "Torsdag",
- "Fredag",
- "Lørdag",
- "Søndag");
-Calendar._MN = new Array
-("January",
- "Februar",
- "Marts",
- "April",
- "Maj",
- "Juni",
- "Juli",
- "August",
- "September",
- "Oktober",
- "November",
- "December");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Om Kalenderen";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
-"For den seneste version besøg: http://dynarch.com/mishoo/calendar.epl\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["TOGGLE"] = "Skift første ugedag";
-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)";
-Calendar._TT["MON_FIRST"] = "Vis mandag først";
-Calendar._TT["SUN_FIRST"] = "Vis søndag først";
-Calendar._TT["CLOSE"] = "Luk vinduet";
-Calendar._TT["TODAY"] = "I dag";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-yy";
-Calendar._TT["TT_DATE_FORMAT"] = "%d. %b, %Y";
-
-Calendar._TT["WK"] = "wk";
+// ** I18N
+Calendar._DN = new Array
+("Søndag",
+ "Mandag",
+ "Tirsdag",
+ "Onsdag",
+ "Torsdag",
+ "Fredag",
+ "Lørdag",
+ "Søndag");
+Calendar._MN = new Array
+("January",
+ "Februar",
+ "Marts",
+ "April",
+ "Maj",
+ "Juni",
+ "Juli",
+ "August",
+ "September",
+ "Oktober",
+ "November",
+ "December");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "Om Kalenderen";
+
+Calendar._TT["ABOUT"] =
+"DHTML Date/Time Selector\n" +
+"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
+"For den seneste version besøg: http://dynarch.com/mishoo/calendar.epl\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["TOGGLE"] = "Skift første ugedag";
+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)";
+Calendar._TT["MON_FIRST"] = "Vis mandag først";
+Calendar._TT["SUN_FIRST"] = "Vis søndag først";
+Calendar._TT["CLOSE"] = "Luk vinduet";
+Calendar._TT["TODAY"] = "I dag";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-yy";
+Calendar._TT["TT_DATE_FORMAT"] = "%d. %b, %Y";
+
+Calendar._TT["WK"] = "wk";
diff --git a/oss/vtiger/trunk/jscalendar/lang/calendar-de.js b/oss/vtiger/trunk/jscalendar/lang/calendar-de.js
index 47a21fb8..4fa8853e 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-de.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-de.js
@@ -1,113 +1,113 @@
-// Author: Hartwig Weinkauf h_weinkauf@gmx.de
-// �erarbeitet und fehlende Texte hinzugefgt von Gerhard Neinert (gerhard at neinert punkt de)
-// Feel free to use / redistribute under the GNU LGPL.
-// ** I18N
-
-
-
-// full day names
-Calendar._DN = new Array
-("Sonntag",
- "Montag",
- "Dienstag",
- "Mittwoch",
- "Donnerstag",
- "Freitag",
- "Samstag",
- "Sonntag");
-
-// short day names
-Calendar._SDN = new Array
-("So",
- "Mo",
- "Di",
- "Mi",
- "Do",
- "Fr",
- "Sa",
- "So");
-
-// short day names only use 2 letters instead of 3
-Calendar._SDN_len = 2;
-
-// full month names
-Calendar._MN = new Array
-("Januar",
- "Februar",
- "März",
-// "M\u00e4rz",
- "April",
- "Mai",
- "Juni",
- "Juli",
- "August",
- "September",
- "Oktober",
- "November",
- "Dezember");
-
-// short month names
-Calendar._SMN = new Array
-("Jan",
- "Feb",
- "Mär",
-// "M\u00e4r",
- "Apr",
- "Mai",
- "Jun",
- "Jul",
- "Aug",
- "Sep",
- "Okt",
- "Nov",
- "Dez");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Über den Kalender";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
-"For latest version visit: http://dynarch.com/mishoo/calendar.epl\n" +
-"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
-"\n\n" +
-"Datumsauswahl:\n" +
-"- Benutze die \xab, \xbb Buttons um das Jahr auszuwählen\n" +
-"- Benutze die " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " Buttons um einen Monat auszuwählen\n" +
-"- Für eine schnellere Auswahl, halte die Maus über einen dieser Buttons gedrückt.";
-
-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"] = "Vorheriges Jahr (halte für Menü)";
-Calendar._TT["PREV_MONTH"] = "Vorheriger Monat (halte für Menü)";
-Calendar._TT["GO_TODAY"] = "Heute";
-Calendar._TT["NEXT_MONTH"] = "Nächster Monat (halte für Menü)";
-Calendar._TT["NEXT_YEAR"] = "Nächstes Jahr (halte für Menü)";
-Calendar._TT["SEL_DATE"] = "Datum auswählen";
-Calendar._TT["DRAG_TO_MOVE"] = "Zum Verschieben 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"] = "%s zuerst anzeigen";
-
-// 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"] = "Schliessen";
-Calendar._TT["TODAY"] = "Heute";
-Calendar._TT["TIME_PART"] = "(Shift-)Klick oder festhalten um Wert zu ändern";
-
-// 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"] = "Zeit:";
+// Author: Hartwig Weinkauf h_weinkauf@gmx.de
+// �erarbeitet und fehlende Texte hinzugefgt von Gerhard Neinert (gerhard at neinert punkt de)
+// Feel free to use / redistribute under the GNU LGPL.
+// ** I18N
+
+
+
+// full day names
+Calendar._DN = new Array
+("Sonntag",
+ "Montag",
+ "Dienstag",
+ "Mittwoch",
+ "Donnerstag",
+ "Freitag",
+ "Samstag",
+ "Sonntag");
+
+// short day names
+Calendar._SDN = new Array
+("So",
+ "Mo",
+ "Di",
+ "Mi",
+ "Do",
+ "Fr",
+ "Sa",
+ "So");
+
+// short day names only use 2 letters instead of 3
+Calendar._SDN_len = 2;
+
+// full month names
+Calendar._MN = new Array
+("Januar",
+ "Februar",
+ "März",
+// "M\u00e4rz",
+ "April",
+ "Mai",
+ "Juni",
+ "Juli",
+ "August",
+ "September",
+ "Oktober",
+ "November",
+ "Dezember");
+
+// short month names
+Calendar._SMN = new Array
+("Jan",
+ "Feb",
+ "Mär",
+// "M\u00e4r",
+ "Apr",
+ "Mai",
+ "Jun",
+ "Jul",
+ "Aug",
+ "Sep",
+ "Okt",
+ "Nov",
+ "Dez");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "Über den Kalender";
+
+Calendar._TT["ABOUT"] =
+"DHTML Date/Time Selector\n" +
+"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
+"For latest version visit: http://dynarch.com/mishoo/calendar.epl\n" +
+"Distributed under GNU LGPL. See http://gnu.org/licenses/lgpl.html for details." +
+"\n\n" +
+"Datumsauswahl:\n" +
+"- Benutze die \xab, \xbb Buttons um das Jahr auszuwählen\n" +
+"- Benutze die " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " Buttons um einen Monat auszuwählen\n" +
+"- Für eine schnellere Auswahl, halte die Maus über einen dieser Buttons gedrückt.";
+
+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"] = "Vorheriges Jahr (halte für Menü)";
+Calendar._TT["PREV_MONTH"] = "Vorheriger Monat (halte für Menü)";
+Calendar._TT["GO_TODAY"] = "Heute";
+Calendar._TT["NEXT_MONTH"] = "Nächster Monat (halte für Menü)";
+Calendar._TT["NEXT_YEAR"] = "Nächstes Jahr (halte für Menü)";
+Calendar._TT["SEL_DATE"] = "Datum auswählen";
+Calendar._TT["DRAG_TO_MOVE"] = "Zum Verschieben 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"] = "%s zuerst anzeigen";
+
+// 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"] = "Schliessen";
+Calendar._TT["TODAY"] = "Heute";
+Calendar._TT["TIME_PART"] = "(Shift-)Klick oder festhalten um Wert zu ändern";
+
+// 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"] = "Zeit:";
diff --git a/oss/vtiger/trunk/jscalendar/lang/calendar-du.js b/oss/vtiger/trunk/jscalendar/lang/calendar-du.js
index 22004480..9c9051fd 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-du.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-du.js
@@ -1,45 +1,45 @@
-// ** 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";
+// ** 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/oss/vtiger/trunk/jscalendar/lang/calendar-el.js b/oss/vtiger/trunk/jscalendar/lang/calendar-el.js
index 1afcbb26..a8f34ad9 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-el.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-el.js
@@ -1,89 +1,89 @@
-// ** 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-2003\n" + // don't translate this this ;-)
-"Για τελευταία Îκδοση: http://dynarch.com/mishoo/calendar.epl\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"] = "εβδ";
-
+// ** 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-2003\n" + // don't translate this this ;-)
+"Για τελευταία Îκδοση: http://dynarch.com/mishoo/calendar.epl\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/oss/vtiger/trunk/jscalendar/lang/calendar-en.js b/oss/vtiger/trunk/jscalendar/lang/calendar-en.js
index e9d6a222..185b8b9d 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-en.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-en.js
@@ -1,123 +1,123 @@
-// ** I18N
-
-// Calendar EN language
-// Author: Mihai Bazon,
-// 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");
-
-// 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-2003\n" + // don't translate this this ;-)
-"For latest version visit: http://dynarch.com/mishoo/calendar.epl\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:";
+// ** I18N
+
+// Calendar EN language
+// Author: Mihai Bazon,
+// 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");
+
+// 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-2003\n" + // don't translate this this ;-)
+"For latest version visit: http://dynarch.com/mishoo/calendar.epl\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/oss/vtiger/trunk/jscalendar/lang/calendar-es.js b/oss/vtiger/trunk/jscalendar/lang/calendar-es.js
index a8d52ea3..a733d374 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-es.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-es.js
@@ -1,114 +1,114 @@
-// ** I18N
-
-// Calendar EN language
-// Author: Mihai Bazon,
-// 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",
- "Miircoles",
- "Jueves",
- "Viernes",
- "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",
- "Lun",
- "Mar",
- "Mii",
- "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"] = "Acerca del calendario";
-
-Calendar._TT["ABOUT"] =
-"Selector DHTML de Fecha/Hora\n" +
-"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
-"Para conseguir la zltima versisn visite: http://dynarch.com/mishoo/calendar.epl\n" +
-"Distribuido bajo licencia GNU LGPL. Visite http://gnu.org/licenses/lgpl.html para mas detalles." +
-"\n\n" +
-"Seleccisn de fecha:\n" +
-"- Use los botones \xab, \xbb para seleccionar el aqo\n" +
-"- Use los botones " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " para seleccionar el mes\n" +
-"- Mantenga pulsado el ratsn en cualquiera de estos botones para una seleccisn rapida.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"Seleccisn de hora:\n" +
-"- Pulse en cualquiera de las partes de la hora para incrementarla\n" +
-"- s pulse las mayzsculas mientras hace clic para decrementarla\n" +
-"- s haga clic y arrastre el ratsn para una seleccisn mas rapida.";
-
-Calendar._TT["PREV_YEAR"] = "Aqo anterior (mantener para menu)";
-Calendar._TT["PREV_MONTH"] = "Mes anterior (mantener para menu)";
-Calendar._TT["GO_TODAY"] = "Ir a hoy";
-Calendar._TT["NEXT_MONTH"] = "Mes siguiente (mantener para menu)";
-Calendar._TT["NEXT_YEAR"] = "Aqo siguiente (mantener para menu)";
-Calendar._TT["SEL_DATE"] = "Seleccionar fecha";
-Calendar._TT["DRAG_TO_MOVE"] = "Arrastrar para mover";
-Calendar._TT["PART_TODAY"] = " (hoy)";
-Calendar._TT["MON_FIRST"] = "Mostrar lunes primero";
-Calendar._TT["SUN_FIRST"] = "Mostrar domingo primero";
-Calendar._TT["CLOSE"] = "Cerrar";
-Calendar._TT["TODAY"] = "Hoy";
-Calendar._TT["TIME_PART"] = "(Mayzscula-)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";
+// ** I18N
+
+// Calendar EN language
+// Author: Mihai Bazon,
+// 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",
+ "Miircoles",
+ "Jueves",
+ "Viernes",
+ "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",
+ "Lun",
+ "Mar",
+ "Mii",
+ "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"] = "Acerca del calendario";
+
+Calendar._TT["ABOUT"] =
+"Selector DHTML de Fecha/Hora\n" +
+"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
+"Para conseguir la zltima versisn visite: http://dynarch.com/mishoo/calendar.epl\n" +
+"Distribuido bajo licencia GNU LGPL. Visite http://gnu.org/licenses/lgpl.html para mas detalles." +
+"\n\n" +
+"Seleccisn de fecha:\n" +
+"- Use los botones \xab, \xbb para seleccionar el aqo\n" +
+"- Use los botones " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " para seleccionar el mes\n" +
+"- Mantenga pulsado el ratsn en cualquiera de estos botones para una seleccisn rapida.";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"Seleccisn de hora:\n" +
+"- Pulse en cualquiera de las partes de la hora para incrementarla\n" +
+"- s pulse las mayzsculas mientras hace clic para decrementarla\n" +
+"- s haga clic y arrastre el ratsn para una seleccisn mas rapida.";
+
+Calendar._TT["PREV_YEAR"] = "Aqo anterior (mantener para menu)";
+Calendar._TT["PREV_MONTH"] = "Mes anterior (mantener para menu)";
+Calendar._TT["GO_TODAY"] = "Ir a hoy";
+Calendar._TT["NEXT_MONTH"] = "Mes siguiente (mantener para menu)";
+Calendar._TT["NEXT_YEAR"] = "Aqo siguiente (mantener para menu)";
+Calendar._TT["SEL_DATE"] = "Seleccionar fecha";
+Calendar._TT["DRAG_TO_MOVE"] = "Arrastrar para mover";
+Calendar._TT["PART_TODAY"] = " (hoy)";
+Calendar._TT["MON_FIRST"] = "Mostrar lunes primero";
+Calendar._TT["SUN_FIRST"] = "Mostrar domingo primero";
+Calendar._TT["CLOSE"] = "Cerrar";
+Calendar._TT["TODAY"] = "Hoy";
+Calendar._TT["TIME_PART"] = "(Mayzscula-)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";
diff --git a/oss/vtiger/trunk/jscalendar/lang/calendar-fi.js b/oss/vtiger/trunk/jscalendar/lang/calendar-fi.js
index 844ed6c0..1df7d759 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-fi.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-fi.js
@@ -1,98 +1,98 @@
-// ** I18N
-
-// Calendar FI language (Finnish, Suomi)
-// Author: Jarno Käyhkö,
-// 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-2003\n" + // don't translate this this ;-)
-"Uusin versio osoitteessa: http://dynarch.com/mishoo/calendar.epl\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";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%d.%m.%Y";
-Calendar._TT["TT_DATE_FORMAT"] = "%d.%m.%Y";
-
-Calendar._TT["WK"] = "Vko";
+// ** I18N
+
+// Calendar FI language (Finnish, Suomi)
+// Author: Jarno Käyhkö,
+// 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-2003\n" + // don't translate this this ;-)
+"Uusin versio osoitteessa: http://dynarch.com/mishoo/calendar.epl\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";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%d.%m.%Y";
+Calendar._TT["TT_DATE_FORMAT"] = "%d.%m.%Y";
+
+Calendar._TT["WK"] = "Vko";
diff --git a/oss/vtiger/trunk/jscalendar/lang/calendar-fr.js b/oss/vtiger/trunk/jscalendar/lang/calendar-fr.js
index 2408c6f9..179bd902 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-fr.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-fr.js
@@ -1,125 +1,125 @@
-// ** I18N
-
-// Calendar EN language
-// Author: Mihai Bazon,
-// 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, 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",
- "Mer",
- "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 :";
+// ** I18N
+
+// Calendar EN language
+// Author: Mihai Bazon,
+// 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, 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",
+ "Mer",
+ "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/oss/vtiger/trunk/jscalendar/lang/calendar-hr-utf8.js b/oss/vtiger/trunk/jscalendar/lang/calendar-hr-utf8.js
index baf01b17..d569cfd9 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-hr-utf8.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-hr-utf8.js
@@ -1,49 +1,49 @@
-/* Croatian language file for the DHTML Calendar version 0.9.2
-* Author Krunoslav Zubrinic , 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";
-
+/* Croatian language file for the DHTML Calendar version 0.9.2
+* Author Krunoslav Zubrinic , 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/oss/vtiger/trunk/jscalendar/lang/calendar-hr.js b/oss/vtiger/trunk/jscalendar/lang/calendar-hr.js
index be9a021b..88d4238b 100644
Binary files a/oss/vtiger/trunk/jscalendar/lang/calendar-hr.js and b/oss/vtiger/trunk/jscalendar/lang/calendar-hr.js differ
diff --git a/oss/vtiger/trunk/jscalendar/lang/calendar-hu.js b/oss/vtiger/trunk/jscalendar/lang/calendar-hu.js
index 64b38d62..efa2c56a 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-hu.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-hu.js
@@ -1,45 +1,45 @@
-// ** I18N
-Calendar._DN = new Array
-("Vasárnap",
- "Hétfõ",
- "Kedd",
- "Szerda",
- "Csütörtök",
- "Péntek",
- "Szombat",
- "Vasárnap");
-Calendar._MN = new Array
-("január",
- "február",
- "március",
- "április",
- "május",
- "június",
- "július",
- "augusztus",
- "szeptember",
- "október",
- "november",
- "december");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["TOGGLE"] = "A hét elsõ napjának beállítása";
-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)";
-Calendar._TT["MON_FIRST"] = "Hétfõ legyen a hét elsõ napja";
-Calendar._TT["SUN_FIRST"] = "Vasárnap legyen a hét elsõ napja";
-Calendar._TT["CLOSE"] = "Bezár";
-Calendar._TT["TODAY"] = "Ma";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "y-mm-dd";
-Calendar._TT["TT_DATE_FORMAT"] = "M d, D";
-
-Calendar._TT["WK"] = "hét";
+// ** I18N
+Calendar._DN = new Array
+("Vasárnap",
+ "Hétfõ",
+ "Kedd",
+ "Szerda",
+ "Csütörtök",
+ "Péntek",
+ "Szombat",
+ "Vasárnap");
+Calendar._MN = new Array
+("január",
+ "február",
+ "március",
+ "április",
+ "május",
+ "június",
+ "július",
+ "augusztus",
+ "szeptember",
+ "október",
+ "november",
+ "december");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["TOGGLE"] = "A hét elsõ napjának beállítása";
+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)";
+Calendar._TT["MON_FIRST"] = "Hétfõ legyen a hét elsõ napja";
+Calendar._TT["SUN_FIRST"] = "Vasárnap legyen a hét elsõ napja";
+Calendar._TT["CLOSE"] = "Bezár";
+Calendar._TT["TODAY"] = "Ma";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "y-mm-dd";
+Calendar._TT["TT_DATE_FORMAT"] = "M d, D";
+
+Calendar._TT["WK"] = "hét";
diff --git a/oss/vtiger/trunk/jscalendar/lang/calendar-it.js b/oss/vtiger/trunk/jscalendar/lang/calendar-it.js
index bb43449f..ea602622 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-it.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-it.js
@@ -1,79 +1,79 @@
-// ** I18N
-Calendar._DN = new Array
-("Domenica",
- "Lunedì",
- "Martedì",
- "Mercoledì",
- "Giovedì",
- "Venerdì",
- "Sabato",
- "Domenica");
-Calendar._MN = new Array
-("Gennaio",
- "Febbraio",
- "Marzo",
- "Aprile",
- "Maggio",
- "Giugno",
- "Luglio",
- "Agosto",
- "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"] = "a proposito del calendario";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
-"Per le ultime versioni vai a: http://dynarch.com/mishoo/calendar.epl\n" +
-"Distribuito su licenza GNU LGPL. Vedi http://gnu.org/licenses/lgpl.html per i dettagli." +
-"\n\n" +
-"selezione della data:\n" +
-"- Usa i bottoni \xab, \xbb per selezionare l'anno\n" +
-"- Usa i bottoni " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " per selezionare il mese\n" +
-"- Utilizza il mouse per una selezione rapida.";
-Calendar._TT["ABOUT_TIME"] = "\n\n" +
-"selezione dell'ora:\n" +
-"- Clicca sull'ora visualizzata per aumentarla\n" +
-"- o Shift-click per diminuirla\n" +
-"- o click a trascina per la selezione rapida.";
-
-
-Calendar._TT["TOGGLE"] = "Modifica il primo giorno della settimana";
-Calendar._TT["PREV_YEAR"] = "Anno prec. (tieni premuto per menu)";
-Calendar._TT["PREV_MONTH"] = "Mese prec. (tieni premuto per menu)";
-Calendar._TT["GO_TODAY"] = "Vai a oggi";
-Calendar._TT["NEXT_MONTH"] = "Mese succ. (tieni premuto per menu)";
-Calendar._TT["NEXT_YEAR"] = "Anno succ. (tieni premuto per menu)";
-Calendar._TT["SEL_DATE"] = "Seleziona data";
-Calendar._TT["DRAG_TO_MOVE"] = "Trascina per spostare";
-Calendar._TT["PART_TODAY"] = " (oggi)";
-Calendar._TT["MON_FIRST"] = "Parti da lunedì";
-Calendar._TT["SUN_FIRST"] = "Parti da domenica";
-Calendar._TT["CLOSE"] = "Chiudi";
-Calendar._TT["TODAY"] = "Oggi";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %e %b ";
-
-Calendar._TT["WK"] = "Setti";
+// ** I18N
+Calendar._DN = new Array
+("Domenica",
+ "Lunedì",
+ "Martedì",
+ "Mercoledì",
+ "Giovedì",
+ "Venerdì",
+ "Sabato",
+ "Domenica");
+Calendar._MN = new Array
+("Gennaio",
+ "Febbraio",
+ "Marzo",
+ "Aprile",
+ "Maggio",
+ "Giugno",
+ "Luglio",
+ "Agosto",
+ "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"] = "a proposito del calendario";
+
+Calendar._TT["ABOUT"] =
+"DHTML Date/Time Selector\n" +
+"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
+"Per le ultime versioni vai a: http://dynarch.com/mishoo/calendar.epl\n" +
+"Distribuito su licenza GNU LGPL. Vedi http://gnu.org/licenses/lgpl.html per i dettagli." +
+"\n\n" +
+"selezione della data:\n" +
+"- Usa i bottoni \xab, \xbb per selezionare l'anno\n" +
+"- Usa i bottoni " + String.fromCharCode(0x2039) + ", " + String.fromCharCode(0x203a) + " per selezionare il mese\n" +
+"- Utilizza il mouse per una selezione rapida.";
+Calendar._TT["ABOUT_TIME"] = "\n\n" +
+"selezione dell'ora:\n" +
+"- Clicca sull'ora visualizzata per aumentarla\n" +
+"- o Shift-click per diminuirla\n" +
+"- o click a trascina per la selezione rapida.";
+
+
+Calendar._TT["TOGGLE"] = "Modifica il primo giorno della settimana";
+Calendar._TT["PREV_YEAR"] = "Anno prec. (tieni premuto per menu)";
+Calendar._TT["PREV_MONTH"] = "Mese prec. (tieni premuto per menu)";
+Calendar._TT["GO_TODAY"] = "Vai a oggi";
+Calendar._TT["NEXT_MONTH"] = "Mese succ. (tieni premuto per menu)";
+Calendar._TT["NEXT_YEAR"] = "Anno succ. (tieni premuto per menu)";
+Calendar._TT["SEL_DATE"] = "Seleziona data";
+Calendar._TT["DRAG_TO_MOVE"] = "Trascina per spostare";
+Calendar._TT["PART_TODAY"] = " (oggi)";
+Calendar._TT["MON_FIRST"] = "Parti da lunedì";
+Calendar._TT["SUN_FIRST"] = "Parti da domenica";
+Calendar._TT["CLOSE"] = "Chiudi";
+Calendar._TT["TODAY"] = "Oggi";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y";
+Calendar._TT["TT_DATE_FORMAT"] = "%a, %e %b ";
+
+Calendar._TT["WK"] = "Setti";
diff --git a/oss/vtiger/trunk/jscalendar/lang/calendar-jp.js b/oss/vtiger/trunk/jscalendar/lang/calendar-jp.js
index 3bca7ebf..b86f0da3 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-jp.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-jp.js
@@ -1,45 +1,45 @@
-// ** 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‚Ì�Å�‰‚Ì—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";
+// ** 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‚Ì�Å�‰‚Ì—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/oss/vtiger/trunk/jscalendar/lang/calendar-ko-utf8.js b/oss/vtiger/trunk/jscalendar/lang/calendar-ko-utf8.js
index d71687aa..f75db6af 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-ko-utf8.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-ko-utf8.js
@@ -1,120 +1,120 @@
-// ** I18N
-
-// Calendar EN language
-// Author: Mihai Bazon,
-// Translation: Yourim Yi
-// 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-2003\n" + // don't translate this this ;-)
-"\n"+
-"ìµœì‹ ë²„ì „ì�„ ë°›ìœ¼ì‹œë ¤ë©´ http://dynarch.com/mishoo/calendar.epl ì—� 방문하세요\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"] = "주";
+// ** I18N
+
+// Calendar EN language
+// Author: Mihai Bazon,
+// Translation: Yourim Yi
+// 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-2003\n" + // don't translate this this ;-)
+"\n"+
+"ìµœì‹ ë²„ì „ì�„ ë°›ìœ¼ì‹œë ¤ë©´ http://dynarch.com/mishoo/calendar.epl ì—� 방문하세요\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/oss/vtiger/trunk/jscalendar/lang/calendar-ko.js b/oss/vtiger/trunk/jscalendar/lang/calendar-ko.js
index b845aa52..6c6946b7 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-ko.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-ko.js
@@ -1,120 +1,120 @@
-// ** I18N
-
-// Calendar EN language
-// Author: Mihai Bazon,
-// Translation: Yourim Yi
-// 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-2003\n" + // don't translate this this ;-)
-"\n"+
-"ÃֽйöÀüÀ» ¹ÞÀ¸½Ã·Á¸é http://dynarch.com/mishoo/calendar.epl ¿¡ ¹æ¹®Çϼ¼¿ä\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"] = "ÁÖ";
+// ** I18N
+
+// Calendar EN language
+// Author: Mihai Bazon,
+// Translation: Yourim Yi
+// 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-2003\n" + // don't translate this this ;-)
+"\n"+
+"ÃֽйöÀüÀ» ¹ÞÀ¸½Ã·Á¸é http://dynarch.com/mishoo/calendar.epl ¿¡ ¹æ¹®Çϼ¼¿ä\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/oss/vtiger/trunk/jscalendar/lang/calendar-lt.js b/oss/vtiger/trunk/jscalendar/lang/calendar-lt.js
index 1b614b81..dca66a2e 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-lt.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-lt.js
@@ -1,114 +1,114 @@
-// ** I18N
-
-// Calendar LT language
-// Author: Martynas Majeris,
-// 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-2003\n" + // don't translate this this ;-)
-"Naujausià versijà rasite: http://dynarch.com/mishoo/calendar.epl\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";
+// ** I18N
+
+// Calendar LT language
+// Author: Martynas Majeris,
+// 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-2003\n" + // don't translate this this ;-)
+"Naujausià versijà rasite: http://dynarch.com/mishoo/calendar.epl\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/oss/vtiger/trunk/jscalendar/lang/calendar-nl.js b/oss/vtiger/trunk/jscalendar/lang/calendar-nl.js
index 2ddc68be..1190a2e8 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-nl.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-nl.js
@@ -1,45 +1,45 @@
-// ** 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"] = "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["CLOSE"] = "Sluiten";
-Calendar._TT["TODAY"] = "Vandaag";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-y";
-Calendar._TT["TT_DATE_FORMAT"] = "DD, d MM";
-
-Calendar._TT["WK"] = "wk";
+// ** 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"] = "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["CLOSE"] = "Sluiten";
+Calendar._TT["TODAY"] = "Vandaag";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-y";
+Calendar._TT["TT_DATE_FORMAT"] = "DD, d MM";
+
+Calendar._TT["WK"] = "wk";
diff --git a/oss/vtiger/trunk/jscalendar/lang/calendar-no.js b/oss/vtiger/trunk/jscalendar/lang/calendar-no.js
index 3325e34a..ff4f98d0 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-no.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-no.js
@@ -1,45 +1,45 @@
-// ** I18N
-Calendar._DN = new Array
-("Søndag",
- "Mandag",
- "Tirsdag",
- "Onsdag",
- "Torsdag",
- "Fredag",
- "Lørdag",
- "Søndag");
-Calendar._MN = new Array
-("Januar",
- "Februar",
- "Mars",
- "April",
- "Mai",
- "Juni",
- "Juli",
- "August",
- "September",
- "Oktober",
- "November",
- "Desember");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["TOGGLE"] = "Skift første ukedag";
-Calendar._TT["PREV_YEAR"] = "Et år tilbake (hold for meny)";
-Calendar._TT["PREV_MONTH"] = "En måned tilbake (hold for meny)";
-Calendar._TT["GO_TODAY"] = "Gå til i dag";
-Calendar._TT["NEXT_MONTH"] = "En måned fram (hold for meny)";
-Calendar._TT["NEXT_YEAR"] = "Et år fram (hold for meny)";
-Calendar._TT["SEL_DATE"] = "Velg dag";
-Calendar._TT["DRAG_TO_MOVE"] = "Dra vinduet";
-Calendar._TT["PART_TODAY"] = " (i dag)";
-Calendar._TT["MON_FIRST"] = "Vis mandag først";
-Calendar._TT["SUN_FIRST"] = "Vis søndag først";
-Calendar._TT["CLOSE"] = "Lukk vinduet";
-Calendar._TT["TODAY"] = "I dag";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "y-mm-dd";
-Calendar._TT["TT_DATE_FORMAT"] = "D d. M, y";
-
-Calendar._TT["WK"] = "wk";
+// ** I18N
+Calendar._DN = new Array
+("Søndag",
+ "Mandag",
+ "Tirsdag",
+ "Onsdag",
+ "Torsdag",
+ "Fredag",
+ "Lørdag",
+ "Søndag");
+Calendar._MN = new Array
+("Januar",
+ "Februar",
+ "Mars",
+ "April",
+ "Mai",
+ "Juni",
+ "Juli",
+ "August",
+ "September",
+ "Oktober",
+ "November",
+ "Desember");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["TOGGLE"] = "Skift første ukedag";
+Calendar._TT["PREV_YEAR"] = "Et år tilbake (hold for meny)";
+Calendar._TT["PREV_MONTH"] = "En måned tilbake (hold for meny)";
+Calendar._TT["GO_TODAY"] = "Gå til i dag";
+Calendar._TT["NEXT_MONTH"] = "En måned fram (hold for meny)";
+Calendar._TT["NEXT_YEAR"] = "Et år fram (hold for meny)";
+Calendar._TT["SEL_DATE"] = "Velg dag";
+Calendar._TT["DRAG_TO_MOVE"] = "Dra vinduet";
+Calendar._TT["PART_TODAY"] = " (i dag)";
+Calendar._TT["MON_FIRST"] = "Vis mandag først";
+Calendar._TT["SUN_FIRST"] = "Vis søndag først";
+Calendar._TT["CLOSE"] = "Lukk vinduet";
+Calendar._TT["TODAY"] = "I dag";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "y-mm-dd";
+Calendar._TT["TT_DATE_FORMAT"] = "D d. M, y";
+
+Calendar._TT["WK"] = "wk";
diff --git a/oss/vtiger/trunk/jscalendar/lang/calendar-pl-utf8.js b/oss/vtiger/trunk/jscalendar/lang/calendar-pl-utf8.js
index 819281f6..98a02772 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-pl-utf8.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-pl-utf8.js
@@ -1,93 +1,93 @@
-// ** I18N
-
-// Calendar PL language
-// Author: Dariusz Pietrzak,
-// Author: Janusz Piwowarski,
-// 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-2003\n" + // don't translate this this ;-)
-"Aby pobrać najnowszą wersję, odwiedź: http://dynarch.com/mishoo/calendar.epl\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";
+// ** I18N
+
+// Calendar PL language
+// Author: Dariusz Pietrzak,
+// Author: Janusz Piwowarski,
+// 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-2003\n" + // don't translate this this ;-)
+"Aby pobrać najnowszą wersję, odwiedź: http://dynarch.com/mishoo/calendar.epl\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/oss/vtiger/trunk/jscalendar/lang/calendar-pl.js b/oss/vtiger/trunk/jscalendar/lang/calendar-pl.js
index 7462cd54..476a636d 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-pl.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-pl.js
@@ -1,125 +1,125 @@
-// ** I18N
-// Calendar PL language
-// Author: Artur Filipiak,
-// January, 2004
-// 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
-("Niedziela",
- "Poniedziałek",
- "Wtorek",
- "Åšroda",
- "Czwartek",
- "PiÄ…tek",
- "Sobota",
- "Niedziela");
-
- // 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
-("N",
-"Pn",
-"Wt",
-"Åšr",
-"Cz",
-"Pt",
-"So",
-"N");
-
-// full month names
-Calendar._MN = new Array
-("Styczeń",
- "Luty",
- "Marzec",
- "Kwiecień",
- "Maj",
- "Czerwiec",
- "Lipiec",
- "Sierpień",
- "Wrzesień",
- "Październik",
- "Listopad",
- "Grudzień");
-
-// short month names
-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-2003\n" + // don't translate this this ;-)
-"For latest version visit: http://dynarch.com/mishoo/calendar.epl\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Å›)";
-
-// 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"] = "PoczÄ…tek tygodnia - %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"] = "Zamknij";
-Calendar._TT["TODAY"] = "DziÅ›";
-Calendar._TT["TIME_PART"] = "(Shift-)Click or drag to change value";
-
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y";
-Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
-
-Calendar._TT["WK"] = "tydz";
-//Calendar._TT["TIME"] = "Godz.:";
-
+// ** I18N
+// Calendar PL language
+// Author: Artur Filipiak,
+// January, 2004
+// 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
+("Niedziela",
+ "Poniedziałek",
+ "Wtorek",
+ "Åšroda",
+ "Czwartek",
+ "PiÄ…tek",
+ "Sobota",
+ "Niedziela");
+
+ // 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
+("N",
+"Pn",
+"Wt",
+"Åšr",
+"Cz",
+"Pt",
+"So",
+"N");
+
+// full month names
+Calendar._MN = new Array
+("Styczeń",
+ "Luty",
+ "Marzec",
+ "Kwiecień",
+ "Maj",
+ "Czerwiec",
+ "Lipiec",
+ "Sierpień",
+ "Wrzesień",
+ "Październik",
+ "Listopad",
+ "Grudzień");
+
+// short month names
+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-2003\n" + // don't translate this this ;-)
+"For latest version visit: http://dynarch.com/mishoo/calendar.epl\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Å›)";
+
+// 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"] = "PoczÄ…tek tygodnia - %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"] = "Zamknij";
+Calendar._TT["TODAY"] = "DziÅ›";
+Calendar._TT["TIME_PART"] = "(Shift-)Click or drag to change value";
+
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%d-%m-%Y";
+Calendar._TT["TT_DATE_FORMAT"] = "%a, %b %e";
+
+Calendar._TT["WK"] = "tydz";
+//Calendar._TT["TIME"] = "Godz.:";
+
diff --git a/oss/vtiger/trunk/jscalendar/lang/calendar-pt.js b/oss/vtiger/trunk/jscalendar/lang/calendar-pt.js
index 1184dfa6..0bbdc7cf 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-pt.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-pt.js
@@ -1,45 +1,45 @@
-// ** I18N
-Calendar._DN = new Array
-("Domingo",
- "Segunda",
- "Terça",
- "Quarta",
- "Quinta",
- "Sexta",
- "Sábado",
- "Domingo");
-Calendar._MN = new Array
-("Janeiro",
- "Fevereiro",
- "Março",
- "Abril",
- "Maio",
- "Junho",
- "Julho",
- "Agosto",
- "Setembro",
- "Outubro",
- "Novembro",
- "Dezembro");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["TOGGLE"] = "Trocar o primeiro dia da semana";
-Calendar._TT["PREV_YEAR"] = "Ano Anterior (mantenha para menu)";
-Calendar._TT["PREV_MONTH"] = "Mês Anterior (mantenha para menu)";
-Calendar._TT["GO_TODAY"] = "Ir para hoje";
-Calendar._TT["NEXT_MONTH"] = "Próximo Mês (mantenha para menu)";
-Calendar._TT["NEXT_YEAR"] = "Próximo Ano (mantenha para menu)";
-Calendar._TT["SEL_DATE"] = "Escolha Data";
-Calendar._TT["DRAG_TO_MOVE"] = "Arraste para mover";
-Calendar._TT["PART_TODAY"] = " (hoje)";
-Calendar._TT["MON_FIRST"] = "Mostrar Segunda primeiro";
-Calendar._TT["SUN_FIRST"] = "Mostrar Domingo primeiro";
-Calendar._TT["CLOSE"] = "Fechar";
-Calendar._TT["TODAY"] = "Hoje";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "a-mm-dd";
-Calendar._TT["TT_DATE_FORMAT"] = "D, M d";
-
-Calendar._TT["WK"] = "sm";
+// ** I18N
+Calendar._DN = new Array
+("Domingo",
+ "Segunda",
+ "Terça",
+ "Quarta",
+ "Quinta",
+ "Sexta",
+ "Sábado",
+ "Domingo");
+Calendar._MN = new Array
+("Janeiro",
+ "Fevereiro",
+ "Março",
+ "Abril",
+ "Maio",
+ "Junho",
+ "Julho",
+ "Agosto",
+ "Setembro",
+ "Outubro",
+ "Novembro",
+ "Dezembro");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["TOGGLE"] = "Trocar o primeiro dia da semana";
+Calendar._TT["PREV_YEAR"] = "Ano Anterior (mantenha para menu)";
+Calendar._TT["PREV_MONTH"] = "Mês Anterior (mantenha para menu)";
+Calendar._TT["GO_TODAY"] = "Ir para hoje";
+Calendar._TT["NEXT_MONTH"] = "Próximo Mês (mantenha para menu)";
+Calendar._TT["NEXT_YEAR"] = "Próximo Ano (mantenha para menu)";
+Calendar._TT["SEL_DATE"] = "Escolha Data";
+Calendar._TT["DRAG_TO_MOVE"] = "Arraste para mover";
+Calendar._TT["PART_TODAY"] = " (hoje)";
+Calendar._TT["MON_FIRST"] = "Mostrar Segunda primeiro";
+Calendar._TT["SUN_FIRST"] = "Mostrar Domingo primeiro";
+Calendar._TT["CLOSE"] = "Fechar";
+Calendar._TT["TODAY"] = "Hoje";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "a-mm-dd";
+Calendar._TT["TT_DATE_FORMAT"] = "D, M d";
+
+Calendar._TT["WK"] = "sm";
diff --git a/oss/vtiger/trunk/jscalendar/lang/calendar-ro.js b/oss/vtiger/trunk/jscalendar/lang/calendar-ro.js
index f4926f00..02a7885f 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-ro.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-ro.js
@@ -1,66 +1,66 @@
-// ** 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-2003\n" + // don't translate this this ;-)
-"Pentru ultima versiune vizitaţi: http://dynarch.com/mishoo/calendar.epl\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:";
+// ** 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-2003\n" + // don't translate this this ;-)
+"Pentru ultima versiune vizitaţi: http://dynarch.com/mishoo/calendar.epl\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/oss/vtiger/trunk/jscalendar/lang/calendar-ru.js b/oss/vtiger/trunk/jscalendar/lang/calendar-ru.js
index 459cec57..3bdae17f 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-ru.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-ru.js
@@ -1,45 +1,45 @@
-// ** I18N
-Calendar._DN = new Array
-("Âîñêðåñåíüå",
- "Ïîíåäåëüíèê",
- "Âòîðíèê",
- "Ñðåäà",
- "×åòâåðã",
- "Ïÿòíèöà",
- "Ñóááîòà",
- "Âîñêðåñåíüå");
-Calendar._MN = new Array
-("ßíâàðü",
- "Ôåâðàëü",
- "Ìàðò",
- "Àïðåëü",
- "Ìàé",
- "Èþíü",
- "Èþëü",
- "Àâãóñò",
- "Ñåíòÿáðü",
- "Îêòÿáðü",
- "Íîÿáðü",
- "Äåêàáðü");
-
-// tooltips
-Calendar._TT = {};
-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"] = "Ñåãîäíÿ";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "y-mm-dd";
-Calendar._TT["TT_DATE_FORMAT"] = "D, M d";
-
-Calendar._TT["WK"] = "íåä";
+// ** I18N
+Calendar._DN = new Array
+("Âîñêðåñåíüå",
+ "Ïîíåäåëüíèê",
+ "Âòîðíèê",
+ "Ñðåäà",
+ "×åòâåðã",
+ "Ïÿòíèöà",
+ "Ñóááîòà",
+ "Âîñêðåñåíüå");
+Calendar._MN = new Array
+("ßíâàðü",
+ "Ôåâðàëü",
+ "Ìàðò",
+ "Àïðåëü",
+ "Ìàé",
+ "Èþíü",
+ "Èþëü",
+ "Àâãóñò",
+ "Ñåíòÿáðü",
+ "Îêòÿáðü",
+ "Íîÿáðü",
+ "Äåêàáðü");
+
+// tooltips
+Calendar._TT = {};
+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"] = "Ñåãîäíÿ";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "y-mm-dd";
+Calendar._TT["TT_DATE_FORMAT"] = "D, M d";
+
+Calendar._TT["WK"] = "íåä";
diff --git a/oss/vtiger/trunk/jscalendar/lang/calendar-si.js b/oss/vtiger/trunk/jscalendar/lang/calendar-si.js
index edde42e8..77f4aa8d 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-si.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-si.js
@@ -1,94 +1,94 @@
-/* Slovenian language file for the DHTML Calendar version 0.9.2
-* Author David Milost , 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-2003\n" + // don't translate this this ;-)
-"Za zadnjo verzijo pojdine na naslov: http://dynarch.com/mishoo/calendar.epl\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";
-
+/* Slovenian language file for the DHTML Calendar version 0.9.2
+* Author David Milost , 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-2003\n" + // don't translate this this ;-)
+"Za zadnjo verzijo pojdine na naslov: http://dynarch.com/mishoo/calendar.epl\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/oss/vtiger/trunk/jscalendar/lang/calendar-sk.js b/oss/vtiger/trunk/jscalendar/lang/calendar-sk.js
index 9b2dfc31..9b8c2051 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-sk.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-sk.js
@@ -1,99 +1,99 @@
-// ** 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-2003\n" +
-"Poslednú verziu nájdete na: http://dynarch.com/mishoo/calendar.epl\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�ž";
+// ** 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-2003\n" +
+"Poslednú verziu nájdete na: http://dynarch.com/mishoo/calendar.epl\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/oss/vtiger/trunk/jscalendar/lang/calendar-sp.js b/oss/vtiger/trunk/jscalendar/lang/calendar-sp.js
index 2937a300..5aa94c6d 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-sp.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-sp.js
@@ -1,63 +1,63 @@
-// ** I18N
-Calendar._DN = new Array
-("Domingo",
- "Lunes",
- "Martes",
- "Miercoles",
- "Jueves",
- "Viernes",
- "Sabado",
- "Domingo");
-Calendar._MN = new Array
-("Enero",
- "Febrero",
- "Marzo",
- "Abril",
- "Mayo",
- "Junio",
- "Julio",
- "Agosto",
- "Septiembre",
- "Octubre",
- "Noviembre",
- "Diciembre");
-
-// tooltips
-Calendar._TT = {};
-Calendar._TT["INFO"] = "Información del Calendario";
-
-Calendar._TT["ABOUT"] =
-"DHTML Date/Time Selector\n" +
-"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
-"Nuevas versiones en: http://dynarch.com/mishoo/calendar.epl\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["TOGGLE"] = "Primer dia de la semana";
-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)";
-Calendar._TT["MON_FIRST"] = "Lunes Primero";
-Calendar._TT["SUN_FIRST"] = "Domingo Primero";
-Calendar._TT["CLOSE"] = "Cerrar";
-Calendar._TT["TODAY"] = "Hoy";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-yy";
-Calendar._TT["TT_DATE_FORMAT"] = "%A, %e de %B de %Y";
-
-Calendar._TT["WK"] = "Smn";
+// ** I18N
+Calendar._DN = new Array
+("Domingo",
+ "Lunes",
+ "Martes",
+ "Miercoles",
+ "Jueves",
+ "Viernes",
+ "Sabado",
+ "Domingo");
+Calendar._MN = new Array
+("Enero",
+ "Febrero",
+ "Marzo",
+ "Abril",
+ "Mayo",
+ "Junio",
+ "Julio",
+ "Agosto",
+ "Septiembre",
+ "Octubre",
+ "Noviembre",
+ "Diciembre");
+
+// tooltips
+Calendar._TT = {};
+Calendar._TT["INFO"] = "Información del Calendario";
+
+Calendar._TT["ABOUT"] =
+"DHTML Date/Time Selector\n" +
+"(c) dynarch.com 2002-2003\n" + // don't translate this this ;-)
+"Nuevas versiones en: http://dynarch.com/mishoo/calendar.epl\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["TOGGLE"] = "Primer dia de la semana";
+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)";
+Calendar._TT["MON_FIRST"] = "Lunes Primero";
+Calendar._TT["SUN_FIRST"] = "Domingo Primero";
+Calendar._TT["CLOSE"] = "Cerrar";
+Calendar._TT["TODAY"] = "Hoy";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "dd-mm-yy";
+Calendar._TT["TT_DATE_FORMAT"] = "%A, %e de %B de %Y";
+
+Calendar._TT["WK"] = "Smn";
diff --git a/oss/vtiger/trunk/jscalendar/lang/calendar-sv.js b/oss/vtiger/trunk/jscalendar/lang/calendar-sv.js
index dc0a0729..07adb4c4 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-sv.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-sv.js
@@ -1,93 +1,93 @@
-// ** I18N
-
-// Calendar SV language (Swedish, svenska)
-// Author: Mihai Bazon,
-// Translation team:
-// Translator: Leonard Norrgård
-// Last translator: Leonard Norrgård
-// 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");
-
-// 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-2003\n" + // don't translate this this ;-)
-"För senaste version gå till: http://dynarch.com/mishoo/calendar.epl\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 menu)";
-Calendar._TT["PREV_MONTH"] = "Föregående månad (håll för menu)";
-Calendar._TT["GO_TODAY"] = "Gå till dagens datum";
-Calendar._TT["NEXT_MONTH"] = "Följande månad (håll för menu)";
-Calendar._TT["NEXT_YEAR"] = "Följande år (håll för menu)";
-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";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
-Calendar._TT["TT_DATE_FORMAT"] = "%A %d %b %Y";
-
-Calendar._TT["WK"] = "vecka";
+// ** I18N
+
+// Calendar SV language (Swedish, svenska)
+// Author: Mihai Bazon,
+// Translation team:
+// Translator: Leonard Norrgård
+// Last translator: Leonard Norrgård
+// 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");
+
+// 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-2003\n" + // don't translate this this ;-)
+"För senaste version gå till: http://dynarch.com/mishoo/calendar.epl\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 menu)";
+Calendar._TT["PREV_MONTH"] = "Föregående månad (håll för menu)";
+Calendar._TT["GO_TODAY"] = "Gå till dagens datum";
+Calendar._TT["NEXT_MONTH"] = "Följande månad (håll för menu)";
+Calendar._TT["NEXT_YEAR"] = "Följande år (håll för menu)";
+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";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "%Y-%m-%d";
+Calendar._TT["TT_DATE_FORMAT"] = "%A %d %b %Y";
+
+Calendar._TT["WK"] = "vecka";
diff --git a/oss/vtiger/trunk/jscalendar/lang/calendar-tr.js b/oss/vtiger/trunk/jscalendar/lang/calendar-tr.js
index f2c906c4..2164687f 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-tr.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-tr.js
@@ -1,58 +1,58 @@
-//////////////////////////////////////////////////////////////////////////////////////////////
-// 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:
-//
-//
-//
-//////////////////////////////////////////////////////////////////////////////////////////////
-
-// ** 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";
+//////////////////////////////////////////////////////////////////////////////////////////////
+// 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:
+//
+//
+//
+//////////////////////////////////////////////////////////////////////////////////////////////
+
+// ** 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/oss/vtiger/trunk/jscalendar/lang/calendar-zh.js b/oss/vtiger/trunk/jscalendar/lang/calendar-zh.js
index 4549c2aa..c0c54560 100644
--- a/oss/vtiger/trunk/jscalendar/lang/calendar-zh.js
+++ b/oss/vtiger/trunk/jscalendar/lang/calendar-zh.js
@@ -1,45 +1,45 @@
-// ** Translated by ATang ** I18N
-Calendar._DN = new Array
-("ÐÇÆÚÈÕ",
- "ÐÇÆÚÒ»",
- "ÐÇÆÚ¶þ",
- "ÐÇÆÚÈý",
- "ÐÇÆÚËÄ",
- "ÐÇÆÚÎå",
- "ÐÇÆÚÁù",
- "ÐÇÆÚÈÕ");
-Calendar._MN = new Array
-("Ò»ÔÂ",
- "¶þÔÂ",
- "ÈýÔÂ",
- "ËÄÔÂ",
- "ÎåÔÂ",
- "ÁùÔÂ",
- "ÆßÔÂ",
- "°ËÔÂ",
- "¾ÅÔÂ",
- "Ê®ÔÂ",
- "ʮһÔÂ",
- "Ê®¶þÔÂ");
-
-// tooltips
-Calendar._TT = {};
-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"] = "½ñÈÕ";
-
-// date formats
-Calendar._TT["DEF_DATE_FORMAT"] = "y-mm-dd";
-Calendar._TT["TT_DATE_FORMAT"] = "D, M d";
-
-Calendar._TT["WK"] = "ÖÜ";
+// ** Translated by ATang ** I18N
+Calendar._DN = new Array
+("ÐÇÆÚÈÕ",
+ "ÐÇÆÚÒ»",
+ "ÐÇÆÚ¶þ",
+ "ÐÇÆÚÈý",
+ "ÐÇÆÚËÄ",
+ "ÐÇÆÚÎå",
+ "ÐÇÆÚÁù",
+ "ÐÇÆÚÈÕ");
+Calendar._MN = new Array
+("Ò»ÔÂ",
+ "¶þÔÂ",
+ "ÈýÔÂ",
+ "ËÄÔÂ",
+ "ÎåÔÂ",
+ "ÁùÔÂ",
+ "ÆßÔÂ",
+ "°ËÔÂ",
+ "¾ÅÔÂ",
+ "Ê®ÔÂ",
+ "ʮһÔÂ",
+ "Ê®¶þÔÂ");
+
+// tooltips
+Calendar._TT = {};
+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"] = "½ñÈÕ";
+
+// date formats
+Calendar._TT["DEF_DATE_FORMAT"] = "y-mm-dd";
+Calendar._TT["TT_DATE_FORMAT"] = "D, M d";
+
+Calendar._TT["WK"] = "ÖÜ";
|