var separadorfecha = "/";

var numeros="0123456789";
var error= new creaerror();  
var errores= new Array();
  
errores[1]="Campo vacio no contiene ningún valor ";
errores[2]="Carácter ilegal en una fecha los separadores deben ser -";
errores[3]="Faltan separadores en una fecha";
errores[4]="Año incorrecto en una fecha";
errores[5]="Mes incorrecto en una fecha";
errores[6]="Día incorrecto en una fecha";
     
//Función que sólo permite escribir números    
function f_numeros()
	{
	//alert("f_numeros");
	if (event.keyCode < 48 || event.keyCode > 57)
		{
		event.keyCode = "";
		event.returnValue = null;
		}
	}
//Función que sólo permite escribir letras mayúsculas, minúsculas y espacios				
function f_letras()
	{
	if ((event.keyCode < 65 || event.keyCode > 90) && (event.keyCode < 97 || event.keyCode > 122))
		{
		if (event.keyCode != 32)
			{
			event.keyCode = "";
			event.returnValue = null;
			}
		}
	}


//Función que controla que el DNI sea correcto     
function f_dni(documentoDni)
	{
 	//alert(documentoDni);
 	var letrasDNI = 'TRWAGMYFPDXBNJZSQVHLCKET';
	var letraDoc = documentoDni.substr(documentoDni.length-1,documentoDni.length);
	//alert ("letra " + letraDoc);
	var numeroDoc = documentoDni.substr(0, documentoDni.length-1);
	numeroDoc = Number(numeroDoc);
	//alert ("numero " + numeroDoc);
	var posicionLetra = numeroDoc % 23;
	if (letraDoc.toUpperCase() == letrasDNI.charAt(posicionLetra))
		return true;
	else
		return false;
	}
	
// Crea un objeto que guarda un indice a la posición y al mensaje de error
function creaerror()
	{
	this.valor=0;
	this.posicion=0;
	return this
	}
  
	
// Determina si un caracter es un número
function numero(car)
	{
	return (numeros.indexOf(car)>=0)
	}
   
	
// Determina si un año es bisiesto
function bisiesto(anio) 
	{
	if (((anio % 4 == 0) && anio % 100 != 0) || anio % 400 == 0) 
	   return true;
	
	return false;
	}

// Comprueba si una fecha es correcta
function f_comprobar_fecha(contenido) 
	{
	if ((contenido.length==0))
		{
		return false;
		} 
		
	var nsep=0;
		
	// Comprobación de la sintáxis de una fecha 
	for (var i=0; i<contenido.length; ++i)
		{
		var car=contenido.charAt(i);
		if (!numero(car)&&car!=separadorfecha)
			{
			return false;
			}
	    if (car==separadorfecha)
			{
			nsep++ 
			}
		}
		
	if (nsep!=2)
		{
		return false;
		}
		
	// Comprobación de la semántica de una fecha
	var pos1=contenido.indexOf(separadorfecha);
	var dia=contenido.substring(0,pos1);
	var pos2=contenido.indexOf(separadorfecha,pos1+1);
	var mes=contenido.substring(pos1+1,pos2); 
	var anio=contenido.substring(pos2+1,10);
		
	if (anio<1000 || anio>9999)
		{
		return false;
		} 
			
	if (mes<1 || mes>12)
		{
		return false;
		}
		
	if ( (dia<1 || dia>31) || (mes==4&&dia>30) || (mes==6&&dia>30)
	     ||(mes==9&&dia>30) || (mes==11&&dia>30)
	     ||(mes==2&&bisiesto(anio)&&dia>29)
	     ||(mes==2&&!bisiesto(anio)&&dia>28) )
		{
		return false;
		} 
			
	if (mes.length == 1)
		mes = 0 + mes;
			
	if (dia.length == 1)	
		dia = 0 + dia;
			
	//return anio+mes+dia;
	return true; 
	}

