// JavaScript Document
var pos = new Object();
pos.left = 0;
pos.top = 0;

function get_window_height()
{
    win = window;
    var hoehe = 0;
    if(typeof win.innerWidth != 'undefined')
        hoehe = win.innerHeight;
    else
    {
         var obj = get_body(win);
         hoehe = parseInt(obj.clientHeight);
    }
    return hoehe;
}
function get_body(w)
{
	if(w.document.compatMode && w.document.compatMode == "CSS1Compat")
		return w.document.documentElement;
	else
		return (w.document.body || null); 
}

function mouse_pos_move(evt) 
{ 
	if(!evt) evt = window.event; 
	pos.left = evt.clientX;
	pos.top = evt.clientY; 
	var body = (window.document.compatMode && window.document.compatMode == "CSS1Compat") ?  
	window.document.documentElement : window.document.body || null; 

	if (body) 
	{ 
		pos.left += body.scrollLeft; 
		pos.top += body.scrollTop; 
	} 

	var id = 10000;
	var element = document.getElementById("submenu_" + id);
	while(element)
	{
		if(element.style.visibility == "visible")
		{
			if(submenu_ausblenden(element))
			{
				element.style.visibility = "hidden";
				element.style.display = "none";
			}
		}
		id += 10000;
		element = document.getElementById("submenu_" + id);
	}
	
	//Abfrage für den Kalender
	if(kalender_ausblenden(document.getElementById("kalender")))
	{
		object_disable("kalender");
		if(document.getElementById("anreisedatum")) document.getElementById("anreisedatum").blur();
		if(document.getElementById("abreisedatum")) document.getElementById("abreisedatum").blur();
	}
}

document.onmousemove 	= mouse_pos_move;

function show_submenu(elem)
{
	var id = 10000;
	var element = document.getElementById("submenu_" + id);
	while(element)
	{
		element.style.visibility = "hidden";
		element.style.display = "none";
		
		id += 10000;
		element = document.getElementById("submenu_" + id);
	}

	//Breite und left Position des letzten Menüpunktes
	id = last_mainmenu;
	var last_left = get_left(document.getElementById("page_" + id + "_0"));
	var last_width = document.getElementById("page_" + id + "_0").scrollWidth;

	//Div is submenu
	var submenu = document.getElementById("submenu_" + elem);

	//Wenn Submenü existiert, dann einblenden
	if(submenu)
	{
		submenu.style.display = "";
		
		if(submenu.offsetWidth > 10)
		{
			submenu.style.visibility = "visible";

			//Position des Div setzen (Left) -> bei ID 10000 das Menü weiter links setzen
			if(elem == first_mainmenu)
				submenu.style.left = (get_left(document.getElementById("page_" + elem + "_0")) - 27) + "px";
			else	
			submenu.style.left = get_left(document.getElementById("page_" + elem + "_0")) + "px";
			submenu.style.top = 123 + "px";
			
			//Breite setzen
			if(submenu.style.width == "")
			{
				if(parseInt(submenu.offsetWidth) < document.getElementById("page_" + elem + "_0").offsetWidth)
					submenu.style.width = (document.getElementById("page_" + elem + "_0").offsetWidth) + "px";
				else
					submenu.style.width = (submenu.offsetWidth) + "px";
			}

			if((parseInt(submenu.style.left) + parseInt(submenu.style.width)) > (last_left + last_width))
			{
				//Spezialabfrage für die letzte ID
				submenu.style.left = ((last_left + last_width) - parseInt(submenu.offsetWidth) + 2) + "px";
			}
		}
	}
}

function disable_submenu(elem)
{
	//Div is submenu
	var submenu = document.getElementById("submenu_" + elem);
	
	//Wenn Submenü existiert, dann ausblenden
	if(submenu)
	{
		//wenn Cursor außerhalb des Bereiches
		if(submenu_ausblenden(submenu))
		{
			submenu.style.visibility = "hidden";
			submenu.style.display = "none";
		}
	}
}

function object_enable(elem)
{
	document.getElementById(elem).style.visibility = "visible";
	document.getElementById(elem).style.display = "";
}

function object_disable(elem)
{
	document.getElementById(elem).style.visibility = "hidden";
	document.getElementById(elem).style.display = "none";
}

function submenu_ausblenden(element)
{
	//Element
	//Kann nur für position:absolute oder fixed verwendet werden
	if(element)
	{
		if(isNaN(parseInt(element.style.width)) || isNaN(parseInt(element.style.height)))
			set_height(element);
		
		var left = parseInt(element.style.left);
		var top = parseInt(element.style.top);
		var breite = parseInt(element.style.width);
		var hoehe = parseInt(element.style.height);
		
		//Standardabweichung erlaubte pixel vom fenster entfernt
		var abweichung = 25;
		//alert(pos.left + " " + pos.top + " " + left + " " + top + " " + breite + " " + hoehe);
		if((pos.left < left - abweichung) || (pos.left > left + breite + abweichung) || (pos.top < top - abweichung - 40) || (pos.top > top + hoehe + abweichung)) 
			return true;
		else
			return false;
	}
}

function set_height(elem)
{
	//Setzt die Höhe von indiv. Objekten auf die richtige Höhe zur Möglichkeit zum Ausblenden
	elem.style.width = elem.scrollWidth + "px";
	elem.style.height = elem.scrollHeight + "px";
}

function get_left(element)
{
	var left = 0;
	do 
	{
		left += element.offsetLeft || 0;
		element = element.offsetParent;
	} while (element);

	return left;
}
