(function ($) {
/*
* Accordion jquery
*/
$.accordion = (function () {
var init = function (element) {
$('[data-toggle="expand"]').click(function (e) {
e.preventDefault();
if (!$(this).hasClass('collapsed')) {
$(this).addClass('collapsed');
} else {
$(this).removeClass('collapsed');
}
});
};
return {
init: init
};
})();
$(document).ready(function () {
if ($('[data-function="fc-accordion"]').length > 0) {
$.accordion.init();
}
});
})(jQuery);
/*Refrescador de pagina por seguridad*/
setTimeout(securityReload, 3600000);
function securityReload() {
location.reload();
}
/*Desplegable de idiomas*/
$(document).ready(function() {
var selectLang = 0;
loadLanguageOptions();
$(".endesa-header-language").click(function(e) {
e.stopPropagation(); // Evitar que el evento se propague
$(".endesa-header-language__list").slideToggle("fast");
selectLang = !selectLang; // Alternar el estado
});
$(document).on("click", function() {
$(".endesa-header-language__list").slideUp("fast");
selectLang = 0;
});
});
function loadLanguageOptions() {
var languageOpt1Url = document.getElementById('landing1').value;
var languageOpt1Name = document.getElementById('landing1name').value;
var languageOpt2Url = document.getElementById('landing2').value;
var languageOpt2Name = document.getElementById('landing2name').value;
var languageOptionsHTML =
'<li class="endesa-header-language__item" data-function="fc-item">' +
'<a class="endesa-header-language__link" data-function="fc-link" href="' + languageOpt1Url + '" title="' + languageOpt1Name + '">' +
languageOpt1Name +
'</a>' +
'</li>' +
'<li class="endesa-header-language__item" data-function="fc-item">' +
'<a class="endesa-header-language__link" data-function="fc-link" href="' + languageOpt2Url + '" title="' + languageOpt2Name + '">' +
languageOpt2Name +
'</a>' +
'</li>';
document.getElementById('fcMenu').innerHTML += languageOptionsHTML;
document.getElementById('fcMenu').style.display = "none";
}
/*Muestra los mensajes de error del formulario*/
function showError(inputError, subError) {
stopSending();
switch (inputError) {
case 2:
document.getElementById('documentGroup').classList.add("endesa-form__group--invalid");
switch (subError) {
case 1:
document.getElementById('documentError').innerHTML = nifErrorMessage;
break;
case 2:
document.getElementById('documentError').innerHTML = nieErrorMessage;
break;
case 3:
document.getElementById('documentError').innerHTML = cifErrorMessage;
break;
case 4:
document.getElementById('documentError').innerHTML = passaportErrorMessage;
break;
default:
document.getElementById('documentError').innerHTML = documentErrorMessage;
}
break;
case 3:
switch (subError) {
case 1:
document.getElementById('emailGroup').classList.add("endesa-form__group--invalid");
document.getElementById('emailError').innerHTML = emailErrorMessage;
break;
case 2:
document.getElementById('emailCGroup').classList.add("endesa-form__group--invalid");
document.getElementById('emailCError').innerHTML = emailErrorMessage;
break;
case 3:
document.getElementById('emailsGroup').classList.add("endesa-form__group--invalid");
document.getElementById('emailsError').innerHTML = emailSameErrorMessage;
break;
default:
document.getElementById('emailsGroup').classList.add("endesa-form__group--invalid");
document.getElementById('emailCError').innerHTML = emailErrorMessage;
}
break;
case 4:
break;
default:
document.getElementById('documentGroup').classList.add("endesa-form__group--invalid");
document.getElementById('documentError').innerHTML = documentErrorMessage;
document.getElementById('emailsGroup').classList.add("endesa-form__group--invalid");
document.getElementById('emailsError').innerHTML = emailErrorMessage;
}
}
/*Oculta Mensajes de Error del formulario*/
function hiddenErrors(inputError) {
switch (inputError) {
case 2:
document.getElementById('documentGroup').classList.remove("endesa-form__group--invalid");
document.getElementById('documentError').innerHTML = "";
document.getElementById('documentSupraGroup').classList.remove("endesa-form__group--invalid");
document.getElementById('documentSupraError').innerHTML = "";
break;
case 3:
document.getElementById('emailGroup').classList.remove("endesa-form__group--invalid");
document.getElementById('emailCGroup').classList.remove("endesa-form__group--invalid");
document.getElementById('emailsGroup').classList.remove("endesa-form__group--invalid");
document.getElementById('emailsError').innerHTML = "";
document.getElementById('emailError').innerHTML = "";
document.getElementById('emailCError').innerHTML = "";
break;
case 5:
document.getElementById('emailCError').innerHTML = "";
case 6:
document.getElementById('emailError').innerHTML = "";
default:
document.getElementById('documentGroup').classList.remove("endesa-form__group--invalid");
document.getElementById('documentError').innerHTML = "";
document.getElementById('documentSupraGroup').classList.remove("endesa-form__group--invalid");
document.getElementById('documentSupraError').innerHTML = "";
document.getElementById('emailGroup').classList.remove("endesa-form__group--invalid");
document.getElementById('emailCGroup').classList.remove("endesa-form__group--invalid");
document.getElementById('emailsGroup').classList.remove("endesa-form__group--invalid");
document.getElementById('emailsError').innerHTML = "";
document.getElementById('emailError').innerHTML = "";
document.getElementById('emailCError').innerHTML = "";
}
};
function changeDocument() {
validDocument();
validFormat();
}
/*
* Document validation
*/
function validDocument() {
var select = document.getElementById("documentType");
var opc = select.options[select.selectedIndex].value;
var userDocument = document.getElementById('document').value;
userDocument = userDocument.replace('-','');
userDocument = userDocument.replace('-','');
document.getElementById("documentHidden").value = userDocument;
switch (opc) {
case "nif":
if (!validateDNI(userDocument)) {
showError(2, 1);
lockButton();
return false
} else {
hiddenErrors(2);
return true
}
break;
case "nie":
if (!validateNIE(userDocument)) {
showError(2, 2);
lockButton();
return false
} else {
hiddenErrors(2);
return true
}
break;
case "cif":
if (!validateCIF(userDocument)) {
showError(2, 3);
lockButton();
return false
} else {
hiddenErrors(2);
return true
}
break;
case "pasaporte":
if (!validatePASSAPORT(userDocument)) {
showError(2, 4);
lockButton();
return false
} else {
hiddenErrors(2);
return true
}
break;
default:
showError(2);
lockButton();
return false
};
};
function validateDNI(dni) {
if (dni.length == 9) {
var letras = ['T', 'R', 'W', 'A', 'G', 'M', 'Y', 'F', 'P', 'D', 'X', 'B', 'N', 'J', 'Z',
'S', 'Q', 'V', 'H', 'L', 'C', 'K', 'E', 'T'
];
var numero = dni.substring(0, 8);
var letra = dni.substring(8, 9);
letra = letra.toUpperCase();
if (numero < 0 || numero > 99999999) {
return false;
} else {
var letraCalculada = letras[numero % 23];
if (letraCalculada != letra) {
return false;
} else {
return true;
}
}
} else {
return false;
}
};
function validateNIE(nie) {
nie = nie.toUpperCase();
// Basic format test
if (!nie.match(
'((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)')) {
return false;
}
// Test NIE
//T
if (/^[T]{1}/.test(nie)) {
return (nie[8] === /^[T]{1}[A-Z0-9]{8}$/.test(nie));
}
//XYZ
if (/^[XYZ]{1}/.test(nie)) {
return (
nie[8] === "TRWAGMYFPDXBNJZSQVHLCKE".charAt(
nie.replace('X', '0')
.replace('Y', '1')
.replace('Z', '2')
.substring(0, 8) % 23));
}
return false;
}
function validateCIF(cif) {
// Quitamos el primer caracter y el ultimo digito
var sum, num = [],
value, controlDigit, validar, result;
var valueCif = cif.substr(1, cif.length - 2);
var suma = 0;
value = cif.toUpperCase();
// Sumamos las cifras pares de la cadena
for (var i = 1; i < valueCif.length; i = i + 2) {
suma = suma + parseInt(valueCif.substr(i, 1));
}
for (var i = 0; i < 9; i++) {
num[i] = parseInt(cif.charAt(i), 10);
}
var suma2 = 0;
// Sumamos las cifras impares de la cadena
for (var i = 0; i < valueCif.length; i = i + 2) {
result = parseInt(valueCif.substr(i, 1)) * 2;
if (String(result).length == 1) {
// Un solo caracter
suma2 = suma2 + parseInt(result);
} else {
// Dos caracteres. Los sumamos...
suma2 = suma2 + parseInt(String(result).substr(0, 1)) + parseInt(String(result)
.substr(1, 1));
}
}
// Sumamos las dos sumas que hemos realizado
suma = suma + suma2;
var unidad = String(suma).substr(1, 1);
unidad = 10 - parseInt(unidad);
var primerCaracter = cif.substr(0, 1).toUpperCase();
if (primerCaracter.match(/^[FJKNPQRSUVW]$/)) {
suma += '';
controlDigit = 10 - parseInt(suma.charAt(suma.length - 1), 10);
value += controlDigit;
validar = num[8].toString() === String.fromCharCode(64 + controlDigit) || num[8]
.toString() === value.charAt(value.length - 1);
if (validar == true) return true;
if (String.fromCharCode(64 + unidad).toUpperCase() == cif.substr(cif.length - 1, 1)
.toUpperCase()) return true;
}
if (primerCaracter.match(/^[ABCDEFGHLM]$/)) {
// Se revisa que el ultimo valor coincida con el calculo
if (unidad == 10) unidad = 0;
suma += '';
controlDigit = 10 - parseInt(suma.charAt(suma.length - 1), 10);
value += controlDigit;
validar = num[8].toString() === String.fromCharCode(64 + controlDigit) || num[8]
.toString() === value.charAt(value.length - 1);
if (validar == true) return true;
if (String.fromCharCode(64 + unidad).toUpperCase() == cif.substr(cif.length - 1, 1)
.toUpperCase()) return true;
}
return false;
};
function validatePASSAPORT(passport) {
"use strict";
return passport.length > 6 && passport.length < 18;
}
/*Valida uno u otro email*/
function validEmail(emailInput) {
var validEmailValate = false;
if (emailInput == 2) {
var emailToValidate = document.getElementById('emailC').value;
} else {
var emailToValidate = document.getElementById('email').value;
}
var isEmail =
/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
validEmailValate = isEmail.test(String(emailToValidate).toLowerCase());
if (validEmailValate) {
return true
} else {
return false
};
}
/*Valida uno u otro email*/
function validEmails(emailInput) {
var emailCToCompare = document.getElementById('emailC').value;
var emailToCompare = document.getElementById('email').value;
/*Si se ha modificado un imput de los emails*/
if (emailInput) {
console.log("Se ha modificado un input");
if (emailInput == 2) {
console.log("Se ha modificado el Email C");
if (validEmail(2)) {
console.log("El email C es valido");
hiddenErrors(5);
if (emailToCompare) {
console.log("Hay email A");
if (emailToCompare == emailCToCompare) {
console.log("Emails C iguales");
hiddenErrors(3);
return true
} else {
console.log("Email C no iguales");
showError(3, 3);
if(!validEmail(1)){
showError(3, 1);
console.log("Email A no valido");
}
lockButton();
return false
}
} else {
console.log("No hay email A");
hiddenErrors(3);
lockButton();
return false
}
} else {
console.log("El email C no es valido");
showError(3, 2);
lockButton();
return false
}
} else {
console.log("Se ha modificado el Email A");
if (validEmail(1)) {
console.log("El email A es valido");
document.getElementById('emailError').innerHTML = "";
if (emailCToCompare) {
console.log("Hay email C");
if (emailToCompare == emailCToCompare) {
console.log("Emails A iguales");
hiddenErrors(3);
return true
} else {
console.log("Email A no iguales");
showError(3, 3);
lockButton();
return false
}
} else {
console.log("No hay email C");
hiddenErrors(3);
lockButton();
return false
}
} else {
console.log("El email A no es valido");
showError(3, 1);
lockButton();
return false
}
}
} else {
console.log("No se ha pasado ningun input");
if (validEmail(1) && validEmail(2)) {
if (emailToCompare == emailCToCompare) {
console.log("Emails iguales");
hiddenErrors(3);
return true
} else {
showError(3, 3);
lockButton();
return false
}
} else {
if(!validEmail(1)) {
showError(3,1);
} else {
showError(3,2);
}
lockButton();
return false
}
}
}
function proteccionDatosCheck() {
console.log("Valida Proteccion Datos");
if (document.getElementById('proteccionDatos').checked == true) {
return true;
} else {
lockButton();
return false;
}
}
function otrasComunicacionesCheck() {
console.log("Otras Comunicaciones");
if (document.getElementById('otrasComunicaciones').checked == true) {
return true;
} else {
lockButton();
return false;
}
}
function validFormat() {
if ((validDocument()) && (validEmails()) && (proteccionDatosCheck())) {
unlockButton();
console.log("Formulario Valido");
return true;
} else {
lockButton();
console.log("Error en el formulario");
return false;
}
}
function unlockButton() {
var btnSubmit = document.getElementById('btnSubmit');
btnSubmit.removeAttribute("disabled");
btnSubmit.classList.remove("endesa-form__btn--disable");
}
function lockButton() {
var btnSubmit = document.getElementById('btnSubmit');
btnSubmit.setAttribute("disabled", true);
btnSubmit.classList.add("endesa-form__btn--disable");
}
/*Detecta si se han cambiado un check*/
function changeInput(input) {
/*Recupera todos los inputs*/
var documentInput = document.getElementById('document');
var emailInput = document.getElementById('email');
var emailCInput = document.getElementById('emailC');
if ((documentInput.value) && (emailInput.value) && (emailCInput.value) && (proteccionDatosCheck())) {
console.log("Con todos los datos");
validFormat();
} else {
switch (input) {
case 2:
validDocument();
console.log("Con Documento");
break;
case 3:
validEmails(1);
console.log("Con Email");
break;
case 4:
validEmails(2);
console.log("Con CEmail");
break;
case 6:
proteccionDatosCheck();
console.log("Con Condiciones");
break;
case 7:
otrasComunicacionesCheck();
console.log("Con Otras Comunicaciones");
break;
default:
lockButton();
console.log("Sin datos");
}
}
}
function stopSending() {
document.getElementById('SCForm').classList.remove("endesa-form--sending");
}
function visualSending() {
if (validFormat()) {
document.getElementById('SCForm').classList.add("endesa-form--sending");
/*ajax();*/
} else {
stopSending();
}
}
/*Aviso Error Contrato y Documento*/
function errorContractDoc(errorType) {
stopSending();
/*Muestra el error*/
switch (errorType) {
case 5:
document.getElementById('documentSupraGroup').classList.add("endesa-form__group--invalid");
document.getElementById('documentSupraError').innerHTML = docNoFound;
//document.getElementById('documentSupraError').innerHTML = docInvent;
break;
case 11:
document.getElementById('documentSupraGroup').classList.add("endesa-form__group--invalid");
document.getElementById('documentSupraError').innerHTML = docInvalid;
break;
case 17:
document.getElementById('documentSupraGroup').classList.add("endesa-form__group--invalid");
/*document.getElementById('documentError').innerHTML = docNoRel;*/
document.getElementById('documentSupraError').innerHTML = docInvalid;
break;
default:
showError();
}
}
let ajaxFunction = document.getElementById('btnSubmit').addEventListener('click', ajaxPass);
var div = document.getElementById('contact-data-div');
function ajaxPass() {
var idioma = document.getElementById('idiomaLanding').value;
var ajaxResponse;
var ajax = new XMLHttpRequest();
ajax.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
ajaxResponse = this.responseText;
ajaxResponse = String(ajaxResponse)
if (ajaxResponse.indexOf('true') >= 0) {
if (idioma == 'EN') { window.location.href = "https://cloud.dev.notificaciones.endesaclientes.com/Captacion-email-gracias-ML-EN";
}
else if (idioma == 'CA') { window.location.href = "https://cloud.dev.notificaciones.endesaclientes.com/Captacion-email-gracias-ML-CA";
}
else { window.location.href = "https://cloud.dev.notificaciones.endesaclientes.com/Captacion-email-gracias-ML-ES";
}
} else {
if (idioma == 'EN') { window.location.href = "https://cloud.dev.notificaciones.endesaclientes.com/Captacion-email-error-ML-EN";
}
else if (idioma == 'CA') { window.location.href = "https://cloud.dev.notificaciones.endesaclientes.com/Captacion-email-error-ML-CA";
}
else { window.location.href = "https://cloud.dev.notificaciones.endesaclientes.com/Captacion-email-error-ML-ES";
}
}
}
}
var paramsFormsToSent = { 'Email':document.getElementById('email').value,
'Documento':document.getElementById('document').value,
'AccountId': div.getAttribute('data-account-id'),
'ContactId': div.getAttribute('data-contact-id'),
'otrasComunicaciones': document.getElementById("otrasComunicaciones").checked,
'proteccionDatos': document.getElementById("proteccionDatos").checked
}
console.log(paramsFormsToSent);
var ajaxUrl = "https://cloud.dev.notificaciones.endesaclientes.com/Captacion-email-ML-Ajax"
ajax.open("POST", ajaxUrl, "true");
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.send("data="+JSON.stringify(paramsFormsToSent));
}
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter