Looking for realistic pool water ideas

The water in pools reflects light differently than lakes, probably due to clarity. For lack of a better descriptive term, I think you would call it reticulation.

Found an example on FlashKit but it is a many framed animation of several bitmaps making the k weight much higher than I like.

http://www.flashkit.com/movies/Animations/Other/water_po-serkanp-11965/index.php

There is a ripple effect on mouseover. Not sure if I could leverage that to depict the light retriculation instead of the bitmaps

function intervalWave()
{
    makeWave(random(maxW), random(maxH));
} // End of the function
function makeWave(wx, wy)
{
    var _loc1 = 5;
    curr.fillRect(new flash.geom.Rectangle(wx - _loc1, wy - _loc1, _loc1 * 2, _loc1 * 2), 16777215);
} // End of the function
function control()
{
    buff.applyFilter(curr, rect, point, waveMap);
    buff.draw(prev, matrix, null, "subtract");
    disp.draw(buff, matrix, damp);
    prev = curr;
    curr = buff.clone();
    clip.filters = [displace];
    if (drag == 1)
    {
        xmax = elma.ps3._width / 5;
        ymax = (elma.ps3._height - 20) / 5;
        for (i = 0; i < xmax; i++)
        {
            myx = elma.ps3._x + 5 * i;
            myy = elma.ps3._y;
            makeWave(myx, myy);
            makeWave(myx, myy + elma.ps3._height);
        } // end of for
        for (j = 0; j < ymax; j++)
        {
            myx = elma.ps3._x;
            myy = elma.ps3._y + 5 * j;
            makeWave(myx, myy);
            makeWave(myx + elma.ps3._width, myy);
        } // end of for
        xmax2 = elma.psp._width / 5;
        ymax2 = (elma.psp._height - 20) / 5;
        for (i = 0; i < xmax2; i++)
        {
            myx2 = elma.psp._x + 5 * i;
            myy2 = elma.psp._y;
            makeWave(myx2, myy2);
            makeWave(myx2, myy2 + elma.psp._height);
        } // end of for
        for (j = 0; j < ymax2; j++)
        {
            myx2 = elma.psp._x;
            myy2 = elma.psp._y + 5 * j;
            makeWave(myx2, myy2);
            makeWave(myx2 + elma.psp._width, myy2);
        } // end of for
    } // end if
} // End of the function
stop ();
setProperty("", _quality, "HIGH");
var home = _root.homedir;
var maxW = 670;
var maxH = 220;
var disp = new flash.display.BitmapData(maxW, maxH, false);
var buff = disp.clone();
var curr = disp.clone();
var prev = disp.clone();
var point = new flash.geom.Point();
var rect = new flash.geom.Rectangle(0, 0, maxW, maxH);
var matrix = new flash.geom.Matrix();
var displace = new flash.filters.DisplacementMapFilter(disp, point, 1, 1, 10, 10, "ignore");
var waveMap = new flash.filters.ConvolutionFilter(3, 3, [1, 1, 1, 1, 1, 1, 1, 1, 1], 4.500000E+000);
drag = 0;
var damp = new flash.geom.ColorTransform(1, 1, 1, 1, 63, 63, 63, 0);
clip.scrollRect = new flash.geom.Rectangle(0, 0, maxW, maxH);
onMouseMove = function ()
{
    makeWave(_xmouse, _ymouse);
};
onEnterFrame = control;
var interval = setInterval(this, "intervalWave", 400);