browserUtil = { isRhino: true, pauseAndThen: function (cb) { cb(); }, cpsIterate: function (f, start, end, pause, callback) { function go() { var called = false; if (start >= end) { callback && callback(); } else { f(start, function () { if (!called) { called = true; start++; go(); } }); } } go (start); }, cpsMap: function (map, list, pause, callback) { browserUtil.cpsIterate(function (i, cb) { map(list[i], i, list.length, cb); }, 0, list.length, pause, callback); }, loadScripts: function(scriptNames, callback) { for (i=0; i