﻿function esVacio(s) {
    if (s=='') {return true; }

    var i;
    for ( i = 0; i < s.length; i++ ) {
            if ( s.charAt(i) != " " ) {
                    return false;
            }
    }
    return true;
}

function esNIF(s) {
    var er_dni = /(^([0-9]{8,8}[A-Za-z])|^)$/;
    
    var lockup = 'TRWAGMYFPDXBNJZSQVHLCKE';
    var resultado;
    var dni = s;
    var dni2 = dni.substring(0, dni.length-1);
    var letra = dni.substring(dni.length-1, dni.length).toUpperCase();
    dni = dni2+letra;
    dni2 = dni2+lockup.charAt(dni2 % 23).toUpperCase();
    
  
    if(dni == dni2)
    {
   	    resultado = true;
   	    
    }else{
   	    resultado = false;
    }
    
    return resultado;
}
function esNIE(s) {
         
    var lockup = 'TRWAGMYFPDXBNJZSQVHLCKE';
    var nie = s;
    var resultado;
    var nie2 = nie.substring(0, nie.length-1);
    var letra = nie.substring(nie.length-1, nie.length).toUpperCase();
    var inicio = nie.substring(1, 2);
    
    if(isNaN(inicio))
    {
        nie2 = nie.substring(2, nie.length-1);
        nie = nie.substring(2, nie.length-1);
       
    }
    nie = nie2+letra;
    nie2 = nie2+lockup.charAt(nie2 % 23).toUpperCase();
    
    if(nie == nie2)
    {
   	    resultado = true;
   	    
    }else{
   	    resultado = false;
    }
    
    return resultado;
}
function esCIF(cif) {
//    var er_dni = /(^([A-Za-z][0-9]{8,8})|^)$/;
    
//    return er_dni.test(s);

 	    var par = 0;
        var non = 0;
        var letras="ABCDEFGHKLMNPQS";
        var let=cif.charAt(0);
        var resultado = true;
        
        if (cif.length!=9)
        {
          resultado = false;
        }
        
        if (letras.indexOf(let.toUpperCase())==-1)
        {
          resultado = false;
        }
        
        for (zz=2;zz<8;zz+=2)
        {
          par = par+parseInt(cif.charAt(zz));
        }
               
        for (zz=1;zz<9;zz+=2)
        {
          nn = 2*parseInt(cif.charAt(zz));
          if (nn > 9)
          {
          	nn = 1+(nn-10);
          }
          non = non+nn;
        }
        
        parcial = par + non;
	
        control = (10 - ( parcial % 10));
        
        if (control==10) control=0;

        if (control!=cif.charAt(8))
        {
          resultado = false;
        }
        
        return resultado;

}

function esCP(s) {
    var er_cp = /(^([0-9]{5,5})|^)$/;
    
    return er_cp.test(s);
}

function esDNI(s) {
    var er_cp = /(^([0-9]{8,8})|^)$/;
    
    return er_cp.test(s);
}

function esTelefono(s) {
    var er_tel = /(^([0-9]{9,9})|^)$/;
    
    return er_tel.test(s);
}

function esEmail(s) {    
  var er_email = /^((\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,5})+$)|^)$/;
  
  return er_email.test(s);
}

function esNumeroRangoValores(strString, intMin, intMax, AceptarNegativo){
    var s;
   
    s=strString;
    if (!esNumeroDecimal(s, AceptarNegativo))
    {
        return false;
    }else{
        if (parseInt(s) < intMin) return false;
        if (parseInt(s) > intMax) return false;
        return true;
    }
}

function esNumero(strString, AceptarNegativo) {
   var strValidChars = "0123456789";
   var s;
   
   s=strString;
   if (s.charAt(0)=='-') {
       if (!AceptarNegativo) { return false;}
       s = s.substring(1);
   }
   
   for (i = 0; i < s.length; i++)
      {
      if (strValidChars.indexOf(s.charAt(i)) == -1)
         {
         return false;
         }
      }
   return true;
   }

function esNumeroDecimal(strString, AceptarNegativo) {
   var strValidChars = "0123456789";
   var s;
   var bComa;
     
   bComa=false;
   s=strString;
   if (s.charAt(0)=='-') {
       if (!AceptarNegativo) { return false;}
       s = s.substring(1);
   }
   
   for (i = 0; i < s.length; i++) {
      if (strValidChars.indexOf(s.charAt(i)) == -1) {
            if ((s.charAt(i) == '.') || (s.charAt(i) == ',')) {
                if (!bComa) {
                    bComa=true;
                }
                else {
                    return false;
                }
            }
            else {
                return false;
            }
      }
   }
   return true;
}   


function esBisiesto(vcAno) {
	if (vcAno % 4 != 0) {
		return false;
	}	
	if (vcAno % 100 == 0) {
		if (vcAno % 400 == 0) {
			return true;
		}
		return false;
	}
	return true;
}

function esHoraYMinutos(vcCadena) {
    if (vcCadena=='') { return true; }
    
    return esHoraMinutosYSegundos(vcCadena + ':00');    
}

