You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by we...@apache.org on 2012/12/13 15:33:43 UTC
svn commit: r1421312 [4/4] - in /myfaces/tomahawk/trunk:
core/src/main/java/org/apache/myfaces/custom/calendar/
core/src/main/resources/org/apache/myfaces/custom/calendar/resource/
core20/src/main/java/org/apache/myfaces/custom/calendar/ core20/src/mai...
Modified: myfaces/tomahawk/trunk/core20/src/main/javascript/oam.custom.calendar/popcalendar.js
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core20/src/main/javascript/oam.custom.calendar/popcalendar.js?rev=1421312&r1=1421311&r2=1421312&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core20/src/main/javascript/oam.custom.calendar/popcalendar.js (original)
+++ myfaces/tomahawk/trunk/core20/src/main/javascript/oam.custom.calendar/popcalendar.js Thu Dec 13 14:33:42 2012
@@ -6,1699 +6,1512 @@
// @author Martin Marinschek
// @author Sylvain Vieujot
+//we reserve the namespace correctly
+window.org = window.org || {};
+org.apache = org.apache || {};
+org.apache.myfaces = org.apache.myfaces || {};
+
+if (!org.apache.myfaces.PopupCalendar) {
+ org.apache.myfaces.CalendarInitData = function () {
+ // x position (-1 if to appear below control)
+ this.fixedX = -1;
+
+ // y position (-1 if to appear below control)
+ this.fixedY = -1;
+
+ // 0 - sunday ; 1 - monday (aka firstDayOfWeek)
+ this.startAt = 1;
+
+ // 0 - don't show; 1 - show
+ this.showWeekNumber = 1;
+
+ // 0 - don't show; 1 - show
+ this.showToday = 1;
+
+ // directory for images ... e.g. this.imgDir="/img/"
+ this.imgDir = "images/";
+
+ this.imgDirSuffix = "";
+
+ this.themePrefix = "jscalendar-DB";
+
+ this.gotoString = "Go To Current Month";
+ this.todayString = "Today is";
+ this.todayDateFormat = null;
+ this.weekString = "Wk";
+ this.scrollLeftMessage = "Click to scroll to previous month. Hold mouse button to scroll automatically.";
+ this.scrollRightMessage = "Click to scroll to next month. Hold mouse button to scroll automatically.";
+ this.selectMonthMessage = "Click to select a month.";
+ this.selectYearMessage = "Click to select a year.";
+ this.selectDateMessage = "Select [date] as date."; // do not replace [date], it will be replaced by date.
+
+ this.popupLeft = false;
+
+ this.monthName = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
+ this.dayName = this.startAt == 0 ? new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat") : new Array("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun");
+
+ this.selectMode = "day";
+
+ };
+
+ org.apache.myfaces.DateParts = function (sec, min, hour, date, month, year) {
+ this.sec = sec;
+ this.min = min;
+ this.hour = hour;
+ this.date = date;
+ this.month = month;
+ this.year = year;
+ };
+
+ org.apache.myfaces.HolidayRec = function (d, m, y, desc) {
+ this.d = d;
+ this.m = m;
+ this.y = y;
+ this.desc = desc;
+ };
-org_apache_myfaces_CalendarInitData = function()
-{
- // x position (-1 if to appear below control)
- this.fixedX = -1;
-
- // y position (-1 if to appear below control)
- this.fixedY = -1;
-
- // 0 - sunday ; 1 - monday (aka firstDayOfWeek)
- this.startAt = 1;
-
- // 0 - don't show; 1 - show
- this.showWeekNumber = 1;
-
- // 0 - don't show; 1 - show
- this.showToday = 1;
-
- // directory for images ... e.g. this.imgDir="/img/"
- this.imgDir = "images/";
-
- this.imgDirSuffix = "";
-
- this.themePrefix = "jscalendar-DB";
-
- this.gotoString = "Go To Current Month";
- this.todayString = "Today is";
- this.todayDateFormat = null;
- this.weekString = "Wk";
- this.scrollLeftMessage = "Click to scroll to previous month. Hold mouse button to scroll automatically.";
- this.scrollRightMessage = "Click to scroll to next month. Hold mouse button to scroll automatically.";
- this.selectMonthMessage = "Click to select a month.";
- this.selectYearMessage = "Click to select a year.";
- this.selectDateMessage = "Select [date] as date."; // do not replace [date], it will be replaced by date.
-
- this.popupLeft=false;
-
- this.monthName = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
- this.dayName = this.startAt == 0 ? new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat") : new Array("Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun");
-
- this.selectMode = "day";
-};
-
-org_apache_myfaces_DateParts = function(sec, min, hour, date, month, year)
-{
- this.sec = sec;
- this.min = min;
- this.hour = hour;
- this.date = date;
- this.month = month;
- this.year = year;
-};
-
-org_apache_myfaces_HolidayRec = function(d, m, y, desc)
-{
- this.d = d;
- this.m = m;
- this.y = y;
- this.desc = desc;
-};
-
-org_apache_myfaces_PopupCalendar = function()
-{
- this.idPrefix = "org_apache_myfaces_PopupCalendar";
-
- this.selectedDate = new org_apache_myfaces_DateParts(0, 0, 0, 0, 0, 0);
- this.saveSelectedDate = new org_apache_myfaces_DateParts(0, 0, 0, 0, 0, 0);
-
- this.monthConstructed = false;
- this.yearConstructed = false;
- this.intervalID1 = null;
- this.intervalID2 = null;
- this.timeoutID1 = null;
- this.timeoutID2 = null;
- this.ctlToPlaceValue = null;
- this.ctlNow = null;
- this.containerCtl = null;
- this.dateFormat="MM/dd/yyyy";
- this.nStartingYear = null;
- this.bPageLoaded = false;
-
- // Detect whether the browser is Microsoft Internet Explorer.
- // Testing for the presence of document.all is not sufficient, as Opera provides that.
- // However hopefully nothing but IE implements ActiveX..
- // it is only needed to test for ie6 and before ie7 and quirks mode
- // do not expose the bleed through bug anymore
- this.ieVersion = this.getInternetExplorerVersion();
- this.ie6 = this.ieVersion != -1 && this.ieVersion < 7;
-
- this.dom = document.getElementById;
- this.ns4 = document.layers;
- this.dateFormatSymbols = new org_apache_myfaces_dateformat_DateFormatSymbols();
- this.initData = new org_apache_myfaces_CalendarInitData();
- this.today = new Date();
- this.dateNow = this.today.getDate();
- this.monthNow = this.today.getMonth();
- this.yearNow = this.today.getFullYear();
-
- // list of images to be preloaded from the server
- this.imgSrc = new Array("drop1.gif", "drop2.gif", "left1.gif", "left2.gif", "right1.gif", "right2.gif");
- this.img = new Array();
-
- //elements which need to change their dynamical
- //representation over time
- this.calendarDiv;
- this.selectMonthDiv;
- this.selectYearDiv;
- this.todaySpan = null;
- this.captionSpan = null;
- this.contentSpan = null;
- this.acceptMonthSpan = null;
- this.closeCalendarSpan = null;
- this.monthSpan = null;
- this.yearSpan = null
- this.changeMonthImg = null;
- this.changeYearImg = null;
-
- this.holidaysCounter = 0;
- this.holidays = new Array();
-
- this.bClickOnCalendar = false;
- this.bCalendarHidden = true;
-
- this.myFacesCtlType = "x:inputCalendar";
- this.inputDateClientId;
-};
+ org.apache.myfaces.PopupCalendar = function () {
+ this.idPrefix = "org.apache.myfaces.PopupCalendar";
+
+ this.selectedDate = new org.apache.myfaces.DateParts(0, 0, 0, 0, 0, 0);
+ this.saveSelectedDate = new org.apache.myfaces.DateParts(0, 0, 0, 0, 0, 0);
+
+ this.monthConstructed = false;
+ this.yearConstructed = false;
+ this.intervalID1 = null;
+ this.intervalID2 = null;
+ this.timeoutID1 = null;
+ this.timeoutID2 = null;
+ this.ctlToPlaceValue = null;
+ this.ctlNow = null;
+ this.containerCtl = null;
+ this.dateFormat = "MM/dd/yyyy";
+ this.nStartingYear = null;
+ this.bPageLoaded = false;
+
+ // Detect whether the browser is Microsoft Internet Explorer.
+ // Testing for the presence of document.all is not sufficient, as Opera provides that.
+ // However hopefully nothing but IE implements ActiveX..
+ // it is only needed to test for ie6 and before ie7 and quirks mode
+ // do not expose the bleed through bug anymore
+ this.ieVersion = this.getInternetExplorerVersion();
+ this.ie6 = this.ieVersion != -1 && this.ieVersion < 7;
+
+ this.dom = document.getElementById;
+ this.ns4 = document.layers;
+ this.dateFormatSymbols = new org.apache.myfaces.dateformat.DateFormatSymbols();
+ this.initData = new org.apache.myfaces.CalendarInitData();
+ this.today = new Date();
+ this.dateNow = this.today.getDate();
+ this.monthNow = this.today.getMonth();
+ this.yearNow = this.today.getFullYear();
+
+ // list of images to be preloaded from the server
+ this.imgSrc = new Array("drop1.gif", "drop2.gif", "left1.gif", "left2.gif", "right1.gif", "right2.gif");
+ this.img = new Array();
+
+ //elements which need to change their dynamical
+ //representation over time
+ this.calendarDiv;
+ this.selectMonthDiv;
+ this.selectYearDiv;
+ this.todaySpan = null;
+ this.captionSpan = null;
+ this.contentSpan = null;
+ this.acceptMonthSpan = null;
+ this.closeCalendarSpan = null;
+ this.monthSpan = null;
+ this.yearSpan = null
+ this.changeMonthImg = null;
+ this.changeYearImg = null;
+
+ this.holidaysCounter = 0;
+ this.holidays = new Array();
+
+ this.bClickOnCalendar = false;
+ this.bCalendarHidden = true;
+
+ this.myFacesCtlType = "x:inputCalendar";
+ this.inputDateClientId;
+ };
//http://msdn.microsoft.com/en-us/library/ms537509%28v=vs.85%29.aspx
-org_apache_myfaces_PopupCalendar.prototype.getInternetExplorerVersion = function ()
- // Returns the version of Internet Explorer or a -1
- // (indicating the use of another browser).
-{
- var rv = -1; // Return value assumes failure.
- if (navigator.appName == 'Microsoft Internet Explorer') {
- var ua = navigator.userAgent;
- var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
- if (re.exec(ua) != null)
- rv = parseFloat(RegExp.$1);
- }
- return rv;
-};
-
-org_apache_myfaces_PopupCalendar.prototype._MSECS_PER_DAY = 24*60*60*1000;
-
-/**
-popups always have to be
-at the dom level nowhere else
-*/
-org_apache_myfaces_PopupCalendar.prototype._fixPopupDomOrder = function(overDiv) {
- if(document.body != overDiv.parentNode) {
- overDiv.parentNode.removeChild(overDiv);
- document.body.appendChild(overDiv);
- }
-};
+ org.apache.myfaces.PopupCalendar.prototype.getInternetExplorerVersion = function ()
+ // Returns the version of Internet Explorer or a -1
+ // (indicating the use of another browser).
+ {
+ var rv = -1; // Return value assumes failure.
+ if (navigator.appName == 'Microsoft Internet Explorer') {
+ var ua = navigator.userAgent;
+ var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
+ if (re.exec(ua) != null)
+ rv = parseFloat(RegExp.$1);
+ }
+ return rv;
+ };
+
+ org.apache.myfaces.PopupCalendar.prototype._MSECS_PER_DAY = 24 * 60 * 60 * 1000;
+
+ /**
+ popups always have to be
+ at the dom level nowhere else
+ */
+ org.apache.myfaces.PopupCalendar.prototype._fixPopupDomOrder = function (overDiv) {
+ if (document.body != overDiv.parentNode) {
+ overDiv.parentNode.removeChild(overDiv);
+ document.body.appendChild(overDiv);
+ }
+ };
// IE bug workaround: hide background controls under the specified div.
-org_apache_myfaces_PopupCalendar.prototype._showPopupPostProcess = function(overDiv)
-{
-
- //ie6 detection over object inspections
- if (this.ie6)
- {
- // The iframe created here is a hack to work around an IE bug. In IE,
- // "windowed controls" (esp selectboxes) do not respect the z-index
- // setting of "non-windowed controls", meaning they will be drawn on
- // top of components that they should theoretically be underneath.
- // However a selectbox will NOT be drawn on top of an iframe, so the
- // workaround is to create an iframe with no content, then in function
- // _recalculateElement position the iframe under the "popup" div to
- // "mask out" the unwanted elements.
- var iframe = document.getElementById(overDiv.id + "_IFRAME");
+ org.apache.myfaces.PopupCalendar.prototype._showPopupPostProcess = function (overDiv) {
- if (iframe == null)
- {
- // the source attribute is to avoid a IE error message about non secure content on https connections
- iframe = document.createElement("iframe");
- iframe.setAttribute("id", overDiv.id + "_IFRAME");
- iframe.setAttribute("src", "javascript:false;");
- Element.setStyle(iframe, "visibility:hidden; position: absolute; top:0px;left:0px;");
-
- //we can append it lazily since we are late here anyway and everything is rendered
- document.body.appendChild(iframe);
- }
+ //ie6 detection over object inspections
+ if (this.ie6) {
+ // The iframe created here is a hack to work around an IE bug. In IE,
+ // "windowed controls" (esp selectboxes) do not respect the z-index
+ // setting of "non-windowed controls", meaning they will be drawn on
+ // top of components that they should theoretically be underneath.
+ // However a selectbox will NOT be drawn on top of an iframe, so the
+ // workaround is to create an iframe with no content, then in function
+ // _recalculateElement position the iframe under the "popup" div to
+ // "mask out" the unwanted elements.
+ var iframe = document.getElementById(overDiv.id + "_IFRAME");
+
+ if (iframe == null) {
+ // the source attribute is to avoid a IE error message about non secure content on https connections
+ iframe = document.createElement("iframe");
+ iframe.setAttribute("id", overDiv.id + "_IFRAME");
+ iframe.setAttribute("src", "javascript:false;");
+ Element.setStyle(iframe, "visibility:hidden; position: absolute; top:0px;left:0px;");
+
+ //we can append it lazily since we are late here anyway and everything is rendered
+ document.body.appendChild(iframe);
+ }
- // now put the iframe at the appropriate location, and make it visible.
- this._recalculateElement(overDiv);
- }
-};
+ // now put the iframe at the appropriate location, and make it visible.
+ this._recalculateElement(overDiv);
+ }
+ };
// IE bug workaround: hide background controls under the specified div; see _showPopupPostProcess.
// This should be called whenever a popup div is moved.
-org_apache_myfaces_PopupCalendar.prototype._recalculateElement = function(overDiv)
-{
- if (this.ie6)
- {
- var iframe = document.getElementById(overDiv.id + "_IFRAME");
-
- if (iframe)
- {
- // ok, there is a "masking iframe" associated with this div, so make its
- // size and position match the div exactly, and set its z-index to just
- // below the div. This hack blocks IE selectboxes from being drawn on top
- // of the div.
-
- overDiv.style.zIndex = 98;
-
- iframe.style.zIndex = overDiv.style.zIndex - 1;
- iframe.style.width = overDiv.offsetWidth;
- iframe.style.height = overDiv.offsetHeight;
- iframe.style.top = overDiv.style.top;
- iframe.style.left = overDiv.style.left;
- iframe.style.display = "block";
- iframe.style.visibility = "visible";
- /*we have to set an explicit visible otherwise it wont work*/
+ org.apache.myfaces.PopupCalendar.prototype._recalculateElement = function (overDiv) {
+ if (this.ie6) {
+ var iframe = document.getElementById(overDiv.id + "_IFRAME");
+
+ if (iframe) {
+ // ok, there is a "masking iframe" associated with this div, so make its
+ // size and position match the div exactly, and set its z-index to just
+ // below the div. This hack blocks IE selectboxes from being drawn on top
+ // of the div.
+
+ overDiv.style.zIndex = 98;
+
+ iframe.style.zIndex = overDiv.style.zIndex - 1;
+ iframe.style.width = overDiv.offsetWidth;
+ iframe.style.height = overDiv.offsetHeight;
+ iframe.style.top = overDiv.style.top;
+ iframe.style.left = overDiv.style.left;
+ iframe.style.display = "block";
+ iframe.style.visibility = "visible";
+ /*we have to set an explicit visible otherwise it wont work*/
+ }
}
- }
-};
+ };
// IE bug workaround: unhide background controls that are beneath the specified div; see _showPopupPostProcess.
// Note that although this is called _showeElement, it is called when the popup is being *hidden*,
// in order to *show* the underlying controls again.
// we also reallign the floating div
-org_apache_myfaces_PopupCalendar.prototype._hidePopupPostProcess = function(overDiv)
-{
-
+ org.apache.myfaces.PopupCalendar.prototype._hidePopupPostProcess = function (overDiv) {
- if (this.ie6)
- {
- var iframe = document.getElementById(overDiv.id + "_IFRAME");
- if (iframe) iframe.style.display = "none";
- }
-};
-
-org_apache_myfaces_PopupCalendar.prototype.addHoliday = function(d, m, y, desc)
-{
- this.holidays[this.holidaysCounter++] = new org_apache_myfaces_HolidayRec (d, m, y, desc);
-};
-
-org_apache_myfaces_PopupCalendar.prototype._swapImage = function(srcImg, destImg)
-{
-
- if (srcImg)
- srcImg.setAttribute("src", this.initData.imgDir + destImg+ this.initData.imgDirSuffix);
-};
-
-org_apache_myfaces_PopupCalendar.prototype._keypresshandler = function()
-{
- // This method is intended for use on IE browsers only; they are the only
- // browsers that define window.event and window.event.keyCode.
- // Q: Why is this done only for IE?
- if (window["event"] && window.event["keyCode"] && (window.event.keyCode == 27))
- {
- this._hideCalendar();
- }
-};
+ if (this.ie6) {
+ var iframe = document.getElementById(overDiv.id + "_IFRAME");
+ if (iframe) iframe.style.display = "none";
+ }
+ };
-org_apache_myfaces_PopupCalendar.prototype._clickhandler = function()
-{
- if (!this.bClickOnCalendar)
- {
- this._hideCalendar();
- }
+ org.apache.myfaces.PopupCalendar.prototype.addHoliday = function (d, m, y, desc) {
+ this.holidays[this.holidaysCounter++] = new org.apache.myfaces.HolidayRec(d, m, y, desc);
+ };
- this.bClickOnCalendar = false;
-};
+ org.apache.myfaces.PopupCalendar.prototype._swapImage = function (srcImg, destImg) {
-org_apache_myfaces_PopupCalendar.prototype._isDaySelectable = function()
-{
- return (this.initData.selectMode == "day");
-};
-
-org_apache_myfaces_PopupCalendar.prototype._isWeekSelectable = function()
-{
- return (this.initData.selectMode == "week");
-};
-
-org_apache_myfaces_PopupCalendar.prototype._isMonthSelectable = function()
-{
- return (this.initData.selectMode == "month");
-};
-
-org_apache_myfaces_PopupCalendar.prototype.init = function(containerCtl)
-{
- if (this.dom)
- {
+ if (srcImg)
+ srcImg.setAttribute("src", this.initData.imgDir + destImg + this.initData.imgDirSuffix);
+ };
- if (!this.calendarDiv)
- {
- for (var i = 0; i < this.imgSrc.length; i++)
- {
- // force preload of all images, so that when DOM nodes have their src set to
- // the name of this image, it has already been loaded from the server.
- this.img[i] = new Image;
- this.img[i].src = this.initData.imgDir + this.imgSrc[i]+ this.initData.imgDirSuffix;
- }
-
- this.containerCtl = containerCtl;
-
- this.calendarDiv = document.createElement("div");
- this.calendarDiv.id = containerCtl.id + "_calendarDiv";
- this.calendarDiv.className = this.initData.themePrefix + "-div-style";
-
- Event.observe(this.calendarDiv, "click", function()
- {
- this.bClickOnCalendar = true;
- }.bind(this), false);
+ org.apache.myfaces.PopupCalendar.prototype._keypresshandler = function () {
+ // This method is intended for use on IE browsers only; they are the only
+ // browsers that define window.event and window.event.keyCode.
+ // Q: Why is this done only for IE?
+ if (window["event"] && window.event["keyCode"] && (window.event.keyCode == 27)) {
+ this._hideCalendar();
+ }
+ };
+
+ org.apache.myfaces.PopupCalendar.prototype._clickhandler = function () {
+ if (!this.bClickOnCalendar) {
+ this._hideCalendar();
+ }
- this.containerCtl.appendChild(this.calendarDiv);
+ this.bClickOnCalendar = false;
+ };
- var mainTable = document.createElement("table");
- Element.setStyle(mainTable, "width:" + ((this.initData.showWeekNumber == 1)?250:220) + "px;");
- mainTable.className = this.initData.themePrefix + "-table-style";
+ org.apache.myfaces.PopupCalendar.prototype._isDaySelectable = function () {
+ return (this.initData.selectMode == "day");
+ };
- this.calendarDiv.appendChild(mainTable);
+ org.apache.myfaces.PopupCalendar.prototype._isWeekSelectable = function () {
+ return (this.initData.selectMode == "week");
+ };
- //This is necessary for IE. If you don't create a tbody element, the table will never show up!
- var mainBody = document.createElement("tbody");
- mainTable.appendChild(mainBody);
+ org.apache.myfaces.PopupCalendar.prototype._isMonthSelectable = function () {
+ return (this.initData.selectMode == "month");
+ };
- var mainRow = document.createElement("tr");
- mainRow.className = this.initData.themePrefix + "-title-background-style";
+ org.apache.myfaces.PopupCalendar.prototype.init = function (containerCtl) {
+ if (this.dom) {
- mainBody.appendChild(mainRow);
+ if (!this.calendarDiv) {
+ for (var i = 0; i < this.imgSrc.length; i++) {
+ // force preload of all images, so that when DOM nodes have their src set to
+ // the name of this image, it has already been loaded from the server.
+ this.img[i] = new Image;
+ this.img[i].src = this.initData.imgDir + this.imgSrc[i] + this.initData.imgDirSuffix;
+ }
- var mainCell = document.createElement("td");
+ this.containerCtl = containerCtl;
- mainRow.appendChild(mainCell);
+ this.calendarDiv = document.createElement("div");
+ this.calendarDiv.id = containerCtl.id + "_calendarDiv";
+ this.calendarDiv.className = this.initData.themePrefix + "-div-style";
- var contentTable = document.createElement("table");
- Element.setStyle(contentTable, "width:" + ((this.initData.showWeekNumber == 1)?248:218) + "px;");
+ Event.observe(this.calendarDiv, "click", function () {
+ this.bClickOnCalendar = true;
+ }.bind(this), false);
- var contentBody = document.createElement("tbody");
- contentTable.appendChild(contentBody);
+ this.containerCtl.appendChild(this.calendarDiv);
- mainCell.appendChild(contentTable);
+ var mainTable = document.createElement("table");
+ Element.setStyle(mainTable, "width:" + ((this.initData.showWeekNumber == 1) ? 250 : 220) + "px;");
+ mainTable.className = this.initData.themePrefix + "-table-style";
- var headerRow = document.createElement("tr");
- contentBody.appendChild(headerRow);
+ this.calendarDiv.appendChild(mainTable);
- var captionCell = document.createElement("td");
- captionCell.className = this.initData.themePrefix + "-title-style";
- headerRow.appendChild(captionCell);
+ //This is necessary for IE. If you don't create a tbody element, the table will never show up!
+ var mainBody = document.createElement("tbody");
+ mainTable.appendChild(mainBody);
- this.captionSpan = document.createElement("span");
- captionCell.appendChild(this.captionSpan);
+ var mainRow = document.createElement("tr");
+ mainRow.className = this.initData.themePrefix + "-title-background-style";
- if (this._isMonthSelectable())
- {
- var acceptMonthCell = document.createElement("td");
- Element.setStyle(acceptMonthCell, "text-align:right;");
- headerRow.appendChild(acceptMonthCell);
-
- var acceptMonthLink = document.createElement("a");
- acceptMonthLink.setAttribute("href", "#");
- Event.observe(acceptMonthLink, "click", function(event)
- {
- this.selectedDate.date = 1; // force first of the selected month
- this._closeCalendar();
+ mainBody.appendChild(mainRow);
+
+ var mainCell = document.createElement("td");
+
+ mainRow.appendChild(mainCell);
+
+ var contentTable = document.createElement("table");
+ Element.setStyle(contentTable, "width:" + ((this.initData.showWeekNumber == 1) ? 248 : 218) + "px;");
+
+ var contentBody = document.createElement("tbody");
+ contentTable.appendChild(contentBody);
+
+ mainCell.appendChild(contentTable);
+
+ var headerRow = document.createElement("tr");
+ contentBody.appendChild(headerRow);
+
+ var captionCell = document.createElement("td");
+ captionCell.className = this.initData.themePrefix + "-title-style";
+ headerRow.appendChild(captionCell);
+
+ this.captionSpan = document.createElement("span");
+ captionCell.appendChild(this.captionSpan);
+
+ if (this._isMonthSelectable()) {
+ var acceptMonthCell = document.createElement("td");
+ Element.setStyle(acceptMonthCell, "text-align:right;");
+ headerRow.appendChild(acceptMonthCell);
+
+ var acceptMonthLink = document.createElement("a");
+ acceptMonthLink.setAttribute("href", "#");
+ Event.observe(acceptMonthLink, "click", function (event) {
+ this.selectedDate.date = 1; // force first of the selected month
+ this._closeCalendar();
+ Event.stop(event);
+ }.bindAsEventListener(this), false);
+
+ acceptMonthCell.appendChild(acceptMonthLink);
+ this.acceptMonthSpan = document.createElement("span");
+ this.acceptMonthSpan.appendChild(document.createTextNode("Y"));
+
+ acceptMonthLink.appendChild(this.acceptMonthSpan);
+ }
+
+ var closeButtonCell = document.createElement("td");
+ Element.setStyle(closeButtonCell, "text-align:right;");
+ headerRow.appendChild(closeButtonCell);
+
+ var closeCalendarLink = document.createElement("a");
+ closeCalendarLink.setAttribute("href", "#");
+ Event.observe(closeCalendarLink, "click", function (event) {
+ this._hideCalendar();
Event.stop(event);
}.bindAsEventListener(this), false);
-
- acceptMonthCell.appendChild(acceptMonthLink);
- this.acceptMonthSpan = document.createElement("span");
- this.acceptMonthSpan.appendChild(document.createTextNode("Y"));
-
- acceptMonthLink.appendChild(this.acceptMonthSpan);
- }
-
- var closeButtonCell = document.createElement("td");
- Element.setStyle(closeButtonCell, "text-align:right;");
- headerRow.appendChild(closeButtonCell);
-
- var closeCalendarLink = document.createElement("a");
- closeCalendarLink.setAttribute("href", "#");
- Event.observe(closeCalendarLink, "click", function(event)
- {
- this._hideCalendar();
- Event.stop(event);
- }.bindAsEventListener(this), false);
- closeButtonCell.appendChild(closeCalendarLink);
+ closeButtonCell.appendChild(closeCalendarLink);
- this.closeCalendarSpan = document.createElement("span");
+ this.closeCalendarSpan = document.createElement("span");
- closeCalendarLink.appendChild(this.closeCalendarSpan);
+ closeCalendarLink.appendChild(this.closeCalendarSpan);
- var contentRow = document.createElement("tr");
- mainBody.appendChild(contentRow);
+ var contentRow = document.createElement("tr");
+ mainBody.appendChild(contentRow);
- var contentCell = document.createElement("td");
- contentCell.className = this.initData.themePrefix + "-body-style";
- contentRow.appendChild(contentCell);
+ var contentCell = document.createElement("td");
+ contentCell.className = this.initData.themePrefix + "-body-style";
+ contentRow.appendChild(contentCell);
- this.contentSpan = document.createElement("span");
- contentCell.appendChild(this.contentSpan);
+ this.contentSpan = document.createElement("span");
+ contentCell.appendChild(this.contentSpan);
- if (this.initData.showToday == 1)
- {
- var todayRow = document.createElement("tr");
- todayRow.className = this.initData.themePrefix + "-today-style";
- mainBody.appendChild(todayRow);
+ if (this.initData.showToday == 1) {
+ var todayRow = document.createElement("tr");
+ todayRow.className = this.initData.themePrefix + "-today-style";
+ mainBody.appendChild(todayRow);
- var todayCell = document.createElement("td");
- todayCell.className = this.initData.themePrefix + "-today-lbl-style";
- todayRow.appendChild(todayCell);
+ var todayCell = document.createElement("td");
+ todayCell.className = this.initData.themePrefix + "-today-lbl-style";
+ todayRow.appendChild(todayCell);
- this.todaySpan = document.createElement("span");
- todayCell.appendChild(this.todaySpan);
- }
+ this.todaySpan = document.createElement("span");
+ todayCell.appendChild(this.todaySpan);
+ }
- this.selectMonthDiv = document.createElement("div");
- this.selectMonthDiv.id = this.containerCtl.id + "_selectMonthDiv";
- this.selectMonthDiv.className = this.initData.themePrefix + "-div-style";
+ this.selectMonthDiv = document.createElement("div");
+ this.selectMonthDiv.id = this.containerCtl.id + "_selectMonthDiv";
+ this.selectMonthDiv.className = this.initData.themePrefix + "-div-style";
- this.containerCtl.appendChild(this.selectMonthDiv);
+ this.containerCtl.appendChild(this.selectMonthDiv);
- this.selectYearDiv = document.createElement("div");
- this.selectYearDiv.id = this.containerCtl.id + "_selectYearDiv";
- this.selectYearDiv.className = this.initData.themePrefix + "-div-style";
+ this.selectYearDiv = document.createElement("div");
+ this.selectYearDiv.id = this.containerCtl.id + "_selectYearDiv";
+ this.selectYearDiv.className = this.initData.themePrefix + "-div-style";
- this.containerCtl.appendChild(this.selectYearDiv);
+ this.containerCtl.appendChild(this.selectYearDiv);
- // Catch global keypresses and clicks, so that entering data into any field
- // outside the calendar, or clicking anywhere outside the calendar, will
- // close it.
- //
- // This is ugly, as it's quite a load on the client to check this for every
- // keystroke/click. It would be nice to find an alternative...maybe register
- // these listeners only when a calendar is open?
- Event.observe(document, "keypress", this._keypresshandler.bind(this), false);
- Event.observe(document, "click", this._clickhandler.bind(this), false);
+ // Catch global keypresses and clicks, so that entering data into any field
+ // outside the calendar, or clicking anywhere outside the calendar, will
+ // close it.
+ //
+ // This is ugly, as it's quite a load on the client to check this for every
+ // keystroke/click. It would be nice to find an alternative...maybe register
+ // these listeners only when a calendar is open?
+ Event.observe(document, "keypress", this._keypresshandler.bind(this), false);
+ Event.observe(document, "click", this._clickhandler.bind(this), false);
+ }
}
- }
+ if (!this.ns4) {
+ /* Instead use getFullYear() */
+ /*if (!this.ie6)
+ this.yearNow += 1900;*/
+
+ this._hideCalendar();
+
+ this.monthConstructed = false;
+ this.yearConstructed = false;
+
+ if (this.initData.showToday == 1) {
+ // TODO this.dateFormatSymbols is probably never set at this point.
+ this.todayDateFormatter = new org.apache.myfaces.dateformat.SimpleDateFormatter(
+ this.initData.todayDateFormat ? this.initData.todayDateFormat : this.dateFormat,
+ this.dateFormatSymbols,
+ this.initData.startAt);
+
+ this.todaySpan.appendChild(document.createTextNode(this.initData.todayString + " "))
+
+ var todayLink = document.createElement("a");
+ todayLink.className = this.initData.themePrefix + "-today-style";
+ todayLink.setAttribute("title", this.initData.gotoString);
+ todayLink.setAttribute("href", "#");
+ todayLink.appendChild(document.createTextNode(this._todayIsDate()));
+ Event.observe(todayLink, "click", function (event) {
+ this.selectedDate.month = this.monthNow;
+ this.selectedDate.year = this.yearNow;
+ this._constructCalendar();
+ Event.stop(event);
+ }.bindAsEventListener(this), false);
+ Event.observe(todayLink, "mousemove", function () {
+ window.status = this.initData.gotoString;
+ }.bind(this), false);
+ Event.observe(todayLink, "mouseout", function () {
+ window.status = "";
+ }.bind(this), false);
- if (!this.ns4)
- {
- /* Instead use getFullYear() */
- /*if (!this.ie6)
- this.yearNow += 1900;*/
+ this.todaySpan.appendChild(todayLink);
+ }
- this._hideCalendar();
+ this._appendNavToCaption("left");
+ this._appendNavToCaption("right");
- this.monthConstructed = false;
- this.yearConstructed = false;
+ this.monthSpan = document.createElement("span");
+ this.monthSpan.className = this.initData.themePrefix + "-title-control-normal-style";
- if (this.initData.showToday == 1)
- {
- // TODO this.dateFormatSymbols is probably never set at this point.
- this.todayDateFormatter = new org_apache_myfaces_dateformat_SimpleDateFormatter(
- this.initData.todayDateFormat? this.initData.todayDateFormat:this.dateFormat,
- this.dateFormatSymbols,
- this.initData.startAt);
-
- this.todaySpan.appendChild(document.createTextNode(this.initData.todayString + " "))
-
- var todayLink = document.createElement("a");
- todayLink.className = this.initData.themePrefix + "-today-style";
- todayLink.setAttribute("title", this.initData.gotoString);
- todayLink.setAttribute("href", "#")
- todayLink.appendChild(document.createTextNode(this._todayIsDate()));
- Event.observe(todayLink, "click", function(event)
- {
- this.selectedDate.month = this.monthNow;
- this.selectedDate.year = this.yearNow;
- this._constructCalendar();
- Event.stop(event);
+ Event.observe(this.monthSpan, "mouseover", function (event) {
+ this._swapImage(this.changeMonthImg, "drop2.gif");
+ this.monthSpan.className = this.initData.themePrefix + "-title-control-select-style";
+ window.status = this.selectMonthMessage;
}.bindAsEventListener(this), false);
- Event.observe(todayLink, "mousemove", function()
- {
- window.status = this.initData.gotoString;
- }.bind(this), false);
- Event.observe(todayLink, "mouseout", function()
- {
+
+ Event.observe(this.monthSpan, "mouseout", function (event) {
+ this._swapImage(this.changeMonthImg, "drop1.gif");
+ this.monthSpan.className = this.initData.themePrefix + "-title-control-normal-style";
window.status = "";
+ }.bindAsEventListener(this), false);
+
+ Event.observe(this.monthSpan, "click", function (event) {
+ this._popUpMonth();
+ Event.stop(event);
}.bind(this), false);
- this.todaySpan.appendChild(todayLink);
- }
+ this.captionSpan.appendChild(this.monthSpan);
+ this._appendNbsp(this.captionSpan);
- this._appendNavToCaption("left");
- this._appendNavToCaption("right");
+ this.yearSpan = document.createElement("span");
+ this.yearSpan.className = this.initData.themePrefix + "-title-control-normal-style";
- this.monthSpan = document.createElement("span");
- this.monthSpan.className = this.initData.themePrefix + "-title-control-normal-style";
+ Event.observe(this.yearSpan, "mouseover", function (event) {
+ this._swapImage(this.changeYearImg, "drop2.gif");
+ this.yearSpan.className = this.initData.themePrefix + "-title-control-select-style";
+ window.status = this.selectYearMessage;
+ }.bindAsEventListener(this), false);
- Event.observe(this.monthSpan, "mouseover", function(event)
- {
- this._swapImage(this.changeMonthImg, "drop2.gif");
- this.monthSpan.className = this.initData.themePrefix + "-title-control-select-style";
- window.status = this.selectMonthMessage;
- }.bindAsEventListener(this), false);
+ Event.observe(this.yearSpan, "mouseout", function (event) {
+ this._swapImage(this.changeYearImg, "drop1.gif");
+ this.yearSpan.className = this.initData.themePrefix + "-title-control-normal-style";
+ window.status = "";
+ }.bindAsEventListener(this), false);
- Event.observe(this.monthSpan, "mouseout", function(event)
- {
- this._swapImage(this.changeMonthImg, "drop1.gif");
- this.monthSpan.className = this.initData.themePrefix + "-title-control-normal-style";
- window.status = "";
- }.bindAsEventListener(this), false);
+ Event.observe(this.yearSpan, "click", function (event) {
+ this._popUpYear();
+ Event.stop(event);
+ }.bind(this), false);
- Event.observe(this.monthSpan, "click", function(event)
- {
- this._popUpMonth();
- Event.stop(event);
- }.bind(this), false);
+ this.captionSpan.appendChild(this.yearSpan);
+ this._appendNbsp(this.captionSpan);
- this.captionSpan.appendChild(this.monthSpan);
- this._appendNbsp(this.captionSpan);
+ this.bPageLoaded = true;
- this.yearSpan = document.createElement("span");
- this.yearSpan.className = this.initData.themePrefix + "-title-control-normal-style";
+ }
+ };
- Event.observe(this.yearSpan, "mouseover", function(event)
- {
- this._swapImage(this.changeYearImg, "drop2.gif");
- this.yearSpan.className = this.initData.themePrefix + "-title-control-select-style";
- window.status = this.selectYearMessage;
+ org.apache.myfaces.PopupCalendar.prototype._appendNavToCaption = function (direction) {
+ var imgLeft = document.createElement("img");
+ imgLeft.setAttribute("src", this.initData.imgDir + direction + "1.gif" + this.initData.imgDirSuffix);
+ imgLeft.setAttribute("width", "10px");
+ imgLeft.setAttribute("height", "11px");
+ Element.setStyle(imgLeft, "border:0px;");
+
+ var spanLeft = document.createElement("span");
+
+ this._createControl(direction, spanLeft, imgLeft);
+
+ this._appendNbsp(spanLeft);
+ spanLeft.appendChild(imgLeft);
+ this._appendNbsp(spanLeft);
+ this.captionSpan.appendChild(spanLeft);
+ this._appendNbsp(spanLeft);
+ };
+
+ org.apache.myfaces.PopupCalendar.prototype._createControl = function (direction, spanLeft, imgLeft) {
+ spanLeft.className = this.initData.themePrefix + "-title-control-normal-style";
+ Event.observe(spanLeft, "mouseover", function (event) {
+ this._swapImage(imgLeft, direction + "2.gif");
+ spanLeft.className = this.initData.themePrefix + "-title-control-select-style";
+ if (direction == "left") {
+ window.status = this.scrollLeftMessage;
+ }
+ else {
+ window.status = this.scrollRightMessage;
+ }
}.bindAsEventListener(this), false);
-
- Event.observe(this.yearSpan, "mouseout", function(event)
- {
- this._swapImage(this.changeYearImg, "drop1.gif");
- this.yearSpan.className = this.initData.themePrefix + "-title-control-normal-style";
+ Event.observe(spanLeft, "click", function () {
+ if (direction == "left") {
+ this._decMonth();
+ }
+ else {
+ this._incMonth();
+ }
+ }.bind(this), false);
+ Event.observe(spanLeft, "mouseout", function (event) {
+ clearInterval(this.intervalID1);
+ this._swapImage(imgLeft, direction + "1.gif");
+ spanLeft.className = "" + this.initData.themePrefix + "-title-control-normal-style";
window.status = "";
}.bindAsEventListener(this), false);
-
- Event.observe(this.yearSpan, "click", function(event)
- {
- this._popUpYear();
- Event.stop(event);
+ Event.observe(spanLeft, "mousedown", function () {
+ clearTimeout(this.timeoutID1);
+ this.timeoutID1 = setTimeout((function () {
+ if (direction == "left") {
+ this._startDecMonth();
+ }
+ else {
+ this._startIncMonth();
+ }
+ }).bind(this), 500)
}.bind(this), false);
+ Event.observe(spanLeft, "mouseup", function () {
+ clearTimeout(this.timeoutID1);
+ clearInterval(this.intervalID1);
+ }.bind(this), false);
+ };
- this.captionSpan.appendChild(this.yearSpan);
- this._appendNbsp(this.captionSpan);
-
- this.bPageLoaded = true;
+ org.apache.myfaces.PopupCalendar.prototype._appendNbsp = function (element) {
+ if (element)
+ element.appendChild(document.createTextNode(String.fromCharCode(160)));
+ };
+
+ org.apache.myfaces.PopupCalendar.prototype._todayIsDate = function () {
+ return this.todayDateFormatter.format(this.today);
+ };
+
+ org.apache.myfaces.PopupCalendar.prototype._hideCalendar = function () {
+ this.calendarDiv.style.visibility = "hidden"
+ this.bCalendarHidden = true;
+ if (this.selectMonthDiv.style != null) {
+ this.selectMonthDiv.style.visibility = "hidden";
+ }
+ if (this.selectYearDiv.style != null) {
+ this.selectYearDiv.style.visibility = "hidden";
+ }
+
+ this._hidePopupPostProcess(this.selectMonthDiv);
+ this._hidePopupPostProcess(this.selectYearDiv);
+ this._hidePopupPostProcess(this.calendarDiv);
+ };
+
+ org.apache.myfaces.PopupCalendar.prototype._padZero = function (num) {
+ return (num < 10) ? '0' + num : num;
+ };
+
+ org.apache.myfaces.PopupCalendar.prototype._constructDate = function (d, m, y) {
+ var date = new Date(y, m, d, this.selectedDate.hour, this.selectedDate.min, this.selectedDate.sec);
+ return this.stdDateFormatter.format(date);
+ };
- }
-};
+ org.apache.myfaces.PopupCalendar.prototype._closeCalendar = function () {
+ this._hideCalendar();
-org_apache_myfaces_PopupCalendar.prototype._appendNavToCaption = function(direction)
-{
- var imgLeft = document.createElement("img");
- imgLeft.setAttribute("src", this.initData.imgDir + direction + "1.gif"+this.initData.imgDirSuffix);
- imgLeft.setAttribute("width","10px");
- imgLeft.setAttribute("height","11px");
- Element.setStyle(imgLeft, "border:0px;");
-
- var spanLeft = document.createElement("span");
-
- this._createControl(direction, spanLeft, imgLeft);
-
- this._appendNbsp(spanLeft);
- spanLeft.appendChild(imgLeft);
- this._appendNbsp(spanLeft);
- this.captionSpan.appendChild(spanLeft);
- this._appendNbsp(spanLeft);
-};
-
-org_apache_myfaces_PopupCalendar.prototype._createControl = function(direction, spanLeft, imgLeft)
-{
- spanLeft.className = this.initData.themePrefix + "-title-control-normal-style";
- Event.observe(spanLeft, "mouseover", function(event)
- {
- this._swapImage(imgLeft, direction + "2.gif");
- spanLeft.className = this.initData.themePrefix + "-title-control-select-style";
- if (direction == "left")
- {
- window.status = this.scrollLeftMessage;
- }
- else
- {
- window.status = this.scrollRightMessage;
- }
- }.bindAsEventListener(this), false);
- Event.observe(spanLeft, "click", function()
- {
- if (direction == "left")
- {
- this._decMonth();
+ if (this.myFacesCtlType != "x:inputDate") {
+ this.ctlToPlaceValue.value = this._constructDate(this.selectedDate.date, this.selectedDate.month, this.selectedDate.year)
+ var onchange = this.ctlToPlaceValue.getAttribute("onchange");
+ if (onchange) {
+ this.ctlToPlaceValue.onchange();
+ }
}
- else
- {
- this._incMonth();
+ else {
+ document.getElementById(this.myFacesInputDateClientId + ".day").value = this.selectedDate.date;
+ document.getElementById(this.myFacesInputDateClientId + ".month").value = this.selectedDate.month + 1;
+ document.getElementById(this.myFacesInputDateClientId + ".year").value = this.selectedDate.year;
}
- }.bind(this), false);
- Event.observe(spanLeft, "mouseout", function(event)
- {
- clearInterval(this.intervalID1);
- this._swapImage(imgLeft, direction + "1.gif");
- spanLeft.className = "" + this.initData.themePrefix + "-title-control-normal-style";
- window.status = "";
- }.bindAsEventListener(this), false);
- Event.observe(spanLeft, "mousedown", function()
- {
- clearTimeout(this.timeoutID1);
- this.timeoutID1 = setTimeout((function()
- {
- if (direction == "left")
- {
- this._startDecMonth();
- }
- else
- {
- this._startIncMonth();
- }
- }).bind(this), 500)
- }.bind(this), false);
- Event.observe(spanLeft, "mouseup", function()
- {
- clearTimeout(this.timeoutID1);
- clearInterval(this.intervalID1);
- }.bind(this), false);
-};
+ };
-org_apache_myfaces_PopupCalendar.prototype._appendNbsp = function(element)
-{
- if (element)
- element.appendChild(document.createTextNode(String.fromCharCode(160)));
-};
-
-org_apache_myfaces_PopupCalendar.prototype._todayIsDate = function()
-{
- return this.todayDateFormatter.format(this.today);
-};
-
-org_apache_myfaces_PopupCalendar.prototype._hideCalendar = function()
-{
- this.calendarDiv.style.visibility = "hidden"
- this.bCalendarHidden = true;
- if (this.selectMonthDiv.style != null)
- {
- this.selectMonthDiv.style.visibility = "hidden";
- }
- if (this.selectYearDiv.style != null)
- {
- this.selectYearDiv.style.visibility = "hidden";
- }
+ /*** Month Pulldown ***/
- this._hidePopupPostProcess(this.selectMonthDiv);
- this._hidePopupPostProcess(this.selectYearDiv);
- this._hidePopupPostProcess(this.calendarDiv);
-};
-
-org_apache_myfaces_PopupCalendar.prototype._padZero = function(num)
-{
- return (num < 10)? '0' + num : num;
-};
-
-org_apache_myfaces_PopupCalendar.prototype._constructDate = function(d, m, y)
-{
- var date = new Date(y, m, d, this.selectedDate.hour, this.selectedDate.min, this.selectedDate.sec);
- return this.stdDateFormatter.format(date);
-};
-
-org_apache_myfaces_PopupCalendar.prototype._closeCalendar = function()
-{
- this._hideCalendar();
+ org.apache.myfaces.PopupCalendar.prototype._startDecMonth = function () {
+ this.intervalID1 = setInterval((function () {
+ this._decMonth();
+ }).bind(this), 80);
+ };
- if (this.myFacesCtlType != "x:inputDate")
- {
- this.ctlToPlaceValue.value = this._constructDate(this.selectedDate.date, this.selectedDate.month, this.selectedDate.year)
- var onchange = this.ctlToPlaceValue.getAttribute("onchange");
- if (onchange)
- {
- this.ctlToPlaceValue.onchange();
- }
- }
- else
- {
- document.getElementById(this.myFacesInputDateClientId + ".day").value = this.selectedDate.date;
- document.getElementById(this.myFacesInputDateClientId + ".month").value = this.selectedDate.month + 1;
- document.getElementById(this.myFacesInputDateClientId + ".year").value = this.selectedDate.year;
- }
-};
-
-/*** Month Pulldown ***/
-
-org_apache_myfaces_PopupCalendar.prototype._startDecMonth = function()
-{
- this.intervalID1 = setInterval((function()
- {
- this._decMonth();
- }).bind(this), 80);
-}
-
-org_apache_myfaces_PopupCalendar.prototype._startIncMonth = function()
-{
- this.intervalID1 = setInterval((function()
- {
- this._incMonth();
- }).bind(this), 80);
-}
-
-org_apache_myfaces_PopupCalendar.prototype._incMonth = function()
-{
- this.selectedDate.month = this.selectedDate.month + 1;
- if (this.selectedDate.month > 11)
- {
- this.selectedDate.month = 0;
- this.selectedDate.year++;
- }
- this._constructCalendar();
-}
-
-org_apache_myfaces_PopupCalendar.prototype._decMonth = function()
-{
- this.selectedDate.month = this.selectedDate.month - 1;
- if (this.selectedDate.month < 0)
- {
- this.selectedDate.month = 11;
- this.selectedDate.year--;
- }
- this._constructCalendar()
-};
-
-
-org_apache_myfaces_PopupCalendar.prototype._removeAllChildren = function(element)
-{
- while (element && element.hasChildNodes())
- element.removeChild(element.lastChild);
-};
-
-org_apache_myfaces_PopupCalendar.prototype._constructMonth = function()
-{
- this._popDownYear();
- if (!this.monthConstructed)
- {
+ org.apache.myfaces.PopupCalendar.prototype._startIncMonth = function () {
+ this.intervalID1 = setInterval((function () {
+ this._incMonth();
+ }).bind(this), 80);
+ };
- var selectMonthTable = document.createElement("table");
- Element.setStyle(selectMonthTable, "width:70px;border-collapse:collapse;");
- selectMonthTable.className = this.initData.themePrefix + "-dropdown-style";
+ org.apache.myfaces.PopupCalendar.prototype._incMonth = function () {
+ this.selectedDate.month = this.selectedDate.month + 1;
+ if (this.selectedDate.month > 11) {
+ this.selectedDate.month = 0;
+ this.selectedDate.year++;
+ }
+ this._constructCalendar();
+ };
+
+ org.apache.myfaces.PopupCalendar.prototype._decMonth = function () {
+ this.selectedDate.month = this.selectedDate.month - 1;
+ if (this.selectedDate.month < 0) {
+ this.selectedDate.month = 11;
+ this.selectedDate.year--;
+ }
+ this._constructCalendar()
+ };
+
+ org.apache.myfaces.PopupCalendar.prototype._removeAllChildren = function (element) {
+ while (element && element.hasChildNodes())
+ element.removeChild(element.lastChild);
+ };
+
+ org.apache.myfaces.PopupCalendar.prototype._constructMonth = function () {
+ this._popDownYear();
+ if (!this.monthConstructed) {
+
+ var selectMonthTable = document.createElement("table");
+ Element.setStyle(selectMonthTable, "width:70px;border-collapse:collapse;");
+ selectMonthTable.className = this.initData.themePrefix + "-dropdown-style";
- this._removeAllChildren(this.selectMonthDiv);
+ this._removeAllChildren(this.selectMonthDiv);
- this.selectMonthDiv.appendChild(selectMonthTable);
+ this.selectMonthDiv.appendChild(selectMonthTable);
- Event.observe(selectMonthTable, "mouseover", function()
- {
- clearTimeout(this.timeoutID1);
- }.bind(this), false);
- Event.observe(selectMonthTable, "mouseout", function(event)
- {
- clearTimeout(this.timeoutID1);
- this.timeoutID1 = setTimeout((function()
- {
- this._popDownMonth()
- }).bind(this), 100);
- Event.stop(event);
- }.bindAsEventListener(this), false);
+ Event.observe(selectMonthTable, "mouseover", function () {
+ clearTimeout(this.timeoutID1);
+ }.bind(this), false);
+ Event.observe(selectMonthTable, "mouseout", function (event) {
+ clearTimeout(this.timeoutID1);
+ this.timeoutID1 = setTimeout((function () {
+ this._popDownMonth()
+ }).bind(this), 100);
+ Event.stop(event);
+ }.bindAsEventListener(this), false);
- var selectMonthTableBody = document.createElement("tbody");
- selectMonthTable.appendChild(selectMonthTableBody);
+ var selectMonthTableBody = document.createElement("tbody");
+ selectMonthTable.appendChild(selectMonthTableBody);
- for (i = 0; i < 12; i++)
- {
- var sName = this.initData.monthName[i];
+ for (i = 0; i < 12; i++) {
+ var sName = this.initData.monthName[i];
- var sNameNode = null;
+ var sNameNode = null;
- if (i == this.selectedDate.month)
- {
- sNameNode = document.createElement("span");
- Element.setStyle(sNameNode, "font-weight:bold;");
- sNameNode.appendChild(document.createTextNode(sName));
- sNameNode.setAttribute("userData",i);
- }
- else
- {
- sNameNode = document.createTextNode(sName);
+ if (i == this.selectedDate.month) {
+ sNameNode = document.createElement("span");
+ Element.setStyle(sNameNode, "font-weight:bold;");
+ sNameNode.appendChild(document.createTextNode(sName));
+ sNameNode.setAttribute("userData", i);
+ }
+ else {
+ sNameNode = document.createTextNode(sName);
+ }
+
+ var monthRow = document.createElement("tr");
+ selectMonthTableBody.appendChild(monthRow);
+
+ var monthCell = document.createElement("td");
+ monthCell.setAttribute("userData", i);
+ monthRow.appendChild(monthCell);
+
+ Event.observe(monthCell, "mouseover", function (event) {
+ Event.element(event).className = this.initData.themePrefix + "-dropdown-select-style";
+ }.bind(this), false);
+
+ Event.observe(monthCell, "mouseout", function (event) {
+ Event.element(event).className = this.initData.themePrefix + "-dropdown-normal-style";
+ }.bind(this), false);
+
+ Event.observe(monthCell, "click", function (event) {
+ this.monthConstructed = false;
+ this.selectedDate.month = parseInt(Event.element(event).getAttribute("userData"), 10);
+ this._constructCalendar();
+ this._popDownMonth();
+ Event.stop(event);
+ }.bindAsEventListener(this), false);
+
+ this._appendNbsp(monthCell);
+ monthCell.appendChild(sNameNode);
+ this._appendNbsp(monthCell);
}
- var monthRow = document.createElement("tr");
- selectMonthTableBody.appendChild(monthRow);
+ this.monthConstructed = true;
+ }
+ };
- var monthCell = document.createElement("td");
- monthCell.setAttribute("userData",i);
- monthRow.appendChild(monthCell);
+ org.apache.myfaces.PopupCalendar.prototype._popUpMonth = function () {
+ this._constructMonth()
+ this._fixPopupDomOrder(this.selectMonthDiv);
+ this.selectMonthDiv.style.visibility = (this.dom || this.ie6) ? "visible" : "show";
+ this.selectMonthDiv.style.left = parseInt(this._formatInt(this.calendarDiv.style.left), 10) + 50 + "px";
+ this.selectMonthDiv.style.top = parseInt(this._formatInt(this.calendarDiv.style.top), 10) + 26 + "px";
- Event.observe(monthCell, "mouseover", function(event)
- {
- Event.element(event).className = this.initData.themePrefix + "-dropdown-select-style";
- }.bind(this), false);
+ this._showPopupPostProcess(this.selectMonthDiv);
+ };
- Event.observe(monthCell, "mouseout", function(event)
- {
- Event.element(event).className = this.initData.themePrefix + "-dropdown-normal-style";
- }.bind(this), false);
+ org.apache.myfaces.PopupCalendar.prototype._popDownMonth = function () {
+ this.selectMonthDiv.style.visibility = "hidden";
+ this._hidePopupPostProcess(this.selectMonthDiv);
+ };
- Event.observe(monthCell, "click", function(event)
- {
- this.monthConstructed = false;
- this.selectedDate.month = parseInt(Event.element(event).getAttribute("userData"),10);
- this._constructCalendar();
- this._popDownMonth();
- Event.stop(event);
- }.bindAsEventListener(this), false);
+ /*** Year Pulldown ***/
- this._appendNbsp(monthCell);
- monthCell.appendChild(sNameNode);
- this._appendNbsp(monthCell);
- }
-
- this.monthConstructed = true;
- }
-};
-
-org_apache_myfaces_PopupCalendar.prototype._popUpMonth = function()
-{
- this._constructMonth()
- this._fixPopupDomOrder(this.selectMonthDiv);
- this.selectMonthDiv.style.visibility = (this.dom || this.ie6)? "visible" : "show";
- this.selectMonthDiv.style.left = parseInt(this._formatInt(this.calendarDiv.style.left), 10) + 50 + "px";
- this.selectMonthDiv.style.top = parseInt(this._formatInt(this.calendarDiv.style.top), 10) + 26 + "px";
-
- this._showPopupPostProcess(this.selectMonthDiv);
-};
-
-org_apache_myfaces_PopupCalendar.prototype._popDownMonth = function()
-{
- this.selectMonthDiv.style.visibility = "hidden";
- this._hidePopupPostProcess(this.selectMonthDiv);
-};
-
-/*** Year Pulldown ***/
-
-org_apache_myfaces_PopupCalendar.prototype._incYear = function()
-{
- for (var i = 0; i < 7; i++)
- {
- var newYear = (i + this.nStartingYear) + 1;
+ org.apache.myfaces.PopupCalendar.prototype._incYear = function () {
+ for (var i = 0; i < 7; i++) {
+ var newYear = (i + this.nStartingYear) + 1;
- this._createAndAddYear(newYear, i);
- }
- this.nStartingYear++;
- this.bClickOnCalendar = true;
-};
+ this._createAndAddYear(newYear, i);
+ }
+ this.nStartingYear++;
+ this.bClickOnCalendar = true;
+ };
-org_apache_myfaces_PopupCalendar.prototype._createAndAddYear = function(newYear, i)
-{
- var parentNode = document.getElementById(this.containerCtl.getAttribute("id")+"y" + i);
+ org.apache.myfaces.PopupCalendar.prototype._createAndAddYear = function (newYear, i) {
+ var parentNode = document.getElementById(this.containerCtl.getAttribute("id") + "y" + i);
- this._removeAllChildren(parentNode);
+ this._removeAllChildren(parentNode);
- if (newYear == this.selectedDate.year)
- {
- this._appendNbsp(parentNode);
- var newYearSpan = document.createElement("span");
- newYearSpan.setAttribute("userData",newYear);
- newYearSpan.appendChild(document.createTextNode(newYear));
- parentNode.appendChild(newYearSpan);
- this._appendNbsp(parentNode);
- }
- else
- {
- this._appendNbsp(parentNode);
- parentNode.appendChild(document.createTextNode(newYear));
- this._appendNbsp(parentNode);
- }
-
- parentNode.setAttribute("userData",newYear);
-};
+ if (newYear == this.selectedDate.year) {
+ this._appendNbsp(parentNode);
+ var newYearSpan = document.createElement("span");
+ newYearSpan.setAttribute("userData", newYear);
+ newYearSpan.appendChild(document.createTextNode(newYear));
+ parentNode.appendChild(newYearSpan);
+ this._appendNbsp(parentNode);
+ }
+ else {
+ this._appendNbsp(parentNode);
+ parentNode.appendChild(document.createTextNode(newYear));
+ this._appendNbsp(parentNode);
+ }
+ parentNode.setAttribute("userData", newYear);
+ };
-org_apache_myfaces_PopupCalendar.prototype._decYear = function()
-{
- for (i = 0; i < 7; i++)
- {
- var newYear = (i + this.nStartingYear) - 1;
+ org.apache.myfaces.PopupCalendar.prototype._decYear = function () {
+ for (i = 0; i < 7; i++) {
+ var newYear = (i + this.nStartingYear) - 1;
- this._createAndAddYear(newYear, i);
- }
- this.nStartingYear--;
- this.bClickOnCalendar = true;
-};
-
-org_apache_myfaces_PopupCalendar.prototype._constructYear = function()
-{
- this._popDownMonth();
- var sHTML = "";
- if (!this.yearConstructed)
- {
+ this._createAndAddYear(newYear, i);
+ }
+ this.nStartingYear--;
+ this.bClickOnCalendar = true;
+ };
- var selectYearTable = document.createElement("table");
- Element.setStyle(selectYearTable, "width:44px;border-collapse:collapse;");
- selectYearTable.className = this.initData.themePrefix + "-dropdown-style";
+ org.apache.myfaces.PopupCalendar.prototype._constructYear = function () {
+ this._popDownMonth();
+ var sHTML = "";
+ if (!this.yearConstructed) {
- this._removeAllChildren(this.selectYearDiv);
+ var selectYearTable = document.createElement("table");
+ Element.setStyle(selectYearTable, "width:44px;border-collapse:collapse;");
+ selectYearTable.className = this.initData.themePrefix + "-dropdown-style";
- this.selectYearDiv.appendChild(selectYearTable);
+ this._removeAllChildren(this.selectYearDiv);
- Event.observe(selectYearTable, "mouseover", function()
- {
- clearTimeout(this.timeoutID2);
- }.bind(this), false);
- Event.observe(selectYearTable, "mouseout", function(event)
- {
- clearTimeout(this.timeoutID2);
- this.timeoutID2 = setTimeout((function()
- {
- this._popDownYear()
- }).bind(this), 100);
- Event.stop(event);
- }.bindAsEventListener(this), false);
+ this.selectYearDiv.appendChild(selectYearTable);
+ Event.observe(selectYearTable, "mouseover", function () {
+ clearTimeout(this.timeoutID2);
+ }.bind(this), false);
+ Event.observe(selectYearTable, "mouseout", function (event) {
+ clearTimeout(this.timeoutID2);
+ this.timeoutID2 = setTimeout((function () {
+ this._popDownYear()
+ }).bind(this), 100);
+ Event.stop(event);
+ }.bindAsEventListener(this), false);
- var selectYearTableBody = document.createElement("tbody");
- selectYearTable.appendChild(selectYearTableBody);
+ var selectYearTableBody = document.createElement("tbody");
+ selectYearTable.appendChild(selectYearTableBody);
- var selectYearRowMinus = document.createElement("tr");
- selectYearTableBody.appendChild(selectYearRowMinus);
+ var selectYearRowMinus = document.createElement("tr");
+ selectYearTableBody.appendChild(selectYearRowMinus);
- var selectYearCellMinus = document.createElement("td");
- selectYearCellMinus.setAttribute("align", "center");
+ var selectYearCellMinus = document.createElement("td");
+ selectYearCellMinus.setAttribute("align", "center");
- selectYearCellMinus.appendChild(document.createTextNode("-"));
+ selectYearCellMinus.appendChild(document.createTextNode("-"));
- selectYearRowMinus.appendChild(selectYearCellMinus);
+ selectYearRowMinus.appendChild(selectYearCellMinus);
- Event.observe(selectYearCellMinus, "mouseover", function(event)
- {
- Event.element(event).className = this.initData.themePrefix + "-dropdown-select-style";
- }.bindAsEventListener(this), false);
+ Event.observe(selectYearCellMinus, "mouseover", function (event) {
+ Event.element(event).className = this.initData.themePrefix + "-dropdown-select-style";
+ }.bindAsEventListener(this), false);
- Event.observe(selectYearCellMinus, "mouseout", function(event)
- {
- clearInterval(this.intervalID1);
- Event.element(event).className = this.initData.themePrefix + "-dropdown-normal-style";
- }.bindAsEventListener(this), false);
+ Event.observe(selectYearCellMinus, "mouseout", function (event) {
+ clearInterval(this.intervalID1);
+ Event.element(event).className = this.initData.themePrefix + "-dropdown-normal-style";
+ }.bindAsEventListener(this), false);
- Event.observe(selectYearCellMinus, "mousedown", function(event)
- {
- clearInterval(this.intervalID1);
- this.intervalID1 = setInterval((function()
- {
- this._decYear();
- }).bind(this), 30);
- Event.stop(event);
- }.bindAsEventListener(this), false);
+ Event.observe(selectYearCellMinus, "mousedown", function (event) {
+ clearInterval(this.intervalID1);
+ this.intervalID1 = setInterval((function () {
+ this._decYear();
+ }).bind(this), 30);
+ Event.stop(event);
+ }.bindAsEventListener(this), false);
- Event.observe(selectYearCellMinus, "mouseup", function(event)
- {
- clearInterval(this.intervalID1);
- Event.stop(event);
- }.bindAsEventListener(this), false);
+ Event.observe(selectYearCellMinus, "mouseup", function (event) {
+ clearInterval(this.intervalID1);
+ Event.stop(event);
+ }.bindAsEventListener(this), false);
+ //sHTML = "<tr><td align='center' onmouseover='this.className=\""+this.initData.themePrefix+"-dropdown-select-style\"' onmouseout='clearInterval(this.intervalID1); this.className=\""+this.initData.themePrefix+"-dropdown-normal-style\"' onmousedown='clearInterval(this.intervalID1);this.intervalID1=setInterval(\"_decYear()\",30)' onmouseup='clearInterval(this.intervalID1)'>-</td></tr>";
- //sHTML = "<tr><td align='center' onmouseover='this.className=\""+this.initData.themePrefix+"-dropdown-select-style\"' onmouseout='clearInterval(this.intervalID1); this.className=\""+this.initData.themePrefix+"-dropdown-normal-style\"' onmousedown='clearInterval(this.intervalID1);this.intervalID1=setInterval(\"_decYear()\",30)' onmouseup='clearInterval(this.intervalID1)'>-</td></tr>";
+ this.nStartingYear = this.selectedDate.year - 3;
+ var j = 0;
+ for (i = this.selectedDate.year - 3; i <= (this.selectedDate.year + 3); i++) {
+ var sName = i;
+
+ var sNameNode = null;
+
+ if (i == this.selectedDate.year) {
+ sNameNode = document.createElement("span");
+ Element.setStyle(sNameNode, "font-weight:bold;");
+ sNameNode.appendChild(document.createTextNode(sName));
+ sNameNode.setAttribute("userData", sName);
+ }
+ else {
+ sNameNode = document.createTextNode(sName);
+ }
+
+ var yearRow = document.createElement("tr");
+ selectYearTableBody.appendChild(yearRow);
+
+ var yearCell = document.createElement("td");
+ yearCell.setAttribute("userData", sName);
+ yearCell.setAttribute("id", this.containerCtl.getAttribute("id") + "y" + j);
+ yearRow.appendChild(yearCell);
+
+ Event.observe(yearCell, "mouseover", function (event) {
+ Event.element(event).className = this.initData.themePrefix + "-dropdown-select-style";
+ }.bind(this), false);
+
+ Event.observe(yearCell, "mouseout", function (event) {
+ Event.element(event).className = this.initData.themePrefix + "-dropdown-normal-style";
+ }.bind(this), false);
+
+ Event.observe(yearCell, "click", function (event) {
+ var elem = Event.element(event);
+ var sYear = null;
+ this.selectedDate.year = parseInt(this._formatInt(elem.getAttribute("userData"), 10));
+ this.yearConstructed = false;
+ this._popDownYear();
+ this._constructCalendar();
+ Event.stop(event);
+ }.bindAsEventListener(this), false);
- this.nStartingYear = this.selectedDate.year - 3;
- var j = 0;
- for (i = this.selectedDate.year - 3; i <= (this.selectedDate.year + 3); i++)
- {
- var sName = i;
+ this._appendNbsp(yearCell);
+ yearCell.appendChild(sNameNode);
+ this._appendNbsp(yearCell);
+ j++;
+ }
- var sNameNode = null;
+ var selectYearRowPlus = document.createElement("tr");
+ selectYearTableBody.appendChild(selectYearRowPlus);
- if (i == this.selectedDate.year)
- {
- sNameNode = document.createElement("span");
- Element.setStyle(sNameNode, "font-weight:bold;");
- sNameNode.appendChild(document.createTextNode(sName));
- sNameNode.setAttribute("userData", sName);
- }
- else
- {
- sNameNode = document.createTextNode(sName);
- }
+ var selectYearCellPlus = document.createElement("td");
+ selectYearCellPlus.setAttribute("align", "center");
- var yearRow = document.createElement("tr");
- selectYearTableBody.appendChild(yearRow);
+ selectYearCellPlus.appendChild(document.createTextNode("+"));
- var yearCell = document.createElement("td");
- yearCell.setAttribute("userData",sName);
- yearCell.setAttribute("id",this.containerCtl.getAttribute("id")+"y" + j);
- yearRow.appendChild(yearCell);
+ selectYearRowPlus.appendChild(selectYearCellPlus);
- Event.observe(yearCell, "mouseover", function(event)
- {
+ Event.observe(selectYearCellPlus, "mouseover", function (event) {
Event.element(event).className = this.initData.themePrefix + "-dropdown-select-style";
- }.bind(this), false);
+ }.bindAsEventListener(this), false);
- Event.observe(yearCell, "mouseout", function(event)
- {
+ Event.observe(selectYearCellPlus, "mouseout", function (event) {
+ clearInterval(this.intervalID2);
Event.element(event).className = this.initData.themePrefix + "-dropdown-normal-style";
- }.bind(this), false);
+ }.bindAsEventListener(this), false);
- Event.observe(yearCell, "click", function(event)
- {
- var elem = Event.element(event);
- var sYear = null;
- this.selectedDate.year = parseInt(this._formatInt(elem.getAttribute("userData"),10));
- this.yearConstructed = false;
- this._popDownYear();
- this._constructCalendar();
- Event.stop(event);
+ Event.observe(selectYearCellPlus, "mousedown", function (event) {
+ clearInterval(this.intervalID2);
+ this.intervalID2 = setInterval((function () {
+ this._incYear();
+ }).bind(this), 30);
}.bindAsEventListener(this), false);
- this._appendNbsp(yearCell);
- yearCell.appendChild(sNameNode);
- this._appendNbsp(yearCell);
- j++;
+ Event.observe(selectYearCellPlus, "mouseup", function (event) {
+ clearInterval(this.intervalID2);
+ }.bindAsEventListener(this), false);
+
+ this.yearConstructed = true;
}
+ };
- var selectYearRowPlus = document.createElement("tr");
- selectYearTableBody.appendChild(selectYearRowPlus);
+ org.apache.myfaces.PopupCalendar.prototype._popDownYear = function () {
+ clearInterval(this.intervalID1);
+ clearTimeout(this.timeoutID1);
+ clearInterval(this.intervalID2);
+ clearTimeout(this.timeoutID2);
+ this.selectYearDiv.style.visibility = "hidden";
+ this._hidePopupPostProcess(this.selectYearDiv);
+ };
- var selectYearCellPlus = document.createElement("td");
- selectYearCellPlus.setAttribute("align", "center");
+ org.apache.myfaces.PopupCalendar.prototype._popUpYear = function () {
+ var leftOffset;
+ this._fixPopupDomOrder(this.selectYearDiv);
+ this._constructYear();
+ this.selectYearDiv.style.visibility = (this.dom || this.ie6) ? "visible" : "show";
+ leftOffset = parseInt(this._formatInt(this.calendarDiv.style.left), 10) + this.yearSpan.offsetLeft;
+ if (this.ie6)
+ leftOffset += 6;
+ this.selectYearDiv.style.left = leftOffset + "px";
+ this.selectYearDiv.style.top = parseInt(this._formatInt(this.calendarDiv.style.top), 10) + 26 + "px";
- selectYearCellPlus.appendChild(document.createTextNode("+"));
+ this._showPopupPostProcess(this.selectYearDiv);
+ };
- selectYearRowPlus.appendChild(selectYearCellPlus);
+ org.apache.myfaces.PopupCalendar.prototype._appendCell = function (parentElement, value) {
+ var cell = document.createElement("td");
+ Element.setStyle(cell, "text-align:right;");
- Event.observe(selectYearCellPlus, "mouseover", function(event)
- {
- Event.element(event).className = this.initData.themePrefix + "-dropdown-select-style";
- }.bindAsEventListener(this), false);
+ if (value && value != "") {
+ cell.appendChild(document.createTextNode(value));
+ }
+ else {
+ this._appendNbsp(cell);
+ }
- Event.observe(selectYearCellPlus, "mouseout", function(event)
- {
- clearInterval(this.intervalID2);
- Event.element(event).className = this.initData.themePrefix + "-dropdown-normal-style";
- }.bindAsEventListener(this), false);
+ parentElement.appendChild(cell);
+ };
- Event.observe(selectYearCellPlus, "mousedown", function(event)
- {
- clearInterval(this.intervalID2);
- this.intervalID2 = setInterval((function()
- {
- this._incYear();
- }).bind(this), 30);
- }.bindAsEventListener(this), false);
+ org.apache.myfaces.PopupCalendar.prototype._getDateStyle = function (datePointer) {
+ var sStyle = this.initData.themePrefix + "-normal-day-style";
+ //regular day
- Event.observe(selectYearCellPlus, "mouseup", function(event)
+ if ((datePointer == this.dateNow) &&
+ (this.selectedDate.month == this.monthNow) && (this.selectedDate.year == this.yearNow)) //today
{
- clearInterval(this.intervalID2);
- }.bindAsEventListener(this), false);
+ sStyle = this.initData.themePrefix + "-current-day-style";
+ }
+ else if (this.dayPointer % 7 == (this.initData.startAt * -1) + 1) //end-of-the-week day
+ {
+ sStyle = this.initData.themePrefix + "-end-of-weekday-style";
+ }
- this.yearConstructed = true;
- }
-};
-
-org_apache_myfaces_PopupCalendar.prototype._popDownYear = function()
-{
- clearInterval(this.intervalID1);
- clearTimeout(this.timeoutID1);
- clearInterval(this.intervalID2);
- clearTimeout(this.timeoutID2);
- this.selectYearDiv.style.visibility = "hidden";
- this._hidePopupPostProcess(this.selectYearDiv);
-};
-
-org_apache_myfaces_PopupCalendar.prototype._popUpYear = function()
-{
- var leftOffset;
- this._fixPopupDomOrder(this.selectYearDiv);
- this._constructYear();
- this.selectYearDiv.style.visibility = (this.dom || this.ie6) ? "visible" : "show";
- leftOffset = parseInt(this._formatInt(this.calendarDiv.style.left), 10) + this.yearSpan.offsetLeft;
- if (this.ie6)
- leftOffset += 6;
- this.selectYearDiv.style.left = leftOffset + "px";
- this.selectYearDiv.style.top = parseInt(this._formatInt(this.calendarDiv.style.top), 10) + 26 + "px";
-
- this._showPopupPostProcess(this.selectYearDiv);
-};
-
-org_apache_myfaces_PopupCalendar.prototype._appendCell = function(parentElement, value)
-{
- var cell = document.createElement("td");
- Element.setStyle(cell, "text-align:right;");
+ //selected day
+ if ((datePointer == this.saveSelectedDate.date) &&
+ (this.selectedDate.month == this.saveSelectedDate.month) &&
+ (this.selectedDate.year == this.saveSelectedDate.year)) {
+ sStyle += " " + this.initData.themePrefix + "-selected-day-style";
+ }
- if (value && value != "")
- {
- cell.appendChild(document.createTextNode(value));
- }
- else
- {
- this._appendNbsp(cell);
- }
+ for (k = 0; k < this.holidaysCounter; k++) {
+ if ((parseInt(this._formatInt(this.holidays[k].d), 10) == datePointer) && (parseInt(this._formatInt(this.holidays[k].m), 10) == (this.selectedDate.month + 1))) {
+ if ((parseInt(this._formatInt(this.holidays[k].y), 10) == 0) || ((parseInt(this._formatInt(this.holidays[k].y), 10) == this.selectedDate.year) && (parseInt(this._formatInt(this.holidays[k].y), 10) != 0))) {
+ sStyle += " " + this.initData.themePrefix + "-holiday-style";
+ }
+ }
+ }
- parentElement.appendChild(cell);
-};
+ return sStyle;
+ };
-org_apache_myfaces_PopupCalendar.prototype._getDateStyle = function(datePointer)
-{
- var sStyle = this.initData.themePrefix + "-normal-day-style";
- //regular day
+ org.apache.myfaces.PopupCalendar.prototype._getHolidayHint = function (datePointer) {
+ var sHint = "";
+ for (k = 0; k < this.holidaysCounter; k++) {
+ if ((parseInt(this._formatInt(this.holidays[k].d), 10) == datePointer) && (parseInt(this._formatInt(this.holidays[k].m), 10) == (this.selectedDate.month + 1))) {
+ if ((parseInt(this._formatInt(this.holidays[k].y), 10) == 0) || ((parseInt(this._formatInt(this.holidays[k].y), 10) == this.selectedDate.year) && (parseInt(this._formatInt(this.holidays[k].y), 10) != 0))) {
+ sHint += sHint == "" ? this.holidays[k].desc : "\n" + this.holidays[k].desc;
+ }
+ }
+ }
- if ((datePointer == this.dateNow) &&
- (this.selectedDate.month == this.monthNow) && (this.selectedDate.year == this.yearNow)) //today
- {
- sStyle = this.initData.themePrefix + "-current-day-style";
- }
- else if (dayPointer % 7 == (this.initData.startAt * -1) + 1) //end-of-the-week day
- {
- sStyle = this.initData.themePrefix + "-end-of-weekday-style";
- }
+ return sHint;
+ };
- //selected day
- if ((datePointer == this.saveSelectedDate.date) &&
- (this.selectedDate.month == this.saveSelectedDate.month) &&
- (this.selectedDate.year == this.saveSelectedDate.year))
- {
- sStyle += " " + this.initData.themePrefix + "-selected-day-style";
- }
+ org.apache.myfaces.PopupCalendar.prototype._addWeekCell = function (currentRow, startDate, weekSelectable, sNormalStyle, sSelectStyle) {
+ var cell = document.createElement("td");
+ Element.setStyle(cell, "text-align:right;");
+
+ var weekDate = this.stdDateFormatter.getWeekDate(startDate);
+ if (weekSelectable) {
+ var link = document.createElement("a");
+ link.className = sNormalStyle;
+ link.sNormalStyle = sNormalStyle;
+ link.sSelectStyle = sSelectStyle;
+ link.setAttribute("href", "#");
+ link.appendChild(document.createTextNode(weekDate.week + " "));
+
+ link.dateObj = this.stdDateFormatter.getDateForWeekDate(weekDate);
+
+ cell.appendChild(link);
+
+ Event.observe(link, "mousemove", function (event) {
+ window.status = this.initData.selectDateMessage.replace(
+ "[date]",
+ this._constructDate(link.dateObj));
+ }.bindAsEventListener(this), false);
- for (k = 0; k < this.holidaysCounter; k++)
- {
- if ((parseInt(this._formatInt(this.holidays[k].d), 10) == datePointer) && (parseInt(this._formatInt(this.holidays[k].m), 10) == (this.selectedDate.month + 1)))
- {
- if ((parseInt(this._formatInt(this.holidays[k].y), 10) == 0) || ((parseInt(this._formatInt(this.holidays[k].y), 10) == this.selectedDate.year) && (parseInt(this._formatInt(this.holidays[k].y), 10) != 0)))
- {
- sStyle += " " + this.initData.themePrefix + "-holiday-style";
- }
- }
- }
+ Event.observe(link, "mouseout", function (event) {
+ var elem = Event.element(event);
+ elem.className = elem.sNormalStyle;
+ window.status = "";
+ }.bindAsEventListener(this), false);
- return sStyle;
-};
+ Event.observe(link, "click", function (event) {
+ var elem = Event.element(event);
+ this.selectedDate.year = elem.dateObj.getFullYear();
+ this.selectedDate.month = elem.dateObj.getMonth();
+ this.selectedDate.date = elem.dateObj.getDate();
+ this._closeCalendar();
+ Event.stop(event);
+ }.bindAsEventListener(this), false);
-org_apache_myfaces_PopupCalendar.prototype._getHolidayHint = function(datePointer)
-{
- var sHint = "";
- for (k = 0; k < this.holidaysCounter; k++)
- {
- if ((parseInt(this._formatInt(this.holidays[k].d), 10) == datePointer) && (parseInt(this._formatInt(this.holidays[k].m), 10) == (this.selectedDate.month + 1)))
- {
- if ((parseInt(this._formatInt(this.holidays[k].y), 10) == 0) || ((parseInt(this._formatInt(this.holidays[k].y), 10) == this.selectedDate.year) && (parseInt(this._formatInt(this.holidays[k].y), 10) != 0)))
- {
- sHint += sHint == ""?this.holidays[k].desc:"\n" + this.holidays[k].desc;
- }
+ Event.observe(link, "mouseover", function (event) {
+ var elem = Event.element(event);
+ elem.className = elem.sSelectStyle;
+ }.bindAsEventListener(this), false);
+ }
+ else {
+ var span = document.createElement("span");
+ span.className = sNormalStyle;
+ span.appendChild(document.createTextNode(weekDate.week + " "));
+ cell.appendChild(span);
}
- }
- return sHint;
-};
+ currentRow.appendChild(cell);
+ };
+ org.apache.myfaces.PopupCalendar.prototype._constructCalendar = function () {
+ var aNumDays = Array(31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
-org_apache_myfaces_PopupCalendar.prototype._addWeekCell = function(currentRow, startDate, weekSelectable,
- sNormalStyle, sSelectStyle)
-{
- var cell = document.createElement("td");
- Element.setStyle(cell, "text-align:right;");
[... 933 lines stripped ...]