ConLite/setup/script/pluginInfo.js

80 Zeilen
2.3 KiB
JavaScript

/**
*
* $Id$
*/
/*****************************************
*
*
* File : $RCSfile: pluginInfo.js,v $
* Project : Contenido
* Descr : File contains functions for displaying plugin information layer, hiding and
crorrecting its position, when browser window is resized
*
* Author : $Author: timo.trautmann$
* Modified : $Date$
*
* <20> four for business AG, www.4fb.de
******************************************/
/**
* Function returns offset left, top, width and heigth of a given htnmlelement as array
*
* @param object oElement - Object which should be analyzed
* @return array - containing dimension information
*/
var getElementPostion = function (oElement) {
var iHeigth = oElement.offsetHeight;
var iWidth = oElement.offsetWidth;
var iTop = 0, iLeft = 0;
while (oElement) {
iTop += oElement.offsetTop || 0;
iLeft += oElement.offsetLeft || 0;
oElement = oElement.offsetParent;
};
return [iLeft, iTop, iHeigth, iWidth];
}
/**
* Function set layer position absolutely. Basis for position is element plugin_layer, which contains
* all avariable plugins
*
*/
function setLayerPostion () {
var oPluginLayer = document.getElementById('plugin_layer');
//only correct position, if layer is currently displayed
if (oPluginLayer.style.display = 'block') {
var aPluginListPos = getElementPostion(document.getElementById('plugin_list'));
oPluginLayer.style.top=aPluginListPos[1];
oPluginLayer.style.left=aPluginListPos[0]+200;
}
}
/**
* Function shows plugin information layer and fills it with given information
*
* @param sHeader string - Name of the plugin
* @param sDescription string - Description of the plugin
*/
function showPluginInfo(sHeader, sDescription) {
setLayerPostion();
//get plugin layer
var oPluginLayer = document.getElementById('plugin_layer');
//set layer data and display it
document.getElementById('plugin_header').innerHTML=sHeader;
document.getElementById('plugin_description').innerHTML=sDescription;
oPluginLayer.style.display = 'block';
}
/**
* Function hides plugin information layer
*
*/
function hidePluginInfo() {
document.getElementById('plugin_layer').style.display = 'none';
}
//update layer position when browser window is resized
window.onresize = setLayerPostion;