/*------------------------------------------------------------------------------------------
JavaScript miscelánea: funciones útiles de propósito general.
------------------------------------------------------------------------------------------*/

function limpiarTextBox
	(
	s_inputTextId,
	s_textoBorrable
	)
{
var o_inputText = document.getElementById(s_inputTextId);
if (trim(o_inputText.value) == s_textoBorrable)
	{
	o_inputText.value = "";
	} 		
}



/*
http://openthedoorclosethewindows.wordpress.com/2008/01/18/hacer-un-trim-en-javascript-con-regular-expressions/
*/
function trim(s)
{
if (s == null)
	{
	return null;
	}	
//sacar espacios blanco principio y final
return s.replace(/^\s+|\s+$/gi, ''); 
}



function esNif
    (
    nif
    )
{
if (nif == null)
    {
    return false;
    }    
if (nif.length <= 0)
    {
    return false;
    }
var cadena = "TRWAGMYFPDXBNJZSQVHLCKET";
var n = nif.length - 1;
//var letra = (nif[n]).toUpperCase();
var letra = nif.substr(n,1).toUpperCase();
var numeros = nif.substr(0, n);
//is_numeric(numeros)
var reDigitos = /^[0-9]+$/;
if (!reDigitos.test(numeros))
	{
	return false;
	}        
var pos = numeros % 23;
var letraValida = cadena.substr(pos, 1);
return letra == letraValida;	
}



function esNie
    (
    tarjeta
    )
{
if (tarjeta == null)
    {
    return false;
    }
if (tarjeta.length <= 0)
    {
    return false;
    }    
var n = tarjeta.length - 1;
var texto = tarjeta.substr(0, n);
var letra = texto.substr(0,1).toUpperCase();
if (letra != "X")
    {
    return false;
    }
var numero = texto.substr(1, texto.length - 1);   
//is_numeric(numero)
var reDigitos = /^[0-9]+$/;
if (!reDigitos.test(numero))
	{
	return false;
	}        
return esNif(numero + tarjeta.substr(n,1)); 
}



function esEmail
	(
	s
	) 
{
if (s == null)
	{
	return false;	
	}	
if (s.length <= 0)
	{
	return false;
	}	

var patronEmail = /^[A-Za-z][A-Za-z0-9_.-]*@[A-Za-z0-9_-]+\.[A-Za-z0-9_.]+[A-za-z]$/;


return patronEmail.test(s);
}



function estaDentroDeLongitud
	(
	objeto,
	longitudMaxima
	)
{
return objeto.value.length <= longitudMaxima;
}




function controlarLongitud
	(
	objeto,
	longitudMaxima
	)
{
objeto.value = objeto.value.substring(0, longitudMaxima - 1);
}



//Esta funcioncita me la he inventado y funciona muy bien.
function esFecha__Dd_Mm_Aaaa
	(
	s_posibleFecha,
	s_separador
	)
{
var s = s_separador;
reFecha = new RegExp("(0?[1-9]|[123][0-9])" + s + "(0?[1-9]|1[012])" + s + "[0-9]{3}");
if (!s_posibleFecha.match(reFecha))
	{    
	return false;
	}
var a_partes = s_posibleFecha.split(s_separador);
if (a_partes.length != 3)
	{
	return false;
	}
var i_dia = new Number(a_partes[0]);
var i_mes = new Number(a_partes[1]);
var i_annio = new Number(a_partes[2]);
//Un detalle: el mes comienza por 0, es decir, enero es el mes 0.
i_mes--;
var d_fecha = new Date(i_annio, i_mes, i_dia);
var b1 = d_fecha.getDate() == i_dia;
var b2 = d_fecha.getMonth() == i_mes;
var b3 = d_fecha.getFullYear() == i_annio;
var b = b1 && b2 && b3;
return b;
}
