]> git.sur5r.net Git - bacula/bacula/blob - gui/bacula-web/js/mini/overlib_anchor_mini.js
commit changes
[bacula/bacula] / gui / bacula-web / js / mini / overlib_anchor_mini.js
1 //\/////
2 //\  overLIB Anchor Plugin
3 //\  This file requires overLIB 4.00 or later.
4 //\
5 //\  overLIB 4.00 - You may not remove or change this notice.
6 //\  Copyright Erik Bosrup 1998-2004. All rights reserved.
7 //\  Contributors are listed on the homepage.
8 //\  See http://www.bosrup.com/web/overlib/ for details.
9 //\/////
10 if (typeof olInfo=='undefined'||olInfo.simpleversion<400) alert('overLIB 4.00 or later is required for the Anchor Plugin.');registerCommands('anchor,anchorx,anchory,noanchorwarn,anchoralign');
11 if (typeof ol_anchor=='undefined') var ol_anchor='';if (typeof ol_anchorx=='undefined') var ol_anchorx=0;if (typeof ol_anchory=='undefined') var ol_anchory=0;if (typeof ol_noanchorwarn=='undefined') var ol_noanchorwarn=1;if (typeof ol_anchoralign=='undefined') var ol_anchoralign='UL';
12 var o3_anchor="";var o3_anchorx=0;var o3_anchory=0;var o3_noanchorwarn=1;var o3_anchoralign='UL';var mrkObj, rmrkPosition;
13 function setAnchorVariables() {o3_anchor=ol_anchor;o3_anchorx=ol_anchorx;o3_anchory=ol_anchory;o3_noanchorwarn=ol_noanchorwarn;o3_anchoralign=ol_anchoralign;mrkObj=null;}
14 function parseAnchorExtras(pf,i,ar) {var v, k=i;
15 if (k<ar.length) {if (ar[k]==ANCHOR) { eval(pf+"anchor='"+escSglQuote(ar[++k])+"'"); return k; }
16 if (ar[k]==ANCHORX) { eval(pf+'anchorx='+ar[++k]); return k; }
17 if (ar[k]==ANCHORY) { eval(pf+'anchory='+ar[++k]); return k; }
18 if (ar[k]==NOANCHORWARN) { eval(pf+'noanchorwarn=('+pf+'noanchorwarn==1)?0:1'); return k; }
19 if (ar[k]==ANCHORALIGN) { k=opt_MULTIPLEARGS(++k, ar, (pf+'anchoralign'));  return k; }
20 }
21 return-1;}
22 function checkAnchorObject() {var w=o3_anchor;
23 if (w) {if (!(mrkObj=getAnchorObjectRef(w))) {if (o3_noanchorwarn) {alert('WARNING!  Reference mark "'+w+'" not found.');return false;} else w='';}
24 }
25 return true;}
26 function anchorPlaceLayer() {var placeX, placeY, widthFix=0;
27 if (eval('o3_frame.'+docRoot)&&eval("typeof o3_frame."+docRoot+".clientWidth=='number'")&&eval('o3_frame.'+docRoot+'.clientWidth')) {iwidth=eval('o3_frame.'+docRoot+'.clientWidth');} else if (typeof(o3_frame.innerWidth)=='number') {widthFix=Math.ceil(1.2*(o3_frame.outerWidth-o3_frame.innerWidth));iwidth=o3_frame.innerWidth;}
28 if (o3_anchor) {placeX=rmrkPosition[0];placeY=rmrkPosition[1];} else {
29 winoffset=(olIe4)?eval('o3_frame.'+docRoot+'.scrollLeft'):o3_frame.pageXOffset;var parsedWidth=parseInt(o3_width);
30 if (o3_fixx>-1||o3_relx!=null) {
31 placeX=(o3_relx!=null?( o3_relx<0?winoffset+o3_relx+iwidth-parsedWidth-widthFix:winoffset+o3_relx):o3_fixx);} else {
32 if (o3_hauto==1) {if ((o3_x-winoffset)>(iwidth/2)) {o3_hpos=LEFT;} else {o3_hpos=RIGHT;}
33 }
34 if (o3_hpos==CENTER) {placeX=o3_x+o3_offsetx-(parsedWidth/2);
35 if (placeX<winoffset) placeX=winoffset;}
36 if (o3_hpos==RIGHT) {placeX=o3_x+o3_offsetx;
37 if ((placeX+parsedWidth)>(winoffset+iwidth-widthFix)) {placeX=iwidth+winoffset-parsedWidth-widthFix;if (placeX<0) placeX=0;}
38 }
39 if (o3_hpos==LEFT) {placeX=o3_x-o3_offsetx-parsedWidth;if (placeX<winoffset) placeX=winoffset;}
40 if (o3_snapx>1) {var snapping=placeX % o3_snapx;
41 if (o3_hpos==LEFT) {placeX=placeX-(o3_snapx+snapping);} else {
42 placeX=placeX+(o3_snapx-snapping);}
43 if (placeX<winoffset) placeX=winoffset;}
44 }
45 if (eval('o3_frame.'+docRoot)&&eval("typeof o3_frame."+docRoot+".clientHeight=='number'")&&eval('o3_frame.'+docRoot+'.clientHeight')) {iheight=eval('o3_frame.'+docRoot+'.clientHeight');} else if (typeof(o3_frame.innerHeight)=='number') {iheight=o3_frame.innerHeight;}
46 scrolloffset=(olIe4)?eval('o3_frame.'+docRoot+'.scrollTop'):o3_frame.pageYOffset;var parsedHeight=(o3_aboveheight?parseInt(o3_aboveheight):(olNs4?over.clip.height:over.offsetHeight));
47 if (o3_fixy>-1||o3_rely!=null) {
48 placeY=(o3_rely!=null?(o3_rely<0?scrolloffset+o3_rely+iheight-parsedHeight:scrolloffset+o3_rely):o3_fixy);} else {
49 if (o3_vauto==1) {if ((o3_y-scrolloffset)>(iheight/2)) {o3_vpos=ABOVE;} else {o3_vpos=BELOW;}
50 }
51 if (o3_vpos==ABOVE) {if (o3_aboveheight==0) o3_aboveheight=parsedHeight;
52 placeY=o3_y-(o3_aboveheight+o3_offsety);if (placeY<scrolloffset) placeY=scrolloffset;} else {
53 placeY=o3_y+o3_offsety;}
54 if (o3_snapy>1) {var snapping=placeY % o3_snapy;
55 if (o3_aboveheight>0&&o3_vpos==ABOVE) {placeY=placeY-(o3_snapy+snapping);} else {placeY=placeY+(o3_snapy-snapping);}
56 if (placeY<scrolloffset) placeY=scrolloffset;}
57 }
58 }
59 repositionTo(over, placeX, placeY);if (typeof o3_scroll!='undefined'&& o3_scroll&& o3_sticky&& (o3_relx||o3_rely)&& (typeof o3_draggable=='undefined'||!o3_draggable)) {if (typeof over.scroller=='undefined'||over.scroller.canScroll) over.scroller=new scroller(placeX-winoffset, placeY-scrolloffset, setTimeout("repositionOver()", 20));}
60 }
61 function anchorPreface() {if (!mrkObj) return;rmrkPosition=getAnchorLocation(mrkObj);}
62 function getAnchorObjectRef(aObj) {return getRefById(aObj, o3_frame.document)||getRefByName(aObj, o3_frame.document)
63 }
64 function getAnchorLocation(objRef){var mkObj, of, offsets, mlyr
65 mkObj=mlyr=objRef
66 offsets=[o3_anchorx, o3_anchory]
67 if (document.layers){if (typeof mlyr.length!='undefined'&& mlyr.length>1) {mkObj=mlyr[0]
68 offsets[0]+=mlyr[0].x+mlyr[1].pageX
69 offsets[1]+=mlyr[0].y+mlyr[1].pageY
70 } else {if(mlyr.toString().indexOf('Image')!=-1||mlyr.toString().indexOf('Anchor')!=-1){offsets[0]+=mlyr.x
71 offsets[1]+=mlyr.y
72 } else {offsets[0]+=mlyr.pageX
73 offsets[1]+=mlyr.pageY
74 }
75 }
76 } else {offsets[0]+=pageLocation(mlyr, 'Left')
77 offsets[1]+=pageLocation(mlyr, 'Top')
78 }
79 of=getAnchorOffsets(mkObj)
80 if (typeof o3_dragimg!='undefined'&& o3_dragimg) {olImgLeft=offsets[0];olImgTop=offsets[1];}
81 offsets[0]+=of[0]
82 offsets[1]+=of[1]
83 if (typeof o3_dragimg!='undefined'&& o3_dragimg) {olImgRight=offsets[0];olImgBottom=offsets[1];return;}
84 return offsets;}
85 function getAnchorOffsets(mkObj){var fx=fy=0,  mp, puc, mkAry, sx=sy=0, w=o3_anchoralign
86 var mW=mH=pW=pH=0
87 var off=[0, 0]
88 mkAry=w.split(',');
89 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);}
90 } else {mp=mkAry.slice(0, 2);puc=mkAry.slice(2);}
91 var shdwPresent=typeof o3_shadow!='undefined'&& o3_shadow
92 if (shdwPresent) {sx=Math.abs(o3_shadowx);sy=Math.abs(o3_shadowy);}
93 pW=(shdwPresent?parseInt(o3_width):(olNs4?over.clip.width:over.offsetWidth))
94 pH=(shdwPresent?parseInt(o3_aboveheight):(olNs4?over.clip.height:over.offsetHeight))
95 if (olOp&& o3_wrap) {pW=(shdwPresent?parseInt(o3_width):(olNs4?over.clip.width:over.offsetWidth))
96 pH=(shdwPresent?parseInt(o3_aboveheight):(olNs4?over.clip.height:over.offsetHeight))
97 }
98 if (!olOp&& mkObj.toString().indexOf('Image')!=-1){mW=mkObj.width
99 mH=mkObj.height
100 } else if (!olOp&& mkObj.toString().indexOf('Anchor')!=-1) {mp='UL'
101 } else {mW=(olNs4)?mkObj.clip.width:mkObj.offsetWidth
102 mH=(olNs4)?mkObj.clip.height:mkObj.offsetHeight
103 }
104 if (!isNaN(mp)||typeof mp=='object') {if (typeof mp=='object') {fx=parseFloat(mp[0]);fy=parseFloat(mp[1]);} else
105 fx=fy=parseFloat(mp);off=[Math.round(fx*mW), Math.round(fy*mH)];} else {if (mp=='UR') off=[mW, 0]
106 else if (mp=='LL') off=[0, mH]
107 else if (mp=='LR') off=[mW, mH]
108 }
109 if (typeof o3_dragimg!='undefined'&& o3_dragimg) return off;else {if (!isNaN(puc)||typeof puc=='object' ) {if (typeof puc=='object') {fx=parseFloat(puc[0]);fy=parseFloat(puc[1]);} else
110 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
111 } else if (puc=='LL') {off[0]-=sx;off[1]-=(pH-sy)
112 } else if (puc=='LR') {off[0]-=(pW-sx);off[1]-=(pH-sy)
113 }
114 }
115 return off
116 }
117 }
118 function pageLocation(o, t){var x=0
119 while(o.offsetParent){x+=o['offset'+t]
120 o=o.offsetParent
121 }
122 x+=o['offset'+t]
123 return x
124 }
125 function getRefById(l, d){var r="", j
126 d=(d||document)
127 if (d.all) return d.all[l]
128 else if (d.getElementById) return d.getElementById(l)
129 else if (d.layers&& d.layers.length>0) {if (d.layers[l]) return d.layers[l]
130 for (j=0; j<d.layers.length; j++) {r=getRefById(l, d.layers[j].document)
131 if(r) return r
132 }
133 }
134 return false
135 }
136 function getRefByName(l, d) {var r=null, j
137 d=(d||document)
138 if (d.images[l]) return d.images[l]
139 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)
140 if (r&& r.length>0) return r
141 else if (r) return [r, d.layers[j]]
142 }
143 }
144 return null
145 }
146 registerHook("placeLayer", anchorPlaceLayer, FREPLACE);registerRunTimeFunction(setAnchorVariables);registerCmdLineFunction(parseAnchorExtras);registerPostParseFunction(checkAnchorObject);registerHook("createPopup", anchorPreface, FAFTER);