movingTile.tiles=new Array();

function movingTile(layer){
//ココの数字が女の子の人数
 this.interval=13;
 this.style=layer.style;
 this.init=movingTile.init;
 this.go=movingTile.go;
 this.start=movingTile.start;
 this.locate=movingTile.locate;
 this.ID=movingTile.tiles.length;
 movingTile.tiles[this.ID]=this;
 this.on=false;}

movingTile.locate=function(){
  this.style.left=this.left;
  this.style.top=this.top;}

movingTile.start=function(){
 this.init();
 this.go();}

movingTile.init=function(){
 this.on=true;
 this.time=0;
  this.startX=parseInt(this.style.left);
  this.startY=parseInt(this.style.top);
 this.left=this.startX;
 this.top=this.startY;}

movingTile.goAndBack=function(){
//パラメータとして、スピード(speed)、動き始める時間(startT)、折り返し地点（絶対座標）(turnX,turnY)、折り返し地点での休憩時間(pause)が必要。
 var distance=Math.round(Math.sqrt(Math.pow(this.turnX-this.startX,2)+Math.pow(this.turnY-this.startY,2)));
 var T=Math.floor(distance/this.speed);
 var point;
 if(this.time>=this.startT && this.time<this.startT+T){
  point=(this.time-this.startT+1)/T;
  this.left=(1-point)*this.startX+point*this.turnX;
  this.top=(1-point)*this.startY+point*this.turnY;
  this.locate();}
 if(this.time>=this.startT+T+this.pause && this.time<2*T+this.pause+this.startT){
  point=(this.time-T-this.pause+1)/T;
  this.left=point*this.startX+(1-point)*this.turnX;
  this.top=point*this.startY+(1-point)*this.turnY;
  this.locate();}
 if(this.time>=2*T+this.pause+this.startT){
  this.on=false;}}

movingTile.straight=function(){
//パラメータとして、スピード(speed)、動き始める時間(startT)、最終地点（絶対座標）(goalX,goalY)が必要。
 var distance=Math.round(Math.sqrt(Math.pow(this.goalX-this.startX,2)+Math.pow(this.goalY-this.startY,2)));
 var T=Math.floor(distance/this.speed);
 var point;
 if(this.time>=this.startT && this.time<this.startT+T){
  point=(this.time-this.startT+1)/T;
  this.left=(1-point)*this.startX+point*this.goalX;
  this.top=(1-point)*this.startY+point*this.goalY;
  this.locate();}
 if(this.time>=T+this.startT){
  this.on=false;}}

movingTile.circle=function (){
//パラメータとして、角速度(omega)、動き始める時間(startT)、動き終わる時間(goalT)、半径(radius)、初期角度(theta)が必要。
 var T=this.time-this.startT+1;
 var x0=this.startX-this.radius*Math.sin(this.theta);
 var y0=this.startY-this.radius*Math.cos(this.theta); 
 if(this.time>=this.startT && this.time<this.goalT){
  this.left=x0+this.radius*Math.sin(this.theta+this.omega*T);
  this.top=y0+this.radius*Math.cos(this.theta+this.omega*T);
  this.locate();}
 if(this.time>=this.goalT){
  this.on=false;}}


movingTile.go=function (){
 if(this.on){
   this.move();
   this.time++;
   setTimeout('movingTile.tiles['+this.ID+'].go()',this.interval);} }


movingTile.startAll=function(){
 for(i=0;i<movingTile.tiles.length;i++){
   movingTile.tiles[i].init();
   movingTile.interval=movingTile.tiles[i].interval;}
 movingTile.time=0;
 movingTile.goAll();}

movingTile.goAll=function (){
var i;
var count=0;
movingTile.time++;
for(i=0;i<movingTile.tiles.length;i++){
 if(movingTile.tiles[i].on==1){
   count++;
   movingTile.tiles[i].move();
   movingTile.tiles[i].time=movingTile.time;}}
   if(count!=0){
setTimeout('movingTile.goAll()',movingTile.interval);} 
}


