/*---------------------------------------------------------------------------------*/
/* valida que el campo valor sea numerico, ejemplo, numero de local */
function EsNumero(numero)
{
   if (isNaN(numero.value)) {
      alert('Ingrese solo valores numéricos !');
      numero.value="";
	  numero.focus()
   }
}


// -----------------------------------------------------------
// -----------------------------------------------------------
// valida que el primer caracter ingresado sea caracter (no numero)
function NoEsNumero(xtexto)
{
   var xvalor = new String(stralltrim(xtexto.value));
   if (xvalor.length > 0){
      if (!(isNaN(xvalor.substring(0,1)))) {
	     alert('No puede ingresar un número como primer caracter !');
	     return false;
	  }
   }
}



// -----------------------------------------------------------
// -----------------------------------------------------------
// devuelve la fecha actual en dd/mm/yyyy
function fecha_actual() {
    var lfecha, ldia, lmes, lano, ldev;
	lfecha = new Date();
	ldia = lfecha.getDate(); //0=domingo...6=sabado
	lmes = lfecha.getMonth()+1;
	lano = lfecha.getFullYear();
	if (ldia==0) ldia=7;	//como domingo=0, convierto en 7.
	if (ldia<10) ldia='0'+ldia;	// agrego un cero delante en caso que falte uno.
	if (lmes<10) lmes='0'+lmes;	// agrego un cero delante en caso que falte uno.
	ldev = stralltrim(' ' + ldia + "/" + lmes + "/" + lano);
	return ldev;
}




// -----------------------------------------------------------
// -----------------------------------------------------------
// elimina espacios en blanco de izq y der.
function stralltrim(lstr)
{
	return strrtrim(strltrim(lstr));
}


// -----------------------------------------------------------
// -----------------------------------------------------------
// elimina espacios en blanco de derecha.
function strrtrim(lstr)
{
	var ch;
	var len;
	var i;

	ch = ' ';
	len = lstr.length;
	for (i = len - 1; i >= 0; i--)
	{  
		ch = lstr.charAt(i);
		if (ch != ' ')
			break;
	}

	if (i >= 0)
		return lstr.substring(0, i + 1);
	else
		return "";
}


// -----------------------------------------------------------
// -----------------------------------------------------------
// elimina espacios en blanco de izq.
function strltrim(lstr)
{
	var ch;
	var len;
	var i;

	ch = ' ';
	len = lstr.length;
	for (i = 0; i < len; i++)
	{
		ch = lstr.charAt(i);
		if (ch != ' ')
			break;
	}
	if (ch != ' ')
		return lstr.substring(i, len);
	else
		return "";
}


/*---------------------------------------------------------------------------*/
// valida que la fecha de ingreso sea correcta.
function ValidaFechaIng(xfecha){
	fecha = new String(stralltrim(xfecha.value));
	if (fecha.length < 1){
		return true;
	}

	dd          = fecha.substring(0,2);
	separadores = fecha.substring(2,3);
	separadores = separadores + fecha.substring(5,6);
	mm          = fecha.substring(3,5);
	aa          = fecha.substring(6,10);

	if (!validarFecha(dd,mm,aa)) {
		alert('Debe ingresar una fecha valida, formato válido es DD/MM/YYYY !');
		xfecha.value = fecha_actual();
		xfecha.focus()
		return false;
	}

	if (!(separadores=='//')) {
		alert('Separadores de fecha incorrectos, formato válido es DD/MM/YYYY !');
		xfecha.focus()
		return false;
	}
	return true;
}


/*---------------------------------------------------------------------------*/
// valida que la fecha de ingreso sea correcta.
function ValidaFechaIng2(xfecha){
	fecha = new String(stralltrim(xfecha));
	if (fecha.length < 1){
		return true;
	}
	dd          = fecha.substring(0,2);
	separadores = fecha.substring(2,3);
	separadores = separadores + fecha.substring(5,6);
	mm          = fecha.substring(3,5);
	aa          = fecha.substring(6,10);
	
	if (!validarFecha(dd,mm,aa)) {
		alert('Debe ingresar una fecha valida, formato válido es DD/MM/YYYY !');
		xfecha.value = fecha_actual();
		xfecha.focus()
		return false;
	}

	if (!(separadores=='//')) {
		alert('Separadores de fecha incorrectos, formato válido es DD/MM/YYYY !');
		xfecha.focus()
		return false;
	}
	return true;
}


// -----------------------------------------------------------
// -----------------------------------------------------------
// valida que la fecha ingresada sea correcta.
function validarFecha(dd, mm, yyyy) {	
	if ((dd == null) || (dd == ""))
		dd = 1
	if (isNaN(mm) || isNaN(dd) || isNaN(yyyy)) {
		return false }
	if (mm < 1 || mm > 12) {
		return false }
	if (dd < 1 || dd > 31) {
		return false }
	if ((mm == 4 || mm == 6 || mm == 9 || mm == 11) && dd > 30) {
		return false }
	else if (dd > 31) {
		return false }
	if (mm == 2)
	if (yyyy % 4 > 0 && dd > 28) {
		return false }
	else if (dd > 29) {
		return false }
	return true
}


// -----------------------------------------------------------
// -----------------------------------------------------------
// valida rangos de fechas, la fecha1 debe ser inferior o igual
// a fecha2. Deben ser caracter con el formato de entrada:
// dd/mm/yyyy donde dd=dia, mm=mes, yyyy=año
function validarRangoFechas(fecha1, fecha2) {
	fecha1_1 = new String(stralltrim(fecha1.value));
	fecha2_2 = new String(stralltrim(fecha2.value));
	if (fecha1_1.length < 1 || fecha2_2.length < 1){
		return true;
	}
	
	dd1 = fecha1_1.substring(0,2);
	mm1 = fecha1_1.substring(3,5);
	aa1 = fecha1_1.substring(6,10);
	dd2 = fecha2_2.substring(0,2);
	mm2 = fecha2_2.substring(3,5);
	aa2 = fecha2_2.substring(6,10);
	
	lfinal1 = aa1 + mm1 + dd1;
	lfinal2 = aa2 + mm2 + dd2;
	if (lfinal1 > lfinal2) {
		alert("El rango de fecha especificado es incorrecto !");
		fecha1.focus();
		return false;
	}
	return true;
}


// -----------------------------------------------------------
// -----------------------------------------------------------
function EliminaTextoMalo(xtexto) {
	var copia = new String(xtexto.value);
	var len;
	var i;
    copia = stralltrim(copia.toLowerCase());
	len   = copia.length;

    // valida texto HREF
    for (i = 0; i < len-3; i++)	{
		if (copia.substring(i,4+i)=="href") {
			alert("No puede especificar una referencia a otra pagina !");
			xtexto.focus();
			return;
		}
	}

    // valida texto SCRIPT
    for (i = 0; i < len-5; i++)	{
		if (copia.substring(i,6+i)=="script") {
			alert("No puede especificar una funcion !");
			xtexto.focus();
			return;
		}
	}

    return true;
}