
N4  = (document.layers && !document.getElementById) ? true:false;                 // netscape 4
I   = (document.all) ? true:false;                    // ie4+
N6  = ((document.getElementById)&&(!I))?true:false;   // ns6 etc.


var debugWindow = null;

function debugStart()
  {
  debugWindow = window.open("", "");
  debugWindow.document.open();
  debugWindow.document.write("<html><head></head><body><font size='-1' face='Courier New, Courier, mono'>");
  }
 
function debug(str)
  {
  debugWindow.document.write(str);
  debugWindow.document.write("<br>");
  }

function debugStop()
  {
  debugWindow.document.write("</font></body></html>");
  debugWindow.document.close();
  }
 
function debugObj(obj)
	{
	debugStart();
	for (var i in obj)
		debug(i + "=" + obj[i]);
	debugStop();
	}

// misc functions
function getParameterFromWindow(name, win)
	{
	var	searchStr	= win.location.search;
	var pos = searchStr.indexOf("?" + name + "=");
	if (pos == -1)
		pos	= searchStr.indexOf("&" + name + "=");
	if (pos == -1)
		return "";
	++pos;
	var value = searchStr.substr(pos);
	return unescape(value.split("&")[0].split("=")[1]);
	}

// misc functions
function getParameter(name)
	{
	var win = window;
	var i = 0;
	var searchStr	= "";
	while (i < 10)
		{
		searchStr = win.location.search;
		if (searchStr.length != 0)
			break;
		win	= win.parent;
		i++;
		}
	return getParameterFromWindow(name, win);
	}

// make a string safe for js quoted
function escapeJS(str)
	{
	var	newStr	= "";
	for (var i = 0;i < str.length;i++)
		{
		var	cur	= str.charAt(i);
		if (cur == "'" || cur == '"' || cur == "\\")
			newStr	+= "\\";
		newStr	+= cur;
		}
	return newStr;
	}

// replaces a parameter in the location (has the effect of reloading page).
function replaceParam(orig, fieldName, fieldValue)
	{
	var	href	= orig;
	var	pos	= href.indexOf("?" + fieldName + "=");
	if (pos == -1)
		pos	= href.indexOf("&" + fieldName + "=");
	if (pos != -1)
		{
		pos++;
		var	start	= href.substring(0, pos + fieldName.length + 1) + escape(fieldValue);
		var	end	= href.substring(pos);
		var	pos2	= end.indexOf("&");
		if (pos2 > -1)
			start	+= end.substring(pos2);
		return start;
		}
	else
		return	href + "&" + fieldName + "=" + fieldValue;
	}


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_showHideLayers() { //v3.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }
}

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_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 MM_showHideLayers() { //v3.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }
}

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);



function onLoad()
	{
	for (var i = 0;i < document.images.length;i++)
		{
		var	pos	= document.images[i].src.indexOf(".up.");
		if (pos > -1)
			{
			if (document.images[i].parentNode.onmouseout != null)
				{
				var	mouseOut	= document.images[i].parentNode.onmouseout.toString();
				if (mouseOut.indexOf("MM_swapImgRestore") > -1 || mouseOut.indexOf("MM_nbGroup") > -1)
					{
					var	preload	= document.images[i].src.substr(0, pos) + ".over." + document.images[i].src.substr(pos + 4);
					MM_preloadImages(preload);
					}
				}
			}
		}
	}