function validar_dia(nombre_formulario,campo_dia,campo_mes,campo_ano)
{
	var formulario = document[nombre_formulario];
	var dia_seleccionado = Number(formulario[campo_dia].options[formulario[campo_dia].selectedIndex].value);
	var mes_seleccionado = Number(formulario[campo_mes].options[formulario[campo_mes].selectedIndex].value);
	var ano_seleccionado = Number(formulario[campo_ano].options[formulario[campo_ano].selectedIndex].value);
	
	if (mes_seleccionado != 0)
	{
		var dias_mes_anterior = formulario[campo_dia].options.length-1;
		
		
		var fecha_temporal = new Date(ano_seleccionado, mes_seleccionado, 0);				
		var ultimo_dia_del_mes = Number(fecha_temporal.getDate());
		
		formulario[campo_dia].options.length = ultimo_dia_del_mes+1;
		
		if (dias_mes_anterior < ultimo_dia_del_mes)
		{
			var numero_imprimir;
			var j;
			for (i=1; i<=ultimo_dia_del_mes;i++)
			{				
				if (i < 10)
				{
					numero_imprimir = "0"+i;
				}
				else
				{
					numero_imprimir = i;
				}
				
				formulario[campo_dia].options[i].text=numero_imprimir;
				formulario[campo_dia].options[i].value=i;
				
			}
		}
		
		if (dia_seleccionado > ultimo_dia_del_mes)
		{
			var opcion = Number(Number(ultimo_dia_del_mes));
			formulario[campo_dia].options.selectedIndex = opcion;
		}
		else
		{
			var opcion = Number(Number(dia_seleccionado));
			formulario[campo_dia].options.selectedIndex = opcion;
		}
	}
	else
	{
		formulario[campo_dia].length = 32;
		var numero_imprimir, j;
		
		for (i=1; i<=31;i++)
		{
			if (i < 10)
			{
				numero_imprimir = "0"+i;
			}
			else
			{
				numero_imprimir = i;
			}
			
			formulario[campo_dia].options[i].text=numero_imprimir;
			formulario[campo_dia].options[i].value=i;
			
		}
	}
}

function llenar_dias(nombre_formulario,campo_dia,campo_mes,campo_ano,dia_seleccionado)
{
	var formulario = document[nombre_formulario];
	
	formulario[campo_dia].length = 32;
	var numero_imprimir, j;
	
	for (i=1; i<=31;i++)
	{
		if (i < 10)
		{
			numero_imprimir = "0"+i;
		}
		else
		{
			numero_imprimir = i;
		}
		
		formulario[campo_dia].options[i].text=numero_imprimir;
		formulario[campo_dia].options[i].value=i;
		
	}
	
	formulario[campo_dia].options.selectedIndex = dia_seleccionado;
	if (dia_seleccionado != 0)
	{
			validar_dia(nombre_formulario,campo_dia,campo_mes,campo_ano);
	}
	
}

function validar_fecha_inicio_fin(formulario_tmp,dia_inicio_tmp,mes_inicio_tmp,ano_inicio_tmp,dia_fin_tmp,mes_fin_tmp,ano_fin_tmp)
{
	var valida_fi = validar_fecha(formulario_tmp,dia_inicio_tmp,mes_inicio_tmp,ano_inicio_tmp);
	var valida_ff = validar_fecha(formulario_tmp,dia_fin_tmp,mes_fin_tmp,ano_fin_tmp);
	
	var mensaje = "";	
	
	if ((valida_fi == "1") && (valida_ff == "1"))
	{
		var fi = devuelve_fecha(formulario_tmp,dia_inicio_tmp,mes_inicio_tmp,ano_inicio_tmp);
		var ff = devuelve_fecha(formulario_tmp,dia_fin_tmp,mes_fin_tmp,ano_fin_tmp);
		
		if (ff < fi)
		{
			mensaje = "La fecha de baja debe ser mayor que la de alta.";
		}
	}
	else if ((valida_fi == "3") && (valida_ff == "3"))
	{
		mensaje = "Debe insertar las fechas de alta y baja.";
	}
	else if ((valida_fi == "2") && (valida_ff == "2"))
	{		
		mensaje = "Debe insertar las fechas correctamente.";
		
	}
	else if ((valida_fi == "2") || (valida_fi == "3"))
	{
		mensaje = "Debe insertar la fecha de alta correctamente.";
	}
	else if ((valida_ff == "2") || (valida_ff == "3"))
	{
		mensaje = "Debe insertar la fecha de baja correctamente.";
	}
	
	return mensaje;
	
}

