// rpax.randomly.js: a function to update a wrapped set with a random value from a given array
(function($) {
	var settings;
	var wrappedSet;
	
	$.fn.randomly = function(callerSettings) {
		// prep settings
		settings = $.extend({
			randomArray: Array(1,2,3),
			fadeIn: 1500,
			fadeOut: 1500,
			repeatSequence: 3000,
			dbg: false
			}, callerSettings || {});
            
        // validate parameters
        if ((settings.fadeIn + settings.fadeOut) > settings.repeatSequence) {
            settings.repeatSequence = settings.fadeIn + settings.fadeOut;
        }

		// save wrapped set for showRandom
		wrappedSet = this;
        // run initially
        showRandom();
		// run sequence at specified intervals
        setInterval(showRandom, settings.repeatSequence);
		return this;
	}
	
    function showRandom() {
        // get a random value
        var randomValue = getRandom();
        
		if (settings.dbg) {
			window.status = "Random value: " + randomValue;
		}
        // set the text, fade in, fade out
		wrappedSet.text(randomValue.toString()).fadeIn(settings.fadeIn).fadeOut(settings.fadeOut);
		return true;
    }
    
	// get a random value from the given array
	function getRandom() {
        var start = Math.floor(Math.random() * settings.randomArray.length);
        return settings.randomArray[start];
    }

})(jQuery);
