Generates a summary of the status of the expected scripts broken based on the log.
			This summary (a list of strings) is returned as well as a list with the dates (which
			can be used to index the log)of the most recent attempts at the failed jobs.

def generateSummary(self, extraLapse = TYPICAL_LAPSE):
		'''Generates a summary of the status of the expected scripts broken based on the log.
			This summary (a list of strings) is returned as well as a list with the dates (which
			can be used to index the log)of the most recent attempts at the failed jobs. 
		'''
		scriptsRun = self.scriptsRun
		
		body = []
		
		numberOfFailed = 0
		numberWithWarnings = 0
		failedList = []
		successList = []
		warningsList = []
		
		for name, details in sorted(scriptsRun.iteritems()):
			status = None
			daysSinceSuccess = None
			
			if details["lastSuccess"] and expectedScripts.get(name):
				daysSinceSuccess = expectedScripts.get(name).getDaysSinceLastSuccess(details["lastSuccess"])
				if not expectedScripts.check(name, details["lastSuccess"], extraLapse): 
					status = "FAILED"
			else:
				status = "FAILED"
			
			if not status:
				if details["status"] & RETROSPECT_FAIL:
					status = "FAILED"
				elif details["status"] & RETROSPECT_WARNING:
					status = "WARNINGS"
				elif status != "FAILED":
					status = "OK"
			
			if details["lastSuccess"] and daysSinceSuccess:
				lastSuccessDetails = "Last successful run on %s (%0.1f days ago)" % (details["lastSuccess"], daysSinceSuccess)
			else:
				lastSuccessDetails = "No recent successful run."
			
			if details["lastRun"]:
				lastRunDetails = "Last run on %s (%s)" % (details["lastRun"], status)
			else:
				lastRunDetails = "No recent run (%s)" % status
				 
			if status == "FAILED":
				numberOfFailed += 1
				failedList.append("%s: %s. %s" % (name, lastRunDetails, lastSuccessDetails))
			elif status == "WARNINGS":
				numberWithWarnings += 1
				warningsList.append("%s: %s. %s" % (name, lastRunDetails, lastSuccessDetails))
			else:
				successList.append("%s: %s. %s" % (name, lastRunDetails, lastSuccessDetails))
		
		body = []
		if failedList:
			body.append("FAILED JOBS (%d)" % numberOfFailed)
			body.append("****************")
			for j in failedList:
				body.append(j)
			body.append("\n")
		if warningsList:
			body.append("JOBS WITH WARNINGS (%d)" % numberWithWarnings)
			body.append("***********************")
			for j in warningsList:
				body.append(j)
			body.append("\n")
		if successList:
			body.append("SUCCESSFUL JOBS")
			body.append("***************")
			for j in successList:
				body.append(j)
		
		return body, failedList