﻿//test
function esNegativo(num)
{
    return (num<0);
}




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 esCero(s) {
    if (s=='0') {return true; }

    var i;
    for ( i = 0; i < s.length; i++ ) {
            if ( s.charAt(i) != "0" ) {
                    return false;
            }
    }
    return true;

}

function esNIF(s) {
    var er_dni = /(^([0-9]{8,8}[A-Za-z])|^)$/;
    
    return er_dni.test(s);
}

function esCIF(s) {
    var er_dni = /(^([A-Za-z][0-9]{8,8})|^)$/;
    
    return er_dni.test(s);
}

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,3})+$)|^)$/;
  
  return er_email.test(s);
}

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)));
        //alert(Mensaje("ErrorTiendaCantidadMinima", new Array(minimo,tipoCompra)).replace(/\\/g,""));

        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;
            }
        }
    }
}