function GetXmlHttpObject() {
	var xmlHttp=null;

	try {
  		// Firefox, Opera 8.0+, Safari
  		xmlHttp=new XMLHttpRequest();
  	} catch (e) {
  		// Internet Explorer
  		try {
		    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    		} catch (e) {
		    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    		}
  	}
	return xmlHttp;
}

function muestraAjaxModal(url, titulo, ancho, alto) {
        var xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null) {
  		alert ("¡Tu navegador no soporta AJAX!. Actualizaló.");
  		return;
  	} 

	var contenido = document.createElement('div');

	xmlHttp.onreadystatechange=function()
	   {
		if(xmlHttp.readyState == 1) {
			contenido.innerHTML = '<p style="margin: 0px; auto;" >Espere un momento por favor...</p>';
		} else if(xmlHttp.readyState == 4) {
			contenido.innerHTML = xmlHttp.responseText;
  		}
	   }

	xmlHttp.open("GET",url, true);
	xmlHttp.send(null);

        creaVentanaModal(titulo, contenido, ancho, alto);
}

function muestraAjaxDiv(url, idDiv) {
        var xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null) {
  		alert ("¡Tu navegador no soporta AJAX!. Actualizaló.");
  		return;
  	} 

	var contenido = document.getElementById(idDiv);

	xmlHttp.onreadystatechange=function()
	   {
		if(xmlHttp.readyState == 1) {
			contenido.innerHTML = '<p style="margin: 0px auto;">Espere un momento por favor...</p>';
		} else if(xmlHttp.readyState == 4) {
			contenido.innerHTML = xmlHttp.responseText;
  		}
	   }

	xmlHttp.open("GET",url, true);
	xmlHttp.send(null);
}

function muestraAjaxDivPost(url, idDiv, post) {
        var xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null) {
  		alert ("¡Tu navegador no soporta AJAX!. Actualizaló.");
  		return;
  	} 

	var contenido = document.getElementById(idDiv);

	xmlHttp.onreadystatechange=function()
	   {
		if(xmlHttp.readyState == 1) {
			contenido.innerHTML = '<p style="margin: 0px; auto;">Espere un momento por favor...</p>';
		} else if(xmlHttp.readyState == 4) {
			contenido.innerHTML = xmlHttp.responseText;
  		}
	   }

	xmlHttp.open("POST",url, true);
	xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    	xmlHttp.send(post);
}

function muestraContenidoModalAjax(url) {
        muestraAjaxDiv(url, 'contenidoModal');
}

function activarCuentaAjax(nuevoEstado, idUsu) {
    xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null) {
            alert ("¡Tu navegador no soporta AJAX!. Actualizaló.");
            return;
    } 

    var contenido = document.createElement('div');

    xmlHttp.onreadystatechange=function()
        {
            if(xmlHttp.readyState == 4) {
               var contenido = document.createElement('div');

               resp = xmlHttp.responseText;
               if(resp == '1') {
                 if(nuevoEstado == 1) {
                    contenido.innerHTML = "La cuenta del usuario ha sido activada."
                    document.getElementById('act' + idUsu).src="img/activado.png";
                    document.getElementById('act' + idUsu).parentNode.href="javascript:activarCuentaAjax(0,'" + idUsu + "')";
                 } else {
                    contenido.innerHTML = "La cuenta del usuario ha sido desactivada."
                    document.getElementById('act' + idUsu).src="img/desactivado.png";
                    document.getElementById('act' + idUsu).parentNode.href="javascript:activarCuentaAjax(1,'" + idUsu + "')";
                 }
               } else {
                  contenido.innerHTML = resp;
               }
               creaVentanaModal('Borrar FCT', contenido, 280, 120);
            }
        }

    xmlHttp.open("GET",'inc/ajax/activar_cuenta.php?id=' + idUsu + '&estado=' + nuevoEstado, true);
    xmlHttp.send(null);
}

function activarAdmin(nuevoEstado, idUsu) {
    xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null) {
            alert ("¡Tu navegador no soporta AJAX!. Actualizaló.");
            return;
    } 

    var contenido = document.createElement('div');

    xmlHttp.onreadystatechange=function()
        {
            if(xmlHttp.readyState == 4) {
               var contenido = document.createElement('div');

               resp = xmlHttp.responseText;
               if(resp == '1') {
                 if(nuevoEstado == 1) {
                    contenido.innerHTML = "Se han asignado privilegios de administrador."
                    document.getElementById('act' + idUsu).src="img/activado.png";
                    document.getElementById('act' + idUsu).parentNode.href="javascript:activarAdmin(0,'" + idUsu + "')";
                 } else {
                    contenido.innerHTML = "Se han quitado los privilegios de administrador."
                    document.getElementById('act' + idUsu).src="img/desactivado.png";
                    document.getElementById('act' + idUsu).parentNode.href="javascript:activarAdmin(1,'" + idUsu + "')";
                 }
               } else {
                  contenido.innerHTML = resp;
               }
               creaVentanaModal('Borrar FCT', contenido, 280, 120);
            }
        }

    xmlHttp.open("GET",'inc/ajax/activar_admin.php?id=' + idUsu + '&estado=' + nuevoEstado, true);
    xmlHttp.send(null);
}

