function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

/********************   FUNCIONES PARA MOSTRAR U OCULTAR EL SUBMENU DE LAS SECCIONES   ****************/
function exMenu(tName)
{
	tMenu = document.getElementById(tName).style;
	if (tMenu.display == 'none') tMenu.display = "block"; else tMenu.display = "none";
}
/*---------------------------------------------------------------------------------------------------*/
function buscar(){
	if( document.buscador.titulo.value!="" || document.buscador.autor.value!=""){
			document.buscador.submit();
	}
}
function verAgenda(id){
	location.href="actividades.php";
}

function esBisiesto(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;
            }
        }
    }

function validarFecha(Cadena){

	var Fecha= new String(Cadena)	// Crea un string
	var RealFecha= new Date()	// Para sacar la fecha de hoy
	var Ano= new String(Fecha.substring(Fecha.lastIndexOf("/")+1,Fecha.length))
	var Mes= new String(Fecha.substring(Fecha.indexOf("/")+1,Fecha.lastIndexOf("/")))
	var Dia= new String(Fecha.substring(0,Fecha.indexOf("/")))
	
	if (isNaN(Ano) || Ano.length<2 || Ano.length>4){
        	
		return false
	}
	//comprobamos q el año no sea inferior a 1900 ni tenga solo 3 cifras, ya q sino da problemas de formato.
	if(Ano.length==4){
		if (Ano<1900){
		return false
		}
	}
	if (Ano.length==3){
		return false
	}
	//fin comprobar año
	
		
	if (isNaN(Mes) || Mes.length>2 || Mes.length<1 || parseFloat(Mes)<1 || parseFloat(Mes)>12){
		
		return false
	}
	if (isNaN(Dia) || Dia.length<1 || Dia.length>2 || parseFloat(Dia)<1 || parseFloat(Dia)>31){
		
		return false
	}
	var bisiesto=esBisiesto(Ano)
	if (Mes==4 || Mes==6 || Mes==9 || Mes==11 || Mes==2) {
		if ( ((Mes==2) && (Dia > 28) && !(bisiesto) ) || (Dia>30) || ((bisiesto) && (Mes==2) && (Dia>29))) 																																	{    			
			return false
		}
	}
 	return true	
}


/* Esta función valida si f1 es una fecha menor que f2. En este caso 
 * devolvemos true. En caso contrario devolvemos false. 
 */
function validarFechaMenor(f1,f2) {
	f1 = f1.split("/");
	f2 = f2.split("/");
	if (f2[2]>=f1[2])
		if(f2[2]>f1[2]) return true;
		else if (f2[1]>=f1[1]) 
				if (f2[1]>f1[1]) return true;
				else if (f2[0]>=f1[0]) return true;
						else return false;
}

function validarEmail(email) {
	caracNoValidos = " /:,;";
	if(email == "") return false; 							// debe rellenarse
	for(i = 0; i < caracNoValidos.length; i++) {			// ¿hay algún carácter no válido?
		caracMal = caracNoValidos.charAt(i);
		if(email.indexOf(caracMal,0) > -1) return false;
	}
	posArroba = email.indexOf("@",1); 						// debe haber una @
	if(posArroba == -1) return false;
	if(email.indexOf("@",posArroba+1) != -1) return false;	// y sólo una
	posPunto = email.indexOf(".",posArroba);
	if(posPunto == -1) return false;  						// y al menos un . después de la @
	if(posPunto+3 > email.length) return false; 			// debe haber al menos 2 caracteres tras el .
	return true;
}
//------------------------- FIN Lo puso Diego -------------------------------------------



// --------------- FUNCIONES PARA EL ENVIO DE TEXTAREA A TRAVES DE VARIABLES JAVASCRIPT ------------

//Indicamos la cadena q queremos en vez de /n 
var separador="1122TT2211";


//FUNCION Q REEMPLAZA EN UNA CADENA LOS CARACTERES DESEADOS
function strReplaceAll(str,strFind,strReplace)
{
	var returnStr = str;
	var start = returnStr.indexOf(strFind);
	while (start>=0)
	{
		returnStr = returnStr.substring(0,start) + strReplace + returnStr.substring(start+strFind.length,returnStr.length);
		start = returnStr.indexOf(strFind,start+strReplace.length);
	}
	return returnStr;
}



