private void printTeamMembersResults(PrintPageEventArgs ev, ref float yPos, ResultsReturnTeam result)
		{
			Structs.Team team = CommonCode.GetTeam(result.TeamId);

			foreach (int compid in (int[])team.CompetitorIds.ToArray(typeof(int)))
			{
				Structs.Competitor comp = CommonCode.GetCompetitor(compid);
				printTeamMemberResults(ev, ref yPos, comp);
				yPos += printCompetitorFont.GetHeight();
			}
		}
		private ResultsReturnTeam[] convertIntoArray(DSResults results)
		{
			ResultsReturnTeam[] returnArray =
				new ResultsReturnTeam[results.TeamResults.Count];
			int i = 0;
			foreach(DSResults.TeamResultsRow row in results.TeamResults)
			{
				returnArray[i] = new ResultsReturnTeam();
				returnArray[i].ClubId = row.ClubId;
				returnArray[i].TeamId = row.TeamId;
				returnArray[i].Hits = row.Hits;
				returnArray[i].Points = row.Points;
				returnArray[i].TeamName = row.TeamName;
				returnArray[i].FigureHits = row.FigureHits;
				returnArray[i].HitsPerStn = row.HitsPerStn;
				i++;
			}
			return returnArray;
		}
		private void printTeamResult(PrintPageEventArgs ev, ref float yPos, int place, ResultsReturnTeam result)
		{
			int nrOfLinesThisResult = 1;
			printString(ev, place.ToString(), 
				printCompetitorFont, this.colTeamPlace, yPos, this.colTeamClub-this.colTeamPlace);
			
			printString(ev, CommonCode.GetClub(result.ClubId).Name,
				printCompetitorFont, this.colTeamClub, yPos, this.colTeamName-this.colTeamClub);

			printString(ev, result.TeamName,
				printCompetitorFont, this.colTeamName, yPos, this.colTeamResult-this.colTeamName);
			
			float xPosHitsPerStn = this.colTeamResult;
			foreach(string strnTemp in result.HitsPerStn.Split(';'))
			{
				string strn = strnTemp;
				if (xPosHitsPerStn + 
					ev.Graphics.MeasureString(strn, printCompetitorFont).Width >
					colTeamResultMaxWidth)
				{
					nrOfLinesThisResult++;
					xPosHitsPerStn = this.colTeamResult;
				}
				if (strn != "")
				{
					switch (CompetitionType)
					{
						case Structs.CompetitionTypeEnum.Field:
							if (!competition.NorwegianCount)
							{
								string[] parts = strn.Split('/');
								int hits = int.Parse(parts[0]);
								int figures = int.Parse(parts[1]);
								strn = hits.ToString();
							}
							else
							{
							}
							break;
						case Structs.CompetitionTypeEnum.MagnumField:
							if (!competition.NorwegianCount)
							{
								string[] parts = strn.Split('/');
								int hits = int.Parse(parts[0]);
								int figures = int.Parse(parts[1]);
								strn = hits.ToString();
							}
							else
							{
							}
							break;
						case Structs.CompetitionTypeEnum.Precision:
							break;
					}
				}
				ev.Graphics.DrawString(strn,
					printCompetitorFont, Brushes.Black, xPosHitsPerStn, 
					yPos + (nrOfLinesThisResult-1) * 
					printCompetitorHeaderFont.GetHeight(),
					new StringFormat());
				xPosHitsPerStn += ev.Graphics.MeasureString(strn + "  ", 
					printCompetitorFont).Width;
			}

			switch(CompetitionType)
			{
				case Structs.CompetitionTypeEnum.Field:
				{
					if (competition.NorwegianCount)
						printString(ev, (result.Hits+result.FigureHits).ToString(),
							printCompetitorFont, this.colTeamResultTot, yPos, this.colTeamPoints-this.colTeamResultTot);
					else
						printString(ev, result.Hits.ToString() + "/" + result.FigureHits.ToString(),
							printCompetitorFont, this.colTeamResultTot, yPos, this.colTeamPoints-this.colTeamResultTot);

					printString(ev, result.Points.ToString(),
						printCompetitorFont, this.colTeamPoints, yPos, this.RightMargin-this.colTeamPoints);

					break;
				}
				case Structs.CompetitionTypeEnum.MagnumField:
				{
					printString(ev, result.Hits.ToString() + "/" + result.FigureHits.ToString(),
						printCompetitorFont, this.colTeamResultTot, yPos, this.colTeamPoints-this.colTeamResultTot);

					printString(ev, result.Points.ToString(),
						printCompetitorFont, this.colTeamPoints, yPos, this.RightMargin-this.colTeamPoints);

					break;
				}
				case Structs.CompetitionTypeEnum.Precision:
				{
					printString(ev, result.Hits.ToString(),
						printCompetitorFont, this.colTeamResultTot, yPos, this.colTeamPoints-this.colTeamResultTot);
					break;
				}

				default:
					throw new ApplicationException("Unknown CompetitionType");
			}

			yPos += nrOfLinesThisResult * 
				printCompetitorHeaderFont.GetHeight();
		}
		private float calculateTeamHeight(ResultsReturnTeam result)
		{
			float teamHeight = printCompetitorHeaderFont.GetHeight();
			Structs.Team team = CommonCode.GetTeam(result.TeamId);
			int nrCompetitors = team.CompetitorIds.Count;
			return teamHeight * (2 + nrCompetitors);
		}
		private string createTeamResults(ResultsReturnTeam[] results, 
			Structs.ResultWeaponsClass wclass)
		{
			StringBuilder html = new StringBuilder();
			html.Append("<h1>Lagtävling</h1>");
			html.Append("Vapengrupp " + wclass.ToString() + ":");
			html.Append("<table>\r\n");
			html.Append("<tr>" +
				"<td><b>Pl</b></td>" +
				"<td><b>Klubb</b></td>" +
				"<td><b>Lag</b></td>" +
				"<td><b>Resultat</b></td>" + 
				"</tr>\r\n");

			int place = 0;
			foreach(ResultsReturnTeam result in results)
			{
				place++;
				html.Append("<tr>");
				html.Append("<td class=\"resultevenline\">" + place.ToString() + "</td>");
				html.Append("<td class=\"resultevenline\">" + myInterface.GetClub( result.ClubId ).Name + "</td>");
				html.Append("<td class=\"resultevenline\">" + result.TeamName + "</td>");
				switch(myInterface.GetCompetitions()[0].Type)
				{
					case Structs.CompetitionTypeEnum.Field:
					{
						if (myInterface.GetCompetitions()[0].NorwegianCount)
							html.Append("<td class=\"resultevenline\">" + (result.Hits + result.FigureHits).ToString() + "</td>");
						else
							html.Append("<td class=\"resultevenline\">" + result.Hits.ToString() + "/" + result.FigureHits.ToString() + "</td>");
						break;
					}
					case Structs.CompetitionTypeEnum.Precision:
					{
						html.Append("<td class=\"resultevenline\">" + result.Hits.ToString() + "</td>");
						break;
					}
				}
				html.Append("</tr>\r\n");

				// The total results
				html.Append("<tr><td colspan=2></td>");
				html.Append("<td colspan=2>" + result.HitsPerStn.Replace(";", " ") + "</td>");
				html.Append("</tr>\r\n");

				Structs.Team team = myInterface.GetTeam( result.TeamId );

				foreach (int compId in (int[])team.CompetitorIds.ToArray(typeof(int)))
				{
					Structs.Competitor comp = myInterface.GetCompetitor(compId);
					html.Append("<tr><td colspan=2></td>");
					html.Append("<td>" + GetNameForCompetitor(comp) + "</td>");
					html.Append("<td>" + GetResultForCompetitor(comp) + "</td>");
					html.Append("</tr>\r\n");
				}
			}
			html.Append("</table>");
			return html.ToString();
		}
		private double writeResultsTeam(pdfPage page, double yPos, ResultsReturnTeam result, int place)
		{
			double newYPos = yPos;
			Structs.Club club = myInterface.GetClub(result.ClubId);
			if (competition.CompetitionId == 0)
				competition = myInterface.GetCompetitions()[0];

			addText(page, place.ToString(), this.leftMargin, yPos, font, fontResultSize);
			addText(page, result.TeamName, this.colResultNamePos, yPos, colResultClubPos-colResultNamePos,font, fontResultSize);
			addText(page, club.Name, this.colResultClubPos, yPos, colResultResultPos-colResultClubPos,font, fontResultSize);
			switch(competition.Type)
			{
				case Structs.CompetitionTypeEnum.Field:
				{
					if (competition.NorwegianCount)
					{
						addText(page, (result.Hits + result.FigureHits).ToString(), 
							colResultTotPos, yPos, font, fontResultSize);
					}
					else
					{
						addText(page, result.Hits.ToString() + "/" + result.FigureHits.ToString(), 
							colResultTotPos, yPos, font, fontResultSize);
					}
					addText(page, result.Points.ToString(), 
						this.colResultPointsPos, yPos, font, fontResultSize);
					break;
				}
				case Structs.CompetitionTypeEnum.Precision:
				{
					addText(page, result.Hits.ToString(), 
						this.colResultPointsPos, yPos, font, fontResultSize);
					break;
				}
				default:
					throw new ApplicationException("Not implemented yet");
			}

			/*if (competition.UsePriceMoney && 
				result.PriceMoney != 0)
			{
				newYPos = addText(page, result.PriceMoney.ToString() + ":-",
					this.colResultPricePos, yPos, font, fontResultSize);
			}*/

			string[] HitsPerStn = result.HitsPerStn.Split(';');
			double xPos = colResultResultPos;
			double xMaxPos = colResultTotPos;
			foreach(string thisStn in HitsPerStn)
			{
				int maxXSizeInPoints = (int)((xMaxPos-xPos)/conversionPixelsToMM);
				if (font.getWordWidth(thisStn, fontSize) > maxXSizeInPoints)
				{
					xPos = colResultResultPos;
					yPos = newYPos;
				}
				newYPos = addText(page, thisStn, xPos, yPos, font, fontResultSize);
				xPos += conversionPixelsToMM*font.getWordWidth(thisStn, fontSize);
			}

			Structs.Team team = myInterface.GetTeam(result.TeamId);

			foreach (int compid in (int[])team.CompetitorIds.ToArray(typeof(int)))
			{
				newYPos = writeResultsTeam(page, newYPos, colResultResultPos, colResultTotPos, compid);
			}
			return newYPos;
		}
		double calculateTeamHeight(ResultsReturnTeam result)
		{
			Structs.Team team = myInterface.GetTeam(result.TeamId);
			if (team.CompetitorIds == null)
			{
				return conversionPixelsToMM * fontSize;
			}
			else
			{
				return conversionPixelsToMM * fontSize * (1 + team.CompetitorIds.Count);
			}
		}