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_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_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 showHide(id) {	
  w1 = document.getElementById (id);
  if (w1 && w1.style) {
    if (w1.style.display == "none") w1.style.display="block";
    else w1.style.display="none";
  }
}

function show(id) {	
  w1 = document.getElementById (id);
  if (w1 && w1.style) w1.style.display="block";	
}

function hide(id) {	
  w1 = document.getElementById (id);
  if (w1 && w1.style) w1.style.display="none";	
}

function openwindow (url, winname, w, h) {
  var nScrW = 800;
  var nScrH = 600;
  if (screen) {
    nScrW = screen.availWidth;
    nScrH = screen.availHeight;
  }
  var leftPos = (nScrW-w)/2;
  var topPos = (nScrH-h)/2;
  newwin = window.open (url, winname, 'width=' + w + ',height=' + h + ',menu=no,toolbars=no,status=yes,scrollbars=yes,resizable=yes,top=' + topPos + ',left=' + leftPos);
  newwin.moveTo(leftPos, topPos);
  return;
}

  function grayOut(vis, options) {
    // Pass true to gray out screen, false to ungray
	// options are optional.  This is a JSON object with the following (optional) properties
	// opacity:0-100		// Lower number = less grayout higher = more of a blackout
	// zindex: #			// HTML elements with a higher zindex appear on top of the gray out
	// bgcolor: (#xxxxxx)	// Standard RGB Hex color code
	// grayOut(true, {'zindex':'50', 'bgcolor':'#0000FF', 'opacity':'70'});
	// Because options is JSON opacity/zindex/bgcolor are all optional and can appear
	// in any order.  Pass only the properties you need to set.
	scroll(0,0);
	var options = options || {};
	var zindex = options.zindex || 50; 
	var opacity = options.opacity || 90; 
	var opaque = (opacity / 100);
	var bgcolor = options.bgcolor || '#999999';
	var dark=document.getElementById('darkenScreenObject');
	
	if (!dark) {
	  // The dark layer doesn't exist, it's never been created.  So we'll
	  // create it here and apply some basic styles.
	  // If you are getting errors in IE see: http://support.microsoft.com/default.aspx/kb/927917	  
	  var tbody = document.getElementsByTagName("body")[0];
	  var tnode = document.createElement('div');			// Create the layer.
	  tnode.style.position='absolute';						// Position absolutely
	  tnode.style.top='0px';								// In the top
	  tnode.style.left='0px';								// Left corner of the page
	  tnode.style.overflow='hidden';						// Try to avoid making scroll bars
	  tnode.style.display='none';							// Start out Hidden
	  tnode.id='darkenScreenObject';						// Name it so we can find it later
	  tbody.appendChild(tnode);								// Add it to the web page
	  dark=document.getElementById('darkenScreenObject');	// Get the object.
	}
	
	var offsetHeightAdjustment = 50;
	
	if (vis) {
	  // Calculate the page width and height
	  var screenW = 0;
	  var screenH = 0;
	  if (screen) {
    	screenW = screen.availWidth;
   		screenH = screen.availHeight;
  	  }
	  
	  if( document.body && ( document.body.scrollWidth || document.body.scrollHeight ) ) {
	    if (document.body.scrollWidth < screenW) var pageWidth = screenW+'px';
		else var pageWidth = document.body.scrollWidth+'px';
		
		if (document.body.scrollHeight + offsetHeightAdjustment < screenH) var pageHeight = screenH+'px';
		else var pageHeight = (document.body.scrollHeight + offsetHeightAdjustment)+'px';		
	  } else if( document.body.offsetWidth ) {
	    if (document.body.offsetWidth < screenW) var pageWidth = screenW+'px';
		else var pageWidth = document.body.offsetWidth+'px';
		
		if (document.body.offsetHeight < screenH) var pageHeight = screenH+'px';
		else var pageHeight = document.body.offsetHeight+'px';		
	  } else {
	    var pageWidth='100%';
		var pageHeight='100%';
	  }
  
	  //set the shader to cover the entire page and make it visible.
	  dark.style.opacity=opaque;
	  dark.style.MozOpacity=opaque;
	  dark.style.filter='alpha(opacity='+opacity+')';
	  dark.style.zIndex=zindex;
	  dark.style.backgroundColor=bgcolor;
	  dark.style.width= pageWidth;
	  dark.style.height= pageHeight;
	  dark.style.display='block';
	} else {
	  dark.style.display='none';
	}
  }
  
  function displayDialogue (objName) {
    var offsetHeightAdjustment = 50;
    var diaObj = document.getElementById(objName);
	if (diaObj && diaObj.style) {
	  var screenW = 800;
  	  var screenH = 600;
  	  if (screen) {
  	    screenW = screen.availWidth;
	    screenH = screen.availHeight;
 	  }
	  var dialogueBoxW=parseInt(diaObj.style.width);
	  var dialogueBoxH=parseInt(diaObj.style.height);
	  var leftPos = Math.ceil((screenW-dialogueBoxW)/2);
      var topPos = Math.ceil((screenH-offsetHeightAdjustment-dialogueBoxH)/2);
	  
	  diaObj.style.position="absolute";
	  diaObj.style.zIndex = 1000;
      diaObj.style.display = "block";
	  diaObj.style.left = leftPos+"px";
	  diaObj.style.top = topPos+"px";
	  grayOut(true);
    }
  }
  
  function closeDialogue (objName) {
    var diaObj = document.getElementById(objName);
	if (diaObj && diaObj.style) {
      diaObj.style.display = "none";
	  grayOut (false);
    }
  }
  
  function displayHTMLDialogue (htmlCodes, boxWidth, boxHeight) {
    var closeCommandHTML = "<p align=\"right\"><a href=\"javascript:closeHTMLDialogue()\">Close</a></p>";
	var offsetHeightAdjustment = 50;
	var screenW = 800;
  	var screenH = 600;
  	if (screen) {
  	  screenW = screen.availWidth;
	  screenH = screen.availHeight;
 	}
	var leftPos = Math.ceil((screenW-boxWidth)/2);
    var topPos = Math.ceil((screenH-offsetHeightAdjustment-boxHeight)/2);

    var dialogueObj = document.getElementById("HTMLDialogueObj");
    if (dialogueObj && dialogueObj.style) {
	  dialogueObj.style.top=topPos+'px';
	  dialogueObj.style.left=leftPos+'px';
	  dialogueObj.style.width=boxWidth+"px";
	  dialogueObj.style.height=boxHeight+"px";	
	  dialogueObj.innerHTML = closeCommandHTML + htmlCodes;
	  dialogueObj.style.display="block";
	} else {
	  var tbody = document.getElementsByTagName("body")[0];
	  var tnode = document.createElement('div');
	  tnode.style.position='absolute';						
	  tnode.style.top=topPos+'px';
	  tnode.style.left=leftPos+'px';
	  tnode.style.width=boxWidth+"px";
	  tnode.style.height=boxHeight+"px";
	  tnode.id='HTMLDialogueObj';
	  tnode.style.backgroundColor="#ffffff";
	  tnode.style.paddingTop="20px";
	  tnode.style.paddingRight="20px";
	  tnode.style.paddingBottom="20px";
	  tnode.style.paddingLeft="20px";
	  tnode.innerHTML = closeCommandHTML + htmlCodes;

	  tbody.appendChild(tnode);
	  tnode.style.zIndex=1000;
	  tnode.style.display='block';	  
	}
	grayOut(true);
  }
  
  function closeHTMLDialogue () {
    var dialogueObj = document.getElementById("HTMLDialogueObj");
	if (dialogueObj && dialogueObj.style) dialogueObj.style.display="none";
	grayOut(false);
  }