private int AddBefore(int index, IStText item)
{
if (item == null)
return index; // nothing to add
if (index == 0 || m_scriptureTexts[index - 1] != item)
{
// Not present, add it.
m_scriptureTexts.Insert(index, item);
return index; // no change, things moved up.
}
return index - 1; // next earlier item goes before one already present.
}