//javascript document
var receiveReq = false;
getXmlHttpRequestObject();
//obtiene el XmlHttpRequest Object especifico de cada navegador
function getXmlHttpRequestObject(){
	if(window.XMLHttpRequest){
		receiveReq = new XMLHttpRequest(); //no es IE
		if (receiveReq.overrideMimeType) {
         	//Setear de acuerdo al tipo
            //http_request.overrideMimeType('text/xml');
            receiveReq.overrideMimeType('text/html');
    	}
	} else if(window.ActiveXObject){ //IE
		//receiveReq = new ActiveXObject("Microsoft.XMLHTTP"); // viejo
		try {
            receiveReq = new ActiveXObject("Msxml2.XMLHTTP");
    	} catch (e) {
            try {
            	receiveReq = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
	} else {
		//Mostrar mensaje de error aqui e informar al usuario que tendria que actualizar su navegador
		window.alert("Su navegador no soporta el objecto XmlHttpRequest. Actualice a Firefox (www.firefox.com).");
		return false;
	}
}

var divisory="";
//funcion llamada cada avez que el objecto XmlHttpRequest cambia de estado.
function handle(){
	//Checkea si el estado del objecto XmlHttpRequest es FINALIZADO (finished)/
	if(receiveReq.readyState == 4){
		if (receiveReq.status == 200) {
			//pone el resultado de la llamada asincrona como el contenido en el elemento span.
			document.getElementById(divisory).innerHTML = receiveReq.responseText;
			ejecutar_js(receiveReq.responseText);
		} else {
			window.alert("Hubo un problema en la peticion. Intente nuevamente");	
		}
	}
}

function ejecutar_js(texto){
	if((inicio = texto.indexOf("<script language=\"javascript\">")) != -1){ //retorna -1 si no se encuentra la cadena
		inicio += 30; //para evitar <script... y que empieze justo en donde empieza el codigo javascript
		if((final = texto.indexOf("</script>")) != -1){
			eval(texto.substring(inicio,final)); //ejecutamos javascript
		}
	}
}

function hacerPOSTRequest(url, parameters) {     
    receiveReq.open('POST', url, true);
    receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    receiveReq.setRequestHeader("Content-length", parameters.length);
    receiveReq.setRequestHeader("Connection", "close");
    receiveReq.send(parameters);
	receiveReq.onreadystatechange = handle;
	return true;
}