var browser;

function GetXmlHttpObject()
{
var xmlHttp=null;
browser = navigator.appName;

 // Internet Explorer
if(browser== "Microsoft Internet Explorer")
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
else{
  xmlHttp=new XMLHttpRequest();
}

return xmlHttp;
}

function peticionAJAX(url, contenedor){
 var request = GetXmlHttpObject();
     request.open("GET", url, true);
     request.onreadystatechange = function() {
     if (request.readyState == 4) {
      var respuesta = request.responseText;
      contenedor.innerHTML = respuesta;
     }
    }
    request.send(null);
}

//Función para validar si un campo contiene un valor numérico
function IsNumeric(strString)
   //  check for valid numeric strings	
   {
   var strValidChars = "0123456789.-";
   var strChar;
   var blnResult = true;

   if (strString.length == 0) return false;

   //  test strString consists of valid characters listed above
   for (i = 0; i < strString.length && blnResult == true; i++)
      {
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1)
         {
         blnResult = false;
         }
      }
   return blnResult;
}


//Función que revisa los campos del comentario para verificar su integridad y los inserta en la BD
function revisaComentario(id, tipo){
 //Obtenemos la dirección de correo para guardarla o para verificar que sea válida
 var correo = new String(document.getElementById("correo").value);
 //Obtenemos el autor y el comentario y verificamos que no sean cadenas vacías
 var autor = new String(document.getElementById("autor").value);
 var comentario = new String(document.getElementById("comentario").value);
 var mensaje = document.getElementById("mensajeComentarios");
 var html = "";
 var listo = 0; //lleva la cuenta de campos válidos

 mensaje.innerHTML = html;

 //Verificamos que el correo sea válido
 if(correo.indexOf('@') == -1)
  html += "Introduce una dirección válida.";
 else
  listo++;

 if(autor == "")
  html += "<BR>El campo autor es obligatorio";
 else
  listo++;

 if(comentario == ""){
  html += "<BR>El campo comentario es obligatorio";
 }
 else
  listo++;

 if(listo == 3){
  peticionAJAX("guardaComentario.php?id=" + id + "&autor=" + autor + "&correo=" + correo + "&comentario=" + comentario + "&tipo=" + tipo, mensaje);
  document.getElementById('autor').value = "";
  document.getElementById('correo').value = "";
  document.getElementById('comentario').value = "";
 }else{
  mensaje.innerHTML = html;
 }

}

function revisaVoluntarios(){
 //Obtenemos la dirección de correo para guardarla o para verificar que sea válida
 var correo = document.getElementById("correo").value;
 var nombre = document.getElementById("nombre").value;
 var selIndex = document.getElementById("delegacion").selectedIndex;
 var delegacion = document.getElementById("delegacion").options[selIndex].text;
 var telefono = document.getElementById("telefono").value;
 selIndex = document.getElementById("nombres_candidatos").selectedIndex;
 var id_can = document.getElementById("nombres_candidatos").options[selIndex].value;

 var mensaje = document.getElementById("mensajes");
 var html = "";
 var listo = 0; //lleva la cuenta de campos válidos

 mensaje.innerHTML = html;

 //Verificamos que el correo sea válido
 if(correo.indexOf('@') == -1)
  html += "Introduce una dirección de correo electrónico válida.";
 else
  listo++;

 if(nombre == "")
  html += "<BR>El campo Nombre es obligatorio";
 else
  listo++;

 if(telefono != "" && !IsNumeric(telefono)){
  html += "<BR>El campo teléfono debe contener un valor numérico";
  listo--;
 }

 if(listo >= 2){
  peticionAJAX("guardaVoluntario.php?nombre=" + nombre + "&correo=" + correo + "&del=" + delegacion + "&tel=" + telefono + "&id_can=" + id_can, mensaje);
  document.getElementById('nombre').value = "";
  document.getElementById('correo').value = "";
  document.getElementById('telefono').value = "";
 }else{
  mensaje.innerHTML = html;
 }
}

