/* overlibmws_bubble.js plug-in module - Copyright Foteos Macrides 2003-2007. All rights reserved. For support of the BUBBLE feature. Initial: July 26, 2003 - Last Revised: January 1, 2007 See the Change History and Command Reference for overlibmws via: http://www.macridesweb.com/oltest/ Published under an open source license: http://www.macridesweb.com/oltest/license.html */ OLloaded=0; var OLbubbleCmds='bubble,bubbletype,adjbubble'; OLregCmds(OLbubbleCmds); // DEFAULT CONFIGURATION if(OLud('bubble'))var ol_bubble=0; if(OLud('bubbletype'))var ol_bubbletype=''; if(OLud('adjbubble'))var ol_adjbubble=0; // END CONFIGURATION if(typeof OLbubbleImages=='undefined') var OLbubbleImages='flower,oval,square,pushpin,quotation,roundcorners'; if(typeof OLbubbleImageDir=='undefined')var OLbubbleImageDir='./'; OLregisterImages('flower,oval,square,pushpin,quotation,roundcorners',OLbubbleImageDir); var OLimgWidth=[250,330,144,202,200]; var OLimgHeight=[150,160,190,221,66]; var OLcontentWidth=[200,250,130,184,190]; var OLcontentHeight=[80,85,150,176,46]; var OLpadLeft=[30,40,7,9,5]; var OLpadTop=[25,48,10,34,4]; var OLarwTipX=[180,50,51,9,19]; var OLarwTipY=[148,5,180,221,64]; var OLbI,OLbContentWd=OLcontentWidth; var o3_bubble=0,o3_bubbletype='',o3_adjbubble=0,OLbubbleHt=0; function OLloadBubble(){ OLload(OLbubbleCmds);OLbubbleHt=0; } function OLparseBubble(pf,i,ar){ var k=i,t=OLtoggle; if(k<ar.length){ if(Math.abs(ar[k])==BUBBLE){t(ar[k],pf+'bubble');return k;} if(ar[k]==BUBBLETYPE){OLparQuo(ar[++k],pf+'bubbletype');return k;} if(Math.abs(ar[k])==ADJBUBBLE){t(ar[k],pf+'adjbubble');return k;}} return -1; } function OLchkForBubbleEffect() { if(o3_bubble){o3_bubbletype=(o3_bubbletype)?o3_bubbletype:'flower'; for(var i=0;i<OLbTypes.length;i++){if(OLbTypes[i]==o3_bubbletype){OLbI=i;break;}} // disable inappropriate parameters o3_bgcolor=o3_fgcolor=''; o3_border=o3_base=0; o3_fgbackground=o3_bgbackground=o3_cgbackground=o3_background=''; o3_cap=''; if(o3_sticky)o3_noclose=1; o3_fullhtml=0; if(OLshadowPI)o3_shadow=0; if(o3_bubbletype!='roundcorners'){ o3_width=OLbContentWd[OLbI]; o3_hpos=RIGHT; o3_vpos=BELOW; o3_vauto=0; o3_hauto=0; o3_wrap=0; o3_nojusty=1;}} return true; } function OLregisterImages(imgStr,path) { if(typeof imgStr!='string')return; path=(path&&typeof path=='string')?path:'.'; if(path.charAt(path.length-1)=='/')path=path.substring(0,path.length-1); if(typeof OLbTypes=='undefined')OLbTypes=imgStr.split(','); if(typeof OLbubbleImg=='undefined'){ OLbubbleImg=new Array(); for(var i=0;i<OLbTypes.length;i++){ if(OLbubbleImages.indexOf(OLbTypes[i])<0)continue; if(OLbTypes[i]=='roundcorners'){ OLbubbleImg[i]=new Array(); var o=OLbubbleImg[i]; o[0]=new Image();o[0].src=path+'/cornerTL.gif'; o[1]=new Image();o[1].src=path+'/edgeT.gif'; o[2]=new Image();o[2].src=path+'/cornerTR.gif'; o[3]=new Image();o[3].src=path+'/edgeL.gif'; o[4]=new Image();o[4].src=path+'/edgeR.gif'; o[5]=new Image();o[5].src=path+'/cornerBL.gif'; o[6]=new Image();o[6].src=path+'/edgeB.gif'; o[7]=new Image();o[7].src=path+'/cornerBR.gif'; }else{ OLbubbleImg[i]=new Image();OLbubbleImg[i].src=path+'/'+OLbTypes[i]+'.gif';}}} } function OLgenerateBubble(content) { if(!o3_bubble)return; if(o3_bubbletype=='roundcorners')return OLdoRoundCorners(content); var ar,X,Y,fc=1.0,txt,sY,bHtDiff,bPadDiff=0,bLobj,bCobj; var bTopPad=OLpadTop,bLeftPad=OLpadLeft; var bContentHt=OLcontentHeight,bHt=OLimgHeight; var bWd=OLimgWidth,bArwTipX=OLarwTipX,bArwTipY=OLarwTipY; bHtDiff=fc*bContentHt[OLbI]-(OLns4?over.clip.height:over.offsetHeight); if(o3_adjbubble){ fc=OLresizeBubble(bHtDiff,0.5,fc); ar=OLgetHeightDiff(fc); bHtDiff=ar[0]; content=ar[1];} if(bHtDiff>0)bPadDiff=(bHtDiff<2)?0:parseInt(0.5*bHtDiff); Y=(bHtDiff<0)?fc*bTopPad[OLbI]:fc*bTopPad[OLbI]+bPadDiff; X=fc*bLeftPad[OLbI]; Y=Math.round(Y); X=Math.round(X); o3_width=fc*bWd[OLbI]; OLbubbleHt=fc*bHt[OLbI]; txt='<img src="'+OLbubbleImg[OLbI].src+'" width="'+o3_width+'" height="' +(bHtDiff<0?OLbubbleHt-bHtDiff:OLbubbleHt)+'" />'+(OLns4?'<div id="bContent">': '<div id="bContent" style="position:absolute; top:'+Y+'px; left:'+X+'px; width:' +fc*OLbContentWd[OLbI]+'px; z-index:1;">')+content+'</div>'; OLlayerWrite(txt); if(OLns4){ bCobj=over.document.layers['bContent']; if(typeof bCobj=='undefined')return; bCobj.top=Y; bCobj.left=X; bCobj.clip.width=fc*OLbContentWd[OLbI]; bCobj.zIndex=1;} if(fc*bArwTipY[OLbI]<0.5*fc*bHt[OLbI])sY=fc*bArwTipY[OLbI]; else sY= -(fc*bHt[OLbI]+20); o3_offsetx -=fc*bArwTipX[OLbI]; o3_offsety +=sY; } function OLdoRoundCorners(content) { var txt,wd,ht,o=OLbubbleImg[OLbI]; wd=(OLns4)?over.clip.width:over.offsetWidth; ht=(OLns4)?over.clip.height:over.offsetHeight; txt='<table cellpadding="0" cellspacing="0" border="0">' +'<tr><td align="right" valign="bottom"><img src="'+o[0].src+'" width="14" height="14"' +(OLns6?' style="display:block;"':'')+' /></td><td valign="bottom"><img src="'+o[1].src +'" height="14" width="'+wd+'"'+(OLns6?' style="display:block;"':'') +' /></td><td align="left" valign="bottom"><img src="'+o[2].src+'" width="14" height="14"' +(OLns6?' style="display:block;"':'')+' /></td></tr>' +'<tr><td align="right"><img src="'+o[3].src+'" width="14" height="'+ht+'"' +(OLns6?' style="display:block;"':'')+' /></td><td bgcolor="#ffffcc">'+content +'</td><td align="left"><img src="'+o[4].src+'" width="14" height="'+ht+'"' +(OLns6?' style="display:block;"':'')+ '/></td></tr>'+'<tr><td align="right" valign="top">' +'<img src="'+o[5].src+'" width="14" height="14" /></td><td valign="top"><img src="'+o[6].src +'" height="14" width="'+wd+'" /></td><td align="left" valign="top"><img src="'+o[7].src +'" width="14" height="14" /></td></tr></table>'; OLlayerWrite(txt); o3_width=wd+28; OLbubbleHt=ht+28; } function OLresizeBubble(h1,dF,fold){ var df,h2,fnew,alpha,cnt=0; while(cnt<2){ df= -OLsignOf(h1)*dF; fnew=fold+df; h2=OLgetHeightDiff(fnew)[0]; if(Math.abs(h2)<11)break; if(OLsignOf(h1)!=OLsignOf(h2)){ alpha=Math.abs(h1)/(Math.abs(h1)+Math.abs(h2)); if(h1<0)fnew=alpha*fnew+(1.0-alpha)*fold; else fnew=(1.0-alpha)*fnew+alpha*fold; }else{ alpha=Math.abs(h1)/(Math.abs(h2)-Math.abs(h1)); if(h1<0)fnew=(1.0+alpha)*fold-alpha*fnew; else fnew=(1.0+alpha)*fnew-alpha*fold;} fold=fnew; h1=h2; dF*=0.5; cnt++;} return fnew; } function OLgetHeightDiff(f){ var lyrhtml; o3_width=f*OLcontentWidth[OLbI]; lyrhtml=OLcontentSimple(o3_text); OLlayerWrite(lyrhtml) return [f*OLcontentHeight[OLbI]-((OLns4)?over.clip.height:over.offsetHeight),lyrhtml]; } function OLsignOf(x){ return (x<0)? -1:1; } OLregRunTimeFunc(OLloadBubble); OLregCmdLineFunc(OLparseBubble); if(OLns4) document.write( '<style type="text/css">\n<!--\n#bContent{position:absolute;left:0px;top:0px;width:1024}\n' +'-->\n<'+'\/style>'); OLbubblePI=1; OLloaded=1;