//\///////\  overLIB Crossframe Support Plugin//\  This file requires overLIB 4.00 or later.//\//\  overLIB 4.05 - You may not remove or change this notice.//\  Copyright Erik Bosrup 1998-2004. All rights reserved.//\  Contributors are listed on the homepage.//\  See http://www.bosrup.com/web/overlib/ for details.//   $Revision: 1.3.4.1 $                $Date: 2004/03/23 16:29:38 $//\/////////////// PRE-INIT// Ignore these lines, configuration is below.////////if (typeof olInfo == 'undefined' || olInfo.simpleversion < 400) alert('overLIB 4.00 or later is required for the Cross Frame Support Plugin.');registerCommands('frame');//////////  PLUGIN FUNCTIONS///////// Parses FRAME commandfunction parseFrameExtras(pf,i,ar) {	var k = i,v;	if (k < ar.length) {		if (ar[k] == FRAME) { v = ar[++k]; if(pf == 'ol_'&&compatibleframe(v)) ol_frame = v; else opt_FRAME(v); return k; }	}	return -1;}////////// SUPPORT FUNCTIONS////////// Defines which frame we should point to.function opt_FRAME(frm) { 	o3_frame = compatibleFrame(frm) ? frm : ol_frame; 		if (olNs4) {		over = o3_frame.document.layers['overDiv'];	} else if (document.all) {		over = o3_frame.document.all['overDiv'];	} else if (document.getElementById) {		over = o3_frame.document.getElementById("overDiv");	}
	return 0;}// Makes sure target frame has overLIBfunction compatibleFrame(frameid) { 	if (olNs4 && typeof frameid.document.overDiv == 'undefined') {		return false;	} else if (document.all && typeof frameid.document.all["overDiv"] == 'undefined') {		return false;	} else if (document.getElementById && frameid.document.getElementById('overDiv') == null) {		return false;	}	return true;}// Get frame depth of nested framesfunction frmDepth(thisFrame,ofrm) {	var retVal = '';	for (var i = 0; i<thisFrame.length; i++) {		if (thisFrame[i].length > 0) { 			retVal = frmDepth(thisFrame[i],ofrm);			if (retVal ==  '') continue;		} else if (thisFrame[i] != ofrm) continue;		retVal = '[' + i + ']' + retVal;		break;	}	return retVal;}// Gets frame reference value relative to top framefunction getFrmRef(srcFrm,tgetFrm) {	var rtnVal = ''	if (tgetFrm != srcFrm) {		var tFrm = frmDepth(top.frames,tgetFrm)		var sFrm = frmDepth(top.frames,srcFrm)		if (sFrm.length ==  tFrm.length) {			l = tFrm.lastIndexOf('[')						if (l) {				while ( sFrm.substring(0,l) != tFrm.substring(0,l) )				l = tFrm.lastIndexOf('[',l-1)				tFrm = tFrm.substr(l)				sFrm = sFrm.substr(l)			}		}			var cnt = 0, p = '',str = tFrm		while ((k = str.lastIndexOf('[')) != -1) {			cnt++ 			str = str.substring(0,k)		}		for (var i = 0; i<cnt; i++) p = p + 'parent.'		rtnVal = p + 'frames' + sFrm + '.'	} 	return rtnVal}function chkForFrmRef() {	if(o3_frame != ol_frame) fnRef = getFrmRef(ol_frame,o3_frame)	return true;}////////// PLUGIN REGISTRATIONS////////registerCmdLineFunction(parseFrameExtras);registerPostParseFunction(chkForFrmRef);
