function numericocoma(pInString,piDecimal)
{
	var RefStringE = "1234567890";
	var RefStringD = "1234567890,";

	if (pInString.length==0)
		return false;
	if (piDecimal == 0)
		RefString = RefStringE ;
	else
		RefString = RefStringD;
	Punto = 0 ;
	for (Count=0; Count < pInString.length; Count++)
	{
		TempChar= pInString.substring (Count, Count+1);
		if (RefString.indexOf (TempChar, 0)==-1)
		{
			return false;
		}
		if (TempChar == ",")
		{
			Punto = Punto + 1;
		} 
	}
	if (Punto > 1)
		return false;
	return true;
}

function transformar_acliente_fecha (fecha) {
	
	var elementos_fecha = fecha.split("/");
	var fecha_t = new Date (elementos_fecha[2],elementos_fecha[1]-1,elementos_fecha[0]);
	return fecha_t;
}

function numerico(pInString,piDecimal)
{
	var RefStringE = "1234567890";
	var RefStringD = "1234567890.";

	if (pInString.length==0)
		return false;
	if (piDecimal == 0)
		RefString = RefStringE ;
	else
		RefString = RefStringD;
	Punto = 0 ;
	for (Count=0; Count < pInString.length; Count++)
	{
		TempChar= pInString.substring (Count, Count+1);
		if (RefString.indexOf (TempChar, 0)==-1)
		{
			return false;
		}
		if (TempChar == ".")
		{
			Punto = Punto + 1;
		} 
	}
	if (Punto > 1)
		return false;
	return true;
}

function ValidaFormatoFecha(pistrFecha)
	{
	var datFecha=pistrFecha;
	var strDia=datFecha.substring(0,datFecha.indexOf("/",0));
	var strMes=datFecha.substring(datFecha.indexOf("/",0)+1,datFecha.indexOf("/",datFecha.indexOf("/",0)+1));
	var strAnno=datFecha.substring(datFecha.indexOf("/",datFecha.indexOf("/",0)+1)+1,datFecha.length);
	/*if ((strDia.length == 1) || (strMes.length == 1) || (strAnno.length == 2))*/
	if ((strDia.length < 1) || (strDia.length > 2) || (strMes.length < 1) || (strMes.length > 2) || (strAnno.length < 4))
		{
			return (false);
		}
	else
		return (true);
	}
	
function ValidarFecha(pistrFechaA)
	{
	var strNuevaFecha
		if ((pistrFechaA.substring(1,2) == "/") || (pistrFechaA.substring(1,2) == "-"))
			{
			iDia = "0" + pistrFechaA.substring(0,1);
			strNuevaFecha = iDia + pistrFechaA.substring(1,pistrFechaA.length);
			pistrFechaA = strNuevaFecha;
			}
		if ((pistrFechaA.substring(4,5) == "/") || (pistrFechaA.substring(4,5) == "-"))
			{
			iMes = "0" + pistrFechaA.substring(3,4);
			strNuevaFecha = pistrFechaA.substring(0,3) + iMes + pistrFechaA.substring(4,pistrFechaA.length);
			pistrFechaA = strNuevaFecha;
			}
	if (pistrFechaA.length == 8) 
		{
		iFecha = parseFloat(pistrFechaA.substring(6,8))
		if (iFecha > 20)			
			{
			strNuevaFechaA = pistrFechaA.substring(0,6) + "19" + pistrFechaA.substring(6,8)
			}
		else
			{
			strNuevaFechaA = pistrFechaA.substring(0,6) + "20" + pistrFechaA.substring(6,8)
			}
		pistrFechaA = strNuevaFechaA
		}
	strNuevaFechaA = pistrFechaA.substring(0,2) + pistrFechaA.substring(3,5) + pistrFechaA.substring(6,10);
	strSlash       = pistrFechaA.substring(2,3) + pistrFechaA.substring(5,6);	
	if (!(strNuevaFechaA.length == 0))
		{
		if (!(numerico(strNuevaFechaA,0)))
			{
			return(false) ;
			}
		else
			{                                                                                                                                                                                                                        
			if ((strSlash != "//") && (strSlash != "--"))
				{
				return(false);	
				}
			else
				{
				if (!(Bisiesto(strNuevaFechaA)))
					{
					return(false);
					}	
				}
			}
		}

	if ((pistrFechaA.length != 8) && (pistrFechaA.length != 10) && (pistrFechaA.length !=0))
		{
		return(false);
		}
	return(true);
	}
	
