/**
**	CREADO POR BOLÍVAR YAR
**	DEP. SOPORTE
**	YAGE 2005 [12/09] 
** 	MODIFIED [18/11] - NOW WITH CLASSES AND THAT STUFF
**/

	var action	= 'loadHTML';	//action: Para determinar que función desea usar para procesar el Xml resultado

	var xmlAsyncRequestObject = new Array(1);

	function createAsyncRequestObject(){ //Crea y retorna el objeto Xmlhttp.... whatever si no se puede retorna NULL
		var xmlHttp; 
		xmlHttp = null;
		try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP.4.0"); } catch (ex) {}
		try { xmlHttp = new ActiveXObject("MSXML2.XMLHTTP"); } catch (ex){}
		try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (ex) {}
		try {	xmlHttp = new XMLHttpRequest(); }	catch (ex) {}			
		return xmlHttp;
	}

	function loadHTML(){
		if (xmlAsyncRequestObject[0].readyState == 4) {
			if (xmlAsyncRequestObject[0].status == 200) {
				document.getElementById('mainInfo').innerHTML = xmlAsyncRequestObject[0].responseText;
				showStatus("", 'loading', 'td');
			} else {
				alert ( "La Información solicitada actualmente no está disponible :: Status: " + action );
			}
			xmlAsyncRequestObject[0] = null;
		}
	}

	function loadInfo(url, urlPars){
			xmlAsyncRequestObject[0] = createAsyncRequestObject();		
			ajaxRequest(url,urlPars,'GET','loading','td','loadHTML',null,0);
		}	
		
	function ajaxRequest(url, urlPars, tipoReq, idObjStatus, tipoObjStatus, iParse, formulario, idObject) {
		var uri	=	url;
		var str	=	null;
		var xmlAsyncRequestObjectLocal;
		if (idObjStatus!='') {
			showStatus("", 'maininfo', 'td');	
			showStatus("<span class=titulo>Espere por favor, cargando Datos...</span>", idObjStatus, tipoObjStatus);	
		}
		if(tipoReq=='' || tipoReq=='GET'){
			tipoReq = 'GET';
			uri = url + '?' + urlPars;
		}else{
			formulario = (formulario)?formulario:document.form1;
			str = getFormValues(formulario);
		}
		action = iParse;
		xmlAsyncRequestObjectLocal = createAsyncRequestObject();
		xmlAsyncRequestObjectLocal.onreadystatechange = eval(action);//processRequest;
		xmlAsyncRequestObjectLocal.open(tipoReq, uri, true);
		if (str) xmlAsyncRequestObjectLocal.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"); 
		xmlAsyncRequestObjectLocal.send(str);
		xmlAsyncRequestObject[idObject] = xmlAsyncRequestObjectLocal;
		xmlAsyncRequestObjectLocal = null;
	}
	
	function showStatus(message, idObj, type){
		obj = document.getElementById(idObj);
		switch (type){
			case ('combo'): //mostrar mensaje en un combo
				obj.options.length=0;
				var opcion = new Option(message,"",false,false);
				obj.options[obj.options.length] = opcion;
				break;
			case ('div', 'td'): //mostrar mensaje en un div o en un td
				obj.innerHTML = message;
				break;			
		}
	}