// Funciones de formulario
function inicia(formulario, elementoFoco, estado){
	elemento=eval(formulario+'.'+elementoFoco);
	elemento.focus();
	estadoDefecto(estado);
}
// Barra de estado
function estadoDefecto(estado){
	window.status=estado;
}
function enviarFormulario(formulario){
	if(validarForm(formulario)){
		formulario.submit();
	}
}
function enviarForm(formulario, accion){
	if(validarForm(formulario)){
		formulario.action = accion; 
		//alert(accion);
		formulario.submit();
	}
}
function enviarF(formulario, accion){ // enviamos el formulario sin validar
	formulario.action = accion; 
	formulario.submit();
}
// enviarFormMultiTabla --> envía el formulario para crear CAMPOS OCULTOS
function enviarFormCaracteristicas(formulario, accion){
	if(validarForm(formulario)){
		// Acción para generar campos ocultos		
		var frm = eval(document.frmFormulario);
// Opciones de CARACTERISTICAS
		var s = eval(document.getElementById('lstDestino'));
		for ( var i = 1; i <= s.options.length-1; i++ ){
			createInput('caracteristica_id[' + i + ']', 'caracteristica_id[' + i + ']','hidden', s.options[i].value, frm);
			createInput('caracteristica_nombre[' + i + ']', 'caracterisitca_id_nombre[' + i + ']','hidden', s.options[i].text, frm);
		}
		//createInput('selectedIndex', 'selectedIndex', 'hidden', s.selectedIndex, frm);
		// FIN Acción para generar campos ocultos	

		formulario.action = accion; 
		//alert(accion);
		formulario.submit();
	}
}


function nuevaVentana(URL){
	luisa=window.open(URL,"noticias");
	luisa.focus();
}
function eliminarRegistro(formulario, accion){
	if (confirm("¿Confirma la eliminación del registro?")){
		formulario.action = accion; 
		formulario.submit();
	}
}
function pasarAlta(formulario, accion){
	respuesta=prompt("Introduzca nueva fecha de alta");
	if (confirm("¿Confirma el alta del alumno?","")){
		if(validoFecha(respuesta)){
			formulario.action = accion+"&fechaA="+respuesta; 
			formulario.submit();
		}
	}
}
function pasarBaja(formulario, accion){
	respuesta=prompt("Introduzca nueva fecha de baja");
	if (confirm("¿Confirma la baja del alumno?","")){
		if(validoFecha(respuesta)){
			actionMan=accion+"&fechaB="+respuesta; 
			//alert(actionMan);
			formulario.action = actionMan;
			formulario.submit();
		}
	}
}
function cancelarFormulario(formulario){
	formulario.reset();
	formulario.elements[0].focus();
}

function muestra(capa){
			if (document.getElementById) {
				menuElegido = document.getElementById(capa).style
				if (menuElegido.display == "block") {
					menuElegido.display = "none"
				}
				else {
					menuElegido.display = "block"
				}
				return false
			}
			else {
				return true
			}
}

function oculta(capa){
	var cadena;
	cadena=capa+'.style.visibility = "hidden"';
	eval(cadena);
}

function muestraImagen(imagen, ruta){
	//alert(imagen);
eval(document.fotoFormulario.src=ruta);
//	eval ('document.'+imagen+'.src='+ruta)

}
// Mostrar y ocultar los mensajes de acceso a la BD
/*

function mostrar2(Capa){ 
document.getElementById(Capa).style.visibility="visible"; 
} 
function ocultar2(Capa){ 
document.getElementById(Capa).style.visibility="hidden"; 
} 
function mostrar(Capa){ 
document.getElementById(Capa).style.visibility="visible"; 
} 
function ocultar(Capa){ 
document.getElementById(Capa).style.visibility="hidden"; 
} 
*/
// Funciones de los cuadros de lista
function agrega(listaOrigen, listaDestino){
	var origen= eval('document.frmFormulario.'+listaOrigen);
	var destino= eval('document.frmFormulario.'+listaDestino);

    var opcionOrigenElegida = origen.selectedIndex;
			//alert('opcion elegida:'+ opcionOrigenElegida);

	if (opcionOrigenElegida>0){ 
		var valorOrigen = origen.options[opcionOrigenElegida].value; 
		var textoOrigen = origen.options[opcionOrigenElegida].text;
		var elementosDestino=destino.length;
		destino.options[elementosDestino] = new Option(textoOrigen);
		destino.options[elementosDestino].value = valorOrigen;

		//var valorDestino = document.frmFormulario.lstDestino.options[elementosDestino].value 
		//alert('Valor en destino:'+ valorDestino);

		origen.options[opcionOrigenElegida] = null;
		var elementosOrigen=origen.length;	
		//alert(elementosOrigen);
	} else {
			//var valorNuevo=document.frmFormulario.lstDestino.options[1].text
			//alert('valor del primer elemento: '+ opcionOrigenElegida);
			
			 alert('no hay elementos seleccionados');
			}
}

