One Hat Cyber Team
Your IP :
216.73.216.24
Server IP :
194.44.31.54
Server :
Linux zen.imath.kiev.ua 4.18.0-553.77.1.el8_10.x86_64 #1 SMP Fri Oct 3 14:30:23 UTC 2025 x86_64
Server Software :
Apache/2.4.37 (Rocky Linux) OpenSSL/1.1.1k
PHP Version :
5.6.40
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
nosc
/
public_html
/
datepicker
/
View File Name :
Bs_DatePicker.class.js
/******************************************************************************************** * BlueShoes Framework; This file is part of the php application framework. * NOTE: This code is stripped (obfuscated). To get the clean documented code goto * www.blueshoes.org and register for the free open source *DEVELOPER* version or * buy the commercial version. * * In case you've already got the developer version, then this is one of the few * packages/classes that is only available to *PAYING* customers. * To get it go to www.blueshoes.org and buy a commercial version. * * @copyright www.blueshoes.org * @author Samuel Blume <sam at blueshoes dot org> * @author Andrej Arn <andrej at blueshoes dot org> */ if (!Bs_Objects) {var Bs_Objects = [];};function bs_dp_inputFieldBlur() { event.srcElement.bsObj.updateByInputFieldBlur();} function bs_dp_inputFieldChange() { event.srcElement.bsObj.updateByInputFieldChange();} function bs_dp_inputFieldWheel() { return event.srcElement.bsObj.updateByMouseWheel();} function Bs_DatePicker(fieldName) { this._objectId;this.fieldName = fieldName;this.jsBaseDir = '/_bsJavascript/';this.imgDir = '/_bsJavascript/components/datepicker/img/win2k/';this.openByInit = false;this.autoClose = true;this.validateErrorMsg = "Not a valid date: '__VALUE__'. Try again or use the date picker. Valid formats are:\nAmerican mm/dd/yyyy (eg 12/31/2003)\nEuropean dd.mm.yyyy (eg 31.12.2003)\nISO yyyy-mm-dd (eg 2003-12-31)";this.validateErrorMsgEn;this.rangeErrorMsg = "Not a valid date: '__VALUE__'. It is not in the allowed range.";this._language = 'en';this.monthLong = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');;this.monthLongEn;this.monthNumChars = 0;this.days = new Array('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday');;this.daysEn;this.daysNumChars = 2;this.useYearField = 3;this.useMonthField = 2;this.useSpinEditForYear = (typeof(Bs_NumberField) != 'undefined');this.useArrows = false;this.useButtonToday = false;this.dayHeaderFontColor = '#D4D0C8';this.dayHeaderBgColor = '#808080';this.dayFontColor = 'black';this.dayBgColor = 'white';this.dayFontColorActive = 'white';this.dayBgColorActive = '#0A246A';this.dayTableBgColor = 'white';this.dayBgColorOver = '#FFFFE1';this.dayTableAttributeString = 'width="100%" border="0" cellspacing="0" cellpadding="3"';this.width = 150;this.internalDateFormat = 'iso';this.displayDateFormat = 'iso';this.dateFormat = 'iso';this.dayClassNameByDay = new Array();this.dateRangeLower = '1800-01-01';this.dateRangeUpper = '2100-12-31';this._currentDate = '';this._currentYear = 0;this._currentMonth = 0;this._currentDay = 0;this.toggleButton;this._lastCursorPos = 0;this._wheelTimeout;this.dateToday = new Date();this._constructor = function() { this._id = Bs_Objects.length;Bs_Objects[this._id] = this;this._objectId = "Bs_DatePicker_"+this._id;var btnName = this._objectId + '_tglBtn';this.toggleButton = new Bs_Button(btnName);eval(btnName + ' = this.toggleButton;');this.toggleButton.group = 'toggleButton';this.toggleButton.imgName = 'bs_calendar';this.toggleButton.cssClassDefault = 'bsBtnMouseOver';this.toggleButton.attachEvent('Bs_Objects['+this._id+'].toggleSelector();', 'on');this.toggleButton.attachEvent('Bs_Objects['+this._id+'].toggleSelector();', 'off');} this.setLanguage = function(language) { if (typeof(Bs_DatePicker_Lang) == 'undefined') return false;if (typeof(Bs_DatePicker_Lang[language]) == 'undefined') return false;this._language = language;this.monthLong = Bs_DatePicker_Lang[language]['months'];this.days = Bs_DatePicker_Lang[language]['days'];this.validateErrorMsg = Bs_DatePicker_Lang[language]['errorValidate'];this.rangeErrorMsg = Bs_DatePicker_Lang[language]['errorRange'];return true;} this.resetDate = function() { this._currentYear = 0;this._currentMonth = 0;this._currentDay = 0;this.updateCurrentDate();} this.setDateByChunks = function(year, month, day, reRender) { if (typeof(reRender) == 'undefined') reRender = true;year = this.fixYear(year);var newDate = this.dateToIsoDate(year + '-' + month + '-' + day);if (newDate == false) return false;if (!this.isDateSelectable(year, month, day)) return false;this._currentYear = year;this._currentMonth = month;this._currentDay = day;this.updateCurrentDate();this.updateInputField();if (reRender) this._reRenderDatePicker();return true;} this.setDateByJunks = function(year, month, day) { return this.setDateByChunks(year, month, day);} this.setDateByIso = function(isoDate, reRender) { if ("" == isoDate) { this.resetDate();} else { var newDate = this.dateToIsoDate(isoDate);if (newDate == false) return false;var year = parseInt(newDate.substr(0, 4), 10);var month = parseInt(newDate.substr(5, 2), 10);var day = parseInt(newDate.substr(8, 2), 10);if (!this.isDateSelectable(year, month, day)) return false;this._currentYear = year;this._currentMonth = month;this._currentDay = day;this.updateCurrentDate();} this.updateInputField();if (reRender) this._reRenderDatePicker();return true;} this.setDateByObject = function(dateObject, reRender) { return this.setDateByChunks(dateObject.getYear(), dateObject.getMonth()+1, dateObject.getDate(), reRender);} this.seedInternalWithCurrentDate = function() { var dateNow = new Date();this._currentYear = this.fixYear(dateNow.getYear());this._currentMonth = dateNow.getMonth() +1;this._currentDay = dateNow.getDate();this.updateCurrentDate();} this.fixYear = function(year) { if (year < 100) { year = parseInt('19' + year, 10);} else if ((year >= 100) && (year < 110)) { year = parseInt(200 + '' + year.toString().substr(2, 1), 10);} return year;} this.drawInto = function(tagId) { var tag = document.getElementById(tagId);if ((tag == null) || !tag) return false;tag.innerHTML = this.render();this._convertYearToSpinEdit();return true;} this.convertField = function(fieldId) { var origFld = document.getElementById(fieldId);if ((origFld == null) || !origFld) return false;origFld.maxLength = 11;if (bs_isEmpty(origFld['name'])) origFld['name'] = fieldId;this.fieldName = origFld['name'];var htmlCode = this.render(true);origFld.insertAdjacentHTML('afterEnd', htmlCode);this._convertYearToSpinEdit();origFld.bsObj = this;origFld.attachEvent('onblur', bs_dp_inputFieldBlur);origFld.attachEvent('onkeyup', bs_dp_inputFieldChange);origFld.attachEvent('onmousewheel', bs_dp_inputFieldWheel);return true;} this.render = function(noInputField) { if (typeof(this.monthLongEn) != 'undefined') this.monthLong = this.monthLongEn;if (typeof(this.daysEn) != 'undefined') this.days = this.daysEn;if (typeof(this.validateErrorMsgEn) != 'undefined') this.validateErrorMsg = this.validateErrorMsgEn;var ret = new Array();ret[ret.length] = '<table border="0" cellspacing="0" cellpadding="0"><tr><td valign="top">';if (!noInputField) { ret[ret.length] = '<input';ret[ret.length] = ' type="text"';ret[ret.length] = ' name="' + this.fieldName + '"';ret[ret.length] = ' id="' + this.fieldName + '"';ret[ret.length] = ' onblur="Bs_Objects['+this._id+'].updateByInputFieldBlur();"';ret[ret.length] = ' onkeyup="Bs_Objects['+this._id+'].updateByInputFieldChange();"';ret[ret.length] = ' onmousewheel="Bs_Objects['+this._id+'].updateByMouseWheel(); return false;"';ret[ret.length] = ' size="10"';ret[ret.length] = ' maxlength="11"';ret[ret.length] = ' style="width:' + (this.width -22) + 'px;"';ret[ret.length] = ' class="BsDp_date"';ret[ret.length] = ' title="' + this.getCurrentDateReadable() + '"';ret[ret.length] = ' value="' + this.getCurrentDateFormatted() + '">';} ret[ret.length] = '</td><td valign="top">';this.toggleButton.title = (this.openByInit) ? 'Hide Calendar' : 'Show Calendar';if (this.openByInit) this.toggleButton.setStatus(2);var btnHtml = this.toggleButton.render();ret[ret.length] = btnHtml;ret[ret.length] = '</td></tr></table>';ret[ret.length] = '<div id="' + this._objectId + '_div"';ret[ret.length] = ' style="width:' + this.width + 'px;';if (!this.openByInit) { ret[ret.length] = ' display:none;';} ret[ret.length] = '"';ret[ret.length] = ' class="BsDp_div"';ret[ret.length] = '>';ret[ret.length] = this.renderDatePicker();ret[ret.length] = '</div>';return ret.join('');} this.renderDatePicker = function() { var ret = new Array();if (this._currentDate.length == 0) { this.seedInternalWithCurrentDate();} ret[ret.length] = '<div class="BsDp_monthYearDiv">';ret[ret.length] = '<table border="0" width="100%" cellpadding="0" cellspacing="0" align="center"><tr>';if (this.useArrows) { ret[ret.length] = '<td align="center" onclick="Bs_Objects['+this._id+'].dateCalc(0, -1);" style="cursor:hand;cursor:pointer;" class="BsDp_arrowLeft">';ret[ret.length] = ' ';ret[ret.length] = '<img src="' + this.imgDir + 'arrowLeft.gif' + '" align="middle" border="0"/>';ret[ret.length] = ' ';ret[ret.length] = '</span>';ret[ret.length] = '</td><td align="center">';} else { ret[ret.length] = '<td align="center">';} if (this.useMonthField == 1) { ret[ret.length] = '<span class="BsDp_monthText">' + this.monthLong[this._currentMonth -1] + '</span>';} else if (this.useMonthField == 2) { ret[ret.length] = '<select name="' + this.fieldName + '_month"';ret[ret.length] = ' id="' + this._objectId + '_month" size="1"';ret[ret.length] = ' onChange="Bs_Objects['+this._id+'].updateByMonth();"';ret[ret.length] = ' class="BsDp_month"';ret[ret.length] = '>';var i = 1;for (var m=0; m<this.monthLong.length; m++) { ret[ret.length] = '<option value="' + i + '"';if (this._currentMonth == i) ret[ret.length] = ' selected';ret[ret.length] = '>';if (this.monthNumChars > 0) { ret[ret.length] = this.monthLong[m].substr(0, this.monthNumChars);} else { ret[ret.length] = this.monthLong[m];} ret[ret.length] = '</option>';i++;} ret[ret.length] = '</select>';} ret[ret.length] = '</td>';if (moz && this._useSpinEditForYear()) { ret[ret.length] = '<td align="left">';} else { ret[ret.length] = '<td align="center">';} if (this.useYearField == 1) { ret[ret.length] = '<span class="BsDp_yearText">' + this._currentYear + '</span>';} else if (this.useYearField >= 2) { ret[ret.length] = '<input type="text" name="' + this.fieldName + '_year"';ret[ret.length] = ' id="' + this._objectId + '_year" value="' + this._currentYear + '"';ret[ret.length] = ' size="4" maxlength="4" onKeyUp="Bs_Objects['+this._id+'].updateByYearChange();"';ret[ret.length] = ' onBlur="Bs_Objects['+this._id+'].updateByYearBlur();"';ret[ret.length] = ' class="BsDp_year"';ret[ret.length] = '>';if (this._useSpinEditForYear()) { ret[ret.length] = ' ';} } if (this.useArrows) { ret[ret.length] = '</td><td align="center" onclick="Bs_Objects['+this._id+'].dateCalc(0, 1);" style="cursor:hand;cursor:pointer;" class="BsDp_arrowRight">';ret[ret.length] = ' ';ret[ret.length] = '<img src="' + this.imgDir + 'arrowRight.gif' + '" align="middle" border="0"/>';ret[ret.length] = ' ';} ret[ret.length] = '</td>';ret[ret.length] = '</tr></table>';ret[ret.length] = '</div>';ret[ret.length] = '<div id="' + this._objectId + '_dayDiv" class="BsDp_dayTableDiv">';ret[ret.length] = this.renderDayTable(this._currentYear, this._currentMonth, this._currentDay);ret[ret.length] = '</div>';if (this.useButtonToday) { ret[ret.length] = '<div class="BsDp_buttonsDiv">';ret[ret.length] = '<img src="' + this.imgDir + 'en_btnToday.gif' + '" align="middle" border="0"';ret[ret.length] = ' onclick="Bs_Objects['+this._id+'].setDateByObject(Bs_Objects['+this._id+'].dateToday);"';ret[ret.length] = ' style="cursor:hand; cursor:pointer;"';ret[ret.length] = '/>';ret[ret.length] = '</div>';} return ret.join('');} this._reRenderDatePicker = function() { var div = document.getElementById(this._objectId + '_div');if ((div == null) || !div) return;div.innerHTML = this.renderDatePicker();this._convertYearToSpinEdit();} this.renderDayTable = function(currentYear, currentMonth, currentDay) { var day = 1;var lastDayOfMonth = this.getNumberOfDays(currentYear, currentMonth);var ret = new Array();ret[ret.length] = '<table ' + this.dayTableAttributeString;ret[ret.length] = ' bgcolor="' + this.dayTableBgColor + '"';ret[ret.length] = ' class="BsDp_dayTable"';ret[ret.length] = '>';if (currentYear >= 1970) { ret[ret.length] = '<tr bgcolor="' + this.dayHeaderBgColor + '">';for (var d=0; d<this.days.length; d++) { ret[ret.length] = '<td width="14%" bgcolor="' + this.dayHeaderBgColor + '" align="right"';ret[ret.length] = ' title="' + this.days[d] + '"';ret[ret.length] = ' class="BsDp_dayHeader"';ret[ret.length] = ' style="color:' + this.dayHeaderFontColor + '; cursor:default;">';if (this.daysNumChars > 0) { ret[ret.length] = this.days[d].substr(0, this.daysNumChars);} else { ret[ret.length] = this.days[d];} ret[ret.length] = '</td>';} ret[ret.length] = '</tr>';var dateObjFirst = new Date(currentYear, currentMonth-1, 1, 0, 0, 0);var weekDayFirst = dateObjFirst.getDay();if (weekDayFirst == 0) weekDayFirst = 7;} else { var weekDayFirst = 1;} for (var i=0; i<6; i++) { ret[ret.length] = '<tr>';for (var j=1; j<8; j++) { var isSelectableDate = this.isDateSelectable(this._currentYear, this._currentMonth, day);if ((day > lastDayOfMonth) || ((i == 0) && (j < weekDayFirst))) { ret[ret.length] = '<td> </td>';} else { ret[ret.length] = '<td';ret[ret.length] = ' id="' + this._objectId + '_td' + day + '"';ret[ret.length] = ' align="right"';if (isSelectableDate) { ret[ret.length] = ' onMouseOver="Bs_Objects['+this._id+'].dayMouseOver(' + day + ');"';ret[ret.length] = ' onMouseOut="Bs_Objects['+this._id+'].dayMouseOut(' + day + ');"';ret[ret.length] = ' onClick="Bs_Objects['+this._id+'].updateByDay(' + day + ');"';} var classArr = new Array();classArr[classArr.length] = 'BsDp_day';classArr[classArr.length] = 'BsDp_weekday' +j;if (typeof(this.dayClassNameByDay[day]) != 'undefined') classArr[classArr.length] = this.dayClassNameByDay[day];if ((this.dateToday.getDate() == day) && (this.dateToday.getMonth() == (this._currentMonth -1)) && (this.fixYear(this.dateToday.getYear()) == this._currentYear)) { classArr[classArr.length] = 'BsDp_dayToday';} if (!isSelectableDate) classArr[classArr.length] = 'BsDp_dayUnselectable';if (classArr.length > 0) { ret[ret.length] = ' class="' + classArr.join(' ') + '"';ret[ret.length] = ' style="';} else { ret[ret.length] = ' style="font-family:arial; font-size:11px;';} if (isSelectableDate) { ret[ret.length] = 'cursor:hand; cursor:pointer;';} else { ret[ret.length] = 'cursor:default;';} if (day == currentDay) { ret[ret.length] = ' color:' + this.dayFontColorActive + '; background-color:' + this.dayBgColorActive + ';';} else { ret[ret.length] = ' color:' + this.dayFontColor + '; background-color:' + this.dayBgColor + ';';} ret[ret.length] = '">';ret[ret.length] = day;ret[ret.length] = '</td>';day++;} } ret[ret.length] = '</tr>';if (day >= (lastDayOfMonth +1)) break;} ret[ret.length] = '</table>';return ret.join('');} this.updateDayTable = function() { document.getElementById(this._objectId + '_dayDiv').innerHTML = this.renderDayTable(this._currentYear, this._currentMonth, this._currentDay);} this.getCurrentDateReadable = function() { if (this._currentDay == 0) return '';if (this._currentMonth == 0) return '';if (this._currentYear == 0) return '';var ret = '';var dateObj = new Date(this._currentYear, this._currentMonth -1, this._currentDay);var weekDay = dateObj.getDay();if (weekDay == 0) weekDay = 7;ret += this.days[weekDay -1] + ', ' ret += this.monthLong[this._currentMonth -1] + ' ';ret += this._currentDay;switch (this._currentDay) { case 1: case 21: case 31: ret += 'st'; break;case 2: case 22: ret += 'nd'; break;case 3: case 23: ret += 'rd'; break;default: ret += 'th';} ret += ' ' + this._currentYear;return ret;} this.getCurrentDateFormatted = function() { if (this._currentDay == 0) return '';if (this._currentMonth == 0) return '';if (this._currentYear == 0) return '';switch (this.dateFormat) { case 'us': var ret = '';if (this._currentMonth < 10) ret += '0';ret += this._currentMonth + '/';if (this._currentDay < 10) ret += '0';ret += this._currentDay + '/';ret += this._currentYear;return ret;break;case 'eu': var ret = '';if (this._currentDay < 10) ret += '0';ret += this._currentDay + '.';if (this._currentMonth < 10) ret += '0';ret += this._currentMonth + '.';ret += this._currentYear;return ret;break;default: return this._currentDate;} } this.updateInputField = function() { var fld = document.getElementById(this.fieldName);if ((fld == null) || !fld) return;fld.value = this.getCurrentDateFormatted();fld.title = this.getCurrentDateReadable();} this.updateByMouseWheel = function() { if (typeof(this._wheelTimeout) != 'undefined') clearTimeout(this._wheelTimeout) var pos = this._rememberCursorPos();if (pos > 0) { var negative = (event.wheelDelta < 0);var calcObj = this._posToDateCalcHelper(pos, negative);this.dateCalc(calcObj.calcDay, calcObj.calcMonth, calcObj.calcYear, false);this._resetCursorPos();} else { if (event.wheelDelta > 0) { this.dateCalc(1, 0, 0, false);} else if (event.wheelDelta < 0) { this.dateCalc(-1, 0, 0, false);} } this._wheelTimeout = setTimeout('Bs_Objects['+this._id+']._reRenderDatePicker();', 300);return false;} this.updateByInputFieldChange = function() { switch (window.event.keyCode) { case 16: case 35: case 36: case 37: case 39: return;case 38: case 40: var negative = (window.event.keyCode == 40) || ((window.event.keyCode == 34));if ((document.selection) && (document.selection.createRange)) { var pos = this._rememberCursorPos();var calcObj = this._posToDateCalcHelper(pos, negative);this.dateCalc(calcObj.calcDay, calcObj.calcMonth, calcObj.calcYear);this._resetCursorPos();} else { this.dateCalc((negative) ? -1 : 1);} return;case 107: var fld = document.getElementById(this.fieldName);var pos = fld.value.indexOf('+');var calcObj = this._posToDateCalcHelper(pos);this.dateCalc(calcObj.calcDay, calcObj.calcMonth, calcObj.calcYear);this.setCursorPos(pos);return;default: } var userVal = document.getElementById(this.fieldName).value;if ((userVal.length == 10) && (this.dateToIsoDate(userVal) != false)) { this.updateByInputFieldBlur();} } this.updateByInputFieldBlur = function() { var fld = document.getElementById(this.fieldName);var userVal = fld.value;if (userVal == this._currentDate) return;if (userVal.length > 0) { var isDateOk = false;do { newVal = this.dateToIsoDate(userVal);if (newVal == false) { alert(this.validateErrorMsg.replace(/__VALUE__/, userVal)); break;} var year = parseInt(newVal.substr(0, 4), 10);var month = parseInt(newVal.substr(5, 2), 10);var day = parseInt(newVal.substr(8, 2), 10);if (!this.isDateSelectable(year, month, day)) { fld.value = ''; alert(this.rangeErrorMsg.replace(/__VALUE__/, userVal)); break;} isDateOk = true;} while (false);if (!isDateOk) { return;} this._currentYear = year;this._currentMonth = month;this._currentDay = day;this.updateCurrentDate();this.updateInputField();} else { this.seedInternalWithCurrentDate();} this._reRenderDatePicker();} this.dateToIsoDate = function(someDate) { if (someDate.length < 6) return false;if (someDate.length > 10) return false;if (someDate.indexOf('/') >= 0) { var chunks = someDate.split('/');if (chunks.length != 3) return false;var day = parseInt(chunks[1], 10);var month = parseInt(chunks[0], 10);var year = parseInt(chunks[2], 10);} else if (someDate.indexOf('-') >= 0) { var chunks = someDate.split('-');if (chunks.length != 3) return false;var day = parseInt(chunks[2], 10);var month = parseInt(chunks[1], 10);var year = parseInt(chunks[0], 10);} else if (someDate.indexOf('.') >= 0) { var chunks = someDate.split('.');if (chunks.length != 3) return false;var day = parseInt(chunks[0], 10);var month = parseInt(chunks[1], 10);var year = parseInt(chunks[2], 10);} else { return false;} if (year < 100) { if (year < 30) { year += 2000;} else { year += 1900;} } if (!this.isValidDate(year, month, day)) return false;var ret = '';ret += year + '-';if (month < 10) ret += '0';ret += month + '-';if (day < 10) ret += '0';ret += day;return ret;} this.updateByDay = function(day) { try { var oldTd = document.getElementById(this._objectId + '_td' + this._currentDay);oldTd.style.backgroundColor = this.dayBgColor;oldTd.style.color = this.dayFontColor;} catch (e) { } var oldTd = document.getElementById(this._objectId + '_td' + day);oldTd.style.backgroundColor = this.dayBgColorActive;oldTd.style.color = this.dayFontColorActive;this._currentDay = parseInt(day, 10);this.updateCurrentDate();this.updateInputField();if (this.autoClose) this.toggleSelector();} this.updateByMonth = function() { var tmp = new Bs_FormFieldSelect();var monthSelect = document.getElementById(this._objectId + '_month');tmp.init(monthSelect);this._currentMonth = parseInt(monthSelect.getValue(), 10);var isDateOk = false;do { if (!this.isValidDate(this._currentYear, this._currentMonth, this._currentDay)) { break;} if (!this.isDateSelectable(this._currentYear, this._currentMonth, this._currentDay)) { break;} isDateOk = true;} while (false);this.updateCurrentDate();if (isDateOk) { this.updateInputField();} else { var fld = document.getElementById(this.fieldName);fld.value = '';fld.title = '';} this.updateDayTable();} this.updateByYearChange = function() { var tmpYear = parseInt(document.getElementById(this._objectId + '_year').value, 10);if ((tmpYear < 2100) && (tmpYear > 1800)) { this.updateByYearBlur();} } this.updateByYearBlur = function() { var tmpYear = parseInt(document.getElementById(this._objectId + '_year').value, 10);tmpYear = this.fixYear(tmpYear);this._currentYear = tmpYear;var isDateOk = false;do { if (!this.isValidDate(this._currentYear, this._currentMonth, this._currentDay)) { break;} if (!this.isDateSelectable(this._currentYear, this._currentMonth, this._currentDay)) { break;} isDateOk = true;} while (false);this.updateCurrentDate();if (isDateOk) { this.updateInputField();} else { var fld = document.getElementById(this.fieldName);fld.value = '';fld.title = '';} this.updateDayTable();} this.updateCurrentDate = function() { if ((0 == this._currentYear) && (0 == this._currentMonth) && (0 == this._currentDay) ) { this._currentDate = "";} else { this._currentDate = this._currentYear + '-';if (this._currentMonth < 10) this._currentDate += '0';this._currentDate += this._currentMonth + '-';if (this._currentDay < 10) this._currentDate += '0';this._currentDate += this._currentDay;} } this.toggleSelector = function() { var div = document.getElementById(this._objectId + '_div');if (div.style.display == 'none') { div.style.display = 'block';var inputField = document.getElementById(this.fieldName);if (inputField.offsetLeft > div.offsetLeft) { div.style.marginLeft = inputField.offsetLeft + 'px';} var newChar = '-';if (this._useSpinEditForYear()) { var objName = this._objectId + '_yObj';eval(objName + '.redraw();');} this.toggleButton.setStatus(2);this.toggleButton.setTitle('Hide Calendar');} else { div.style.display = 'none';var newChar = '+';this.toggleButton.setStatus(1);this.toggleButton.setTitle('Show Calendar');} } this.dayMouseOver = function(day) { var td = document.getElementById(this._objectId + '_td' + day);if (td.style.backgroundColor.toLowerCase() == this.dayBgColor.toLowerCase()) { td.style.backgroundColor = this.dayBgColorOver;} } this.dayMouseOut = function(day) { var td = document.getElementById(this._objectId + '_td' + day);if (day != this._currentDay) { td.style.backgroundColor = this.dayBgColor;} } this.isLeapYear = function(year) { return (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0));} this.getNumberOfDays = function(year, month) { switch (month) { case 2: if (this.isLeapYear(year)) return 29;return 28;break;case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31;break;default: return 30;} } this.dateCalc = function(addDays, addMonths, addYears, reRender) { if (typeof(reRender) == 'undefined') reRender = true;if (this._currentDay == 0) return false;if (this._currentMonth == 0) return false;if (this._currentYear == 0) return false;if (typeof(addDays) == 'undefined') addDays = 0;if (typeof(addMonths) == 'undefined') addMonths = 0;if (typeof(addYears) == 'undefined') addYears = 0;var tmpDate = new Date(this._currentYear+addYears, this._currentMonth-1+addMonths, this._currentDay+addDays);this.setDateByChunks(tmpDate.getYear(), tmpDate.getMonth()+1, tmpDate.getDate(), reRender);return true;} this.setCursorPos = function(pos) { if ((document.selection) && (document.selection.createRange)) { var fld = document.getElementById(this.fieldName);var x = document.selection.createRange();x.move('character', -(fld.value.length - pos));x.select();return this._lastCursorPos;} else { return false;} } this.getCursorPos = function() { if ((document.selection) && (document.selection.createRange)) { var text = '!';var fld = document.getElementById(this.fieldName);if (document.activeElement == fld) { var caretPos = document.selection.createRange().duplicate();caretPos.collapse(false);caretPos.text = "!";var pos = fld.value.indexOf('!');fld.value = fld.value.substring(0, pos) + fld.value.substring(pos +1);caretPos.collapse(false);return pos;} } return 0;} this.loadSkin = function(skinName) { try { var oLink = document.createElement("link") oLink.href = this.jsBaseDir + 'components/datepicker/css/' + skinName + '.css';oLink.rel = "stylesheet";oLink.type = "text/css";document.body.appendChild(oLink);} catch (e) { } switch (skinName) { case 'win2k': this.imgDir = this.jsBaseDir + 'components/datepicker/img/win2k/';this.toggleButton.imgPath = this.imgDir;this.toggleButton.imgName = 'toggleButton';this.daysNumChars = 1;return true;case 'osx': case 'h2ogtk2': this.imgDir = this.jsBaseDir + 'components/datepicker/img/' + skinName + '/';this.toggleButton.imgPath = this.imgDir;this.toggleButton.imgName = 'toggleButton';this.toggleButton.backgroundColor = 'transparent';this.toggleButton.cssClassDefault = '';this.toggleButton.cssClassMouseOver = '';this.toggleButton.cssClassMouseDown = '';this.daysNumChars = 1;this.useMonthField = 1;this.useYearField = 1;this.useArrows = true;this.useButtonToday = true;this.dayTableAttributeString = 'width="100%" border="0" cellspacing="0" cellpadding="2" bordercolor="white"';this.dayHeaderFontColor = 'black';this.dayHeaderBgColor = 'white';this.dayFontColor = 'black';this.dayBgColor = 'white';this.dayFontColorActive = 'white';this.dayBgColorActive = '#B5B6BD';this.dayTableBgColor = 'white';this.dayBgColorOver = '#B5B6BD';return true;} return false;} this.isDateSelectable = function(year, month, day) { if (typeof(this._dateRangeLower_year) == 'undefined') { this._dateRangeLower_year = this.dateRangeLower.substr(0, 4);this._dateRangeLower_month = this.dateRangeLower.substr(5, 2);this._dateRangeLower_day = this.dateRangeLower.substr(8, 2);this._dateRangeUpper_year = this.dateRangeUpper.substr(0, 4);this._dateRangeUpper_month = this.dateRangeUpper.substr(5, 2);this._dateRangeUpper_day = this.dateRangeUpper.substr(8, 2);} var isSelectableDate = false;do { if (year < this._dateRangeLower_year) break;if ((year == this._dateRangeLower_year) && (month < this._dateRangeLower_month)) break;if ((year == this._dateRangeLower_year) && (month == this._dateRangeLower_month) && (day < this._dateRangeLower_day)) break;if (year > this._dateRangeUpper_year) break;if ((year == this._dateRangeUpper_year) && (month > this._dateRangeUpper_month)) break;if ((year == this._dateRangeUpper_year) && (month == this._dateRangeUpper_month) && (day > this._dateRangeUpper_day)) break;isSelectableDate = true;} while (false);return isSelectableDate;} this.isValidDate = function(year, month, day) { if (year >= 1970) { var tDate = new Date(year, month -1, day);if (day != tDate.getDate()) return false;if (month != (tDate.getMonth() +1)) return false;if (year != this.fixYear(tDate.getYear())) return false;} else { if ((day < 1) || (day > 31)) return false;if ((month < 1) || (month > 12)) return false;if ((year < 1000) || (year > 3000)) return false;} if (day > 28) { if (this.getNumberOfDays(year, month) < day) return false;} return true;} this._posToDateCalcHelper = function(pos, negative) { var ret = new Object();ret.calcDay = 0;ret.calcMonth = 0;ret.calcYear = 0;switch (this.dateFormat) { case 'eu': if (pos <= 2) { ret.calcDay = 1;} else if (pos <= 5) { ret.calcMonth = 1;} else { ret.calcYear = 1;} break;case 'us': if (pos <= 2) { ret.calcMonth = 1;} else if (pos <= 5) { ret.calcDay = 1;} else { ret.calcYear = 1;} break;default: if (pos <= 4) { ret.calcYear = 1;} else if (pos <= 7) { ret.calcMonth = 1;} else { ret.calcDay = 1;} } if (negative) { ret.calcDay = -ret.calcDay;ret.calcMonth = -ret.calcMonth;ret.calcYear = -ret.calcYear;} return ret;} this._convertYearToSpinEdit = function() { if (this._useSpinEditForYear()) { var objName = this._objectId + '_yObj';var myNf = new Bs_NumberField(this._objectId + '_year');eval(objName + ' = myNf;');myNf.buttonUp.imgPath = this.jsBaseDir + 'components/numberfield/img/';myNf.buttonDown.imgPath = this.jsBaseDir + 'components/numberfield/img/';myNf.minValue = 1800;myNf.maxValue = 2300;myNf.attachEvent('onAfterChange', 'Bs_Objects['+this._id+'].updateByYearBlur();');myNf.draw();} } this._useSpinEditForYear = function() { return ( ( (this.useYearField == 3) && ((typeof(Bs_NumberField) != 'undefined')) ) || ((typeof(this.useYearField) == 'undefined') && this.useSpinEditForYear));} this._rememberCursorPos = function() { this._lastCursorPos = this.getCursorPos();return this._lastCursorPos;} this._resetCursorPos = function() { return this.setCursorPos(this._lastCursorPos) } this._constructor();}