function validar_fecha_unica(formulario_tmp,dia_tmp,mes_tmp,ano_tmp)
{
	var valida_fi = validar_fecha(formulario_tmp,dia_tmp,mes_tmp,ano_tmp);
	
	var mensaje = "";	
	
	if (valida_fi == "2")
	{		
		mensaje = "Debe insertar la fecha correctamente.";
		
	}
	else if (valida_fi == "3")
	{
		mensaje = "Debe insertar la fecha.";
	}
	
	return mensaje;
	
}

function validar_fecha(nombre_formulario,campo_dia,campo_mes,campo_ano)
{
	var formulario = document[nombre_formulario];
	
	var devolver;
	
	var dia_seleccionado = Number(formulario[campo_dia].options[formulario[campo_dia].selectedIndex].value);
	var mes_seleccionado = Number(formulario[campo_mes].options[formulario[campo_mes].selectedIndex].value);
	var ano_seleccionado = Number(formulario[campo_ano].options[formulario[campo_ano].selectedIndex].value);
		
	
	if ((dia_seleccionado != 0) || (mes_seleccionado != 0) || (ano_seleccionado != 0))
	{
		if ((dia_seleccionado != 0) && (mes_seleccionado != 0) && (ano_seleccionado != 0))
		{
			devolver = "1";
		}
		else
		{
			devolver = "2";
		}
	}
	else
	{
		devolver = "3";
	}
	
	//*********  DEVUELVE 1 SI LA FECHA ESTA BIEN  **********//
	//*********  DEVUELVE 2 SI LA FECHA ESTA MALA  **********//
	//*********  DEVUELVE 3 SI NO TIENE FECHA  **********//
	
	return devolver;
}

function devuelve_fecha(nombre_formulario,campo_dia,campo_mes,campo_ano)
{
	var formulario = document[nombre_formulario];
	var dia_seleccionado = Number(formulario[campo_dia].options[formulario[campo_dia].selectedIndex].value);
	var mes_seleccionado = Number(formulario[campo_mes].options[formulario[campo_mes].selectedIndex].value);
	var ano_seleccionado = Number(formulario[campo_ano].options[formulario[campo_ano].selectedIndex].value);

	var fecha = new Date(ano_seleccionado, mes_seleccionado, dia_seleccionado);
	
	return fecha;
}

/******************************************************************************/
/***********************MODIFICACIONES MANU************************************/
/******************************************************************************/

function validar_fecha2(nombre_formulario,campo_dia,campo_mes,campo_ano)
{
	var formulario = document[nombre_formulario];

	var devolver;

	var dia_seleccionado = Number(formulario[campo_dia].options[formulario[campo_dia].selectedIndex].value);
	var mes_seleccionado = Number(formulario[campo_mes].options[formulario[campo_mes].selectedIndex].value);
	var ano_seleccionado = Number(formulario[campo_ano].options[formulario[campo_ano].selectedIndex].value);


	if ((dia_seleccionado != 0) || (mes_seleccionado != 0) || (ano_seleccionado != 0))
	{
		if ((dia_seleccionado != 0) && (mes_seleccionado != 0) && (ano_seleccionado != 0))
		{
			devolver = "1";
		}
		else
        {
			if(dia_seleccionado == 0){
                devolver = "2";
            }
            else if(mes_seleccionado == 0){
                devolver = "3";
            }
            else{
                 devolver = "4";
            }
		}
	}
    
	else //caso de que no haya seleccionado ningun elemento
	{
        devolver = "2";
	}
    
	//*********  DEVUELVE 1 SI LA FECHA ESTA BIEN  **********//
	//*********  DEVUELVE 2 SI DIA NO SELECCIONADO **********//
    //*********  DEVUELVE 3 SI Mes NO SELECCIONADO **********//
    //*********  DEVUELVE 4 SI Ano NO SELECCIONADO **********//
	return devolver;
}


