/*********************************************************************/
/*** Función:		fncCambiarFondoTabla(obj, ColorFondo)
/*** Descripción:	Selecciona o desselecciona una celda 
/***                de una tabla cambiando su color de fondo
/*** Parámetros:	obj 	-> identificativo del item
/*** 			    ColorFondo	-> color a aplicar al objeto
/*** Retorno:		-
/*********************************************************************/
function fncCambiarFondoTabla(obj, ColorFondo)
{
	eval("document.all."+obj.id+".bgColor = '"+ColorFondo+"'");
}

/*********************************************************************/
/*** Función:		fncSeleccionarItem(obj, estilo)
/*** Descripción:	Selecciona o desselecciona un item cambiando su estilo
/*** Parámetros:	obj 	-> identificativo del item
/*** 			estilo	-> estilo a aplicar al objeto
/*** Retorno:		-
/*********************************************************************/

function fncSeleccionarItem(obj, estilo) {
	eval("document.all."+obj.id+".className = '"+estilo+"'");
}

/*********************************************************************/
/*** Función:		fncAlternarImagen(obj, img)
/*** Descripción:	Cambia el src de una imagen
/*** Parámetros:	obj -> identificativo del item
/*** 				img	-> imagen a cargar en el objeto
/*** Retorno:		-
/*********************************************************************/
function fncAlternarImagen(obj, img) {
	eval("document.all."+obj.id+".src = '"+img+"'");
}

