//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;  
  };
}