
function declare_tip(tip_id,span_id){span=document.getElementById(span_id);span.tip_id=tip_id;span.onmousemove=move_tip;span.onmouseout=hide_tip;}
function declare_clip(tip_id,span_id,stable){span=document.getElementById(span_id);clip=document.getElementById(tip_id);span.tip_id=tip_id;span.onclick=show_tip;clip.tip_id=tip_id;if(!stable){clip.onclick=hide_tip;}
clip.style.visibility="hidden";}
function findPosX(obj)
{var curleft=0;if(obj.offsetParent)
{while(obj.offsetParent)
{curleft+=obj.offsetLeft
obj=obj.offsetParent;}}
else if(obj.x)
curleft+=obj.x;return curleft;}
function findPosY(obj)
{var curtop=0;if(obj.offsetParent)
{while(obj.offsetParent)
{curtop+=obj.offsetTop
obj=obj.offsetParent;}}
else if(obj.y)
curtop+=obj.y;return curtop;}
function declare_mtip(tip_id,span_name){spans=document.getElementsByName(span_name);for(i=0;i<spans.length;i++){span=spans[i];span.tip_id=tip_id;span.onmousemove=move_tip;span.onmouseout=hide_tip;}}
function show_tip(ev){tip=document.getElementById(this.tip_id);if(tip.style.visibility!="hidden"){tip.style.visibility="hidden";}else{tip.style.visibility="visible";}
tip.style.left=findPosX(this)+"px";tip.style.top=findPosY(this)+"px";}
function move_tip(ev){if(!ev){x=event.clientX;y=event.clientY;}else{x=ev.pageX;y=ev.pageY;}
tip=document.getElementById(this.tip_id);tip.style.left=(x+10)+"px";tip.style.top=(y+10)+"px";tip.style.visibility="visible";}
function hide_tip(ev){tip=document.getElementById(this.tip_id);tip.style.visibility="hidden";}
function hide_tip_id(tip_id){tip=document.getElementById(tip_id);tip.style.visibility="hidden";}