Che ho trovato in rete.
Funziona bene, l'unica cosa è che il banner va troppo fuori e vorrei restringere l'area di movimento in un rettangono diciamo di 500 pixel di lato ( e se fosse possibile dargli un semplice movimento da sinistra verso destra)
codice:
<html><head>


<
<link rel="stylesheet" href="impresa.css" type="text/css"></head><body bgcolor="#90b000"> <div id="intel" style="z-index: 7; left: 257px; width: 350px; position: absolute; top: 40px; height: 84px;"> 
  <center>
<DIV id=advsp_floatlayer 
style="Z-INDEX: 200;WIDTH: 80px;HEIGHT: 80px;POSITION: absolute;TOP: 100px;LEFT: -100px">
<A href="/premio2007.htm" >
[img]bannerc.gif[/img]</A></DIV>
<SCRIPT LANGUAGE="Javascript">
<!--
advsp_rolling=0;
advsp_x_pos=-100;
advsp_y_pos=100;
advsp_NAV=0;
advsp_IE=0;
advsp_VER = parseInt(navigator.appVersion);
var advsp_n = navigator.appName;
if (advsp_n.indexOf("Netscape")>=0) advsp_NAV=advsp_VER;
if (advsp_n.indexOf("Microsoft")>=0) advsp_IE=advsp_VER;
var advsp_route = new Array(150,350,1,1,40,510,350,1,2,40,620,150,1,3,40,780,150,3,4,40,780,-100,10,5,40,-100,-100,5,6,40,-100,150,5,0,40);
function advsp_move2(x,y,s) {
	var dx,dy;
    if ((advsp_NAV >= 4)||(advsp_IE >= 4)) {
	if ((x==advsp_x_pos)&&(y==advsp_y_pos)) return 1;
	dx=x-advsp_x_pos;
	if (dx<0) dx=-dx;
	dy=y-advsp_y_pos;
	if (dy<0) dy=-dy;
	if ((dx<1+s)&&(dy<1+s)) return 1;
		dx=(dx/40)+s;
		dy=(dy/40)+s;
	if (x>(advsp_x_pos+s)) advsp_x_pos=advsp_x_pos+dx;
	else if (x<(advsp_x_pos-s)) advsp_x_pos=advsp_x_pos-dx;
	if (y>(advsp_y_pos+s)) advsp_y_pos=advsp_y_pos+dy;
	else if (y<(advsp_y_pos-s)) advsp_y_pos=advsp_y_pos-dy;
        if (advsp_IE >= 4) {
                advsp_floatlayer.style.top=advsp_y_pos;
                advsp_floatlayer.style.left=advsp_x_pos;
        } else if (advsp_NAV == 4) {
                document.advsp_floatlayer.pageY=advsp_y_pos;
                document.advsp_floatlayer.pageX=advsp_x_pos;
        } else if (advsp_NAV == 5) {
		var o = document.getElementById("advsp_floatlayer");
		o.style.left=advsp_x_pos;
		o.style.top=advsp_y_pos;
	} else return 1;
        return 0;
    }
    return 1;
}
function advsp_show(s) {
	var stp,apos,sleep;
	if ((s==-1)&&(advsp_rolling==1)) return;
	if (s==-1) {
		s=0;
		advsp_rolling=1;
	}
	if ((advsp_NAV>=4)||(advsp_IE>=4)) {
		stp=s;
		apos = stp * 5;
		sleep = 40;
		if (advsp_move2(advsp_route[apos],advsp_route[apos+1],advsp_route[apos+2]) == 1)
			{stp = advsp_route[apos+3]; sleep= advsp_route[apos+4];}
		if (stp>=0) timerID=setTimeout('advsp_show('+stp+')',sleep);
	}
}
setTimeout('advsp_show(-1)',100);
//-->
</SCRIPT>