rem: (printDate.getTime() == selectedDate.getTime() ? ' calendar_daysCellOver' : '') + 
context: 	_generateCalendar: function() {		var today = new Date();		today = new Date(today.getFullYear(), today.getMonth(), today.getDate()); // clear time		// build the calendar HTML		var controls = '<div class="calendar_control">' +			'<a class="calendar_clear" onclick="popUpCal._clearDate(' + this._id + ');">' +			this._get('clearText') + '</a>' +			'<a class="calendar_close" onclick="popUpCal.hideCalendar(' + this._id + ');">' +			this._get('closeText') + '</a></div>';		var prompt = this._get('prompt');		var closeAtTop = this._get('closeAtTop');		var hideIfNoPrevNext = this._get('hideIfNoPrevNext');		// controls and links		var html = (prompt ? '<div class="calendar_prompt">' + prompt + '</div>' : '') +			(closeAtTop && !this._inline ? controls : '') + '<div class="calendar_links">' +			(this._canAdjustMonth(-1) ? '<a class="calendar_prev" ' +			'onclick="popUpCal._adjustDate(' + this._id + ', -1, \'M\');">' + this._get('prevText') + '</a>' :			(hideIfNoPrevNext ? '' : '<label class="calendar_prev">' + this._get('prevText') + '</label>')) +			(this._isInRange(today) ? '<a class="calendar_current" ' +			'onclick="popUpCal._gotoToday(' + this._id + ');">' + this._get('currentText') + '</a>' : '') +			(this._canAdjustMonth(+1) ? '<a class="calendar_next" ' +			'onclick="popUpCal._adjustDate(' + this._id + ', +1, \'M\');">' + this._get('nextText') + '</a>' :			(hideIfNoPrevNext ? '' : '<label class="calendar_next">' + this._get('nextText') + '</label>')) +			'</div><div class="calendar_header">';		var minDate = this._get('minDate');		var maxDate = this._get('maxDate');		// month selection		var monthNames = this._get('monthNames');		if (!this._get('changeMonth')) {			html += monthNames[this._selectedMonth] + '&nbsp;';		}		else {			var inMinYear = (minDate && minDate.getFullYear() == this._selectedYear);			var inMaxYear = (maxDate && maxDate.getFullYear() == this._selectedYear);			html += '<select class="calendar_newMonth" ' +				'onchange="popUpCal._selectMonthYear(' + this._id + ', this, \'M\');" ' +				'onclick="popUpCal._clickMonthYear(' + this._id + ');">';			for (var month = 0; month < 12; month++) {				if ((!inMinYear || month >= minDate.getMonth()) &&						(!inMaxYear || month <= maxDate.getMonth())) {					html += '<option value="' + month + '"' +						(month == this._selectedMonth ? ' selected="selected"' : '') +						'>' + monthNames[month] + '</option>';				}			}			html += '</select>';		}		// year selection		if (!this._get('changeYear')) {			html += this._selectedYear;		}		else {			// determine range of years to display			var years = this._get('yearRange').split(':');			var year = 0;			var endYear = 0;			if (years.length != 2) {				year = this._selectedYear - 10;				endYear = this._selectedYear + 10;			}			else if (years[0].charAt(0) == '+' || years[0].charAt(0) == '-') {				year = this._selectedYear + parseInt(years[0], 10);				endYear = this._selectedYear + parseInt(years[1], 10);			}			else {				year = parseInt(years[0], 10);				endYear = parseInt(years[1], 10);			}			year = (minDate ? Math.max(year, minDate.getFullYear()) : year);			endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear);			html += '<select class="calendar_newYear" onchange="popUpCal._selectMonthYear(' +				this._id + ', this, \'Y\');" ' + 'onclick="popUpCal._clickMonthYear(' +				this._id + ');">';			for (; year <= endYear; year++) {				html += '<option value="' + year + '"' +					(year == this._selectedYear ? ' selected="selected"' : '') +					'>' + year + '</option>';			}			html += '</select>';		}		html += '</div><table class="calendar" cellpadding="0" cellspacing="0"><thead>' +			'<tr class="calendar_titleRow">';		var firstDay = this._get('firstDay');		var changeFirstDay = this._get('changeFirstDay');		var dayNames = this._get('dayNames');		for (var dow = 0; dow < 7; dow++) { // days of the week			html += '<td>' + (!changeFirstDay ? '' : '<a onclick="popUpCal._changeFirstDay(' +				this._id + ', this);">') + dayNames[(dow + firstDay) % 7] +				(changeFirstDay ? '</a>' : '') + '</td>';		}		html += '</tr></thead><tbody>';		var daysInMonth = this._getDaysInMonth(this._selectedYear, this._selectedMonth);		this._selectedDay = Math.min(this._selectedDay, daysInMonth);		var leadDays = (this._getFirstDayOfMonth(this._selectedYear, this._selectedMonth) - firstDay + 7) % 7;		var currentDate = new Date(this._currentYear, this._currentMonth, this._currentDay);		var selectedDate = new Date(this._selectedYear, this._selectedMonth, this._selectedDay);		var printDate = new Date(this._selectedYear, this._selectedMonth, 1 - leadDays);		var numRows = Math.ceil((leadDays + daysInMonth) / 7); // calculate the number of rows to generate		var customDate = this._get('customDate');		var showOtherMonths = this._get('showOtherMonths');		for (var row = 0; row < numRows; row++) { // create calendar rows			html += '<tr class="calendar_daysRow">';			for (var dow = 0; dow < 7; dow++) { // create calendar days				var customSettings = (customDate ? customDate(printDate) : [true, '']);				var otherMonth = (printDate.getMonth() != this._selectedMonth);				var unselectable = otherMonth || !customSettings[0] ||					(minDate && printDate < minDate) || (maxDate && printDate > maxDate);				html += '<td class="calendar_daysCell' +					((dow + firstDay + 6) % 7 >= 5 ? ' calendar_weekEndCell' : '') + // highlight weekends					(otherMonth ? ' calendar_otherMonth' : '') + // highlight days from other months					(printDate.getTime() == selectedDate.getTime() ? ' calendar_daysCellOver' : '') + // highlight selected day					(unselectable ? ' calendar_unselectable' : '') +  // highlight unselectable days					(!otherMonth || showOtherMonths ? ' ' + customSettings[1] : '') + // highlight custom dates					(printDate.getTime() == currentDate.getTime() ? ' calendar_currentDay' : // highlight current day					(printDate.getTime() == today.getTime() ? ' calendar_today' : '')) + '"' + // highlight today (if different)					(unselectable ? '' : ' onmouseover="$(this).addClass(\'calendar_daysCellOver\');"' +					' onmouseout="$(this).removeClass(\'calendar_daysCellOver\');"' +					' onclick="popUpCal._selectDay(' + this._id + ', this);"') + '>' + // actions					(otherMonth ? (showOtherMonths ? printDate.getDate() : '&nbsp;') : // display for other months					(unselectable ? printDate.getDate() : '<a>' + printDate.getDate() + '</a>')) + '</td>'; // display for this month				printDate.setDate(printDate.getDate() + 1);			}			html += '</tr>';		}		html += '</tbody></table>' + (!closeAtTop && !this._inline ? controls : '') +			'<div style="clear: both;"></div>' + (!$.browser.msie ? '' :			'<!--[if lte IE 6.5]><iframe src="javascript:false;" class="calendar_cover"></iframe><![endif]-->');		return html;	},
meta: 635	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/635/635cf05238806c8a032bba9b371d70abf10d2c7e/jquery-calendar.js/buggy/libs/jquery/jquery-calendar.js