/*

Color Blending for Violet
Copyright (c) 2008 Polychrome Studio, Inc.
http://www.polychrome.com/

Depedencies: jQuery (1.2.2)

*/

var yellow = [145, 142, 84];
var violet = [62, 46, 97];

function generateBlend(color1, color2, steps) {

    var r1 = color1[0], r2 = color2[0],
        g1 = color1[1], g2 = color2[1],
        b1 = color1[2], b2 = color2[2];

    var rDelta = (r2 - r1) / steps,
        gDelta = (g2 - g1) / steps,
        bDelta = (b2 - b1) / steps;

    var r = r1, g = g1, b = b1, blend = [];

    for(var i = 0; i < steps; i++) {
        r += Math.round(rDelta), g += Math.round(gDelta), b += Math.round(bDelta);
        blend.push([r, g, b]);
    }

    return blend;
}

$(document).ready(function() {

    var lines;

    $('#content>p').each(function() {

        var line, word;
        var html = $(this).html().replace(/\n|\r|\t/gm, '').replace(/\s{2}/gm, ' ');
        var words = html.split(' ');

        lines = [];

        while(words.length > 0) {
            
            line = '';
            
            while(line.replace(/<[^>]+/gim, '').length < 64) {
                word = words.shift();
                if(typeof word == 'undefined') break;
                line += word + ' ';
                if(!$.browser.msie && word.match(/<br\s?\/?>/gim) != null) break; // if we find a <br /> then wrap the line already!
            }

            lines.push(line);
        }

        $(this).empty();

        for(var i = 0; i < lines.length; i++) {
            $(this).append($('<span>' + lines[i] + '</span>'));
        }

    });

    var blend = generateBlend(yellow, violet, $('#content>p span').length);

    $('#content>p span').each(function() {
        var step = blend.shift();
        $(this).css('color', 'rgb('+step[0]+','+step[1]+','+step[2]+')');
    });

});
