﻿// Vars
var sm_menu = null; // Menüleiste
var sm_sub = null; // Submenü
var sm_btn = null; // Button
var sm_name = null; // Name
var sm_menu_top = 0; // Obere Kante
var sm_menu_bottom = 0; // Obere Kante


// Öffnen
function subOpen(button, name)
{
	if (sm_name == name) return;
	// vorheriges Schließen
	subClose();
	// Objekte holen
	if (!sm_menu) sm_menu = document.getElementById('sm_menubar');
	sm_sub = document.getElementById('sm_' + name);
	sm_btn = button
	sm_name = name;
	// Position reset
	sm_sub.style.top = '0px';
	sm_sub.style.left = '0px';
	// Positionieren
	sm_menu_top = posY(sm_menu);
	sm_menu_bottom = sm_menu_top + sm_menu.offsetHeight;
	var left = (button.offsetWidth - sm_sub.offsetWidth) / 2 + posX(button);
	if (left < 10) left = 10;
	// Einrichten
	sm_sub.style.top = sm_menu_bottom + 'px';
	sm_sub.style.left = left + 'px';
	sm_sub.style.visibility = 'visible';
	sm_btn.className = 'hover';
}

// Update
function subUpdate(e)
{
	if (!sm_sub) return;
	// Daten holen
	var mx, my;
	if (window.event) { mx = window.event.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft); my = window.event.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop); }
	else if (e) { mx = e.pageX; my = e.pageY; }
	// Menüleiste testen
	if (my >= sm_menu_top - 50 && my <= sm_menu_bottom + 50) return;
	// Menü testen
	var x1, y1, x2, y2;
	x1 = posX(sm_sub);
	y1 = posY(sm_sub);
	x2 = x1 + sm_sub.offsetWidth;
	y2 = y1 + sm_sub.offsetHeight;
	if (mx >= x1 - 50 && mx <= x2 + 50 && my >= y1 - 50 && my <= y2 + 50) return;
	// Schließen
	subClose();
}

// Schließen
function subClose(e)
{
	// Submenü
	if (sm_sub)
	{
		sm_sub.style.visibility = 'hidden';
		sm_btn.className = '';
		sm_sub = null;
		sm_name = null;
	}
}


// Positionsdaten abrufen
function posY(obj) {
 var curtop = 0;
 if (obj.offsetParent) {
  while (obj.offsetParent) {
   curtop += obj.offsetTop
   obj = obj.offsetParent;
  }
 } else if (obj.y) {
  curtop += obj.y;
 }
 return curtop;
}
function posX(obj) {
 var curleft = 0;
 if (obj.offsetParent) {
  while (obj.offsetParent) {
   curleft += obj.offsetLeft
   obj = obj.offsetParent;
  }
 } else if (obj.x) {
  curleft += obj.x;
 }
 return curleft;
}



// Events adden
try
{
	document.onmousemove = subUpdate;
}
catch(err){}