function Bisiesto(pistrFecha)
{
	anno  = pistrFecha.substring(4,8);
	mes1   = pistrFecha.substring(2,4);
	dia   = pistrFecha.substring(0,2);	
	resto = anno % 4;
	if ((mes1 == 1) || (mes1 == 3) || (mes1 == 5) || (mes1 == 7) ||(mes1 == 8) || (mes1 == 10) || (mes1 == 12))
	{
		maxdia = 31;
	}
    else
	{
		if (mes1 == 2)
		{
			if (resto == 0)
			{
				maxdia = 29;
			}
			else
			{
				maxdia = 28 ;
			}
		}
		else
		{
			if ((mes1 == 4) || (mes1 == 6) || (mes1 == 9) || (mes1 == 11))
			{
				maxdia = 30;
			}
			else
			{
				return(false);
			}
		}   
	}
	if ((dia > maxdia) || (dia < 1))
		return(false);
	if ((anno > 2500) || (anno < 1800))
		return(false);
	return (true);
}

function ValidarFechaFormulario ( formulario, campo )
{
	if ((ValidaFormatoFecha(document.forms[formulario].elements[campo].value)==false) || 
	    (ValidarFecha(document.forms[formulario].elements[campo].value)==false))	    
	{
		alert('Fecha incorrecta.');
		return false;
	}else{
		return true;
	}
}	

function ValidarFechaFormulario1 ( formulario, campo )
{
	if ((ValidaFormatoFecha(document.forms[formulario].elements[campo].value)==false) || 
	    (ValidarFecha(document.forms[formulario].elements[campo].value)==false))	    
	{
		return false;
	}else
		{ 
			
			return true;
		}
}			

function EsVacio ( formulario, campo )
{
	
	var i=1;
	var blancos ='';

	
	while (i<=document.forms[formulario].elements[campo].value.length)
        {
           blancos = blancos + ' ';
           i++;
        }   	
        return (document.forms[formulario].elements[campo].value == blancos);
}        
        


function Entero(formulario, campo) {
	
	if (isNaN(document.forms[formulario].elements[campo].value)){
   	   //alert('El campo debe ser un número entero');
   	   document.forms[formulario].elements[campo].focus();
   	   return false;
   	}   
   	else
   	  if (document.forms[formulario].elements[campo].value.indexOf('.') != -1){
   	    //alert('El campo debe ser un número entero');
   	    document.forms[formulario].elements[campo].focus();
   	    return false;
   	  }
   	return true;
}

function FechasCorrectas(fechaDesde, fechaHasta){
	var pos, diad, mesd, anod;
	var pos2, diah, mesh, anoh;
	var valor = true;

	pos = fechaDesde.indexOf("/");
	diad = fechaDesde.substring(0,pos)*1;
	pos2 = fechaDesde.indexOf("/", pos + 1);
	mesd = fechaDesde.substring(pos+1,pos2)*1;
	pos = fechaDesde.indexOf("/", pos2 + 1);
	anod = fechaDesde.substring(pos2 + 1,10)*1;

	pos = fechaHasta.indexOf("/");
	diah = fechaHasta.substring(0,pos)*1;
	pos2 = fechaHasta.indexOf("/", pos + 1);
	mesh = fechaHasta.substring(pos+1,pos2)*1;
	pos = fechaHasta.indexOf("/", pos2 + 1);
	anoh = fechaHasta.substring(pos2 + 1,10)*1;
	
	if(anod > anoh){
		valor = false;
	}
	else
		if(anod == anoh){
			if(mesd > mesh){
				valor = false;
			}
			else
				if(mesd == mesh){
					if(diad > diah){
						valor = false;
					}
				}
			
		}
	
	
	return valor;
}

function ValidarHora(hora)
{
	if(hora.length < 5)
	{
		return(false);
	}
	else
	{
		var datHora=hora;
		var strHora=datHora.substring(0,datHora.indexOf(":",0));
		var strMinutos=datHora.substring(datHora.indexOf(":",0)+1,datHora.length);
		if(strHora.length < 2 || strHora*1 < 0 || strHora*1 > 24 || isNaN(strHora) == true)
		{
			return(false)
		}
		if(strMinutos.length < 2 || strMinutos*1 < 0 || strMinutos*1 > 59 || isNaN(strMinutos) == true)
		{
			return(false)
		}
	}
	return(true);
}

function validar_correo(correo)	           
{
	var mailres = true;             
    var cadena = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ1234567890@._-"; 
     
    var arroba = correo.indexOf("@",0); 
    if ((correo.lastIndexOf("@")) != arroba) arroba = -1; 
     
    var punto = correo.lastIndexOf("."); 
                 
     for (var contador = 0 ; contador < correo.length ; contador++){ 
        if (cadena.indexOf(correo.substr(contador, 1),0) == -1){ 
            mailres = false; 
            break; 
     } 
    } 

    if ((arroba > 1) && (arroba + 1 < punto) && (punto + 1 < (correo.length)) && (mailres == true) && (correo.indexOf("..",0) == -1)) 
     mailres = true; 
    else 
     mailres = false; 
                 
    return mailres; 
}

// Joseba
// 04/12/2003
// Devuelve la letra del dni
function calcular_letra_dni(dni){
	if(dni.length != 8){
		alert("DNI erróneo");
		return "";
	}
	
	var letras = 'TRWAGMYFPDXBNJZSQVHLCKE';
	var numero = dni%23;
	
	return (letras.substring(numero,numero+1));
}

