(function ($)
{
    // Zachary Johnson
    // http://www.zachstronaut.com
    // December 2009
    
    $.fn.ignite = function (burn)
    {
        $(this).each(
            function ()
            {
                var letters = $(this).text().split('');
                $(this).html('<span>' + letters.join('</span><span>') + '</span>');
                $spans = $(this).find('span');
                setInterval(function () {$spans.each(burn);}, 100);
            }
        );
    }
})(jQuery);

function gasFlame()
{
    // Zachary Johnson
    // http://www.zachstronaut.com
    // December 2009
    
    var colors = ['#fff', '#99f', '#00f', '#009'];
    if (Math.random() > 0.90)
    {
        colors.push('#f90');
    }
    
    var hv = 0.04;
    
    var textShadows = [];

    var c = 0;
    var h = 0;
    var s = 0;

    while (c < colors.length)
    {
        s = 2 + Math.round(Math.random() * 2);

        while (s--)
        {
            shadow = '0 ' + h + 'em ' + -h + 'em ' + colors[c];

            textShadows.push(shadow);

            h -= hv;
        }

        c++;
    }

    $(this).css({color: colors[0], textShadow: textShadows.join(', ')});
}

$(
    function ()
    {
        $('p.flaming').ignite(gasFlame);
    }
);