var d=document
var FEM={
tid:null,
id:false,
show:function(v,id,el){
//	if(this.id==id){this.hide();return}
	if(this.id!=id)this.hide()
	this.id=id
	var e=EV.ev(v),o=d.getElementById(id)
	if(!o)return
	var s=o.style
	s.display="block"
	var w=o.offsetWidth,h=o.offsetHeight,t=0,l=0,w2=0,h2
	if(el){
		w2=el.offsetWidth
		h2=el.offsetHeight
		while(el.tagName!="BODY" && el.tagName!="HTML"){
			var y=el.style.top,x=el.style.left
			t+=(y!="")?y.substring(1,y.length-2)*1:el.offsetTop
			l+=(x!="")?x.substring(1,x.length-2)*1:el.offsetLeft		
			el=el.offsetParent
		}
	}else{
		t=e.clientY;l=e.clientX
		w2=e.offsetWidth
		h2=e.offsetHeight
	}
	w2=w2+2
	//alert(s.width)
	s.left=d.body.scrollLeft+l//(d.body.clientWidth-l<w)?d.body.scrollLeft+l-w:d.body.scrollLeft+l
	s.top=t+h2+2
	s.width='220px';//w2
	window.status=l
	//this.selects(0)
	e.stopPropagation()
	return false
},
hide:function(){
	if(!this.id)return
	//this.selects(1)
	o=d.getElementById(this.id)
	if(!o)return
	o.style.display="none"
	this.id=null
},
selects:function(m){
	var i,b=document.getElementsByTagName('SELECT')
	for(i=0;i<b.length;i++){if(FEM.intersect(b[i]))b[i].style.visibility=m?'visible':'hidden'}
},
intersect:function(o){
	var o1=getCoord(d.getElementById(this.id)),o2=getCoord(o)
	var cx=o1.x>o2.x?o1.x<o2.x+o2.w:o1.x+o1.w>o2.x,cy=o1.y>o2.y?o1.y<o2.y+o2.h:o1.y+o1.h>o2.y
	return cx&&cy
},
clearT:function(){
	clearTimeout(this.tid)
},
runT:function(){
	this.tid=setTimeout("FEM.hide()",500);
},
docOnclick:function(e){
	e=EV.ev(e)
	e=e.src
	alert(FEM.id)
	if(e){
		while(e&&e.nodeName!='BODY'){if(e.id==FEM.id)return;e=e.parentNode}
	}
	FEM.hide()
}
}
function getCoord(o){
	var o2={w:o.offsetWidth,h:o.offsetHeight,x:o.offsetLeft,y:o.offsetTop}
	var p=o.offsetParent
	while(p!=null){o2.y+=p.offsetTop;o2.x+=p.offsetLeft;p=p.offsetParent}
	return o2
}
CEl=function(tagName,parent,doc){
	if(!doc)doc=document
	var el=doc.createElement(tagName)
	if(parent)parent.appendChild(el)
	return el
}
var EV={
	add:function(o,t,fp,cap){
		cap=cap||false
		if(o.addEventListener)o.addEventListener(t,fp,cap)
		else if(o.attachEvent)o.attachEvent('on'+t,fp)
	}, 
	remove:function(o,t,fp,cap){
		cap=cap||false
		if(o.removeEventListener)o.removeEventListener(t,fp,cap)
		else if(o.detachEvent)o.detachEvent('on'+t,fp)
	},
	ev:function(e){ 
		e=e?e:window.event
		if(!e)return
		e.src=e.srcElement?e.srcElement:e.target
		if(!e.preventDefault)e.preventDefault=function(){return false}
		if(!e.stopPropagation)e.stopPropagation=function(){
			if(window.event)window.event.cancelBubble=true;
		}
		return e
	}
}

function getE(id){return document.getElementById(id)}