// graphical user interface-functions

var ACTIVE_NODE = null;

/*
	Written by Jonathan Snook, http://www.snook.ca/jonathan
	Add-ons by Robert Nyman, http://www.robertnyman.com
*/

function getElementsByClassName(oElm, strTagName, strClassName)
{
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/-/g, "\-");
	var oRegExp = new RegExp("(^|\s)" + strClassName + "(\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}

function disabelBtn()
{
	var debug = document.getElementById('debug');
	if (debug)
	{
		var elms = getElementsByClassName(document.getElementById('content'), 'input', 'ncol');
		if (elms[1])
		{
//			elms[1].style.display = 'none';
		}
//		debug.innerHTML = 'test ('+elms.length+')';
	}
}


function prepare_menu()
{
	var menu = document.getElementById('mainmenu');
	if (menu)
	{
		collapse(menu);
		add_events_styles(menu);
//		open_current(menu);
	}	
}

function collapseFrom(menu)
{
	//menu is een ul
	if (menu.getAttribute('id') != 'mainmenu')
	{
		var li = menu.parentNode;
		var ul = li.parentNode;
		if (ul.getAttribute('id') != 'mainmenu')
		{
			var submenus = li.getElementsByTagName('ul');
			for (var i = 0; i < submenus.length; i++)
			{
				Element.removeClassName(submenus[i],'out');
			}
			
			if (ul.parentNode.parentNode.getAttribute('id') != 'mainmenu')
			{
//				alert("recursive");
				collapseFrom(ul.parentNode.parentNode);
			}
		}
		else
		{
			var submenus = li.childNodes;
			for (var i = 0; i < submenus.length; i++)
			{
				
				if (submenus[i].nodeName == 'UL')
				{
					ACTIVE_NODE = submenus[i];
					Element.removeClassName(submenus[i],'out')
					break;
				}
			}

		}
		activate_root(li);
	}
}

function open_current(menu)
{
/* Deze wordt nu niet meer gebruikt */
	var item = getElementsByClassName(menu, 'a', 'active');
	if (item[0])
	{
//		alert(item[0].parentNode.innerHTML);
		collapseFrom(item[0].parentNode.parentNode);
	}

	if (item[0])
	{
	
		var li = item[0].parentNode;
		var ul = li.parentNode;

		if (ul.getAttribute('id') != 'mainmenu')
		{
			Element.removeClassName(ul,'out')
			ACTIVE_NODE = ul;
			
			if (ACTIVE_NODE.parentNode.parentNode.parentNode.parentNode.getAttribute('id') == 'mainmenu')
			{
				ACTIVE_NODE = ACTIVE_NODE.parentNode.parentNode;
			}
			
			var submenus = li.getElementsByTagName('ul');
			for (var i = 0; i < submenus.length; i++)
			{
				Element.removeClassName(submenus[i],'out');
			}
			
			while (ul.getAttribute('id') != 'mainmenu')
			{
				Element.removeClassName(ul,'out');
				ul = ul.parentNode;
			}
			
		}
		else
		{
			var submenus = li.childNodes;
			for (var i = 0; i < submenus.length; i++)
			{
				
				if (submenus[i].nodeName == 'UL')
				{
					ACTIVE_NODE = submenus[i];
					Element.removeClassName(submenus[i],'out')
					break;
				}
			}
		}
		activate_root(li);
	}
}

function activate_root(child)
{
	do
	{
		if (child.parentNode.getAttribute('id') == 'mainmenu')
		{
			Element.addClassName(child,'liactive');
			break;
		}
		else
		{
			Element.addClassName(child,'cactive');
		}
		child = child.parentNode;
	}
	while (1)
}


function collapse(menu)
{
	var submenus = menu.getElementsByTagName('ul');
	for (var n = 0; n < submenus.length; n++)
	{
		Element.addClassName(submenus[n],'out');
	}
//	show_extras();
	show_activesubmenu();	
//	open_current(menu)

}

function add_events_styles(menu)
{
	var submenus = menu.getElementsByTagName('LI');
	for (var n = 0; n < submenus.length; n++)
	{
		var menuitem = submenus[n];
		add_events(menuitem)
		add_style(menuitem);
		Element.addClassName(menuitem,'scripted');
		add_events_styles(menuitem);
	}
}

function add_events(menuitem)
{
	if (menuitem.parentNode.getAttribute('id') == 'mainmenu')
	{
		menuitem.onmouseover 	= 	function () {showsubmenu(this);} 
		menuitem.onmouseout 	= 	function () {collapse(this.parentNode);}
	} 

	menuitem.onfocus 		= 	function () {showsubmenu(this);}
	menuitem.onblur 		=	function () {collapse(this.parentNode);} 

	menuitem.onclick 		=	function () {killevents(this)};
	
}

function killevents(menuitem)
{
	menuitem.onmouseover 	= 	null; 
	menuitem.onmouseout 	= 	null;
	menuitem.onfocus 		= 	null;
	menuitem.onblur 		=	null;
	menuitem.onclick 		=	null;
	
}

function add_style(menuitem)
{
	var submenu = menuitem.getElementsByTagName('ul')[0];
	if (submenu && menuitem.parentNode.getAttribute('id') == 'mainmenu')
	{
		Element.addClassName(submenu,'submenu');
	}
}

function showsubmenu(src)
{
	var submenu = src.getElementsByTagName('ul')[0]
	if (submenu)
	{	
		Element.removeClassName(submenu,'out');
	}
//	hide_extras()
	hide_activesubmenu(submenu);
}

function show_activesubmenu(src)
{
	if (ACTIVE_NODE)
	{
		Element.removeClassName(ACTIVE_NODE,'out');
	}
}

function hide_activesubmenu(submenu)
{
	if (ACTIVE_NODE && ACTIVE_NODE != submenu)
	{
		Element.addClassName(ACTIVE_NODE,'out');
	}
}






function init()
{
	set_search_clicks();
	movePijl('450');
	add_events_links();
	set_date();
	prepare_menu();
	disabelBtn();
	addUitklappenClick();
	overheids_overzicht();
	zorgloket_overzicht();
	activateReadSpeaker()
}

function activateReadSpeaker(){


	if (document.getElementById("readspeaker")){
		var link = document.getElementById( "readspeakerlink" );
		
		if(link.addEventListener){
			link.addEventListener( "click" , function(evt)
			{
				if (evt.preventDefault) {
					evt.stopPropagation();
					evt.preventDefault();
					readpage(link.href, 'readspeakerwindow');
					return false;
			}}, false );
		} else {
			link.attachEvent ( "onclick" , function(evt)
			{
				evt.cancelBubble = true;
				readpage(link.href, 'readspeakerwindow');
				return false;
			} );
		}

	}

}


function clear_value(obj)
{
	if(obj)
	{
		if(obj.value == "uw zoekopdracht")
		{
			obj.value = "";
			obj.focus();
		}
	}
}

function fill_value(obj)
{
	if(obj)
	{
		if(obj.value == "")
		{
			obj.value = "uw zoekopdracht";
		}
	}
}


function set_search_clicks()
{
	var obj	=	document.getElementById('zoek');
	if(obj)
	{
		obj.onclick	=	function() { clear_value(this);	}
		obj.onblur	=	function() { fill_value(this);	}
	}
}

function setfocus(id)
{
	var field = document.getElementById(id);
	if (field)
	{
		field.focus();
		flash(id, 1);
	}
}

function flash (id, pass)
{
	var field = document.getElementById(id);
	border = '2px solid red';
	if (pass % 2 == 0)
	{
		border = '2px dashed white';
	}
	field.style.border = border;
	if (pass < 15)
	{
		pass ++
		setTimeout("flash('" + id+ "','" + pass + "')",50);
	}
}

function getWindowHeight() {

	var myHeight = 0;
	if( typeof( window.innerWidth ) == 'number' )
	{
		//Non-IE
		myHeight = window.innerHeight;
	}
	else if( document.documentElement && ( document.documentElement.clientHeight ) )
	{
		//IE 6+ in 'standards compliant mode'
		myHeight = document.documentElement.clientHeight;
	}
	else if( document.body && ( document.body.clientHeight ) )
	{
		//IE 4 compatible
		myHeight = document.body.clientHeight;
	}
	return myHeight;
}


function movePijl(l)
{
	var knop_top = document.getElementById('pijl');
	if(knop_top)
	{
/*
		var scrollTop = document.body.scrollTop || (document.documentElement && document.documentElement.scrollTop);
		knop_top.style.visibility = scrollTop > 0 ? "visible" : "hidden";
		var height = document.body.clientHeight;

	    if (document.documentElement && document.documentElement.clientHeight < height && document.documentElement.clientHeight > 0)
	      height = document.documentElement.clientHeight;

	    // stay above logo
	    //height -= 140;

	    knop_top.style.top = (height - 41 + scrollTop)+'px';
//	    window.status='blabla';
		setTimeout("movePijl("+l+")",50);
*/
		var scrollTop = document.body.scrollTop || (document.documentElement && document.documentElement.scrollTop);

		if (scrollTop > 0)
		{
			var height = getWindowHeight();
//			knop_top.style.top = (height - 70 + scrollTop)+'px';
			knop_top.style.top = (height - 170 + scrollTop)+'px';
			if (knop_top.className != "")
				knop_top.className = "";
		}
		else
		{
			if (knop_top.className != "out")
				knop_top.className = "out";
		}

		setTimeout("movePijl("+l+")",100);
	}
}

function add_events_links()
{
	var content = document.getElementById('content');
	var links = content.getElementsByTagName('a');
	var img = '&nbsp;<img class="newwindowimg" src="https://www.gemeentenoordenveld.nl/site/www.gemeentenoordenveld.nl/images/newwindow.png" alt="(Deze link opent in een nieuw venster)" />';
	for (var i = 0; i < links.length; i++)
	{
		switch (links[i].className)
		{
			case 'skip':
				links[i].onfocus = function () { show_skippy(this,true) };
				links[i].onblur = function () { show_skippy(this,false) };

				links[i].style.position = 'absolute';
				links[i].style.left = '-999em';
				break;
			case 'newwindow':
				links[i].setAttribute('title','[Nieuw venster] ' + links[i].getAttribute('title'));
				links[i].onclick = newwin;

				links[i].innerHTML = links[i].innerHTML + img;
				break;
			default:

				//alle externe url in nieuw venster openen behalve www.gemeentenoordenveld.nl
				var url		= links[i].getAttribute('href',2);
				if (url)
				{
					//alleen als het een externe url is... dus geen mailto of # ed
					if(url.substr(0,4) == 'http')
					{
						if (
								(
									(url.substr(0,33) != 'http://www.gemeentenoordenveld.nl') ||
									(url.substr(0,38) == 'http://www.gemeentenoordenveld.nl/ris/') ||
									(url.substr(0,58) != 'http://internet.gemeentenoordenveld.gemeenteoplossingen.nl')
								) &&
								(
									(url.substr(0,24) != 'https://secure.ogone.com') &&
									(url.substr(0,25) != 'https://seal.verisign.com')
								)
							)
/*
						if (
								(
									(url.substr(0,58) != 'http://internet.gemeentenoordenveld.gemeenteoplossingen.nl') ||
									(url.substr(0,63) == 'http://internet.gemeentenoordenveld.gemeenteoplossingen.nl/ris/')
								) &&
								(
									(url.substr(0,24) != 'https://secure.ogone.com') &&
									(url.substr(0,25) != 'https://seal.verisign.com')
								)
							)
*/
						{
							links[i].className = 'newwindow';
							links[i].setAttribute('title','[Nieuw venster] ' + (links[i].getAttribute('title') == null?url:links[i].getAttribute('title')));
							links[i].onclick = newwin;
							links[i].innerHTML = links[i].innerHTML + img;
						}
					}
				}
		}
	}
}

function set_date()
{
	var menu = document.getElementById('menu');
	if (menu)
	{
		var obj	=	menu.getElementsByTagName('h2')[0];
		if(obj)
		{
			if(obj.innerHTML = 'Hoofdmenu')
			{
				var date	=	new Date();
				var year	=	date.getYear();
				if (year<2000)
					year += (year < 1900) ? 1900 : 0;
				var month	=	date.getMonth();
				var m_arr	=	new Array("januari","februari","maart","april","mei","juni","juli","augustus","september","oktober","november","december");
				var day		=	date.getDate();
				if(day < 10)
				{
					day		=	'0'+day;
				}
				obj.innerHTML	=	'<span class="hidden">Hoofdmenu</span> '+day +' '+m_arr[month]+' '+year;
			}
		}
	}
}

function newwin()
{
	window.open(this.href,'_blank');
	return false;
}

function show_skippy(skiplink,display)
{
	if (display)
	{
		skiplink.style.position = 'relative';
		skiplink.style.zIndex = '1000';
		skiplink.style.left = 'auto';
	}
	else
	{
		skiplink.style.position = 'absolute';
		skiplink.style.left = '-999em';
	}
}

function overheids_overzicht()
{
	for (i = 65; i < 91; i++)
	{
		chr = String.fromCharCode(i);
		if (document.getElementById('overheidsproducten_'+chr) != null)
		{
			document.getElementById('overheidsproducten_'+chr).style.display = 'none';
			document.getElementById('uitklappen_'+chr).style.display = 'block';
		}
	}
	if (document.getElementById('overheidsproducten_0-9') != null)
	{
		document.getElementById('overheidsproducten_0-9').style.display = 'none';
		document.getElementById('uitklappen_0-9').style.display = 'block';
	}
}

function zorgloket_overzicht()
{
	for (i = 65; i < 91; i++)
	{
		chr = String.fromCharCode(i);
		if (document.getElementById('zorgproducten_'+chr) != null)
		{
			document.getElementById('zorgproducten_'+chr).style.display = 'none';
			document.getElementById('uitklappen_zorg_'+chr).style.display = 'block';
		}
	}
	if (document.getElementById('zorgproducten_0-9') != null)
	{
		document.getElementById('zorgproducten_0-9').style.display = 'none';
		document.getElementById('uitklappen_zorg_0-9').style.display = 'block';
	}
}

function uitklappen(chr)
{
	if (document.getElementById('overheidsproducten_'+chr).style.display == 'none')
	{
		document.getElementById('overheidsproducten_'+chr).style.display = 'block';
		document.getElementById('uitklappen_'+chr).innerHTML = 'beperk overheidsproducten <img src="/site/www.gemeentenoordenveld.nl/images/pointer_up.png" />';
	}
	else
	{
		document.getElementById('overheidsproducten_'+chr).style.display = 'none';
		document.getElementById('uitklappen_'+chr).innerHTML = 'toon alle overheidsproducten <img src="/site/www.gemeentenoordenveld.nl/images/pointer_down.png" />';
	}
	return false;
}

function uitklappen_zorg(chr)
{
	if (document.getElementById('zorgproducten_'+chr).style.display == 'none')
	{
		document.getElementById('zorgproducten_'+chr).style.display = 'block';
		document.getElementById('uitklappen_zorg_'+chr).innerHTML = 'beperk invisproducten <img src="/site/www.gemeentenoordenveld.nl/images/pointer_up.png" />';
	}
	else
	{
		document.getElementById('zorgproducten_'+chr).style.display = 'none';
		document.getElementById('uitklappen_zorg_'+chr).innerHTML = 'toon alle invisproducten <img src="/site/www.gemeentenoordenveld.nl/images/pointer_down.png" />';
	}
}

function addUitklappenClick()
{
	var elms = getElementsByClassName(document.getElementById('content'), 'a', 'uitklappen');
	var id = '';
	var matches = new Array();
	for (var i = 0; i < elms.length; i++)
	{
		id = elms[i].getAttribute('id');
		matches = id.match(/(.*)_(.*)/);
		elms[i].onclick = new Function(""+matches[1]+"('" + matches[2] + "')");
	}
}

window.onload = init;

