//use browser sniffing to determine if IE or Opera (ugly, but required)
var isOpera, isIE = false;

if(typeof(window.opera) != 'undefined'){isOpera = true;}
if(!isOpera && navigator.userAgent.indexOf('Internet Explorer')){isIE = true;}
//fix both IE and Opera (adjust when they implement this method properly)
if(isOpera || isIE){  document.nativeGetElementById = document.getElementById; 
//redefine it! 
document.getElementById = function(id){   
var elem = document.nativeGetElementById(id);    
if(elem){      
//verify it is a valid match!      
if(elem.attributes['id'] && elem.attributes['id'].value == id){        
//valid match!       
return elem;      }
else {        
//not a valid match!        
//the non-standard, 
document.all 
//array has keys for all name'd, and id'd elements        
//start at one, because we know the first match, is wrong!       
for(var i=1;i<document.all[id].length;i++){          
if(document.all[id][i].attributes['id'] && document.all[id][i].attributes['id'].value == id){            
return document.all[id][i];          }        }      }    }    return null;  };}
