Hola sobre el resto de la división te puedo explicar poco, ¿esto lo entiendes?:
La función lenght te devuelve el número de elementos que contiene un array, en este caso, elementosObtenidos.length, serán 14 elementos. Siempre que tengas dudas puedes usar "alert(elementosObtenidos.length);", para comprobar el valor de variables o de funciones.
A "j" se le resta 1, porque el array contiene 14 elementos, pero los índices de dicho array están comprendidos entre 0 y 13.
La variable "izqda_dcha" se declara de forma global, por eso está fuera de cualquier función. En este código esto se hace así para que cuando se pulse el botón "Pulse aquí para cambiar colores", "izqda_dcha" contenga el último valor que se le halla dado, si ya se ha ejecutado una vez la función cambiarColores(), su valor será false.
No le des mucha importancia de momento a las variables declaradas con ámbito global, más adelante en el curso se hablará de ellas.
Saludos.