function validar_fecha_inicio_fin2(formulario_tmp,dia_inicio_tmp,mes_inicio_tmp,ano_inicio_tmp,dia_fin_tmp,mes_fin_tmp,ano_fin_tmp)
{
	var valida_fi = validar_fecha2(formulario_tmp,dia_inicio_tmp,mes_inicio_tmp,ano_inicio_tmp);
	var valida_ff = validar_fecha2(formulario_tmp,dia_fin_tmp,mes_fin_tmp,ano_fin_tmp);
	
	var mensaje = "";	
	
	if ((valida_fi == "1") && (valida_ff == "1"))
	{
		var fi = devuelve_fecha(formulario_tmp,dia_inicio_tmp,mes_inicio_tmp,ano_inicio_tmp);
		var ff = devuelve_fecha(formulario_tmp,dia_fin_tmp,mes_fin_tmp,ano_fin_tmp);
		
		if (ff < fi)
		{
			mensaje = "La fecha de baja debe ser mayor que la de alta.";
		}
	}
	else if((valida_fi == "1") && (valida_ff != "1")){
		mensaje = "Debe insertar la fecha de baja correctamente.";	
	}
	else if((valida_fi != "1") && (valida_ff == "1")){
		mensaje = "Debe insertar la fecha de alta correctamente.";
	}
	else{
		//distinguiremos casos para el focus
		mensaje = "Debe insertar las fechas de alta y baja correctamente.";
	}
	/*
	else if ((valida_fi == "3") && (valida_ff == "3"))
	{
		mensaje = "Debe insertar las fechas de alta y baja.";
	}
	else if ((valida_fi == "2") && (valida_ff == "2"))
	{		
		mensaje = "Debe insertar las fechas correctamente.";
		
	}
	else if ((valida_fi == "2") || (valida_fi == "3"))
	{
		mensaje = "Debe insertar la fecha de alta correctamente.";
	}
	else if ((valida_ff == "2") || (valida_ff == "3"))
	{
		mensaje = "Debe insertar la fecha de baja correctamente.";
	}
	*/
	return mensaje;
	//NOTA: OTRA VERSION SERIA CON validar_fecha_unica2 
}



function validar_fecha_unica2(formulario_tmp,dia_tmp,mes_tmp,ano_tmp,msg)
{
	var valida_fi = validar_fecha2(formulario_tmp,dia_tmp,mes_tmp,ano_tmp);
    var formulario = document[formulario_tmp];
    var devuelve=new Array();
	var mensaje = "";
    var paso=1;
    var foco="";

	if (valida_fi == "2")
	{
		//mensaje = "Debe insertar la fecha correctamente.";
        paso=0;
        foco=dia_tmp;
	}
	else if (valida_fi == "3")
	{
		//mensaje = "Debe insertar la fecha.";
        paso=0;
        foco=mes_tmp;

	}
    else if (valida_fi == "4")
	{
		//mensaje = "Debe insertar la fecha.";
        paso=0;
        foco=ano_tmp;
	}
	/*
    if(paso==0){
        mensaje=msg;
    }
	*/
    devuelve[0]=paso;
    devuelve[1]=foco
	//mensaje;
    //devuelve[2]=foco;
    
    //alert(devuelve[0]+" "+devuelve[1]+" "+devuelve[2]);
    return devuelve;
}

function fecha_menor(nombre_formulario,campo_dia,campo_mes,campo_ano,dia_limite,mes_limite,ano_limite){
	var formulario = document[nombre_formulario];

	var devolver=0;//0 si es  menor,1 si no

	var dia_seleccionado = Number(formulario[campo_dia].options[formulario[campo_dia].selectedIndex].value);
	var mes_seleccionado = Number(formulario[campo_mes].options[formulario[campo_mes].selectedIndex].value);
	var ano_seleccionado = Number(formulario[campo_ano].options[formulario[campo_ano].selectedIndex].value);
	
	var dia_max=Number(dia_limite)
	var mes_max=Number(mes_limite)
	var ano_max=Number(ano_limite);
	
	if(ano_seleccionado > ano_max){
		devolver=1;
		//alert("1")
	}
	else if(ano_seleccionado == ano_max && mes_seleccionado > mes_max){
		devolver=1;
		//alert("2")
	}
	else if(ano_seleccionado == ano_max && mes_seleccionado == mes_max && dia_seleccionado > dia_max){
		devolver=1;
		//alert("3")
	}
	//alert("SELECCIONADO\tLIMITE:\n"+dia_seleccionado+"\t"+dia_max+"\n"+mes_seleccionado+"\t"+mes_max+"\n"+ano_seleccionado+"\t"+ano_max);
	//alert("DEVOLVER"+devolver);
	return devolver;
}

