// JavaScript Document
// Documento JavaScript

/*------------------\
|      COMUNES      |----------------------------------
\------------------*/

//esta función comprueba que sea un mail válido.
function mail(texto){

    var mailres = true;            
    var cadena = "abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ1234567890@._-";
    
    var arroba = texto.indexOf("@",0);
    if ((texto.lastIndexOf("@")) != arroba) arroba = -1;
    
    var punto = texto.lastIndexOf(".");
                
     for (var contador = 0 ; contador < texto.length ; contador++){
        if (cadena.indexOf(texto.substr(contador, 1),0) == -1){
            mailres = false;
            break;
     }
    }

    if ((arroba > 1) && (arroba + 1 < punto) && (punto + 1 < (texto.length)) && (mailres == true) && (texto.indexOf("..",0) == -1))
     mailres = true;
    else
     mailres = false;
                
    return mailres;
} 


/*------------------\
|       AJAX        |----------------------------------
\------------------*/

// Esta función crea el objeto XMLHttpEequest;
function nuevoAjax(){
	var pagina_requerida = false;
    if (window.XMLHttpRequest)
    {
        // Si es Mozilla, Safari etc
        pagina_requerida = new XMLHttpRequest ();
    } else if (window.ActiveXObject)
    {
        // pero si es IE
        try 
        {
            pagina_requerida = new ActiveXObject ("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            // en caso que sea una versión antigua
            try
            {
                pagina_requerida = new ActiveXObject ("Microsoft.XMLHTTP");
            }
            catch (e)
            {
            }
        }
    } 
	else
	{
    	return false;
	}
	return pagina_requerida;
}

//Esta función carga la página url en el contenedor id_contenedor.
function llamarAsincrono (url, id_contenedor)
{
    
	var pagina_requerida=nuevoAjax();
    pagina_requerida.onreadystatechange = function ()
    {
        // función de respuesta
        cargarPagina (pagina_requerida, id_contenedor);
    }
    pagina_requerida.open ('GET', url, true); // asignamos los métodos open y send
    pagina_requerida.send (null);
}

//Esta función carga la página url en el contenedor id_contenedor pasando por post los parametraos de formulario.
function llamarAsincronoPost (url, id_contenedor, formulario,volver)
{
	var form=document.getElementById(formulario);
	var envio="";
	for(var i=0;i<form.length;i++){
		if(form.elements[i].id.indexOf('-r')!=-1 && form.elements[i].value==""){//Si es obligatorio y está vacío damos error
			alert("El campo "+ form.elements[i].name +" es obligatorio");
			return false;
		}
		if(form.elements[i].id.indexOf('-m')!=-1 && form.elements[i].value!=""){//si es un mail y no está vacío comprobamos que sea válido
			if(!mail(form.elements[i].value)){
				alert(form.elements[i].value +" no es un mail válido.");
				return false;
			}
		}
		if(form.elements[i].value!=""){//Si el campo esta vacío lo ignoramos
			if(form.elements[i].type=="checkbox"){
				if(form.elements[i].checked ){
					envio+=form.elements[i].name+"=on&";
				}else{
					envio+=form.elements[i].name+"=off&";
				}
			}else{
			envio+=form.elements[i].name+"="+form.elements[i].value+"&";
			}
		}
	}
	
	var pagina_requerida=nuevoAjax();
	pagina_requerida.onreadystatechange = function ()
	{
		// función de respuesta
		cargarPagina (pagina_requerida, id_contenedor);
	}
	pagina_requerida.open ('POST', url, true); // asignamos los métodos open y send
	pagina_requerida.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	
	pagina_requerida.send (envio);
	if(volver!=false){
		setTimeout("llamarAsincrono('"+volver+"','"+id_contenedor+"')",1000);
	}
}



// todo es correcto y ha llegado el momento de poner la información requerida
// en su sitio en la pagina xhtml
function cargarPagina (pagina_requerida, id_contenedor)
{
	if(pagina_requerida.readyState == 1){
		document.getElementById (id_contenedor).innerHTML = "<img src='/img/ajax-loader2.gif' style='align:auto;' title='cargando'>";
	}else{
		if(pagina_requerida.readyState == 4 && (pagina_requerida.status == 200 || window.location.href.indexOf ("http") == - 1)){
			document.getElementById (id_contenedor).innerHTML = pagina_requerida.responseText;
		}
	}
}



// Función que cambia el texto descriptivo de los menus en su onMouseOver
function cambiaTextoMenu (indice)
{
    
	var pagina_requerida=nuevoAjax();
	var url="/scripts/texto_menus.php?indice="+indice;
    pagina_requerida.onreadystatechange = function ()
    {
        // función de respuesta
        cargarPagina (pagina_requerida, 'textoDescMenuSup');
    }
    pagina_requerida.open ('GET', url, true); // asignamos los métodos open y send
    pagina_requerida.send (null);
}
function check(algo){
	alert("-"+algo);
}



/*------------------\
|      POPUPS       |----------------------------------
\------------------*/

function popupizar(url){
	var capa=document.createElement("div");
	var X=window.screen.availWidth-15;
	
	if( typeof( window.innerWidth ) == 'number' ) {
                       //Non-IE
                       Y = window.innerHeight;
               } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
                       //IE 6+ in 'standards compliant mode'
                       Y = document.documentElement.clientHeight;
               } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
                       //IE 4 compatible
                       Y = document.body.clientHeight;
               }
	capa.setAttribute("id","popupazo");
	capa.setAttribute("style","height:"+ Y +"px; width:"+ X +"px; top:0px; left:0px; position:absolute;background-image: url(../img/seminada.gif);background-repeat: repeat;");
	document.body.appendChild(capa);
	llamarAsincrono(url,"popupazo");
}

function despopupizar(form,url, id_contenedor){
	document.getElementById(form).submit();
	document.body.removeChild(document.getElementById('popupazo'));
	if(url!=false){
		llamarAsincrono(url,id_contenedor);	
	}
}