mirror of
				https://github.com/librenms/librenms.git
				synced 2024-10-07 16:52:45 +00:00 
			
		
		
		
	git-svn-id: http://www.observium.org/svn/observer/trunk@2 61d68cd4-352d-0410-923a-c4978735b2b8
		
			
				
	
	
		
			105 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
//\/////
 | 
						|
//\  overLIB Crossframe Support Plugin
 | 
						|
//\  This file requires overLIB 4.10 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.8 $                $Date: 2004/11/25 21:27:19 $
 | 
						|
//\/////
 | 
						|
//\mini
 | 
						|
 | 
						|
////////
 | 
						|
// PRE-INIT
 | 
						|
// Ignore these lines, configuration is below.
 | 
						|
////////
 | 
						|
if (typeof olInfo == 'undefined' || typeof olInfo.meets == 'undefined' || !olInfo.meets(4.10)) alert('overLIB 4.10 or later is required for the Cross Frame Support Plugin.');
 | 
						|
else {
 | 
						|
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_') 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 = frm; 	
 | 
						|
	over = createDivContainer('overDiv');	
 | 
						|
	return 0;
 | 
						|
}
 | 
						|
 | 
						|
// 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);
 | 
						|
} |