//// SCRIPT by Jonas Lorenz aka brain.worm ////

// effectoptions = new Array(bewegungsmuster,dateiname,anzahl,geschwindigkeit,anzahl verschiededer bilder);
//// bewegungsmuster: 1 - nach oben / 2 - nach unten / 3 - gerade nach unten
//// geschwindigkeit: kleiner=schneller
//// anzahl verschiededer bilder: ersetzt 1 im dateiname durch n
//
// bsp:
//// effectoptions = new Array(2,'snowflake_hexagon_falling_lg_clr.gif',8,5,0);

var doc_width, doc_height;
var dx, x_position, y_position, amplitude, x_step, y_step;
var no, i, active;
var towrite="";

function setup_effect()
  {
  if(effectoptions[0])
    {
    clearTimeout(active);
    towrite="";

    dx = new Array();
    x_position = new Array();
    y_position = new Array();
    amplitude = new Array();
    x_step = new Array();
    y_step = new Array();

    if (self.innerWidth)
      {
      doc_width = self.innerWidth;
      doc_height = self.innerHeight;
      }
    else
      {
      doc_width = document.body.offsetWidth ;
      doc_height = document.body.offsetHeight;
      }

    for (i = 0; i < effectoptions[2]; ++ i)
      {
      dx[i] = 0;
      x_position[i] = Math.random()*(doc_width-160);
      y_position[i] = Math.random()*doc_height;
      amplitude[i] = Math.random()*20;
      x_step[i] = 0.02 + Math.random()/10;
      y_step[i] = 0.7 + Math.random();

      if(effectoptions[4]==0)
        {
        picture = "http://www.sheerascardshopmitherz.de/javascript/"+effectoptions[1];
        }
      else
        {
        no = (i % effectoptions[4]) + 1;
        picture = "http://www.sheerascardshopmitherz.de/javascript/"+effectoptions[1].replace(/1/,no);
        }

      if (document.layers)
        {
        towrite=towrite+"<layer name=\"dot"+i+"\" left=\"15\" top=\"15\" visibility=\"show\"><img src=\""+picture+"\" border=\"0\"></layer>";
        }
      else
        {
        towrite=towrite+"<div id=\"dot"+i+"\" style=\"position:absolute; z-index:"+i+"; visibility:visible; top:15px; left:15px;\"><img src=\""+picture+"\" border=\"0\"></div>";
        }
      }

    document.getElementById('effect').innerHTML=towrite;

    if (document.layers)
      {
      animateNS();
      }
    else if (self.innerWidth)
      {
      animateMOZ();
      }
    else
      {
      animateIE();
      }
    }
  else
    {
    document.getElementById('effect').innerHTML="";
    }
  }

function animateNS()
  {
  for (i = 0; i < effectoptions[2]; ++ i)
    {
    y_position[i] += y_step[i];
    if (y_position[i] > doc_height+60)
      {
      x_position[i] = Math.random()*(doc_width-amplitude[i]-160);
      y_position[i] = 0;
      x_step[i] = 0.02 + Math.random()/10;
      y_step[i] = 0.7 + Math.random();
      doc_width = self.innerWidth;
      doc_height = self.innerHeight;
      }
    dx[i] += x_step[i];

    if (effectoptions[0]==1)
      {
      document.layers["dot"+i].top = doc_height-y_position[i]*1.2  + window.pageYOffset;
      document.layers["dot"+i].left = x_position[i] + amplitude[i]*Math.sin(dx[i])  + window.pageXOffset;
      }
    else if (effectoptions[0]==2)
      {
      document.layers["dot"+i].top = y_position[i]  + window.pageYOffset;
      document.layers["dot"+i].left = x_position[i] + amplitude[i]*Math.sin(dx[i])  + window.pageXOffset;
      }
    else if (effectoptions[0]==3)
      {
      document.layers["dot"+i].top = y_position[i]  + window.pageYOffset;
      document.layers["dot"+i].left = x_position[i] + amplitude[i]  + window.pageXOffset;
      }
    }
  active=setTimeout("animateNS()", effectoptions[3]);
  }

function animateMOZ()
  {
  for (i = 0; i < effectoptions[2]; ++ i)
    {
    y_position[i] += y_step[i];
    if (y_position[i] > doc_height+100)
      {
      x_position[i] = Math.random()*(doc_width-amplitude[i]-160);
      y_position[i] = 0;
      x_step[i] = 0.02 + Math.random()/10;
      y_step[i] = 0.7 + Math.random();
      doc_width = document.body.clientWidth;
      doc_height = document.body.clientHeight;
      }
    dx[i] += x_step[i];

    if (effectoptions[0]==1)
      {
      document.getElementById("dot"+i).style.top = doc_height-y_position[i]*1.2 + document.body.scrollTop + "px";
      document.getElementById("dot"+i).style.left = x_position[i] + amplitude[i]*Math.sin(dx[i]) + document.body.scrollLeft + "px";
      }
    else if (effectoptions[0]==2)
      {
      document.getElementById("dot"+i).style.top = y_position[i]-100 + document.body.scrollTop + "px";
      document.getElementById("dot"+i).style.left = x_position[i] + amplitude[i]*Math.sin(dx[i]) + document.body.scrollLeft + "px";
      }
    else if (effectoptions[0]==3)
      {
      document.getElementById("dot"+i).style.top = y_position[i]-100 + document.body.scrollTop + "px";
      document.getElementById("dot"+i).style.left = x_position[i] + amplitude[i] + document.body.scrollLeft + "px";
      }
    }
  active=setTimeout("animateMOZ()", effectoptions[3]);
  }

function animateIE()
  {
  for (i = 0; i < effectoptions[2]; ++ i)
    {
    y_position[i] += y_step[i];
    if (y_position[i] > doc_height+100)
      {
      x_position[i] = Math.random()*(doc_width-amplitude[i]-160);
      y_position[i] = 0;
      x_step[i] = 0.02 + Math.random()/10;
      y_step[i] = 0.7 + Math.random();
      doc_width = document.body.clientWidth;
      doc_height = document.body.clientHeight;
      }
    dx[i] += x_step[i];

    if (effectoptions[0]==1)
      {
      document.getElementById("dot"+i).style.pixelTop = doc_height-y_position[i]*1.2 + document.body.scrollTop;
      document.getElementById("dot"+i).style.pixelLeft = x_position[i] + amplitude[i]*Math.sin(dx[i]) + document.body.scrollLeft;
      }
    else if (effectoptions[0]==2)
      {
      document.getElementById("dot"+i).style.pixelTop = y_position[i]-100 + document.body.scrollTop;
      document.getElementById("dot"+i).style.pixelLeft = x_position[i] + amplitude[i]*Math.sin(dx[i]) + document.body.scrollLeft;
      }
    else if (effectoptions[0]==3)
      {
      document.getElementById("dot"+i).style.pixelTop = y_position[i]-100 + document.body.scrollTop;
      document.getElementById("dot"+i).style.pixelLeft = x_position[i] + amplitude[i] + document.body.scrollLeft;
      }
    }
  active=setTimeout("animateIE()", effectoptions[3]);
  }

