function layer_visID(layerID, show1Or0){
	//pop-up layer visibility
	if(document.layers && document.layers[layerID])	{//NN4+
		document.layers[layerID].visibility = show1Or0 ? "show" : "hide";
	} else if(document.getElementById){//gecko(NN6) + IE 5+
		var obj = document.getElementById(layerID);
		obj.style.visibility = show1Or0 ? "visible" : "hidden";
	} else if(document.all){ // IE 4
       	document.all[layerID].style.visibility = show1Or0 ? "visible" : "hidden";
   	}
}
function set_textID(toSetID, text){
	//this is based on layer_visID (the function above), 
	//but I don't know if the NN4+ part will work.
	if(document.all && document.all[toSetID])	{//NN4+
		document.all[toSetID].innerHTML = text;
	} else if(document.getElementById && document.getElementById(toSetID)){//gecko(NN6) + IE 5+
		document.getElementById(toSetID).innerHTML = text;
	} else if(document.all && document.all[toSetID]){ // IE 4
       	document.all[toSetID].innerHTML = text;
   	}
}

function set_attrID(toSetID, text, attr){
	//this is based on layer_visID (the function above), 
	//but I don't know if the NN4+ part will work.
	if(document.all && document.all[toSetID])	{//NN4+
		(document.all[toSetID])[attr] = text;
	} else if(document.getElementById && document.getElementById(toSetID)){//gecko(NN6) + IE 5+
		(document.getElementById(toSetID))[attr] = text;
	} else if(document.all && document.all[toSetID]){ // IE 4
       	(document.all[toSetID])[attr] = text;
   	}
}

//not well tested
function get_attrID(toGetID, attr){
	//this is based on layer_visID (the function above), 
	//but I don't know if the NN4+ part will work.
	var toReturn="";
	if(document.all && document.all[toGetID])	{//NN4+
		toReturn = (document.all[toGetID])[attr];
	} else if(document.getElementById && document.getElementById(toGetID)){//gecko(NN6) + IE 5+
		toReturn = (document.getElementById(toGetID))[attr];
	} else if(document.all && document.all[toGetID]){ // IE 4
       	toReturn = (document.all[toGetID])[attr];
   	}
   	return toReturn;
}

function set_div_text(toSetID, text){
	//this is based on layer_visID (the function above), 
	//but I don't know if the NN4+ part will work.
	if(document.all && document.all[toSetID]){
		(document.all[toSetID]).innerHTML = text;
	}else if(document.getElementById && document.getElementById(toSetID)){//gecko(NN6) + IE 5+
		(document.getElementById(toSetID)).innerHTML = text;
	} 
}
function get_div_text(toSetID){
	//this is based on layer_visID (the function above), 
	//but I don't know if the NN4+ part will work.
	var toReturn="";
	if(document.all && document.all[toGetID]){
		toReturn = (document.all[toSetID]).innerHTML;
	}else if(document.getElementById && document.getElementById(toSetID)){//gecko(NN6) + IE 5+
		toReturn = (document.getElementById(toSetID)).innerHTML;
	} 
	return toReturn;
}
function get_elem(doc,id) {
	if ((doc.getElementById && doc.getElementById(id))) {
		return doc.getElementById(id);
	} else if (doc.all && doc.all[id]) {
		return doc.all[id];
	} else if (doc.layers) {
		return doc.layers[id];
	}
	return null; // this is not happening
}
function get_elem(id) {
	if ((document.getElementById && document.getElementById(id))) {
		return document.getElementById(id);
	} else if (document.all && document.all[id]) {
		return document.all[id];
	} else if (document.layers) {
		return document.layers[id];
	}
	return null; // this is not happening
}

function createElem(tag){
	return (document.createElementNS) ?
			document.createElementNS('http://www.w3.org/1999/xhtml', tag) :
			document.createElement(tag);
}

function clearElem(id){
  var e = document.getElementById(id);
  if ( e.hasChildNodes() ) {
    while ( e.childNodes.length >= 1 ) {
      e.removeChild( e.firstChild );       
    } 
  }
}