// Requires these variables to be pre-initialized: rows, cols, srcArr

var onswapArr = new Array();
var onshowArr = new Array();

// start on page load
window.onload = function() {
  init();
  window.setTimeout('swap()', 7000);
}

function init() {
  for (var r = 0, srcs = srcArr.length; r < rows; r++) {
    for (var c = 0; c < cols; c++) {
      var img = $('monogram' + r + c);
      while (true) {
        var randsrc = srcArr[Math.floor(Math.random() * srcs)];
        if (onshowArr[randsrc] != true) {
          onshowArr[randsrc] = true;
          img.src = randsrc;
          break;
        }
      }
    }
  }
}

function swap() {
  var randid;
  while (true) {
    var randr = Math.floor(Math.random() * rows);
    var randc = Math.floor(Math.random() * cols);
    randid = 'monogram' + randr + randc;
    if (onswapArr[randid] != true) {
      onswapArr[randid] = true;
      break;
    }
  }

  var randsrc;
  var srcs = srcArr.length;
  while (true) {
    randsrc = srcArr[Math.floor(Math.random() * srcs)];
    if (onshowArr[randsrc] != true) {
      onshowArr[randsrc] = true;
      break;
    }
  }
  var currsrc = $(randid).src;
  currsrc = currsrc.substring(currsrc.indexOf("../monograms/"));
  onshowArr[currsrc] = false;

  new Effect.Fade(randid, { queue: 'end' });
  window.setTimeout('$("' + randid + '").src = "' + randsrc + '"', 1000);
  window.setTimeout('new Effect.Appear("' + randid + '")', 3000);
  window.setTimeout('onswapArr["' + randid + '"] = false', 4000);
  window.setTimeout('swap()', 1000);
}

