// 12-09-2003 MJT Added support for <input type='image'>
GMM_MouseOvers = new Object();
var selectedMouseOver = null;

function GMM_MouseOver2(ImName, ImNormSrc, ImActSrc) // [, ImSelSrc , AddMouseOver, AddMouseOut])
{
  if(document.images[ImName]) {
    imgobj = document.images[ImName];
  } else {
    if (document.getElementById) {
	    imgobj = document.getElementById(ImName);
	  }
	}

	if (!imgobj) {
	  // alert(ImName + " not found in current document!");
		return;
	}

	this.Name = ImName;

	//preload
	this.ImNorm = new Image();
	this.ImNorm.src = ImNormSrc;

	this.ImAct = new Image();
	this.ImAct.src = ImActSrc;

	if(arguments[3]) {
  	ImSelSrc = arguments[3];
  	this.ImSel = new Image();
	  this.ImSel.src = ImSelSrc;
	}

	if(arguments[4])
		this.AddOverFunc = arguments[4];

	if(arguments[5])
		this.AddOutFunc = arguments[5];

	if(imgobj.onmouseover)
	{	CurrMouseOver = imgobj.onmouseover.toString();

		if(CurrMouseOver.indexOf("return"))
		{	alert("Return instruction found in mouseover-handler, please remove");
			return;
		}

		if(CurrMouseOver.indexOf("{"))
		{	MouseOverBody = CurrMouseOver.substring(CurrMouseOver.indexOf("{")+1, CurrMouseOver.indexOf("}"));
			this.OldOverFunc = MouseOverBody;
		}
	}

	if(imgobj.onmouseout)
	{	CurrMouseOut = imgobj.onmouseout.toString();

		if(CurrMouseOver.indexOf("return"))
		{	alert("Return instruction found in mouseout-handler, please remove");
			return;
		}

		if(CurrMouseOut.indexOf("{"))
		{	MouseOutBody = CurrMouseOut.substring(CurrMouseOut.indexOf("{")+1, CurrMouseOut.indexOf("}"));
			this.OldOutFunc = MouseOutBody;
		}
	}

	GMM_MouseOvers[ImName] = this;

	imgobj.onmouseover = GMM_HandleMouseOver;
	imgobj.onmouseout = GMM_HandleMouseOut;
	if (arguments[3])
	  imgobj.onclick = GMM_HandleMouseClick;
}

function GMM_HandleMouseOver()
{
  if (this.name == selectedMouseOver)
    return;

  theMO = GMM_MouseOvers[this.name];

	if(theMO.AddOverFunc)
		eval(theMO.AddOverFunc);

	if(theMO.OldOverFunc)
		eval(theMO.OldOverFunc);

	this.src = theMO.ImAct.src;
}

function GMM_HandleMouseOut()
{
  if (this.name == selectedMouseOver)
    return;

  theMO = GMM_MouseOvers[this.name];

	if(theMO.AddOutFunc)
		eval(theMO.AddOutFunc);

	if(theMO.OldOutFunc)
		eval(theMO.OldOutFunc);

	this.src = theMO.ImNorm.src;
}

function GMM_HandleMouseClick()
{
  if (this.name == selectedMouseOver)
    return;

  // alert('click');
  if (selectedMouseOver != null) {
    theMO = GMM_MouseOvers[selectedMouseOver];
    this.src = theMO.ImNorm.src;
  }
  selectedMouseOver = this.name;

  theMO = GMM_MouseOvers[this.name];

	this.src = theMO.ImSel.src;
}

function MM_displayStatusMsg(msgStr) { //v1.0
  status=msgStr;
  document.MM_returnValue = true;
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

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_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_findObj(n, d) { //v4.0
  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 && document.getElementById) x=document.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];}
}