var formChanged = false; function unsaved_callback(e) { if(formChanged == false) return; var el = Event.element(e); if((el.tagName == 'A' || (el.tagName == 'SPAN' && el.up().tagName == 'A')) && el.rel != 'nowarn' && el.up().rel !='nowarn' && !el.up('td.mceToolbarTop')) { if(!confirm("There may be unsaved changes on this page. Click OK to continue.")) { return Event.stop(e); } } } function saveBeforeLeaving() { $$('form').each(function(form) { form.getElements().each(function(input) { input.observe('change', function() { formChanged = true; }); }); }); $(document.body).observe('click', unsaved_callback ); }