//Evento al pasar el mouse
function alPasar(id, imagen){
      var elem = document.getElementById(id);

      //Si el botón no está marcado como presionado, hacer cambio de imagen
      if(id != document.idPresionado)
        elem.src = imagen;
  };

//Evento al retirar el mouse
function alSalir(id, imagen){
    var elem = document.getElementById(id);
    //Si el botón no está marcado como presionado, volver a imagen original
    if(id != document.idPresionado)
        elem.src = imagen;
  };

//Evento al rpesionar un boton
function alPresionar(id, imagenNueva, imagenOriginal, noGuardar){
      var elem = document.getElementById(id);

      //Si el boton no está marcado como presionado
      if(id != document.idPresionado){
         if(!noGuardar){
           //Si viene la imagen original del botón anterior, asignarla
            if(document.imgOriginal)
              document.getElementById(document.idPresionado).src =  document.imgOriginal;

            //Guardar el id del boton presionado
            document.idPresionado = id;

            //Si viene un valor en la imagen original del boton presionado, guardarlo
            if(imagenOriginal)
              document.imgOriginal = imagenOriginal; //Guardar vaolor de la imagen original
            else
              document.imgOriginal = elem.src; //Guardar imagen actual del botón
          }
          //Asignar la nueva imagen al botón
          elem.src = imagenNueva;
      }
  };

//Permite restaurar la botonera al estado inicial
function restaurarBot(){
    if(document.imgOriginal)
      document.getElementById(document.idPresionado).src =  document.imgOriginal;

    //Setear valores
    document.idPresionado = undefined;
    document.imgOriginal = undefined;
}
//Permite colocar la respuesta en un objeto dado
function mostrarRespuesta(mensaje, id){
    document.getElementById(id).innerHTML = mensaje;
    document.getElementById(id).style.visibility = 'visible';
    //alert(mensaje);
}

//Función que permite cargar una página al interior del cuerpo
function pagina(archivo, idObj, idCuerpo){
    var mismo = this;

    if(idCuerpo != document.idCuerpo){
      mismo.xhrObj = false;
      elem = document.getElementById(idObj);
      if (!document.idCuerpo){
        elem.style.visibility = 'hidden';
      }
      document.idCuerpo = idCuerpo;
      //elem.style.display = 'none';
      elem.style.margin = '15px';
      elem.style["margin-top"] = '0px';
      elem.style.padding = "15px";
      elem.style.width = '520px';

      //Evaluar si existe el objeto XHR
      if(window.XMLHttpRequest){
           mismo.xhrObj = new XMLHttpRequest();
      }
      else if(window.ActiveXObject){
          mismo.xhrObj = new ActiveObject("Microsoft.XMLHTTP");
      }

      //Conectar
      mismo.xhrObj.open('get', archivo + "?s=s", true);
      //mismo.xhrObj.setRequestHeader('Content-Type', 'aplication/x-www-form-urlencoded');

      //Tomar respuesta
      mismo.xhrObj.onreadystatechange = function(){
          if(mismo.xhrObj.readyState == 4){
              document.documentElement.scrollTop = 0;
              mostrarRespuesta(mismo.xhrObj.responseText, idObj);
          }
      }

      //Enviar solicitud
      mismo.xhrObj.send(null);
    }

    cuerpoAlt("cuerpos/menu_opcional.php","mopcional", "cuerpo=" + idCuerpo);
}

//Función que permite el menú opcional correspondiente a la opción
function cuerpoAlt(archivo, idObj, vars, idRetorno){

    var mismo = this;

    mismo.xhrObj1 = false;
    elem = document.getElementById(idObj);
    //elem.style.visibility = 'hidden';

    //Evaluar si existe el objeto XHR
    if(window.XMLHttpRequest){
         mismo.xhrObj1 = new XMLHttpRequest();
    }
    else if(window.ActiveXObject){
        mismo.xhrObj1 = new ActiveObject("Microsoft.XMLHTTP");
    }

    //Conectar
    mismo.xhrObj1.open('get', archivo + "?" + vars, true);
    //mismo.xhrObj.setRequestHeader('Content-Type', 'aplication/x-www-form-urlencoded');

    //Tomar respuesta
    mismo.xhrObj1.onreadystatechange = function(){
        if(mismo.xhrObj1.readyState == 4){
            var resp =  mismo.xhrObj1.responseText;
            switch(idRetorno){
                case undefined:
                    mostrarRespuesta(resp, idObj);
                break;
                case "-1":
                    alert(resp);
                break;
                case "-document":
                    document.resp = resp;
                break;
                default:
                    document.getElementById(idRetorno).value = resp;
                break;
            }
        }
    }

    //Enviar solicitud
    mismo.xhrObj1.send(null);
}

