function lib_bwcheck(){ //Browsercheck (needed)
	this.ver	=navigator.appVersion
	this.agent	=navigator.userAgent
	this.dom	=document.getElementById?1:0
	this.opera5	=this.agent.indexOf("Opera 5")>-1
	this.ie5	=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; 
	this.ie6	=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
	this.ie4	=(document.all && !this.dom && !this.opera5)?1:0;
	this.ie		=this.ie4||this.ie5||this.ie6
	this.mac	=this.agent.indexOf("Mac")>-1
	this.ns6	=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
	this.ns4	=(document.layers && !this.dom)?1:0;
	this.bw		=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5)
	return this
}
var bw=new lib_bwcheck()

/***************************************************************************************
Variables to set:
***************************************************************************************/
fromX = 0 //How much from the actual mouse X should the description box appear?
fromY = 20 //How much from the actual mouse Y should the description box appear?

//To set the font size, font type, border color or remove the border or whatever,
//change the clDescription class in the stylesheet.

//Makes crossbrowser object.
function makeObj(obj){								
   	this.evnt	=bw.dom? document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?document.layers[obj]:0;
	if(!this.evnt) return false
	this.css	=bw.dom||bw.ie4?this.evnt.style:bw.ns4?this.evnt:0;	
   	this.wref	=bw.dom||bw.ie4?this.evnt:bw.ns4?this.css.document:0;		
	this.writeIt= b_writeIt;
	return this
}

// A unit of measure that will be added when setting the position of a layer.
var px = bw.ns4||window.opera?"":"px";

function b_writeIt(text){
	if (bw.ns4){this.wref.write(text);this.wref.close()}
	else this.wref.innerHTML = text 
}

//Capturing mousemove
var descx = 0
var descy = 0
function popmousemove(e){
	descx = bw.ns4||bw.ns6 ? e.pageX : event.x; 
	descy = bw.ns4||bw.ns6 ? e.pageY : event.y;
}
	
var oDesc;
//Shows the messages

function findPosX(obj){
	var curleft = 0;
	while (obj.offsetParent){
		curleft += obj.offsetLeft;
		obj = obj.offsetParent;
	}
	return curleft;
}
	
function findPosY(obj){
	var curtop = 0;
	while (obj.offsetParent){
		curtop += obj.offsetTop;
		obj = obj.offsetParent;
	}
	return curtop;
}
		
function popup(num){
    if(oDesc){
		oDesc.writeIt('<div class="clDescription">'+num+'</div>')
		if(bw.ie5||bw.ie6) descy = descy+document.body.scrollTop
		oDesc.css.left = (descx+fromX)+px
		oDesc.css.top = (descy+fromY)+px
		oDesc.css.visibility = "visible";
		
		//oDesc.css.width = document.body.clientWidth-(descx+fromX)-10;
					  
		if (document.forms[0]){
			for (i=0; i<document.forms[0].elements.length; i++){
				obj = document.forms[0].elements[i];
				
				if (obj.tagName == "SELECT"){
					var left = findPosX(obj);
					var top  = findPosY(obj);
					
					if ((descx+fromX) < left && (descy+fromY+20) >= top && (descy+fromY) < (top+20)){
						obj.style.visibility = 'hidden';
					} else {
						obj.style.visibility = 'visible';
					}
					
					//alert(oDesc.style.pixelWidth);
				}
			}
		}
    }
}

//Hides it
function popout(){
	if(oDesc) oDesc.css.visibility = "hidden";
	
	if (document.forms[0]){
		for (i=0; i<document.forms[0].elements.length; i++){
			obj = document.forms[0].elements[i];
				
			if (obj.tagName == "SELECT"){
				obj.style.visibility = 'visible';
			}
		}
	}
}

function setPopup(){
   	if(bw.ns4)document.captureEvents(Event.MOUSEMOVE)
    document.onmousemove = popmousemove;
	oDesc = new makeObj('divDescription')
	
	// Allow clicks on A elements inside tooltip	
	document.onmousedown = function (e){
		if (!e)	e = event;		
		var t = e.target ? e.target : e.srcElement;
		if (t.tagName != "A" && t.tagName != "DIV"){
			popout();
		}
	}	
}


