[Richfaces] Dificuldade com o evento isDayEnabled

Pessoal,

Estou com uma dificuldade que está rolando há uns dias já. No nosso form existem 2 componentes rich:calendar, dataInicio e dataFim de uma pesquisa. Quando preenchemos a dataFim, as datas do componente dataInicio superiores à data selecionada em dataFim devem estar indisponíveis, e vice-versa.

<h:panelGrid id="#{id}" columns="7" style="margin-left:-4px; margin-bottom: -2px; margin-top: -2px;"> <rich:calendar id="#{id}Begin" value="#{beginValue}" required="#{beginRequired}" readonly="#{beginReadonly}" disabled="#{beginDisabled}" dayStyleClass="getDisabledStyleBegin" rendered="#{rendered}" isDayEnabled="ajustDayEnd"> <f:convertDateTime pattern="dd/MM/yyyy" /> <f:converter converterId="dateTimeRangeConverter" /> <f:validator validatorId="rangeValidator" /> <a4j:support event="onchanged" reRender="#{id}" oncomplete="resetRangeSelector();switchNeedToResend(true);"/> </rich:calendar> <h:outputText value="até" style="margin-left: 5px; margin-right: 5px;" rendered="#{rendered}"/> <rich:calendar id="#{id}End" value="#{endValue}" required="#{endRequired}" readonly="#{endReadonly}" disabled="#{endDisabled}" dayStyleClass="getDisabledStyleEnd" rendered="#{rendered}" isDayEnabled="ajustDayBegin"> <f:convertDateTime pattern="dd/MM/yyyy" /> <f:converter converterId="dateTimeRangeConverter" /> <f:validator validatorId="rangeValidator" /> <a4j:support event="onchanged" reRender="#{id}" oncomplete="resetRangeSelector();switchNeedToResend(true);"/> </rich:calendar> </h:panelGrid>

[code]function ajustDayBegin(day) {
try{
nomeCalendarBegin = day.component.id;
nomeCalendarEnd = nomeCalendarBegin.substring(0, nomeCalendarBegin.length-5) + ‘End’;
dataAux = Richfaces.getComponent(‘calendar’,document.getElementById(nomeCalendarEnd)).getSelectedDate();
if (dataAux != null && dataAux != undefined) {
if (dataAux.getTime() >= day.date.getTime()) {
return true;
} else {
return false;
}
} else {
return true;
}
}catch(error){
return true;
}
}

function ajustDayEnd(day) {
	try{
		nomeCalendarEnd = day.component.id;
		nomeCalendarBegin = nomeCalendarEnd.substring(0, nomeCalendarEnd.length-3) + 'Begin';
		dataAux = Richfaces.getComponent('calendar',document.getElementById(nomeCalendarBegin)).getSelectedDate();
		if (dataAux != null && dataAux != undefined) {
			if (dataAux.getTime() <= day.date.getTime()) {
				return true;
			} else {
				return false;
			}
		} else {
			return true;
		}
	}catch(error){
		return true;
	}	
}

[/code]

O que acontece: muitas vezes, quando selecionamos os componentes, o outro não é atualizado como deveria. Na maioria das vezes funciona perfeitamente, mas chega um ponto que não funciona.

Alguém teria como me ajudar nesse “causo”? Realmente não faço mais idéia do que pode estar ocorrendo.