var pictures = new Array();
pictures[0] = new Array('GPS-block2r-jpow.gif',120,110);
pictures[1] = new Array('CHAMP.gif',90,70);
pictures[2] = new Array('Galileo.gif',100,90);
pictures[3] = new Array('GRACE.gif',100,80);
var imax = 4;
var vel = 2;
var wait = 2;
scale = 0.2;
var inc = 0.00035;
var timer;
var brOK=false;
var mie=false;
var pageX;
var pageY;
var pageW;
var pageH;
var imax = Math.min(pictures.length,imax);
var vel2 = vel/2;
function Navigateur()
{
	if (navigator.appName.indexOf("Netscape") > -1) {return "Netscape";}
	if (navigator.appName.indexOf("Explorer") > -1) {return "Explorer";}
	return "Unknown";
}
function Version()
{
	return parseFloat(navigator.appVersion)
}
function checkbrOK()
{
	var nav=Navigateur();
	var ver=Version();
	if(nav=="Explorer") {mie=true;}
	               else {wait=wait/2;vel=vel*1.5}
	if (ver>=4)
		{
		brOK=true;
		}
}
function get_w_size()
{
        if(!mie)
	{
		pageX=window.pageXOffset-40;
		pageW=window.innerWidth;
		pageY=window.pageYOffset-40;
		pageH=window.innerHeight+40;
	} else {
		pageX=window.document.body.scrollLeft-40;
		pageW=window.document.body.offsetWidth;
		pageY=window.document.body.scrollTop-40;
		pageH=window.document.body.offsetHeight+40;
	} 
}
function objet(nom,width,height)
{
	this.nom=nom;
	this.vx=0;
	this.vy=0;
	this.w=width;
	this.h=height;
	this.xx=0;
	this.yy=0;
	this.i=0;
	this.t=0;
	this.r=0;
	this.f=1;
}
function init_pos()
{
          var zufall1 = Math.random();
          var zufall2 = Math.random();
          var offset = 1 + (Math.round(zufall1*20)-10)/10;
           var velx   = Math.round(zufall2*vel)-vel2;
          var vely   = Math.round(zufall1*vel)-vel2;
      obj.t = Math.round(zufall1*5)/1000;
	  position = Math.round(zufall2*3)+1;
	  if (position < 3) 
	  {
	       	obj.xx = pageX + 0.3*(pageW)*offset;
	       	obj.vx = velx;
	   	if (position == 1) 
	   	{
	   		obj.yy = pageY;
	   		obj.vy = vely;
	   	} else {
	   	  	obj.yy = pageY+pageH;
	   	  	obj.vy = -vely;
	   	}
	  } else {
	  	obj.yy = pageY + 0.3*(pageH)*offset;
		obj.vy = vely;
		if (position == 3) 
		{
			obj.xx = pageX;
			obj.vx = velx;
		} else {
		  	obj.xx = pageX+pageW;
			obj.vx = -velx;
	   	}
	  }
	  index = Math.round(Math.random()*pictures.length);
	  if (index<pictures.length && pictures[index][4]>0) 
	  {
	    pictures[obj.i][4] = pictures[obj.i][4] + 1;
	    obj.w = pictures[index][1];
	    obj.h = pictures[index][2];
	    obj.i = index;
	    pictures[obj.i][4] = pictures[obj.i][4] - 1;
	    obj.r = pictures[index][3];
	  }
	  if (mie)
	  {  
	        angle = 0;
	  	if (obj.r==1)
	  	  {     
	  	        if (obj.vx*obj.vy > 0) angle = angle + 1;
	  	        if (obj.vx <= 0) angle = angle + 2;
	  	  } 
          }
	  if (Math.abs(obj.vx)<1) obj.vx = 1*obj.vx;
	  if (Math.abs(obj.vy)<1) obj.vy = 1*obj.vy;
}
function deplace_obj(nom)
{
  if(brOK)
  {     eval("obj="+nom);
      var zufall5 = Math.random();
      var zufall6 = Math.random();			  		
	obj.xx = obj.xx + obj.vx * Math.cos(obj.t) + (3*Math.sin(zufall6) - Math.sin(obj.t)/5)/3;
	obj.yy = obj.yy + obj.vy * Math.sin(obj.t) - (Math.tan(zufall5) + Math.cos(zufall6))/15;
	var oelement = document.getElementById(obj.nom).style;
	if ((obj.xx > pageX) && (obj.xx < pageX+pageW) && (obj.yy > pageY) && (obj.yy < pageY+pageH) && (obj.t > 0))
        {         
       	obj.t  = obj.t + inc;
       	eval("oelement.height = '"+(obj.h*Math.sin(Math.sqrt(scale*Math.PI/2)))+"'");
       	eval("oelement.width = '"+(obj.w*Math.sin(Math.sqrt(scale*Math.PI/2)))+"'");
   	    oelement.top  = obj.yy-scale*obj.h/2; 
		oelement.left = obj.xx-scale*obj.w/2;
  	    } else {
  	    init_pos();
  	}
  }
}
function deplace()
{
	get_w_size();
        for (var i=1; i<=imax; i++) eval("deplace_obj('o"+i+"')");
	timer = setTimeout("deplace()",wait); 
}
for (var i=1; i<=imax; i++) eval("var o"+i);
function start()
{       
        checkbrOK(); 
	for (var i=1; i<=imax; i++) 
	{
		eval("o"+i+"=new objet('o"+i+"',"+pictures[i-1][1]+","+pictures[i-1][2]+")");
		eval("o"+i+".i=i-1");
		pictures[i-1][4] = pictures[i-1][4] - 1;
	}
	if(brOK) deplace();
}
function end()
{
	if(brOK && timer!=null)	{clearTimeout(timer);}
}
for (var i=1; i<=imax; i++)
{
	imgtag = '<IMG id="o'+i+'" style="POSITION: absolute; HEIGHT: 0px; WIDTH: 0px;" border=0 src="'+pictures[i-1][0]+'" onClick="javascript:stop('+i+')">';
	document.write(imgtag);
}
window.onload=start;
window.onunload=end;	