editable notes
[freeside.git] / httemplate / elements / overlibmws_crossframe.js
1 /*\r
2  overlibmws_crossframe.js plug-in module - Copyright Foteos Macrides 2003-2006\r
3    For support of FRAME.\r
4    Initial: August 3, 2003 - Last Revised: November 2, 2004\r
5  See the Change History and Command Reference for overlibmws via:\r
6 \r
7         http://www.macridesweb.com/oltest/\r
8 \r
9  Published under an open source license: http://www.macridesweb.com/oltest/license.html\r
10 */\r
11 \r
12 OLloaded=0;\r
13 OLregCmds('frame');\r
14 \r
15 function OLparseCrossframe(pf,i,ar){\r
16 var k=i,v;\r
17 if(k<ar.length){\r
18 if(ar[k]==FRAME){v=ar[++k];if(pf=='ol_')ol_frame=v;else OLoptFRAME(v);return k;}}\r
19 return -1;\r
20 }\r
21 \r
22 function OLgetFrameRef(thisFrame,ofrm){\r
23 var i,v,retVal='';for(i=0;i<thisFrame.length;i++){if((((thisFrame[i].length>0)))&&(((OLns4))||\r
24 ((OLie4)&&(v=thisFrame[i].document.all.tags('iframe'))!=null&&v.length==0)||\r
25 ((OLns6)&&(v=thisFrame[i].document.getElementsByTagName('iframe'))!=null&&v.length==0))){\r
26 retVal=OLgetFrameRef(thisFrame[i],ofrm);if(retVal=='')continue;}\r
27 else if(thisFrame[i]!=ofrm)continue;retVal='['+i+']'+retVal;break;}\r
28 return retVal;\r
29 }\r
30 \r
31 function OLoptFRAME(frm){\r
32 o3_frame=OLmkLyr('overDiv',frm)?frm:self;if(o3_frame!=self){\r
33 var l,tFrm=OLgetFrameRef(top.frames,o3_frame),sFrm=OLgetFrameRef(top.frames,ol_frame);\r
34 if(sFrm.length==tFrm.length) {l=tFrm.lastIndexOf('[');if(l){\r
35 while(sFrm.substring(0,l)!=tFrm.substring(0,l))l=tFrm.lastIndexOf('[',l-1);\r
36 tFrm=tFrm.substr(l);sFrm=sFrm.substr(l);}}var i,k,cnt=0,p='',str=tFrm;\r
37 while((k=str.lastIndexOf('['))!= -1){cnt++;str=str.substring(0,k);}\r
38 for(i=0;i<cnt;i++)p=p+'parent.';OLfnRef=p+'frames'+sFrm+'.';}\r
39 }\r
40 \r
41 OLregCmdLineFunc(OLparseCrossframe);\r
42 \r
43 OLcrossframePI=1;\r
44 OLloaded=1;\r