if (year > cal.minYear) { date.setFullYear(year - 1); } break; 
if (year > cal.minYear) { date.setFullYear(year - 1); } break; 
Calendar.cellClick = function(el, ev) {	var cal = el.calendar;	var closing = false;	var newdate = false;	var date = null;	if (typeof el.navtype == "undefined") {		if (cal.currentDateEl) {			Calendar.removeClass(cal.currentDateEl, "selected");			Calendar.addClass(el, "selected");			closing = (cal.currentDateEl == el);			if (!closing) {				cal.currentDateEl = el;			}		}		cal.date.setDateOnly(el.caldate);		date = cal.date;		var other_month = !(cal.dateClicked = !el.otherMonth);		if (!other_month && !cal.currentDateEl)			cal._toggleMultipleDate(new Date(date));		else			newdate = !el.disabled;		// a date was clicked		if (other_month)			cal._init(cal.firstDayOfWeek, date);	} else {		if (el.navtype == 200) {			Calendar.removeClass(el, "hilite");			cal.callCloseHandler();			return;		}		date = new Date(cal.date);		if (el.navtype == 0)			date.setDateOnly(new Date()); // TODAY		// unless "today" was clicked, we assume no date was clicked so		// the selected handler will know not to close the calenar when		// in single-click mode.		// cal.dateClicked = (el.navtype == 0);		cal.dateClicked = false;		var year = date.getFullYear();		var mon = date.getMonth();		function setMonth(m) {			var day = date.getDate();			var max = date.getMonthDays(m);			if (day > max) {				date.setDate(max);			}			date.setMonth(m);		};		switch (el.navtype) {		    case 400:			Calendar.removeClass(el, "hilite");			var text = Calendar._TT["ABOUT"];			if (typeof text != "undefined") {				text += cal.showsTime ? Calendar._TT["ABOUT_TIME"] : "";			} else {				// FIXME: this should be removed as soon as lang files get updated!				text = "Help and about box text is not translated into this language.\n" +					"If you know this language and you feel generous please update\n" +					"the corresponding file in \"lang\" subdir to match calendar-en.js\n" +					"and send it back to <mihai_bazon@yahoo.com> to get it into the distribution  ;-)\n\n" +					"Thank you!\n" +					"http://dynarch.com/mishoo/calendar.epl\n";			}			alert(text);			return;		    case -2:			if (year > cal.minYear) {				date.setFullYear(year - 1);			}			break;		    case -1:			if (mon > 0) {				setMonth(mon - 1);			} else if (year-- > cal.minYear) {				date.setFullYear(year);				setMonth(11);			}			break;		    case 1:			if (mon < 11) {				setMonth(mon + 1);			} else if (year < cal.maxYear) {				date.setFullYear(year + 1);				setMonth(0);			}			break;		    case 2:			if (year < cal.maxYear) {				date.setFullYear(year + 1);			}			break;		    case 100:			cal.setFirstDayOfWeek(el.fdow);			return;		    case 50:			var range = el._range;			var current = el.innerHTML;			for (var i = range.length; --i >= 0;)				if (range[i] == current)					break;			if (ev && ev.shiftKey) {				if (--i < 0)					i = range.length - 1;			} else if ( ++i >= range.length )				i = 0;			var newval = range[i];			el.innerHTML = newval;			cal.onUpdateTime();			return;		    case 0:			// TODAY will bring us here			if ((typeof cal.getDateStatus == "function") &&			    cal.getDateStatus(date, date.getFullYear(), date.getMonth(), date.getDate())) {				return false;			}			break;		}		if (!date.equalsTo(cal.date)) {			cal.setDate(date);			newdate = true;		} else if (el.navtype == 0)			newdate = closing = true;	}	if (newdate) {		ev && cal.callHandler();	}	if (closing) {		Calendar.removeClass(el, "hilite");		ev && cal.callCloseHandler();	}};
6726	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/6726/03d7f94bcf578aa239f63c96ecc8e6b2a8d9752b/calendar.js/clean/templates/default/jscalendar/calendar.js