rem: if(this.state==1) {  this.source.lastChild.moveTo(this.freeCells[this.cellNum]); this.cellNum++; if(this.cellNum==this.numToMove-1) this.state = 2; } else if(this.state==2) {  this.card.moveTo(this.target); this.state = 3; } else if(this.state==3) {  this.cellNum--; this.freeCells[this.cellNum].lastChild.moveTo(this.target); if(this.cellNum==0) this.state = 0; } 
add: if(this.SimpleMover.state) { this.SimpleMover.step(); return true; } else if(this.MediumMover.state) { this.MediumMover.step(); return true; } else if(this.ComplexMover.state) { this.ComplexMover.step(); return true; 
context:     step: function() {      if(this.state==1) {        // move to cell        this.source.lastChild.moveTo(this.freeCells[this.cellNum]);        this.cellNum++;        if(this.cellNum==this.numToMove-1) this.state = 2;      } else if(this.state==2) {        // move |card| itslef        this.card.moveTo(this.target);        this.state = 3;      } else if(this.state==3) {        // take card back from cell        this.cellNum--;        this.freeCells[this.cellNum].lastChild.moveTo(this.target);        if(this.cellNum==0) this.state = 0;      }    }
meta: 3385	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/3385/916061f4fa119a0a46876629bfe8719e0f0023ec/freecellmover.js/clean/freecellmover.js