/*------------------------------------------------------------------------
// This plugin is used to maintain consistency across a period of date
// which uses the JQuery UI DatePicker
//
// 27/09/2013 - Sandro Alves Peres
// http://www.zend.com/en/yellow-pages#show-ClientCandidateID=ZEND022656
//
// Requires:
// jquery.data.js
//-----------------------------------------------------------------------*/
(function($){
$.datepickerRange = function( dateStart, dateEnd )
{
dateStart = (typeof(dateStart) == 'object' ? dateStart : $('#' + dateStart));
dateEnd = (typeof(dateEnd) == 'object' ? dateEnd : $('#' + dateEnd));
dateStart.datepicker('option', 'onSelect', function()
{
if( $(this).val() == '' )
{
dateEnd.datepicker('option', 'minDate', dateStart.datepicker('option', 'minDate'));
}
else
{
dateEnd.datepicker('option', 'minDate', dateStart.val());
}
});
dateEnd.datepicker('option', 'onSelect', function()
{
if( $(this).val() == '' )
{
dateStart.datepicker('option', 'maxDate', dateEnd.datepicker('option', 'maxDate'));
}
else
{
dateStart.datepicker('option', 'maxDate', dateEnd.val());
}
});
dateStart.blur(function()
{
if( !$.isDate($(this).val()) )
{
$(this).val('');
}
else
{
if( $.toDays($(this).val()) > $.toDays(dateStart.datepicker('option', 'maxDate')) )
{
$(this).val( dateStart.datepicker('option', 'maxDate') );
}
else if( $.toDays($(this).val()) < $.toDays(dateStart.datepicker('option', 'minDate')) )
{
$(this).val( dateStart.datepicker('option', 'minDate') );
}
}
});
dateEnd.blur(function()
{
if( !$.isDate($(this).val()) )
{
$(this).val('');
}
else
{
if( $.toDays($(this).val()) > $.toDays(dateEnd.datepicker('option', 'maxDate')) )
{
$(this).val( dateEnd.datepicker('option', 'maxDate') );
}
else if( $.toDays($(this).val()) < $.toDays(dateEnd.datepicker('option', 'minDate')) )
{
$(this).val( dateEnd.datepicker('option', 'minDate') );
}
}
});
try
{
dateStart.datepicker('option', 'onSelect').call();
dateEnd.datepicker('option', 'onSelect').call();
}
catch(e){}
};
})(jQuery);
|