//Permite ver u ocultar un objeto
function ver(id, val){
    if(val)
        document.getElementById(id).style.display = val;
    else{
        alert(document.getElementById(id).style.display != "none");
        if(document.getElementById(id).style.display != "none")
            document.getElementById(id).style.display = "none";
        else
            document.getElementById(id).style.display = "block";
    }
}

//Permite ver los creditos
function verRel(id, idRel){
 elem = document.getElementById(id);
 elemRel =document.getElementById(idRel);

 if(elem.style.display != "block")
    elem.style.display = "block";
 else
    elem.style.display = 'none';

 elem.style.top = elemRel.offsetTop - elem.clientHeight + 'px';
 elem.style.left = document.documentElement.clientWidth - elem.clientWidth - 10 + 'px';
}

//Permite centrar un objeto en la pantalla con posicón absoluta
function centrarObj(id){
    //alert(document.body.scrollTop );
    //alert(document.body.clientTop );
    //alert(document.documentElement.scrollTop + "  " + document.documentElement.clientHeight );
    var scroll = 0;
    //Evaluar las dos opciones para detectar el cambio del scroll
      if(document.documentElement.scrollTop == 0)
        scroll = document.body.scrollTop;
      else
        scroll = document.documentElement.scrollTop;

    elem = document.getElementById(id);
    alto = elem.clientHeight
    ancho = elem.clientWidth;
    var posX = (ancho / 2);
    var posY = scroll + ((document.documentElement.clientHeight - alto) / 2);
    elem.style.position = 'absolute';
    elem.style.left = posX + 'px';
    elem.style.top = posY + 'px';
}

//Permite centrar un objeto gradualmente
function moverObj(id, px, py, oculto, intervalo){
    //definir rapidez del intervalo
    if(intervalo == undefined)
        intervalo = 25;

    //alert(document.body.scrollTop );
    //alert(document.body.clientTop );
    //alert(document.documentElement.scrollTop + "  " + document.documentElement.clientHeight );

    //Tomar el objeto al que pertenece el id
    obj = document.getElementById(id);

    //Validar si existe
    if(obj){
   //Si los parámetros de posición tran nombres especiales, asignar el valor correspondiente
      if(px == "izq") px = document.documentElement.clientWidth - obj.clientWidth - 10;
      if(py == "abajo") py = document.documentElement.clientHeight - obj.clientHeight - 10;

     //Guardar los valores en variables que puedan ser leidas por la funcion centrar.
      document["px" + id] = px;
      document["py" + id] = py;

    //Si el ojeto está presente en el formulario (ocupando espacio)
    if(obj.style.display != "none"){
        //Guardar el id del objeto para poder encontrarlo en la funcion centrar
        document["auxId" + id] = id;

        //Si el temporizador aun no ha sido creado, crearlo
        if(!window["idIntervalo" + id]){
            //si oculto es verdadero, no se ve el movimiento del objeto, sólo su llegada

            if(oculto){
                obj.style.visibility = "hidden";
                window["idIntervalo" + id] = window.setInterval(ubicar, intervalo);
            }
            else{
                window["idIntervalo" + id] = window.setInterval(centrar, intervalo);
            }
        }
      }
    }

    //Funcion que lleva la imagen al lugar indicado
    function ubicar (){
      var scroll = 0;
      var signo = 1;
      elem = document.getElementById(document["auxId" + id]);
      alto = elem.clientHeight ;
      ancho = elem.clientWidth;

      //Si se han indicado valores para X y/o Y, ocuparlos,
      //de otro modo, asignar los valores del centro.
      if(document["px" + id])
        var posX = document["px" + id];
      else
        var posX = (ancho / 2);

      //Evaluar las dos opciones para detectar el cambio del scroll
      if(document.documentElement.scrollTop == 0)
        scroll = document.body.scrollTop;
      else
        scroll = document.documentElement.scrollTop;

      if(document["py" + id])
        var finalPosY = scroll + document["py" + id];
      else
        var finalPosY = scroll + ((document.documentElement.clientHeight - alto) / 2);
      //alert(document.documentElement.scrollTop);
      window.clearInterval(window["idIntervalo" + id]);
      window["idIntervalo" + id] = undefined;
      elem.style.visibility = "visible";

      //Asignar valores.
      elem.style.position = 'absolute';
      elem.style.left = posX + 'px';
      elem.style.top = finalPosY + 'px';
    }

    //Funcion que lleva la imagen al lugar indicado, por defecto, el centro
    function centrar (){
      var scroll = 0;
      var signo = 1;
      var avance = 1;
      elem = document.getElementById(document["auxId" + id]);
      alto = elem.clientHeight ;
      ancho = elem.clientWidth;

      //Si se han indicado valores para X y/o Y, ocuparlos,
      //de otro modo, asignar los valores del centro.
      if(document["px" + id])
        var posX = document["px" + id];
      else
        var posX = (ancho / 2);

      //Evaluar las dos opciones para detectar el cambio del scroll
      if(document.documentElement.scrollTop == 0)
        scroll = document.body.scrollTop;
      else
        scroll = document.documentElement.scrollTop;

      if(document["py" + id])
        var finalPosY = scroll + document["py" + id];
      else
        var finalPosY = scroll + ((document.documentElement.clientHeight - alto) / 2);

      //Definir el intervalo de avance del objeto
      avance += (Math.abs(elem.offsetTop - finalPosY)/4);

      //Si el objeto tiene que subir, cambiar el multiplicador a negativo
      if(elem.offsetTop > finalPosY)
        signo = -1;

      /*Si aun no se llega al punto final, seguir avanzado,
      si ya no se puede avanzar más, dar los valores finales.*/
      if(((elem.offsetTop + avance < finalPosY) && signo > 0) ||((elem.offsetTop - avance > finalPosY) && signo < 0)){
        //Carcular posicion con incremento
        var posY = elem.offsetTop + (avance * signo);
      }
      else{
        //Asignar valores finales
        window.clearInterval(window["idIntervalo" + id]);
        posY = finalPosY;

        //Setear valores.
        //if(elem.style.visibility == "hidden") elem.style.visibility = "visible";
        window["idIntervalo" + id] = undefined;
        document["auxId" + id] = undefined;
        document["px" + id] = undefined;
        document["py" + id] = undefined;
      }

      //Asignar valores.
      elem.style.position = 'absolute';
      elem.style.left = posX + 'px';
      elem.style.top = posY + 'px';
    }
}

