OK I'm clueless. Still getting the error " Uncaught TypeError: Cannot read property 'substring' of undefined" but can't figure out why. Here's my entire sheet worker script (stolen/borrowed/cobbled, but currently broken). Well actually it does set the version properly. Any suggestions appreciated. Thanks <script type="text/worker">
var Sheet = Sheet || (function(){
var version= 0.1,
Debug = false,
// convert weapon quality selector from numeric value to text
qualitySwap = function() {
// get weapon quality text values
getAttrs(["weapon1-quality"], function(values) {
var qualityName,
list=["", "Balanced", "Blunt", "Deep Impact", "Jointed", "Long", "Precise", "Short"],
index;
index = ~~values["weapon1-quality"];
qualityName = list[index];
console.log("....Index:" + index + ", given:" + values["weapon1-quality"] + ", name:" + qualityName);
});
// get repeating weapon quality text values
getAttrs(["repeating_weapons:weapon1-quality"], function(values) {
var qualityName,
list=["", "Balanced", "Blunt", "Deep Impact", "Jointed", "Long", "Precise", "Short"],
index;
index = ~~values["repeating_weapons_weapon1-quality"];
qualityName = list[index];
console.log("....Index:" + index + ", given:" + values["repeating_weapons_weapon1-quality"] + ", name:" + qualityName);
});
},
/* recalculateSheet */
recalculateSheet = function(oldversion) {
if (oldversion < 0.1) {
//call your functions here
qualitySwap();
}
},
/* checkForUpdate looks at current version of page in
* sheet_version and compares to code Sheet.version calls
* recalulateSheet if versions don't match or if recalculate
* button was pressed. */
checkForUpdate = function() {
getAttrs(["sheet_version","sheet_forcesync","recalc1"],function(v){
var setter={},currVer=0,setAny=0,recalc=false;
currVer=parseFloat(v["sheet_version"],10)||0;
console.log("Current sheet data version:"+currVer+", Sheet code version:" + version );
if ( currVer!== version ) {
recalc=true;
setter["sheet_version"]= version;
setAny=1;
}
if (v["recalc1"] && v["recalc1"]!="0" ) {
currVer=-1;
recalc=true;
setter["recalc1"]=0;
setAny=1;
}
if (v["sheet_forcesync"] && v["sheet_forcesync"]!="0" ) {
currVer=-1;
recalc=true;
setter["sheet_forcesync"]=0;
setAny=1;
}
if (setAny) {
setAttrs( setter);
}
if (recalc) {
recalculateSheet(currVer);
}
});
};
return {
version:version,
checkForUpdate:checkForUpdate,
qualitySwap:qualitySwap
};
}());
//sheet
on("sheet:opened",function(){Sheet.checkForUpdate();});
on("change:recalc1",function(){Sheet.checkForUpdate();});
</script>
...