//Función q quita los \n de un textarea para pasar su contenido en una var. jscript sin cortar la cadena
function quitaBarraN(descripcion){
	aux=descripcion.split("\n");
	var cuenta=aux.length;
	var cadenaDescripcion="";
	for(ind=0; ind<aux.length-1; ind++){
		cadenaDescripcion=cadenaDescripcion+aux[ind].substr(aux[ind],aux[ind].length-1)+separador;
	}
	cadenaDescripcion=cadenaDescripcion+aux[cuenta-1];

return cadenaDescripcion;

}	




// ------------- FIN FUNCIONES PARA EL ENVIO DE TEXTAREA A TRAVES DE VARIABLES JAVASCRIPT ----------


// ------------- FUNCIONES PARA FORMATOS ----------------//

/* Esta funcion valida la hora que se pasa por parametro. Retorna un 0 si hay éxito y
 * -1 si no es correcto el formato(dd:dd:dd) o los rangos(24horas).
 * - Parámetros:
 * @ hora_a_validar-> cadena que contiene la hora a validar.
 */
function ComprobarFormatoHora24(hora_a_validar) {
	var ExpReg=/^\d{2}:\d{2}:\d{2}$/;//formato de la hora en Expresion Regular
	
	if (ExpReg.test(hora_a_validar)) {
		var hora_array = hora_a_validar.split(":");
		var hora = parseInt(hora_array[0]);
		var minutos = parseInt(hora_array[1]);
		var segundos = parseInt(hora_array[2]);
		
		if ( (hora<0) || (hora>23) ) return (-1);
		if ( (minutos<0) || (minutos>59) ) return(-1);
		if ( (segundos<0) || (segundos>59) ) return(-1);
	} else { return (-1); }
	
	//Todo correcto...
	return (0);
}

function StrReplace(as,as_rex,as_out){
	 // Purpose: To simulate VB replace
	 //////////////////////////////////
	 var ls_rex;
	 ls_rex = new RegExp(as_rex,"g");
	 as = as.replace(ls_rex, as_out);
	 return as;
}

function Right(cad,ai) {return cad.substr(cad.length - ai)}

function Left(cad,ai)  {return cad.substring(0,ai)}


// ---------------- FIN DE FUNCIONES PARA FORMATOS ----------------//



// ---------------- FIN DE FUNCIONES PARA FORMATOS ----------------//





