
/*
 * Updating items of <select> according to days in param "date"
 * @param selectEl : {Mixed}  The id  or the DOM Node of the <SELECT>
 * @param date : {String}  The date 
 * @param dateFormat : {String}  The date format, default value: Date.patterns.MonthYear  
 * @return {Boolean} The operation success
 */
 
function correctionDaysList(selectEl, date, dateFormat) {
	dateFormat = (dateFormat) ? dateFormat : Date.patterns.MonthYear;
	var el = Ext.get(selectEl);
	var dt = Date.parseDate(date, dateFormat);
	if(dt) {
		// Date#parseDate(): Any part of the date format that is not specified 
		// will default to the current date value for that part.
		// So we need to apply fix for case when days in selected month < current date.
		var today = new Date();
		if (dt.getDate()!=today.getDate()) {
			dt.setMonth(dt.getMonth()-1);
			dt.setDate(dt.getDaysInMonth());
		}
		var maxDay = dt.getDaysInMonth();
		if(el.dom.selectedIndex >= maxDay) {
			el.dom.selectedIndex = 0;	
		}
		if(el.dom.options.length > maxDay) {
			el.dom.options.length = maxDay;
		}
		else {
			for(var i=el.dom.options.length; i<maxDay; i++) {
				el.dom.options.length++;
				el.dom.options[i] = new Option (i+1, i+1, false, false);
			}
		}
		return true;	
	}
	return false;
}

function showHidePanel(o, panelId) {
	var obj = Ext.get(o);

	if (obj.hasClass('moreExpander')) {
		Ext.get(panelId).replaceClass('detailsContracted','detailsExpanded');
		obj.replaceClass('moreExpander','moreContracter');
	} 
	else {
		Ext.get(panelId).replaceClass('detailsExpanded','detailsContracted');
		obj.replaceClass('moreContracter','moreExpander');
	}
}