',d);
sTmp = sTmp.replace ('mmmm','');
sTmp = sTmp.replace ('mmm','');
sTmp = sTmp.replace ('mm','');
sTmp = sTmp.replace ('m','');
sTmp = sTmp.replace ('',m+1);
sTmp = sTmp.replace ('',padZero(m+1));
sTmp = sTmp.replace ('',monthName[language][m]);
sTmp = sTmp.replace ('',monthName2[language][m]);
sTmp = sTmp.replace ('yyyy',y);
return sTmp.replace ('yy',padZero(y%100));
}
function closeCalendar() {
ctlToPlaceValue.value = constructDate(dateSelected,monthSelected,yearSelected);
try
{
ctlToPlaceValue.focus();
ctlToPlaceValue.blur();
checkForm.checkField(ctlToPlaceValue);
} catch (e) {}
hideCalendar();
}
/*** Month Pulldown ***/
function StartDecMonth() {
intervalID1 = setInterval("decMonth()",80);
}
function StartIncMonth() {
intervalID1 = setInterval("incMonth()",80);
}
function incMonth () {
monthSelected++;
if (monthSelected > 11) {
monthSelected = 0;
yearSelected++;
}
constructCalendar();
}
function decMonth () {
monthSelected--;
if (monthSelected < 0) {
monthSelected = 11;
yearSelected--;
}
constructCalendar();
}
function constructMonth() {
popDownYear()
if (!monthConstructed) {
sHTML = "";
for (i=0; i<12; i++) {
sName = monthName[language][i];
if (i == monthSelected){
sName = '' + sName + '';
}
sHTML += '
| ' + sName + ' |
';
}
document.getElementById('selectMonth').innerHTML = '';
monthConstructed = true;
}
}
function popUpMonth()
{
if (visMonth == 1) {
popDownMonth();
visMonth--;
} else {
constructMonth();
crossMonthObj.visibility = (dom||ie) ? 'visible' : 'show';
crossMonthObj.left = (parseInt(crossobj.left) + 30)+"px";
crossMonthObj.top = (parseInt(crossobj.top) + 23)+"px";
hideElement('SELECT', document.getElementById('selectMonth'));
hideElement('APPLET', document.getElementById('selectMonth'));
visMonth++;
}
}
function popDownMonth() {
crossMonthObj.visibility = 'hidden';
visMonth = 0;
}
/*** Year Pulldown ***/
function incYear() {
for (i=0; i<7; i++) {
newYear = (i + nStartingYear) + 1;
if (newYear == yearSelected)
txtYear = ' ' + newYear + ' ';
else
txtYear = ' ' + newYear + ' ';
document.getElementById('y'+i).innerHTML = txtYear;
}
nStartingYear++;
bShow=true;
}
function decYear() {
for (i=0; i<7; i++) {
newYear = (i + nStartingYear) - 1;
if (newYear == yearSelected)
txtYear = ' ' + newYear + ' ';
else
txtYear = ' ' + newYear + ' ';
document.getElementById('y'+i).innerHTML = txtYear;
}
nStartingYear--;
bShow=true;
}
function selectYear(nYear) {
yearSelected = parseInt(nYear + nStartingYear);
yearConstructed = false;
constructCalendar();
popDownYear();
}
function constructYear() {
popDownMonth();
sHTML = '';
if (!yearConstructed) {
sHTML = '| - |
';
j = 0;
nStartingYear = yearSelected - 3;
for ( i = (yearSelected-3); i <= (yearSelected+3); i++ ) {
sName = i;
if (i == yearSelected) sName = '' + sName + '';
sHTML += '| ' + sName + ' |
';
j++;
}
sHTML += '| + |
';
document.getElementById('selectYear').innerHTML = '';
yearConstructed = true;
}
}
function popDownYear() {
clearInterval(intervalID1);
clearTimeout(timeoutID1);
clearInterval(intervalID2);
clearTimeout(timeoutID2);
crossYearObj.visibility= 'hidden';
visYear = 0;
}
function popUpYear() {
var leftOffset
if (visYear==1) {
popDownYear();
visYear--;
} else {
constructYear();
crossYearObj.visibility = (dom||ie) ? 'visible' : 'show';
leftOffset = parseInt(crossobj.left) + 13 + document.getElementById('spanYear').offsetLeft;
if (ie) leftOffset += 6;
crossYearObj.left = leftOffset+"px";
crossYearObj.top = (parseInt(crossobj.top) + 23)+"px";
visYear++;
}
}
/*** calendar ***/
function WeekNbr(n) {
// Algorithm used:
// From Klaus Tondering's Calendar document (The Authority/Guru)
// http://www.tondering.dk/claus/calendar.html
// a = (14-month) / 12
// y = year + 4800 - a
// m = month + 12a - 3
// J = day + (153m + 2) / 5 + 365y + y / 4 - y / 100 + y / 400 - 32045
// d4 = (J + 31741 - (J mod 7)) mod 146097 mod 36524 mod 1461
// L = d4 / 1460
// d1 = ((d4 - L) mod 365) + L
// WeekNumber = d1 / 7 + 1
year = n.getFullYear();
month = n.getMonth() + 1;
if (startAt == 0) {
day = n.getDate() + 1;
} else {
day = n.getDate();
}
a = Math.floor((14-month) / 12);
y = year + 4800 - a;
m = month + 12 * a - 3;
b = Math.floor(y/4) - Math.floor(y/100) + Math.floor(y/400);
J = day + Math.floor((153 * m + 2) / 5) + 365 * y + b - 32045;
d4 = (((J + 31741 - (J % 7)) % 146097) % 36524) % 1461;
L = Math.floor(d4 / 1460);
d1 = ((d4 - L) % 365) + L;
week = Math.floor(d1/7) + 1;
return week;
}
function constructCalendar () {
var aNumDays = Array (31,0,31,30,31,30,31,31,30,31,30,31);
var dateMessage;
var startDate = new Date (yearSelected,monthSelected,1);
var endDate;
if (monthSelected==1) {
endDate = new Date (yearSelected,monthSelected+1,1);
endDate = new Date (endDate - (24*60*60*1000));
numDaysInMonth = endDate.getDate();
} else {
numDaysInMonth = aNumDays[monthSelected];
}
datePointer = 0;
dayPointer = startDate.getDay() - startAt;
if (dayPointer<0) dayPointer = 6;
sHTML = '';
if (showWeekNumber == 1) {
sHTML += '| ' + weekString[language] + ' |  | ';
}
for (i = 0; i<7; i++) {
sHTML += '' + dayName[language][i] + ' | ';
}
sHTML += '
|
';
if (showWeekNumber == 1) {
sHTML += '| ' + WeekNbr(startDate) + ' | ';
}
for ( var i=1; i<=dayPointer;i++ ) {
sHTML += ' | ';
}
calendarRows = 1;
for ( datePointer=1; datePointer <= numDaysInMonth; datePointer++ ) {
dayPointer++;
sHTML += '';
sStyle=styleAnchor;
if ((datePointer == odateSelected) && (monthSelected == omonthSelected) && (yearSelected == oyearSelected))
{ sStyle+=styleLightBorder }
sHint = '';
for (k = 0;k < HolidaysCounter; k++) {
if ((parseInt(Holidays[k].d) == datePointer)&&(parseInt(Holidays[k].m) == (monthSelected+1))) {
if ((parseInt(Holidays[k].y)==0)||((parseInt(Holidays[k].y)==yearSelected)&&(parseInt(Holidays[k].y)!=0))) {
sStyle+= 'background-color:#fdd;';
sHint += sHint=="" ? Holidays[k].desc : "\n"+Holidays[k].desc;
}
}
}
sHint = sHint.replace('/\"/g', '"');
dateMessage = 'onmousemove="window.status=\''+selectDateMessage[language].replace('[date]',constructDate(datePointer,monthSelected,yearSelected))+'\'" onmouseout="window.status=\'\'" ';
//////////////////////////////////////////////
////////// Modifications PinoToy //////////
//////////////////////////////////////////////
if (enablePast == 0 && ((yearSelected < yearNowPast) || (monthSelected < monthNowPast) && (yearSelected == yearNowPast) || (datePointer < dateNowPast) && (monthSelected == monthNowPast) && (yearSelected == yearNowPast)))
{
selDayAction = '';
isPast = 1;
}
else if (enablePast == 2 && ((yearSelected > yearNowPast) || (monthSelected > monthNowPast) && (yearSelected == yearNowPast) || (datePointer > dateNowPast) && (monthSelected == monthNowPast) && (yearSelected == yearNowPast)))
{
selDayAction = '';
isPast = 1;
}
else
{
selDayAction = 'onClick="dateSelected=' + datePointer + ';closeCalendar();"';
isPast = 0;
}
if ((datePointer == dateNow) && (monthSelected == monthNow) && (yearSelected == yearNow)) { ///// today
sHTML += "" + datePointer + "";
} else if (dayPointer % 7 == (startAt * -1)+1) { ///// SI ES DOMINGO
if (isPast==1)
sHTML += "" + datePointer + "";
else
sHTML += "" + datePointer + "";
} else if ((dayPointer % 7 == (startAt * -1)+7 && startAt==1) || (dayPointer % 7 == startAt && startAt==0)) { ///// SI ES SABADO
if (isPast==1)
sHTML += "" + datePointer + "";
else
sHTML += "" + datePointer + "";
} else { ///// CUALQUIER OTRO DIA
if (isPast==1)
sHTML += "" + datePointer + "";
else
sHTML += "" + datePointer + "";
}
sHTML += '';
if ((dayPointer+startAt) % 7 == startAt) {
sHTML += ' |
';
if (datePointer < numDaysInMonth) calendarRows++;
if ((showWeekNumber == 1) && (datePointer < numDaysInMonth)) {
sHTML += '| ' + (WeekNbr(new Date(yearSelected,monthSelected,datePointer+1))) + ' | ';
}
}
}
document.getElementById('calendarContent').innerHTML = sHTML
document.getElementById('spanMonth').innerHTML = ' ' + monthName[language][monthSelected] + '
'
document.getElementById('spanYear').innerHTML = ' ' + yearSelected + '
';
}
//past=0 len buduce, past=1 vsetky, past=2 len minule
function showCalendar(ctl, ctl2, format, lang, past, fx, fy, datePast)
{
if (lang != null && lang != '') language = lang;
if (past != null) enablePast = past;
//else enablePast = 1;
if (fx != null) fixedX = fx;
else fixedX = -1;
if (fy != null) fixedY = fy;
else fixedY = -1;
if (datePast != null && datePast != "")
{
var dates = datePast.split(".");
dateNowPast = Number(dates[0]);
monthNowPast = Number(dates[1]) - 1;
yearNowPast = Number(dates[2]);
//window.alert(datePast+"="+dateNowPast+"."+monthNowPast+"."+yearNowPast+" tm="+today.getMonth());
}
else
{
yearNowPast = yearNow;
monthNowPast = monthNow;
dateNowPast = dateNow;
}
if (showToday == 1) {
document.getElementById('lblToday').innerHTML = todayString[language] + ' '+dayNameLong[language][(today.getDay()-startAt==-1)?6:(today.getDay()-startAt)]+', ' + dateNow + ' ' + monthName[language][monthNow].substring(0,3) + ', ' + yearNow + '';
}
popUpCalendar(ctl, ctl2, format);
}
function popUpCalendar(ctl, ctl2, format) {
var leftpos = 0;
var toppos = 0;
if (bPageLoaded) {
if (crossobj.visibility == 'hidden')
{
ctlToPlaceValue = ctl2;
dateFormat = format;
formatChar = ' ';
aFormat = dateFormat.split(formatChar);
if (aFormat.length < 3) {
formatChar = '/';
aFormat = dateFormat.split(formatChar);
if (aFormat.length < 3) {
formatChar = '.';
aFormat = dateFormat.split(formatChar);
if (aFormat.length < 3) {
formatChar = '-';
aFormat = dateFormat.split(formatChar);
if (aFormat.length < 3) {
formatChar = ''; // invalid date format
}
}
}
}
tokensChanged = 0;
if (formatChar != "") {
aData = ctl2.value.split(formatChar); // use user's date
for (i=0; i<3; i++) {
if ((aFormat[i] == "d") || (aFormat[i] == "dd")) {
dateSelected = parseInt(aData[i], 10);
tokensChanged++;
} else if ((aFormat[i] == "m") || (aFormat[i] == "mm")) {
monthSelected = parseInt(aData[i], 10) - 1;
tokensChanged++;
} else if (aFormat[i] == "yyyy") {
yearSelected = parseInt(aData[i], 10);
tokensChanged++;
} else if (aFormat[i] == "mmm") {
for (j=0; j<12; j++) {
if (aData[i] == monthName[language][j]) {
monthSelected=j;
tokensChanged++;
}
}
} else if (aFormat[i] == "mmmm") {
for (j=0; j<12; j++) {
if (aData[i] == monthName2[language][j]) {
monthSelected = j;
tokensChanged++;
}
}
}
}
}
if ((tokensChanged != 3) || isNaN(dateSelected) || isNaN(monthSelected) || isNaN(yearSelected)) {
dateSelected = dateNow;
monthSelected = monthNow;
yearSelected = yearNow;
}
odateSelected = dateSelected;
omonthSelected = monthSelected;
oyearSelected = yearSelected;
aTag = ctl;
var classNameOK = true;
do
{
aTag = aTag.offsetParent;
if (aTag != null)
{
if ( aTag.className && aTag.className.indexOf("calendarPopupStop")!=-1) classNameOK = false;
if (classNameOK)
{
//console.log(aTag); console.log(aTag.offsetTop);
leftpos += aTag.offsetLeft;
toppos += aTag.offsetTop;
}
}
} while (aTag && aTag.tagName != 'BODY' && classNameOK);
// ebahtav kalendara
toppos = toppos-85;
//window.status = ctl.offsetTop + " p="+toppos+" o="+ctl.offsetHeight;
crossobj.left = (fixedX == -1) ? (ctl.offsetLeft + leftpos + "px") : (fixedX+"px");
crossobj.top = (fixedY == -1) ? (ctl.offsetTop + toppos + ctl.offsetHeight + 2 + "px") : (fixedY+"px");
//posunieme ak by to presahovalo sirku okna
if(fixedX == -1 && document.body && document.body.clientWidth)
{
//IE 4 compatible
var clientWidth = document.body.clientWidth;
var objLeft = ctl.offsetLeft + leftpos;
if (objLeft + 220 > clientWidth)
{
crossobj.left = (clientWidth - 235) + "px"
}
}
if (frameObj != null)
{
var crossobjRuntime = document.getElementById('calendarContent').runtimeStyle;
frameObj.left = crossobj.left;
frameObj.top = crossobj.top;
if (crossobj.width!="") frameObj.width = crossobj.width;
if (crossobj.height!="")
{
frameObj.height = crossobj.height;
}
else
{
if (calendarRows == 5) frameObj.height = "137px";
if (calendarRows == 6) frameObj.height = "150px";
}
frameObj.visibility = (dom||ie) ? "visible" : "show";
}
constructCalendar (1, monthSelected, yearSelected);
crossobj.visibility = (dom||ie) ? "visible" : "show";
hideElement('SELECT', document.getElementById('calendar'));
hideElement('APPLET', document.getElementById('calendar'));
bShow = true;
} else {
hideCalendar();
if (ctlNow!=ctl) popUpCalendar(ctl, ctl2, format);
}
ctlNow = ctl;
}
}
document.onkeypress = function hidecal1 () {
//if (event && event.keyCode == 27) hideCalendar();
}
document.onclick = function hidecal2 () {
if (!bShow) hideCalendar();
bShow = false;
}
//if(ie) {
initCalendar();
//} else {
// window.onload = initCalendar;
//}