tremendo marron que te ha caido! debes estar asi.
al tema, hice un ejemplo especificamente para ti porque segun como lo tienes se supone que te funcione. lo comprobe en firefox e iexplorer7. como quien dice no hice ninguna modificacion salvo el texto en rojo. recuerda limpiar la cache del navegador, u obligar al navegador cargar el documento desde la fuente orignal, no sea que eso es lo que te esta fallando igual que antes.
Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<title>CDATA</title>
<style type="text/css">
.una_clase{
display:none;
}
</style>
<script type="text/javascript">
function negative(classname) {
//document.getElementById(id).style.display="block";
var capas = document.getElementsByClassName(classname);
for(var i = 0; capas[i]; i++)
{
capas[i].style.display = "block";
}
}
if(!document.getElementsByClassName)
{
document.getElementsByClassName = function(className){
var regex = new RegExp(className);
var array = [];
var element = arguments[1] || document.documentElement;
for(var elem = element.firstChild; elem != null; elem = elem.nextSibling){
if(elem.nodeType != 1)continue;
if(regex.test(elem.className)) array.push(elem);
if(elem.hasChildNodes()) array = array.concat(arguments.callee(className, elem));
}
return array;
}
}</script>
</head><body onload="negative('una_clase');">
<div class="una_clase">soy un bloque</div>
<div class="una_clase">y yo el segundo</div>
</body></html>