Project

General

Profile

Bug #14510 ยป 0000711-tmenu_layers.php

Administrator Admin, 2005-01-24 21:53

 
<?php
/***************************************************************
* Copyright notice
*
* (c) 1999-2003 Kasper Sk?rh?j (kasper@typo3.com)
* All rights reserved
*
* This script is part of the Typo3 project. The Typo3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
* A copy is found in the textfile GPL.txt and important notices to the license
* from the author is found in LICENSE.txt distributed with these scripts.
*
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
/**
* TMENU_LAYERS extension classs
*
* Additional TypoScript parameters:
* (See TSref document)
*
* @author Kasper Sk?rh?j <kasper@typo3.com>
*/


class tslib_tmenu_layers extends tslib_tmenu {


// FULL DUPLICATE FROM gmenu_layers BEGIN:


var $GMENU_fixKey="layers";
var $divLayers=Array();
var $WMx=0;
var $WMy=0;
var $WMxyArray=array();
var $WMextraScript="";
var $WMlastKey="";
var $WMrestoreScript="";
var $WMresetSubMenus="";
var $WMactiveHasSubMenu="";
var $WMactiveKey="";
var $WMtheSubMenu;
var $WMisSub;
var $WMhideCode;
var $WMonlyOnLoad=0;
var $WMbordersWithin=array();
var $WMsubIds=array();
var $WMtempStore=array();
var $WMlockPosition_addAccumulated=array();
var $VMmouseoverActions=array();
var $VMmouseoutActions=array();

function extProc_init() {
$this->WMid = trim($this->mconf["layer_menu_id"])?trim($this->mconf["layer_menu_id"])."x":substr(md5(microtime()),0,6); // NO "_" (underscore) in the ID!!! NN4 breaks!

$GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["WMid"][]=$this->WMid;
$this->WMtempStore = $GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["WMid"];
$GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["WMid"]=array();

// Save:
# $this->WMlockPosition_addAccumulated = $GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["lockPosition_addAccumulated"];

# $this->WMfreezePrefix = $this->mconf["freezeMouseover"] ? "GL".$this->WMid."_" : "";
$this->WMonlyOnLoad = ($this->mconf["displayActiveOnLoad"] && !$this->mconf["displayActiveOnLoad."]["onlyOnLoad"]);
$this->WMbordersWithin = t3lib_div::intExplode(",",$this->mconf["bordersWithin"].",0,0,0,0,0");
}
function extProc_RO($key) {
if ($this->mconf["freezeMouseover"]) {
$this->VMmouseoverActions[$this->WMid.$key]='case "Menu'.$this->WMid.$key.'":'.$this->I["linkHREF"]["onMouseover"].'; break;';
$this->VMmouseoutActions[$this->WMid.$key]='case "Menu'.$this->WMid.$key.'":'.$this->I["linkHREF"]["onMouseout"].'; break;';
$this->I["linkHREF"]["onMouseover"]="GL".$this->WMid."_over('Menu".$this->WMid.$key."');";
$this->I["linkHREF"]["onMouseout"]="";
}
}
function extProc_beforeLinking($key) {
if ($this->I["uid"]) {

array_push($GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["WMparentId"],$this->WMid);
$this->WMtheSubMenu = $this->subMenu($this->I["uid"],$this->I["mount_pid"]);
array_pop($GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["WMparentId"]);
$this->WMisSub = trim($this->WMtheSubMenu) ? 1 : 0;
# $GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["lockPosition_addAccumulated"]["y"]+=$this->I["val"]["output_h"];
# $GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["lockPosition_addAccumulated"]["x"]+=$this->I["val"]["output_w"];
#debug($GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["lockPosition_addAccumulated"]);

if ($this->mconf["lockPosition_addSelf"]) {
$this->WMy+=(strcmp($this->mconf["setFixedHeight"],"")?$this->mconf["setFixedHeight"]:$this->I["val"]["output_h"])+intval($this->mconf["lockPosition_adjust"]);
$this->WMx+=(strcmp($this->mconf["setFixedWidth"],"")?$this->mconf["setFixedWidth"]:$this->I["val"]["output_w"])+intval($this->mconf["lockPosition_adjust"]);
}
if ($this->isActive($this->I["uid"]) && $this->mconf["displayActiveOnLoad"]) { // orig: && $this->WMisSub, changed 210901
$this->WMactiveHasSubMenu = $this->WMisSub;
$this->WMactiveKey = "Menu".$this->WMid.$key;

$this->WMrestoreVars=trim('
GLV_restoreMenu["'.$this->WMid.'"] = "'.$this->WMactiveKey.'";
');
$this->WMrestoreScript=' GL_doTop("'.$this->WMid.'",GLV_restoreMenu["'.$this->WMid.'"]);'.($this->mconf["freezeMouseover"]?'
GL'.$this->WMid.'_over(GLV_restoreMenu["'.$this->WMid.'"]);
':'');

/* $this->WMextraScript='<script language="JavaScript" type="text/javascript">
<!--
// GL_restoreMenu("'.$this->WMid.'");
//-->
</script>';
*/
}
if ($this->WMisSub) {
$event="GL_stopMove('".$this->WMid."');";
$this->I["linkHREF"]["onMouseover"]='GL_doTop(\''.$this->WMid.'\', \'Menu'.$this->WMid.$key.'\');iframer(true,\'Menu'.$this->WMid.$key.'\')'.$this->I["linkHREF"]["onMouseover"];
// Added 120802; This means that everytime leaving a menuitem the layer should be shut down (and if the layer is hit in the meantime it is not though).
// This should happen only for items that are auto-hidden when not over and possibly only when a hide-timer is set. Problem is if the hide-timer is not set and we leave the main element, then the layer will be hidden unless we reach the layer before the timeout will happen and the menu hidden.
if (t3lib_div::intInRange($this->mconf["hideMenuWhenNotOver"],0,600) && $this->mconf["hideMenuTimer"]) {
$event.="GL_resetAll('".$this->WMid."');";
}
$this->I["linkHREF"]["onMouseout"].=$event;
} else {
$this->I["linkHREF"]["onMouseover"]="GL_hideAll('".$this->WMid."');".$this->I["linkHREF"]["onMouseover"];
$event="GL_resetAll('".$this->WMid."');";
$this->I["linkHREF"]["onMouseout"].=$event;
}
$this->WMxyArray[] = "GLV_menuXY['".$this->WMid."']['Menu".$this->WMid.$key."'] = new Array(".$this->WMx.",".$this->WMy.",'itemID".t3lib_div::shortmd5($this->I["uid"]."-".$this->WMid)."','anchorID".t3lib_div::shortmd5($this->I["uid"]."-".$this->WMid)."');";
}
#debug($this->I);
}
function extProc_afterLinking($key) {
if ($this->I["uid"]) {
if (!$this->I["spacer"] && $this->WMisSub) {
$exStyle=$this->mconf["layerStyle"] ? $this->mconf["layerStyle"] : 'position:absolute;visibility:hidden';
if (trim($exStyle)) {
$exStyle=" ".$exStyle;
}
$GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["layerCounter"]++;
$zIndex = 10000-$GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["layerCounter"];
# $zIndex = (($key+2)*$this->menuNumber*100);
$divStart = '<div id="Menu'.$this->WMid.$key.'" style="z-index:'.$zIndex.';'.$exStyle.'">';
$divStop = '</div>';
$iframe = '<iframe id="Iframe" src="javascript:false;" scrolling="no" frameborder="0" style="position:absolute; top:0px; left:0px; background-color:transparent; layer-background-color:transparent; display:none;"></iframe>';
$this->divLayers[]= $divStart.$this->WMtheSubMenu.$divStop;
$this->divLayers['iframe']= $iframe;
#$this->mr = $this->mr+1;
#$this->mr_str = '';
#$this->mr_str.= '
#var DivRef'.$this->mr.' = document.getElementById(\'Menu'.$this->WMid.$key.'\');
#var IfrRef'.$this->mr.' = document.getElementById(\'Iframe'.$this->WMid.$key.'\');
#';

# $this->mr_str2.= '
# DivRef'.$this->mr.'.style.display = "block";
# IfrRef'.$this->mr.'.style.width = DivRef'.$this->mr.'.offsetWidth;
# IfrRef'.$this->mr.'.style.height = DivRef'.$this->mr.'.offsetHeight;
# IfrRef'.$this->mr.'.style.top = DivRef'.$this->mr.'.style.top;
# IfrRef'.$this->mr.'.style.left = DivRef'.$this->mr.'.style.left;
# IfrRef'.$this->mr.'.style.zIndex = DivRef'.$this->mr.'.style.zIndex - 1;
#IfrRef'.$this->mr.'.style.display = "block";
#';
#$this->mr_str3.= '
#DivRef'.$this->mr.'.style.display = "none";
#IfrRef'.$this->mr.'.style.display = "none";
#';
$this->WMhideCode.='
GL_getObjCss("Menu'.$this->WMid.$key.'").visibility = "hidden";';
$this->WMlastKey = "Menu".$this->WMid.$key;
}
if (!$this->mconf["lockPosition_addSelf"]) {
$this->WMy+=(strcmp($this->mconf["setFixedHeight"],"")?$this->mconf["setFixedHeight"]:$this->I["val"]["output_h"])+intval($this->mconf["lockPosition_adjust"]);
$this->WMx+=(strcmp($this->mconf["setFixedWidth"],"")?$this->mconf["setFixedWidth"]:$this->I["val"]["output_w"])+intval($this->mconf["lockPosition_adjust"]);
}
}
$this->WMresult.=$this->I["theItem"];
}
function extProc_beforeAllWrap($item,$key) {
if ($this->mconf["relativeToTriggerItem"]) {
$item = '<div id="anchorID'.t3lib_div::shortmd5($this->I["uid"]."-".$this->WMid).'" style="position:absolute;visibility:hidden;"></div><div id="itemID'.t3lib_div::shortmd5($this->I["uid"]."-".$this->WMid).'" width="100%" height="100%">'.$item.'</div>';
}
//debug(array($item));
return $item;
}
function isSetIntval($in) {
return $this->mconf["blankStrEqFalse"] ? strcmp($in,"") : intval($in); // return true if different from "" OR if intval()!=0
}
function extProc_finish () {
$dirL = $this->mconf["directionLeft"] ? '-GL_getObj(id).width' : '';
$dirU = $this->mconf["directionUp"] ? '-GL_getObj(id).height' : '';

$parentLayerId = end($GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["WMparentId"]);

/* $offset_addAccumulated=t3lib_div::intInRange($this->mconf["offset_addAccumulated"],-1,1);
$offset_addSelf=t3lib_div::intInRange($this->mconf["offset_addSelf"],-1,1);
$accuDim = $this->WMlockPosition_addAccumulated;
$accuDim["y"]=$offset_addAccumulated * $accuDim["y"];
$accuDim["x"]=$offset_addAccumulated * $accuDim["x"];
*/
$DoTop=array();
$GLV_menuOn=array();
$relCode=array();
$relFlag=0;
if ($this->mconf["relativeToParentLayer"] && $parentLayerId) {
$relCode["X"].='GLV_curLayerX["'.$parentLayerId.'"]+';
$relCode["Y"].='GLV_curLayerY["'.$parentLayerId.'"]+';
if ($this->mconf["relativeToParentLayer."]["addWidth"]) { $relCode["X"].='GLV_curLayerWidth["'.$parentLayerId.'"]+'; }
if ($this->mconf["relativeToParentLayer."]["addHeight"]) { $relCode["Y"].='GLV_curLayerHeight["'.$parentLayerId.'"]+'; }
}
if ($this->mconf["relativeToTriggerItem"]) {
$DoTop[]='
var parentObject = GL_getObj(GLV_menuXY[WMid][id][2]);
var TI_width = parentObject.width;
var TI_halfWidth = parentObject.width/2;
var TI_height = parentObject.height;
var anchorObj = GL_getObj(GLV_menuXY[WMid][id][3]);
var TI_x = anchorObj.x;
var TI_y = anchorObj.y;
// alert(""+TI_width+" | "+TI_height+" | "+TI_x+" | "+TI_y)
';
$relCode["X"].='TI_x+';
$relCode["Y"].='TI_y+';
#$relCode["X-"].='TI_x-';
if ($this->mconf["relativeToTriggerItem."]["addWidth"]) { $relCode["X"].='TI_width+'; }
if ($this->mconf["relativeToTriggerItem."]["addHeight"]) { $relCode["Y"].='TI_height'.$this->mconf["relativeToTriggerItem."]["addHeight"].'+'; }
if ($this->mconf["relativeToTriggerItem."]["subWidth"]) { $relCode["X"]='TI_x-TI_halfWidth'.$this->mconf["relativeToTriggerItem."]["subWidth"].'+'; }
#if ($this->mconf["relativeToTriggerItem."]["addPixelX"]) { $relCode["X"].=$this->mconf["relativeToTriggerItem."]["addPixelX"].'+';}
#if ($this->mconf["relativeToTriggerItem."]["addPixelY"]) { $relCode["Y"].=$this->mconf["relativeToTriggerItem."]["addPixelY"].'+';}
$relFlag=1;
}
if ($relFlag) {
$DoTop[]='GLV_menuOn["'.$this->WMid.'"].left = '.$relCode["X"].intval($this->mconf["leftOffset"]).$dirL.';';
$DoTop[]='GLV_menuOn["'.$this->WMid.'"].top = '.$relCode["Y"].intval($this->mconf["topOffset"]).$dirU.';';
} else {
// X position (y is fixed)
if (!strcmp($this->mconf["lockPosition"],"x")) {
$DoTop[]='GLV_menuOn["'.$this->WMid.'"].left = '.$relCode["X"].'GLV_menuXY["'.$this->WMid.'"][id][0]-('.intval($this->mconf["xPosOffset"]).')'.$dirL.';';
if ($this->isSetIntval($this->mconf["topOffset"])) {
$DoTop[]='GLV_menuOn["'.$this->WMid.'"].top = '.$relCode["Y"].intval($this->mconf["topOffset"]).$dirU.';';
}
} elseif ($this->isSetIntval($this->mconf["xPosOffset"])) {
$GLV_menuOn[]=$DoTop[]='GLV_menuOn["'.$this->WMid.'"].left = GLV_x-('.intval($this->mconf["xPosOffset"]).')'.$dirL.';';
if ($this->isSetIntval($this->mconf["topOffset"])) {
$DoTop[]='GLV_menuOn["'.$this->WMid.'"].top = '.$relCode["Y"].intval($this->mconf["topOffset"]).$dirU.';';
}
}
// Y position (x is fixed)
if (!strcmp($this->mconf["lockPosition"],"y")) {
$DoTop[]='GLV_menuOn["'.$this->WMid.'"].top = '.$relCode["Y"].'GLV_menuXY["'.$this->WMid.'"][id][1]-('.intval($this->mconf["yPosOffset"]).')'.$dirU.';';
if ($this->isSetIntval($this->mconf["leftOffset"])) {
$DoTop[]='GLV_menuOn["'.$this->WMid.'"].left = '.$relCode["X"].intval($this->mconf["leftOffset"]).$dirL.';';
}
} elseif ($this->isSetIntval($this->mconf["yPosOffset"])) {
$GLV_menuOn[]=$DoTop[]='GLV_menuOn["'.$this->WMid.'"].top = GLV_y-('.intval($this->mconf["yPosOffset"]).')'.$dirU.';';
if ($this->isSetIntval($this->mconf["leftOffset"])) {
$DoTop[]='GLV_menuOn["'.$this->WMid.'"].left = '.$relCode["X"].intval($this->mconf["leftOffset"]).$dirL.';';
}
}
}

// BordersWithIn:
$DoTop[]=$this->extCalcBorderWithin('left',$this->WMbordersWithin[0]);
$DoTop[]=$this->extCalcBorderWithin('top',$this->WMbordersWithin[1]);
$DoTop[]=$this->extCalcBorderWithin('right',$this->WMbordersWithin[2]);
$DoTop[]=$this->extCalcBorderWithin('bottom',$this->WMbordersWithin[3]);
$DoTop[]=$this->extCalcBorderWithin('left',$this->WMbordersWithin[4]);
$DoTop[]=$this->extCalcBorderWithin('top',$this->WMbordersWithin[5]);

// Code for hiding nested LAYER-menus.
#debug(array($GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["WMid"],$this->WMtempStore,$this->menuNumber,$this->WMid));

if ($this->mconf["freezeMouseover"] && !$this->mconf["freezeMouseover."]["alwaysKeep"]) {
$this->WMhideCode.='
GL'.$this->WMid.'_out("");';
}

$TEST="";
if (count($GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["WMid"])) {
reset($GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["WMid"]);
while(list(,$mIdStr)=each($GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["WMid"])) {
$this->WMhideCode.='
GL_hideAll("'.$mIdStr.'");';
$this->WMrestoreScript.='
GL_restoreMenu("'.$mIdStr.'");';
$this->WMresetSubMenus.='
if (!GLV_doReset["'.$mIdStr.'"] && GLV_currentLayer["'.$mIdStr.'"]!=null) resetSubMenu=0;';

/*
$TEST.='
testStr+=" | "+GLV_doReset["'.$mIdStr.'"]+","+GLV_currentLayer["'.$mIdStr.'"];
testStr2+=(!GLV_doReset["'.$mIdStr.'"] && GLV_currentLayer["'.$mIdStr.'"]!=null)?1:0;';
*/
}
}
$GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["WMid"]=array_merge($this->WMtempStore,$GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["WMid"]);

// Restore:
# $GLOBALS["TSFE"]->applicationData["GMENU_LAYERS"]["lockPosition_addAccumulated"] = $this->WMlockPosition_addAccumulated;

$GLOBALS["TSFE"]->additionalHeaderData["gmenu_layer_shared"]='<script type="text/javascript" src="'.$GLOBALS["TSFE"]->absRefPrefix.'media/scripts/jsfunc.layermenu.js" language="JavaScript"></script>';

$GLOBALS["TSFE"]->JSCode.= '


GLV_curLayerWidth["'.$this->WMid.'"]=0;
GLV_curLayerHeight["'.$this->WMid.'"]=0;
GLV_curLayerX["'.$this->WMid.'"]=0;
GLV_curLayerY["'.$this->WMid.'"]=0;
GLV_menuOn["'.$this->WMid.'"] = null;
GLV_gap["'.$this->WMid.'"]='.t3lib_div::intInRange($this->mconf["hideMenuWhenNotOver"],0,600).';
GLV_currentLayer["'.$this->WMid.'"] = null;
GLV_currentROitem["'.$this->WMid.'"] = null;
GLV_hasBeenOver["'.$this->WMid.'"]=0;
GLV_doReset["'.$this->WMid.'"]=false;
GLV_lastKey["'.$this->WMid.'"] = "'.$this->WMlastKey.'";
GLV_onlyOnLoad["'.$this->WMid.'"] = '.($this->WMonlyOnLoad?1:0).';
GLV_dontHideOnMouseUp["'.$this->WMid.'"] = '.($this->mconf["dontHideOnMouseUp"]?1:0).';
GLV_dontFollowMouse["'.$this->WMid.'"] = '.($this->mconf["dontFollowMouse"]?1:0).';
GLV_date = new Date();
GLV_timeout["'.$this->WMid.'"] = GLV_date.getTime();
GLV_timeoutRef["'.$this->WMid.'"] = '.t3lib_div::intInRange($this->mconf["hideMenuTimer"],0,20000).';
GLV_menuXY["'.$this->WMid.'"] = new Array();
'.implode(chr(10),$this->WMxyArray).'
'.$this->WMrestoreVars;

if ($this->mconf["freezeMouseover"]) {
$GLOBALS["TSFE"]->JSCode.= '
// Alternative rollover/out functions for use with GMENU_LAYER
function GL'.$this->WMid.'_over(mitm_id) {
GL'.$this->WMid.'_out(""); // removes any old roll over state of an item. Needed for alwaysKeep and Opera browsers.
switch(mitm_id) {
'.implode(chr(10),$this->VMmouseoverActions).'
}
GLV_currentROitem["'.$this->WMid.'"]=mitm_id;
}
function GL'.$this->WMid.'_out(mitm_id) {
if (!mitm_id) mitm_id=GLV_currentROitem["'.$this->WMid.'"];
switch(mitm_id) {
'.implode(chr(10),$this->VMmouseoutActions).'
}
}
';
}
$GLOBALS["TSFE"]->JSCode.= '
function GL'.$this->WMid.'_getMouse(e) {
if (GLV_menuOn["'.$this->WMid.'"]!=null && !GLV_dontFollowMouse["'.$this->WMid.'"]){
'.implode(chr(10),$GLV_menuOn).'
}
GL_mouseMoveEvaluate("'.$this->WMid.'");
}
function GL'.$this->WMid.'_hideCode() {
'.$this->WMhideCode.'
}
function GL'.$this->WMid.'_doTop(WMid,id) {
'.trim(implode(chr(10),$DoTop)).'
}
function GL'.$this->WMid.'_restoreMenu() {
'.$this->WMrestoreScript.'
}
function GL'.$this->WMid.'_resetSubMenus() {
var resetSubMenu=1;
'.$this->WMresetSubMenus.'
return resetSubMenu;
}

GLV_timeout_pointers[GLV_timeout_count] = "'.$this->WMid.'";
GLV_timeout_count++;

';

#####
$GLOBALS["TSFE"]->JSCode.= '

function iframer(state,key)
{
var DivRef = document.getElementById(key);
var IfrRef = document.getElementById(\'Iframe\');
if(state)
{
DivRef.style.display = "block";
IfrRef.style.width = DivRef.offsetWidth;
IfrRef.style.height = DivRef.offsetHeight;
IfrRef.style.top = DivRef.style.top;
IfrRef.style.left = DivRef.style.left;
IfrRef.style.zIndex = DivRef.style.zIndex - 1;
IfrRef.style.display = "block";
}
else
{
//DivRef.style.display = "none";
IfrRef.style.display = "none";
}
}


';

#####
/*
$GLOBALS["TSFE"]->JSCode.= '
function test_func(){
var testStr="";
var testStr2="";
'.$TEST.'
window.status = testStr2+" - "+testStr;
}
';
*/
/* $GLOBALS["TSFE"]->JSCode.= '
function debugObj(obj,name) {
var acc;
for (i in obj) {
if (obj[i]) {
acc+=i+": "+obj[i]+"\n";
}
}
alert("Object: "+name+"\n\n"+acc);
}
';
*/
$GLOBALS["TSFE"]->JSeventFuncCalls["onload"]["GL_initLayers()"]= 'GL_initLayers();';
$GLOBALS["TSFE"]->JSeventFuncCalls["onload"][$this->WMid]= 'GL_restoreMenu("'.$this->WMid.'");';
$GLOBALS["TSFE"]->JSeventFuncCalls["onmousemove"]["GL_getMouse(e)"]= 'GL_getMouse(e);'; // Should be called BEFORE any of the "local" getMouse functions!
$GLOBALS["TSFE"]->JSeventFuncCalls["onmousemove"][$this->WMid]= 'GL'.$this->WMid.'_getMouse(e);';
$GLOBALS["TSFE"]->JSeventFuncCalls["onmouseup"][$this->WMid]= 'GL_mouseUp(\''.$this->WMid.'\',e);';
$GLOBALS["TSFE"]->divSection.=implode($this->divLayers,chr(10)).chr(10);

return parent::extProc_finish();
}
function extCalcBorderWithin($kind,$integer) {
if ($integer) {
switch($kind) {
case "right":
case "bottom":
$add="";
if ($kind=="right") {$add='GL_getObj(id).width'; $key = "left";}
if ($kind=="bottom") {$add='GL_getObj(id).height'; $key = "top";}
$str = 'if (parseInt(GLV_menuOn["'.$this->WMid.'"].'.$key.')+'.$add.'>'.$integer.') GLV_menuOn["'.$this->WMid.'"].'.$key.'='.$integer.'-'.$add.';';
break;
default:
$str = 'if (parseInt(GLV_menuOn["'.$this->WMid.'"].'.$kind.')<'.$integer.') GLV_menuOn["'.$this->WMid.'"].'.$kind.'='.$integer.';';
break;
}
}
return $str;
}
}


// FULL DUPLICATE FROM gmenu_layers END:


$GLOBALS["TSFE"]->tmpl->menuclasses.=",tmenu_layers";

if (defined("TYPO3_MODE") && $TYPO3_CONF_VARS[TYPO3_MODE]["XCLASS"]["media/scripts/tmenu_layers.php"]) {
include_once($TYPO3_CONF_VARS[TYPO3_MODE]["XCLASS"]["media/scripts/tmenu_layers.php"]);
}

?>
    (1-1/1)