﻿function onlyAlphabetic() { if ((event.keyCode == 32) || (event.keyCode > 64 && event.keyCode < 91) || (event.keyCode > 96 && event.keyCode < 123) || (event.keyCode == 45) || (event.keyCode == 46) || (event.keyCode == 39)) event.returnValue = true; else event.returnValue = false; }
function onlyDate() { if ((event.keyCode < 48 && event.keyCode != 47) || (event.keyCode > 57)) event.returnValue = false; }
function DateOnKeyUp(ctrl) { if (event.keyCode != 8) { switch (ctrl.value.length) { case 2: ctrl.value += "/"; break; case 5: ctrl.value += "/"; break; } } }
function DateOnClick(ctrl) { if (ctrl.value.toLowerCase() == "dd/mm/yyyy" || ctrl.value.toLowerCase() == "mm/yyyy" || ctrl.value.toLowerCase() == "yyyy") ctrl.value = ""; }
function DateFocusOut(ctrl) { if (ctrl.value.length == 0) ctrl.value = "dd/mm/yyyy"; }
function onlyNumeric() { if ((event.keyCode < 48) || (event.keyCode > 57)) event.returnValue = false; }
function onlyMoney() { if ((event.keyCode < 48 && event.keyCode != 46) || (event.keyCode > 57)) event.returnValue = false; }
function onlyTel() { if (!((event.keyCode < 48) || (event.keyCode > 57)) && (event.keyCode != 32)) event.returnValue = true; else event.returnValue = false; }
function SwapIn() { var a, b; a = window.event.srcElement.src; if (a == null || a.length <= 4) return; b = a.substring(a.length - 4); window.event.srcElement.src = a.substring(0, a.length - 4) + '01' + b; }
function SwapOut() { var a, b; a = window.event.srcElement.src; if (a == null || a.length <= 4) return; b = a.substring(a.length - 4); window.event.srcElement.src = a.substring(0, a.length - 6) + b; }
function gel(o) { return document.getElementById(o) }
function ajaxBeginRequest(sender, args) { var t = gel('divDataIsLoadingBg'); if (t != null) { t.style.posHeight = document.body.clientHeight; t.style.posWidth = document.body.clientWidth; t.style.visibility = 'visible'; } var r = gel('divDataIsLoading'); if (r != null) { var x = 0, y = 0; if (typeof (window.pageYOffset) == 'number') { y = window.pageYOffset; x = window.pageXOffset; } else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) { y = document.body.scrollTop; x = document.body.scrollLeft; } else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) { y = document.documentElement.scrollTop; x = document.documentElement.scrollLeft; } r.style.posTop = y; r.style.posLeft = x; r.style.visibility = 'visible'; } }
function ajaxEndRequest(sender, args) { var t = gel('divDataIsLoadingBg'); if (t != null) t.style.visibility = 'hidden'; var r = gel('divDataIsLoading'); if (r != null) r.style.visibility = 'hidden'; }

