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