function MM_swapImgRestore() { //v3.0
  var i,
  	  x,
  	  a = document.MM_sr; 
  for(i = 0; a && i < a.length && (x = a[i]) && x.oSrc; i++)
  	 x.src = x.oSrc;
}

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

function MM_findObj(n, d) { //v4.01
  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=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

/**
 * @param object obj key : element name ; value : new src.osrc
 * this is to handle toggle button sets (albeit not very well)
 */
function swap_buttons(obj)
{
	for(i in obj)
	{
		//alert(i);
		document[i].src = obj[i];
		document[i].oSrc = obj[i];
	}
}

function set_img(id, src)
{
	document.getElementById(id).src = src;
}

function set_button_on(obj)
{
  if(typeof(default_buttons) != 'undefined') 
  	swap_buttons(default_buttons);
  swap_buttons(obj);
};

function random_img(el_name, img_array)
{

  if(document[el_name])
  {
  	img = img_array[Math.floor(Math.random() * (img_array.length - 1))];
  	document[el_name].src = img;
  }
}