// JavaScript Document
function newPage(url){
window.open(url,"",",scrollbars,resizable,width=742,height=560');return false'  target='_blank");
}

function imprimir() {
	if (window.print)
		window.print()
	else {

	}
}

function move(fbox,tbox) {
	tbox.value = fbox.value;
	return false;
}

function verifica2(cadena){
	if (!document.getElementById("condiciones").checked) {
		alert("Marque la aceptación de las condiciones de venta");
		}
		else {
			document.location.href = cadena;
			}
}

/*******************************
 Validación del nif. Por Carlitos. carlosbernad@teleline.es
*******************************/
function comprobarcif2(cif1){
var cif=cif1.value
mal=false;
letras="ABCDEFGHKLMNPQS"
caracteres=[];

for(a=0;a<cif.length;a++){
caracteres[a]=cif.charAt(a);
}
if(letras.indexOf(caracteres[0])==-1){
esto=cif1;
validar(esto);
return false;
}
resultadoImpares=0;
for(a=1;a<8;a=a+2){
numero=caracteres[a]*2;
numero=parseInt(numero/10)+numero%10;
resultadoImpares+=numero
}

resultadoImpares=parseInt(resultadoImpares/10)+resultadoImpares%10;

numeroPar=0;
for(a=2;a<8;a=a+2){
numeroPar+=parseInt(caracteres[a]);
}
total=resultadoImpares+numeroPar;
total=11-(total%10)+1;
if(total!=caracteres[8]){mal=true;}
if(mal){
pepe=alert("Parece ser que el C.I.F. no es correcto.\nPor favor corrijalo.");
cif1.focus();return false
}}
/*******************************
 Validación del nif. Por Carlitos. [email]carlosbernad@teleline.es[/email]
*******************************/

function validar(abc)
{
var docum=abc.value
if (docum == ""){ 
	return true
}
docum=docum.replace("-","")
abc.value=docum
dni=docum.substring(0,docum.length-1)
let=docum.charAt(docum.length-1)
if (!isNaN(let))
 {
  alert('Falta la letra')
  abc.focus()
  return false
 }
else
 {
  cadena="TRWAGMYFPDXBNJZSQVHLCKET"
  posicion = dni % 23
  letra = cadena.substring(posicion,posicion+1)
  if (letra!=let.toUpperCase())
   {
    alert("Nif no válido")
    abc.focus()
    return false
   }
 }
return true
}


function ventanaInfoVisa1()
{
	window.open("https://sis-t.sermepa.es:25443/sis/html/verifiedByVisa1.html","Info","width=500,height=400");	
}

function ventanaInfoMaster()
{
	window.open("http://www.mastercardbusiness.com/mcbiz/index.jsp?template=/orphans&content=securecodepopup","Info","width=550,height=450");	
}


/*******************************
Pasar campos con intro
*******************************/
//SALTO ENTRE CAMPOS PULSANDO ENTER
//Iván Nieto Pérez
//Este script y otros muchos pueden
//descarse on-line de forma gratuita
//en El Código: www.elcodigo.net

//nombre del primer campo en la secuencia
siguienteCampo = "Nombre"
campoAnterior="Fin"
//nombre del formlario
nombreForm = "miFormulario"
//deteccion del navegador
netscape = document.layers

//funcion que gestiona el evento
function TeclaPulsada( eventoPulsaTecla ) {
   tecla = (netscape) ? eventoPulsaTecla.which : window.event.keyCode
   if (tecla == 13) { 					//se pulso enter
      if ( siguienteCampo == 'Fin' ) {			//fin de la secuencia, hace el submit
         //alert('Envio del formulario.')			//eliminar este alert para uso normal
         return true;					//sustituir por return true para hacer el submit
      } else { 						//da el foco al siguiente campo
         eval('document.TheForm.' + siguienteCampo + '.focus()')
         return false;
      }
   }
   if (tecla == 27) { 					//se pulso enter
      if ( campoAnterior == 'Fin' ) {			//fin de la secuencia, hace el submit
         //alert('Envio del formulario.')			//eliminar este alert para uso normal
         return false					//sustituir por return true para hacer el submit
      } else { 						//da el foco al siguiente campo
         eval('document.TheForm.' + campoAnterior + '.focus()')
         return false
      }
   }
}

document.onkeydown = TeclaPulsada			//asigna el evento pulsacion tecla a la funcion

if (netscape)						//netscape es especial: requiere activar la captura del evento
	document.captureEvents(Event.KEYDOWN)
	


function esDigito(sChr){
var sCod = sChr.charCodeAt(0);
return ((sCod > 47) && (sCod < 58));
}

function valSep(oTxt){
var bOk = false;
bOk = bOk || ((oTxt.value.charAt(2) == "-") && (oTxt.value.charAt(5) == "-"));
bOk = bOk || ((oTxt.value.charAt(2) == "/") && (oTxt.value.charAt(5) == "/"));
return bOk;
}

function finMes(oTxt){
var nMes = parseInt(oTxt.value.substr(3, 2), 10);
var nRes = 0;
switch (nMes){
case 1: nRes = 31; break;
case 2: nRes = 28; break;
case 3: nRes = 31; break;
case 4: nRes = 30; break;
case 5: nRes = 31; break;
case 6: nRes = 30; break;
case 7: nRes = 31; break;
case 8: nRes = 31; break;
case 9: nRes = 30; break;
case 10: nRes = 31; break;
case 11: nRes = 30; break;
case 12: nRes = 31; break;
}
return nRes;
}

function valDia(oTxt){
var bOk = false;
var nDia = parseInt(oTxt.value.substr(0, 2), 10);
bOk = bOk || ((nDia >= 1) && (nDia <= finMes(oTxt)));
return bOk;
}

