function hideElementCal(elmID, overDiv) { for(i = 0; i < document.getElementsByTagName(elmID).length; i++) { obj = document.getElementsByTagName(elmID)[i]; if (!obj || !obj.offsetParent) { continue } 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)); else if (overDiv.offsetLeft >= (objLeft + objWidth)); else { obj.style.visibility = "hidden" } } } function showElementCal(elmID) { for (i = 0; i < document.getElementsByTagName(elmID).length; i++) { obj = document.getElementsByTagName(elmID)[i]; if(!obj || !obj.offsetParent) { continue } obj.style.visibility = "" } } function HolidayRec(d, m, y, desc) { this.d = d this.m = m this.y = y this.desc = desc } var HolidaysCounter = 0 var Holidays = new Array() function addHoliday(d, m, y, desc) { Holidays[HolidaysCounter++] = new HolidayRec(d, m, y, desc) } var styleAnchor = "text-decoration: none; color: black; cursor: pointer" var styleLightBorder = "border-style: solid; border-width: 1px; border-color: #a0a0a0; cursor: pointer"; function swapImage(srcImg, destImg) { document.getElementById(srcImg).setAttribute("src", webLibraryPath + "/" + destImg); } function initDXCal() { for (i=0; i"+ " "+ " "+ " "+ " "+ " "+ " "+ " "+ "
Close the date picker
"+ " "+ " "+ " "+ " "+ " " if (dp_showToday==1) { t += " "+ " "+ " " } t += " "+ ""+ ""+ "" document.getElementById('DatePickerSpan').innerHTML = t; dp_crossobj = document.getElementById('DatePicker').style; hideDatePicker(); dp_crossMonthObj = document.getElementById('dp_selectMonth').style; dp_crossYearObj = document.getElementById('dp_selectYear').style; dp_monthConstructed = false; dp_yearConstructed = false; if (dp_showToday == 1) { document.getElementById('dp_Today').innerHTML = dp_todayString+" "+dayName[(dp_today.getDay()-dp_startAt == -1)?6:(dp_today.getDay() - dp_startAt)]+", " + dp_dateNow + " "+monthName[dp_monthNow].substring(0,3)+" "+dp_yearNow+"" } sHTML1 = "   " sHTML1+="   " sHTML1+=" " sHTML1+=" " document.getElementById('dp_caption').innerHTML = sHTML1; dp_bPageLoaded = true; } function hideDatePicker() { dp_crossobj.visibility = "hidden"; if (dp_crossMonthObj != null) { dp_crossMonthObj.visibility = "hidden"; } if (dp_crossYearObj!=null) { dp_crossYearObj.visibility = "hidden"; } showElementCal('SELECT', document.getElementById('DatePicker')); } function constructDate(d,m,y) { sTmp = dp_dateFormat sTmp = sTmp.replace("dd","") sTmp = sTmp.replace("d","") sTmp = sTmp.replace("",padZero(d)) sTmp = sTmp.replace("",d) 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[m]) return sTmp.replace ("yyyy",y) } function padZero(num) { return (num< 10)? '0' + num : num } function closeDatePicker() { var sTmp; hideDatePicker(); dp_ctlToPlaceValue.value = constructDate(dp_dateSelected, dp_monthSelected, dp_yearSelected) } function StartDecMonth() { dp_intervalID1 = setInterval("decMonth()",80) } function StartIncMonth() { dp_intervalID1 = setInterval("incMonth()",80) } function incMonth() { dp_monthSelected++; if(dp_monthSelected > 11) { dp_monthSelected = 0; dp_yearSelected++; }; constructDatePicker(); } function decMonth() { dp_monthSelected--; if (dp_monthSelected < 0) { dp_monthSelected = 11; dp_yearSelected--; } constructDatePicker(); } function constructMonth() { popDownYear() if (!dp_monthConstructed) { sHTML="" for (i=0; i<12; i++) { sName = monthName[i] if (i == dp_monthSelected) { sName = "" + sName + "" } sHTML += ""+ " " + sName + " "+ "" } document.getElementById('dp_selectMonth').innerHTML = ""+sHTML+"
" dp_monthConstructed=true } } function popUpMonth() { constructMonth(); dp_crossMonthObj.visibility = "visible"; dp_crossMonthObj.left = parseInt(dp_crossobj.left) + 50; dp_crossMonthObj.top = parseInt(dp_crossobj.top) + 26; hideElementCal('SELECT', document.getElementById('dp_selectMonth')); } function popDownMonth() { dp_crossMonthObj.visibility = "hidden"; } function incYear() { for(i=0; i<7; i++) { newYear = (i + dp_nStartingYear) + 1; if (newYear == dp_yearSelected) { txtYear = " " + newYear + " " } else { txtYear = " " + newYear + " "; } document.getElementById("y"+i).innerHTML=txtYear; } dp_nStartingYear ++; dp_bShow = true; } function decYear() { for (i=0; i<7; i++) { newYear = (i + dp_nStartingYear) - 1; if (newYear == dp_yearSelected) { txtYear = " " + newYear + " " } else { txtYear = " " + newYear + " "; } document.getElementById("y"+i).innerHTML = txtYear; } dp_nStartingYear --; dp_bShow = true; } function selectYear(nYear) { dp_yearSelected = parseInt(nYear + dp_nStartingYear); dp_yearConstructed = false; constructDatePicker(); popDownYear(); } function constructYear() { popDownMonth(); sHTML = ""; if (!dp_yearConstructed) { sHTML = "-"; j = 0; dp_nStartingYear = dp_yearSelected - 3; for (i = (dp_yearSelected - 3); i <= (dp_yearSelected + 3); i++) { sName = i; if (i == dp_yearSelected) { sName = "" + sName + ""; } sHTML += " " + sName + " "; j ++; } sHTML += "+"; document.getElementById('dp_selectYear').innerHTML = ""+sHTML+"
"; dp_yearConstructed = true; } } function popDownYear() { clearInterval(dp_intervalID1); clearTimeout(dp_timeoutID1); clearInterval(dp_intervalID2); clearTimeout(dp_timeoutID2); dp_crossYearObj.visibility= "hidden"; } function popUpYear() { var leftOffset; constructYear(); dp_crossYearObj.visibility = "visible"; leftOffset = parseInt(dp_crossobj.left) + document.getElementById('dp_spanYear').offsetLeft; leftOffset += 6; dp_crossYearObj.left = leftOffset; dp_crossYearObj.top = parseInt(dp_crossobj.top) + 26; } function WeekNbr(n) { year = n.getFullYear(); month = n.getMonth() + 1; if (dp_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 constructDatePicker () { var aNumDays = Array (31,0,31,30,31,30,31,31,30,31,30,31); var dateMessage; var startDate = new Date(dp_yearSelected, dp_monthSelected, 1); var endDate; if (dp_monthSelected == 1) { endDate = new Date(dp_yearSelected, dp_monthSelected + 1, 1); endDate = new Date(endDate - (24*60*60*1000)); numDaysInMonth = endDate.getDate(); } else { numDaysInMonth = aNumDays[dp_monthSelected]; } datePointer = 0; dayPointer = startDate.getDay() - dp_startAt if (dayPointer < 0) { dayPointer = 6; } sHTML = ""; if (dp_showWeekNumber == 1) { sHTML += ""; } for (i = 0; i < 7; i++) { sHTML += ""; } sHTML += ""; if (dp_showWeekNumber == 1) { sHTML += "" } for (var i = 1; i <= dayPointer; i++) { sHTML += ""; } for (datePointer = 1; datePointer <= numDaysInMonth; datePointer++) { dayPointer++; sHTML += ""; if ((dp_showWeekNumber == 1) && (datePointer < numDaysInMonth)) { sHTML += ""; } } } document.getElementById('dp_content').innerHTML = sHTML; document.getElementById('dp_spanMonth').innerHTML = " "+monthName[dp_monthSelected] + " "; document.getElementById('dp_spanYear').innerHTML = " " + dp_yearSelected + " "; } function dxcal(o, n, d) { showDatePicker(o, n, d); } function showDatePicker(ctl, ctl2, format) { var DSCxgutter = 300; var DSCygutter = 160; var leftpos = 0; var toppos = -140; if (dp_bPageLoaded) { if (dp_crossobj.visibility == "hidden") { dp_ctlToPlaceValue = ctl2; dp_dateFormat = format; formatChar = " "; aFormat = dp_dateFormat.split(formatChar); if (aFormat.length < 3) { formatChar = "/"; aFormat = dp_dateFormat.split(formatChar); if (aFormat.length < 3) { formatChar = "."; aFormat = dp_dateFormat.split(formatChar); if (aFormat.length < 3) { formatChar = "-"; aFormat = dp_dateFormat.split(formatChar); if (aFormat.length < 3) { formatChar = ""; } } } } tokensChanged = 0; if (formatChar != "") { aData = ctl2.value.split(formatChar); for (i = 0; i < 3; i++) { if ((aFormat[i] == "d") || (aFormat[i] == "dd")) { dp_dateSelected = parseInt(aData[i], 10); tokensChanged++; } else if ((aFormat[i] == "m") || (aFormat[i] == "mm")) { dp_monthSelected = parseInt(aData[i], 10) - 1; tokensChanged ++; } else if(aFormat[i] == "yyyy") { dp_yearSelected = parseInt(aData[i], 10); tokensChanged ++; } else if(aFormat[i] == "mmm") { for(j = 0; j < 12; j++) { if (aData[i] == monthName[j]) { dp_monthSelected = j; tokensChanged ++; } } } } } if ((tokensChanged != 3) || isNaN(dp_dateSelected) || isNaN(dp_monthSelected) || isNaN(dp_yearSelected)) { dp_dateSelected = dp_dateNow; dp_monthSelected = dp_monthNow; dp_yearSelected = dp_yearNow; } dp_odateSelected = dp_dateSelected; dp_omonthSelected = dp_monthSelected; dp_oyearSelected = dp_yearSelected; aTag = ctl; do { aTag = aTag.offsetParent; leftpos += aTag.offsetLeft; toppos += aTag.offsetTop; } while (aTag.tagName != "BODY"); var xp = ctl.offsetLeft + leftpos; var yp = ctl.offsetTop + toppos + ctl.offsetHeight + 2; if ((xp + DSCxgutter) > document.body.clientWidth) { xp -= ((xp + DSCxgutter) - document.body.clientWidth); } if ((yp + DSCygutter) > document.body.clientHeight) { yp -= ((yp + DSCygutter) - document.body.clientHeight); } dp_crossobj.left = dp_fixedX == -1 ? xp : dp_fixedX; dp_crossobj.top = dp_fixedY == -1 ? yp : dp_fixedY; constructDatePicker(1, dp_monthSelected, dp_yearSelected); dp_crossobj.visibility = "visible"; hideElementCal('SELECT', document.getElementById('DatePicker')); dp_bShow = true; } else { hideDatePicker(); if (dp_ctlNow != ctl) { showDatePicker(ctl, ctl2, format); } } dp_ctlNow = ctl; } } function dp_onLoad() { initDXCal(); }
" + dp_weekString + "" + dayName[i] + "
" + WeekNbr(startDate) + "  "; sStyle = styleAnchor; if ((datePointer == dp_odateSelected) && (dp_monthSelected == dp_omonthSelected) && (dp_yearSelected == dp_oyearSelected)) { sStyle += styleLightBorder; } sHint = ""; for (k = 0; k < HolidaysCounter; k++) { if ((parseInt(Holidays[k].d) == datePointer) && (parseInt(Holidays[k].m) == (dp_monthSelected + 1))) { if ((parseInt(Holidays[k].y) == 0) || ((parseInt(Holidays[k].y) == dp_yearSelected) && (parseInt(Holidays[k].y) !=0 ))) { sStyle += "background-color:#FFDDDD"; sHint += sHint == "" ? Holidays[k].desc : "\n" + Holidays[k].desc; } } } var regexp = /\"/g; sHint = sHint.replace(regexp, """); dateMessage = "onmousemove='window.status=\""+dp_selectDateMessage.replace("[date]",constructDate(datePointer,dp_monthSelected,dp_yearSelected))+"\"' onmouseout='window.status=\"\"' "; if ((datePointer == dp_dateNow) && (dp_monthSelected == dp_monthNow) && (dp_yearSelected == dp_yearNow)) { sHTML += " " + datePointer + " " } else if (dayPointer % 7 == (dp_startAt * -1) + 1) { sHTML += " " + datePointer + " " } else { sHTML += " " + datePointer + " "; } sHTML += ""; if ((dayPointer + dp_startAt) % 7 == dp_startAt) { sHTML += "
" + (WeekNbr(new Date(dp_yearSelected, dp_monthSelected, datePointer + 1))) + "