/* original code by garry@ascii-turf.net
  * please feel free to use/mend/modify/destroy as the needs see fit
  * but please tell me what you did with it so's i know.
  * by making mrexcited into an array you should be able to make it handle any depth of
  * sub-navs. i just don't feel the need.
  * ta.
  */

var mrexcited = null;
var mrexcited2 = null;
var openmenu;
var TimeoutDelay = 100; // delay between mouse leaving item and menu disappearing
var timer = 0; 
var timer2 = 0;
// die folgenden drei Variablen kann man weglassen, wenn man die Funktion iurl() in der Funktion menu_over() aktiviert; iurl funktioniert aber nur auf einem Server
var path = "bilder/";
var ext = ".gif";
var name;

function mrexcite(d)
{
	openmenu = document.getElementById(d);
	openmenu.style.visibility = "visible";
}

function menu_over(d)
{
	d.hold = true;
	if (d.excited) 
		return;
	if (mrexcited && d != mrexcited) 
		_hide();
	var img = d.theimage;
	if (!img)
	{	
		var a;
		a = d.childNodes[0];
		d.theimage = a;
		img = a;
	}
	if (!img.overlight) 
	{
		/* wenn die Datei auf einem Server liegt, kann man auch die Funktion iurl() benutzen
		var u = new iurl(img.src);
		img.overlight = u.path + u.name+ '_o' + u.ext;
		*/
		var p0 =  img.src.lastIndexOf("/")+1;
		var p1 =  img.src.lastIndexOf(".");
		name = img.src.substring(p0,p1);
		img.overlight = path + name+ '_o' + ext;
	}
	img.osrc = img.src;
	img.src =  img.overlight;
	var sub = d.bone;
	if (!sub) 
	{
		for (var i = 0; i < d.childNodes.length; i++)
		{
			if (d.childNodes[i].nodeName.toLowerCase() == 'div')
			{
				sub = d.childNodes[i];
				break;
			}
		}
		sub.dog = d;
		d.bone = sub;
	}
	sub.style.visibility = 'visible';
	d.hold = true;
	d.excited = true;
	mrexcited = d;
	if(openmenu)
		openmenu.style.visibility = "hidden";
}

function smenu_over(d) 
{
	//d = document.getElementById(d);
	d.hold = true;
	if (d.excited) 
		return;
	if (mrexcited2 && d != mrexcited2)
		_hide2();
	var sub = d.bone;
	if (!sub)
	{
		if (d.nodeName.toLowerCase() == 'div') 
		{
			sub = d;
		}
		d.bone = sub;
		sub.dog = d;
	}
	sub.style.visibility = 'visible';
	d.hold = true;
	d.excited = true;
	mrexcited2 = d;
}

function smenu_out(d)
{
	//d = document.getElementById(d);
	mrexcited2 = d;
	d.hold = false;
	_set2();
}

function menu_out(d) 
{
	mrexcited = d;
	d.hold = false;
	_set();
}

function _set() {
	clearTimeout(timer);
	timer = setTimeout('_hide()', TimeoutDelay);
}

function _unset(){
	clearTimeout(timer);
}

function _hide() {
	d = mrexcited;
	if (d.hold) return;
	d.bone.style.visibility = 'hidden';
	var img = d.theimage;
	img.src = img.osrc;
	d.excited = false;
	if(openmenu)
		openmenu.style.visibility = "visible";
}

function _set2() {
	clearTimeout(timer2);
	timer2 = setTimeout('_hide2()', TimeoutDelay);
}

function _unset2(){
	clearTimeout(timer2);
}

function _hide2() {
	d = mrexcited2;
	if (d.hold) return;
	d.bone.style.visibility = 'hidden';
	d.excited = false;
}


function iurl(s) {
	re = /http:\/\/([a-z0-9\:\.\-]+)\/(.+)/i;
	a = re.exec(s);
	this.host = a[1];
	p= a[2];
	re = /([a-z0-9_\/]+)\/([a-z0-9_]+)(\.(gif|jpg))/i;
	a = re.exec(p);
	this.name = a[2];
	this.file =a[2] + a[3];
	this.ext = a[3];
	this.path = '/' + a[1] + '/';
	re = /(nav\d\d_[a-z]+)(_(s|_o))?$/i; 
	a = re.exec(this.name);
	this.name = a[1];
}

function gebi(i) { 
	return  document.getElementById(i); 
}

/* except this, not by me, by them macromedia folks. thanks guys. */


// ========= 
