docs: function(date, units)
  			{
  				var ceilYear = (units.years > 0);
  				var ceilMonth = ceilYear || (units.months > 0);
  				var ceilDay = ceilMonth || (units.days > 0);
  				var ceilHours = ceilDay || (units.hours > 0);
  				var ceilMinutes = ceilHours || (units.minutes > 0);
  				var ceilSeconds = ceilMinutes || (units.seconds > 0);
  
  				if (!ceilSeconds)
  					return;
  
  				if (date.getSeconds() > 0)
  				{
  					if (units.seconds > 0)
  						date.setSeconds(Math.min(Math.ceil(date.getSeconds() / units.seconds) * units.seconds, 60));
  					else
  						date.setSeconds(60);
  				}
  
  				if (!ceilMinutes)
  					return;
  
  				if (date.getMinutes() > 0)
  				{
  					if (units.minutes > 0)
  						date.setMinutes(Math.min(Math.ceil(date.getMinutes() / units.minutes) * units.minutes, 60));
  					else
  						date.setMinutes(60);
  				}
  
  				if (!ceilHours)
  					return;
  
  				if (date.getHours() > 0)
  				{
  					if (units.hours > 0)
  						date.setHours(Math.min(Math.ceil(date.getHours() / units.hours) * units.hours, 24));
  					else
  						date.setHours(24);
  				}
  
  				if (!ceilDay)
  					return;
  
  				if (date.getDay() > 1)
  				{
  					var daysInMonth = TimeUtils.daysInMonth(date);
  					if (units.days > 0)
  						date.setDay(Math.min(Math.ceil((date.getDay() - 1) / units.days) * units.days, daysInMonth) + 1);
  					else
  						date.setDay(daysInMonth + 1);
  				}
  
  				if (!ceilMonth)
  					return;
  
  				if (date.getMonth() > 1)
  				{
  					if (units.months > 0)
  						date.setMonth(Math.min(Math.ceil((date.getMonth() - 1) / units.months) * units.months, 12) + 1);
  					else
  						date.setMonth(12 + 1);
  				}
  
  				if (!ceilYear)
  					return;
  
  				if (units.years > 0)
  					date.setYear(Math.ceil(date.getYear() / units.years) * units.years);
  			}