// JavaScript Document 
// www.netberry.es 22/03/2007

//-----------------------------------------------------------------//
/******************************************************************
function objetoAjax()
Crear objeto AJAX
Devuelve: Objeto Ajax.
		  False = Si no se ha podido crear el objeto.
******************************************************************/
function objetoAjax(){
	var xmlhttp=false;	
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
		   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			xmlhttp = false;
  		}
	}

	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}


//-----------------------------------------------------------------//

/******************************************************************
function ajax_GET(sValor, resultado)
Utiliza mtodo GET, enviando a la direccin con variables pasadas.
Ejemplo:  
		ajax_GET('eliminar.php?id=".$variable."', 'listado')
 sValor = eliminar.php?id=6&titulo=prueba
 resultado = ID de la capa donde se actualizar el resultado
*******************************************************************/
function ajax_GET(sValor, resultado){
	
	//instanciamos el objetoAjax
	ajax=objetoAjax();
	
	//donde se mostrar el resultado
	divResultado = document.getElementById(resultado);
	
	//indicamos el archivo que realizar el proceso 
	ajax.open("GET", sValor, true);
		
    ajax.onreadystatechange=function(){
                if(ajax.readyState==1){
                        //divResultado.innerHTML = "Cargando...";
                        //modificamos el estilo de la div, mostrando una imagen de fondo
                        //divResultado.style.background = "url('cargando.gif')"; 
                }else if(ajax.readyState==4){
                        if(ajax.status==200){
								//mostrar resultados en esta capa div
								divResultado.innerHTML = ajax.responseText
								divResultado.style.background = "";

                        }else if(ajax.status==404){
                                divResultado.innerHTML = "La página no existe";
                        }else{
                                //mostramos el posible error
                                divResultado.innerHTML = "Error:".ajax.status; 
                        }
                }
     }
	//como hacemos uso del metodo GET colocamos null
	ajax.send(null)

}	

/******************************************************************
function ajax_POST(sValor, resultado)
Utiliza mtodo POST, para recoger variables del Formulario y mandarlos a sValor
Ejemplo:  
<form name="form1" action="" onsubmit="ajax_POST('edit2.php','resultado'); return false">
 sValor = edit2.php : fichero que recoger los valores 
 resultado = ID de la capa donde se actualizar el resultado
*******************************************************************/
function ajax_POST(sValor, resultado){

	//instanciamos el objetoAjax
	ajax=objetoAjax();
	
	//ID donde se mostrar lo resultados
	divResultado = document.getElementById(resultado);	
	
	//archivo que realizar la operacion
	ajax.open("POST",sValor,true);
	
    ajax.onreadystatechange=function(){
                if(ajax.readyState==1){
                        divResultado.innerHTML = "Cargando...";
                        //modificamos el estilo de la div, mostrando una imagen de fondo
                        //divResultado.style.background = "url('cargando.gif') no-repeat"; 
                }else if(ajax.readyState==4){
                        if(ajax.status==200){
								//mostrar los nuevos registros en esta capa
								divResultado.innerHTML = ajax.responseText
								//llamar a la funcion para limpiar los inputs
								LimpiarCampos();
								
                        }else if(ajax.status==404){
                                divResultado.innerHTML = "La página no existe";
                        }else{
                                //mostramos el posible error
                                divResultado.innerHTML = "Error:".ajax.status; 
                        }
                }
     }	
	
	//muy importante este encabezado ya que hacemos uso de un formulario
	ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	//enviando los valores	
	ajax.send(valoresInputs())		
		
}



/******************************************************************
function valoresInputs()
Utilizada en ajax_POST, para recoger los valores del formulario
Devuelve: Array con los parmetros del formulario
*******************************************************************/
function valoresInputs(){
	
	var parametros = '';

	//Recogida de valores de los inputs
	var1=document.forms[0].elements[0].value;
	id =document.forms[0].elements[0].name;		
	parametros= parametros+id+"="+var1;		
	for (i=1;i<(document.forms[0].elements.length)-1;i++){
		
		var1=document.forms[0].elements[i].value;
		id =document.forms[0].elements[i].name;		
		
		//Tratamiento de boton radio
	    if( document.forms[0].elements[i].type == "radio" ){
		    nombreGrupo = document.forms[0].elements[document.forms[0].elements[i].name];
			for( cont2 = 0; cont2 < nombreGrupo.length; ++cont2 ){	
				if ( nombreGrupo[cont2].checked ){	
					var1=nombreGrupo[cont2].value;
					id =nombreGrupo[cont2].name;
				}
			}
		}

		
		
		parametros= parametros+"&"+id+"="+var1;
	}
	
	return parametros;
}



/******************************************************************
function LimpiarCampos()
Utilizada en ajax_POST, para vaciar el contenido de las variables del formulario
*******************************************************************/
function LimpiarCampos(){
	
	for (i=1;i<(document.forms[0].elements.length)-1;i++){
		document.forms[0].elements[i].value="";	
	}	
	document.forms[0].elements[0].focus();
}


/******************************************************************
function identificadores(resultado)
Muestra la repuesta de una funcin ajax, en varias capas ID
resultado = las capas, separadas por #, donde se mostrar el resultado
 			formato:   capa1#capa2#capa3
(Nota: Preparada para utilizarse, ahora no se utiliza)
*******************************************************************/
function identificadores(resultado) {
		var id = resultado.split('#');		
		for(i in id) {			
        		document.getElementById(id[i]).innerHTML = ajax.responseText;
        }
}

/******************************************************************
function eliminarRegistro(texto, fichero, resultado)
Valores:
	texto = Texto que aparecer en ventana para confirmacin 
		    0 : No aparecer dialogo con texto.
			  
	fichero = Fichero con variables que cargar (ejemplo.php?id=4)
	resultado = ID donde se mostrar el resultado

*******************************************************************/
function eliminarRegistro(texto, fichero, resultado){
	
	//usaremos un cuadro de confirmacion	
	var eliminar;
	text = 'Seguro que desea borrar '+texto+'?';

	if(texto!='0')
	  eliminar = confirm(text);
	else eliminar = 1;
	
	if ( eliminar ) {
		//instanciamos el objetoAjax
		ajax=objetoAjax();
		//uso del medotod GET
		//indicamos el archivo que realizar el proceso de eliminacin
		//junto con un valor que representa el id
		ajax.open("GET", fichero);
		ajax.onreadystatechange=function() {
			if (ajax.readyState==4) {
				divResultado = document.getElementById(resultado);	
				//mostrar resultados en esta capa
				divResultado.innerHTML = ajax.responseText
			}
		}
		//como hacemos uso del metodo GET
		//colocamos null
		ajax.send(null)
	}
}






