
var counter = 0;
var divs = new Array();
var xcoords = new Array();
var ycoords = new Array();
var dirs = new Array();
var swirling = false;


function drift(className){
   if(isOldBrowser()){
      return;
   }
   getElementsByClassName(className, document.body);
   swirling = true;
   resume();
}

function pause(){
   swirling = false;
}

function resume(){
   swirling = true;
   move();
}

function move(){

   if(divs.length<2){
      return;
   }
   
   for(i=0; i<divs.length; i++){
      w = divs[i].clientWidth;
      h = divs[i].clientHeight;
      xmin = 70;
      ymin = -35;
      xmax = document.body.clientWidth-w;
      ymax = document.body.clientHeight-h;
      dx = Math.cos(dirs[i]);
      dy = Math.sin(dirs[i]);
      divs[i].style.left = (xcoords[i]+dx-w/2) + 'px';
      divs[i].style.top = (ycoords[i]+dy-h/2) + 'px';
      xcoords[i] += dx;
      ycoords[i] += dy;
      dirs[i] += 0.5*(Math.random()-0.5);
      
      if(xcoords[i]<xmin){
         xcoords[i]=xmin;
         dirs[i] = dirs[i]+Math.PI;
      }
      if(ycoords[i]<ymin){
         ycoords[i]=ymin;
         dirs[i] *= -1;
      }
      if(xcoords[i]>xmax){
         xcoords[i]=xmax;
         dirs[i] = dirs[i]+Math.PI;
      }
      if(ycoords[i]>ymax){
         ycoords[i]=ymax;
         dirs[i] *= -1;
      }
   }
   
   counter++;
   
   if(swirling) setTimeout("move();",20);

}

function getElementsByClassName(className, obj) {
    if ( obj.className == className ) {
        divs[divs.length] = obj;
        obj.position = 'absolute';
        xcoords[xcoords.length] = obj.parentNode.clientWidth/2;
        ycoords[ycoords.length] = obj.parentNode.clientHeight/2;
        dirs[dirs.length] = 2*Math.PI*Math.random();
    }
    for ( var i = 0; i < obj.childNodes.length; i++ )
        getElementsByClassName(className, obj.childNodes[i]);
}

