Index: trunk/core/admin_templates/js/calendar.js =================================================================== diff -u -N -r6831 -r7391 --- trunk/core/admin_templates/js/calendar.js (.../calendar.js) (revision 6831) +++ trunk/core/admin_templates/js/calendar.js (.../calendar.js) (revision 7391) @@ -63,10 +63,20 @@ // this.src = cbPathA; // alert("cbMouseDown"); var evt = (e) ? e : event; if (evt) evt.cancelBubble = true; - this.showCalendar(); + + if (evt.pageX || evt.pageY) { + posx = evt.pageX; + posy = evt.pageY; + } + else if (evt.clientX || evt.clientY) { + posx = evt.clientX + document.body.scrollLeft + document.documentElement.scrollLeft; + posy = evt.clientY + document.body.scrollTop + document.documentElement.scrollTop; + } + + this.showCalendar(posx,posy); } -function wnd_showCalendar() +function wnd_showCalendar(x,y) { var el = this.parentNode.dateInput; if (calendar != null) calendar.hide(); @@ -80,7 +90,12 @@ calendar.setDateFormat(el.dateFormat); calendar.parseDate(el.value); calendar.sel = el; - calendar.showAtElement(el); + if (!x || !y) { + calendar.showAtElement(el); + } + else { + calendar.showAt(x,y); + } Calendar.addEvent(document, "mousedown", checkCalendar); return false; @@ -1018,7 +1033,17 @@ else { // for other browsers types - this.showAt(getWndX(el) + el.offsetWidth + 30, p.y + el.offsetHeight-200); +// var x = getWndX(el) + el.offsetWidth + 30; +// var y = p.y + el.offsetHeight-200; + + var scrOffX = window.scrollX?window.scrollX:document.body.scrollLeft; + var scrOffY = window.scrollY?window.scrollY:document.body.scrollTop; + + var x = p.x + el.offsetWidth - scrOffX; + var y = p.y - scrOffY; + +// alert('will show at '+getWndX(el)+'+'+el.offsetWidth+'+30, '+p.y +' + '+el.offsetHeight+'-200: '+x+','+y) + this.showAt(x,y); } }; @@ -1074,8 +1099,8 @@ // if (b[i] == "y") { // y = a[i]; // } - if ((b[i] == "Y")||(b[i] == "y")) { -// if (b[i] == "yy") { + if ((b[i] == "Y")||(b[i] == "y")) { +// if (b[i] == "yy") { if (a[i].length == 4) { y = a[i]; } @@ -1311,7 +1336,7 @@ /**/ /**/ document.write("") /* The main calendar widget. DIV containing a table. */