	function MM_findObj(n,d) { 
		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);
		}

		//IE
		if(!(x=d[n])&&d.all) 
			x=d.all[n];
		//NN
		for (i=0;!x&&i<d.forms.length;i++)
			x=d.forms[i][n];
		//NN4
		for(i=0;!x&&d.layers&&i<d.layers.length;i++) 
			x=MM_findObj(n,d.layers[i].document); 
		//NN6 (or IE5 if document.all fails?)
		if (!x && NN6DOM) {
			x = document.getElementById(n);
			return x;
		}
		return x;
	}

function setVis(obj1,v,isName) {
	var obj
	
	if (isName) 
		obj = MM_findObj(obj1)
	else 
		obj = obj1
		
	if (obj) { 
		var sobj = obj;
		if (obj.style) {
			if (NN6DOM) {
				//obj.style.visibility = "visible" // always "visible" in NN6
				var dv = "block"
				if (v == "hide") dv = "none"
				obj.style.display = dv;
				//return true;
			}
			sobj=obj.style; 
			v=(v=='show')?'visible':(v='hide')?'hidden':v; 
		}
		if (sobj && sobj.visibility)
			sobj.visibility=v; 
	}
	return true;
}

function funcname(f) {
	var thestring =  "function (.*)"
	var re1 = new RegExp(thestring)
	var s = f.toString().match(re1)[1];
	if ((s == null) || (s.length == 0)) return "anon"
	return s
}