//Función que revisa los campos de los mensajes para los candidatos para verificar su integridad y los inserta en la BD
function revisaMensaje(){
 //Obtenemos la dirección de correo para guardarla o para verificar que sea válida
 var correo = new String(document.getElementById("correo").value);
 //Obtenemos el autor y el comentario y verificamos que no sean cadenas vacías
 var autor = new String(document.getElementById("autor").value);
 var comentario = new String(document.getElementById("comentario").value);
 var mensaje = document.getElementById("mensajeComentarios");
 selIndex = document.getElementById("nombres_candidatos").selectedIndex;
 var id = document.getElementById("nombres_candidatos").options[selIndex].value;

 var html = "";
 var listo = 0; //lleva la cuenta de campos válidos

 mensaje.innerHTML = html;

 //Verificamos que el correo sea válido
 if(correo.indexOf('@') == -1)
  html += "Introduce un correo válido.";
 else
  listo++;

 if(autor == "")
  html += "<BR>El campo autor es obligatorio";
 else
  listo++;

 if(comentario == ""){
  html += "<BR>El mensaje es obligatorio";
 }else if(comentario.length > 500){
  html += "<BR>Tu mensaje debe ser de menos de 500 caracteres.";
 }
 else
  listo++;

 if(listo == 3){
  peticionAJAX("guardaMensaje.php?id=" + id + "&autor=" + autor + "&correo=" + correo + "&comentario=" + comentario, mensaje);
  document.getElementById('autor').value = "";
  document.getElementById('correo').value = "";
  document.getElementById('comentario').value = "";
 }else{
  mensaje.innerHTML = html;
 }

}

//Función que revisa los campos de la forma de proponer tema
function guardaTema(){
 //Obtenemos la dirección de correo para guardarla o para verificar que sea válida
 var correo = new String(document.getElementById("correo").value);
 var nombre = new String(document.getElementById("nombre").value);
 var tema = new String(document.getElementById("tema").value);
 var opinion = document.getElementById("opinion").value;
 var html = "";
 var mensaje = document.getElementById("mensajes");
 var listo = 0; //lleva la cuenta de campos válidos

 mensaje.innerHTML = html;

 //Verificamos que el correo sea válido
 if(correo.indexOf('@') == -1)
  html += "Introduce un correo válido.";
 else
  listo++;

 if(nombre == "")
  html += "<BR>El campo nombre es obligatorio";
 else
  listo++;

 if(tema == "")
  html += "<BR>El tema es obligatorio";
 else
  listo++;

 if(opinion == "")
  html += "<BR>Tu opinión es obligatoria";
 else
  listo++;

 if(listo == 4){
  peticionAJAX("guardaTema.php?nombre=" + nombre + "&correo=" + correo + "&tema=" + tema + "&opinion=" + opinion, mensaje);
  document.getElementById('nombre').value = "";
  document.getElementById('correo').value = "";
  document.getElementById('tema').value = "";
  document.getElementById('opinion').value = "";
 }else{
  mensaje.innerHTML = html;
 }

}

//************************************************
//Funciones de navegación y votación de la encuesta
function votoEncuesta(){
 var opciones = document.getElementsByName('option_id');
 var id = (document.getElementsByName('poll_ident')[0]).value;
 var contenedor_encuesta = document.getElementById('encuesta');

 //Revisamos las opciones para saber cuál está seleccionada
 for(i=0;i<opciones.length;i++){
  if(opciones[i].checked==true)
    var opcion=opciones[i].value;
 }
 //Invocamos al servidor
 peticionAJAX('encuesta.php?action=vote&poll_ident=' + id + '&option_id=' + opcion, contenedor_encuesta);
}

function verVotos(){
 var contenedor_encuesta = document.getElementById('encuesta');
 peticionAJAX('encuesta.php?action=results&poll_ident=1', contenedor_encuesta);
 return false;
}

function verEncuesta(){
 var contenedor_encuesta = document.getElementById('encuesta');
 peticionAJAX('encuesta.php', contenedor_encuesta);
 return false;
}


//Función para navegar las noticias más recientes
function navegaNoticias(dir){
 var offset;
 if(dir == 1)//Debe avanzar
  offset=1;
 else
  offset=0;

 var contenedor_noticias = document.getElementById('noticias');
 peticionAJAX('ultimasNoticias.php?p=' + offset, contenedor_noticias);
 return false;
}
