the auto facility - collecting the ids
function auto() {
  var save_temp=Copy_array(g_temp_col);
  var save_main=Copy_array(g_main_cols);
  g_auto_ids=[];
  for (var v=2;v<14;v++) {
    for (var i=0;i<4;i++) {
      var id=g_temp_col[i];
      if (id>-1) {
        if (value(id)==v) {
          g_auto_ids.push(id);
          g_temp_col[i]=-1;
        }
      }
    }
    for (var i=1;i<9;i++) {
      var ids=g_main_cols[i];
      // allow for equal values
      for (var j=0;j<4;j++) {
        var id=last_card(ids);
        if (value(id)==v) {
          g_auto_ids.push(id);
          ids.pop();
        }
      }
    }
  }
  g_temp_col=Copy_array(save_temp);
  g_main_cols=Copy_array(save_main);
  g_auto_ids.reverse(); // so we can use pop
}
function move(card1,card2) {
    ...
    auto();
  }
}