I been planning to do some stuff with coordinating so i wrote 2 functions to both set and get coordinates of a element, to test this i added some functions for movement in 4 directions with 3 different speeds causing it to make some sort of egg different at every time it circels. Here is a source. Test and comment. <div id="victim" STYLE="position:relative;left:0px;top:0px;">This is a test</div> <SCRIPT LANGUAGE="JavaScript"> obj = document.getElementById('victim'); function SetCoordinates(xlocation,ylocation,stuff) { if(!stuff){ stuff=obj; } xlocation=parseInt(xlocation); ylocation=parseInt(ylocation); stuff.style.left = xlocation + "px"; stuff.style.top = ylocation + "px"; } function GetCoordinates(type,stuff){ if(!stuff){ stuff=obj; } if(type.toLowerCase()=='x'){ return parseInt(stuff.style.left); }else if(type.toLowerCase()=='y'){ return parseInt(stuff.style.top); }else{ return false; }} a=0; function right(){ if(a<5){ SetCoordinates(GetCoordinates('x')+2,GetCoordinates('y')); }else if(a<8){ SetCoordinates(GetCoordinates('x')+5,GetCoordinates('y')); }else if(a<10){ SetCoordinates(GetCoordinates('x')+8,GetCoordinates('y')); }else if(a<15){ SetCoordinates(GetCoordinates('x')+12,GetCoordinates('y')); }else if(a<20){ SetCoordinates(GetCoordinates('x')+8,GetCoordinates('y')); }else if(a<24){ SetCoordinates(GetCoordinates('x')+5,GetCoordinates('y')); }else if(a<28){ SetCoordinates(GetCoordinates('x')+2,GetCoordinates('y')); }else if(a<30){ SetCoordinates(GetCoordinates('x'),GetCoordinates('y')); }else{ clearInterval(rawr); rawr=setInterval('left()',rawrs) a--; } a++; } function left(){ if(a>30){ SetCoordinates(GetCoordinates('x')-2,GetCoordinates('y')); }else if(a>28){ SetCoordinates(GetCoordinates('x')-5,GetCoordinates('y')); }else if(a>24){ SetCoordinates(GetCoordinates('x')-8,GetCoordinates('y')); }else if(a>20){ SetCoordinates(GetCoordinates('x')-12,GetCoordinates('y')); }else if(a>15){ SetCoordinates(GetCoordinates('x')-8,GetCoordinates('y')); }else if(a>10){ SetCoordinates(GetCoordinates('x')-5,GetCoordinates('y')); }else if(a>8){ SetCoordinates(GetCoordinates('x')-2,GetCoordinates('y')); }else if(a>5){ SetCoordinates(GetCoordinates('x'),GetCoordinates('y')); }else{ if(rawrs==150){ rawrs=100 }else if(rawrs==125){ rawrs=150 }else{ rawrs=125 } clearInterval(rawr); rawr=setInterval('right()',rawrs) a++; } a--; } b=0; function down(){ if(b<5){ SetCoordinates(GetCoordinates('x'),GetCoordinates('y')+2); }else if(b<8){ SetCoordinates(GetCoordinates('x'),GetCoordinates('y')+5); }else if(b<10){ SetCoordinates(GetCoordinates('x'),GetCoordinates('y')+8); }else if(b<15){ SetCoordinates(GetCoordinates('x'),GetCoordinates('y')+12); }else if(b<20){ SetCoordinates(GetCoordinates('x'),GetCoordinates('y')+8); }else if(b<24){ SetCoordinates(GetCoordinates('x'),GetCoordinates('y')+5); }else if(b<28){ SetCoordinates(GetCoordinates('x'),GetCoordinates('y')+2); }else if(b<30){ SetCoordinates(GetCoordinates('x'),GetCoordinates('y')); }else{ clearInterval(rowr); rowr=setInterval('up()',rowrs) b--; } b++; } function up(){ if(b>30){ SetCoordinates(GetCoordinates('x'),GetCoordinates('y')-2); }else if(b>28){ SetCoordinates(GetCoordinates('x'),GetCoordinates('y')-5); }else if(b>24){ SetCoordinates(GetCoordinates('x'),GetCoordinates('y')-8); }else if(b>20){ SetCoordinates(GetCoordinates('x'),GetCoordinates('y')-12); }else if(b>15){ SetCoordinates(GetCoordinates('x'),GetCoordinates('y')-8); }else if(b>10){ SetCoordinates(GetCoordinates('x'),GetCoordinates('y')-5); }else if(b>8){ SetCoordinates(GetCoordinates('x'),GetCoordinates('y')-2); }else if(b>5){ SetCoordinates(GetCoordinates('x'),GetCoordinates('y')); }else{ if(rowrs==150){ rowrs=100 }else if(rowrs==125){ rowrs=150 }else{ rowrs=125 } clearInterval(rowr); rowr=setInterval('down()',rowrs) b++; } b--; } rowrs=150 rawrs=100 rawr=setInterval('right()',rowrs) rowr=setInterval('down()',rawrs) </SCRIPT> PHP: