melky,
позволил себе добавить несколько оптимизаций к вашему коду
// кешируем тяжелые операции.
// loop вынесена и может быть заменена, например, jQuery.each
var all = document.querySelectorAll ? document.querySelectorAll("[id]") : document.getElementsByTagName("*"),
loop = Array.prototype.every;
function getElementByIdWithoutCase( id ) {
var element = document.getElementById(id), idReg = new RegExp( id, "i" );
// обходим все элементы и сравниваем их ИД без учета регистра.
!element && loop.call( all, function(el){
// если есть ID и он соотв. указанному без учёта регистра
// то устанавливаем элемент и прекращаем цикл (return false)
return !(el.id && idReg.test( el.id) && (element=el));
});
return element;
}