
// valores de XMLHttp.status
var ERROR_DEL_SERVIDOR = 500;
var NO_ENCONTRADO = 404;
var OK = 200;
var ACEPTADO = 201;

// valores de XMLHttp.readyState
var RECIBIENDO = 1;
var TERMINADO = 4;

function crear_objeto_ajax()
{
	return crearObjetoAjax();	
}


function Ajax()
{
	return crearObjetoAjax();	
}

function crearObjetoAjax()
{
	var objetoAjax = false;
    
	if ( window.ActiveXObject )
  	{  
		try //probar para internet explorer con ajax v. 2
		{
	 		objetoAjax = new ActiveXObject("Msxml2.XMLHTTP");
	  	} 
	 	catch (e1) 
	  	{
	   	try	//probar para internet explorer con ajax v.1
			{
	    		objetoAjax = new ActiveXObject("Microsoft.XMLHTTP");
	    	} 
			catch (e2)
			{
				objetoAjax = false; 
			}
	  	}
 	}
	else if ( window.XMLHttpRequest )
	{
   	try //probar para firefox
		{
        	objetoAjax = new XMLHttpRequest();
      } 
		catch (e3) 
		{
        	objetoAjax = false;
      }
	}
  	else
	{
  		objetoAjax = false;
	}
 
 	return objetoAjax;  
}

function mostrar_contenido( pagina, division )
{
	contenedor = document.getElementById( division );
	ajax = crear_objeto_ajax();

	contenedor.innerHTML = "abriendo pagina";
	ajax.open("GET", pagina, true);
	contenedor.innerHTML = "asignando funcion";
	ajax.onreadystatechange = function() {
		if (ajax.readyState==TERMINADO && ajax.status==OK)
		{
   		contenedor.innerHTML = ajax.responseText;
   	}
  	}
	contenedor.innerHTML = "enviando peticion";	
	ajax.send(null);
}


function llamada_remota( pagina, id_div )
{
	var elem, vis;
  if( document.getElementById ) // this is the way the standards work
    elem = document.getElementById( id_div );
  else if( document.all ) // this is the way old msie versions work
      elem = document.all[id_div];
  else if( document.layers ) // this is the way nn4 works
    elem = document.layers[id_div];
  vis = elem.style;
  vis.display = 'none';

	ajax = crear_objeto_ajax();
	ajax.open("GET", pagina, true);
	ajax.send(null);
	return false;
}

function llamada_remota2( pagina )
{
 	ajax = crearObjetoAjax();
	ajax.open("GET", pagina, true);
	ajax.send(null);
//	return false;
}

function ajaxEjecutar( pagina )
{
	var ajax = crearObjetoAjax();
	ajax.open("GET", pagina, true);
	ajax.send(null);
}

function ajaxRequest(pagina, funcion)
{
	var ajax = crearObjetoAjax();
	ajax.onreadystatechange = funcion;
	ajax.open("GET", pagina, true);	
	ajax.send(null);
}

function ajaxCargarOpciones( componente, direccion, etiquetaValor, etiquetaTexto, 
															vaciar, handler )
{
	var ajax = crearObjetoAjax();
	
	ajax.onreadystatechange = function()
	{
			if (ajax.readyState==4 && ajax.status==200)
			{
				var xmlObject = ajax.responseXML;
				
				var k;
				if ( vaciar==true )
				{
					componente.options.length = 0;
					k = 0;
				}
				else
				{
					k = componente.options.length;
				}

				var valores = xmlObject.getElementsByTagName( etiquetaValor );
				var textos = xmlObject.getElementsByTagName( etiquetaTexto );					

				for(i=0; i<valores.length; ++i )
				{
					var valor  =( valores[i].childNodes[0].nodeValue );
					var texto  =( textos[i].childNodes[0].nodeValue );						
					componente.options[k] = new Option(
									texto,
									valor, false, false);
					++k;
				}
				if ( handler != null )
				{
					handler();
				}
			}
		};		

	ajax.open("GET", direccion, true);
	ajax.send(null);	
}


function ajaxCargarOpcionesConLabel( componente, direccion, etiquetaValor, 
																		etiquetaTexto, etiquetaLabel,
															vaciar, handler )
{
	var ajax = crearObjetoAjax();
	
	ajax.onreadystatechange = function()
	{
			if (ajax.readyState==4 && ajax.status==200)
			{
				var xmlObject = ajax.responseXML;
				
				var k;
				if ( vaciar==true )
				{
					componente.options.length = 0;
					k=0;
				}
				else
				{
						k = componente.options.length;
				}

				var valores = xmlObject.getElementsByTagName( etiquetaValor );
				var textos = xmlObject.getElementsByTagName( etiquetaTexto );
				var etiquetas = xmlObject.getElementsByTagName( etiquetaLabel );

				for(i=0; i<valores.length; ++i )
				{
					var valor  = valores[i].childNodes[0].nodeValue;
					var texto  = textos[i].childNodes[0].nodeValue;
					//var etiqueta  = etiquetas[i].childNodes[0].nodeValue;
					var t = '' + texto;
					componente.options[k] = new Option(
									texto,
									valor, false, false);
					componente.options[k].label = t;
					++k;
				}
				if ( handler != null )
				{
					handler();
				}
			}
		};		

	ajax.open("GET", direccion, true);
	ajax.send(null);	
}



function xmlGetValue( xmlObject, tagName )
{
	var tag = xmlObject.getElementsByTagName( tagName )[0];
	if ( !tag )
	{
		return null;
	}
	if( !tag. firstChild)
	{
		return null;
	} 
	return tag.firstChild.data;
}