// FUNCIONES MATEMÁTICAS - NUMÉRICAS
/*

int AjustaADos(Valor) 
bool esNumero(Campo)
bool esNumeroDecimal(Campo)
bool esPorcentaje(campo)


*/
//----------------------------------------------------
// esNumero: Comprueba que el valor de un campo es un valor numérico
//----------------------------------------------------
function esNumero(Campo)
  {
	var i=0;
	var totnumeros = true  // Coger el valor del campo
	var ceros=true
	var valor=""

	  for (i=0;i<Campo.value.length;i++) // Mirar todos los caracteres.
	     if ((Campo.value.substring(i,i+1) < "0") || (Campo.value.substring(i,i+1) >"9")) 
		totnumeros=false; // Si es un caràcter no numerico la variable se pone a false.

  	if (!totnumeros)   // Si no son todo números
	{  
	       window.alert("El campo sólo admite valores numéricos");   // Mensaje de error
		   Campo.value="";
		   Campo.focus();
      	   Campo.select();
		   return false
	}
	else
	{
		
			Campo.value=AjustaADos(Campo.value);
			return true
			
	}	   
}			

//----------------------------------------------------
// esNumeroDecimal: Comprueba que el valor de un campo es un valor numérico decimal
//----------------------------------------------------

function esNumeroDecimal(Campo)
{
var i=0;
var j=0;
var totnumeros = true  // Coger el valor del campo
var salir=false
var donde = 0;
var longitud

	  for (i=0;i<Campo.value.length;i++) // Mirar todos los caracteres.
	  if (!salir)
	  {
	     if ((Campo.value.substring(i,i+1) < "0") || (Campo.value.substring(i,i+1) >"9"))
		 {
		  if (Campo.value.substring(i,i+1) == ",")
		  {
				  salir=true;
				  donde = i;
		  } 
		  else		   
		  		 totnumeros=false; // Si es un caràcter no numerico y no es el punto decimal la variable se pone a false.
	  	 }
	  }
	  
	  //A partir de aqui solo dos decimales permitidos, si ha encontrado el punto
	  if (Campo.value.substring(donde,donde+1)==",")
	  {
	   longitud=Campo.value.length;
	   	   	for (j=donde+1; j<=donde+Campo.value.substring(donde+1,longitud).length;j++)
		{
			if ((Campo.value.substring(j,j+1) < "0") || (Campo.value.substring(j,j+1) >"9")) 
		 	   totnumeros=false; // Si es un caràcter no numerico la variable se pone a false.
		}	
	 
		
	  }	 
  	if (!totnumeros)   // Si no son todo números
	{  
	       window.alert("El campo sólo admite valores numéricos enteros");   // Mensaje de error
		   Campo.value="0,00";
		   Campo.focus();
      	   Campo.select();
		   return false
	}	   
	else
	{
		
		Campo.value=AjustaADos(Campo.value)
		return true
	}
}

//----------------------------------------------------
// esPorcentaje: Comprueba que el valor de un campo es un porcentaje (es decimal y menor que 100)
//----------------------------------------------------

function esPorcentaje(campo)
{
	if (esNumeroDecimal(campo))
	{

		if (campo.value>100) 
		{
			alert("Valor incorrecto");
			campo.focus();
			return false;
		}
		else
		{
			return true;
		}
	}

}

//----------------------------------------------------
//  AjustaADos: redondea el contenido de un campo a 2 dígitos decimales
//----------------------------------------------------

function AjustaADos(Valor) 
{ 
	return(Valor); 
} 


function pulsaNumero(e,conComa,texto) { 
	var coma=false;
	var i=0;
	var max=0;
 
	max=texto.length;
 	if(window.Event) {
  		var codigo= e.which;
 	}
 	else {
  		if(e.type=="keypress") {
   			var codigo= e.keyCode;
  		}
 	} 
 
 	if(e.type=="keypress") {
  		if (conComa=='true') {
      		if (codigo==46 || codigo==44) {   /*(46=un punto '.')*/
    			for(i=0; i<max; i++) {
     				if (texto.charAt(i)==',')  coma=true;
    			}
    			if (coma) 
			     	e.keyCode=0;      
			    else 
				    e.keyCode=44;      /*(44=una coma ',')*/
		   }
   		   else {
    		if(codigo<48 || codigo>57) 
    			e.keyCode=0;
   		   }
  		}
  		else {
   			if(codigo<48 || codigo>57) {      /*(48='0' 57='9')*/
    			e.keyCode=0;
   			}
  		}
	}

}


function emailCheck (emailStr) { 
        /* Verificar si el email tiene el formato user@dominio. */ 
        var emailPat=/^(.+)@(.+)$/ 
        /* Verificar la existencia de caracteres. ( ) < > @ , ; : \ " . [ ] */ 
        var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]" 
        /* Verifica los caracteres que son válidos en una dirección de email */ 
        var validChars="\[^\\s" + specialChars + "\]" 
        var quotedUser="(\"[^\"]*\")" 
        /* Verifica si la dirección de email está representada con una dirección IP Válida */ 
        var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/ 
                /* Verificar caracteres inválidos */ 

        var atom=validChars + '+' 
        
        var word="(" + atom + "|" + quotedUser + ")" 
        var userPat=new RegExp("^" + word + "(\\." + word + ")*$") 
        /* domain, as opposed to ipDomainPat, shown above. */ 
        var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$") 
        var domainExc=new RegExp("(@cam.es|@*.cam.es)$") 
        
        
        // si no cumple con los no permitidos 
        var matchArray=emailStr.match(domainExc) 
        if (matchArray!=null) { 
                alert("Direcciones internas no permitidas") 
                return false 
        } 
        
        /// Si esta dentro de los permitidos 
        var matchArray=emailStr.match(emailPat) 
        if (matchArray==null) { 
                return false 
        } 

        
        var user=matchArray[1] 
        var domain=matchArray[2] 



/*      if (domain=="cam.es") 
        { 
                alert("Direcciones Internas no permitidas") 
                return false 
        }*/ 
        // Si el user "user" es valido 
        if (user.match(userPat)==null) { 
        // Si no 
                return false 
        } 

        /* Si la dirección IP es válida */ 
        var IPArray=domain.match(ipDomainPat) 
        if (IPArray!=null) { 
                for (var i=1;i<=4;i++) { 
                      if (IPArray[i]>255) { 
                                return false 
                        } 
                } 
                return true 
        } 

        var domainArray=domain.match(domainPat) 
        if (domainArray==null) { 
                return false 
        } 

        var atomPat=new RegExp(atom,"g") 
        var domArr=domain.match(atomPat) 
        var len=domArr.length 
        if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) { 
                return false 
        } 

        if (len<2) { 
                return false 
        } 

        // La dirección de email ingresada es Válida 
        return true; 
}  