// -----------------------------------------------------------------------------------------------------------------------
// FUNCION muestraEstado
// La usamos para mostrar en una capa el estado de la accion
// Se le pasa el div y el texto a mostrar
// No devuelve nada
function muestraEstado (texto, miObj) {
	obj=document.getElementById(miObj);
	if (obj) {
		obj.innerHTML=texto;
	}
}
// -----------------------------------------------------------------------------------------------------------------------
// FUNCION MUESTRA IMAGEN CON CARGA PARA AJAX

function ajaxEstado (cadena, miObj) {
  posicionaCapaCarga(miObj);
  muestraEstado('<div align=\"center\" class=\"cajaCargando\"><img src=\"../../__img/principal/comun/ajax_amarillo_claro01.gif\" alt=\"'+ cadena +'\" border=\"0\" align=\"absmiddle\"> ' + cadena + ' </div>', miObj);
}

function mensajeCargando(capa, mensaje, centrada){
	miCapa=document.getElementById(capa);
	if (typeof(centrada)=="undefined") centrada=0;
	if (typeof(mensaje)=="undefined") mensaje='';
	//miCapa.style.backgroundColor = '#FFFFFF';
	miCapa.style.verticalAlign = 'middle';
	miCapa.style.fontFamily = 'Trebuchet MS';
	miCapa.style.fontWeight = 'bold';
	miCapa.style.fontSize = '10px';
	miCapa.style.color = '#041F5F';
	if(centrada){
		miCapa.style.display = "inline";
		miCapa.style.textAlign = 'center';
		miCapa.style.position = 'absolute';
		miCapa.style.left = '50%';
		miCapa.style.top = '50%';
		miCapa.style.borderStyle = 'solid';
		miCapa.style.borderWidth = '2px';
		miCapa.style.borderColor = '#000000';
		miCapa.style.width = "300px";
		miCapa.style.height = "50px";
		miCapa.style.marginTop = '0px';
		miCapa.style.marginLeft = '0px';
		miCapa.style.paddingTop = '10px';
		miCapa.style.marginTop = parseInt(miCapa.style.marginTop) - 25 + 'px';
		miCapa.style.marginLeft = parseInt(miCapa.style.marginLeft) - 150 + 'px';
	}
	miCapa.innerHTML = '<img src="../../__img/principal/comun/carga_trans.gif" border="0" align="middle">' + '&nbsp;&nbsp;' + mensaje + ' ';
}



// -----------------------------------------------------------------------------------------------------------------------
// FUNCION cadenaFormulario
// Con esta funcion creamos una cadena tipo GET con los datos del formulario
// Le pasamos el formulario y una funcion de validacion (si se quiere)
// Devuelve el objeto creado segun el navegador.
function cadenaFormulario (fobj, valfunc){
	var str = "";
	aok = true;
	var val;
	// Recorro los objetos del formulario
	for(var i = 0; i < fobj.elements.length; i++){
		// Si he pasado alguna función de validacion
		if(valfunc) {
			if (aok == true){
				val = valfunc (fobj.elements[i].value,fobj.elements[i].name);
				if (val == false){
					aok = false;
				}
			}
		}
		// Voy creando la cadena
		if (fobj.elements[i].type=='checkbox'){
			if (fobj.elements[i].checked==true){
				str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
			}
		}else{
			str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
		}
	}
	// Devuelvo la cadena
	return str;
}
// FUNCION: carga la pagina en una capa
// PARAMETROS: pagina, el fichero que cargará,  capa, en la capa que se carga
function cargaFormulario(pagina, capa) {
  if (pagina!="" && pagina!="nada") {
    // OBTENGO LA POSICION DE LA ? QUE ES DONDE EMPIEZAN LOS PARAMETROS DE LA URL
    inicioParametros=pagina.indexOf('?');
    // SI TIENE PARAMETROS
    if (inicioParametros!=-1) {
      // OBTENGO LA URL
      cadenaUrl=pagina.substring(0,inicioParametros);
      // OBTENGO LOS PARAMETROS
      cadenaParametros=pagina.substring(inicioParametros+1);
    }
    else {
      cadenaParametros=null;
      cadenaUrl=pagina;      
     }    
    // LLAMO A LA PAGINA
    consultar(cadenaUrl, capa,'POST',cadenaParametros, null,null, 1);
  }
}
// ==========================================
// = Developed By Julian Lasso (JALF)       =
// = Version 1.3                            =
// = http://http://my.opera.com/JALF/       =
// = License: GPL (General Public License)  =
// ==========================================

function crear_senal(senal,ancho,alto,dir){
  document.getElementById(senal).style.visibility = 'hidden';
  document.getElementById(senal).style.position = 'absolute';
  document.getElementById(senal).style.top = ancho + 'px';
  document.getElementById(senal).style.left = alto + 'px';
  document.getElementById(senal).innerHTML = '<img align="right" src="' + dir + '../../__img/principal/comun/carga_blanco.gif"/>';
}

