private void setEstimatedLapsByAvg()
	{
		int oldEstimatedLapsAvg = this.estimatedLapsAvg;
		Duration oldEstimatedTimeAvg = this.estimatedTimeAvg;
		Competitor competitor = Competitor.getByPosition(1);

		if (competitor == null) {
			this.estimatedLapsAvg = lapsToGo;
			return;
		}

		int laps = competitor.getLapsComplete();

		if (laps == 0) {
			this.estimatedLapsAvg = lapsToGo;
			return;
		}

		int time = competitor.getTotalTime().toInt();
		int avgLapTime = competitor.getAvgLap().toInt();

		do {
			time += avgLapTime;
			laps += 1;
		} while (time < scheduledTime.toInt());

		if (lapsToGo == 0 || laps < lapsToGo + competitor.getLapsComplete()) {
			this.estimatedLapsAvg = laps;
		} else {
			this.estimatedLapsAvg = scheduledLaps;
		}

		this.estimatedTimeAvg = new Duration(time);

		changeSupport.firePropertyChange("estimatedLapsAvg", oldEstimatedLapsAvg,
			Integer.toString(this.estimatedLapsAvg));
		changeSupport.firePropertyChange("estimatedTimeAvg", oldEstimatedTimeAvg, estimatedTimeAvg);
	}