function createMenuStyle() {
var menuStyle = '';
menuStyle += '\n';
document.write(menuStyle);
}
createMenuStyle();
var menuTimer = null;
var currentItem = false;
var openMenu = false;
function initMenu() {
createMenu('main');
}
function createMenu(name,parent) {
var lvl;
var arrName = name;
var array = eval(arrName + 'Arr');
var container = new layerObj(arrName + 'Cont');
container.hasParent = (parent) ? true : false;
container.activeItem = false;
container.setZindex(700);
if (container.hasParent) {
container.parentItem = parent;
container.parentItem.subMenu = container;
container.hideParent = _hideParent;
lvl = 'sub';
} else {
lvl = 'main';
container.setStyle("padding-top", "15px");
}
var firstItem = false;
var containerHeight = false;
var arrSubName,prevItem,itemName;
var item,overItem,dummyItem;
var itemWidth,itemHeight;
if (maxMenuItems < array.length - 1) {
var splitMenu = true;
var splitPoint = Math.floor(array.length / 2);
} else {
var splitMenu = false;
}
for (var i = 1; i < array.length; i++) {
//window.status = arrName + i;
arrSubName = arrName + i + 'sub';
prevItem = (i > 1) ? item : false;
itemName = arrName + i + 'Item';
itemWidth = eval(lvl + 'ItemWidth');
itemHeight = eval(lvl + 'ItemHeight');
item = (container.hasParent) ? new layerObj(itemName,container) : new layerObj(itemName);
item.hasSub = eval('window.' + arrSubName + 'Arr') ? true : false;
item.container = container;
item.clearItem = _clearItem;
item.setup = _itemSetup;
if (splitMenu && i == splitPoint + 1) {
item.setup(array[i],prevItem,firstItem);
} else {
item.setup(array[i],prevItem);
}
if (i == 1) {
firstItem = item;
} else if (splitMenu && i == splitPoint - 1) {
containerHeight = item.getTop() + item.getHeight() - menuBorderWidth;
}
if (item.hasSub) {
createMenu(arrSubName,item);
}
}
if (!container.hasParent) {
container.moveTo(menuLeft - menuBorderWidth,menuTop - mainItemSpacerHeight - 2 * menuBorderWidth);
container.show();
//window.status = '';
} else {
container.hide();
if(document.all) {
container.setWidth(item.getLeft() + item.getWidth() + menuBorderWidth*2);
container.setHeight(((!containerHeight) ? item.getTop() : containerHeight) + item.getHeight() + menuBorderWidth*2);
} else {
container.setWidth(item.getLeft() + item.getWidth());
container.setHeight(((!containerHeight) ? item.getTop() : containerHeight) + item.getHeight());
}
}
window.status = "";
}
function _itemSetup(array,prevItem,firstItem) {
this.inherit();
if (this.container.hasParent) {
//this.overClass = "subitemover";
this.outClass = "subitemout";
this.setClassName(this.outClass);
this.container.setStyle("border", "1px solid #333333");
var topElement = getTopParent(this.id);
this.setupSub = _setupSub;
this.setupSub(array, topElement);
if (prevItem) {
if (firstItem) {
this.moveTo(firstItem.getLeft() + subItemWidth + menuBorderWidth,firstItem.getTop());
} else {
//this.moveTo(prevItem.getLeft(),prevItem.getTop() + subItemHeight);
this.moveTo(prevItem.getLeft(),prevItem.getTop() + prevItem.getHeight());
}
}
} else {
this.overClass = 'mainitemover';
this.outClass = 'mainitemout';
this.setupMain = _setupMain;
// Overklasse setzen, wenn aktiv (siehe index.php3)
if(array[2] != array[3])
{
this.setClassName(this.outClass);
}
else
{
this.outClass = this.overClass;
this.setClassName(this.outClass);
}
this.setupMain(array);
if (prevItem) {
this.moveTo(prevItem.getLeft() + mainItemWidth + menuBorderWidth,prevItem.getTop());
} else {
this.moveTo(menuLeft - menuBorderWidth,menuTop - mainItemSpacerHeight - menuBorderWidth);
}
}
this.layer.parentObj = this;
this.layer.onmouseover = _itemOver;
this.layer.onmouseout = _itemOut;
this.link = (array[1]) ? array[1] : false;
if (this.link) this.layer.onclick = _itemClick;
}
function _setupSub(array, topElement) {
window.status = array[0]; // + " wird geschrieben...";
if (this.hasSub) {
this.outImg = subImgOut;
this.overImg = subImgOver;
this.style.backgroundImage = 'url(' + subImgOut.src + ')';
}
topElement = topElement.parentObj;
//var topElement = getTopParent(this.id);
this.style.backgroundColor = topElement.getSubMouseOutColor();
this.setMouseOverColor(topElement.getSubMouseOverColor());
this.setMouseOutColor(topElement.getSubMouseOutColor());
this.write(array[0]);
}
function _setupMain(array) {
this.outImg = mainImgKat0;
this.overImg = mainImgKat0;
this.style.backgroundColor = array[2]; // BGMAINCOLOR
this.setMouseOverColor(array[3]); // BGCOLOR
this.setMouseOutColor(array[2]);
this.setSubMouseOverColor(array[4]);
this.setSubMouseOutColor(array[3]);
//if(array[2] == array[3]) this.setClassName('mainitemover');
this.write(""+array[0]+"");
}
function getTopParent(id)
{
var topElement = document.getElementById("main"+id.substr(4,1)+"Item");
return topElement;
}
function _itemOver() {
currentItem = this.parentObj;
if (currentItem.container.activeItem) {
currentItem.container.activeItem.clearItem();
if (currentItem.container.activeItem.hasSub) {
currentItem.container.activeItem.subMenu.hide();
}
}
clearTimeout(menuTimer);
currentItem.container.activeItem = this.parentObj;
if (openMenu && openMenu != currentItem.container) {
hideAll();
openMenu = false;
}
if (currentItem.container.hasParent) {
//currentItem.setClassName(currentItem.overClass);
//currentItem.setClassName('subitemover');
currentItem.style.backgroundColor = currentItem.getMouseOverColor();
if (currentItem.link) {
currentItem.style.cursor = (document.all) ? 'hand' : 'pointer';
}
if (currentItem.hasSub && currentItem.style.backgroundImage != 'url(' + currentItem.overImg.src + ')') currentItem.style.backgroundImage = 'url(' + currentItem.overImg.src + ')';
} else {
currentItem.setClassName(currentItem.overClass);
currentItem.style.backgroundColor = currentItem.getMouseOverColor();
}
if (currentItem.hasSub) {
openMenu = currentItem.subMenu;
if (currentItem.container.hasParent) {
var openMenuTop = ((currentItem.getPageTop() + openMenu.getHeight()) > (currentItem.container.getPageTop() + currentItem.container.getHeight())) ? currentItem.getPageTop() : currentItem.getPageTop();
openMenu.moveTo(currentItem.getPageLeft() + currentItem.getWidth() + menuBorderWidth,openMenuTop);
} else {
openMenu.moveTo(currentItem.getPageLeft(),currentItem.getPageTop() + currentItem.getHeight() + menuBorderWidth - 2);
}
openMenu.show();
}
}
function _itemOut() {
currentItem = false;
if (!openMenu || openMenu == this.parentObj.container) this.parentObj.clearItem();
currentItem = this.parentObj;
if (currentItem.container.hasParent) {
currentItem.style.backgroundColor = currentItem.getMouseOutColor();
}
if (openMenu) menuTimer = setTimeout('hideAll()',menuKeepAlive);
}
function _itemClick() {
window.location.href = "index.php3?lang="+lang+"&load=" + this.parentObj.link + "";
return false;
}
function hideAll() {
openMenu.parentItem.clearItem();
openMenu.hide();
openMenu.hideParent();
}
function _hideParent() {
this.parentItem.clearItem();
if (this.hasParent && this.parentItem.container.hasParent && this.parentItem.container != currentItem.container) {
this.parentItem.container.hide();
this.parentItem.container.hideParent();
}
}
function _clearItem() {
if (this.container.hasParent) {
//this.setClassName(this.outClass);
//this.setClassName('subitemout');
if (this.hasSub && this.style.backgroundImage != 'url(' + this.outImg.src + ')') this.style.backgroundImage = 'url(' + this.outImg.src + ')';
} else {
this.setClassName(this.outClass);
this.style.backgroundColor = this.getMouseOutColor();
if (this.style.backgroundImage != 'url(' + this.outImg.src + ')') this.style.backgroundImage = 'url(' + this.outImg.src + ')';
}
}