/* Ejemplo para colocar en las páginas donde se quiere el reloj de arena
<div id="senal" style="visibility:hidden; position:absolute; top:100px; left:100px;">
<img src="imagenes/reloj_arena.gif" width="32" height="32" />
</div>
*/

/**
 * Función para enviar información por el metodo GET o POST y
 * recibir una respuesta sin recargar la página en un <div></div>
 * especifico.
 *
 * @param pagina - Página en donde se va a consultar
 * @param respuesta - Id de la etiqueta a donde va a llegar la respuesta <div> <spam>
 * @param metodo - Metodo por el cual se envian las variables GET o POST
 * @param variables - Conjunto de Variables a enviar EJ: 'var1=Julian' ó
 *                    'nom=Julian&ape=Lasso&edad=22' ó 'dir=Calle 2 # 36&tel=4451555'
 * @param senal - Es el ID de la que va a contener el satelite que indica el estado
 *                de la conección al servidor [opcional]
 * @param dir - Es la dirección raiz donde se encuentra el sitio EJ: http://localhost/3RooKS/
 *              este paso pude ser opcional, pero si la imagenes de espera no cargan entonces es mejor
 *              utilizarolo.
 * @param ancho - Aqui pasamos el valor en pixeles de la posición a lo ancho,
 *                este valor es opcional si senal es null
 * @param alto - Aqui pasamos el valor en pixeles de la posición a lo largo,
 *               este valor es opcional si senal es null
 */
function consultar(pagina, respuesta, metodo, variables, senal, dir, imagenCarga){
  
	// mio
	if (imagenCarga==1) {
    document.getElementById('capaEstadoAjax').style.visibility = 'visible';
    ajaxEstado('Espere por favor ...', 'capaEstadoAjax');
  };
  /* Preparación de la variable 'pagina' en caso de que se haga uso del metodo GET */
  if(metodo == 'get' || metodo == 'GET'){
    metodo = 'GET';
    pagina = pagina + '?' + variables;
  }
  else{
    if(metodo == 'post' || metodo == '' || metodo == null){
      metodo = 'POST';
    }
  }
  /* Compatibilidad con FireFox, Opera y cualquier otro BUEN navegador */
  if(typeof(XMLHttpRequest) != 'undefined'){
    try{
      var satelite = new XMLHttpRequest();
    }
    catch(e){ }
  }
  else{
    /* Compatibilidad para Internet Explorer 6 y 7*/
    try{
      var satelite = new ActiveXObject('Microsoft.XMLHTTP');
    }
    catch(e){
      var satelite = new ActiveXObject('Msxml2.XMLHTTP');
    }
  }
  /* Una vez incializado el objeto y definido en el contexto de nuestro script
     intentaremos abrir la conexión a la dirección indicada por la variable 'pagina' */
  try{
    /* esto bien podría cambiar a "satelite.open('GET',pagina,true);" si se desea pasar
       los datos mediante método GET */
    satelite.open(metodo,pagina,true);
  }
  catch(e){
    return false;
  }
  /* Esta variable envía una cabecera indicando que enviaremos los datos método 'post' en
     forma urlencoded ejemplo ("mi_variable=cosa&otra_variable=otra_cosa"); */
  satelite.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  /* Enviamos los datos 'elementos' */
  satelite.send(variables);
  try{
    /* Justo cuando el estatus de la petición cambia esperamos a que sea igual a 4 que es
       igual a OK. */
    satelite.onreadystatechange = function(){
      if(satelite.readyState == 4){
        if(senal != null){
          document.getElementById(senal).style.visibility = 'hidden';
        }
        /* ¡¡¡ Listo !!!, ahora ya tenemos el resultado y podemos acceder a él desde
           'satelite.responseText' El resultado lo vamos a escribir en el elemento
           'respuesta' ... */
        /* Extracción de la vandera EVAL[--> */
        temp=(satelite.responseText).indexOf('EVAL[-->',0);
        tempFin=(satelite.responseText).indexOf('<--]EVAL',0);
		//temp = (satelite.responseText).substring(0,8);
        if((temp>-1) && (tempFin>-1)){
          /* Si la bandera existe entonces se extrae el script y se ejecuta */
          evaluacion=(satelite.responseText).substring(temp,tempFin + 8);
          eval((satelite.responseText).substring(temp + 8,tempFin));
          //document.getElementById(respuesta).innerHTML = satelite.responseText.replace(evaluacion,"");
        }
        else{
		  /* Si la vandera no existe entonces se muestra el resultado en el div correspondiente */
          document.getElementById(respuesta).innerHTML = satelite.responseText;          
        }
        /* Oculto la capa de carga */
        document.getElementById('capaEstadoAjax').innerHTML = '';
        document.getElementById('capaEstadoAjax').style.visibility = 'hidden';
      }
    }
  }
  catch(e){
    return false;
  }
  return true;
} // fin consultar();