// JavaScript Document
function objetoXMLRequest(parametros){
	var objetoXML=crearObjeto();
	if(!objetoXML){
		//divError.innerHTML='ERROR INICIALIZANDO OBJETO';
		var params=new Array();
		params.error=true;
		params.datos='ERROR INICIALIZANDO OBJETO';
		eval(parametros.funcionProceso+'(params)');
	}else{
		if(parametros.variables==''){
			parametros.variables+=Math.random();
		}else{
			parametros.variables+='&'+Math.random();
		}
		if(parametros.metodo=='GET'){
			objetoXML.open("GET",parametros.urlArchivo+'?'+parametros.variables,true);
			paramSend=null;			
		}else if(parametros.metodo=='POST'){
			objetoXML.open("POST",parametros.urlArchivo,true);
			objetoXML.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			paramSend=variables;
		}
		objetoXML.onreadystatechange=function(){
			verProceso(objetoXML,parametros.funcionProceso,parametros.leerXML);
		}
		objetoXML.send(paramSend);		
	}
}
function verProceso(request,funcion,respXML){
	var params=new Array();
	if(request.readyState==4){
		if(request.status==200 || request.status==304){
			params.error=false;
			var respuesta='';
			if(respXML){
				respuesta=request.responseXML;
			}else{
				respuesta=request.responseText;
			}
			params.datos=respuesta;																					
		}else if(request.status==404){
			params.error=true;
			params.datos='ERROR EN URL';			
		}else if(request.status==500){
			params.error=true;
			params.datos='ERROR EN SERVIDOR';			
		}
		eval(funcion+'(params)');
	}	
}
function crearObjeto(){
	var request = false;
	try {
		request = new XMLHttpRequest();
	} catch (trymicrosoft) {
		try {
			request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (othermicrosoft) {
			try {
				request = new ActiveXObject("Microsoft.XMLHTTP");
       		} catch (failed) {
				request = false;
       		}  
  		}
	}
	return request;
}

///////////////////////////////////////

//REGISTRO DE EVENTOS
function agregarEscuchaEvento(elemento, tipoEvento, funcion, useCapture) {
	if (elemento.addEventListener){
		elemento.addEventListener(tipoEvento, funcion, useCapture);
		return true;
	}else if(elemento.attachEvent){
		return elemento.attachEvent('on' + tipoEvento, funcion);
	}else{
		elemento['on' + tipoEvento] = funcion;
	}
}
function cancelarOtrosEventos(event){
	if(document.all){
		window.event.cancelBubble=true;
		window.event.returnValue=false;
	}else{
		event.preventDefault();
	}
}
//QUITA CONTENIDO INTERNO DE ELEMENTOS
function limpiarContenido(elemento){
	while(elemento.firstChild){		
		elemento.removeChild(elemento.firstChild);
	}
}

