SearchResultsList search(String field, String string)
		throws NoSuchFieldException, SecurityException, IllegalArgumentException,
		IllegalAccessException
	{
		if (field == "strongs")
			return searchStrongs(string);

		// determine whether to count from book 1 or book 40, which is of
		// the New Testament
		int bookstartidx = UserData.filetype == ONTFiler.Filetype.nt ? 39 : 0;
		int totalbooks =
			UserData.filetype == ONTFiler.Filetype.ot ? 39 : Verse.BIBLE.length;

		Field wordfield = Word.class.getDeclaredField(field);
		SearchResultsList list = new SearchResultsList(wordfield, string);
		for (int bookidx = bookstartidx; bookidx < totalbooks; bookidx++)
			for (int chapidx = 0; chapidx < UserData.verses[bookidx].length; chapidx++)
				for (int verseidx = 0; verseidx < UserData.verses[bookidx][chapidx].length; verseidx++)
					for (int wordidx = 0; wordidx < UserData.verses[bookidx][chapidx][verseidx]
						.size(); wordidx++)
					{
						Verse verse = UserData.verses[bookidx][chapidx][verseidx];
						if (wordfield.get(verse.get(wordidx)).toString().contains(
							string))
							list.addElement(verse, wordidx);
					}

		list.sort(0, list.getSize() - 1);

		return list;
	}