The parseQueryString method in xAPIWrapper takes no account of hashes potentially appearing after the search paramters.
Something like this would overcome the problem:
function parseQueryString()
{
var loc, qs, pairs, pair, ii, parsed;
qs = window.location.search.substr(1);
pairs = qs.split('&');
parsed = {};
for ( ii = 0; ii < pairs.length; ii++) {
pair = pairs[ii].split('=');
if (pair.length === 2 && pair[0]) {
parsed[pair[0]] = decodeURIComponent(pair[1]);
}
}
return parsed;
}