function circleAnimationstep(CircleSet, NowCircle) {
var period = 10 * 1000; // 12 seconds
var milliseconds = (new Date()).getTime(); // stream of MS
var progress = (milliseconds % period) / period; // stream mod 12 seconds / 12 [0-1]
var scalemin = 100
var scalemax = 700

var scale = rangedCos(
radianize(progress) , // time 0-2pi
8, // frequency >= 1
radianize(NowCircle/50), // phaseshift 0-2pi
scalemin, scalemax); // lo, hi

CircleSet[NowCircle]._x = rangedSin(
radianize(progress), // time 0-2pi
3 , // frequency >= 1
radianize(NowCircle/50) , // phaseshift 0-2pi
CircleSet[NowCircle]._width, Stage.width - CircleSet[NowCircle]._width);// lo, hi

CircleSet[NowCircle]._y = rangedSin(
radianize(progress) , // time 0-2pi
2 , // frequency >= 1
radianize(NowCircle/100) , // phaseshift 0-2pi
CircleSet[NowCircle]._width, Stage.width - CircleSet[NowCircle]._width);// lo, hi

CircleSet[NowCircle]._xscale = scale
CircleSet[NowCircle]._yscale = scale

// this one does distance formula
//CircleSet[NowCircle]._alpha = Math.sqrt( (Math.pow((CircleSet[NowCircle]._x - 200),2)) + (Math.pow((CircleSet[NowCircle]._y - 200),2)) ) * .5;

// this one relates opacity to scale
CircleSet[NowCircle]._alpha = ((scalemax - CircleSet[NowCircle]._xscale) / scalemax) * 100 + 5;

// this one does some sine phase stuff
//CircleSet[NowCircle]._alpha = rangedSin(radianize(progress), 6 , radianize(NowCircle/25) , 0, 100);



}

//----------------------------------------------------------------------------------
var circles = new Array(
circle01, circle02, circle03, circle04, circle05,
circle06, circle07, circle08, circle09, circle10,
circle11, circle12, circle13, circle14, circle15,
circle16, circle17, circle18, circle19, circle20,
circle21, circle22, circle23, circle24, circle25
);

function rangedSin(t, f, p, lo, hi) {
// t = time (varying value, should range [0,2PI])
// f = frequency (waves per time, >= 1.0)
// p = phase shift (affects timing of wave, should range [0,2PI])
// lo = lower bound of arbitrary range
// hi = upper bound of arbitrary range
var a = (hi - lo) * .5;
var mid = lo + a;
return mid + (a * Math.sin(f * t + p));
}

function rangedCos(t, f, p, lo, hi) {
// t = time (varying value, should range [0,2PI])
// f = frequency (waves per time, >= 1.0)
// p = phase shift (affects timing of wave, should range [0,2PI])
// lo = lower bound of arbitrary range
// hi = upper bound of arbitrary range
var a = (hi - lo) * .5;
var mid = lo + a;
return mid + (a * Math.cos(f * t + p));
}

function radianize(x) {
return (x * (2 * Math.PI));
}

function updateFrame() {
for (var j = 0; j < circles.length; j++) {
circleAnimationstep(circles, j);
}
}

this.onEnterFrame = updateFrame;