/*****************************
* EMPRESAS AJAX
******************************/

function muestraEmpresasAjax() {
        muestraAjaxModal('inc/ajax/mostrar_empresas.php', 'Seleccione empresa', 800, 450);
}

function muestraEmpresasAjaxByParamModal(params) {
        muestraAjaxModal('inc/ajax/mostrar_empresas.php?' + params, 'Seleccione empresa', 800, 450);
}

function muestraEmpresasAjaxByParam(params) {
        muestraAjaxDiv('inc/ajax/mostrar_empresas.php?' + params, 'contenidoModal');
}

function muestraEmpresasAjaxByNombre(nombre) {
        muestraEmpresasAjaxByParam('nombre=' + encodeURIComponent(nombre));
}

function muestraEmpresasAjaxByConcierto(concierto) {
        muestraEmpresasAjaxByParam('concierto=' + encodeURIComponent(concierto));
}

function muestraEmpresasAjaxByLocalidad(localidad) {
        muestraEmpresasAjaxByParam('localidad=' + encodeURIComponent(localidad));
}

function seleccionaEmpresaFCT(id) {
        cierraVentanaModal();
        document.getElementById('empresaFCT').value = id;

        muestraAjaxDiv('inc/ajax/rellenar_empresa_fct.php?id=' + id, 'celdaDatosEmpresa');
}

function eliminarEmpresaFila(fila, id) {
    if(!confirm("¡Cuidado!. Si se borra esta empresa, se borrarán todas las FCT y resto de cosas asociadas a ella \n" +
           "¿Todavía desea continuar?")) {
      return;
    }

    xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null) {
            alert ("¡Tu navegador no soporta AJAX!. Actualizaló.");
            return;
    } 

    var contenido = document.createElement('div');

    xmlHttp.onreadystatechange=function()
        {
            if(xmlHttp.readyState == 4) {
               var contenido = document.createElement('div');

               resp = xmlHttp.responseText;
               if(resp == '1') {
                  contenido.innerHTML = "El borrado de la empresa fue un éxito"
                  fila.parentNode.removeChild(fila);
               } else {
                  contenido.innerHTML = resp;
               }
               creaVentanaModal('Borrar empresa', contenido, 280, 120);
            }
        }

    xmlHttp.open("GET",'inc/ajax/borrar_empresa.php?id=' + id, true);
    xmlHttp.send(null);
}

/*****************************
* ALUMNOS AJAX
******************************/

function muestraAlumnosAjax() {
        muestraAjaxModal('inc/ajax/mostrar_alumnos.php', 'Seleccione alumno', 800, 450);
}

function muestraAlumnosAjaxByParamModal(params) {
        muestraAjaxModal('inc/ajax/mostrar_alumnos.php?' + params, 'Seleccione alumno', 800, 450);
}

function muestraAlumnosAjaxByParam(params) {
        muestraAjaxDiv('inc/ajax/mostrar_alumnos.php?' + params, 'contenidoModal');
}

function muestraAlumnosAjaxByNombre(nombre) {
        muestraAlumnosAjaxByParam('nombre=' + encodeURIComponent(nombre));
}

function seleccionaAlumnoFCT(id) {
        cierraVentanaModal();
        document.getElementById('alumnoFCT').value = id;

        muestraAjaxDiv('inc/ajax/rellenar_alumno_fct.php?id=' + id, 'celdaDatosAlumno');
}

function eliminarAlumnoFila(fila, id) {
    if(!confirm("¡Cuidado!. Si se borra este alumno, se borrarán todas las FCT y resto de cosas asociadas a él \n" +
           "¿Todavía desea continuar?")) {
      return;
    }

    xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null) {
            alert ("¡Tu navegador no soporta AJAX!. Actualizaló.");
            return;
    } 

    var contenido = document.createElement('div');

    xmlHttp.onreadystatechange=function()
        {
            if(xmlHttp.readyState == 4) {
               var contenido = document.createElement('div');

               resp = xmlHttp.responseText;
               if(resp == '1') {
                  contenido.innerHTML = "El borrado del alumno fue un éxito"
                  fila.parentNode.removeChild(fila);
               } else {
                  contenido.innerHTML = resp;
               }
               creaVentanaModal('Borrar alumno', contenido, 280, 120);
            }
        }

    xmlHttp.open("GET",'inc/ajax/borrar_alumno.php?id=' + id, true);
    xmlHttp.send(null);
}


