And how should it work, exactly?
The posted code is structural, not an actual script. So there are some issues that have to be dealt with before writing a actual script:
1) What does completed mean?
2) How to handle large numbers of fields, since my simple script puts it all in a single 'if'
So...
1) Completed usually means that the current value is different from the default value.
2) The easy way to handle a large number of arbitrary fields is to
a) put the names in an array and loop over them
b) Give them all group names using dot notation, so they can be acquired as a group.
The a) option is good for a single set of fields.
The b) option works in all situations and is particularly good for handling more than one section. I like this one best.
So, if the fields are named "Group.Territory", "Group.Region", etc.
Then this code will test for completion
var flds = this.getField("Group").getArray();
var bComplete = false;
if(flds.every(function(a){return a.value != a.defaultValue;}))
this.getField("Section1Check").value = "Yes";
else
this.getField("Section1Check").value = "Off";