function addevent(obj,evttype,func,cap){ cap=cap||false; if(obj.addeventlistener){ obj.addeventlistener(evttype,func,cap); return true; }else if(obj.attachevent){ if(cap){ obj.setcapture(); return true; }else{ return obj.attachevent("on" + evttype,func); } }else{ return false; } } function getpagescroll(){ var xscroll,yscroll; if (self.pagexoffset) { xscroll = self.pagexoffset; } else if (document.documentelement && document.documentelement.scrollleft){ xscroll = document.documentelement.scrollleft; } else if (document.body) { xscroll = document.body.scrollleft; } if (self.pageyoffset) { yscroll = self.pageyoffset; } else if (document.documentelement && document.documentelement.scrolltop){ yscroll = document.documentelement.scrolltop; } else if (document.body) { yscroll = document.body.scrolltop; } arraypagescroll = new array(xscroll,yscroll); return arraypagescroll; } function getpagesize(){ var xscroll, yscroll; if (window.innerheight && window.scrollmaxy) { xscroll = document.body.scrollwidth; yscroll = window.innerheight + window.scrollmaxy; } else if (document.body.scrollheight > document.body.offsetheight){ xscroll = document.body.scrollwidth; yscroll = document.body.scrollheight; } else { xscroll = document.body.offsetwidth; yscroll = document.body.offsetheight; } var windowwidth, windowheight; if (self.innerheight) { windowwidth = self.innerwidth; windowheight = self.innerheight; } else if (document.documentelement && document.documentelement.clientheight) { windowwidth = document.documentelement.clientwidth; windowheight = document.documentelement.clientheight; } else if (document.body) { windowwidth = document.body.clientwidth; windowheight = document.body.clientheight; } if(yscroll < windowheight){ pageheight = windowheight; } else { pageheight = yscroll; } if(xscroll < windowwidth){ pagewidth = windowwidth; } else { pagewidth = xscroll; } arraypagesize = new array(pagewidth,pageheight,windowwidth,windowheight) return arraypagesize; } var admoveconfig=new object(); admoveconfig.isinitialized=false; admoveconfig.scrollx=0; admoveconfig.scrolly=0; admoveconfig.movewidth=0; admoveconfig.moveheight=0; admoveconfig.resize=function(){ var winsize=getpagesize(); admoveconfig.movewidth=winsize[2]; admoveconfig.moveheight=winsize[3]; admoveconfig.scroll(); } admoveconfig.scroll=function(){ var winscroll=getpagescroll(); admoveconfig.scrollx=winscroll[0]; admoveconfig.scrolly=winscroll[1]; } addevent(window,"resize",admoveconfig.resize); addevent(window,"scroll",admoveconfig.scroll); function admove(id){ if(!admoveconfig.isinitialized){ admoveconfig.resize(); admoveconfig.isinitialized=true; } var obj=document.getelementbyid(id); obj.style.position="absolute"; var w=admoveconfig.movewidth-obj.offsetwidth; var h=admoveconfig.moveheight-obj.offsetheight; var x = w*math.random(),y = h*math.random(); var rad=(math.random()+1)*math.pi/6; var kx=math.sin(rad),ky=math.cos(rad); var dirx = (math.random()<0.5?1:-1), diry = (math.random()<0.5?1:-1); var step = 1; var interval; this.setlocation=function(vx,vy){x=vx;y=vy;} this.setdirection=function(vx,vy){dirx=vx;diry=vy;} obj.custommethod=function(){ obj.style.left = (x + admoveconfig.scrollx) + "px"; obj.style.top = (y + admoveconfig.scrolly) + "px"; rad=(math.random()+1)*math.pi/6; w=admoveconfig.movewidth-obj.offsetwidth; h=admoveconfig.moveheight-obj.offsetheight; x = x + step*kx*dirx; if (x < 0){dirx = 1;x = 0;kx=math.sin(rad);ky=math.cos(rad);} if (x > w){dirx = -1;x = w;kx=math.sin(rad);ky=math.cos(rad);} y = y + step*ky*diry; if (y < 0){diry = 1;y = 0;kx=math.sin(rad);ky=math.cos(rad);} if (y > h){diry = -1;y = h;kx=math.sin(rad);ky=math.cos(rad);} } this.run=function(){ var delay = 10; interval=setinterval(obj.custommethod,delay); obj.onmouseover=function(){clearinterval(interval);} obj.onmouseout=function(){interval=setinterval(obj.custommethod, delay);} } }