var xmlReq = null;


/* ajaxRequest
**
** Descripcion: Realiza una petici?n as?ncrona utilizando AJAX.
**
** @param url URL solicitada
** @param responseHandler Funci?n javascript que va a procesar la respuesta
** @param responseType Tipo de datos solicitados IMPORTANTE: SOLO TOMA LOS VALORES 'xml' - 'text' (cadena de caracteres)
** @param asynchronous Indica si la llamada es as?ncrona; true -> as?ncrona; false -> s?ncrona
** @param method Es el tipo de m?todo HTTP que se har?, puede tomar los valores GET o POST
** @param params Son los par?metros que se pasan en la peticion mediante ajax si se utiliza el m?todo POST
**
** @return N/A
*/
function ajaxRequest(url, responseHandler, responseType, asynchronous, method, params){
	/*alert(url);*/
	try{
		xmlReq = newXMLHttpRequest();
		xmlReq.onreadystatechange = getReadyStateHandler(xmlReq, responseHandler, responseType);
		xmlReq.open(method, url, asynchronous);		
		xmlReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xmlReq.send(params)
	}
	catch(e){
		console.debug('excepcion: ' + e);
		return -1;
	}	   		
}

/* GETREADYSTATEHANDLER
** Descripcion: Controla el cambio de estado del atributo readyState. Cuando su valor sea 4 ya se habr? recibido la 
** respuesta del servidor.
** Parametros de Entrada: req es el objeto XMLHttpRquest, responseXmlHandler es la funcion a la que se llamara cuando se haya
** recibido respuesta por parte del servidor
** responseType es el tipo de respuesta esperada IMPORTANTE TOMA LOS VALORES 'xml' - 'text' (cadena de caracteres)
** Parametros de Salida: n.a.*/
function getReadyStateHandler(req, responseHandler, responseType) {
	try{
		return function () {
			var statusOK = 200;
			if (req.readyState == 4) {
				if ((req.status == statusOK)||(req.status == 0)) {
					if(responseType == 'text')
						responseHandler(req.responseText);						
					if(responseType == 'xml')
						responseHandler(req.responseXML);
				}
				else {
					return -1;
				}
			}
		}
	}
	catch(e){
	return -1;
	}	   
}

/* NEWXMLHTTPREQUEST
** Descripcion: Crea el objeto XMLHttpRequest compatible para cualquier navegador
** Parametros de Entrada: n.a.
** Parametros de Salida: n.a.*/
function newXMLHttpRequest(){
	try{
		var xmlreq = false;
		if(window.XMLHttpRequest){
			xmlreq = new XMLHttpRequest();
		}else if(window.ActiveXObject){
			try{
				xmlreq = new ActiveXObject("Msxml2.XMLHTTP");      
			}catch(e1){
				try{
					xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
				}catch(e2){
					xmlreq = false;
				}
			}
		}
		return xmlreq;
	}catch(e){
		return -1;
	}						
}

/* code for the news feed from the database  for home page*/
var xmlHttp

function showNEWS(str)
{ 
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
  {
  alert ("Your browser does not support AJAX!");
  return;
  } 
var url="news.asp";
/*url=url+"?q="+str;*/
url=url+"?sid="+Math.random();
/*alert(url);*/
xmlHttp.open("GET",url,true);
/*xmlHttp.onreadystatechange=stateChanged;*/
xmlHttp.send(null);
}

/*function stateChanged() 
{ 
if (xmlHttp.readyState==4)
{ 
document.getElementById("txtNews").innerHTML=xmlHttp.responseText;
}
}*/

function GetXmlHttpObject()
{
var xmlHttp=null;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
return xmlHttp;
}

/*CODE TO GET THE SHARE PRICE FEED*/
function showSHARE(str)
{ 
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
  {
  alert ("Your browser does not support AJAX!");
  return;
  } 
var url="stock.asp";
/*url=url+"?q="+str;*/
url=url+"?sid="+Math.random();
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange=stateChanged2;
xmlHttp.send(null);
}

function stateChanged2() 
{ 
if (xmlHttp.readyState==4)
{ 
document.getElementById("txtSHARE").innerHTML=xmlHttp.responseText;
}
}

/* code for the news feed from the database for news page*/
function showALLNEWS(str)
{ 
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
  {
  alert ("Your browser does not support AJAX!");
  return;
  } 
var url="news_all.asp";
/*url=url+"?q="+str;*/
url=url+"?sid="+Math.random();
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange=stateChanged3;
xmlHttp.send(null);
}

function stateChanged3() 
{ 
if (xmlHttp.readyState==4)
{ 
document.getElementById("contenidoPaginaSinMenu").innerHTML=xmlHttp.responseText;
}
}

/* code for the news feed from the database selected news item*/
function showselectedNEWS(str)
{ 
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
  {
  alert ("Your browser does not support AJAX!");
  return;
  }
var url="news_selected.asp";
url=url+"?id="+str;
url=url+"&sid="+Math.random();
/*alert(url);*/
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange=stateChanged4;
xmlHttp.send(null);
}

function stateChanged4() 
{ 
if (xmlHttp.readyState==4)
{ 
document.getElementById("contactodesarrollado").innerHTML=xmlHttp.responseText;
}
}




