Project

General

Profile

1
//\/////
2

    
3
//\  overLIB Shadow Plugin
4

    
5
//\  This file requires overLIB 4.10 or later.
6

    
7
//\
8

    
9
//\  overLIB 4.05 - You may not remove or change this notice.
10

    
11
//\  Copyright Erik Bosrup 1998-2003. All rights reserved.
12

    
13
//\  Contributors are listed on the homepage.
14

    
15
//\  See http://www.bosrup.com/web/overlib/ for details.
16

    
17
//\/////
18

    
19
//\  THIS IS A VERY MODIFIED VERSION. DO NOT EDIT OR PUBLISH. GET THE ORIGINAL!
20

    
21
if(typeof olInfo=='undefined'||typeof olInfo.meets=='undefined'||!olInfo.meets(4.10))alert('overLIB 4.10 or later is required for the Shadow Plugin.');else{registerCommands('shadow,shadowcolor,shadowimage,shadowopacity,shadowx,shadowy');
22

    
23
if(typeof ol_shadowadjust=='undefined')var ol_shadowadjust=2;if(typeof ol_shadow=='undefined')var ol_shadow=0;if(typeof ol_shadowcolor=='undefined')var ol_shadowcolor='#CCCCCC';if(typeof ol_shadowimage=='undefined')var  ol_shadowimage='';if(typeof ol_shadowopacity=='undefined')var  ol_shadowopacity=0;if(typeof ol_shadowx=='undefined')var ol_shadowx=5;if(typeof ol_shadowy=='undefined')var ol_shadowy=5;
24

    
25
var o3_shadow=0,o3_shadowcolor="#cccccc",o3_shadowimage='',o3_shadowopacity=0,o3_shadowx=5,o3_shadowy=5,bkSet=0;
26

    
27
function setShadowVariables(){o3_shadow=ol_shadow;o3_shadowcolor=ol_shadowcolor;o3_shadowimage=ol_shadowimage;o3_shadowopacity=ol_shadowopacity;o3_shadowx=ol_shadowx;o3_shadowy=ol_shadowy;}
28

    
29
function parseShadowExtras(pf,i,ar){var k=i,v;
30

    
31
if(k<ar.length){if(ar[k]==SHADOW){eval(pf+'shadow=('+pf+'shadow==0)?1:0');return k;}
32

    
33
if(ar[k]==SHADOWCOLOR){eval(pf+'shadowcolor="'+ar[++k]+'"');return k;}
34

    
35
if(ar[k]==SHADOWOPACITY){v=ar[++k];eval(pf+'shadowopacity='+(olOp?0:v));return k;}
36

    
37
if(ar[k]==SHADOWIMAGE){eval(pf+'shadowimage="'+ar[++k]+'"');return k;}
38

    
39
if(ar[k]==SHADOWX){eval(pf+'shadowx='+ar[++k]);return k;}
40

    
41
if(ar[k]==SHADOWY){eval(pf+'shadowy='+ar[++k]);return k;}}
42

    
43
return-1;}
44

    
45
function shadow_cursorOff(){var left=parseInt(over.style.left);var top=parseInt(over.style.top);var right=left+(o3_shadow?o3_width:over.offsetWidth);var bottom=top+(o3_shadow?o3_aboveheight:over.offsetHeight);
46

    
47
if(o3_x<left||o3_x>right||o3_y<top||o3_y>bottom)return true;return false;}
48

    
49
function checkShadowPreHide(){if(o3_shadow&&o3_shadowopacity)cleanUpShadowEffects();if(o3_shadow&&(olIe4&&isMac) )over.style.pixelWidth=over.style.pixelHeight=0;}
50

    
51
function generateShadow(content){var wd,ht,X=0,Y=0,zIdx=0,txt,dpObj,puObj,bS='',aPos,posStr=new Array();
52

    
53
if(!o3_shadow||(o3_shadowx==0&&o3_shadowy==0))return;
54

    
55
X=Math.abs(o3_shadowx);Y=Math.abs(o3_shadowy);wd=parseInt(o3_width);ht=(olNs4)?over.clip.height:over.offsetHeight;
56

    
57
if(o3_shadowx==0){if(o3_shadowy<0){posStr[0]=' left:0;top: 0';posStr[1]=' left:0;top: '+Y+'px';}else if(o3_shadowy>0){posStr[0]=' left:0;top: '+Y+'px';posStr[1]=' left:0;top:0';}
58

    
59
}else if(o3_shadowy==0){if(o3_shadowx<0){posStr[0]=' left:0;top: 0';posStr[1]=' left: '+X+'px';}else if(o3_shadowx>0){posStr[0]=' left: '+X+'px;top: 0';posStr[1]=' left:0;top:0';}
60

    
61
}else if(o3_shadowx>0){if(o3_shadowy>0){posStr[0]=' left:'+X+'px;top:'+Y+'px';posStr[1]=' left:0;top:0';}else if(o3_shadowy<0){posStr[0]=' left:'+X+'px;top:0';posStr[1]=' left:0;top: '+Y+'px';}
62

    
63
}else if(o3_shadowx<0){if(o3_shadowy>0){posStr[0]=' left:0;top:'+Y+'px';posStr[1]=' left:'+X+'px;top:0';}else if(o3_shadowy<0){posStr[0]=' left:0;top:0';posStr[1]=' left:'+X+'px;top:'+Y+'px';}}
64

    
65
txt=(olNs4)?'<div id="backdrop"></div>':((olIe55&&olHideForm)?backDropSource(wd+X,ht+Y,zIdx++):'')+'<div id="backdrop" style="position: absolute;'+posStr[0]+';width: '+wd+'px;height: '+ht+'px;z-index: '+(zIdx++)+';';
66

    
67
if(o3_shadowimage){bS='background-image: url('+o3_shadowimage+');';if(olNs4)bkSet=1;}else{bS='background-color: '+o3_shadowcolor+';';if(olNs4)bkSet=2;}
68

    
69
if(olNs4){txt+='<div id="PUContent">'+content+'</div>';}else{txt+=bS+'"></div><div id="PUContent" style="position: absolute;'+posStr[1]+';width: '+wd+'px;z-index: '+(zIdx++)+';">'+content+'</div>';}
70

    
71
layerWrite(txt);
72

    
73
if(olNs4&&bkSet){dpObj=over.document.layers['backdrop'];if(typeof dpObj=='undefined')return;
74

    
75
puObj=over.document.layers['PUContent'];wd=puObj.clip.width;ht=puObj.clip.height;aPos=posStr[0].split(';');
76

    
77
dpObj.clip.width=wd;dpObj.clip.height=ht;dpObj.left=parseInt(aPos[0].split(':')[1]);dpObj.top=parseInt(aPos[1].split(':')[1]);
78

    
79
dpObj.bgColor=(bkSet==1)?null:o3_shadowcolor;dpObj.background.src=(bkSet==2)?null:o3_shadowimage;dpObj.zIndex=0;
80

    
81
aPos=posStr[1].split(';');puObj.left=parseInt(aPos[0].split(':')[1]);puObj.top=parseInt(aPos[1].split(':')[1]);puObj.zIndex=1;
82

    
83
}else{puObj=(olIe4?o3_frame.document.all['PUContent']:o3_frame.document.getElementById('PUContent'));dpObj=(olIe4?o3_frame.document.all['backdrop']:o3_frame.document.getElementById('backdrop'));ht=puObj.offsetHeight;dpObj.style.height=ht+'px';
84

    
85
if(o3_shadowopacity){var op=o3_shadowopacity;op=(op<=100?op:100);
86

    
87
setBrowserOpacity(op,dpObj);}}
88

    
89
o3_width=wd+X;o3_aboveheight=ht+Y;}
90

    
91
function cleanUpShadowEffects(){if(olNs4||olOp)return;var dpObj=(olIe4?o3_frame.document.all['backdrop']:o3_frame.document.getElementById('backdrop'));cleanUpBrowserOpacity(dpObj);}
92

    
93
function setBrowserOpacity(op,lyr){if(olNs4||!op)return;lyr=(lyr)?lyr:over;if(olIe4&&typeof lyr.filters!='undefined'){lyr.style.filter='Alpha(Opacity='+op+')';lyr.filters.alpha.enabled=true;}else{var sOp=(typeof(lyr.style.MozOpacity)!='undefined')?'MozOpacity':(typeof(lyr.style.KhtmlOpacity)!='undefined'?'KhtmlOpacity':(typeof(lyr.style.opacity)!='undefined'?'opacity':''));if(sOp)eval('lyr.style.'+sOp+'=op/100');}}
94

    
95
function cleanUpBrowserOpacity(lyr){if(olNs4)return;lyr=(lyr)?lyr:over;if(olIe4&&(typeof lyr.filters!='undefined'&&lyr.filters.alpha.enabled)){lyr.style.filter='Alpha(Opacity=100)';lyr.filters.alpha.enabled=false;}else{var sOp=(typeof(lyr.style.MozOpacity)!='undefined')?'MozOpacity':(typeof(lyr.style.KhtmlOpacity)!='undefined'?'KhtmlOpacity':(typeof(lyr.style.opacity)!='undefined'?'opacity':''));if(sOp)eval('lyr.style.'+sOp+'=1.0');}}
96

    
97
function shadowAdjust(){if(!olNs4)return;var fac=ol_shadowadjust;if(olNs4){document.write('<style type="text/css">\n<!--\n');document.write('#backdrop,#PUContent {position: absolute;left: '+fac*o3_shadowx+'px;top: '+fac*o3_shadowy+'px;}\n');document.write('-->\n<'+'\/style>');}}
98

    
99
var before=(typeof rmrkPreface!='undefined'?rmrkPreface:null);
100

    
101
registerRunTimeFunction(setShadowVariables);registerCmdLineFunction(parseShadowExtras);registerHook("cursorOff",shadow_cursorOff,FREPLACE);registerHook("hideObject",checkShadowPreHide,FBEFORE);registerHook("createPopup",generateShadow,FAFTER,before);if(olInfo.meets(4.10))registerNoParameterCommands('shadow');
102

    
103
if(olNs4)shadowAdjust();
104

    
105
}
106

    
(11-11/11)