var turnOffYearSpan = false; var weekStartsOnSunday = false; var showWeekNumber = true; var languageCode = 'en'; var todayStringFormat = '[todayString] [UCFdayString]. [day]. [monthString] [year]';
function pathToImages() {return AbsoluteRootPath + 'App_Themes/' + Theme + '/Images/Calendar/'; }
var speedOfSelectBoxSliding = 200; var intervalSelectBox_minutes = 5; var calendar_offsetTop = 0; var calendar_offsetLeft = 0; var calendarDiv = false; var MSIE = false; var Opera = false; if (navigator.userAgent.indexOf('MSIE') >= 0 && navigator.userAgent.indexOf('Opera') < 0) MSIE = true; if (navigator.userAgent.indexOf('Opera') >= 0) Opera = true; switch (languageCode) { case "en": var monthArray = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; var monthArrayShort = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; var dayArray = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']; var weekString = 'Week'; var todayString = ''; break; } if (weekStartsOnSunday) { var tempDayName = dayArray[6]; for (var theIx = 6; theIx > 0; theIx--) { dayArray[theIx] = dayArray[theIx - 1]; } dayArray[0] = tempDayName; } var daysInMonthArray = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; var currentMonth; var currentYear; var currentHour; var currentMinute; var calendarContentDiv; var returnDateTo; var returnFormat; var activeSelectBoxMonth; var activeSelectBoxYear; var activeSelectBoxHour; var activeSelectBoxMinute; var ifr = false; var ifr2 = false;
function EIS_FIX_EI1(where2fixit) { if (!ifr2) return; ifr2.style.display = 'block'; ifr2.style.height = gel(where2fixit).offsetHeight + 1; ifr2.style.width = gel(where2fixit).offsetWidth; ifr2.style.left = getleftPos(gel(where2fixit)) + 1 - calendar_offsetLeft; ifr2.style.top = getTopPos(gel(where2fixit)) - gel(where2fixit).offsetHeight - calendar_offsetTop; }
function EIS_Hide_Frame() { if (ifr2) ifr2.style.display = 'none'; } var returnDateToYear; var returnDateToMonth; var returnDateToDay; var returnDateToHour; var returnDateToMinute; var inputYear; var inputMonth; var inputDay; var inputHour; var inputMinute; var calendarDisplayTime = false; var selectBoxHighlightColor = '#D60808'; var selectBoxRolloverBgColor = '#3464b4'; var selectBoxTextColor = '#ffffff'; var selectBoxMovementInProgress = false; var activeSelectBox = false;
function cancelCalendarEvent() { return false; }
function isLeapYear(inputYear) { if (inputYear % 400 == 0 || (inputYear % 4 == 0 && inputYear % 100 != 0)) return true; return false; } var activeSelectBoxMonth = false; var activeSelectBoxDirection = false;
function highlightMonthYear() { if (activeSelectBoxMonth) activeSelectBoxMonth.className = ''; activeSelectBox = this; if (this.className == 'monthYearActive') { this.className = ''; } else { this.className = 'monthYearActive'; activeSelectBoxMonth = this; } if (this.innerHTML.indexOf('-') >= 0 || this.innerHTML.indexOf('+') >= 0) { if (this.className == 'monthYearActive') selectBoxMovementInProgress = true; else selectBoxMovementInProgress = false; if (this.innerHTML.indexOf('-') >= 0) activeSelectBoxDirection = -1; else activeSelectBoxDirection = 1; } else selectBoxMovementInProgress = false; }
function showMonthDropDown() { if (gel('monthDropDown').style.display == 'block') { gel('monthDropDown').style.display = 'none'; EIS_Hide_Frame(); } else { gel('monthDropDown').style.display = 'block'; gel('yearDropDown').style.display = 'none'; gel('hourDropDown').style.display = 'none'; gel('minuteDropDown').style.display = 'none'; if (MSIE) { EIS_FIX_EI1('monthDropDown') } } }
function showYearDropDown() { if (gel('yearDropDown').style.display == 'block') { gel('yearDropDown').style.display = 'none'; EIS_Hide_Frame(); } else { gel('yearDropDown').style.display = 'block'; gel('monthDropDown').style.display = 'none'; gel('hourDropDown').style.display = 'none'; gel('minuteDropDown').style.display = 'none'; if (MSIE) { EIS_FIX_EI1('yearDropDown') } } }
function showHourDropDown() { if (gel('hourDropDown').style.display == 'block') { gel('hourDropDown').style.display = 'none'; EIS_Hide_Frame(); } else { gel('hourDropDown').style.display = 'block'; gel('monthDropDown').style.display = 'none'; gel('yearDropDown').style.display = 'none'; gel('minuteDropDown').style.display = 'none'; if (MSIE) { EIS_FIX_EI1('hourDropDown') } } }
function showMinuteDropDown() { if (gel('minuteDropDown').style.display == 'block') { gel('minuteDropDown').style.display = 'none'; EIS_Hide_Frame(); } else { gel('minuteDropDown').style.display = 'block'; gel('monthDropDown').style.display = 'none'; gel('yearDropDown').style.display = 'none'; gel('hourDropDown').style.display = 'none'; if (MSIE) { EIS_FIX_EI1('minuteDropDown') } } }
function selectMonth() { gel('calendar_month_txt').innerHTML = this.innerHTML; currentMonth = this.id.replace(/[^\d]/g, ''); gel('monthDropDown').style.display = 'none'; EIS_Hide_Frame(); for (var no = 0; no < monthArray.length; no++) { gel('monthDiv_' + no).style.color = ''; } this.style.color = selectBoxHighlightColor; activeSelectBoxMonth = this; writeCalendarContent(); }
function selectHour() { gel('calendar_hour_txt').innerHTML = this.innerHTML; currentHour = this.innerHTML.replace(/[^\d]/g, ''); gel('hourDropDown').style.display = 'none'; EIS_Hide_Frame(); if (activeSelectBoxHour) { activeSelectBoxHour.style.color = ''; } activeSelectBoxHour = this; this.style.color = selectBoxHighlightColor; }
function selectMinute() { gel('calendar_minute_txt').innerHTML = this.innerHTML; currentMinute = this.innerHTML.replace(/[^\d]/g, ''); gel('minuteDropDown').style.display = 'none'; EIS_Hide_Frame(); if (activeSelectBoxMinute) { activeSelectBoxMinute.style.color = ''; } activeSelectBoxMinute = this; this.style.color = selectBoxHighlightColor; }
function selectYear() { gel('calendar_year_txt').innerHTML = this.innerHTML; currentYear = this.innerHTML.replace(/[^\d]/g, ''); gel('yearDropDown').style.display = 'none'; EIS_Hide_Frame(); if (activeSelectBoxYear) { activeSelectBoxYear.style.color = ''; } activeSelectBoxYear = this; this.style.color = selectBoxHighlightColor; writeCalendarContent(); }
function switchMonth() { if (this.src.indexOf('left') >= 0) { currentMonth = currentMonth - 1; if (currentMonth < 0) { currentMonth = 11; currentYear = currentYear - 1; } } else { currentMonth = currentMonth + 1; if (currentMonth > 11) { currentMonth = 0; currentYear = currentYear / 1 + 1; } } writeCalendarContent(); }
function createMonthDiv() { var div = document.createElement('DIV'); div.className = 'monthYearPicker'; div.id = 'monthPicker'; for (var no = 0; no < monthArray.length; no++) { var subDiv = document.createElement('DIV'); subDiv.innerHTML = monthArray[no]; subDiv.onmouseover = highlightMonthYear; subDiv.onmouseout = highlightMonthYear; subDiv.onclick = selectMonth; subDiv.id = 'monthDiv_' + no; subDiv.style.width = '56px'; subDiv.onselectstart = cancelCalendarEvent; div.appendChild(subDiv); if (currentMonth && currentMonth == no) { subDiv.style.color = selectBoxHighlightColor; activeSelectBoxMonth = subDiv; } } return div; }
function changeSelectBoxYear(e, inputObj) { if (!inputObj) inputObj = this; var yearItems = inputObj.parentNode.getElementsByTagName('DIV'); if (inputObj.innerHTML.indexOf('-') >= 0) { var startYear = yearItems[1].innerHTML / 1 - 1; if (activeSelectBoxYear) { activeSelectBoxYear.style.color = ''; } } else { var startYear = yearItems[1].innerHTML / 1 + 1; if (activeSelectBoxYear) { activeSelectBoxYear.style.color = ''; } } for (var no = 1; no < yearItems.length - 1; no++) { yearItems[no].innerHTML = startYear + no - 1; yearItems[no].id = 'yearDiv' + (startYear / 1 + no / 1 - 1); } if (activeSelectBoxYear) { activeSelectBoxYear.style.color = ''; if (gel('yearDiv' + currentYear)) { activeSelectBoxYear = gel('yearDiv' + currentYear); activeSelectBoxYear.style.color = selectBoxHighlightColor; ; } } }
function changeSelectBoxHour(e, inputObj) { if (!inputObj) inputObj = this; var hourItems = inputObj.parentNode.getElementsByTagName('DIV'); if (inputObj.innerHTML.indexOf('-') >= 0) { var startHour = hourItems[1].innerHTML / 1 - 1; if (startHour < 0) startHour = 0; if (activeSelectBoxHour) { activeSelectBoxHour.style.color = ''; } } else { var startHour = hourItems[1].innerHTML / 1 + 1; if (startHour > 14) startHour = 14; if (activeSelectBoxHour) { activeSelectBoxHour.style.color = ''; } } var prefix = ''; for (var no = 1; no < hourItems.length - 1; no++) { if ((startHour / 1 + no / 1) < 11) prefix = '0'; else prefix = ''; hourItems[no].innerHTML = prefix + (startHour + no - 1); hourItems[no].id = 'hourDiv' + (startHour / 1 + no / 1 - 1); } if (activeSelectBoxHour) { activeSelectBoxHour.style.color = ''; if (gel('hourDiv' + currentHour)) { activeSelectBoxHour = gel('hourDiv' + currentHour); activeSelectBoxHour.style.color = selectBoxHighlightColor; ; } } }
function updateYearDiv() { var yearSpan = 5; if (turnOffYearSpan) { yearSpan = 0; } var div = gel('yearDropDown'); var yearItems = div.getElementsByTagName('DIV'); for (var no = 1; no < yearItems.length - 1; no++) { yearItems[no].innerHTML = currentYear / 1 - yearSpan + no; if (currentYear == (currentYear / 1 - yearSpan + no)) { yearItems[no].style.color = selectBoxHighlightColor; activeSelectBoxYear = yearItems[no]; } else { yearItems[no].style.color = ''; } } }
function updateMonthDiv() { for (no = 0; no < 12; no++) { gel('monthDiv_' + no).style.color = ''; } gel('monthDiv_' + currentMonth).style.color = selectBoxHighlightColor; activeSelectBoxMonth = gel('monthDiv_' + currentMonth); }
function updateHourDiv() { var div = gel('hourDropDown'); var hourItems = div.getElementsByTagName('DIV'); var addHours = 0; if ((currentHour / 1 - 6 + 1) < 0) { addHours = (currentHour / 1 - 6 + 1) * -1; } for (var no = 1; no < hourItems.length - 1; no++) { var prefix = ''; if ((currentHour / 1 - 6 + no + addHours) < 10) prefix = '0'; hourItems[no].innerHTML = prefix + (currentHour / 1 - 6 + no + addHours); if (currentHour == (currentHour / 1 - 6 + no)) { hourItems[no].style.color = selectBoxHighlightColor; activeSelectBoxHour = hourItems[no]; } else { hourItems[no].style.color = ''; } } }
function updateMinuteDiv() { for (no = 0; no < 60; no += intervalSelectBox_minutes) { var prefix = ''; if (no < 10) prefix = '0'; gel('minuteDiv_' + prefix + no).style.color = ''; } if (gel('minuteDiv_' + currentMinute)) { gel('minuteDiv_' + currentMinute).style.color = selectBoxHighlightColor; activeSelectBoxMinute = gel('minuteDiv_' + currentMinute); } }
function createYearDiv() { if (!gel('yearDropDown')) { var div = document.createElement('DIV'); div.className = 'monthYearPicker'; } else { var div = gel('yearDropDown'); var subDivs = div.getElementsByTagName('DIV'); for (var no = 0; no < subDivs.length; no++) { subDivs[no].parentNode.removeChild(subDivs[no]); } } var d = new Date(); if (currentYear) { d.setFullYear(currentYear); } var startYear = d.getFullYear() / 1 - 5; var yearSpan = 10; if (!turnOffYearSpan) { var subDiv = document.createElement('DIV'); subDiv.innerHTML = '&nbsp;&nbsp;- '; subDiv.onclick = changeSelectBoxYear; subDiv.onmouseover = highlightMonthYear; subDiv.onmouseout = function() { selectBoxMovementInProgress = false; }; subDiv.onselectstart = cancelCalendarEvent; div.appendChild(subDiv); } else { startYear = d.getFullYear() / 1 - 0; yearSpan = 2; } for (var no = startYear; no < (startYear + yearSpan); no++) { var subDiv = document.createElement('DIV'); subDiv.innerHTML = no; subDiv.onmouseover = highlightMonthYear; subDiv.onmouseout = highlightMonthYear; subDiv.onclick = selectYear; subDiv.id = 'yearDiv' + no; subDiv.onselectstart = cancelCalendarEvent; div.appendChild(subDiv); if (currentYear && currentYear == no) { subDiv.style.color = selectBoxHighlightColor; activeSelectBoxYear = subDiv; } } if (!turnOffYearSpan) { var subDiv = document.createElement('DIV'); subDiv.innerHTML = '&nbsp;&nbsp;+ '; subDiv.onclick = changeSelectBoxYear; subDiv.onmouseover = highlightMonthYear; subDiv.onmouseout = function() { selectBoxMovementInProgress = false; }; subDiv.onselectstart = cancelCalendarEvent; div.appendChild(subDiv); } return div; }
function slideCalendarSelectBox() { if (selectBoxMovementInProgress) { if (activeSelectBox.parentNode.id == 'hourDropDown') { changeSelectBoxHour(false, activeSelectBox); } if (activeSelectBox.parentNode.id == 'yearDropDown') { changeSelectBoxYear(false, activeSelectBox); } } setTimeout('slideCalendarSelectBox()', speedOfSelectBoxSliding); }
function createHourDiv() { if (!gel('hourDropDown')) { var div = document.createElement('DIV'); div.className = 'monthYearPicker'; } else { var div = gel('hourDropDown'); var subDivs = div.getElementsByTagName('DIV'); for (var no = 0; no < subDivs.length; no++) { subDivs[no].parentNode.removeChild(subDivs[no]); } } if (!currentHour) currentHour = 0; var startHour = currentHour / 1; if (startHour > 14) startHour = 14; var subDiv = document.createElement('DIV'); subDiv.innerHTML = '&nbsp;&nbsp;- '; subDiv.onclick = changeSelectBoxHour; subDiv.onmouseover = highlightMonthYear; subDiv.onmouseout = function() { selectBoxMovementInProgress = false; }; subDiv.onselectstart = cancelCalendarEvent; div.appendChild(subDiv); for (var no = startHour; no < startHour + 10; no++) { var prefix = ''; if (no / 1 < 10) prefix = '0'; var subDiv = document.createElement('DIV'); subDiv.innerHTML = prefix + no; subDiv.onmouseover = highlightMonthYear; subDiv.onmouseout = highlightMonthYear; subDiv.onclick = selectHour; subDiv.id = 'hourDiv' + no; subDiv.onselectstart = cancelCalendarEvent; div.appendChild(subDiv); if (currentYear && currentYear == no) { subDiv.style.color = selectBoxHighlightColor; activeSelectBoxYear = subDiv; } } var subDiv = document.createElement('DIV'); subDiv.innerHTML = '&nbsp;&nbsp;+ '; subDiv.onclick = changeSelectBoxHour; subDiv.onmouseover = highlightMonthYear; subDiv.onmouseout = function() { selectBoxMovementInProgress = false; }; subDiv.onselectstart = cancelCalendarEvent; div.appendChild(subDiv); return div; }
function createMinuteDiv() { if (!gel('minuteDropDown')) { var div = document.createElement('DIV'); div.className = 'monthYearPicker'; } else { var div = gel('minuteDropDown'); var subDivs = div.getElementsByTagName('DIV'); for (var no = 0; no < subDivs.length; no++) { subDivs[no].parentNode.removeChild(subDivs[no]); } } var startMinute = 0; var prefix = ''; for (var no = startMinute; no < 60; no += intervalSelectBox_minutes) { if (no < 10) prefix = '0'; else prefix = ''; var subDiv = document.createElement('DIV'); subDiv.innerHTML = prefix + no; subDiv.onmouseover = highlightMonthYear; subDiv.onmouseout = highlightMonthYear; subDiv.onclick = selectMinute; subDiv.id = 'minuteDiv_' + prefix + no; subDiv.onselectstart = cancelCalendarEvent; div.appendChild(subDiv); if (currentYear && currentYear == no) { subDiv.style.color = selectBoxHighlightColor; activeSelectBoxYear = subDiv; } } return div; }
function highlightSelect() { if (this.className == 'selectBoxTime') { this.className = 'selectBoxTimeOver'; this.getElementsByTagName('IMG')[0].src = pathToImages() + 'down_time_over.gif'; } else if (this.className == 'selectBoxTimeOver') { this.className = 'selectBoxTime'; this.getElementsByTagName('IMG')[0].src = pathToImages() + 'down_time.gif'; } if (this.className == 'selectBox') { this.className = 'selectBoxOver'; this.getElementsByTagName('IMG')[0].src = pathToImages() + 'down_over.gif'; } else if (this.className == 'selectBoxOver') { this.className = 'selectBox'; this.getElementsByTagName('IMG')[0].src = pathToImages() + 'down.gif'; } }
function highlightArrow() { if (this.src.indexOf('over') >= 0) { if (this.src.indexOf('left') >= 0) this.src = pathToImages() + 'left.gif'; if (this.src.indexOf('right') >= 0) this.src = pathToImages() + 'right.gif'; } else { if (this.src.indexOf('left') >= 0) this.src = pathToImages() + 'left_over.gif'; if (this.src.indexOf('right') >= 0) this.src = pathToImages() + 'right_over.gif'; } }
function highlightClose() { if (this.src.indexOf('over') >= 0) { this.src = pathToImages() + 'close.gif'; } else { this.src = pathToImages() + 'close_over.gif'; } }
function closeCalendar() { gel('yearDropDown').style.display = 'none'; gel('monthDropDown').style.display = 'none'; gel('hourDropDown').style.display = 'none'; gel('minuteDropDown').style.display = 'none'; calendarDiv.style.display = 'none'; if (ifr) { ifr.style.display = 'none'; EIS_Hide_Frame(); } if (activeSelectBoxMonth) activeSelectBoxMonth.className = ''; if (activeSelectBoxYear) activeSelectBoxYear.className = ''; }
function writeTopBar() { var topBar = document.createElement('DIV'); topBar.className = 'topBar'; topBar.id = 'topBar'; calendarDiv.appendChild(topBar); var leftDiv = document.createElement('DIV'); leftDiv.style.marginRight = '1px'; var img = document.createElement('IMG'); img.src = pathToImages() + 'left.gif'; img.onmouseover = highlightArrow; img.onclick = switchMonth; img.onmouseout = highlightArrow; leftDiv.appendChild(img); topBar.appendChild(leftDiv); if (Opera) leftDiv.style.width = '16px'; var monthDiv = document.createElement('DIV'); monthDiv.id = 'monthSelect'; monthDiv.onmouseover = highlightSelect; monthDiv.onmouseout = highlightSelect; monthDiv.onclick = showMonthDropDown; var span = document.createElement('SPAN'); span.innerHTML = monthArray[currentMonth]; span.id = 'calendar_month_txt'; monthDiv.appendChild(span); var img = document.createElement('IMG'); img.src = pathToImages() + 'down.gif'; img.style.position = 'absolute'; img.style.right = '0px'; monthDiv.appendChild(img); monthDiv.className = 'selectBox'; if (Opera) { img.style.cssText = 'float:right;position:relative'; img.style.position = 'relative'; img.style.styleFloat = 'right'; } topBar.appendChild(monthDiv); var monthPicker = createMonthDiv(); monthPicker.style.left = '37px'; monthPicker.style.top = monthDiv.offsetTop + monthDiv.offsetHeight + 1 + 'px'; monthPicker.style.width = '65px'; monthPicker.id = 'monthDropDown'; calendarDiv.appendChild(monthPicker); var yearDiv = document.createElement('DIV'); yearDiv.id = 'yearSelect'; yearDiv.onmouseover = highlightSelect; yearDiv.onmouseout = highlightSelect; yearDiv.onclick = showYearDropDown; var span = document.createElement('SPAN'); span.innerHTML = currentYear; span.id = 'calendar_year_txt'; yearDiv.appendChild(span); topBar.appendChild(yearDiv); var img = document.createElement('IMG'); img.src = pathToImages() + 'down.gif'; img.style.position = 'absolute'; img.style.right = '0px'; yearDiv.appendChild(img); yearDiv.className = 'selectBox'; if (Opera) { yearDiv.style.width = '50px'; img.style.cssText = 'float:right'; img.style.position = 'relative'; img.style.styleFloat = 'right'; } var yearPicker = createYearDiv(); yearPicker.style.left = '113px'; yearPicker.style.top = monthDiv.offsetTop + monthDiv.offsetHeight + 1 + 'px'; yearPicker.style.width = '35px'; yearPicker.id = 'yearDropDown'; calendarDiv.appendChild(yearPicker); var rightDiv = document.createElement('DIV'); rightDiv.style.marginLeft = '1px'; var img = document.createElement('IMG'); img.src = pathToImages() + 'right.gif'; img.onclick = switchMonth; img.onmouseover = highlightArrow; img.onmouseout = highlightArrow; rightDiv.appendChild(img); if (Opera) rightDiv.style.width = '16px'; topBar.appendChild(rightDiv); var img = document.createElement('IMG'); img.src = pathToImages() + 'close.gif'; img.style.styleFloat = 'right'; img.onmouseover = highlightClose; img.onmouseout = highlightClose; img.onclick = closeCalendar; topBar.appendChild(img); if (!document.all) { img.style.position = 'absolute'; img.style.right = '2px'; } }
function writeCalendarContent() { var calendarContentDivExists = true; if (!calendarContentDiv) { calendarContentDiv = document.createElement('DIV'); calendarDiv.appendChild(calendarContentDiv); calendarContentDivExists = false; } currentMonth = currentMonth / 1; var d = new Date(); d.setFullYear(currentYear); d.setDate(1); d.setMonth(currentMonth); var dayStartOfMonth = d.getDay(); if (!weekStartsOnSunday) { if (dayStartOfMonth == 0) dayStartOfMonth = 7; dayStartOfMonth--; } gel('calendar_year_txt').innerHTML = currentYear; gel('calendar_month_txt').innerHTML = monthArray[currentMonth]; gel('calendar_hour_txt').innerHTML = currentHour; gel('calendar_minute_txt').innerHTML = currentMinute; var existingTable = calendarContentDiv.getElementsByTagName('TABLE'); if (existingTable.length > 0) { calendarContentDiv.removeChild(existingTable[0]); } var calTable = document.createElement('TABLE'); calTable.width = '100%'; calTable.cellSpacing = '0'; calendarContentDiv.appendChild(calTable); var calTBody = document.createElement('TBODY'); calTable.appendChild(calTBody); var row = calTBody.insertRow(-1); row.className = 'calendar_week_row'; if (showWeekNumber) { var cell = row.insertCell(-1); cell.innerHTML = weekString; cell.className = 'calendar_week_column'; cell.style.backgroundColor = selectBoxRolloverBgColor; cell.style.color = selectBoxTextColor; } for (var no = 0; no < dayArray.length; no++) { var cell = row.insertCell(-1); cell.innerHTML = dayArray[no]; } var row = calTBody.insertRow(-1); if (showWeekNumber) { var cell = row.insertCell(-1); cell.className = 'calendar_week_column'; cell.style.backgroundColor = selectBoxRolloverBgColor; cell.style.color = selectBoxTextColor; var week = getWeek(currentYear, currentMonth, 1); cell.innerHTML = week; } for (var no = 0; no < dayStartOfMonth; no++) { var cell = row.insertCell(-1); cell.innerHTML = '&nbsp;'; } var colCounter = dayStartOfMonth; var daysInMonth = daysInMonthArray[currentMonth]; if (daysInMonth == 28) { if (isLeapYear(currentYear)) daysInMonth = 29; } for (var no = 1; no <= daysInMonth; no++) { d.setDate(no - 1); if (colCounter > 0 && colCounter % 7 == 0) { var row = calTBody.insertRow(-1); if (showWeekNumber) { var cell = row.insertCell(-1); cell.className = 'calendar_week_column'; var week = getWeek(currentYear, currentMonth, no); cell.innerHTML = week; cell.style.backgroundColor = selectBoxRolloverBgColor; cell.style.color = selectBoxTextColor; } } var cell = row.insertCell(-1); if (currentYear == inputYear && currentMonth == inputMonth && no == inputDay) { cell.className = 'activeDay'; } cell.innerHTML = no; cell.onclick = pickDate; colCounter++; } if (!document.all) { if (calendarContentDiv.offsetHeight) gel('topBar').style.top = calendarContentDiv.offsetHeight + gel('timeBar').offsetHeight + gel('topBar').offsetHeight - 1 + 'px'; else { gel('topBar').style.top = ''; gel('topBar').style.bottom = '0px'; } } if (ifr) { if (!calendarContentDivExists) setTimeout('resizeIframe()', 350); else setTimeout('resizeIframe()', 10); } }
function resizeIframe() { ifr.style.width = calendarDiv.offsetWidth + 'px'; ifr.style.height = calendarDiv.offsetHeight + 'px'; }
function pickTodaysDate() { var d = new Date(); currentMonth = d.getMonth(); currentYear = d.getFullYear(); pickDate(false, d.getDate()); }
function pickDate(e, inputDay) { var month = currentMonth / 1 + 1; if (month < 10) month = '0' + month; var day; if (!inputDay && this) day = this.innerHTML; else day = inputDay; if (day / 1 < 10) day = '0' + day; if (returnFormat) { returnFormat = returnFormat.replace('dd', day); returnFormat = returnFormat.replace('mm', month); returnFormat = returnFormat.replace('yyyy', currentYear); returnFormat = returnFormat.replace('hh', currentHour); returnFormat = returnFormat.replace('ii', currentMinute); returnFormat = returnFormat.replace('d', day / 1); returnFormat = returnFormat.replace('m', month / 1); returnDateTo.value = returnFormat; try { returnDateTo.onchange(); } catch (e) { } } else { for (var no = 0; no < returnDateToYear.options.length; no++) { if (returnDateToYear.options[no].value == currentYear) { returnDateToYear.selectedIndex = no; break; } } for (var no = 0; no < returnDateToMonth.options.length; no++) { if (returnDateToMonth.options[no].value == parseInt(month)) { returnDateToMonth.selectedIndex = no; break; } } for (var no = 0; no < returnDateToDay.options.length; no++) { if (returnDateToDay.options[no].value == parseInt(day)) { returnDateToDay.selectedIndex = no; break; } } if (calendarDisplayTime) { for (var no = 0; no < returnDateToHour.options.length; no++) { if (returnDateToHour.options[no].value == parseInt(currentHour)) { returnDateToHour.selectedIndex = no; break; } } for (var no = 0; no < returnDateToMinute.options.length; no++) { if (returnDateToMinute.options[no].value == parseInt(currentMinute)) { returnDateToMinute.selectedIndex = no; break; } } } } closeCalendar(); }
function getWeek(year, month, day) { if (!weekStartsOnSunday) { day = (day / 1); } else { day = (day / 1) + 1; } year = year / 1; month = month / 1 + 1; var a = Math.floor((14 - (month)) / 12); var y = year + 4800 - a; var m = (month) + (12 * a) - 3; var jd = day + Math.floor(((153 * m) + 2) / 5) + (365 * y) + Math.floor(y / 4) - Math.floor(y / 100) + Math.floor(y / 400) - 32045; var d4 = (jd + 31741 - (jd % 7)) % 146097 % 36524 % 1461; var L = Math.floor(d4 / 1460); var d1 = ((d4 - L) % 365) + L; NumberOfWeek = Math.floor(d1 / 7) + 1; return NumberOfWeek; }
function writeTimeBar() { var timeBar = document.createElement('DIV'); timeBar.id = 'timeBar'; timeBar.className = 'timeBar'; var subDiv = document.createElement('DIV'); subDiv.innerHTML = 'Time:'; var hourDiv = document.createElement('DIV'); hourDiv.onmouseover = highlightSelect; hourDiv.onmouseout = highlightSelect; hourDiv.onclick = showHourDropDown; hourDiv.style.width = '30px'; var span = document.createElement('SPAN'); span.innerHTML = currentHour; span.id = 'calendar_hour_txt'; hourDiv.appendChild(span); timeBar.appendChild(hourDiv); var img = document.createElement('IMG'); img.src = pathToImages() + 'down_time.gif'; hourDiv.appendChild(img); hourDiv.className = 'selectBoxTime'; if (Opera) { hourDiv.style.width = '30px'; img.style.cssText = 'float:right'; img.style.position = 'relative'; img.style.styleFloat = 'right'; } var hourPicker = createHourDiv(); hourPicker.style.left = '130px'; hourPicker.style.width = '35px'; hourPicker.id = 'hourDropDown'; calendarDiv.appendChild(hourPicker); var minuteDiv = document.createElement('DIV'); minuteDiv.onmouseover = highlightSelect; minuteDiv.onmouseout = highlightSelect; minuteDiv.onclick = showMinuteDropDown; minuteDiv.style.width = '30px'; var span = document.createElement('SPAN'); span.innerHTML = currentMinute; span.id = 'calendar_minute_txt'; minuteDiv.appendChild(span); timeBar.appendChild(minuteDiv); var img = document.createElement('IMG'); img.src = pathToImages() + 'down_time.gif'; minuteDiv.appendChild(img); minuteDiv.className = 'selectBoxTime'; if (Opera) { minuteDiv.style.width = '30px'; img.style.cssText = 'float:right'; img.style.position = 'relative'; img.style.styleFloat = 'right'; } var minutePicker = createMinuteDiv(); minutePicker.style.left = '167px'; minutePicker.style.width = '35px'; minutePicker.id = 'minuteDropDown'; calendarDiv.appendChild(minutePicker); return timeBar; }
function writeBottomBar() { var d = new Date(); var bottomBar = document.createElement('DIV'); bottomBar.id = 'bottomBar'; bottomBar.style.cursor = 'pointer'; bottomBar.className = 'todaysDate'; var subDiv = document.createElement('DIV'); subDiv.onclick = pickTodaysDate; subDiv.id = 'todaysDateString'; subDiv.style.width = (calendarDiv.offsetWidth - 95) + 'px'; var day = d.getDay(); if (!weekStartsOnSunday) { if (day == 0) day = 7; day--; } var bottomString = todayStringFormat; bottomString = bottomString.replace('[monthString]', monthArrayShort[d.getMonth()]); bottomString = bottomString.replace('[day]', d.getDate()); bottomString = bottomString.replace('[year]', d.getFullYear()); bottomString = bottomString.replace('[dayString]', dayArray[day].toLowerCase()); bottomString = bottomString.replace('[UCFdayString]', dayArray[day]); bottomString = bottomString.replace('[todayString]', todayString); subDiv.innerHTML = todayString + ': ' + d.getDate() + '. ' + monthArrayShort[d.getMonth()] + ', ' + d.getFullYear(); subDiv.innerHTML = bottomString; bottomBar.appendChild(subDiv); var timeDiv = writeTimeBar(); bottomBar.appendChild(timeDiv); calendarDiv.appendChild(bottomBar); }
function getTopPos(inputObj) { var returnValue = inputObj.offsetTop + inputObj.offsetHeight; while ((inputObj = inputObj.offsetParent) != null) returnValue += inputObj.offsetTop; return returnValue + calendar_offsetTop; }
function getleftPos(inputObj) { var returnValue = inputObj.offsetLeft; while ((inputObj = inputObj.offsetParent) != null) returnValue += inputObj.offsetLeft; return returnValue + calendar_offsetLeft; }
function positionCalendar(inputObj) { calendarDiv.style.left = getleftPos(inputObj) + 'px'; calendarDiv.style.top = getTopPos(inputObj) + 'px'; if (ifr) { ifr.style.left = calendarDiv.style.left; ifr.style.top = calendarDiv.style.top; ifr2.style.left = calendarDiv.style.left; ifr2.style.top = calendarDiv.style.top; } }
function initCalendar() { if (MSIE) { ifr = document.createElement('IFRAME'); ifr.style.filter = 'alpha(opacity=0)'; ifr.style.position = 'absolute'; ifr.border = '0px'; ifr.style.border = '0px'; ifr.style.backgroundColor = '#FF0000'; ifr2 = document.createElement('IFRAME'); ifr2.style.position = 'absolute'; ifr2.border = '0px'; ifr2.style.border = '0px'; ifr2.style.height = '1px'; ifr2.style.width = '1px'; ifr2.src = AbsoluteRootPath + '/blank.html'; ifr.src = AbsoluteRootPath + '/blank.html'; document.body.appendChild(ifr2); document.body.appendChild(ifr); } calendarDiv = document.createElement('DIV'); calendarDiv.id = 'calendarDiv'; calendarDiv.style.zIndex = 100000; slideCalendarSelectBox(); document.body.appendChild(calendarDiv); writeBottomBar(); writeTopBar(); if (!currentYear) { var d = new Date(); currentMonth = d.getMonth(); currentYear = d.getFullYear(); } writeCalendarContent(); }
function setTimeProperties() { if (!calendarDisplayTime) { gel('timeBar').style.display = 'none'; gel('timeBar').style.visibility = 'hidden'; gel('todaysDateString').style.width = '100%'; } else { gel('timeBar').style.display = 'block'; gel('timeBar').style.visibility = 'visible'; gel('hourDropDown').style.top = gel('calendar_minute_txt').parentNode.offsetHeight + calendarContentDiv.offsetHeight + gel('topBar').offsetHeight + 'px'; gel('minuteDropDown').style.top = gel('calendar_minute_txt').parentNode.offsetHeight + calendarContentDiv.offsetHeight + gel('topBar').offsetHeight + 'px'; gel('minuteDropDown').style.right = '50px'; gel('hourDropDown').style.right = '50px'; gel('todaysDateString').style.width = '115px'; } }
function calendarSortItems(a, b) { return a / 1 - b / 1; }
function displayCalendar(inputField, format, buttonObj, displayTime, timeInput) { if (displayTime) calendarDisplayTime = true; else calendarDisplayTime = false; var setToday = false; if (inputField.value.length > 0) { if (!format.match(/^[0-9]*?$/gi)) { var items = inputField.value.split(/[^0-9]/gi); var positionArray = new Array(); positionArray['m'] = format.indexOf('mm'); if (positionArray['m'] == -1) positionArray['m'] = format.indexOf('m'); positionArray['d'] = format.indexOf('dd'); if (positionArray['d'] == -1) positionArray['d'] = format.indexOf('d'); positionArray['y'] = format.indexOf('yyyy'); positionArray['h'] = format.indexOf('hh'); positionArray['i'] = format.indexOf('ii'); var positionArrayNumeric = Array(); positionArrayNumeric[0] = positionArray['m']; positionArrayNumeric[1] = positionArray['d']; positionArrayNumeric[2] = positionArray['y']; positionArrayNumeric[3] = positionArray['h']; positionArrayNumeric[4] = positionArray['i']; positionArrayNumeric = positionArrayNumeric.sort(calendarSortItems); var itemIndex = -1; currentHour = '00'; currentMinute = '00'; for (var no = 0; no < positionArrayNumeric.length; no++) { if (positionArrayNumeric[no] == -1) continue; itemIndex++; if (positionArrayNumeric[no] == positionArray['m']) { currentMonth = items[itemIndex] - 1; continue; } if (positionArrayNumeric[no] == positionArray['y']) { currentYear = items[itemIndex]; continue; } if (positionArrayNumeric[no] == positionArray['d']) { tmpDay = items[itemIndex]; continue; } if (positionArrayNumeric[no] == positionArray['h']) { currentHour = items[itemIndex]; continue; } if (positionArrayNumeric[no] == positionArray['i']) { currentMinute = items[itemIndex]; continue; } } currentMonth = currentMonth / 1; tmpDay = tmpDay / 1; } else { var monthPos = format.indexOf('mm'); currentMonth = inputField.value.substr(monthPos, 2) / 1 - 1; var yearPos = format.indexOf('yyyy'); currentYear = inputField.value.substr(yearPos, 4); var dayPos = format.indexOf('dd'); tmpDay = inputField.value.substr(dayPos, 2); var hourPos = format.indexOf('hh'); if (hourPos >= 0) { tmpHour = inputField.value.substr(hourPos, 2); currentHour = tmpHour; } else { currentHour = '00'; } var minutePos = format.indexOf('ii'); if (minutePos >= 0) { tmpMinute = inputField.value.substr(minutePos, 2); currentMinute = tmpMinute; } else { currentMinute = '00'; } } } else { setToday = true; } if (currentMonth == undefined || isNaN(currentMonth) || currentYear == undefined || isNaN(currentYear) || currentHour == undefined || isNaN(currentHour) || currentMinute == undefined || isNaN(currentMinute) || tmpDay == undefined || isNaN(tmpDay)) { setToday = true; } if (setToday) { var d = new Date(); currentMonth = d.getMonth(); currentYear = d.getFullYear(); currentHour = '08'; currentMinute = '00'; tmpDay = d.getDate(); } inputYear = currentYear; inputMonth = currentMonth; inputDay = tmpDay / 1; if (!calendarDiv) { initCalendar(); } else { if (calendarDiv.style.display == 'block') { closeCalendar(); return false; } writeCalendarContent(); } returnFormat = format; returnDateTo = inputField; positionCalendar(buttonObj); calendarDiv.style.visibility = 'visible'; calendarDiv.style.display = 'block'; if (ifr) { ifr.style.display = ''; ifr.style.height = '140px'; ifr.style.width = '195px'; ifr2.style.display = ''; ifr2.style.height = '140px'; ifr2.style.width = '195px'; } setTimeProperties(); updateYearDiv(); updateMonthDiv(); updateMinuteDiv(); updateHourDiv(); }