Código refactorizado y validado con JsLint, JsHint, CSS Validator y HTML5 Validator.