/**********************************
* PROFESORES AJAX
***********************************/

function muestraProfesoresAjax() {
        muestraAjaxModal('inc/ajax/mostrar_profesores.php', 'Seleccione profesor', 700, 450);
}

function muestraProfesoresAjaxByParamModal(params) {
        muestraAjaxModal('inc/ajax/mostrar_profesores.php?' + params, 'Seleccione profesor', 700, 450);
}

function muestraProfesoresAjaxByParam(params) {
        muestraAjaxDiv('inc/ajax/mostrar_profesores.php?' + params, 'contenidoModal');
}

function muestraProfesoresAjaxByNombre(nombre) {
        muestraProfesoresAjaxByParam('nombre=' + encodeURIComponent(nombre));
}

function muestraProfesoresAjaxByDepartamento(dep) {
        muestraProfesoresAjaxByParam('dep=' + encodeURIComponent(dep));
}

function seleccionaProfesorFCT(id) {
        cierraVentanaModal();
        document.getElementById('profesorFCT').value = id;

        muestraAjaxDiv('inc/ajax/rellenar_profesor_fct.php?id=' + id, 'celdaDatosTutor');
}

function eliminarProfesorFila(fila, id) {
    if(!confirm("¡Cuidado!. Si se borra este profesor, se borrarán todas las FCT y resto de cosas asociadas a él \n" +
           "¿Todavía desea continuar?")) {
      return;
    }

    xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null) {
            alert ("¡Tu navegador no soporta AJAX!. Actualizaló.");
            return;
    } 

    var contenido = document.createElement('div');

    xmlHttp.onreadystatechange=function()
        {estado
            if(xmlHttp.readyState == 4) {
               var contenido = document.createElement('div');

               resp = xmlHttp.responseText;
               if(resp == '1') {
                  contenido.innerHTML = "El borrado del profesor fue un éxito"
                  fila.parentNode.removeChild(fila);
               } else {
                  contenido.innerHTML = resp;
               }
               creaVentanaModal('Borrar profesor', contenido, 280, 120);
            }
        }

    xmlHttp.open("GET",'inc/ajax/borrar_profesor.php?id=' + id, true);
    xmlHttp.send(null);
}

/***********************************
* FCTS AJAX
************************************/

function filtraFCTPorProfesorPeriodo(profesor, curso, periodo) {
  cierraVentanaModal();
  muestraAjaxDiv('inc/ajax/rellenar_fct.php?prof=' + profesor + '&curso=' + encodeURI(curso) + '&periodo=' + periodo, 'contenedorFCT');
}

function filtraFCTPorAlumnoPeriodo(alumno, curso, periodo) {
  cierraVentanaModal();
  muestraAjaxDiv('inc/ajax/rellenar_fct.php?alumno=' + alumno + '&curso=' + encodeURI(curso) + '&periodo=' + periodo, 'contenedorFCT');
}

function filtraFCTPorAlumno(alumno) {
  cierraVentanaModal();
  muestraAjaxDiv('inc/ajax/rellenar_fct.php?alumno=' + alumno, 'contenedorFCT');
}

function filtraFCTPorEmpresaPeriodo(empresa, curso, periodo) {
  cierraVentanaModal();
  muestraAjaxDiv('inc/ajax/rellenar_fct.php?empresa=' + empresa + '&curso=' + encodeURI(curso) + '&periodo=' + periodo, 'contenedorFCT');
}

function filtraFCTPorEmpresa(empresa) {
  cierraVentanaModal();
  muestraAjaxDiv('inc/ajax/rellenar_fct.php?empresa=' + empresa, 'contenedorFCT');
}

function filtraFCTPorCambioPeriodo() {
  criterio = document.getElementById('criterioFiltroFCTs');
  curso = document.getElementById('curso');
  periodo = document.getElementById('periodo');
  id = document.getElementById('idFiltroFCTs');

  if(!criterio) {
    return;
  }

  if(criterio.value == "prof") {
    filtraFCTPorProfesorPeriodo(id.value, curso.value, periodo.value);
  } else if(criterio.value == "empresa") {
    filtraFCTPorEmpresaPeriodo(id.value, curso.value, periodo.value)
  } else if(criterio.value == "alumno") {
    filtraFCTPorAlumnoPeriodo(id.value, curso.value, periodo.value);
  } else {
    muestraTodasFCTByPeriodo();
  }
}

