int TextPosition(IStText text)
{
ICmObject owner = text.Owner;
int flid = text.OwningFlid;
if (flid != ScrSectionTags.kflidContent &&
flid != ScrSectionTags.kflidHeading
&& flid != ScrBookTags.kflidTitle)
{
return -1;
}
if (flid == ScrBookTags.kflidTitle)
return BookPosition((IScrBook)owner);
var section = (IScrSection)owner;
var book = (IScrBook)section.Owner;
return BookPosition(book)
+ section.IndexInOwner * 2 + 2
+ (flid == ScrSectionTags.kflidContent ? 1 : 0);
}