function getRadioButtonSelectedValue(ctrl)
{
    for(i=0;i<ctrl.length;i++)
        if(ctrl[i].checked) return ctrl[i].value;
}



// 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(numero_tarjeta) {
	
	//alert (numero_tarjeta);
	
	// 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
		return true;
	} else {
		return false;
	}
}

function obtenerDigito(valor){
  valores = new Array(1, 2, 4, 8, 5, 10, 9, 7, 3, 6);
  control = 0;
  for (i=0; i<=9; i++)
    control += parseInt(valor.charAt(i)) * valores[i];
  control = 11 - (control % 11);
  if (control == 11) control = 0;
  else if (control == 10) control = 1;
  return control;
}
function numerico(valor){
  cad = valor.toString();
  for (var i=0; i<cad.length; i++) {
    var caracter = cad.charAt(i);
	if (caracter<"0" || caracter>"9")
	  return false;
  }
  return true;
}
function validar(banco, sucursal, dc, cuenta) {
	if (banco == ""  || sucursal == "" || dc == "" || cuenta == "") {
    	alert("Por favor, introduzca los datos de su cuenta");
    	return false;
	} else {
		if (banco.length != 4 || sucursal.length != 4 || dc.length != 2 || cuenta.length != 10) {
			alert("Por favor, introduzca correctamente los datos de su cuenta no estan completos");
			return false;
		} else {
			if (!numerico(banco) || !numerico(sucursal) || !numerico(dc) || !numerico(cuenta)) {
				alert("Por favor, introduzca correctamente los datos de su cuenta; no son numericos");
				return false;
      		} else {
      			
        		if (!(obtenerDigito("00" + banco + sucursal) == parseInt(dc.charAt(0))) ||  !(obtenerDigito(cuenta) == parseInt(dc.charAt(1)))) {
          			alert("Los digitos de control no se corresponden con los demas numeros de la cuenta");
          			return false;
        		} else {
	        		return true;
        		}
      		}
    	}
	}
}


	function pay_validate(form)
	{
		
		var f = document.payShoppingCartForm;
		//leemos tipo de pago
		var radiob = getRadioButtonSelectedValue(f.PAGO);
		
		//comprobamos si las condiciones se han aceptado
		if (f.readRules.checked == false) {
			alert ("Por favor, lea las condiciones de contratacion y a continuacion marque la casilla conforme lo ha hecho para continuar");
			return false;	
		}

		if (radiob == "1") {
			var precio = f.cctest.value;
			if (precio < 10) {
				alert ("El importe minimo para realizar un pago con PayPal es de 10 euros");
				return false;				
			}
		}

		//si es targeta
		//siguiente linea modificada porque no tenemos targeta
		//if (radiob == "1") {
		//if (-1) {
			//validamos numero de tarjeta
		//	var exist = ValidarTJ(f.targnum.value);
			
		//	if (!exist) {
		//		alert ("Error con el numero de targeta, o bien no existe o es incorrecto.");	
		//		return false;
		//	} 
			//comprobamos que haya escrito una fecha de caducidad valida
		//	var mes = f.tcexpmes.value;
		//	var ano = f.tcexano.value;
			
		//alert (EsNumeroEntero(mes));
			
		//	if (!EsNumeroEntero(mes) || (mes < 1 || mes > 12)) {
		//		alert ("Error en el mes introducido, reintentelo de nuevo");
		//		return false;
		//	}
		//	if (!EsNumeroEntero(ano) || (ano < 8 || ano > 30)) {
		//		alert ("Error en el a&ntilde;o introducido, reintentelo de nuevo");	
		//		return false;
		//	}
			//comprobamos que el titular no este vacio
		//	if (f.tctitular.value == "") {
		//		alert ("Introduzca el nombre del titular");
		//		return false;	
		//	}

		//}
		//si es recibo
		
		if (radiob == "2") {
			
			//comprobamos CCC
			var banco = f.ccbanco.value;
			var sucursal = f.ccsucursal.value;
			var dc = f.cccontrol.value;
			var cuenta = f.cccuenta.value;
			
			var validado = validar(banco, sucursal, dc, cuenta);
			
			if (!validado) {
				return false;	
			}	
			
			var precio = f.cctest.value;
			if (precio < 10) {
				alert ("El importe minimo para realizar un pago por recibo bancario es de 10 euros");
				return false;				
			}	
				
		}
		
		return true;
	}