function quita(listaOrigen, listaDestino){
	var origen= eval('document.frmFormulario.'+listaOrigen);
	var destino= eval('document.frmFormulario.'+listaDestino);

    var opcionDestinoElegida = destino.selectedIndex;
			//alert('opcion elegida:'+ opcionDestinoElegida);

	if (opcionDestinoElegida>0){ 
		var valorDestino = destino.options[opcionDestinoElegida].value; 
		var textoDestino = destino.options[opcionDestinoElegida].text;
		var elementosOrigen=origen.length;
		origen.options[elementosOrigen] = new Option(textoDestino);
		origen.options[elementosOrigen].value = valorDestino;

		destino.options[opcionDestinoElegida] = null;
		var elementosDestino=destino.length;	
		//alert(elementosOrigen);
	} else {
			//var valorNuevo=document.frmFormulario.lstOrigen.options[1].text
			//alert('valor del primer elemento: '+ opcionDestinoElegida);
			
			 alert('no hay elementos seleccionados');
			}

}

// enviarFormMultiTabla --> envía el formulario para crear CAMPOS OCULTOS
function enviarFormMultiTabla(formulario, accion){
	if(validarForm(formulario)){
		// Acción para generar campos ocultos		
		var frm = eval(document.frmFormulario);
// Opciones de BIBLIOGRAFIA
		var s = eval(document.getElementById('lstDestinoBibliografia'));
		for ( var i = 1; i <= s.options.length-1; i++ ){
			createInput('bibliografia_id[' + i + ']', 'bibliografia_id[' + i + ']','hidden', s.options[i].value, frm);
			createInput('bibliografia_nombre[' + i + ']', 'bibliografia_nombre[' + i + ']','hidden', s.options[i].text, frm);
		}
		//createInput('selectedIndex', 'selectedIndex', 'hidden', s.selectedIndex, frm);
// Opciones de ENLACES		
		var e = eval(document.getElementById('lstDestinoEnlace'));
		for ( var i = 1; i <= e.options.length-1; i++ ){
			createInput('enlace_id[' + i + ']', 'enlace_id[' + i + ']','hidden', e.options[i].value, frm);
			createInput('enlace_nombre[' + i + ']', 'enlace_nombre[' + i + ']','hidden', e.options[i].text, frm);
		}
		
// Opciones de MATERIALES
		var m = eval(document.getElementById('lstDestinoMaterial'));
		for ( var i = 1; i <= m.options.length-1; i++ ){
			createInput('material_id[' + i + ']', 'material_id[' + i + ']','hidden', m.options[i].value, frm);
			createInput('material_nombre[' + i + ']', 'material_nombre[' + i + ']','hidden', m.options[i].text, frm);
		}
		
		
		// FIN Acción para generar campos ocultos	

		formulario.action = accion; 
		//alert(accion);
		formulario.submit();
	}
}


    /**
    * definimos las varables globales que van a contener la fecha completa, cada una de sus partes
    * y los dias correspondientes al mes de febrero segun sea el año bisiesto o no
    */
    
    /**
    * funcion para comprobar si una año es bisiesto
    * argumento anyo > año extraido de la fecha introducida por el usuario
    */
    function anyoBisiesto(anyo)
    {
        /**
        * si el año introducido es de dos cifras lo pasamos al periodo de 1900. Ejemplo: 25 > 1925
        */
        if (anyo < 100)
            var fin = anyo + 1900;
        else
            var fin = anyo ;

        /*
        * primera condicion: si el resto de dividir el año entre 4 no es cero > el año no es bisiesto
        * es decir, obtenemos año modulo 4, teniendo que cumplirse anyo mod(4)=0 para bisiesto
        */
        if (fin % 4 != 0)
            return false;
        else
        {
            if (fin % 100 == 0)
            {
                /**
                * si el año es divisible por 4 y por 100 y divisible por 400 > es bisiesto
                */
                if (fin % 400 == 0)
                {
                    return true;
                }
                /**
                * si es divisible por 4 y por 100 pero no lo es por 400 > no es bisiesto
                */
                else
                {
                    return false;
                }
            }
            /**
            * si es divisible por 4 y no es divisible por 100 > el año es bisiesto
            */
            else
            {
                return true;
            }
        }
    }
    /**
    * funcion principal de validacion de la fecha
    * argumento fecha > cadena de texto de la fecha introducida por el usuario
    */
    function validarFecha(txtFecha){ // recibimos el cuadro de texto
       /**
       * obtenemos la fecha introducida y la separamos en dia, mes y año
       */
       a=txtFecha.value;
       dia=a.split("/")[0];
       mes=a.split("/")[1];
       anyo=a.split("/")[2];

	if ((a=='') || (a=='00/00/0000') ){
		//alert(txtFecha.id+a);
		return true;
	}
    if( (isNaN(dia)==true) || (isNaN(mes)==true) || (isNaN(anyo)==true) )
    {
        alert("La fecha introducida debe estar formada sólo por números");
     return false;
       }
       if(anyoBisiesto(anyo))
           febrero=29;
       else
           febrero=28;
       /**
       * si el mes introducido es negativo, 0 o mayor que 12 > alertamos y detenemos ejecucion
       */
       if ((mes<1) || (mes>12))
       {
           alert("El mes introducido no es valido. Por favor, introduzca un mes correcto");
           txtFecha.focus();
           txtFecha.select();
           return false;
       }
       /**
       * si el mes introducido es febrero y el dia es mayor que el correspondiente 
       * al año introducido > alertamos y detenemos ejecucion
       */
       if ((mes==2) && ((dia<1) || (dia>febrero)))
       {
           alert("El dia introducido no es valido. Por favor, introduzca un dia correcto");
           txtFecha.focus();
           txtFecha.select();
           return false;
       }
       /**
       * si el mes introducido es de 31 dias y el dia introducido es mayor de 31 > alertamos y detenemos ejecucion
       */
       if (((mes==1) || (mes==3) || (mes==5) || (mes==7) || (mes==8) || (mes==10) || (mes==12)) && ((dia<1) || (dia>31)))
       {
           alert("El dia introducido no es valido. Por favor, introduzca un dia correcto");
           txtFecha.focus();
           txtFecha.select();
           return false;
       }
       /**
       * si el mes introducido es de 30 dias y el dia introducido es mayor de 301 > alertamos y detenemos ejecucion
       */
       if (((mes==4) || (mes==6) || (mes==9) || (mes==11)) && ((dia<1) || (dia>30)))
       {
           alert("El dia introducido no es valido. Por favor, introduzca un dia correcto");
           txtFecha.focus();
           txtFecha.select();
           return false;
       }
       /**
       * si el mes año introducido es menor que 1900 o mayor que 2010 > alertamos y detenemos ejecucion
       * NOTA: estos valores son a eleccion vuestra, y no constituyen por si solos fecha erronea
       */
       if ((anyo<1900) || (anyo>2100))
       {
           alert("El año introducido no es valido. Por favor, introduzca un año entre 1900 y 2100");
           txtFecha.focus();
           txtFecha.select();
		   return false;
       } 
       /**
       * en caso de que todo sea correcto > enviamos los datos del formulario
       * para ello debeis descomentar la ultima sentencia
       */
       else
          //alert("La fecha introducida es correcta. Gracias por su colaboración");
		  return true;
          //document.forms[0].submit();    
    }    
