rem: SimileAjax.History._fire("onBeforeRedoSeveral", []); 
add: SimileAjax.History._listeners.fire("onBeforeRedoSeveral", []); 
context: SimileAjax.History._handleIFrameOnLoad = function() {    /*     *  This function is invoked when the user herself     *  navigates backward or forward. We need to adjust     *  the application's state accordingly.     */         var q = SimileAjax.History._iframe.contentWindow.location.search;    var c = (q.length == 0) ? 0 : Math.max(0, parseInt(q.substr(1)));        if (c < SimileAjax.History._currentIndex) { // need to undo        SimileAjax.History._fire("onBeforeUndoSeveral", []);                while (SimileAjax.History._currentIndex > c &&                SimileAjax.History._currentIndex > SimileAjax.History._baseIndex) {                           SimileAjax.History._currentIndex--;                        var action = SimileAjax.History._actions[SimileAjax.History._currentIndex - SimileAjax.History._baseIndex];                        SimileAjax.History._fire("onBeforeUndo", [ action ]);            try {                action.undo();                SimileAjax.History._fire("onAfterUndo", [ action, true ]);            } catch (e) {                SimileAjax.History._fire("onAfterUndo", [ action, false ]);            }        }                SimileAjax.History._fire("onAfterUndoSeveral", []);            } else if (c > SimileAjax.History._currentIndex) { // need to redo        SimileAjax.History._fire("onBeforeRedoSeveral", []);                while (SimileAjax.History._currentIndex < c &&                SimileAjax.History._currentIndex - SimileAjax.History._baseIndex < SimileAjax.History._actions.length) {                           var action = SimileAjax.History._actions[SimileAjax.History._currentIndex - SimileAjax.History._baseIndex];                        SimileAjax.History._fire("onBeforeRedo", [ action ]);            try {                action.perform();                SimileAjax.History._fire("onAfterRedo", [ action, true ]);            } catch (e) {                SimileAjax.History._fire("onAfterRedo", [ action, false ]);            }                        SimileAjax.History._currentIndex++;        }                SimileAjax.History._fire("onAfterRedoSeveral", []);    } else {        var index = SimileAjax.History._currentIndex - SimileAjax.History._baseIndex - 1;        var title = (index >= 0 && index < SimileAjax.History._actions.length) ?            SimileAjax.History.formatHistoryEntryTitle(SimileAjax.History._actions[index].label) :            SimileAjax.History._plainDocumentTitle;                    SimileAjax.History._iframe.contentWindow.document.title = title;        document.title = title;        return;    }        var diff = c - SimileAjax.History._currentIndex;    SimileAjax.History._currentIndex += diff;    SimileAjax.History._baseIndex += diff;            SimileAjax.History._iframe.contentWindow.location.search = "?" + c;};
meta: 6194	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/6194/ad43220ac38569f1b1e9c78f3783829b1f665216/history.js/clean/src/webapp/api/scripts/history.js