$(document).ready(function() {
 	$('div.menu1 div.boxc a').mouseover(function() {
  		softopen(this,'1');
	})
	.mouseout(function() {
  		softclose(this,'1');
	});
 	$('div.menu2 div.boxc a').mouseover(function() {
  		softopen(this,'2');
	})
	.mouseout(function() {
  		softclose(this,'2');
	});
 	$('div.menu3 div.boxc a').mouseover(function() {
  		softopen(this,'3');
	})
	.mouseout(function() {
  		softclose(this,'3');
	});

	var d = document.URL;
	var r = document.referrer;
	if ( r.match(/index.html|agentur.html|\/$/i) && !d.match(/index.html|agentur.html|\/$/i)) {
		openmenulevel = 1;
		jQuery.each($('div.menu1 div.boxc a:first'), function() {
			openall(this,openmenulevel);
		})
		closeopenmenu = true
	}
	
	jQuery.each($('div.menu1 div.boxc a#menuflag'), function() {
		openmenulevel = 1;
		openall(this,openmenulevel);
	})
	
	window.setInterval("softstep()", 10);
})

var softmenus = new Array();
var softmini = 15;
var softmaxi = 145;
var softmaxiall = 95;
var openmenulevel = null;
var closeopenmenu = false;

function softnode(n)
{
	this.node = n;
	this.size = n.offsetWidth < (softmini + softmaxi) / 2 ? softmini : softmaxi;
	this.isDefault = this.size == softmaxi;
	this.inner = n.getElementsByTagName("span")[0];
}

function softmenu(node,level)
{
	this.level = level;
	this.nodes = new Array();
	this.open = null;
	this.mode = "";
	this.def = "none"
	var ns = node.parentNode.parentNode.getElementsByTagName("a");
	for( var i = 0; i < ns.length; i++ ) {
		var sn = new softnode(ns[i]);
		if( sn.isDefault ) {
			this.def = sn;
		}
		this.nodes.push(sn);
	}
}

function getSoftmenu(node,level)
{
	for( var i = 0; i < softmenus.length; i++ ) {
		if( softmenus[i].level == level ) {
			return softmenus[i];
		}
	}
	var ret = new softmenu(node,level);
	softmenus.push(ret);
	return ret;
}

function getSoftnode(node,level)
{
	var softmenu = getSoftmenu(node,level);
	for( var i = 0; i < softmenu.nodes.length; i++ ) {
		if( softmenu.nodes[i].node == node ) {
			return softmenu.nodes[i];
		}
	}
	throw "Unknown Softnode";
}

function softopen(node,level)
{
	var sm = getSoftmenu(node,level);
	sm.mode = "open";
	sm.open = getSoftnode(node,level);
}

function softclose(node,level)
{
	var sm = getSoftmenu(node,level);
	sm.mode = "restore";
	sm.open = sm.def;
}

function openall(node,level) {
	var sm = getSoftmenu(node,level);
	for( var i = 0; i < sm.nodes.length; i++ ) {
		var sn = sm.nodes[i];
		sn.size = softmaxiall;
		sn.node.style.width = "" + sn.size + "px";
		sn.node.style.backgroundColor="#990000";
		sn.node.style.width = "" + softmaxiall + "px";
		sn.inner.style.visibility = "visible"; 
	}
	sm.mode = "restore";
	sm.open = sm.def;
}


function resizeto(softnode,size)
{
	if( softnode.size < size ) {
		softnode.size = softnode.size + 5;
	} else if( softnode.size > size ) {
		softnode.size = softnode.size - 5;
	}
	softnode.node.style.width = "" + softnode.size + "px";
	return softnode.size == size;
}

function softstep()
{
	for( var j = 0; j < softmenus.length; j++ ) {
		if( softmenus[j].open && softmenus[j].level != openmenulevel) {
			for( var i = 0; i < softmenus[j].nodes.length; i++ ) {
				var sn = softmenus[j].nodes[i];
				if( sn != softmenus[j].open && sn.size > softmini ) {
					if( resizeto( sn, softmini ) ) {
						sn.node.style.backgroundColor="";
						sn.node.style.width="" + softmini + "px";
						sn.inner.style.visibility = "hidden";
					}
					break;
				}
			}
			if (softmenus[j].open != "none") {
				if (softmenus[j].mode != "restore") {
					softmenus[j].open.node.style.backgroundColor = "#990000";
					softmenus[j].open.node.style.color = "#ffffff";
				}
				softmenus[j].open.inner.style.visibility = "visible";
				if (resizeto(softmenus[j].open, softmaxi)) {
					if (softmenus[j].mode == "restore") {
						softmenus[j].open.node.style.backgroundColor = "";
						softmenus[j].open.node.style.color = "";
						softmenus[j].open.inner.style.visibility = "";
						softmenus[j].open.node.style.width = "";
					}
					softmenus[j].open = null;
				}
			}
		}
	}
	if (closeopenmenu) {
		for (var j = 0; j < softmenus.length; j++) {
			if (softmenus[j].level == openmenulevel && softmenus[j].open) {
				for (var i = 0; i < softmenus[j].nodes.length; i++) {
					var sn = softmenus[j].nodes[i];
					if (sn != softmenus[j].open && sn.size > softmini) {
						if (resizeto(sn, softmini)) {
							sn.node.style.backgroundColor = "";
							sn.node.style.width = "" + softmini + "px";
							sn.inner.style.visibility = "hidden";
							closeopenmenu = false;
						}
					}
				}
			}
		}
		if (!closeopenmenu) {
			openmenulevel = null;
		}
	}
}
