image = 0;
//images = new Array('changing/finale-780x350.jpg','changing/clowns-780x350.jpg','changing/kidsdrumming-780x350.jpg','changing/finale2-780x350.jpg','changing/guitar-780x350.jpg','changing/kids-glue-780x350.jpg');
images = new Array(	'changing/2009/finale-780x350.jpg',
					'changing/2009/tickets-780x350.jpg',
					'changing/2009/mandel-780x350.jpg',
					'changing/2009/family-780x350.jpg',
					'changing/2009/anderson-albert-780x350.jpg',
					'changing/clowns-780x350.jpg',
					'changing/2009/food-780x350.jpg',
					'changing/2009/but-780x350.jpg',
					'changing/2009/volunteers-780x350.jpg',
					'changing/2009/epl-780x350.jpg',
					'changing/2009/fans-780x350.jpg');
imgspath = "images/"

function configHomeButton()
{
	homemenuitem = document.getElementById('mi-home');

	if (!homemenuitem)
		return;
	
	addonmouseover(homemenuitem, function(e) { changeImage('menuhome',imgspath+'home-ov.png'); });
	addonmouseout(homemenuitem, function(e) { changeImage('menuhome',imgspath+'home.png'); })
}

function changeImage(id, imgpath)
{
	elem = document.getElementById(id);
	if (elem)
		elem.src = imgpath;
}

function clickA(e)
{
	var targ;
	var anchor;
	
	if (!e)
		e = window.event;
	
	if (e.target)
		targ = e.target;
	else
		targ = e.srcElement;
	
	if (0 == (mi = targ.id.indexOf('mi-')))
		anchor = document.getElementById(targ.id.substring(3));
	else
		anchor = targ;
	
	if (anchor && (anchor.tagName.toUpperCase() == 'A'))
		location.href = anchor.href;
}

function submenuRoot(text)
{
	var submenu;
	var slash = text.indexOf('-');
	
	if (-1 != slash)
		submenu = text.substr(0,slash);
	else
		submenu = text;
	
	return submenu;
}

function offsetLeft(obj)
{
	if (obj != null)
		return obj.offsetLeft + offsetLeft(obj.offsetParent);
	else
		return 0;
}

function offsetTop(obj)
{
	if (obj != null)
		return obj.offsetTop + offsetTop(obj.offsetParent);
	else
		return 0;
}

function MIOffsetTop(anchor)
{
	offset = 0;
	id = anchor.id;
	
	if (0 != (id.indexOf("mi-")))
		id = 'mi-' + id;
		
	obj = document.getElementById(id);
	
	if (obj)
		offset = offsetTop(obj) + obj.offsetHeight;
		
	return offset;
}

function MIOffsetRight(anchor)
{
	offset = 0;
	id = anchor.id;
	
	if (0 != (id.indexOf("mi-")))
		id = 'mi-' + id;
	
	if (2 != (lastDash = id.lastIndexOf("-")))
		id = id.substr(0, lastDash);

	obj = document.getElementById(id);
	
	if (obj)
		offset = offsetLeft(obj) + obj.offsetWidth;
	
	return offset;
}

function MIOffsetLeft(anchor)
{
	offset = 0;
	id = anchor.id;
	
	if (0 != (id.indexOf("mi-")))
		id = 'mi-' + id;
	
	if (2 != (lastDash = id.lastIndexOf("-")))
		id = id.substr(0, lastDash);

	obj = document.getElementById(id);
	
	if (obj)
		offset = offsetLeft(obj);
	
	return offset;
}

function mouseoverA(e)
{
	var targ;
	var anchor;
	
	if (!e)
		e = window.event;
	
	if (e.target)
		targ = e.target;
	else
		targ = e.srcElement;
	
	if (0 == (mi = targ.id.indexOf('mi-')))
		anchor = document.getElementById(targ.id.substring(mi+3));
	else
		anchor = targ;

	menus = document.getElementsByTagName('ul');
	for (i=0; i< menus.length; i++)
	{
		if (menus[i].id.indexOf('submenu') != -1)
		{
			if (menus[i].id.indexOf(submenuRoot("submenu"+anchor.id)) != -1)
			{
				mainmenu = document.getElementById('menu');
				if (mainmenu)
				{
					menuRight = offsetLeft(mainmenu) + mainmenu.offsetWidth;
				}
				else
					menuRight = 780;
				
				// the anchor link the li is the anchor eg: issue-help (where mi was mi-issue-help)
//				menus[i].style.left = (MIOffsetRight(anchor) - menus[i].offsetWidth + 1) + "px";
				menus[i].style.left = Math.min(MIOffsetLeft(anchor), 1+menuRight-menus[i].offsetWidth) + "px";
				if (checkParentNotSubMenu(anchor))
					menus[i].style.top = (MIOffsetTop(anchor) - 1) + "px";
				menus[i].style.visibility = 'visible';
			}
			else
				menus[i].style.visibility = 'hidden';
		}
	}
}