function verDetallesFCT(idFct) {
  muestraAjaxModal('inc/ajax/detalles_fct.php?id=' + idFct, 'Detalles de la FCT', 700, 400);
}

function verDetallesFCTDiv(idFct, div) {
  muestraAjaxDiv('inc/ajax/detalles_fct.php?id=' + idFct, div);
}

function muestraTodasFCTByPeriodo() {
  periodo = document.getElementById('periodo').value;
  curso = document.getElementById('curso').value;

  muestraAjaxDiv('inc/ajax/rellenar_fct.php?curso=' + encodeURI(curso) + '&periodo=' + periodo, 'contenedorFCT');
}

function eliminarFCTFila(fila, id) {
    if(!confirm("¡Cuidado!. Si se borra esta FCT, se borrará todo el seguimiento y resto de cosas asociadas a ella \n" +
           "¿Todavía desea continuar?")) {
      return;
    }

    xmlHttp=GetXmlHttpObject();
    if (xmlHttp==null) {
            alert ("¡Tu navegador no soporta AJAX!. Actualizaló.");
            return;
    } 

    var contenido = document.createElement('div');

    xmlHttp.onreadystatechange=function()
        {
            if(xmlHttp.readyState == 4) {
               var contenido = document.createElement('div');

               resp = xmlHttp.responseText;
               if(resp == '1') {
                  contenido.innerHTML = "El borrado de la FCT fue un éxito"
                  fila.parentNode.removeChild(fila);
               } else {
                  contenido.innerHTML = resp;
               }
               creaVentanaModal('Borrar FCT', contenido, 280, 120);
            }
        }

    xmlHttp.open("GET",'inc/ajax/borrar_fct.php?id=' + id, true);
    xmlHttp.send(null);
}

/**************************
* E-MAIL AJAX
***************************/

function mandarEmail(curso, periodo, filtro) {
  muestraAjaxModal('inc/ajax/enviar_email.php?curso=' + encodeURIComponent(curso) + '&periodo=' + encodeURIComponent(periodo) + '&' + filtro , 'Enviar E-mail', 680, 400);
}

function mandarEmailAlumno(alumno) {
  muestraAjaxModal('inc/ajax/enviar_email.php?alumno=' + encodeURIComponent(alumno), 'Enviar E-mail', 680, 400);
}

function mandarEmailProfesor(profe) {
  muestraAjaxModal('inc/ajax/enviar_email.php?prof=' + encodeURIComponent(profe), 'Enviar E-mail', 680, 400);
}

function mandarEmailEmpresa(empresa) {
  muestraAjaxModal('inc/ajax/enviar_email.php?empresa=' + encodeURIComponent(empresa), 'Enviar E-mail', 680, 400);
}

function enviaEmail(direcciones, asunto, mensaje) {
   muestraAjaxDivPost('inc/ajax/enviar_email2.php', 'contenidoModal', 'direcciones=' + encodeURIComponent(direcciones) +  '&asunto=' +
                       encodeURIComponent(asunto) +  '&mensaje=' + encodeURIComponent(mensaje));
}

function enviaEmailRecordarPass(dni, email) {
   muestraAjaxDiv('inc/ajax/enviar_email3.php?dni=' + encodeURIComponent(dni) +  '&email=' +
                       encodeURIComponent(email), 'contenidoModal');
}

/**************************
* DIARIO AJAX
***************************/

