//
// Bubblehelp infoboxes, (C) 2002 Klaus Knopper <infobox@knopper.net>
// You can copy/modify and distribute this code under the conditions
// of the GNU GENERAL PUBLIC LICENSE Version 2.
//
var IWIDTH=600  // Tip box width
var ns4         // Are we using Netscape4?
var ie4         // Are we using Internet Explorer Version 4?
var ie5         // Are we using Internet Explorer Version 5 and up?
var kon         // Are we using KDE Konqueror?
var x,y,winW,winH  // Current help position and main window size
var idiv=null   // Pointer to infodiv container
var px="px"     // position suffix with "px" in some cases

function nsfix(){setTimeout("window.onresize = rebrowse", 2000);}

function rebrowse(){window.location.reload();}

function hascss(){ return gettip('infodiv')?true:false }

function infoinit(){
 ns4=(document.layers)?true:false, ie4=(document.all)?true:false;
 ie5=((ie4)&&((navigator.userAgent.indexOf('MSIE 5')>0)||(navigator.userAgent.indexOf('MSIE 6')>0)))?true:false;
 kon=(navigator.userAgent.indexOf('konqueror')>0)?true:false;
 x=0;y=0;winW=1024;winH=768;
 idiv=null;
 //comento esta linea para que no mueva la popup al mover el mouse
// document.onmousemove = mousemove;
 if(ns4&&document.captureEvents) document.captureEvents(Event.MOUSEMOVE);
 // Workaround for just another netscape bug: Fix browser confusion on resize
 // obviously conqueror has a similar problem :-(
 if(ns4||kon){ nsfix() }
 if(ns4) { px=""; }
}

function untip(){
 if(idiv) idiv.visibility=ns4?"hide":"hidden";
 idiv=null;
}

function gettip(name){return (document.layers&&document.layers[name])?document.layers[name]:(document.all&&document.all[name]&&document.all[name].style)?document.all[name].style:document[name]?document[name]:(document.getElementById(name)?document.getElementById(name).style:0);}

// Prepare tip boxes, but don't show them yet
//function maketip(name,text){
// if(hascss()) document.write('<div id="'+name+'" name="'+name+'" style="position:absolute; visibility:hidden; z-index:20; top:0'+px+'; left:0'+px+';"><table width='+IWIDTH+' border="0" cellpadding="0" cellspacing="0" bgcolor="#000000"><tr><td class="tiptd"><table border="0" cellpadding="0" cellspacing="0" bgcolor="#ffffff"><tr><td><span class="pst"><font color="#000000">'+text+'</font></span></td></tr></table></td></tr></table></div>'+"\n");
//}

function tip(name,id){
 if(hascss()){
  if(idiv) untip();
  idiv=gettip(name);
  if(idiv){
        if (self.innerWidth)
        {
                frameWidth = self.innerWidth;
                frameHeight = self.innerHeight;
        }
        else if (document.documentElement && document.documentElement.clientWidth)
        {
                frameWidth = document.documentElement.clientWidth;
                frameHeight = document.documentElement.clientHeight;
        }
        else if (document.body)
        {
                frameWidth = document.body.clientWidth;
                frameHeight = document.body.clientHeight;
        }
		//alert('w.pY='+window.pageYOffset+", d.b.oH="+document.body.offsetHeight);
		//alert(frameWidth + ' ' + frameHeight);
		//opera y konqueror: w.p, relativo. d.b.o, absoluto igual al inner visible.
		//firefox: w.p, relativo. d.b.o, absoluto igual al total.
		//IE6: w.p, no soportado (undefined). d.b.o, absoluto igual al inner visible.
   //winW=(window.innerWidth)? window.innerWidth+window.pageXOffset-16:document.body.offsetWidth-20;
   //winH=(window.innerHeight)?window.innerHeight+window.pageYOffset  :document.body.offsetHeight;

   winW = isNaN(window.pageXOffset) ? document.body.offsetWidth : frameWidth + window.pageXOffset;
   winH = isNaN(window.pageYOffset) ? document.body.offsetHeight : frameHeight + window.pageYOffset;
    if(window.event && event.clientY && document.documentElement.scrollTop==0){
		//IE6's relative 'y' coord: event.clientY
		winH = frameHeight - event.clientY + y;
		winW = frameWidth - event.clientX + x;
	}
	if(x<=0||y<=0){ // konqueror can't get mouse position
    x=(winW-IWIDTH)/2+(window.pageXOffset?window.pageXOffset:0); y=(winH-50)/2+(window.pageYOffset?window.pageYOffset:0); // middle of window
   }
   showtip(id);
  }
 }
}

function showtip(id){
	if(isNaN(id)){id = od;}else{od = id;}
//  img = document.getElementById('bubimg'+id);
	tdpop = document.getElementById('tdpop'+id);
//  idiv.left = (((x + (img.width + 20)) > winW) ? x - (img.width + 20) : x + 20) + 'px';
//  idiv.left=(((x+600)<winW)?x+12:x-255)+px;
//  idiv.top = (((y + (img.height + 20)) > winH) ? winH - (img.height + 20) : y + 20) + 'px';
//  idiv.top=(((y+300)<winH)?y+12:y-300)+px;
  idiv.top= parseInt(id) * 27 + 'px';

  idiv.visibility=ns4?"show":"visible";
//  idiv.display="inline";
//  window.status="idiv="+idiv+"X:"+(idiv.left?idiv.left:"NAN")+", Y:"+(idiv.top?idiv.top:"NAN")+", x:"+x+", y:"+y+", winW: "+winW+", winH: "+winH+", h: "+img.height+", w: "+img.width;
}

function mousemove(e){
 if(window.event) {x=event.clientX; y=event.clientY;}
// else {x=0; y=0;}
 if((ie4||ie5) && document.documentElement && document.documentElement.scrollTop == 0)//y que no se meta Opera // Workaround for scroll offset of IE
  {
    x+=document.documentElement.scrollLeft;
    y+=document.documentElement.scrollTop;
  }
 if(document.documentElement.scrollTop==0 && document.body.scrollTop){//solo IE
 	x+=document.body.scrollLeft;
 	y+=document.body.scrollTop;
 }
 if(e)   {x=e.pageX?e.pageX:e.clientX?e.clientX:0; y=e.pageY?e.pageY:e.clientY?e.clientY:0;}
 if(idiv) showtip();
//window.status="y: "+y+" d.dE.sT: "+document.documentElement.scrollTop+", ev.cY: "+event.clientY+", e.cY: "+e.clientY+", e.pY: "+e.pageY;// anda en opera y konqueror;;; opera: d.dE.dT: anda, ev y e: relativos, e.pY: absoluto;; konqueror igual opera;

//window.status="y: "+y+" d.dE.sT: "+document.documentElement.scrollTop+", e.cY: "+e.clientY+", e.pY: "+e.pageY;// anda en FF
//alert("y: "+y+" d.dE.sT: "+document.documentElement.scrollTop+", e.cY: "+e.clientY+", e.pY: "+e.pageY);// anda en FF

//window.status="y: "+y+" d.dE.sT: "+document.documentElement.scrollTop+", ev.cY: "+event.clientY;//anda en IE, pero d.dE.sT es siempre 0
//window.status="y: "+y+" d.b.sT: "+document.body.scrollTop+", ev.cY: "+event.clientY+", ev.sY: "+event.screenY;//anda en IE, y d.b.sT muestra lo correcto
}

// Initialize after loading the page
window.onload=infoinit;

// EOF infobox.js