// ---------------- FUNCIONES AJAX ----------------//
function creaAjax(){

	var objetoAjax=false;
	try {

	/*Para navegadores distintos a internet explorer*/
	objetoAjax = new ActiveXObject("Msxml2.XMLHTTP");
	
	} catch (e) {

		try {
		/*Para explorer*/
		objetoAjax = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (E) {
		objetoAjax = false;
		}
	}

	if (!objetoAjax && typeof XMLHttpRequest!='undefined') {
		objetoAjax = new XMLHttpRequest();
	}

	return objetoAjax;
	
}

function FAjax (url,capa,valores,metodo,cargando,processScripts)
{
	//alert(url);
var ajax=creaAjax();
var capaContenedora = document.getElementById(capa);
/*Creamos y ejecutamos la instancia si el metodo elegido es POST*/
if(metodo.toUpperCase()=='POST'){
         ajax.open ('POST', url, true);
         ajax.onreadystatechange = function() {
         if (ajax.readyState==1) {
			 if (cargando=='')
			 	{ capaContenedora.innerHTML="Cargando......."; }
				else
			 	{ capaContenedora.innerHTML=cargando; }         }
         else if (ajax.readyState==4){
                   if(ajax.status==200)
                   {
					   	if(processScripts)
							{ SetContainerHTML(capa, ajax.responseText, true); }
						else
							{ document.getElementById(capa).innerHTML=ajax.responseText; }
 					  
                  } else if(ajax.status==404) {
					   capaContenedora.innerHTML = "La direccion no existe";
                   } else {
                        capaContenedora.innerHTML = "Error: "+ajax.status;
                   }
         }
}
ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
ajax.send(valores);
return;
}

/*Creamos y ejecutamos la instancia si el metodo elegido es GET*/
if (metodo.toUpperCase()=='GET'){

         ajax.open ('GET', url, true);
         ajax.onreadystatechange = function() {
         if (ajax.readyState==1) {
			 if (cargando=='')
			 	{ capaContenedora.innerHTML="Cargando......."; }
				else
			 	{ capaContenedora.innerHTML=cargando; }
			}
         else if (ajax.readyState==4){
                   if(ajax.status==200){
					   	if(processScripts)
							{ SetContainerHTML(capa, ajax.responseText, true); }
						else
							{ document.getElementById(capa).innerHTML=ajax.responseText; }
                   }
                   else if(ajax.status==404)
                                             {

                            capaContenedora.innerHTML = "La direccion no existe";
                                             }
                                             else
                                             {
                            capaContenedora.innerHTML = "Error: "+ajax.status;
                                             }
                                    }
                  }
         ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
         ajax.send(null);
         return
}
}

function SetContainerHTML(id,html,processScripts)
{
	mydiv = document.getElementById(id);
	mydiv.innerHTML = html;
	if(processScripts!=false)
	{
	var elementos = mydiv.getElementsByTagName('script');
	for(i=0;i<elementos.length;i++) {
	var elemento = elementos[i];
	nuevoScript = document.createElement('script');
	nuevoScript.text = elemento.innerHTML;
	nuevoScript.type = 'text/javascript';
	if(elemento.src!=null && elemento.src.length>0)
	nuevoScript.src = elemento.src;
	elemento.parentNode.replaceChild(nuevoScript,elemento);
	}
	}
}
//Viejas Funciones
function nuevoAjax(){
var xmlhttp=false;
 try {
  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 } catch (e) {
  try {
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (E) {
   xmlhttp = false;
  }
 }

if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}

function urlDecode(str){
  	str=str.replace(new RegExp('\\+','g'),' ');
    return unescape(str);
}

function getAjax (url, div){
        var contenedor = document.getElementById(div);
        ajax=nuevoAjax(); 
        //peticionamos los datos, le damos la url enviada desde el link
        ajax.open("GET", url, true); 
        ajax.onreadystatechange=function(){
            if(ajax.readyState==1){

            contenedor.innerHTML = "<div align='center'style='float: right; width: 225px; margin: 60px 0;'><img src='images/loading.gif' width='30' height='30' /><br />Cargando...</div>";

            }else if(ajax.readyState==4){
                        if(ajax.status==200){
                                //mostramos los datos dentro del contenedor
                                contenedor.innerHTML = ajax.responseText
                        }else if(ajax.status==404){
                                contenedor.innerHTML = "La página no existe";
                        }else{
                                //mostramos el posible error
                                contenedor.innerHTML = "Error:".ajax.status; 
                        }
                }
        }
        ajax.send(null);
}
// ---------------- FIN DE FUNCIONES AJAX ----------------//

function ventana(URL,nombre){	
//URL="index.htm"
//nombre='dani';
	//alert(nombre);
		eval("temp=window.open('"+URL+"','"+nombre+"', 'toolbar=0,scrollbars=no,location=0,statusbar=0,menubar=0,resizable=1,width=1,height=1,left=10,top=10')");
		
}


//--------- solo permite introducir numeros por teclado ------------------
function soloNumero()
{
	var key=window.event.keyCode;//codigo de tecla.

	if (key!=9){
		if (key < 48 || key > 57){
			//si no es numero 
			window.event.keyCode=0;//anula la entrada de texto.
		}
	}
}//soloNumero



/****Solo permite numeros con decimales escritos con punto******/
function soloDoble(){
var key=window.event.keyCode;//codigo de tecla.

	if (key!=9 && key!=46){
		if (key < 48 || key > 57){
			//si no es numero 
			window.event.keyCode=0;//anula la entrada de texto.
		}
	}
}

function limitarCaracteres(field, count, max) {
	if (field.value.length > max){
		field.value = field.value.substring(0, max);
	}
	else{
		document.getElementById(count).innerHTML = max - field.value.length;
	}
}

function foto(url,nombre){
	win=window.open('abrirImagen.php?url='+url+'&nombre='+nombre,"IMAGEN","left=0, top=0, width=10, height=10, resizable=yes, scrollbars=yes");
	win.focus();
}