// 1k DHTML API - standards version
// 1k DHTML API
d=document;l=(d.layers)?1:0;op=navigator.userAgent.toLowerCase().indexOf('opera')!=1
function gE(e,f){if(l){f=(f)?f:self;V=f.document.layers;if(V[e])return V[e];for(W=0;W<V.length;)return(gE(e,V[W++]));}if(d.all)return d.all[e];return d.getElementById(e);}
function sE(e){if(l)e.visibility='show';else e.style.visibility='visible';}
function hE(e){if(l)e.visibility='hide';else e.style.visibility='hidden';}
function sZ(e,z){if(l)e.zIndex=z;else e.style.zIndex=z;}
function sX(e,x){if(l)e.left=x;else if(op)e.style.pixelLeft=x;else e.style.left=x;}
function sY(e,y){if(l)e.top=y;else if(op)e.style.pixelTop=y;else e.style.top=y;}
function sW(e,w){if(l)e.clip.width=w;else if(op)e.style.pixelWidth=w;else e.style.width=w;}
function sH(e,h){if(l)e.clip.height=h;else if(op)e.style.pixelHeight=h;else e.style.height=h;}
function sC(e,t,r,b,x){if(l){X=e.clip;X.top=t;X.right=r;X.bottom=b;X.left=x;}else e.style.clip='rect('+t+' '+r+' '+b+' '+x+')';}
function wH(e,h){if(l){Y=e.document;Y.write(h);Y.close();}if(e.innerHTML)e.innerHTML=h;}

// floating object functions by wallace mcgee - wmcs@senet.com.au - 21/8/01
ts=6;
ti=50; 
//wm I changed -1 to 1 so IE5 would work! ts=slowdown rate for gT() ti=timer interval in miliseconds 50 is optimal??

function gX(e){if(l)return e.left;else if(op)return e.style.pixelLeft;else return e.style.left;} // wm get objects X
function gY(e){if(l)return e.top;else if(op)return e.style.pixelTop;else return e.style.top;} // wm get objects Y

function sT(e,t){e.id=setInterval('gT('+t+');',ti);} // wm set timer to start floating, calling gT() until the destination x,y is reached..
function gT(e,x,y){o=gX(e);a=parseInt((o-x)/ts);if(o!=x)sX(e,o-a);o=gY(e);b=parseInt((o-y)/ts);if(o!=y)sY(e,o-b);if(a==0&&b==0){clearInterval(e.id);}} // wm goto/float position set by timer sT()..

function a(t){alert(t);} // dialog .. mainly for debugging..
function w(t){window.status=t;} // simple status bar info.. mainly for debugging..
