/*

  TIPSTER v3.1beta (c) 2001-2003 Angus Turnbull. All Rights Reserved.
  This notice may not be removed. See http://www.twinhelix.com for licensing and more scripts!

*/

var isDOM=document.getElementById?1:0;
var isIE=document.all?1:0;
var isNS4=navigator.appName=='Netscape'&&!isDOM?1:0;
var isOp=window.opera?1:0;
var isDyn=isDOM||isIE||isNS4;
function getRef(id,par)
{
par=!par?document:(par.navigator?par.document:par);
return isIE?par.all[id]:
(isDOM?(par.getElementById?par:par.ownerDocument).getElementById(id):
(isNS4?par.layers[id]:null));
}
function getSty(id,par)
{
var r=getRef(id,par);
return r?(isNS4?r:r.style):null;
}
if(!window.LayerObj)var LayerObj=new Function('id','par',
'this.ref=getRef(id,par);this.sty=getSty(id,par);return this');
function getLyr(id,par){return new LayerObj(id,par)}
function LyrFn(fn,fc)
{
LayerObj.prototype[fn]=new Function('var a=arguments,p=a[0],px=isNS4||isOp?0:"px";'+
'with(this){'+fc+'}');
}
LyrFn('x','if(!isNaN(p))sty.left=p+px;else return parseInt(sty.left)');
LyrFn('y','if(!isNaN(p))sty.top=p+px;else return parseInt(sty.top)');
LyrFn('w','if(p)(isNS4?sty.clip:sty).width=p+px;'+
'else return(isNS4?ref.document.width:ref.offsetWidth)');
LyrFn('h','if(p)(isNS4?sty.clip:sty).height=p+px;'+
'else return(isNS4?ref.document.height:ref.offsetHeight)');
LyrFn('vis','sty.visibility=p');
LyrFn('write','if(isNS4)with(ref.document){write(p);close()}else ref.innerHTML=p');
LyrFn('alpha','var f=ref.filters,d=(p==null);if(f){'+
'if(!d&&sty.filter.indexOf("alpha")==-1)sty.filter+=" alpha(opacity="+p+")";'+
'else if(f.length&&f.alpha)with(f.alpha){if(d)enabled=false;else{opacity=p;enabled=true}}}'+
'else if(isDOM)sty.MozOpacity=d?"":p/100');
if(!window.page)var page={win:window,minW:0,minH:0,MS:isIE&&!isOp,
db:document.compatMode&&document.compatMode.indexOf('CSS')>-1?'documentElement':'body'}
page.winW=function()
{with(this)return Math.max(minW,MS?win.document[db].clientWidth:win.innerWidth)}
page.winH=function()
{with(this)return Math.max(minH,MS?win.document[db].clientHeight:win.innerHeight)}
page.scrollY=function()
{with(this)return MS?win.document[db].scrollTop:win.pageYOffset}
page.scrollX=function()
{with(this)return MS?win.document[db].scrollLeft:win.pageXOffset}
function TipObj(myName)
{
this.myName=myName;
this.template='';
this.tips=new Array();
this.parentObj=null;
this.div=null;
this.actTip='';
this.showTip=false;
this.xPos=this.yPos=this.sX=this.sY=this.mX=this.mY=0;
this.trackTimer=this.fadeTimer=0;
this.alpha=0;
this.doFades=true;
this.minAlpha=0;
this.maxAlpha=100;
this.fadeInSpeed=20;
this.fadeOutSpeed=20;
this.tipStick=1;
this.showDelay=50;
this.hideDelay=250;
TipObj.list[myName]=this;
}
TipObj.list=[];
with(TipObj)
{
prototype.track=function(evt){with(this)
{
evt=evt?evt:window.event;
sX=page.scrollX();
sY=page.scrollY();
mX=isNS4?evt.pageX:sX+evt.clientX;
mY=isNS4?evt.pageY:sY+evt.clientY;
if(tipStick==1)position();
}}
prototype.position=function(forcePos){with(this)
{
if(!actTip)return;
var wW=page.winW(),wH=page.winH();
if(!isIE||isOp){wW-=16;wH-=16}
var t=tips[actTip],tipX=eval(t[0]),tipY=eval(t[1]),tipW=div.w(),tipH=div.h(),adjY=1;
if(typeof(t[0])=='number')tipX+=mX;
if(typeof(t[1])=='number')tipY+=mY;
if(tipX+tipW+5>sX+wW)tipX=sX+wW-tipW-5;
if(tipY+tipH+5>sY+wH)tipY=sY+wH-tipH-5;
if(tipX<sX+5)tipX=sX+5;
if(tipY<sY+5)tipY=sY+5;
if((!showTip&&(doFades?!alpha:true))||forcePos)
{
xPos=tipX;
yPos=tipY;
}
xPos+=(tipX-xPos)*tipStick;
yPos+=(tipY-yPos)*tipStick;
div.x(xPos);
div.y(yPos);
}}
prototype.replaceContent=function(tipN){with(this)
{
actTip=tipN;
if(tipStick==parseInt(tipStick))
{
var rE='';
if(isNS4)
{
div.ref.captureEvents(Event.MOUSEOVER|Event.MOUSEOUT);
rE=';return this.routeEvent(evt)';
}
div.ref.onmouseover=new Function('evt',myName+'.show("'+tipN+'"'+
(parentObj?','+parentObj.myName:'')+')'+rE);
div.ref.onmouseout=new Function('evt',myName+'.hide()'+rE);
}
position(true);
var str=template;
for(var i=0;i<tips[tipN].length;i++)
str=str.replace(new RegExp('%'+i+'%','g'),tips[tipN][i]);
if(isDOM&&!isOp)div.sty.width='auto';
div.write(str+(isIE&&!window.external?'<small><br/></small>':''));
}}
prototype.show=function(tipN,par){with(this)
{
if(!isDyn)return;
clearTimeout(fadeTimer);
parentObj=par;
if(par)par.show(par.actTip,par.parentObj);
if(!div)div=getLyr(myName+'Layer');
if(!div)return;
clearInterval(trackTimer);
if(tipStick!=parseInt(tipStick))trackTimer=setInterval(myName+'.position()',50);
var showStr='with('+myName+'){showTip=true;'+
(actTip!=tipN?'replaceContent("'+tipN+'");':'')+'fade()}';
if(showDelay&&!actTip)fadeTimer=setTimeout(showStr,showDelay);
else eval(showStr);
}}
prototype.newTip=function(tName){with(this)
{
if(!tips[tName])tips[tName]=[];
for(var i=1;i<arguments.length;i++)tips[tName][i-1]=arguments[i];
show(tName);
}}
prototype.hide=function(){with(this)
{
clearTimeout(fadeTimer);
if(!isDyn||!actTip||!div)return;
if(isNS4&&tipStick==0&&xPos<=mX&&mX<=xPos+div.w()&&yPos<=mY&&mY<=yPos+div.h())
return;
with(tips[actTip])if(parentObj)parentObj.hide();
fadeTimer=setTimeout('with('+myName+'){showTip=false;fade()}',hideDelay);
}}
prototype.fade=function(){with(this)
{
clearTimeout(fadeTimer);
if(showTip)
{
div.vis('visible');
if(doFades)
{
alpha+=fadeInSpeed;
if(alpha>maxAlpha)alpha=maxAlpha;
div.alpha(alpha);
if(alpha<maxAlpha)fadeTimer=setTimeout(myName+'.fade()',75);
}
}
else
{
if(doFades&&alpha>minAlpha)
{
alpha-=fadeOutSpeed;
if(alpha<minAlpha)alpha=minAlpha;
div.alpha(alpha);
fadeTimer=setTimeout(myName+'.fade()',75);
return;
}
div.vis('hidden');
actTip='';
clearInterval(trackTimer);
}
}}
}
var tipOR=window.onresize,nsWinW=window.innerWidth,nsWinH=window.innerHeight;
document.tipMM=document.onmousemove;
if(isNS4)document.captureEvents(Event.MOUSEMOVE);
document.onmousemove=function(evt)
{
for(var t in TipObj.list)TipObj.list[t].track(evt);
if(isNS4)return document.tipMM?document.tipMM(evt):document.routeEvent(evt);
}
window.onresize=function()
{
if(tipOR)tipOR();
if(isNS4&&(nsWinW!=innerWidth||nsWinH!=innerHeight))location.reload()
}
