function testCIF(cif){
    var pares = 0;
    var impares = 0;
    var suma;
    var ultima;
    var unumero;
    var uletra = new Array("J", "A", "B", "C", "D", "E", "F", "G", "H", "I");
    var xxx;
    
    texto = cif.toUpperCase();
    
    var regular = new RegExp(/^[ABCDEFGHKLMNPQS]\d{7}[0-9,A-J]$/g);
    if (!regular.exec(texto)) return false;
         
    ultima = texto.substr(8,1);

    for (var cont = 1 ; cont < 7 ; cont ++){
        xxx = (2 * parseInt(texto.substr(cont++,1))).toString() + "0";
        impares += parseInt(xxx.substr(0,1)) + parseInt(xxx.substr(1,1));
        pares += parseInt(texto.substr(cont,1));
    }
    xxx = (2 * parseInt(texto.substr(cont,1))).toString() + "0";
    impares += parseInt(xxx.substr(0,1)) + parseInt(xxx.substr(1,1));
     
    suma = (pares + impares).toString();
    unumero = parseInt(suma.substr(suma.length - 1, 1));
    unumero = (10 - unumero).toString();
    if(unumero == 10) unumero = 0;
     
    if ((ultima == unumero) || (ultima == uletra[unumero]))
        return true;
    else
        return false;
}
function testDNI(dni) {
    dni = dni.toUpperCase();
    numero = dni.substr(0,dni.length-1);
    let = dni.substr(dni.length-1,1);
    let = let.toUpperCase();
    numero = numero % 23;
    letra = 'TRWAGMYFPDXBNJZSQVHLCKET';
    lletra = letra.charAt(numero);
    
    return (lletra == let) 
}

function testNIE(nie) {
    var dni = nie.toUpperCase();
    var pre = dni.substr(0, 1);
    var prev = '0';
    if (pre == 'X')
       prev = '0';
    else if (pre == 'Y')
       prev = '1';
    else if (pre == 'Z')
       prev = '2';
    numero = prev + dni.substr(1,dni.length-1);
    return testDNI(numero); 
}
function compruebaDNI(dni){
	return (testNIE(dni) || testDNI(dni) || testCIF(dni));
}
function ValidarDatosDireccionEnvio(direccion,contacto,provincia,poblacion,cp,movil)
{
if (!comprovarSiPle(direccion,'Dirección')) return false;
else if (!comprovarSiDropSelected(provincia,'Provincia')) return false;
else if (!comprovarSiDropSelected(poblacion,'Población')) return false;
else if (!comprovarSiDropSelected(cp,'Código Postal')) return false;
else if (!comprovarSiPle(contacto,'Nombre Contacto')) return false;
else if ((!/^([0-9])*$/.test(movil.value)) || ((movil.value.toString().length) != 9)){alert('EL campo movil no es correcto'); return false;}
else 
return true;
}

function ValidarDatosCliente(dnicif,empresa,nombreContacto,apellidosContacto,direccion,provincia,poblacion,cp,email,movil,fijo,fax)
{
if (!comprovarSiPle(dnicif,'dni / cif')) return false;
else if (!comprovarSiPle(empresa,'nombre de empresa')) return false;
else if (!comprovarSiPle(nombreContacto,'Nombre')) return false;
else if (!comprovarSiPle(apellidosContacto,'Apellidos')) return false;
else if (!comprovarSiPle(direccion,'dirección')) return false;
else if (!comprovarSiDropSelected(provincia,'Provincia')) return false;
else if (!comprovarSiDropSelected(poblacion,'Población')) return false;
else if (!comprovarSiDropSelected(cp,'Código Postal')) return false;
else if ((!/^([0-9])*$/.test(movil.value)) || ((movil.value.toString().length) != 9)){alert('EL campo movil no es correcto'); return false;}
else if ((!/^([0-9])*$/.test(fijo.value)) || ((fijo.value.toString().length) != 9)){alert('EL campo fijo no es correcto'); return false;}
//else if ((!/^([0-9])*$/.test(fax.value)) || ((fax.value.toString().length) != 9)){alert('EL campo fax no es correcto'); return false;}
else if (!comprovarSiPle(email,'correo electrónico')) return false;
else if (!ComprovarEmail(email,'el correo electrónico introducido no tiene un formato correcto.')) return false;
else  return true;
}
function ValidarDni(dnicif)
{
	if (!comprovarSiPle(dnicif,'DNI / CIF')) return false;		
	else return true;
}	
function ValidarDatos2(dnicif,codcliente,entero,decimal,condiciones,email)
{
	//alert(dnicif.value+codcliente.value+entero.value+decimal.value+condiciones.value+email.value);
	if (!comprovarSiPle(dnicif,'DNI / CIF')) return false;
	else if (!comprovarSiPle(codcliente,'Código cliente')) return false;
	else if (!comprovarSiPle(entero,'Importe') || !comprovarSiPle(decimal,'Decimales') ) return false;
	else if (!condiciones.checked) {alert('Debe leer y aceptar las condiciones generales.');return false;}
	else if (!comprovarSiPle(email,'correo electrónico')) return false;
	else return true;
}
function ValidarLogin(dnicif,password)
{
if (!comprovarSiPle(dnicif,'Login')) return false;
else if (!comprovarSiPle(password,'Password')) return false;
else return true;
}

