
InfoBox={
boxFadeSpeed:0.1,
lastMouseOver:null,

mouseOut:true, //mouse out or over

Box:function() {
	return document.getElementById('InfoBoxTable');
},
BoxTxt:function() {
	return document.getElementById('InfoBoxTxt');
},
Show:function(show) {
	this.Box().style.display=show?'block':'none';
},

GetObjFromEvent:function(e) {
	if(!e) { e=window.event; }
	obj=e.srcElement?e.srcElement:e.target;
	if(obj.id=="") {
		return obj.parentNode;
	}
	return obj;
},
GetTxtFromEvent:function(e) {
	var obj=this.GetObjFromEvent(e);
	var txtObj=document.getElementById('txt_'+obj.id);
	if(!txtObj) { return null; }
	return txtObj.innerHTML;
//	var spans=obj.getElementsByTagName('span');
//	if(!spans || spans.length<=0 || spans[0].className!='InfoBoxHidden') { return null; }
//	return spans[0].innerHTML;
},

DisplayInfoBox:function(obj,txt) {
	document.getElementById('InfoBoxTxt').innerHTML=txt;
	var infoBox=this.Box();
	infoBox.style.display='inline';
	infoBox.style.position='absolute';
	var pos=Position.get(obj);
	pos.top-=44;
	var winwidth=document.body.offsetWidth?document.body.offsetWidth:window.innerWidth;
	var winwidth2=(winwidth/2)-60;
	var right=false;
//alert(pos.left+','+winwidth2);
	if((pos.left)>=winwidth2) {
//	if((pos.left+obj.offsetWidth)>=winwidth2) {
		right=true;
		pos.left-=infoBox.offsetWidth;
	} else {
		pos.left+=obj.offsetWidth;
	}

	Position.set(infoBox,pos);

	document.getElementById('InfoBoxArrowLeft').style.display=(!right)?'block':'none';
	document.getElementById('InfoBoxArrowRight').style.display=right?'block':'none';
},
MouseOver:function(e) {
	var obj=this.GetObjFromEvent(e);
	var txt=this.GetTxtFromEvent(e);
	if(txt==null) { return; }
	this.DisplayInfoBox(obj,txt);
},
CloseInfoBox:function() {
	var box=this.Box();
	box.style.display='none';
	this.boxFade=0;
	this.SetOpacity(box);
},
MouseOut:function(e) {
	this.CloseInfoBox();
},
AddMouseOver:function(obj,txt) {
//	var spans=obj.getElementsByTagName('span');
//	if(spans && spans.length>0 && spans[0].className=='InfoBoxHidden') { return; }
	var txtid='txt_'+obj.id;
	if(document.getElementById(txtid)) { return; }
	var txtObj=document.createElement('span');
	txtObj.innerHTML=txt;
	txtObj.className='InfoBoxHidden';
	txtObj.id=txtid;
	document.getElementById('InfoBoxHiddenTxts').appendChild(txtObj);
	this.browserSafeAttachEvent(obj,'mouseover',function(e) {
		InfoBox.MouseOver(e);
	});
	this.browserSafeAttachEvent(obj,'mouseout',function(e) {
		InfoBox.MouseOut(e);
	});
},

boxFade:0,
SetOpacity:function(box) {
	box.style.opacity=this.boxFade;
	box.style.filter='alpha(opacity=' + (this.boxFade*100) + ')';
},
OpacityTick:function() {
	var wait=250;
	var box=this.Box();

	if(box.style.display!="none" && this.boxFade<1) {
		// we want to fade
		this.boxFade+=this.boxFadeSpeed;
		if(this.boxFade>=1) { this.boxFade=1; }
		this.SetOpacity(box);
		wait=50;
	}
	window.setTimeout(function() {
		InfoBox.OpacityTick();
	},wait);
},

Setup:function() {
	this.SetOpacity(this.Box());
	this.OpacityTick();
},

browserSafeAttachEvent:function (eventInp,func,eventFunc) {
	if(eventInp.attachEvent) {
		eventInp.attachEvent('on'+func,eventFunc);
	} else if(eventInp.addEventListener) {
		eventInp.addEventListener(func,eventFunc,false);
	}
}


};
InfoBox.Setup();


