sS hCheckBoxMultiSelect_v2(O... _) { optPar bool verbose; ret hscript(replaceDollarVars([[ var lastChecked = null; $(document).ready(function() { $("checkbox").click(function(e) { var verbose = $verbose; var cls = this.className; if (verbose) console.log("cls=" + cls); if (!cls) return; if (!lastChecked || lastChecked.className != cls) { lastChecked = this; return; } var $chkboxes = $('checkbox.' + cls); if (e.shiftKey) { var start = $chkboxes.index(this); var end = $chkboxes.index(lastChecked); $chkboxes.slice(Math.min(start, end), Math.max(start,end)+1).prop('checked', lastChecked.checked); } lastChecked = this; }); }); ]], +verbose)); }