You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mm...@apache.org on 2005/08/22 09:59:27 UTC
svn commit: r234451 -
/myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/calendar/resource/popcalendar.js
Author: mmarinschek
Date: Mon Aug 22 00:59:23 2005
New Revision: 234451
URL: http://svn.apache.org/viewcvs?rev=234451&view=rev
Log:
(Hopefully) final fix for MYFACES-323. Thanks to Ethan Teh for providing this patch.
Modified:
myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/calendar/resource/popcalendar.js
Modified: myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/calendar/resource/popcalendar.js
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/calendar/resource/popcalendar.js?rev=234451&r1=234450&r2=234451&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/calendar/resource/popcalendar.js (original)
+++ myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/calendar/resource/popcalendar.js Mon Aug 22 00:59:23 2005
@@ -55,21 +55,21 @@
obj = document.all.tags( elmID )[i];
if( !obj || !obj.offsetParent )
continue;
-
+
// Find the element's offsetTop and offsetLeft relative to the BODY tag.
objLeft = obj.offsetLeft;
objTop = obj.offsetTop;
objParent = obj.offsetParent;
-
+
while( objParent.tagName.toUpperCase() != "BODY" ){
objLeft += objParent.offsetLeft;
objTop += objParent.offsetTop;
objParent = objParent.offsetParent;
}
-
+
objHeight = obj.offsetHeight;
objWidth = obj.offsetWidth;
-
+
if(( overDiv.offsetLeft + overDiv.offsetWidth ) <= objLeft );
else if(( overDiv.offsetTop + overDiv.offsetHeight ) <= objTop );
else if( overDiv.offsetTop >= ( objTop + objHeight ));
@@ -87,10 +87,10 @@
if( jscalendarIe ){
for( i = 0; i < document.all.tags( elmID ).length; i++ ){
obj = document.all.tags( elmID )[i];
-
+
if( !obj || !obj.offsetParent )
continue;
-
+
obj.style.visibility = "";
}
}
@@ -115,10 +115,10 @@
jscalendarImg[i] = new Image;
document.write ("<div onclick='jscalendarBShow=true' id='calendar' class='"+jscalendarThemePrefix+"-div-style'><table width="+((jscalendarShowWeekNumber==1)?250:220)+" class='"+jscalendarThemePrefix+"-table-style'><tr class='"+jscalendarThemePrefix+"-title-background-style'><td><table width='"+((jscalendarShowWeekNumber==1)?248:218)+"'><tr><td class='"+jscalendarThemePrefix+"-title-style'><span id='caption'></span></td><td align=right><a href='javascript:jscalendarHideCalendar()'><span id='jscalendarCloseButton'></span></a></td></tr></table></td></tr><tr><td class='"+jscalendarThemePrefix+"-body-style'><span id='popupcalendar_content'></span></td></tr>")
-
+
if (jscalendarShowToday==1)
document.write ("<tr class='"+jscalendarThemePrefix+"-today-style'><td class='"+jscalendarThemePrefix+"-today-lbl-style'><span id='lblToday'></span></td></tr>")
-
+
document.write ("</table></div><div id='selectMonth' class='"+jscalendarThemePrefix+"-div-style'></div><div id='selectYear' class='"+jscalendarThemePrefix+"-div-style'></div>");
}
@@ -153,7 +153,7 @@
sHTML1+="<span id='spanRight' class='"+jscalendarThemePrefix+"-title-control-normal-style' onmouseover='jscalendarSwapImage(\"changeRight\",\"right2.gif\");this.className=\""+jscalendarThemePrefix+"-title-control-select-style\"; window.status=\""+jscalendarScrollRightMessage+"\"' onmouseout='clearInterval(jscalendarIntervalID1);jscalendarSwapImage(\"changeRight\",\"right1.gif\"); this.className=\""+jscalendarThemePrefix+"-title-control-normal-style\"; window.status=\"\"' onclick='jscalendarIncMonth()' onmousedown='clearTimeout(jscalendarTimeoutID1);jscalendarTimeoutID1=setTimeout(\"jscalendarStartIncMonth()\",500)' onmouseup='clearTimeout(jscalendarTimeoutID1);clearInterval(jscalendarIntervalID1)'> <IMG id='changeRight' SRC='"+jscalendarImgDir+"right1.gif' width=10 height=11 BORDER=0> </span> "
sHTML1+="<span id='spanMonth' class='"+jscalendarThemePrefix+"-title-control-normal-style' onmouseover='jscalendarSwapImage(\"changeMonth\",\"drop2.gif\"); this.className=\""+jscalendarThemePrefix+"-title-control-select-style\"; window.status=\""+jscalendarSelectMonthMessage+"\"' onmouseout='jscalendarSwapImage(\"changeMonth\",\"drop1.gif\"); this.className=\""+jscalendarThemePrefix+"-title-control-normal-style\"; window.status=\"\"' onclick='jscalendarPopUpMonth()'></span> "
sHTML1+="<span id='spanYear' class='"+jscalendarThemePrefix+"-title-control-normal-style' onmouseover='jscalendarSwapImage(\"changeYear\",\"drop2.gif\"); this.className=\""+jscalendarThemePrefix+"-title-control-select-style\"; window.status=\""+jscalendarSelectYearMessage+"\"' onmouseout='jscalendarSwapImage(\"changeYear\",\"drop1.gif\"); this.className=\""+jscalendarThemePrefix+"-title-control-normal-style\"; window.status=\"\"' onclick='jscalendarPopUpYear()'></span> "
-
+
document.getElementById("caption").innerHTML = sHTML1;
jscalendarBPageLoaded = true;
@@ -263,8 +263,8 @@
function jscalendarPopUpMonth() {
jscalendarConstructMonth()
jscalendarCrossMonthObj.visibility = (jscalendarDom||jscalendarIe)? "visible" : "show"
- jscalendarCrossMonthObj.left = parseInt(jscalendarCrossobj.left,10) + 50 + "px";
- jscalendarCrossMonthObj.top = parseInt(jscalendarCrossobj.top,10) + 26 + "px";
+ jscalendarCrossMonthObj.left = parseInt(formatInt(jscalendarCrossobj.left),10) + 50 + "px";
+ jscalendarCrossMonthObj.top = parseInt( formatInt(jscalendarCrossobj.top),10) + 26 + "px";
jscalendarHideElement( 'SELECT', document.getElementById("selectMonth") );
jscalendarHideElement( 'APPLET', document.getElementById("selectMonth") );
@@ -303,7 +303,7 @@
}
function jscalendarSelectYear(nYear) {
- jscalendarYearSelected=parseInt(nYear+jscalendarNStartingYear,10);
+ jscalendarYearSelected=parseInt( formatInt(nYear+jscalendarNStartingYear),10);
jscalendarYearConstructed=false;
jscalendarConstructCalendar();
jscalendarPopDownYear();
@@ -348,11 +348,11 @@
jscalendarConstructYear();
jscalendarCrossYearObj.visibility = (jscalendarDom||jscalendarIe) ? "visible" : "show";
- leftOffset = parseInt(jscalendarCrossobj.left,10) + document.getElementById("spanYear").offsetLeft;
+ leftOffset = parseInt( formatInt(jscalendarCrossobj.left),10) + document.getElementById("spanYear").offsetLeft;
if (jscalendarIe)
leftOffset += 6;
jscalendarCrossYearObj.left = leftOffset + "px";
- jscalendarCrossYearObj.top = parseInt(jscalendarCrossobj.top,10) + 26 + "px";
+ jscalendarCrossYearObj.top = parseInt( formatInt(jscalendarCrossobj.top),10) + 26 + "px";
}
/*** calendar ***/
@@ -368,7 +368,7 @@
// L = d4 / 1460
// d1 = ((d4 - L) mod 365) + L
// WeekNumber = d1 / 7 + 1
-
+
year = n.getFullYear();
month = n.getMonth() + 1;
if (jscalendarStartAt == 0)
@@ -406,7 +406,7 @@
datePointer = 0;
dayPointer = startDate.getDay() - jscalendarStartAt;
-
+
if (dayPointer<0)
dayPointer = 6;
@@ -444,9 +444,9 @@
sHint = ""
for (k=0;k<jscalendarHolidaysCounter;k++)
{
- if ((parseInt(jscalendarHolidays[k].d,10)==datePointer)&&(parseInt(jscalendarHolidays[k].m,10)==(jscalendarMonthSelected+1)))
+ if ((parseInt( formatInt(jscalendarHolidays[k].d),10)==datePointer)&&(parseInt( formatInt(jscalendarHolidays[k].m),10)==(jscalendarMonthSelected+1)))
{
- if ((parseInt(jscalendarHolidays[k].y,10)==0)||((parseInt(jscalendarHolidays[k].y,10)==jscalendarYearSelected)&&(parseInt(jscalendarHolidays[k].y,10)!=0)))
+ if ((parseInt( formatInt(jscalendarHolidays[k].y),10)==0)||((parseInt( formatInt(jscalendarHolidays[k].y),10)==jscalendarYearSelected)&&(parseInt( formatInt(jscalendarHolidays[k].y),10)!=0)))
{
sStyle += " "+jscalendarThemePrefix+"-holiday-style";
sHint+=sHint==""?jscalendarHolidays[k].desc:"\n"+jscalendarHolidays[k].desc
@@ -509,16 +509,16 @@
for (i=0;i<3;i++){
if ((aFormat[i]=="d") || (aFormat[i]=="dd")){
- jscalendarDateSelected = parseInt(aData[i],10);
+ jscalendarDateSelected = parseInt( formatInt(aData[i]),10);
tokensChanged++;
}else if ((aFormat[i]=="m") || (aFormat[i]=="mm") || (aFormat[i]=="M") || (aFormat[i]=="MM")){
- jscalendarMonthSelected = parseInt(aData[i],10) - 1;
+ jscalendarMonthSelected = parseInt( formatInt(aData[i]),10) - 1;
tokensChanged++;
}else if (aFormat[i]=="yyyy"){
- jscalendarYearSelected = parseInt(aData[i],10);
+ jscalendarYearSelected = parseInt( formatInt(aData[i]),10);
tokensChanged++;
}else if (aFormat[i]=="yy"){
- newYear = parseInt(aData[i],10);
+ newYear = parseInt( formatInt(aData[i]),10);
if(newYear>50)
jscalendarYearSelected = 1900+newYear;
@@ -549,7 +549,7 @@
jscalendarMonthSelected = jscalendarMonthNow;
jscalendarYearSelected = jscalendarYearNow;
}
-
+
jscalendarPopUpCalendar_Show(ctl);
}else{
jscalendarHideCalendar();
@@ -565,10 +565,10 @@
jscalendarMyFacesCtlType = "x:inputDate";
jscalendarMyFacesInputDateClientId = clientId;
jscalendarDateFormat=format;
-
- jscalendarDateSelected = parseInt( document.getElementById(clientId+".day").value,10);
- jscalendarMonthSelected = parseInt( document.getElementById(clientId+".month").value,10)-1;
- jscalendarYearSelected = parseInt( document.getElementById(clientId+".year").value,10);
+
+ jscalendarDateSelected = parseInt( formatInt(document.getElementById(clientId+".day").value),10);
+ jscalendarMonthSelected = parseInt( formatInt( document.getElementById(clientId+".month").value),10)-1;
+ jscalendarYearSelected = parseInt( formatInt(document.getElementById(clientId+".year").value),10);
jscalendarCtlNow = document.getElementById(clientId+".day");
jscalendarPopUpCalendar_Show(document.getElementById(clientId+".day"));
}
@@ -581,7 +581,7 @@
var leftpos = 0;
var toppos = 0;
-
+
var aTag = ctl;
do {
aTag = aTag.offsetParent;
@@ -619,10 +619,10 @@
if(jscalendarIe)
jscalendarInit();
else
-{
+{
var jscalendarOnloadBackup = window.onload;
-
- function jscalendarOnload()
+
+ function jscalendarOnload()
{
if(jscalendarOnloadBackup!=null)
jscalendarOnloadBackup();
@@ -630,4 +630,19 @@
}
window.onload=jscalendarOnload;
+}
+
+
+function formatInt(str){
+
+ if(typeof str != "undefined"){
+
+ //truncate 0 for number less than 10
+ if (str.charAt(0)=="0"){
+ return str.charAt(1);
+ }
+
+ }
+ return str;
+
}