/*****************************************************************************************/
/********** FUNCIÓN: fncValidarFecha (lStrCadena, lStrIdForm, lStrIdentificativo,   ******/
/**********						lIntFormato, lBRequerido, lBAvisar, lStrMensaje)	******/
/********** ----------------------------------------------------------------------	******/
/********** 				   						 									 */
/********** Descripción:		Esta función valida una fecha en formato dd/mm/yyyy,	 */
/**********						admite formatos con separadores y sin ellos.			 */
/********** Parámetros:			lStrCadena - cadena	a validar							 */
/**********						lStrIdForm - identificativo del formulario				 */
/********** 					lStrIdentificativo - identificativo del cuadro de texto  */
/**********						lIntFormato - 1: dd/mm/yyyy								 */
/**********									  2: dd/mm/yy								 */
/**********									  3: mm/dd/yyyy								 */
/**********									  4: mm/dd/yy								 */
/**********									  5: yyyy/mm/dd								 */
/**********									  6: yy/mm/dd								 */
/**********						lBRequerido	- true: no se admite un valor en blanco		 */
/**********									  false: se admite un valor en blanco		 */
/**********						lBAvisar -												 */
/**********						lstrMensaje - mensaje a mostrar en caso de error		 */
/********** Retorno: 			Retorna true si la fecha es correcta				 	 */
/*****************************************************************************************/
function fncValidarFecha(lStrCadena, lStrIdForm, lStrIdentificativo, lIntFormato, lBRequerido, lBAvisar, lStrMensaje)
{
	var varNumeros = "0123456789";
	var varI;
	var varSeparador = "";	//El separador que se ha introducido
	var varNumSeparadores = 0;

	var varFecha;
	var varDia, varNumDia;
	var varMes, varNumMes;
	var varAnio, varNumAnio;
	var varTemp;

	//Asignar los valores por defecto a los parámetros
	if (lBRequerido == null) lBRequerido = false;
	if (lBAvisar == null) lBAvisar = false;
	if (lStrMensaje == null) lStrMensaje = "La fecha no es válida";

	//Si no es requerida se admite un valor vacio
	if (lStrCadena == "" && lBRequerido == false)
		return true;

	for (varI = 0; varI < lStrCadena.length; varI++)
	{
		if (varNumeros.indexOf(lStrCadena.charAt(varI)) == -1)
		{
			if (varSeparador == "")
			{
				varSeparador = lStrCadena.charAt(varI);
				varNumSeparadores = 1;
			}
			else
			{
				if (varSeparador != lStrCadena.charAt(varI))
				{
					if (lBAvisar)
						window.alert(lStrMensaje);
						//sonia
						//if (document.all){
							eval ("document." + lStrIdForm + "." + lStrIdentificativo + ".value = \"\"");
							
						//} else if (document.getElementById){
						
							//eval ("document.getElementById." + lStrIdentificativo + ".value = \"\"");
						//}
						//sonia
					return false;
				}
				else
					varNumSeparadores = varNumSeparadores + 1;
			}
		}
	}

	//Aquí la fecha consta de todo dígitos y puede llevar un tipo de separador

	//Hay que construir una fecha con separadores
	if (varNumSeparadores == 0)
	{
		//Me han pasado una fecha sin separadores, introduzco los separadores segun el formato
		if (lIntFormato==1 || lIntFormato==2 || lIntFormato==3 || lIntFormato==4 || lIntFormato== 6)
		   switch (lStrCadena.length)
		   {
				case 6:	// ddmmyy mmddyy yymmdd
					lStrCadena = lStrCadena.substr(0, 2) + "/" + lStrCadena.substr(2, 2) + "/" + lStrCadena.substr(4, 2);
					break;
				case 7:	//ddmmyyyy mmddyyyy
					lStrCadena = lStrCadena.substr(0, 2) + "/" + lStrCadena.substr(2, 2) + "/" + lStrCadena.substr(4, 3);
					break;
				case 8:	// ddmmyyyy mmddyyyy
					lStrCadena = lStrCadena.substr(0, 2) + "/" + lStrCadena.substr(2, 2) + "/" + lStrCadena.substr(4, 4);
					break;
				default:
					if (lBAvisar)	window.alert(lStrMensaje);
					eval ("document." + lStrIdForm + "." + lStrIdentificativo + ".value = \"\"");
					return false;
		   }
		else if (lIntFormato==5)
			 {
				lStrCadena = lStrCadena.substr(0, 4) + "/" + lStrCadena.substr(4, 2) + "/" + lStrCadena.substr(6, 2);
			 }
			 else
				{
					if (lBAvisar)	window.alert(lStrMensaje);
					eval ("document." + lStrIdForm + "." + lStrIdentificativo + ".value = \"\"");
					return false;
				}
	}
	else
	{
		if (varNumSeparadores != 2)
		{
			if (lBAvisar)
				window.alert(lStrMensaje);
			eval ("document." + lStrIdForm + "." + lStrIdentificativo + ".value = \"\"");
			return false;
		}
		else //Cambiar el separador existente por /
		{
			varTemp = lStrCadena.split(varSeparador);

			lStrCadena = varTemp[0] + "/" + varTemp[1] + "/" + varTemp[2];
		}
	}

	//Tengo una fecha con dos separadores, se harán las correcciones
	//necesarias si se considera oportuno
	varTemp = lStrCadena.split("/");
	if (lIntFormato==1 || lIntFormato==2)
	{
	    varDia = varTemp[0];
	    varMes = varTemp[1];
	    varAnio = varTemp[2];
	}
	else if (lIntFormato==3 || lIntFormato==4)
	{
	    varMes = varTemp[0];
	    varDia = varTemp[1];
	    varAnio = varTemp[2];
	}
	else if (lIntFormato==5 || lIntFormato==6)
	{
	    varAnio = varTemp[0];
	    varMes = varTemp[1];
	    varDia = varTemp[2];
	}


	if (varDia.substr(0, 1) == "0") varDia = varDia.substr(1, 1);
	if (varMes.substr(0, 1) == "0") varMes = varMes.substr(1, 1);

	varNumDia = parseInt(varDia,10);
	varNumMes = parseInt(varMes,10);
	varNumAnio = parseInt(varAnio,10);

	if (varNumAnio < 29)
		varNumAnio = varNumAnio + 2000;
	if (varNumAnio <= 99)
		varNumAnio = varNumAnio + 1900;
	if (lIntFormato==1 || lIntFormato==3 || lIntFormato==5)
		varAnio = varNumAnio;
	
	if (varAnio < 1000)
	{ 
		if (lBAvisar)
			window.alert(lStrMensaje);
		return false;
	}
	
	varTemp = new Date(varNumAnio, varNumMes -1 , varNumDia);
	if (varTemp.getMonth() != (varNumMes - 1))
	{
		if (lBAvisar)
			window.alert(lStrMensaje);
		eval ("document." + lStrIdForm + "." + lStrIdentificativo + ".value = \"\"");
		return false;
	}

	while(varDia.length < 2)
	{
		varDia = "0" + varDia;
	}
	while(varMes.length < 2)
	{
		varMes = "0" + varMes;
	}
	if (lIntFormato==1 || lIntFormato==2)
		lStrCadena = varDia + "/" + varMes + "/" + varAnio;
	else if (lIntFormato==3 || lIntFormato==4)
		lStrCadena = varMes + "/" + varDia + "/" + varAnio;
	else if (lIntFormato==5 || lIntFormato==6)
		lStrCadena = varAnio + "/" + varMes + "/" + varDia;

	eval ("document." + lStrIdForm + "." + lStrIdentificativo + ".value = lStrCadena");

	return true;
}