// Joseba
// 04/12/2003
// Valida un dni
function validar_dni(dni){
	if(dni.length != 9){
		return false;
	}else if(isNaN(dni.substring(0,8))){
		return false;
	}else if(!isNaN(dni.substring(8,9))){
		return false;
	}else if(dni.substring(8,9).toUpperCase() != calcular_letra_dni(dni.substring(0,8))){
		return false;
	}else{
		return true;
	}
}

// Joseba
// 04/12/2003
// Valida un cif
function validar_cif(cif){
   var v1 = new Array(0,2,4,6,8,1,3,5,7,9); 
   var letras = new Array('J','A','B','C','D','E','F','G','H','I','J'); 
   var temp = 0; 
   var temp1;
	
	cif = cif.toUpperCase();

	if(cif.length != 9){
		return false;
	}else if(isNaN(cif.substring(1,8))){
		return false;
	}else if(!isNaN(cif.substring(0,1))){
		return false;
	}else if (!/^[ABCDEFGHKLMNPQS]/.test(cif.substring(0,1))) {
		return false;
	}

	for(i=2;i<= 6;i+=2){
	   temp = temp + v1[parseInt(cif.substr(i-1,1))];
	   temp = temp + parseInt(cif.substr(i,1));
   }

	temp += v1[parseInt(cif.substr(7,1))];

	temp = (10 - ( temp % 10));

	if(temp == 10){
		temp = 0;
	}
	
	var dc = cif.substr(8,1);

   if(dc == letras[temp] || dc == temp.toString()){
		return true;
	}else{
	    return false;
	}

}

function validar_email(email){
	var exclude=/[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
	var check=/@[\w\-]+\./;
	var checkend=/\.[a-zA-Z]{2,4}$/;
	 
	if(
		(email.search(exclude) != -1) || 
		(email.search(check) == -1) || 
		(email.search(checkend) == -1)
	  ){
		return false;
	}else{
		return true;
	}
}

function validar_datos_bancarios(entidad, sucursal, dc, cuenta){
	
	if(isNaN(entidad) || isNaN(sucursal) || isNaN(dc) || isNaN(cuenta)){
		return false;
	}else{
		var dato1 = entidad.toString() + sucursal.toString();
	
		for(var i=cuenta.length;i<10;i++,(cuenta="0"+cuenta));
		var dato2 = cuenta.toString();
	
		var digitos = new Array(0,1,2,3,4,5,6,7,8,9,1,0);
		var pesos = new Array(1,2,4,8,5,10,9,7,3,6);
		var suma = 0;
	
		for(var i=0;i<dato1.length;i++){
			suma += dato1.substring(i,i+1) * pesos[i+2];
		}
	
		var dc1 = digitos[11 - (suma % 11)];
	
		suma = 0;

		for(var i=0;i<dato2.length;i++){
			suma += dato2.substring(i,i+1) * pesos[i];
		}

		var dc2 = digitos[11 - (suma % 11)];
	
		var dc_res = dc1.toString() + dc2.toString();
	
		if(dc_res != dc){
			return false;
		}else{
			return true;
		}
	}	
}

//D.R.
//11/03/05
// Utilizada en el evento onKeyPress valida que solo se introduce un numero decimal

function soloNumeroDecimal(nuevoValor,e)
{

var tecla;
var caracter;

if (window.event)
	tecla = window.event.keyCode;
else if (e)
	tecla = e.which;
else
	return true;

caracter = String.fromCharCode(tecla);


if ((tecla==null) || (tecla==0) || (tecla==8) || (tecla==9) || (tecla==13) || (tecla==27) )
	{
		return true;
               	}
               	
               	else { 
               		if(caracter == ","){
               		
               			if(String(nuevoValor).indexOf(",") > -1 || String(nuevoValor).length==0)
               		 		return false;
               		 	else
               		 		return true;
               		              		
               		}
               		else{               		
               		 	if ( ("0123456789").indexOf(caracter) > -1){
               		 		return true;
			}               		
               		 	else
               		 		return false;
	
               		}
               	}

}
    
function soloNumeros(e)
{

var tecla;
var caracter;

if (window.event)
	tecla = window.event.keyCode;
else if (e)
	tecla = e.which;
else
	return true;

caracter = String.fromCharCode(tecla);


if ((tecla==null) || (tecla==0) || (tecla==8) || (tecla==9) || (tecla==13) || (tecla==27) )
{
	return true;
}else {         		              		
               		if ( ("0123456789").indexOf(caracter) > -1){
               		
               			return true;
		
		}               		
               		else
               			
               			return false;
	               		
               	}

}	
function validar_codigopostal(codigo)	           
{
	var plant = /\b[0-9]{5}\b$/gi;
	if (plant.test(codigo))
      return(true);
	else
      return(false);
} 
function validar_telefono(tfno)	           
{
	var plant = /\b[0-9]{9}\b$/gi;
	if (plant.test(tfno))
      return(true);
	else
      return(false);
}           
