function auto_place(id) {
  if (id<13) {
    g_final_col[0]=id;
  } else if (id<26) {
    g_final_col[1]=id;
  } else if (id<39) {
    g_final_col[2]=id;
  } else {
    g_final_col[3]=id;
  }
}
function check_sequence(arr) { // eg [10,35,8,33]
  var ok=true;
  var val0=value(arr[0]);
  var col0=colour(arr[0]);
  for (var i=1;i<arr.length;i++) {
    var val1=value(arr[i]);
    var col1=colour(arr[i]);
    if (val1!=val0-1) ok=false;
    if (col0==col1) ok=false;
    val0=val1; col0=col1;
  }
  return ok;
}
function colour(n) {
  if (n<26) return 'black'; else return 'red';
}
function empty(card) {
  var src=card.src; var ok=true;
  if (src.indexOf('empty')==-1) ok=false;
  return ok;
}
function first_card_value() {
  var v=g_click_card.id;
  if (klass(g_click_card)=='temp') {
    var i=v-100; var v=g_temp_col[i];
  }
  return parseInt(v);
}
function highlight_off() {
  if (g_click_card!=-1) {
    g_click_card.classList.remove('highlight');
    g_click_card=-1;
  }
}
function klass(card) {
  var arr=['main','temp','final','back_row'];
  var k='';
  for (var i=0;i<arr.length;i++) {
    if (card.classList.contains(arr[i])) {
      k=arr[i];
    }
  }
  return k;
}
function last(card) {
  var ok=false;
  var c=card.style.gridColumnStart; // column #
  var r=card.style.gridRowStart; // row #
  if (g_main_cols[c].length==r) ok=true;
  if (g_main_cols[c].length==0) ok=true;
  return ok;
}
function last_card(arr) {
  var l=arr.length;
  if (l==0) return -1;
  return (arr[l-1]);
}
function value(n) { // returns 1, 2, ... 13
  return n%13+1;
}
