rendered paste bodyvar saving = false;var saveagain = false;var savetimer = null;var saveInterval = 15000; // ms save intervalfunction save() { if (saving = true) { saveagain = true; return; } saving = true; clearTimeout(savetimer); save_internal();}function save_internal() { /* ajax call here w/ callback being passed as save_response */}function save_response() { /* code to evaluate save succeeded or not */ if (saveagain) { saveagain = false; save_internal(); } else { save_startTimer(); }}function save_startTimer() { if (savetimer) { return; // save already queued } savetimer = setTimeout('save()', saveInterval);}function setUserChoice() { /* code here to set user selection */ save_startTimer();}