var AdMoveConfig=new Object();    
AdMoveConfig.IsInitialized=false;    
AdMoveConfig.ScrollX=0;    
AdMoveConfig.ScrollY=0;    
AdMoveConfig.MoveWidth=0;    
AdMoveConfig.MoveHeight=0;   
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;    
}  
   
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);}    
    }    
}