function fncValidarNumeros(lStrCadena){
	var varNumeros = "0123456789";
	var varI;
	for (varI = 0; varI < lStrCadena.length; varI++)
	{
		if (varNumeros.indexOf(lStrCadena.charAt(varI)) == -1)
		{			
			return false;
		}
	}

}

function fncValidarLongitud(lStrCadena, intLng){
	/*
function fncValidarLongitud(lStrCadena, intLng, minimo){
	if (minimo == "")
	{
		alert("minimo = ''");
		if (lStrCadena.length != intLng)
		{
			alert(lStrCadena.length);
			return false;
		}
	}else{*/
		
		if (lStrCadena.length < intLng)
		{
			//alert(lStrCadena.length);
			return false;
		}
	//}
}
/*****************************************************************************************/
/********** FUNCIÓN: fncValidarFechaSolicitudes (lStrCadena, lStrIdForm, lStrIdentificativo,   ******/
/**********						lIntFormato, lBRequerido, lBAvisar, lStrMensaje)	******/
/********** ----------------------------------------------------------------------	******/
/********** 				   						 									 */
/********** Descripción:		Esta función valida una fecha en formato dd/mm/yyyy,	 */
/**********						admite formatos con separadores y sin ellos.			 */
/********** Parámetros:			lStrCadena - cadena	a validar							 */
/**********						lStrIdForm - identificativo del formulario				 */
/********** 					lStrIdentificativo - identificativo del cuadro de texto  */
/**********						lIntFormato - 1: dd/mm/yyyy								 */
/**********									  2: dd/mm/yy								 */
/**********									  3: mm/dd/yyyy								 */
/**********									  4: mm/dd/yy								 */
/**********									  5: yyyy/mm/dd								 */
/**********									  6: yy/mm/dd								 */
/**********						lBRequerido	- true: no se admite un valor en blanco		 */
/**********									  false: se admite un valor en blanco		 */
/**********						lBAvisar -												 */
/**********						lstrMensaje - mensaje a mostrar en caso de error		 */
/********** Retorno: 			Retorna true si la fecha es correcta				 	 */
/*****************************************************************************************/
function fncValidarFechaSolicitudes(lStrCadena, lStrIdForm, lStrIdentificativo, lIntFormato, lBRequerido, lBAvisar, lStrMensaje)
{
	var varNumeros = "0123456789";
	var varI;
	var varSeparador = "";	//El separador que se ha introducido
	var varNumSeparadores = 0;

	var varFecha;
	var varDia, varNumDia;
	var varMes, varNumMes;
	var varAnio, varNumAnio;
	var varTemp;

	//Asignar los valores por defecto a los parámetros
	if (lBRequerido == null) lBRequerido = false;
	if (lBAvisar == null) lBAvisar = false;
	if (lStrMensaje == null) lStrMensaje = "La fecha no es válida. Recuerde que debe de haber nacido antes de 2005";

	//Si no es requerida se admite un valor vacio
	if (lStrCadena == "" && lBRequerido == false)
		return true;

	for (varI = 0; varI < lStrCadena.length; varI++)
	{
		if (varNumeros.indexOf(lStrCadena.charAt(varI)) == -1)
		{
			if (varSeparador == "")
			{
				varSeparador = lStrCadena.charAt(varI);
				varNumSeparadores = 1;
			}
			else
			{
				if (varSeparador != lStrCadena.charAt(varI))
				{
					if (lBAvisar)
						window.alert(lStrMensaje);
						//sonia
						//if (document.all){
							eval ("document." + lStrIdForm + "." + lStrIdentificativo + ".value = \"\"");
							
						//} else if (document.getElementById){
						
							//eval ("document.getElementById." + lStrIdentificativo + ".value = \"\"");
						//}
						//sonia
					return false;
				}
				else
					varNumSeparadores = varNumSeparadores + 1;
			}
		}
	}

	//Aquí la fecha consta de todo dígitos y puede llevar un tipo de separador

	//Hay que construir una fecha con separadores
	if (varNumSeparadores == 0)
	{
		//Me han pasado una fecha sin separadores, introduzco los separadores segun el formato
		if (lIntFormato==1 || lIntFormato==2 || lIntFormato==3 || lIntFormato==4 || lIntFormato== 6)
		   switch (lStrCadena.length)
		   {
				case 6:	// ddmmyy mmddyy yymmdd
					lStrCadena = lStrCadena.substr(0, 2) + "/" + lStrCadena.substr(2, 2) + "/" + lStrCadena.substr(4, 2);
					break;
				case 7:	//ddmmyyyy mmddyyyy
					lStrCadena = lStrCadena.substr(0, 2) + "/" + lStrCadena.substr(2, 2) + "/" + lStrCadena.substr(4, 3);
					break;
				case 8:	// ddmmyyyy mmddyyyy
					lStrCadena = lStrCadena.substr(0, 2) + "/" + lStrCadena.substr(2, 2) + "/" + lStrCadena.substr(4, 4);
					break;
				default:
					if (lBAvisar)	window.alert(lStrMensaje);
					eval ("document." + lStrIdForm + "." + lStrIdentificativo + ".value = \"\"");
					return false;
		   }
		else if (lIntFormato==5)
			 {
				lStrCadena = lStrCadena.substr(0, 4) + "/" + lStrCadena.substr(4, 2) + "/" + lStrCadena.substr(6, 2);
			 }
			 else
				{
					if (lBAvisar)	window.alert(lStrMensaje);
					eval ("document." + lStrIdForm + "." + lStrIdentificativo + ".value = \"\"");
					return false;
				}
	}
	else
	{
		if (varNumSeparadores != 2)
		{
			if (lBAvisar)
				window.alert(lStrMensaje);
			eval ("document." + lStrIdForm + "." + lStrIdentificativo + ".value = \"\"");
			return false;
		}
		else //Cambiar el separador existente por /
		{
			varTemp = lStrCadena.split(varSeparador);

			lStrCadena = varTemp[0] + "/" + varTemp[1] + "/" + varTemp[2];
		}
	}

	//Tengo una fecha con dos separadores, se harán las correcciones
	//necesarias si se considera oportuno
	varTemp = lStrCadena.split("/");
	if (lIntFormato==1 || lIntFormato==2)
	{
	    varDia = varTemp[0];
	    varMes = varTemp[1];
	    varAnio = varTemp[2];
	}
	else if (lIntFormato==3 || lIntFormato==4)
	{
	    varMes = varTemp[0];
	    varDia = varTemp[1];
	    varAnio = varTemp[2];
	}
	else if (lIntFormato==5 || lIntFormato==6)
	{
	    varAnio = varTemp[0];
	    varMes = varTemp[1];
	    varDia = varTemp[2];
	}


	if (varDia.substr(0, 1) == "0") varDia = varDia.substr(1, 1);
	if (varMes.substr(0, 1) == "0") varMes = varMes.substr(1, 1);

	varNumDia = parseInt(varDia,10);
	varNumMes = parseInt(varMes,10);
	varNumAnio = parseInt(varAnio,10);

	if (varNumAnio < 29)
		varNumAnio = varNumAnio + 2000;
	if (varNumAnio <= 99)
		varNumAnio = varNumAnio + 1900;
	if (lIntFormato==1 || lIntFormato==3 || lIntFormato==5)
		varAnio = varNumAnio;
	
	if (varAnio < 1000)
	{ 
		if (lBAvisar)
			window.alert(lStrMensaje);
		return false;
	}
	
	//nuevo solicitudes 2010 sonia
	if (varAnio > 2004)
	{ 
		if (lBAvisar)
			window.alert(lStrMensaje);
		return false;
	}
	//fin solicitudes 2010
	
	varTemp = new Date(varNumAnio, varNumMes -1 , varNumDia);
	if (varTemp.getMonth() != (varNumMes - 1))
	{
		if (lBAvisar)
			window.alert(lStrMensaje);
		eval ("document." + lStrIdForm + "." + lStrIdentificativo + ".value = \"\"");
		return false;
	}

	while(varDia.length < 2)
	{
		varDia = "0" + varDia;
	}
	while(varMes.length < 2)
	{
		varMes = "0" + varMes;
	}
	if (lIntFormato==1 || lIntFormato==2)
		lStrCadena = varDia + "/" + varMes + "/" + varAnio;
	else if (lIntFormato==3 || lIntFormato==4)
		lStrCadena = varMes + "/" + varDia + "/" + varAnio;
	else if (lIntFormato==5 || lIntFormato==6)
		lStrCadena = varAnio + "/" + varMes + "/" + varDia;

	eval ("document." + lStrIdForm + "." + lStrIdentificativo + ".value = lStrCadena");

	return true;
}



