|
|
|
|
var turnOffYearSpan = false; // true = Only show This Year and Next, false = show +/- 5 years
|
|
|
|
|
var weekStartsOnSunday = false; // true = Start the week on Sunday, false = start the week on Monday
|
|
|
|
|
var showWeekNumber = true; // true = show week number, false = do not show week number
|
|
|
|
|
|
|
|
|
|
var languageCode = 'pt-br'; // Possible values: en,ge,no,nl,es,pt-br,fr
|
|
|
|
|
// en = english, ge = german, no = norwegian,nl = dutch, es = spanish, pt-br = portuguese, fr = french, da = danish, hu = hungarian(Use UTF-8 doctype for hungarian)
|
|
|
|
|
|
|
|
|
|
var calendar_display_time = true;
|
|
|
|
|
|
|
|
|
|
// Format of current day at the bottom of the calendar
|
|
|
|
|
// [todayString] = the value of todayString
|
|
|
|
|
// [dayString] = day of week (examle: mon, tue, wed...)
|
|
|
|
|
// [UCFdayString] = day of week (examle: Mon, Tue, Wed...) ( First letter in uppercase)
|
|
|
|
|
// [day] = Day of month, 1..31
|
|
|
|
|
// [monthString] = Name of current month
|
|
|
|
|
// [year] = Current year
|
|
|
|
|
var todayStringFormat = '[todayString] [UCFdayString]. [day]. [monthString] [year]';
|
|
|
|
|
var pathToImages = '../admin/images/'; // Relative to your HTML file
|
|
|
|
|
|
|
|
|
|
var speedOfSelectBoxSliding = 200; // Milliseconds between changing year and hour when holding mouse over "-" and "+" - lower value = faster
|
|
|
|
|
var intervalSelectBox_minutes = 5; // Minute select box - interval between each option (5 = default)
|
|
|
|
|
|
|
|
|
|
var calendar_offsetTop = 0; // Offset - calendar placement - You probably have to modify this value if you're not using a strict doctype
|
|
|
|
|
var calendar_offsetLeft = 0; // Offset - calendar placement - You probably have to modify this value if you're not using a strict doctype
|
|
|
|
|
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": /* English */
|
|
|
|
|
var monthArray = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'];
|
|
|
|
|
var monthArrayShort = ['Jan', 'Fev', 'Mar', 'Abr', 'Mar', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'];
|
|
|
|
|
var dayArray = ['Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab', 'Dom'];
|
|
|
|
|
var weekString = 'Mês';
|
|
|
|
|
var todayString = '';
|
|
|
|
|
break;
|
|
|
|
|
case "ge": /* German */
|
|
|
|
|
var monthArray = ['Januar', 'Februar', 'M<EFBFBD>rz', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'];
|
|
|
|
|
var monthArrayShort = ['Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'];
|
|
|
|
|
var dayArray = ['Mon', 'Die', 'Mit', 'Don', 'Fre', 'Sam', 'Son'];
|
|
|
|
|
var weekString = 'Woche';
|
|
|
|
|
var todayString = 'Heute';
|
|
|
|
|
break;
|
|
|
|
|
case "no": /* Norwegian */
|
|
|
|
|
var monthArray = ['Januar', 'Februar', 'Mars', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Desember'];
|
|
|
|
|
var monthArrayShort = ['Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'];
|
|
|
|
|
var dayArray = ['Man', 'Tir', 'Ons', 'Tor', 'Fre', 'Lør', 'Søn'];
|
|
|
|
|
var weekString = 'Uke';
|
|
|
|
|
var todayString = 'Dagen i dag er';
|
|
|
|
|
break;
|
|
|
|
|
case "nl": /* Dutch */
|
|
|
|
|
var monthArray = ['Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December'];
|
|
|
|
|
var monthArrayShort = ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'];
|
|
|
|
|
var dayArray = ['Ma', 'Di', 'Wo', 'Do', 'Vr', 'Za', 'Zo'];
|
|
|
|
|
var weekString = 'Week';
|
|
|
|
|
var todayString = 'Vandaag';
|
|
|
|
|
break;
|
|
|
|
|
case "es": /* Spanish */
|
|
|
|
|
var monthArray = ['Enero', 'Febrero', 'Marzo', 'April', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'];
|
|
|
|
|
var monthArrayShort = ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'];
|
|
|
|
|
var dayArray = ['Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab', 'Dom'];
|
|
|
|
|
var weekString = 'Semana';
|
|
|
|
|
var todayString = 'Hoy es';
|
|
|
|
|
break;
|
|
|
|
|
case "pt-br": /* Brazilian portuguese (pt-br) */
|
|
|
|
|
var monthArray = ['Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio', 'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'];
|
|
|
|
|
var monthArrayShort = ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun', 'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'];
|
|
|
|
|
var dayArray = ['Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb', 'Dom'];
|
|
|
|
|
var weekString = 'Sem.';
|
|
|
|
|
var todayString = 'Hoje é';
|
|
|
|
|
break;
|
|
|
|
|
case "fr": /* French */
|
|
|
|
|
var monthArray = ['Janvier', 'F<EFBFBD>vrier', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Ao<EFBFBD>t', 'Septembre', 'Octobre', 'Novembre', 'D<EFBFBD>cembre'];
|
|
|
|
|
var monthArrayShort = ['Jan', 'Fev', 'Mar', 'Avr', 'Mai', 'Jun', 'Jul', 'Aou', 'Sep', 'Oct', 'Nov', 'Dec'];
|
|
|
|
|
var dayArray = ['Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam', 'Dim'];
|
|
|
|
|
var weekString = 'Sem';
|
|
|
|
|
var todayString = "Aujourd'hui";
|
|
|
|
|
break;
|
|
|
|
|
case "da": /*Danish*/
|
|
|
|
|
var monthArray = ['januar', 'februar', 'marts', 'april', 'maj', 'juni', 'juli', 'august', 'september', 'oktober', 'november', 'december'];
|
|
|
|
|
var monthArrayShort = ['jan', 'feb', 'mar', 'apr', 'maj', 'jun', 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'];
|
|
|
|
|
var dayArray = ['man', 'tirs', 'ons', 'tors', 'fre', 'lør', 'søn'];
|
|
|
|
|
var weekString = 'Uge';
|
|
|
|
|
var todayString = 'I dag er den';
|
|
|
|
|
break;
|
|
|
|
|
case "hu": /* Hungarian - Remember to use UTF-8 encoding, i.e. the <meta> tag */
|
|
|
|
|
var monthArray = ['Január', 'Február', 'Március', '<EFBFBD>?prilis', 'Május', 'Június', 'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'];
|
|
|
|
|
var monthArrayShort = ['Jan', 'Feb', 'Márc', '<EFBFBD>?pr', 'Máj', 'Jún', 'Júl', 'Aug', 'Szep', 'Okt', 'Nov', 'Dec'];
|
|
|
|
|
var dayArray = ['Hé', 'Ke', 'Sze', 'Cs', 'Pé', 'Szo', 'Vas'];
|
|
|
|
|
var weekString = 'Hét';
|
|
|
|
|
var todayString = 'Mai nap';
|
|
|
|
|
break;
|
|
|
|
|
case "it": /* Italian*/
|
|
|
|
|
var monthArray = ['Gennaio', 'Febbraio', 'Marzo', 'Aprile', 'Maggio', 'Giugno', 'Luglio', 'Agosto', 'Settembre', 'Ottobre', 'Novembre', 'Dicembre'];
|
|
|
|
|
var monthArrayShort = ['Gen', 'Feb', 'Mar', 'Apr', 'Mag', 'Giu', 'Lugl', 'Ago', 'Set', 'Ott', 'Nov', 'Dic'];
|
|
|
|
|
var dayArray = ['Lun', ';Mar', 'Mer', 'Gio', 'Ven', 'Sab', 'Dom'];
|
|
|
|
|
var weekString = 'Settimana';
|
|
|
|
|
var todayString = 'Oggi è il';
|
|
|
|
|
break;
|
|
|
|
|
case "sv": /* Swedish */
|
|
|
|
|
var monthArray = ['Januari', 'Februari', 'Mars', 'April', 'Maj', 'Juni', 'Juli', 'Augusti', 'September', 'Oktober', 'November', 'December'];
|
|
|
|
|
var monthArrayShort = ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'];
|
|
|
|
|
var dayArray = ['Mån', 'Tis', 'Ons', 'Tor', 'Fre', 'Lör', 'Sön'];
|
|
|
|
|
var weekString = 'Vecka';
|
|
|
|
|
var todayString = 'Idag är det den';
|
|
|
|
|
break;
|
|
|
|
|
case "cz": /* Czech */
|
|
|
|
|
var monthArray = ['leden', 'únor', 'březen', 'duben', 'květen', 'červen', 'červenec', 'srpen', 'září', 'říjen', 'listopad', 'prosinec'];
|
|
|
|
|
var monthArrayShort = ['led', 'ún', 'bř', 'dub', 'kvě', 'čer', 'čer-ec', 'srp', 'zář', 'říj', 'list', 'pros'];
|
|
|
|
|
var dayArray = ['Pon', 'Út', 'St', 'Čt', 'Pá', 'So', 'Ne'];
|
|
|
|
|
var weekString = 'týden';
|
|
|
|
|
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 iframeObj = false;
|
|
|
|
|
//// fix for EI frame problem on time dropdowns 09/30/2006
|
|
|
|
|
var iframeObj2 = false;
|
|
|
|
|
function EIS_FIX_EI1(where2fixit)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
if (!iframeObj2)
|
|
|
|
|
return;
|
|
|
|
|
iframeObj2.style.display = 'block';
|
|
|
|
|
iframeObj2.style.height = document.getElementById(where2fixit).offsetHeight + 1;
|
|
|
|
|
iframeObj2.style.width = document.getElementById(where2fixit).offsetWidth;
|
|
|
|
|
iframeObj2.style.left = getleftPos(document.getElementById(where2fixit)) + 1 - calendar_offsetLeft;
|
|
|
|
|
iframeObj2.style.top = getTopPos(document.getElementById(where2fixit)) - document.getElementById(where2fixit).offsetHeight - calendar_offsetTop;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function EIS_Hide_Frame()
|
|
|
|
|
{
|
|
|
|
|
if (iframeObj2)
|
|
|
|
|
iframeObj2.style.display = 'none';
|
|
|
|
|
}
|
|
|
|
|
//// fix for EI frame problem on time dropdowns 09/30/2006
|
|
|
|
|
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'; // Highlight color of select boxes
|
|
|
|
|
var selectBoxRolloverBgColor = '#E2EBED'; // Background color on drop down lists(rollover)
|
|
|
|
|
|
|
|
|
|
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 (document.getElementById('monthDropDown').style.display == 'block') {
|
|
|
|
|
document.getElementById('monthDropDown').style.display = 'none';
|
|
|
|
|
//// fix for EI frame problem on time dropdowns 09/30/2006
|
|
|
|
|
EIS_Hide_Frame();
|
|
|
|
|
} else {
|
|
|
|
|
document.getElementById('monthDropDown').style.display = 'block';
|
|
|
|
|
document.getElementById('yearDropDown').style.display = 'none';
|
|
|
|
|
document.getElementById('hourDropDown').style.display = 'none';
|
|
|
|
|
document.getElementById('minuteDropDown').style.display = 'none';
|
|
|
|
|
if (MSIE)
|
|
|
|
|
{
|
|
|
|
|
EIS_FIX_EI1('monthDropDown')
|
|
|
|
|
}
|
|
|
|
|
//// fix for EI frame problem on time dropdowns 09/30/2006
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function showYearDropDown()
|
|
|
|
|
{
|
|
|
|
|
if (document.getElementById('yearDropDown').style.display == 'block') {
|
|
|
|
|
document.getElementById('yearDropDown').style.display = 'none';
|
|
|
|
|
//// fix for EI frame problem on time dropdowns 09/30/2006
|
|
|
|
|
EIS_Hide_Frame();
|
|
|
|
|
} else {
|
|
|
|
|
document.getElementById('yearDropDown').style.display = 'block';
|
|
|
|
|
document.getElementById('monthDropDown').style.display = 'none';
|
|
|
|
|
document.getElementById('hourDropDown').style.display = 'none';
|
|
|
|
|
document.getElementById('minuteDropDown').style.display = 'none';
|
|
|
|
|
if (MSIE)
|
|
|
|
|
{
|
|
|
|
|
EIS_FIX_EI1('yearDropDown')
|
|
|
|
|
}
|
|
|
|
|
//// fix for EI frame problem on time dropdowns 09/30/2006
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
function showHourDropDown()
|
|
|
|
|
{
|
|
|
|
|
if (document.getElementById('hourDropDown').style.display == 'block') {
|
|
|
|
|
document.getElementById('hourDropDown').style.display = 'none';
|
|
|
|
|
//// fix for EI frame problem on time dropdowns 09/30/2006
|
|
|
|
|
EIS_Hide_Frame();
|
|
|
|
|
} else {
|
|
|
|
|
document.getElementById('hourDropDown').style.display = 'block';
|
|
|
|
|
document.getElementById('monthDropDown').style.display = 'none';
|
|
|
|
|
document.getElementById('yearDropDown').style.display = 'none';
|
|
|
|
|
document.getElementById('minuteDropDown').style.display = 'none';
|
|
|
|
|
if (MSIE)
|
|
|
|
|
{
|
|
|
|
|
EIS_FIX_EI1('hourDropDown')
|
|
|
|
|
}
|
|
|
|
|
//// fix for EI frame problem on time dropdowns 09/30/2006
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
function showMinuteDropDown()
|
|
|
|
|
{
|
|
|
|
|
if (document.getElementById('minuteDropDown').style.display == 'block') {
|
|
|
|
|
document.getElementById('minuteDropDown').style.display = 'none';
|
|
|
|
|
//// fix for EI frame problem on time dropdowns 09/30/2006
|
|
|
|
|
EIS_Hide_Frame();
|
|
|
|
|
} else {
|
|
|
|
|
document.getElementById('minuteDropDown').style.display = 'block';
|
|
|
|
|
document.getElementById('monthDropDown').style.display = 'none';
|
|
|
|
|
document.getElementById('yearDropDown').style.display = 'none';
|
|
|
|
|
document.getElementById('hourDropDown').style.display = 'none';
|
|
|
|
|
if (MSIE)
|
|
|
|
|
{
|
|
|
|
|
EIS_FIX_EI1('minuteDropDown')
|
|
|
|
|
}
|
|
|
|
|
//// fix for EI frame problem on time dropdowns 09/30/2006
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function selectMonth()
|
|
|
|
|
{
|
|
|
|
|
document.getElementById('calendar_month_txt').innerHTML = this.innerHTML
|
|
|
|
|
currentMonth = this.id.replace(/[^\d]/g, '');
|
|
|
|
|
|
|
|
|
|
document.getElementById('monthDropDown').style.display = 'none';
|
|
|
|
|
//// fix for EI frame problem on time dropdowns 09/30/2006
|
|
|
|
|
EIS_Hide_Frame();
|
|
|
|
|
for (var no = 0; no < monthArray.length; no++) {
|
|
|
|
|
document.getElementById('monthDiv_' + no).style.color = '';
|
|
|
|
|
}
|
|
|
|
|
this.style.color = selectBoxHighlightColor;
|
|
|
|
|
activeSelectBoxMonth = this;
|
|
|
|
|
writeCalendarContent();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function selectHour()
|
|
|
|
|
{
|
|
|
|
|
document.getElementById('calendar_hour_txt').innerHTML = this.innerHTML
|
|
|
|
|
currentHour = this.innerHTML.replace(/[^\d]/g, '');
|
|
|
|
|
document.getElementById('hourDropDown').style.display = 'none';
|
|
|
|
|
//// fix for EI frame problem on time dropdowns 09/30/2006
|
|
|
|
|
EIS_Hide_Frame();
|
|
|
|
|
if (activeSelectBoxHour) {
|
|
|
|
|
activeSelectBoxHour.style.color = '';
|
|
|
|
|
}
|
|
|
|
|
activeSelectBoxHour = this;
|
|
|
|
|
this.style.color = selectBoxHighlightColor;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function selectMinute()
|
|
|
|
|
{
|
|
|
|
|
document.getElementById('calendar_minute_txt').innerHTML = this.innerHTML
|
|
|
|
|
currentMinute = this.innerHTML.replace(/[^\d]/g, '');
|
|
|
|
|
document.getElementById('minuteDropDown').style.display = 'none';
|
|
|
|
|
//// fix for EI frame problem on time dropdowns 09/30/2006
|
|
|
|
|
EIS_Hide_Frame();
|
|
|
|
|
if (activeSelectBoxMinute) {
|
|
|
|
|
activeSelectBoxMinute.style.color = '';
|
|
|
|
|
}
|
|
|
|
|
activeSelectBoxMinute = this;
|
|
|
|
|
this.style.color = selectBoxHighlightColor;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function selectYear()
|
|
|
|
|
{
|
|
|
|
|
document.getElementById('calendar_year_txt').innerHTML = this.innerHTML
|
|
|
|
|
currentYear = this.innerHTML.replace(/[^\d]/g, '');
|
|
|
|
|
document.getElementById('yearDropDown').style.display = 'none';
|
|
|
|
|
//// fix for EI frame problem on time dropdowns 09/30/2006
|
|
|
|
|
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 (document.getElementById('yearDiv' + currentYear)) {
|
|
|
|
|
activeSelectBoxYear = document.getElementById('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 (document.getElementById('hourDiv' + currentHour)) {
|
|
|
|
|
activeSelectBoxHour = document.getElementById('hourDiv' + currentHour);
|
|
|
|
|
activeSelectBoxHour.style.color = selectBoxHighlightColor;
|
|
|
|
|
;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function updateYearDiv()
|
|
|
|
|
{
|
|
|
|
|
var yearSpan = 5;
|
|
|
|
|
if (turnOffYearSpan) {
|
|
|
|
|
yearSpan = 0;
|
|
|
|
|
}
|
|
|
|
|
var div = document.getElementById('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++) {
|
|
|
|
|
document.getElementById('monthDiv_' + no).style.color = '';
|
|
|
|
|
}
|
|
|
|
|
document.getElementById('monthDiv_' + currentMonth).style.color = selectBoxHighlightColor;
|
|
|
|
|
activeSelectBoxMonth = document.getElementById('monthDiv_' + currentMonth);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function updateHourDiv()
|
|
|
|
|
{
|
|
|
|
|
var div = document.getElementById('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';
|
|
|
|
|
|
|
|
|
|
document.getElementById('minuteDiv_' + prefix + no).style.color = '';
|
|
|
|
|
}
|
|
|
|
|
if (document.getElementById('minuteDiv_' + currentMinute)) {
|
|
|
|
|
document.getElementById('minuteDiv_' + currentMinute).style.color = selectBoxHighlightColor;
|
|
|
|
|
activeSelectBoxMinute = document.getElementById('minuteDiv_' + currentMinute);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function createYearDiv()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
if (!document.getElementById('yearDropDown')) {
|
|
|
|
|
var div = document.createElement('DIV');
|
|
|
|
|
div.className = 'monthYearPicker';
|
|
|
|
|
} else {
|
|
|
|
|
var div = document.getElementById('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 = ' - ';
|
|
|
|
|
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 = ' + ';
|
|
|
|
|
subDiv.onclick = changeSelectBoxYear;
|
|
|
|
|
subDiv.onmouseover = highlightMonthYear;
|
|
|
|
|
subDiv.onmouseout = function () {
|
|
|
|
|
selectBoxMovementInProgress = false;
|
|
|
|
|
};
|
|
|
|
|
subDiv.onselectstart = cancelCalendarEvent;
|
|
|
|
|
div.appendChild(subDiv);
|
|
|
|
|
}
|
|
|
|
|
return div;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* This function creates the hour div at the bottom bar */
|
|
|
|
|
|
|
|
|
|
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 (!document.getElementById('hourDropDown')) {
|
|
|
|
|
var div = document.createElement('DIV');
|
|
|
|
|
div.className = 'monthYearPicker';
|
|
|
|
|
} else {
|
|
|
|
|
var div = document.getElementById('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 = ' - ';
|
|
|
|
|
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 = ' + ';
|
|
|
|
|
subDiv.onclick = changeSelectBoxHour;
|
|
|
|
|
subDiv.onmouseover = highlightMonthYear;
|
|
|
|
|
subDiv.onmouseout = function () {
|
|
|
|
|
selectBoxMovementInProgress = false;
|
|
|
|
|
};
|
|
|
|
|
subDiv.onselectstart = cancelCalendarEvent;
|
|
|
|
|
div.appendChild(subDiv);
|
|
|
|
|
|
|
|
|
|
return div;
|
|
|
|
|
}
|
|
|
|
|
/* This function creates the minute div at the bottom bar */
|
|
|
|
|
|
|
|
|
|
function createMinuteDiv()
|
|
|
|
|
{
|
|
|
|
|
if (!document.getElementById('minuteDropDown')) {
|
|
|
|
|
var div = document.createElement('DIV');
|
|
|
|
|
div.className = 'monthYearPicker';
|
|
|
|
|
} else {
|
|
|
|
|
var div = document.getElementById('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() {
|
|
|
|
|
|
|
|
|
|
document.getElementById('yearDropDown').style.display = 'none';
|
|
|
|
|
document.getElementById('monthDropDown').style.display = 'none';
|
|
|
|
|
document.getElementById('hourDropDown').style.display = 'none';
|
|
|
|
|
document.getElementById('minuteDropDown').style.display = 'none';
|
|
|
|
|
|
|
|
|
|
calendarDiv.style.display = 'none';
|
|
|
|
|
if (iframeObj) {
|
|
|
|
|
iframeObj.style.display = 'none';
|
|
|
|
|
//// //// fix for EI frame problem on time dropdowns 09/30/2006
|
|
|
|
|
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);
|
|
|
|
|
|
|
|
|
|
// Left arrow
|
|
|
|
|
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';
|
|
|
|
|
|
|
|
|
|
// Right arrow
|
|
|
|
|
var rightDiv = document.createElement('DIV');
|
|
|
|
|
rightDiv.style.marginRight = '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);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Month selector
|
|
|
|
|
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 = '60px';
|
|
|
|
|
monthPicker.id = 'monthDropDown';
|
|
|
|
|
|
|
|
|
|
calendarDiv.appendChild(monthPicker);
|
|
|
|
|
|
|
|
|
|
// Year selector
|
|
|
|
|
var yearDiv = document.createElement('DIV');
|
|
|
|
|
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';
|
|
|
|
|
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 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--;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
document.getElementById('calendar_year_txt').innerHTML = currentYear;
|
|
|
|
|
document.getElementById('calendar_month_txt').innerHTML = monthArray[currentMonth];
|
|
|
|
|
document.getElementById('calendar_hour_txt').innerHTML = currentHour / 1 > 9 ? currentHour : '0' + currentHour;
|
|
|
|
|
document.getElementById('calendar_minute_txt').innerHTML = currentMinute / 1 > 9 ? currentMinute : '0' + 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;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
var week = getWeek(currentYear, currentMonth, 1);
|
|
|
|
|
cell.innerHTML = week; // Week
|
|
|
|
|
}
|
|
|
|
|
for (var no = 0; no < dayStartOfMonth; no++) {
|
|
|
|
|
var cell = row.insertCell(-1);
|
|
|
|
|
cell.innerHTML = ' ';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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; // Week
|
|
|
|
|
cell.style.backgroundColor = selectBoxRolloverBgColor;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
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)
|
|
|
|
|
document.getElementById('topBar').style.top = calendarContentDiv.offsetHeight + document.getElementById('timeBar').offsetHeight + document.getElementById('topBar').offsetHeight - 1 + 'px';
|
|
|
|
|
else {
|
|
|
|
|
document.getElementById('topBar').style.top = '';
|
|
|
|
|
document.getElementById('topBar').style.bottom = '0px';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (iframeObj) {
|
|
|
|
|
if (!calendarContentDivExists)
|
|
|
|
|
setTimeout('resizeIframe()', 350);
|
|
|
|
|
else
|
|
|
|
|
setTimeout('resizeIframe()', 10);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function resizeIframe()
|
|
|
|
|
{
|
|
|
|
|
iframeObj.style.width = calendarDiv.offsetWidth + 'px';
|
|
|
|
|
iframeObj.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 == parseFloat(month)) {
|
|
|
|
|
returnDateToMonth.selectedIndex = no;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
for (var no = 0; no < returnDateToDay.options.length; no++) {
|
|
|
|
|
if (returnDateToDay.options[no].value == parseFloat(day)) {
|
|
|
|
|
returnDateToDay.selectedIndex = no;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (calendarDisplayTime) {
|
|
|
|
|
for (var no = 0; no < returnDateToHour.options.length; no++) {
|
|
|
|
|
if (returnDateToHour.options[no].value == parseFloat(currentHour)) {
|
|
|
|
|
returnDateToHour.selectedIndex = no;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
for (var no = 0; no < returnDateToMinute.options.length; no++) {
|
|
|
|
|
if (returnDateToMinute.options[no].value == parseFloat(currentMinute)) {
|
|
|
|
|
returnDateToMinute.selectedIndex = no;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
closeCalendar();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// This function is from http://www.codeproject.com/csharp/gregorianwknum.asp
|
|
|
|
|
// Only changed the month add
|
|
|
|
|
function getWeek(year, month, day) {
|
|
|
|
|
if (!weekStartsOnSunday) {
|
|
|
|
|
day = (day / 1);
|
|
|
|
|
} else {
|
|
|
|
|
day = (day / 1) + 1;
|
|
|
|
|
}
|
|
|
|
|
year = year / 1;
|
|
|
|
|
month = month / 1 + 1; //use 1-12
|
|
|
|
|
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; // (gregorian calendar)
|
|
|
|
|
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:';
|
|
|
|
|
|
|
|
|
|
// hour selector
|
|
|
|
|
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.top = monthDiv.offsetTop + monthDiv.offsetHeight + 1 + 'px';
|
|
|
|
|
hourPicker.style.width = '35px';
|
|
|
|
|
hourPicker.id = 'hourDropDown';
|
|
|
|
|
calendarDiv.appendChild(hourPicker);
|
|
|
|
|
|
|
|
|
|
// Add Minute picker
|
|
|
|
|
|
|
|
|
|
// Year selector
|
|
|
|
|
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.top = monthDiv.offsetTop + monthDiv.offsetHeight + 1 + 'px';
|
|
|
|
|
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 todayStringFormat = '[todayString] [dayString] [day] [monthString] [year]'; ;;
|
|
|
|
|
|
|
|
|
|
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 (iframeObj) {
|
|
|
|
|
iframeObj.style.left = calendarDiv.style.left;
|
|
|
|
|
iframeObj.style.top = calendarDiv.style.top;
|
|
|
|
|
//// fix for EI frame problem on time dropdowns 09/30/2006
|
|
|
|
|
iframeObj2.style.left = calendarDiv.style.left;
|
|
|
|
|
iframeObj2.style.top = calendarDiv.style.top;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function initCalendar()
|
|
|
|
|
{
|
|
|
|
|
if (MSIE) {
|
|
|
|
|
iframeObj = document.createElement('IFRAME');
|
|
|
|
|
iframeObj.style.filter = 'alpha(opacity=0)';
|
|
|
|
|
iframeObj.style.position = 'absolute';
|
|
|
|
|
iframeObj.border = '0px';
|
|
|
|
|
iframeObj.style.border = '0px';
|
|
|
|
|
iframeObj.style.backgroundColor = '#FF0000';
|
|
|
|
|
//// fix for EI frame problem on time dropdowns 09/30/2006
|
|
|
|
|
iframeObj2 = document.createElement('IFRAME');
|
|
|
|
|
iframeObj2.style.position = 'absolute';
|
|
|
|
|
iframeObj2.border = '0px';
|
|
|
|
|
iframeObj2.style.border = '0px';
|
|
|
|
|
iframeObj2.style.height = '1px';
|
|
|
|
|
iframeObj2.style.width = '1px';
|
|
|
|
|
//// fix for EI frame problem on time dropdowns 09/30/2006
|
|
|
|
|
// Added fixed for HTTPS
|
|
|
|
|
iframeObj2.src = 'blank.html';
|
|
|
|
|
iframeObj.src = 'blank.html';
|
|
|
|
|
document.body.appendChild(iframeObj2); // gfb move this down AFTER the .src is set
|
|
|
|
|
document.body.appendChild(iframeObj);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
calendarDiv = document.createElement('DIV');
|
|
|
|
|
calendarDiv.id = 'calendarDiv';
|
|
|
|
|
calendarDiv.style.zIndex = 1000;
|
|
|
|
|
slideCalendarSelectBox();
|
|
|
|
|
|
|
|
|
|
document.body.appendChild(calendarDiv);
|
|
|
|
|
writeBottomBar();
|
|
|
|
|
writeTopBar();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!currentYear) {
|
|
|
|
|
var d = new Date();
|
|
|
|
|
currentMonth = d.getMonth();
|
|
|
|
|
currentYear = d.getFullYear();
|
|
|
|
|
}
|
|
|
|
|
writeCalendarContent();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function setTimeProperties()
|
|
|
|
|
{
|
|
|
|
|
if (!calendarDisplayTime) {
|
|
|
|
|
document.getElementById('timeBar').style.display = 'none';
|
|
|
|
|
document.getElementById('timeBar').style.visibility = 'hidden';
|
|
|
|
|
document.getElementById('todaysDateString').style.width = '100%';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
document.getElementById('timeBar').style.display = 'block';
|
|
|
|
|
document.getElementById('timeBar').style.visibility = 'visible';
|
|
|
|
|
document.getElementById('hourDropDown').style.top = document.getElementById('calendar_minute_txt').parentNode.offsetHeight + calendarContentDiv.offsetHeight + document.getElementById('topBar').offsetHeight + 'px';
|
|
|
|
|
document.getElementById('minuteDropDown').style.top = document.getElementById('calendar_minute_txt').parentNode.offsetHeight + calendarContentDiv.offsetHeight + document.getElementById('topBar').offsetHeight + 'px';
|
|
|
|
|
document.getElementById('minuteDropDown').style.right = '50px';
|
|
|
|
|
document.getElementById('hourDropDown').style.right = '50px';
|
|
|
|
|
document.getElementById('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;
|
|
|
|
|
|
|
|
|
|
if (inputField.value.length > 6) { //dates must have at least 6 digits...
|
|
|
|
|
if (!inputField.value.match(/^[0-9]*?$/gi)) {
|
|
|
|
|
|
|
|
|
|
var items = inputField.value.split(/[^0-9]/gi);
|
|
|
|
|
var positionArray = new Object();
|
|
|
|
|
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');
|
|
|
|
|
|
|
|
|
|
this.initialHour = '00';
|
|
|
|
|
this.initialMinute = '00';
|
|
|
|
|
var elements = ['y', 'm', 'd', 'h', 'i'];
|
|
|
|
|
var properties = ['currentYear', 'currentMonth', 'inputDay', 'currentHour', 'currentMinute'];
|
|
|
|
|
var propertyLength = [4, 2, 2, 2, 2];
|
|
|
|
|
for (var i = 0; i < elements.length; i++) {
|
|
|
|
|
if (positionArray[elements[i]] >= 0) {
|
|
|
|
|
window[properties[i]] = inputField.value.substr(positionArray[elements[i]], propertyLength[i]) / 1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
currentMonth--;
|
|
|
|
|
} 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;
|
|
|
|
|
if (currentHour.length == 1)
|
|
|
|
|
currentHour = '0'
|
|
|
|
|
} else {
|
|
|
|
|
currentHour = '00';
|
|
|
|
|
}
|
|
|
|
|
var minutePos = format.indexOf('ii');
|
|
|
|
|
if (minutePos >= 0) {
|
|
|
|
|
tmpMinute = inputField.value.substr(minutePos, 2);
|
|
|
|
|
currentMinute = tmpMinute;
|
|
|
|
|
} else {
|
|
|
|
|
currentMinute = '00';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
var d = new Date();
|
|
|
|
|
currentMonth = d.getMonth();
|
|
|
|
|
currentYear = d.getFullYear();
|
|
|
|
|
currentHour = '08';
|
|
|
|
|
currentMinute = '00';
|
|
|
|
|
inputDay = d.getDate() / 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
inputYear = currentYear;
|
|
|
|
|
inputMonth = currentMonth;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 (iframeObj) {
|
|
|
|
|
iframeObj.style.display = '';
|
|
|
|
|
iframeObj.style.height = '140px';
|
|
|
|
|
iframeObj.style.width = '195px';
|
|
|
|
|
iframeObj2.style.display = '';
|
|
|
|
|
iframeObj2.style.height = '140px';
|
|
|
|
|
iframeObj2.style.width = '195px';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
setTimeProperties();
|
|
|
|
|
updateYearDiv();
|
|
|
|
|
updateMonthDiv();
|
|
|
|
|
updateMinuteDiv();
|
|
|
|
|
updateHourDiv();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function displayCalendarSelectBox(yearInput, monthInput, dayInput, hourInput, minuteInput, buttonObj)
|
|
|
|
|
{
|
|
|
|
|
if (!hourInput)
|
|
|
|
|
calendarDisplayTime = false;
|
|
|
|
|
else
|
|
|
|
|
calendarDisplayTime = true;
|
|
|
|
|
|
|
|
|
|
currentMonth = monthInput.options[monthInput.selectedIndex].value / 1 - 1;
|
|
|
|
|
currentYear = yearInput.options[yearInput.selectedIndex].value;
|
|
|
|
|
if (hourInput) {
|
|
|
|
|
currentHour = hourInput.options[hourInput.selectedIndex].value;
|
|
|
|
|
inputHour = currentHour / 1;
|
|
|
|
|
}
|
|
|
|
|
if (minuteInput) {
|
|
|
|
|
currentMinute = minuteInput.options[minuteInput.selectedIndex].value;
|
|
|
|
|
inputMinute = currentMinute / 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
inputYear = yearInput.options[yearInput.selectedIndex].value;
|
|
|
|
|
inputMonth = monthInput.options[monthInput.selectedIndex].value / 1 - 1;
|
|
|
|
|
inputDay = dayInput.options[dayInput.selectedIndex].value / 1;
|
|
|
|
|
|
|
|
|
|
if (!calendarDiv) {
|
|
|
|
|
initCalendar();
|
|
|
|
|
} else {
|
|
|
|
|
writeCalendarContent();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
returnDateToYear = yearInput;
|
|
|
|
|
returnDateToMonth = monthInput;
|
|
|
|
|
returnDateToDay = dayInput;
|
|
|
|
|
returnDateToHour = hourInput;
|
|
|
|
|
returnDateToMinute = minuteInput;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
returnFormat = false;
|
|
|
|
|
returnDateTo = false;
|
|
|
|
|
positionCalendar(buttonObj);
|
|
|
|
|
calendarDiv.style.visibility = 'visible';
|
|
|
|
|
calendarDiv.style.display = 'block';
|
|
|
|
|
if (iframeObj) {
|
|
|
|
|
iframeObj.style.display = '';
|
|
|
|
|
iframeObj.style.height = calendarDiv.offsetHeight + 'px';
|
|
|
|
|
iframeObj.style.width = calendarDiv.offsetWidth + 'px';
|
|
|
|
|
//// fix for EI frame problem on time dropdowns 09/30/2006
|
|
|
|
|
iframeObj2.style.display = '';
|
|
|
|
|
iframeObj2.style.height = calendarDiv.offsetHeight + 'px';
|
|
|
|
|
iframeObj2.style.width = calendarDiv.offsetWidth + 'px'
|
|
|
|
|
}
|
|
|
|
|
setTimeProperties();
|
|
|
|
|
updateYearDiv();
|
|
|
|
|
updateMonthDiv();
|
|
|
|
|
updateHourDiv();
|
|
|
|
|
updateMinuteDiv();
|
|
|
|
|
|
|
|
|
|
}
|