function ValidarDatosClienteAlta(dnicif,nombreContacto,apellidosContacto,direccion,email,password,rpassword,provincia,poblacion,cp,movil,fijo,fax,condiciones,tipoCliente)
{
//alert(compruebaDNI(dnicif.value));
if (!compruebaDNI(dnicif.value)) {alert('El DNI/CIF tiene un formato incorrecto');return false;}
else if (!comprovarSiPle(password,'Password')) return false;
else if (!comprovarSiPle(rpassword,'Repetir Password')) return false;
else if (!ValidarPassword(password,rpassword)) return false;
else if ((tipoCliente[0].checked) && (empresa.value.length == 0)) {alert('Si selecciona Empresa debe indicar un nombre de empresa'); return false;}
else if (!comprovarSiPle(nombreContacto,'Nombre')) return false;
else if (!comprovarSiPle(apellidosContacto,'Apellidos')) return false;
else if (!comprovarSiPle(direccion,'Dirección')) return false;
else if (!comprovarSiDropSelected(provincia,'Provincia')) return false;
else if (!comprovarSiDropSelected(poblacion,'Población')) return false;
else if (!comprovarSiDropSelected(cp,'Código Postal')) return false;
else if ((!/^([0-9])*$/.test(movil.value)) || ((movil.value.toString().length) != 9)){alert('EL campo movil no es correcto'); return false;}
else if ((!/^([0-9])*$/.test(fijo.value)) || ((fijo.value.toString().length) != 9)){alert('EL campo fijo no es correcto'); return false;}
//else if ((!/^([0-9])*$/.test(fax.value)) || ((fax.value.toString().length) != 9)){alert('EL campo fax no es correcto'); return false;}
else if (!comprovarSiPle(email,'Correo electrónico')) return false;
else if (!ComprovarEmail(email,'El correo electrónico introducido no tiene un formato correcto.')) return false;
else if (!condiciones.checked) {alert('Debe leer y aceptar las condiciones generales.');return false;}
else 
return true;
}
function Redireccion(url){
	//alert(url);
	window.location=url;
}

function Reload(pepe)
{
	if (pepe.toString().split('=')[1]=='-1')
	{ null;}
	else 
	{
		var m = this.location.toString();
		temp = m.split('?');
		if (pepe.toString().split('provincia').length>1)
			{
			m=temp[0];
			temp = m.split('?');
			}
		else if (pepe.toString().split('poblacion').length>1)
			{
			temp = m.split('&poblacion');
			m = temp[0]
			temp = m.split('?');
			}	
		
		if (temp.length>1)
			{parent.location=m+'&'+pepe;}
		else
			{parent.location=m+'?'+pepe;}
	}
}

function Redirect(page)
{
parent.location = page;
}

function HistoriBack()
{
}


function ComprovarEmail(camp, texte) 
{ 
var s = camp.value; 
var filter=/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
	if (s.length == 0 ) 
	{  
        alert(texte);
        camp.focus();
        return false;
    }
if (filter.test(s)) 
	{
    	return true; 
	}
else
    alert(texte); 
    camp.focus(); 
    return false; 
}