function valMes(oTxt){
var bOk = false;
var nMes = parseInt(oTxt.value.substr(3, 2), 10);
bOk = bOk || ((nMes >= 1) && (nMes <= 12));
return bOk;
}

function valAno(oTxt){
var bOk = true;
var nAno = oTxt.value.substr(6);
bOk = bOk && ((nAno.length == 4));
if (bOk){
for (var i = 0; i < nAno.length; i++){
bOk = bOk && esDigito(nAno.charAt(i));
}
}
return bOk;
}

function valFecha(oTxt){
var bOk = true;
if (oTxt.value != ""){
bOk = bOk && (valAno(oTxt));
bOk = bOk && (valMes(oTxt));
bOk = bOk && (valDia(oTxt));
bOk = bOk && (valSep(oTxt));
if (!bOk){
alert("Fecha inválida");
oTxt.value = "";
oTxt.focus();
}
}
}

function comprobarcif(cif1){	
	var a = cif1;
	
	//Quito los espacios en blanco
	var letras = a.value;
	var array_letras = letras.split("");
	var nuevo_puntero = "";
	for(i in array_letras) {
		if(array_letras[i] != "" && array_letras[i] != " ") {
			nuevo_puntero += array_letras[i];
		}
	}	
	a.value = nuevo_puntero;
	//Fin de las instrucciones para quitar los espacios en blanco
	
	var temp=a.value.toUpperCase();
	var temp2 = i = 0;
	var cadenadni="TRWAGMYFPDXBNJZSQVHLCKET";
	var v1 = new Array(0,2,4,6,8,1,3,5,7,9);
	if (temp!==''){
		// No es un CIF ni un NIE, es un DNI
		if (!/^[ABCDEFGHKLMNPQSX]/.test(temp)){
			if (a.value.length > 9){
				alert('El DNI tiene más de 9 dígitos');
				a.value=a.value.substring(0,8)
				cif1.focus();
				return false;
			}
			posicion = a.value % 23; /*Resto de la division entre 23 es la posicion en la cadena*/
			letra = cadenadni.charAt(posicion);
//			if (!/^[A-Za-z0-9]{8}$/.test(temp)){ 

			if (a.value.length < 8){
				//Es menos de 8 dígitos, añadimos la letra
				alert('El DNI tiene menos de 8 dígitos');
				//a.value=a.value+letra ;
				cif1.focus();
		    	return false;
			}
			else{ 
				//Si tiene 8 digitos y la posición 8 es la letra
				var code = a.value.charCodeAt(7); //Saco el valor ascii de la posición 8
				//Si tiene 8 digitos  y el último no es númerico le añado un 0
				if (a.value.length == 8 && code < 48 || a.value.length == 8 && code > 57){
					a.value = "0"+a.value;
					cif1.value=a.value;
					VerUsuario=a.value;
					temp=a.value.toUpperCase();
				}

				//Tiene los 8 dígitos, comprobamos si la letra esta bien
				posicion = a.value.substring(8,0) % 23; /*Resto de la division entre 23 es la posicion en la cadena*/
				letra = cadenadni.charAt(posicion);
				var letradni=temp.charAt(8);
				if (letra != letradni){
					alert("La letra del DNI no es correcta.");
					a.value=a.value.substring(0,8)+letra;
					VerUsuario=a.value;
					cif1.focus();
			    	return false;
				}
			}
		}else{ 
			//Es un NIE o un CIF
			if (/^[X]/.test(temp)){ //Es un NIE
				var temp1=temp.substr(1,8);
				posicion = temp1 % 23; /*Resto de la division entre 23 es la posicion en la cadena*/
				letra = cadenadni.substring(posicion,posicion+1);
				if (!/^[A-Za-z0-9]{9}$/.test(temp)){ //Es menos de 9 dígitos, añadimos la letra
					alert('El NIE tiene menos de 9 dígitos');
					a.value=a.value+letra ;
					VerUsuario=a.value;
					cif1.focus();
			    		return false;
				}else{ //Tiene los 9 dígitos, comprobamos si la letra esta bien
					var temp1=temp.substr(1,7);
					posicion = temp1 % 23; /*Resto de la division entre 23 es la posicion en la cadena*/
					letra = cadenadni.charAt(posicion);
					var letranie=temp.charAt(8);
					if (letra != letranie){
						alert("La letra del NIE no es correcta.");
						cif1.focus();
				    		return false;			
					}
				}
			}else{ //Es un CIF
			
			
	if (!/^[A-Za-z0-9]{9}$/.test(temp)) {
			alert('El Cif tiene menos de 9 dígitos');
			cif1.focus();
			return false;			
	}
	else if (!/^[ABCDEFGHKLMNPQS]/.test(temp)) {
			alert('La letra introducida en el CIF no es correcta.');
			cif1.focus();
			return false;			
	}
	else
		{
		for(i=2; i<=6; i+=2)
			{
			temp2 += v1[parseInt(temp.substr(i-1, 1))];
			temp2 += parseInt(temp.substr(i, 1));
			}
		temp2 = temp2 + v1[parseInt(temp.substr(7,1))];
		temp2 = (10 - ( temp2 % 10));
		if(temp2 == 10 && (temp.charAt(temp.length-1) == 'J' || temp.charAt(temp.length-1) == 0)) {
				return true;
		}
		else if (temp.charAt(temp.length-1) == temp2 || temp.charAt(temp.length-1) == String.fromCharCode(64 + temp2)) {
				return true;
		}
		else {
			alert("El CIF introducido no es válido");
			cif1.focus();
			return false;
		}
		}
			
			}
		}
	}
}