function fecha_mayor(nombre_formulario,campo_dia,campo_mes,campo_ano,dia_limite,mes_limite,ano_limite){
	var formulario = document[nombre_formulario];

	var devolver=0;//0 si es  menor,1 si no

	var dia_seleccionado = Number(formulario[campo_dia].options[formulario[campo_dia].selectedIndex].value);
	var mes_seleccionado = Number(formulario[campo_mes].options[formulario[campo_mes].selectedIndex].value);
	var ano_seleccionado = Number(formulario[campo_ano].options[formulario[campo_ano].selectedIndex].value);
	
	var dia_max=Number(dia_limite)
	var mes_max=Number(mes_limite)
	var ano_max=Number(ano_limite);
	
	if(ano_seleccionado < ano_max){
		devolver=1;
		//alert("1")
	}
	else if(ano_seleccionado == ano_max && mes_seleccionado < mes_max){
		devolver=1;
		//alert("2")
	}
	else if(ano_seleccionado == ano_max && mes_seleccionado == mes_max && dia_seleccionado < dia_max){
		devolver=1;
		//alert("3")
	}
	//alert("SELECCIONADO\tLIMITE:\n"+dia_seleccionado+"\t"+dia_max+"\n"+mes_seleccionado+"\t"+mes_max+"\n"+ano_seleccionado+"\t"+ano_max);
	//alert("DEVOLVER"+devolver);
	return devolver;
}

function esBisesto (anyo) {
    if (((anyo % 4)==0) && ((anyo % 100)!=0) || ((anyo % 400)==0)) {
        return (true);
    }
    else {

        return (false);
    }
}


function validarFecha3(objetoDia, objetoMes, objetoAnyo){
	var dia=objetoDia;
	var mes =objetoMes;
	var anyo=objetoAnyo;
	//alert("dia :" + dia);
	//alert("mes :"+mes);
	//alert("anyo :" + anyo);
	var anyoReal=objetoAnyo;
	var febrero=28;

	//Tomo los meses como vienen
	if (dia==0||mes==0||anyo==""){
		return false;
	}
	if(mes>12 || dia > 31 ||anyo<1930){
		return false;
	}	
	switch (mes){
		//
		case '04' :case '06' : case '09' :case '11':
			if(dia >30){
					return false;
			}
			else{
				return true;
			}
			break;

		case '02':
			if(esBisesto(anyoReal)){
				febrero=29;
			}
			if (dia>febrero){
				return false;
			}
			else{
				return true;
			}
			break;
	
		default:

			return true;

			break;
	}//end switch
}

function validar_fecha_input(nombre_formulario,campo_fecha){
	var formulario = document[nombre_formulario];
	var devuelve=new Array();
	var mensaje = "";
    var paso=1;
    var foco="";
    if(formulario[campo_fecha].value==""){
		mensaje="Por favor, indica la fecha de nacimiento con el formato (dd/mm/yyyy) indicado";
		paso=0;
	}else if(isNaN(formulario[campo_fecha].value.substring(0,2))||formulario[campo_fecha].value.substring(2,3)!='/'||isNaN(formulario[campo_fecha].value.substring(3,5))||formulario[campo_fecha].value.substring(5,6)!='/'||isNaN(formulario[campo_fecha].value.substring(6,10))||formulario[campo_fecha].value.substring(6,10).length<4){		
		mensaje="Por favor, indica la fecha de nacimiento con el formato indicado";
		paso=0; 
	}else if(!validarFecha3(formulario[campo_fecha].value.substring(0,2),formulario[campo_fecha].value.substring(3,5),formulario[campo_fecha].value.substring(6,10))){		
		mensaje="La fecha de nacimiento indicada no es correcta";
		paso=0;
	}else if(formulario[campo_fecha].value.substring(6,10)<1930||formulario[campo_fecha].value.substring(6,10)>2004){		
		mensaje="El aņo indicado no es correcto";
		paso=0;
	}
	devuelve[0]=paso;
    devuelve[1]=mensaje;
	
	return devuelve;
}