//Permite llenar el objeto locutor.
function llenarObj(id, loc_id){
    var ancho = (screen.width / 2);
    var alto = (screen.height / 2);
    //alert(document.body.scrollTop );
    //alert(document.body.clientTop );
    //alert(document.documentElement.scrollTop + "  " + document.documentElement.clientHeight );

    elem = document.getElementById(id);
    elem.style.border = 'solid';
    elem.style.width =  ancho + 'px';
    elem.style.height = alto + 'px';
    elem.style.background = 'url(imagen/fondo.png)';
    elem.style.color = '#FFFFFF';
    elem.style.display  = 'block';
    elem.innerHTML = "<div style='text-align:center;margin-top:35%'><img src='imagen/cargando.gif'></div>";
    cuerpoAlt("cuerpos/locutor.php",id, "loc_id=" + loc_id + "&obj=" + id);

    centrarObj(id);
}

//Permite enviar un e mail utilizando un archivo PHP
function envMail(idObj, idNombre, idMail, idMensaje){
    nombre = document.getElementById(idNombre).value;
    mail = document.getElementById(idMail).value;
    mensaje = document.getElementById(idMensaje).value;
    //alert(idObj + " " + nombre + " " + mail + " " + mensaje);
    document.resp = undefined;
    cuerpoAlt("cuerpos/mail.php", idObj, "nombre=" + nombre + "&mail=" + mail + "&mensaje=" + mensaje, "-document");

    window.idIntervalo = window.setInterval(val, 250);

    function val(){
        if(document.resp){
            window.clearInterval(window.idIntervalo);
            if(document.resp == "OK"){
		        document.getElementById(idObj).innerHTML = "Su mensaje ha sido enviado con éxito\n¡Gracias por contactarnos!"
            }
            else{
                alert(document.resp);
            }
        }
    };
}

//Evento scroll de la ventana
window.onscroll = function(){
   moverObj('perfiloc');
   moverObj('autor_lnk','izq','abajo', true, 1500);
   ver('autor','none');
}