// Comprueba si una fecha es correcta
function f_formatear_fecha_to_bd(contenido) 
	{
	if ((contenido.length==0))
		{
		return false;
		} 
		
	var nsep=0;
		
	// Comprobación de la sintáxis de una fecha 
	for (var i=0; i<contenido.length; ++i)
		{
		var car=contenido.charAt(i);
		if (!numero(car)&&car!=separadorfecha)
			{
			return false;
			}
	    if (car==separadorfecha)
			{
			nsep++ 
			}
		}
		
	if (nsep!=2)
		{
		return false;
		}
		
	// Comprobación de la semántica de una fecha
	var pos1=contenido.indexOf(separadorfecha);
	var dia=contenido.substring(0,pos1);
	var pos2=contenido.indexOf(separadorfecha,pos1+1);
	var mes=contenido.substring(pos1+1,pos2); 
	var anio=contenido.substring(pos2+1,10);
		
	if (anio<1000 || anio>9999)
		{
		return false;
		} 
			
	if (mes<1 || mes>12)
		{
		return false;
		}
		
	if ( (dia<1 || dia>31) || (mes==4&&dia>30) || (mes==6&&dia>30)
	     ||(mes==9&&dia>30) || (mes==11&&dia>30)
	     ||(mes==2&&bisiesto(anio)&&dia>29)
	     ||(mes==2&&!bisiesto(anio)&&dia>28) )
		{
		return false;
		} 
			
	if (mes.length == 1)
		mes = 0 + mes;
			
	if (dia.length == 1)	
		dia = 0 + dia;
			
	return anio+mes+dia; 
	}



// ------------------------------------------------------
// Cliente
// función de cambio de formato de B.D. a formato Usuario
// ------------------------------------------------------

function f_fecha_bd_to_user(bd_fecha) 
	{
	var aa = ""
	var mm= ""
	var dd= ""
	var user_fecha= ""
		
	if (bd_fecha == 0)
		{
		user_fecha = '00' + separadorfecha + '00' + separadorfecha + '0000'
		}
	else 
		{	
		bd_fecha = new String(bd_fecha);
		aa = bd_fecha.substr(0,4);
		mm = bd_fecha.substr(4,2);
		dd = bd_fecha.substr(6,2);

		user_fecha = new String(user_fecha);
		user_fecha += String(dd);
		user_fecha += String(separadorfecha);
		user_fecha += String(mm);
		user_fecha += String(separadorfecha);
		user_fecha += String(aa);
		}
		user_fecha = new String(user_fecha);
		
	return(user_fecha)
	}


// ------------------------------------------------------
// función de cambio de formato de Usuario a formato B.D.
// ------------------------------------------------------


function f_fecha_user_to_bd(contenido) 
	{
	contenido=String(contenido);
	
	// Esto se utiliza para validar las fechas que estan en la BD a cero ...
	var cero = '00' + separadorfecha + '00' + separadorfecha + '0000'
	if ((contenido == cero)||(contenido.length==0))
		{
		return 0;
		}

	// Construcción de la fecha
	var pos1=contenido.indexOf(separadorfecha);
	var dia=contenido.substring(0,pos1);
	var pos2=contenido.indexOf(separadorfecha,pos1+1);
	var mes=contenido.substring(pos1+1,pos2); 
	var anio=contenido.substring(pos2+1,10);
   
	if (mes.length == 1)
		mes = 0 + mes;
	if (dia.length == 1)
		dia = 0 + dia;
	
	return anio+mes+dia; 
	
	}

// Obtiene la fecha del sistema y devuelve la fecha en formato user
function getFechaHoy()
	{
	var d, dia, mes, anyo, fechahoy;
	d = new Date();
	dia = d.getDate().toString();
	
	if (dia.length == 1)
		{
		dia = "0" + dia; 
		}
	
	mes = (d.getMonth() + 1).toString();
	
	if (mes.length == 1)
		{
		mes = "0" + mes;
		}
	
	anyo = d.getYear().toString();
	fechahoy = dia + separadorfecha + mes + separadorfecha + anyo;
	
	return fechahoy;
	}

// ------------------------------------------------------
//Función que levanta la ventana modal de la ayuda
// ------------------------------------------------------

function f_ayuda (tabla, literal, idioma)
	{
	var direccion = "../../Comun/ventanaAyuda.asp?hidTabla=" + tabla + "&hidLiteral=" + literal + "&hidIdioma=" + idioma;
	ventana = window.showModalDialog(direccion,"","dialogHeight:270px;dialogWidth:400px;scroll:yes;resizable:no;center:yes;status:no");
	//alert(direccion);
	}

	
//Función para abrir los PDF

function abrirPdf(pdf) 
	{ 
	var direccion = "../../Comun/ventana.asp?direccion=./Pdf/" + pdf;
	window.open(direccion,"","titlebar=no,menubar=no,toolbar=no,location=no,status=no,scrollbars=yes,resizable=no,copyhistory=no,width=800,height=600,left=0,top=20",true); 
	}	
