I'm not set up to test this yet, but how about using
if (dow(0) < dow(1)) { // new week
The tricky bit is figuring out how many bars there are in a week. It varies on some brokers and some weeks, so instead of the HH(n) approach you might want to use something like:
var WeeklyHigh, WeeklyLow;
var WkHi = -99999, WkLo = 99999;
if (dow(0) < dow(1)) { // new week
WeeklyHigh = WkHi;
WeeklyLow = WkLo;
WkHi = -99999;
WkLo = 99999;
}
WkHi = max(WkHi, priceHigh(0));
WkLo = min(WkLo, priceLow(0));