MM = Dreamweaver?

I’m volunteering to redesign the website of a non-profit and I suspect that their current code was generated with a WYSIWYG editor. There are multiple functions that are prefaced with “MM” such as MM_swapImgRestore() and MM_preLoadImg(). Is this Dreamweaver? I’ve copied a bunch of their code below to give a fuller picture.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<title>Laurens House 4 Positive Change Inc</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><link href="stylesheet.css" rel="stylesheet" type="text/css">
<script language="JavaScript" type="text/JavaScript">
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.0document.getElementById('navcontainer').style.visibility = 'hidden';
  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];}
function show()
document.getElementById('navcontainer').style.visibility = 'visible';
function hide()
document.getElementById('navcontainer').style.visibility = 'hidden';

<body background="images/websiteFlashBackgrd.jpg" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onLoad="MM_preloadImages('images/aAboutUson.gif','images/aHomeButton.gif','images/aIntroLifeon.gif','images/aCalendaron.gif','images/aFormson.gif','images/aStoreon.gif','images/aDonateon.gif','images/aContactUson.gif')">
<div align="center">

One thing that really stood out is that there is JS in between the closing </head> tag and the beginning <body> tag. There shouldn’t be anything between these two tags, correct?

Yes Macromedia implemented all the JavaScript generated by their Dreamweaver product with MM_ prefixes so that the code could be easily identified as having been generated by their product.

Adobe did not change the prefix when they bought Dreamweaver so the antiquated JavaScript still has the same prefix identifying the company the product belonged to back in the stone age when those scripts were written.

You are right that there shouldn’t be anything between the </head> and <body> tags. Almost all JavaScript should go immediately before the </body> tag. You shouldn’t rely on Dreamweaver to write the JavaScript as even JavaScript beginner should be able to write far better JavaScript than Dreamweaver produces after an hour or so study.