function esHoraMinutosYSegundos(vcCadena) {
    var cHora, cMinutos, cSegundos;
    var oHora;
    var eHora, eMinutos, eSegundos;
    
    if (vcCadena=='') { return true; }
    
    oHora = vcCadena.split(':');
	if (oHora.length != 3) {return false;}
	
	cHora = oHora[0];
	cMinutos = oHora[1];
	cSegundos = oHora[2];	
	
	if ((cHora.length >2) || (cHora.length <=0)) { return false; }
	if ((cMinutos.length >2) || (cMinutos.length <=0)) { return false; }
	if ((cSegundos.length >2) || (cSegundos.length <=0)) { return false; }
	
	// se comprueba si la hora, minutos y segundos contienen caracteres no numéricos
	if (!esNumero(cHora,false)) {		
		return false;
	}
	if (!esNumero(cMinutos,false)) {		
		return false;
	}
	if (!esNumero(cSegundos,false)) {
		return false;
	}
	eHora = parseInt(cHora, 10);
	eMinutos = parseInt(cMinutos, 10);
	eSegundos = parseInt(cSegundos, 10);
	if (eHora < 0 || eHora > 23) {
		return false;
	}
	if (eMinutos < 0 || eMinutos > 59) {
		return false;
	}
	if (eSegundos < 0 || eSegundos > 59) {
		return false;
	}
	return true;
}

function esFecha(vcCadena) {
	var cDia, cMes, cAno;
	var eDia, eMes, eAno;
	var oTaula = new Array(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	var oFecha;
	
	if (vcCadena=='') { return true; }
	
	oFecha = vcCadena.split('/');
	if (oFecha.length != 3) {return false;}
	
	cDia = oFecha[0];
	cMes = oFecha[1];
	cAno = oFecha[2];	
	
	if ((cDia.length >2) || (cDia.length <=0)) { return false; }
	if ((cMes.length >2) || (cMes.length <=0)) { return false; }
	if (cAno.length != 4) { return false; }
	
	// se comprueba si el día, el mes y el año contienen caracteres no numéricos
	if (!esNumero(cDia,false)) {		
		return false;
	}
	if (!esNumero(cMes,false)) {		
		return false;
	}
	if (!esNumero(cAno,false)) {
		return false;
	}
	
	// se comprueba que el día y el mes sean correctos
	eDia = parseInt(cDia, 10);
	eMes = parseInt(cMes, 10);
	eAno = parseInt(cAno, 10);
	if (eMes <= 0 || eMes > 12) {
		return false;
	}
	if (eDia <= 0 || eDia > oTaula[eMes - 1]) {
		return false;
	}
	
	// se comprueba si el año introducido es bisiesto
	if (eDia == 29 && eMes == 2) {
		if (!esBisiesto(eAno)) {
			return false;
		}
	}
	return true;
}

function validarCantidadCompra(control, minimo, incremento, tipoCompra)
{
    if (control==null) { return false; }

    control.value = trim(control.value);
    
    if (control.value=="" || !esNumero(control.value, false))
    {
        alert(Mensaje("ErrorTiendaCantidadNoNumero"));
        control.value = minimo;
        control.focus();
        return false;
    }
    if (parseInt(control.value)<minimo)
    {
        alert(Mensaje("ErrorTiendaCantidadMinima", new Array(minimo,tipoCompra) ));
        control.value = minimo;
        control.focus();
        return false;
    }
    if (parseInt(control.value) % incremento !=0)
    {
        alert(Mensaje("ErrorTiendaCantidadMultiplo", new Array(incremento,tipoCompra) ));
        
        if (parseInt(control.value) % incremento >=250) {
            control.value =parseInt(control.value) +  (incremento-(parseInt(control.value) % incremento));
        }
        else
        {
            control.value =parseInt(control.value) - (parseInt(control.value) % incremento);
        }
        control.focus();
        return false;
    }        
            
    return true;
}

function cambiarCantidad(control, minimo, incremento, incrementar)
{
    if (control!=null)
    {
        control.value = trim(control.value);
        
        if (control.value=="" || !esNumero(control.value, false))
        {
            control.value=minimo;
            return;
        }
        if (incrementar==true)
        {
            control.value = parseInt(control.value) + incremento;
        }
        else
        {
            if (parseInt(control.value) - incremento >= minimo) {
                control.value = parseInt(control.value) - incremento;
            }
        }
    }
}

function CompararFechas(fechaInicio, fechaFin)
{ 
    var oFecha, sDia, sMes, sAnio;
    
    if (!esFecha(fechaInicio)) 
    {		
		return false;
	}
	if (!esFecha(fechaFin)) 
    {		
		return false;
	} 
    oFecha = fechaInicio.split('/');
	sDia = oFecha[0];
	sMes = oFecha[1];
	sAnio = oFecha[2];	
	
    var sFechaInicio = sAnio + ponCero(sMes) + ponCero(sDia); 

    oFecha = fechaFin.split('/');
	sDia = oFecha[0];
	sMes = oFecha[1];
	sAnio = oFecha[2];
	
	var sFechaFin = sAnio + ponCero(sMes) + ponCero(sDia); 

    if(sFechaInicio > sFechaFin)
    { 
        return false; 
    } 
    return true; 
} 

function ponCero(strPon)
{   
    if(parseInt(strPon.length) < 2)   
        strPon = "0" + strPon;   
    return strPon;   
}   
