Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function Calendar(inVarName, inCurrent)
- {
- var dtmToday = new Date();
- dtmToday = new Date(dtmToday.getFullYear(), dtmToday.getMonth(), dtmToday.getDate());
- var dtmCurrent = inCurrent;
- var arrMonths = new Array('Januar', 'Februar', 'Marts', 'April', 'Maj', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'December');
- var arrDayNames = new Array('M', 'T', 'O', 'T', 'F', 'L', 'S');
- var strVarName = inVarName;
- var arrActiveDays = new Array();
- var objBoxCalendar = document.getElementById('BoxCalendar');
- var objWrapper = null;
- var objNaviLeft = null;
- var objCalendarYear = null;
- var objNaviRight = null;
- this.create = function ()
- {
- if (objBoxCalendar)
- {
- CreateHeader('DayView');
- this.viewDays(dtmCurrent);
- }
- }
- this.viewDays = function (dtmStart)
- {
- dtmStart = new Date(dtmStart);
- if (dtmStart.getDate() > 1)
- dtmStart.setDate(1);
- for (var i = objWrapper.childNodes.length; i >= 0; i--)
- {
- var objChild = objWrapper.childNodes[i];
- if (objChild)
- {
- if (objChild.className != 'CalendarRowNavi')
- {
- objWrapper.removeChild(objChild);
- }
- }
- }
- var objCalendarRowDays = document.createElement('div');
- objCalendarRowDays.className = 'CalendarRowDays';
- objWrapper.appendChild(objCalendarRowDays);
- for (var i = 0; i < arrDayNames.length; i++)
- {
- var objCalendarCell = document.createElement('div');
- objCalendarCell.className = 'CalendarCell';
- objCalendarCell.appendChild(document.createTextNode(arrDayNames[i]));
- objCalendarRowDays.appendChild(objCalendarCell);
- objCalendarRowDays.appendChild(document.createTextNode('\n'));
- }
- var intDaysInMonth = DaysInMonth(dtmStart.getFullYear(), dtmStart.getMonth());
- //Set the correct text and link on the top field
- while (objCalendarYear.hasChildNodes())
- {
- objCalendarYear.removeChild(objCalendarYear.firstChild);
- }
- objCalendarYear.appendChild(document.createTextNode(arrMonths[dtmStart.getMonth()] + ' ' + dtmStart.getFullYear()));
- objCalendarYear.setAttribute('onclick', strVarName + '.viewMonths(\'' + new Date(dtmStart.getFullYear(), dtmStart.getMonth(), 1) + '\')');
- //Do the same for the navigation buttons
- objNaviLeft.setAttribute('onclick', strVarName + '.viewDays(\'' + new Date(dtmStart.getFullYear(), dtmStart.getMonth() - 1, 1) + '\')');
- objNaviRight.setAttribute('onclick', strVarName + '.viewDays(\'' + new Date(dtmStart.getFullYear(), dtmStart.getMonth() + 1, 1) + '\')');
- //Fill the first row with blank fields until we reach the starting point
- var objFirstRow = document.createElement('div');
- objFirstRow.className = 'CalendarRow';
- objWrapper.appendChild(objFirstRow);
- var intCount = 0;
- for (intCount; intCount < dtmStart.getUTCDay(); intCount++)
- {
- var objNotThisMonth = document.createElement('div');
- objNotThisMonth.className = 'CalendarCell NotThisMonth';
- objFirstRow.appendChild(objNotThisMonth);
- objFirstRow.appendChild(document.createTextNode('\n'));
- }
- //Fill the rest of the first row with days
- for (intCount; intCount < 7; intCount++)
- {
- var objCalendarCell = document.createElement('div');
- objCalendarCell.className = 'CalendarCell';
- for (var j = 0; j < arrActiveDays.length; j++)
- {
- var dtmActiveDay = arrActiveDays[j];
- var blnIsActiveDay = dtmActiveDay.getTime() == dtmStart.getTime();
- var strLink = 'window.open(\'/?';
- strLink += blnIsActiveDay ? 'ci=' : 'ci2='; // Choose the querystring parameter
- strLink += dtmStart.getFullYear() + '-' + eval(dtmStart.getMonth() + 1) + '-' + dtmStart.getDate() + '\', \'_self\');'
- objCalendarCell.setAttribute('onclick', strLink);
- if (blnIsActiveDay)
- {
- objCalendarCell.className += ' Active';
- break;
- }
- }
- if (dtmToday.getTime() == dtmStart.getTime())
- {
- if (dtmCurrent.getTime() == dtmStart.getTime())
- {
- objCalendarCell.className += ' Today';
- }
- else
- {
- objCalendarCell.className += ' TodayNotChosen';
- }
- }
- else if (dtmCurrent.getTime() == dtmStart.getTime())
- {
- objCalendarCell.className += ' Chosen';
- }
- objCalendarCell.appendChild(document.createTextNode(dtmStart.getDate()));
- objFirstRow.appendChild(objCalendarCell);
- objFirstRow.appendChild(document.createTextNode('\n'));
- dtmStart.setDate(dtmStart.getDate() + 1);
- }
- var objCalendarRow = document.createElement('div');
- objCalendarRow.className = 'CalendarRow';
- //Fill each row with days
- for (var i = dtmStart.getDate(); i <= intDaysInMonth; i++)
- {
- if (dtmStart.getUTCDay() == 0)
- {
- objWrapper.appendChild(document.createTextNode('\n'));
- objCalendarRow = document.createElement('div');
- objCalendarRow.className = 'CalendarRow';
- objWrapper.appendChild(objCalendarRow);
- }
- var objCalendarCell = document.createElement('div');
- objCalendarCell.className = 'CalendarCell';
- for (var j = 0; j < arrActiveDays.length; j++)
- {
- var dtmActiveDay = arrActiveDays[j];
- var blnIsActiveDay = dtmActiveDay.getTime() == dtmStart.getTime();
- var strLink = 'window.open(\'/?';
- strLink += blnIsActiveDay ? 'ci=' : 'ci2='; // Choose the querystring parameter
- strLink += dtmStart.getFullYear() + '-' + eval(dtmStart.getMonth() + 1) + '-' + dtmStart.getDate() + '\', \'_self\');'
- objCalendarCell.setAttribute('onclick', strLink);
- if (blnIsActiveDay)
- {
- objCalendarCell.className += ' Active';
- break;
- }
- }
- if (dtmToday.getTime() == dtmStart.getTime())
- {
- if (dtmCurrent.getTime() == dtmStart.getTime())
- {
- objCalendarCell.className += ' Today';
- }
- else
- {
- objCalendarCell.className += ' TodayNotChosen';
- }
- }
- else if (dtmCurrent.getTime() == dtmStart.getTime())
- {
- objCalendarCell.className += ' Chosen';
- }
- objCalendarCell.appendChild(document.createTextNode(dtmStart.getDate()));
- objCalendarRow.appendChild(objCalendarCell);
- objCalendarRow.appendChild(document.createTextNode('\n'));
- dtmStart.setDate(dtmStart.getDate() + 1);
- }
- //Fill the rest of the last row with blank fields
- for (var i = dtmStart.getUTCDay(); i < 7; i++)
- {
- var objNotThisMonth = document.createElement('div');
- objNotThisMonth.className = 'CalendarCell NotThisMonth';
- objCalendarRow.appendChild(objNotThisMonth);
- objCalendarRow.appendChild(document.createTextNode('\n'));
- }
- }
- this.viewMonths = function (dtmStart)
- {
- dtmStart = new Date(dtmStart);
- if (dtmStart.getDate() > 1)
- dtmStart.setDate(1);
- for (var i = objWrapper.childNodes.length; i >= 0; i--)
- {
- var objChild = objWrapper.childNodes[i];
- if (objChild)
- {
- if (objChild.className != 'CalendarRowNavi')
- {
- objWrapper.removeChild(objChild);
- }
- }
- }
- //Set the correct text and link on the top field
- while (objCalendarYear.hasChildNodes())
- {
- objCalendarYear.removeChild(objCalendarYear.firstChild);
- }
- objCalendarYear.appendChild(document.createTextNode(dtmStart.getFullYear()));
- objCalendarYear.setAttribute('onclick', strVarName + '.viewYears(\'' + new Date(dtmStart.getFullYear(), 0, 1) + '\')');
- //Do the same for the navigation buttons
- objNaviLeft.setAttribute('onclick', strVarName + '.viewMonths(\'' + new Date(dtmStart.getFullYear() - 1, dtmStart.getMonth(), 1) + '\')');
- objNaviRight.setAttribute('onclick', strVarName + '.viewMonths(\'' + new Date(dtmStart.getFullYear() + 1, dtmStart.getMonth(), 1) + '\')');
- var objCalendarMonthRow = null;
- for (var i = 0; i < arrMonths.length; i++)
- {
- if (i % 3 == 0)
- {
- objCalendarMonthRow = document.createElement('div');
- objCalendarMonthRow.className = 'CalendarMonthRow';
- objWrapper.appendChild(objCalendarMonthRow);
- }
- var objCalendarCell = document.createElement('div');
- objCalendarCell.className = 'CalendarCell';
- objCalendarCell.appendChild(document.createTextNode(arrMonths[i]));
- objCalendarCell.appendChild(document.createTextNode('\n'));
- objCalendarCell.setAttribute('onclick', strVarName + '.viewDays(\'' + new Date(dtmStart.getFullYear(), i, 1) + '\')');
- objCalendarMonthRow.appendChild(objCalendarCell);
- objCalendarMonthRow.appendChild(document.createTextNode('\n'));
- }
- }
- this.viewYears = function (dtmStart)
- {
- dtmStart = new Date(dtmStart);
- if (dtmStart.getDate() > 1)
- dtmStart.setDate(1);
- for (var i = objWrapper.childNodes.length; i >= 0; i--)
- {
- var objChild = objWrapper.childNodes[i];
- if (objChild)
- {
- if (objChild.className != 'CalendarRowNavi')
- {
- objWrapper.removeChild(objChild);
- }
- }
- }
- //Set the correct text and link on the top field
- while (objCalendarYear.hasChildNodes())
- {
- objCalendarYear.removeChild(objCalendarYear.firstChild);
- }
- objCalendarYear.appendChild(document.createTextNode(dtmStart.getFullYear() + ' - ' + eval(dtmStart.getFullYear() + 11)));
- //Do the same for the navigation buttons
- objNaviLeft.setAttribute('onclick', strVarName + '.viewYears(\'' + new Date(dtmStart.getFullYear() - 12, 0, 1) + '\')');
- objNaviRight.setAttribute('onclick', strVarName + '.viewYears(\'' + new Date(dtmStart.getFullYear() + 12, 0, 1) + '\')');
- var objCalendarYearRow = null;
- for (var i = 0; i < 12; i++)
- {
- if (i % 3 == 0)
- {
- objCalendarYearRow = document.createElement('div');
- objCalendarYearRow.className = 'CalendarYearRow';
- objWrapper.appendChild(objCalendarYearRow);
- }
- var objCalendarCell = document.createElement('div');
- objCalendarCell.className = 'CalendarCell';
- objCalendarCell.appendChild(document.createTextNode(eval(dtmStart.getFullYear() + i)));
- objCalendarCell.appendChild(document.createTextNode('\n'));
- objCalendarCell.setAttribute('onclick', strVarName + '.viewMonths(\'' + new Date(eval(dtmStart.getFullYear() + i), 0, 1) + '\')');
- objCalendarYearRow.appendChild(objCalendarCell);
- objCalendarYearRow.appendChild(document.createTextNode('\n'));
- }
- }
- this.addActiveDay = function (inDate)
- {
- arrActiveDays[arrActiveDays.length] = inDate;
- }
- CreateHeader = function (inType)
- {
- var objHeader = document.createElement('div');
- objHeader.className = 'Header';
- var objHeaderImage = document.createElement('img');
- objHeaderImage.src = '/gfx/box/headers/calendar.png';
- objHeaderImage.width = '16';
- objHeaderImage.width = '151';
- objHeaderImage.alt = 'Maritim Kalender';
- objHeader.appendChild(objHeaderImage);
- var objContent = document.createElement('div');
- objContent.className = 'Content';
- objWrapper = document.createElement('div');
- objWrapper.className = 'CalendarWrapper';
- objContent.appendChild(objWrapper);
- var objCalendarRowNavi = document.createElement('div');
- objCalendarRowNavi.className = 'CalendarRowNavi';
- objWrapper.appendChild(objCalendarRowNavi);
- objCalendarRowNavi.appendChild(document.createTextNode('\n'));
- objNaviLeft = document.createElement('div');
- objNaviLeft.className = 'CalendarCell NaviLeft';
- objCalendarRowNavi.appendChild(objNaviLeft);
- objCalendarRowNavi.appendChild(document.createTextNode('\n'));
- objCalendarYear = document.createElement('div');
- objCalendarYear.className = 'CalendarCell CalendarYear';
- objCalendarRowNavi.appendChild(objCalendarYear);
- objCalendarRowNavi.appendChild(document.createTextNode('\n'));
- objNaviRight = document.createElement('div');
- objNaviRight.className = 'CalendarCell NaviRight';
- objCalendarRowNavi.appendChild(objNaviRight);
- while (objBoxCalendar.hasChildNodes())
- {
- objBoxCalendar.removeChild(objBoxCalendar.firstChild);
- }
- objBoxCalendar.appendChild(objHeader);
- objBoxCalendar.appendChild(objContent);
- }
- DaysInMonth = function (year, month)
- {
- return 32 - new Date(year, month, 32).getDate();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement