para empezar, en un documento no puede haber mas de un elemento con el mismo ID. aunque el navegador no proteste, en javascript no vas a obtener los resultados deseados. getElementById devuelve un solo elemento y en el caso de haber multiples elementos con el mismo id, devolvera el primero que encuentre. por otro lado, getElementsByTagName requiere como parametro el nombre de un tag, no el valor de atributo name o id.
de los dos codigos, el segundo es el mas desfasado. en el primero, el problema esta en la linea 3 y 4.
Código:
var imagenes=contenedor.getElementsByTagName("imagen");
var contar=document.imagenes.length;
el problema de la linea #3 ya la señale. el problema de la linea #4 es que
imagenes no es una propiedad de
document, sino una variable. de modo que simplemente debes usar directamente la variable sin indicacion de objetos.