function mouseoutSM(e)
{
}

function addonmouseover(elem,func)
{
	var oldomo = elem.onmouseover;
	if (typeof(func) != 'function')
	{
		elem.onmouseover = func;
	}
	else
		elem.onmouseover = function(event)
		{
			if (oldomo)
				oldomo(event);
			func(event);
		};
}

function addonmouseout(elem,func)
{
	var oldomo = elem.onmouseout;
	if (typeof(func) != 'function')
	{
		elem.onmouseout = func;
	}
	else
		elem.onmouseout = function(event)
		{
			if (oldomo)
				oldomo(event);
			func(event);
		};
}

function addonload(elem,func)
{
	var oldol = elem.onload;
	if (typeof(func) != 'function')
	{
		elem.onload = func;
	}
	else
		elem.onload = function(event)
		{
			if (oldol)
				oldol(event);
			func(event);
		};
}

function checkParentNotSubMenu(elem)
{
	do
	{
		elem = elem.parentNode;
	}
	while (elem.tagName != "UL" && elem.tagName != 'BODY')
		
	return -1 == elem.id.indexOf('sub');
}

function getInnerTextLink(elem)
{
	ret = "";
	k=0;
	
	for (j=0; j<elem.childNodes.length && k<5; j++)
	{
		if (elem.childNodes[j].tagName == 'A')
		{
			ret += "<a href='"+elem.childNodes[j].href+"'>"+elem.childNodes[j].id+"</a>";
		}
		k++;
	}
	return ret;
}

function maketextmenu(txtmenu,elem)
{
	txtm = document.getElementById(txtmenu);
	if (txtm && checkParentNotSubMenu(elem))
	{
		if (txtm.innerHTML)
			txtm.innerHTML = getInnerTextLink(elem) + ' - ' + txtm.innerHTML;
		else
			txtm.innerHTML = getInnerTextLink(elem);
	}
}

function makeMenu(tag,cls,txtmenu)
{
	var elems = document.getElementsByTagName(tag);
	for (i=0; i<elems.length;i++)
	{
		elem = elems[i];
		if (0 == elem.className.indexOf(cls))
		{
			elem.onclick = function(event) { clickA(event); }
			addonmouseover(elem, function(event) { mouseoverA(event); })
			addonmouseout(elem, function(event) { mouseoutSM(event); })
			maketextmenu(txtmenu,elem);
		}
	}
}



function fadeIn(level, fImg, bImg)
{
	fdImg = document.getElementById(fImg)
	if (level < 0)
	{
		if (fdImg)
			fdImg.style.backgroundImage = "none";
		
		setTimeout("fadeOut("+(level+1)+",'"+fImg+"','"+bImg+"')",5000);
	}
	else
	{
		if (fdImg)
			fdImg.style.backgroundImage = "url("+imgspath+"fade/fade"+level+".png)";
		setTimeout("fadeIn("+(level-1)+",'"+fImg+"','"+bImg+"')",100);
	}
}

function fadeOut(level, fImg, bImg)
{
	if (level >= 10)
	{
		image = (image + 1)%images.length;
		// make image black in the mean time (fade9.png already in cache)
		changeImage(bImg, imgspath+"fade/fade9.png");
		changeImage(bImg, imgspath+images[image]);
		setTimeout("fadeIn("+(level-1)+",'"+fImg+"','"+bImg+"')",400);
	}
	else
	{
		fdImg = document.getElementById(fImg)
		if (fdImg)
			fdImg.style.backgroundImage = "url("+imgspath+"fade/fade"+level+".png)";
		setTimeout("fadeOut("+(level+1)+",'"+fImg+"','"+bImg+"')",100);
	}
}

function startChangeImg(fImg, bImg)
{
	bgImg = document.getElementById(bImg);
	fdImg = document.getElementById(fImg);
	if (bgImg && fdImg)
	{
//		alert(offsetLeft(bgImg)+","+offsetTop(bgImg));
//		fdImg.style.position = "absolute";
//		fdImg.style.left = offsetLeft(bgImg)+"px";
//		fdImg.style.top = offsetTop(bgImg)+"px";
		setTimeout("fadeOut(0,'"+fImg+"','"+bImg+"')", 5000);
	}
}

function init()
{
	configHomeButton();
	makeMenu('li','menuitem','txtmenu');
	startChangeImg('fadeimg','changingImg');
}