// JavaScript Document
// Funcion que comprueba que "valor" es un numero entero
function EsNumeroEntero(valor){
    var cadena = valor.toString();
	var longitud = cadena.length;
	if (longitud == 0){return false;}
	var ascii = null;
    for (var i=0; i<longitud; i++) {
		ascii = cadena.charCodeAt(i);
        if (ascii < 48 || ascii > 57){return false;}
    }
	return true;
}

// Funcion que valida la tarjeta de credito
function ValidarTJ(numa,numb,numc,numd) {
	var numero_tarjeta=numa+""+numb+""+numc+""+numd;
	
	// Comprobamos que solo hemos introducido numeros
	if (!EsNumeroEntero(numero_tarjeta)){
		//alert("Debe introducir unicamente números");
		return false;
	}

	// Paso 1: Tomamos las cifras en posiciones impares y las multiplicamos por 2 y
	// sumamos el resultado
	var cadena = numero_tarjeta.toString();
	var longitud = cadena.length;
	var cifra = null;
	var cifra_cad=null;
	var suma=0;
	for (var i=0; i < longitud; i+=2){
		cifra = parseInt(cadena.charAt(i))*2;
		// Si la cifra resultante es mayor que 9 sumamos las cifras
		if (cifra > 9){ 
			cifra_cad = cifra.toString();
			cifra = parseInt(cifra_cad.charAt(0))+parseInt(cifra_cad.charAt(1));
		}
		suma+=cifra;
	}
	// Paso 2: Tomamos las cifras en posiciones pares y las sumamos
	for (var i=1; i < longitud; i+=2){
		suma += parseInt(cadena.charAt(i));
	}
	
	// Paso 3: Comprobamos que el resultado es múltiplo de 10
	if ((suma % 10) == 0){ 
		// Si todo es correcto enviamos el formulario
		//window.document.miformulario.submit();
		return true;
	} else {
		//alert("El número de tarjeta no es válido");
		return false;
	}
}
