var ns = false;
var ie = false;
var idUltimaPeticion = "";

//obtenemos el navegador
ns = (document.layers)? true:false;
ie = (document.all)? true:false;

function mostrarTooltip(evento, codigoHTML)
{
	if (ie && document.readyState=="complete") //IE
	{
		document.all.tooltipPromociones.innerHTML=codigoHTML
		document.all.tooltipPromociones.style.pixelLeft=evento.clientX+document.body.scrollLeft+10
		document.all.tooltipPromociones.style.zIndex=1

		/* si no podemos mostrar la ventana entera por arriba de donde ha clicado el usuario
		   la mostramos por abajo
		*/
		if ((evento.clientY) > 140)
			document.all.tooltipPromociones.style.pixelTop=evento.clientY+document.body.scrollTop-130
		else
			document.all.tooltipPromociones.style.pixelTop=evento.clientY+document.body.scrollTop+10
			document.all.tooltipPromociones.style.visibility="visible"
	}
	else if (ns) //Netscape
	{
		document.tooltipPromociones.document.layerNetscape.document.write('<b>'+codigoHTML+'</b>')
		document.tooltipPromociones.document.layerNetscape.document.close()
		document.tooltipPromociones.document.layerNetscape.left=0
		document.tooltipPromociones.left=evento.pageX+10
		document.tooltipPromociones.top=evento.pageY+10
		document.tooltipPromociones.visibility="show"
	}
}
	
function ocultarTooltip(idPeticion)
{
	/* sólo ocultaremos el tooltip si quién lo quiere ocultar es el mismo que lo
	   mostró anteriormente. En caso contrario, sería posible que se estuviese
	   mostrando información de una nueva petición y la anterior ocultase el nuevo
	   tooltip
	*/
	if (idPeticion == idUltimaPeticion)
	{
		if (ie) //IE
			document.all.tooltipPromociones.style.visibility="hidden"
		else if (ns) //Netscape
			document.tooltipPromociones.visibility="hidden"
	}
}
	
function esperarYOcultarTooltip(idPeticion)
{
	/* primero miramos si la capa está visible y en ese caso hacemos una pausa
	   de 2 segundos antes de hacerla invisible
	*/
	if (ie) //IE
	{
		if (document.all.tooltipPromociones.style.visibility=="visible")
			setTimeout('ocultarTooltip("' + idPeticion + '")', 2000);
	}
	else if (ns) //Netscape
		 {
		 	if (document.tooltipPromociones.visibility=="show")
		 		setTimeout('ocultarTooltip("' + idPeticion + '")', 2000);
		 }
}
	
function invocarServicio(URL, idPeticion)
{
	//guardamos el identificador de quién realiza la invocación
	idUltimaPeticion = idPeticion;
	
	/* invocamos al servlet en una ventana nueva que hacemos que no pueda ver el usuario.
	   Después, en un bucle esperamos la respuesta para mostrar el resultado. En principio sabemos que ya se
	   ha servido la página porque contiene el tag "/BODY"
	*/		
	var doc;
	var dteFinal;
	var intI=0;
	var formatWin;
	window.focus();
	formatWin = window.open(encodeURL(URL), 'ConsultaPromocions', 'width=1, height=1,left='+window.screenLeft+',top=' + (window.screenTop +document.body.offsetHeight-150)+ ',z-lock=1');
	//retornamos el foco a la ventana padre
	window.focus();
		
	while (formatWin==null || formatWin.document==null || formatWin.document.body==null ||
    	   formatWin.document.body.parentNode==null || formatWin.document.body.parentNode.innerHTML==null ||
    	   formatWin.document.body.parentNode.innerHTML.indexOf("</BODY>")<0 ||
    	   dteFinal==null || dteFinal.getTime()>(new Date()).getTime())
    { 
    	if (formatWin!=null && formatWin.document!=null && formatWin.document.body!=null &&
    	   formatWin.document.body.parentNode!=null && formatWin.document.body.parentNode.innerHTML!=null)
    	   {
    	   	if (intI==0)
    	   	{
	    	   	dteFinal=new Date();
	    	   	dteFinal.setTime(dteFinal.getTime()+1000);
	    	}
    	   	intI++;
    	   }
    }

	//obtenemos el código HTML de la página resultante y la cerramos
	doc=formatWin.document.body.parentNode.innerHTML;
	formatWin.close();
	/* mostramos la capa que tenemos oculta con la información que hemos obtenido. 
	   Si ha expirado la sesión el documento HTML vendrá vacío, en ese caso no mostramos la capa
	*/
	if (doc.indexOf("<BODY></BODY>")<0)
		mostrarTooltip(event, doc);
}