function createInput(nombre, id, tipo, valor, frm)
{
var new_input = document.createElement('input');
    new_input.type = tipo;
    new_input.id = id;
    new_input.name = nombre;
    new_input.value = valor;

	frm.appendChild(new_input);
}
function correoValido(correo){
	vf=/^[\w-\.]{3,}@([\w-]{2,}\.)*([\w-]{2,}\.)[\w-]{2,4}$/;
	if(vf.test(correo)){
		return true;
	} else return false;

}

function cuenta(cajaTexto, cajaContadora){ 
		txtaTexto='document.frmFormulario.'+cajaTexto;
		txtaTexto=eval(txtaTexto);
		txtContador='document.frmFormulario.'+cajaContadora;
		txtContador=eval(txtContador);

        txtContador.value=txtaTexto.value.length;
} 
function muestraArea(botones, valorMostrar, area, objEnfocar){
	opcion=eval('frmFormulario.'+botones);
	if(objEnfocar) objEnfocar=eval(objEnfocar);
	if(opcion[valorMostrar].checked){
		mostrar(area);
		if(objEnfocar) objEnfocar.focus();
	} else ocultar(area);
}
function mostrar(capa){
	if(document.getElementById){
		var elemento = document.getElementById(capa).style;
			elemento.display = "block";
	}
}
function ocultar(capa){
	if(document.getElementById){
		var elemento = document.getElementById(capa).style;
			elemento.display = "none";
	}
}
function compruebaRadio(botones){
    introducido=false;
    alternativas=botones.length;
    for (i=0;i<alternativas;i++){
       if (botones[i].checked){
        //valor=botones[i].value;
        introducido=true;
       } // fin if
    } // fin for
    if (introducido){
        return true;
    } else return false;
}
function dimeValorRadio(botones){
	valor=-1;
	alternativas=botones.length;
    for (i=0;i<alternativas;i++){
       if (botones[i].checked){
	      valor=botones[i].value;
		  return valor;
       } // fin if
    } // fin for
}
