rem: this.MediumMover.start(card,target,freeCells,spaces,numToMove); } else if(numToMove <= groupsize*sumToNumSpaces) { 
add: this.queueMediumMove(card, last, target, freeCells, spaces, numToMove); } else if(numToMove <= groupsize*(sumToNumSpaces+1)) { 
context:   move: function(card, target, freeCells, spaces) {    // remove the target from the list of free cells    // this is a workaround for the case where the card end up being moved onto the target,    // but above other cards that should be below it.  this is not the ideal solution though    // because complex moves should be able to use the target as a space if it is one (I think)    for(var i = 0; i < spaces.length; i++)      if(spaces[i]==target) spaces.splice(i,1);    // groupsize is the number of cards which can be moved without filling spaces    var groupsize = freeCells.length+1;    var numSpaces = spaces.length;    var sumToNumSpaces = parseInt(numSpaces * (numSpaces + 1) / 2);    // work out how many cards are to move    var numToMove = 0;    for(var next = card; next; next = next.nextSibling) numToMove++;    // decide which move strategy to employ dependent on number of cards, free cells, and spaces    if(numToMove <= groupsize) {      // just move each card to a cell then pull them off again      this.SimpleMover.start(card,target,freeCells,numToMove);    } else if(numToMove <= numSpaces+groupsize) {      // when numToMove <= numSpaces+numFreeCells+1 it looks more natural to use the spaces just      // like cells, and apply the SimpleMove strategy      this.SimpleMover.start(card,target,freeCells.concat(spaces),numToMove);    } else if(numToMove <= groupsize*(numSpaces+1)) {      // move groups of (numFreeCells+1) through cells to each space, then pull back      // complexMove would most likely work, but would look odd as unnecessary work would be done      this.MediumMover.start(card,target,freeCells,spaces,numToMove);    } else if(numToMove <= groupsize*sumToNumSpaces) { // could be made grpsz*(sumTo.. +1)      // run the last type of move, then consolidate all into one pile,      // then run this kind again, until all but |card| have been moved      this.ComplexMover.start(card,target,freeCells,spaces,numToMove);    }  },
meta: 3385	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/3385/8bee1817dfb582a1e88a97b17808d58218468500/freecellmover.js/clean/freecellmover.js