//\/////
//\  coolTip Anchor Plugin
//\  This file requires coolTip 1.00 or later.
//\  Modified August 21, 2006
//\
//\  You may not remove or change this notice.
//\  Copyright Robert E Boughner 2005. All rights reserved.
//\  
//\  This plugin is governed by the same restrictions set forth
//\  in the prologue to cCore.js.
//\/////
//\  THIS IS A VERY MODIFIED VERSION. DO NOT EDIT OR PUBLISH. GET THE ORIGINAL!
if(typeof cInfo==cUdf||!cInfo.meets(1.00))alert('coolTip 1.00 or later is required for the Anchor Plugin.');else{registerCommands('anchor,anchorx,anchory,noanchorwarn,anchoralign');
setDefaultVariables('anchor||anchorx|0|anchory|0|noanchorwarn|1|anchoralign|UL');
var mrkObj,rmrkPosition;
function setAnchorVariables(obj){obj.anchor=cd_anchor;obj.anchorx=cd_anchorx;obj.anchory=cd_anchory;obj.noanchorwarn=cd_noanchorwarn;obj.anchoralign=cd_anchoralign;mrkObj=null;}
function parseAnchorExtras(pf,i,ar){var v,k=i,w;if(k<ar.length){if(ar[k]==ANCHOR){eval(pf+"anchor='"+escSglQuote(ar[++k])+"'");return k;}
if(ar[k]==ANCHORX){eval(pf+'anchorx='+ar[++k]);return k;}
if(ar[k]==ANCHORY){eval(pf+'anchory='+ar[++k]);return k;}
if(ar[k]==NOANCHORWARN){eval(pf+'noanchorwarn=('+pf+'noanchorwarn==1)?0:1');return k;}
if(ar[k]==ANCHORALIGN){k=opt_MULTIPLEARGS(++k,ar,(pf+'anchoralign')); return k;}}
return-1;}
function checkAnchorObject(){with(po){if(anchor){if(!(mrkObj=getAnchorObjRef(anchor))){if(noanchorwarn){alert('WARNING!  Reference mark "'+anchor+'" not found.');return false;}else anchor='';}}}
return true;}
function anchorHorizontal(browserWidth,horizontalScrollAmount,widthFix){with(po){if(!anchor)return void(0);if(typeof followscroll!=cUdf&&followscroll&&sticky)relx=rmrkPosition[0];}
return rmrkPosition[0];}
function anchorVertical(browserHeight,verticalScrollAmount){with(po){if(!anchor)return void(0);if(typeof followscroll!=cUdf&&followscroll&&sticky)rely=rmrkPosition[1];}
return rmrkPosition[1];}
function anchorPreface(){if(!mrkObj)return;rmrkPosition=getAnchorLocation(mrkObj);}
function getAnchorObjRef(aObj){return getRefById(aObj,cFrame.document)||getRefByName(aObj,cFrame.document)}
function getAnchorLocation(objRef){var mkObj,of,offsets,mlyr
mkObj=mlyr=objRef
offsets=[po.anchorx,po.anchory]
if(document.layers){if(typeof mlyr.length!=cUdf&&mlyr.length>1){mkObj=mlyr[0]
offsets[0]+=mlyr[0].x+mlyr[1].pageX
offsets[1]+=mlyr[0].y+mlyr[1].pageY
}else{if(mlyr.toString().indexOf('Image')!=-1||mlyr.toString().indexOf('Anchor')!=-1){offsets[0]+=mlyr.x
offsets[1]+=mlyr.y
}else{offsets[0]+=mlyr.pageX
offsets[1]+=mlyr.pageY}}
}else{offsets[0]+=pageLocation(mlyr,'Left')
offsets[1]+=pageLocation(mlyr,'Top')}
of=getAnchorOffsets(mkObj)
with(po){if(typeof dragimg!=cUdf&&dragimg){return offsets;}}
offsets[0]+=of[0]
offsets[1]+=of[1]
return offsets}
function getAnchorOffsets(mkObj){var fx=fy=0,mc=0,mp,puc,mkAry,sx=sy=0;var mW=mH=pW=pH=0
var off=[0,0]
mkAry=po.anchoralign.split(',');if(mkAry.length<3){mp=mkAry[0].toUpperCase();puc=(mkAry.length==1)?mp:mkAry[1].toUpperCase();}else if(mkAry.length==3){if(!isNaN(mkAry[0])){mp=mkAry.slice(0,2);puc=mkAry[2].toUpperCase();}else{mp=mkAry[0].toUpperCase();puc=mkAry.slice(1);}
}else{mp=mkAry.slice(0,2);puc=mkAry.slice(2);}
with(po){var shdwPresent=typeof shadow!=cUdf&&shadow
if(shdwPresent){sx=Math.abs(shadowx);sy=Math.abs(shadowy);}
pW=(shdwPresent?parseInt(width):(cNs4?cTip.clip.width:cTip.offsetWidth))
pH=(shdwPresent?parseInt(aboveheight):(cNs4?cTip.clip.height:cTip.offsetHeight))
if(cOp&&wrap){pW=(shdwPresent?parseInt(width):(cNs4?cTip.clip.width:cTip.offsetWidth))
pH=(shdwPresent?parseInt(aboveheight):(cNs4?cTip.clip.height:cTip.offsetHeight))}}
if(!cOp&&mkObj.toString().indexOf('Image')!=-1){mW=mkObj.width
mH=mkObj.height
if(mkObj.border&&(cNs4||cNs6))mc=2*parseInt(mkObj.border)
}else if(!cOp&&mkObj.toString().indexOf('Anchor')!=-1){mp='UL'
}else{mW=(cNs4)?mkObj.clip.width:mkObj.offsetWidth
mH=(cNs4)?mkObj.clip.height:mkObj.offsetHeight
if(!(cNs4||cNs6)&&mkObj.tagName=='IMG'&&mkObj.border)mc=(cOp?2:1)*parseInt(mkObj.border);}
if(!isNaN(mp)||typeof mp=='object'){if(typeof mp=='object'){fx=parseFloat(mp[0]);fy=parseFloat(mp[1]);}else fx=fy=parseFloat(mp);off=[Math.round(fx*(mW+mc)),Math.round(fy*(mH+mc))];}else{if(mp=='UR')off=[(mW+mc),0]
else if(mp=='LL')off=[0,(mH+mc)]
else if(mp=='LR')off=[(mW+mc),(mH+mc)]}
if(typeof po.dragimg!=cUdf&&po.dragimg)return off;else{if( !isNaN(puc)||typeof puc=='object' ){if(typeof puc=='object'){fx=parseFloat(puc[0]);fy=parseFloat(puc[1]);}else fx=fy=parseFloat(puc);off[0]-=Math.round(fx*(pW-sx));off[1]-=Math.round(fy*(pH-sy));}else{if(puc=='UR'){off[0]-=(pW-sx);off[1]-=sy}
else if(puc=='LL'){off[0]-=sx;off[1]-=(pH-sy)}
else if(puc=='LR'){off[0]-=(pW-sx);off[1]-=(pH-sy)}}
return off}}
function pageLocation(o,t){var x=0
while(o.offsetParent){x+=o['offset'+t]
o=o.offsetParent}
x+=o['offset'+t]
return x}
function getRefById(l,d){var r="",j
d=(d||document)
if(d.all)return d.all[l]
else if(d.getElementById)return d.getElementById(l)
else if(d.layers&&d.layers.length>0){if(d.layers[l])return d.layers[l]
for(j=0;j<d.layers.length;j++){r=getRefById(l,d.layers[j].document)
if(r)return r}}
return false}
function getRefByName(l,d){var r=null,j
d=(d||document)
if(d.images[l])return d.images[l]
else if(d.anchors[l])return d.anchors[l];else if(d.layers&&d.layers.length>0){for(j=0;j<d.layers.length;j++){r=getRefByName(l,d.layers[j].document)
if(r&&r.length>0)return r
else if(r)return [r,d.layers[j]]}}
return null}
registerRunTimeFunction(setAnchorVariables);registerCmdLineFunction(parseAnchorExtras);registerPostParseFunction(checkAnchorObject);registerHook("ctCreatePopup",anchorPreface,FAFTER);registerHook("horizontalPlacement",anchorHorizontal,FCHAIN);registerHook("verticalPlacement",anchorVertical,FCHAIN);if(cInfo.meets(1.00))registerNoParameterCommands('noanchorwarn');}