function modificarDiarioAjax(numDiario, idFct, fecha, modificacion, cancelar) {
    var url = 'inc/ajax/modificar_diario.php?fecha=' + encodeURI(fecha) + '&idFct=' + idFct + '&numDiario=' + numDiario +
                 (modificacion?"&modificar=true":"") + (cancelar?"&cancelar=true":"")

    if(modificacion) {
      var desc   = document.getElementById('descripcion' + numDiario).value;
      var orient = document.getElementById('orientacion' + numDiario).value;
      var dific  = document.getElementById('dificultad' + numDiario).value;
      var obser  = document.getElementById('observaciones' + numDiario).value;
      var tiempo = document.getElementById('tiempo' + numDiario).value;

      muestraAjaxDivPost(url, 'diario' + numDiario, 'desc=' + encodeURIComponent(desc) + '&orient=' +  encodeURIComponent(orient) + '&dific=' +  encodeURIComponent(dific) + '&obser=' +  encodeURIComponent(obser) + '&tiempo=' +  encodeURIComponent(tiempo));
    } else {
      muestraAjaxDiv(url, 'diario' + numDiario);
    }

    if(modificacion || cancelar) {
      enlCan = document.getElementById('cancelar' + numDiario);
      enlAcep = document.getElementById('aceptar' + numDiario);

      enlMod = document.createElement('a');
      enlMod.href = "javascript:modificarDiarioAjax(" + numDiario + ", " + idFct + ", '" + fecha + "', false, false)";
      enlMod.title = "Modificar";
      enlMod.id = "modificar" + numDiario;
      imgMod = document.createElement('img');
      imgMod.src = "img/modificar.png";
      imgMod.style.styleFloat = "right";
      imgMod.style.cssFloat = "right";
      imgMod.style.marginRight = "10px";
      imgMod.style.border = "none";
      enlMod.appendChild(imgMod);
      enlCan.parentNode.insertBefore(enlMod, enlCan);

      enlCan.parentNode.removeChild(enlCan);
      enlAcep.parentNode.removeChild(enlAcep);
    } else {
      enlMod = document.getElementById('modificar' + numDiario);

      enlCancelar = document.createElement('a');
      enlCancelar.href = "javascript:modificarDiarioAjax(" + numDiario + ", " + idFct + ", '" + fecha + "', false, true)";
      enlCancelar.title = "Cancelar cambios";
      enlCancelar.id = "cancelar" + numDiario;
      imgCancelar = document.createElement('img');
      imgCancelar.src = "img/eliminar.png";
      imgCancelar.style.styleFloat = "right";
      imgCancelar.style.cssFloat = "right";
      imgCancelar.style.marginRight = "10px";
      imgCancelar.style.border = "none";
      enlCancelar.appendChild(imgCancelar);
      enlMod.parentNode.insertBefore(enlCancelar, enlMod);

      enlAceptar = document.createElement('a');
      enlAceptar.href = "javascript:modificarDiarioAjax(" + numDiario + ", " + idFct + ", '" + fecha + "', true, false)";
      enlAceptar.title = "Aplicar cambios";
      enlAceptar.id = "aceptar" + numDiario;
      imgAceptar = document.createElement('img');
      imgAceptar.src = "img/aceptar.png";
      imgAceptar.style.styleFloat = "right";
      imgAceptar.style.cssFloat = "right";
      imgAceptar.style.marginRight = "10px";
      imgAceptar.style.border = "none";
      enlAceptar.appendChild(imgAceptar);
      enlMod.parentNode.insertBefore(enlAceptar, enlMod);

      enlMod.parentNode.removeChild(enlMod);
    }
}

function muestraOpcionesA4(idFct) {
  muestraAjaxModal('inc/ajax/opciones_generar_a4.php?idFct=' + idFct, 'Elegir semana del seguimiento', 330, 160);
}

/****************************
* LOCALIDADES
*****************************/

function generaSelectLocalidades(idProv) {
    muestraAjaxDiv('inc/ajax/generar_select_localidades.php?idProv=' + idProv, 'selectLocalidades');
}

function muestraCalculoDistancias(curso, periodo) {
   muestraAjaxModal('inc/ajax/calcular_distancias_ca.php?curso=' + encodeURIComponent(curso) + '&amp;periodo=' + encodeURIComponent(periodo), 'Calculo de distancias con Google Maps', 400, 350);
}

function enviaDistanciasLocalidades(distancias, curso, periodo) {
  xmlHttp=GetXmlHttpObject();
  if (xmlHttp==null) {
          alert ("¡Tu navegador no soporta AJAX!. Actualizaló.");
          return;
  } 

  xmlHttp.onreadystatechange=function()
      {
          if(xmlHttp.readyState == 1) {
              var parrafoDist = document.createElement('p');
              parrafoDist.appendChild(document.createTextNode('<p>Generando PDF...</p>'));
              document.getElementById('distanciasCalculadas').appendChild(parrafoDist);
          } else if(xmlHttp.readyState == 4) {
              resp = xmlHttp.responseText;
              if(resp == '1') {
                location.href = 'inc/ajax/generar_pdf.php?doc=9&curso=' + encodeURIComponent(curso) + '&periodo=' + encodeURIComponent(periodo);
              } else {
                var parrafoDist = document.createElement('p');
                parrafoDist.appendChild(document.createTextNode(resp));
                document.getElementById('distanciasCalculadas').appendChild(parrafoDist);
              }
          }
      }

  xmlHttp.open("POST","inc/ajax/guardar_distancias_localidades.php", true);
  xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  xmlHttp.send("distancias="+encodeURIComponent(distancias));
}
