After playing around w/ the function more I tried working with a callback function - which did work and allowed me to update any of the settings as I desired. The only downfall was I had to wait for the current fade / timeout to finish before the new settings would appear. This is not what I wanted b/c if there is a long timeout (ie 20 sec) the user would have to wait until it expired before they saw their new updates in the preview. The problem I faced was, I had no way to clear the timeouts that were being set, b/c their timeoutID is never set in the original plugin. so I modified the original script to set these so I could access them and then recall the innerfade function
in the innerfade function:
$.innerfade.startTimeout = setTimeout(function() {
$.innerfade.next(elements, settings);
}, settings.timeout);
in the next function:
$.innerfade.continueTimeout = setTimeout((function() {
$.innerfade.next(elements, settings);
}), settings.timeout);
Now I can bind events to my form elements when they change, clear these timeouts, and reassign the function to my containing div.
$('#timeout').change(update);
function update()
{
if (typeof($.innerfade.startTimeout) != 'undefined') {
clearTimeout($.innerfade.startTimeout);
}
if (typeof($.innerfade.continueTimeout) != 'undefined') {
clearTimeout($.innerfade.continueTimeout);
}
$('#container').innerfade({[opts]});
}