function swapImageRevert() {
  var ai, i, x, argsIndex, a=document.swapImageBuffer,
    args=swapImageRevert.arguments;

  if (args.length > 0) {
    for(argsIndex=0; argsIndex<args.length; argsIndex++) {
      if (a[args[argsIndex]]) {
	for(i=0; a[args[argsIndex]] && i<a[args[argsIndex]].length &&
	      (x=a[args[argsIndex]][i]) && x.oSrc; i++) {
	  x.src=x.oSrc;
	}
      }
    }
  } else {
    for (ai = 0; ai < a.length; ai++) {
      for(i=0; a[ai]&&i<a[ai].length&&(x=a[ai][i])&&x.oSrc; i++) {
	x.src=x.oSrc;
      }
    }
  }
}

function swapImagesPreloadImages() {
  var d=document;
  if(d.images) {
    if(!d.swapImagePreload) {
      d.swapImagePreload=new Array();
    }
    var i, j=d.swapImagePreload.length, a=swapImagesPreloadImages.arguments;
    for(i=0; i<a.length; i++) {
      if (a[i].indexOf("#")!=0) {
        d.swapImagePreload[j] = new Image; d.swapImagePreload[j++].src=a[i];
      }
    }
  }
}

function swapImageFindObj(n, d) {
  var p, i, x;

  if (!d) {
    d=document;
  }
  
  if ((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document;
    n=n.substring(0,p);
  }
  
  if (!(x=d[n])&&d.all) x=d.all[n];
  for (i=0;!x&&i<d.forms.length;i++) {
    x=d.forms[i][n];
  }
  
  for (i=0;!x&&d.layers&&i<d.layers.length;i++) {
    x=swapImageFindObj(n,d.layers[i].document);
  }
  
  if (!x && d.getElementById) {
    x=d.getElementById(n);
  }
  
  return x;
}

function swapImage() {
  var i, j=0, x, a=swapImage.arguments;
  if (!document.swapImageBuffer) {
    document.swapImageBuffer=new Array;
  }
  for(i=0; i<(a.length-2); i+=3) {
    if  ((x=swapImageFindObj(a[i]))!=null) {
      if (!a[i+1]) {
	a[i+1] = 0;
      }
      if (!document.swapImageBuffer[a[i+1]]) {
	document.swapImageBuffer[a[i+1]] = new Array;
      }
      document.swapImageBuffer[a[i+1]][j++]=x;
      if (!x.oSrc) {
        x.oSrc=x.src;
      }
      x.src=a[i+2];
    }
  }
}

function setImage(objID, loc) {
  var imgObj;

  imgObj = swapImageFindObj(objID);

  if (imgObj) {
    imgObj.src = loc;
  }
}