function comprovarSiPle(camp, nom) {

	if (camp.value.length == 0 || camp.value.replace(/ /g, '') == "") {
		alert('El campo \'' + nom + '\' es obligatorio.');
		camp.focus();
		return false;
	}
	return true;
}

function GuardarEnSession(objecto,campo)
{     

	 var hoy = new Date();	 
	 var hrs = hoy.getHours();	
	 hrs += 1; 	  
	 hoy.setHours(hrs); 

	//alert(objcampo.value + ' = '+ obj.value + '; expires = '+  hoy;);
	document.cookie=campo + ' = '+ objecto.value + '; expires = '+  hoy;
}
function GuardarEnSession2(valor,campo)
{     

	 var hoy = new Date();	 
	 var hrs = hoy.getHours();	
	 hrs += 1; 	  
	 hoy.setHours(hrs); 

	//alert(objcampo.value + ' = '+ obj.value + '; expires = '+  hoy;);
	document.cookie=campo + ' = '+ valor + '; expires = '+  hoy;
}
function GuardarEnSessionSelect(object,campo)
{
	var hoy = new Date();
	hoy.setDate(hoy.getDate() + 1);
	document.cookie=campo+" = "+document.getElementById(campo).options[document.getElementById(campo).selectedIndex].value+"; expires ="+  hoy;
}

function GuardarEnSessionSelectNoForm(object,campo)
{
	 var hoy = new Date();
	 hoy.setDate(hoy.getDate() + 1);
	 document.cookie = campo + ' = ' + object.value + '; expires = ' + hoy;
}

function leerCookie(nombre) {
   a = document.cookie.substring(document.cookie.indexOf(nombre + '=') + nombre.length + 1,document.cookie.length);
   if(a.indexOf(';') != -1)a = a.substring(0,a.indexOf(';'))
   return a; 
}


function ValidarPassword(password,rpassword)
{
	if (rpassword.value != password.value) 
	{
		//alert('rpassword:'+rpassword.value+' password:'+password.value)
		alert ('El password introducido no coincide.'); 
		rpassword.value='';
		password.value=''; 
		password.focus();
		GuardarEnSession(password,password.toString());
		GuardarEnSession(rpassword,rpassword.toString());
		return false;
	} else {
		return true;
	}
 
}

function ValidarCambioPassword(password,rpassword,rpasswordnew)
{
	if (rpassword.value == password.value) 
	{ 
		alert ('La contraseña antigua y la nueva no pueden coincidir,por favor, vuelva a introducir una contraseña nueva.'); 
		rpassword.value='';
		password.value=''; 
		rpasswordnew.value='';
		password.focus();
		GuardarEnSession(password,rpassword.toString());
		GuardarEnSession(rpassword,rpassword.toString());
		GuardarEnSession(rpasswordnew,rpasswordnew.toString());		
		return false;
	}
	return true;
 
}


function comprovarSiDropSelected(select,msg)
{

	if (select.value ==-1)	
	{
	 alert('El campo ' + msg + ' es obligatorio.');	
	 select.focus();
	 return false;
	}
	return true;
		
}

function validarEntero(valor, campo) { 
	var cadena = valor.value.toString();
	var i = 0;
	while (i < cadena.length) {
		var num = parseInt(cadena.charAt(i++),valor.value.length);
		if (isNaN(num)) {
			alert('Por favor, introduzca un numero valido en el campo \'' + campo + '\'.');
			valor.focus();
			return false;
		}
	}
	return true;
}




function calc(url) 
 {
 //window.open("https://tienda.tecnol.es/imprimir_pedido.php","hoja_de_pedido","width=643,height=900,resizable=yes,status=no,menubar=yes,scrollbars=yes");
 vent=window.open('','tpv','width=725,height=700,scrollbars=yes,resizable=yes,status=yes,menubar=no,location=no');
 document.forms[0].submit(); 
 //alert(url); https://tienda.tecnol.es/imprimir_pedido.php
window.location=url;
 }

function imprimirPedido(idioma){
	w=window.open("./imprimir_pedido.php?idioma="+idioma,"hoja_de_pedido","width=643,height=900,resizable=yes,statusbar=no,menubar=yes,scrollbars=yes");
	//return void;
}

