/*
	graphical user interface scripts

*/

if (document.addEventListener) 
{
    document.addEventListener("DOMContentLoaded", init, null);
}

// fallback
window.onload = init;

function init()
{
	//make sure we only get here once
	if (arguments.callee.done)
	{
		return;
	}
	arguments.callee.done = true;

	prepare_menu();
	add_events_links();
	menu();
	add_click_searchbox();
	placeReadspeaker();
	
	var items = new Array()
	items[0] = 'nieuws';
	items[1] = 'evenementen';
	
	highlight_menu_item(items);
	popup();
}

function add_events_links()
{
	var links = document.getElementsByTagName('a');
	var img = '&nbsp;<img src="/site/voorschoten_internet/layout/images/icons/newwindow.png" alt="(Deze link opent in een nieuw venster)" />';
	for (var i = 0; i < links.length; i++)
	{
		switch (links[i].className)
		{
			case 'newwindow':
				links[i].setAttribute('title', links[i].getAttribute('title') + ', opent in een nieuw venster.');  
				links[i].onclick = newwin;
				
				var _parent = links[i].parentNode;

				if(! _parent.parentNode.className == 'new_window_no_img')
				{
					links[i].innerHTML = links[i].innerHTML + img;
				}
				break;
		}
	}
}

function add_click_searchbox() 
{
	set_click('sq');
	set_click('q');
}

function set_click(id)
{
	var s_box = document.getElementById(id);
	
	if(id == 'q')
	{
		s_box.value = 'Zoeken'
	}
	if (s_box)
	{
		s_box.onclick = function(){clear_sbox(this)};
	}
}

function clear_sbox(a_box)
{
	if (a_box.value == 'Zoeken')
	{
		a_box.value = '';
	}
}

function newwin()
{
	window.open(this.href,'_blank');
	return false;
}

//Functie revisie 12 Mei 2010

function highlight_menu_item(items)
{
	// check url
	var ui = window.location.href;
	var ua = ui.length - 1;
	if( ui.charAt( ua ) != "/" ){ ui = ui + "/"; }
	
	var uia = ui.split( "http://");
	var ui = uia[1];
	var ua = ui.split( "/" );
	
	var inURL = false;
	
	for( h in items ){
		if( items[h] == ua[1]){ inURL = true; }
	}
	
	if( inURL == true ){
		// Hoofdmenu
		highlightIn( "hoofdmenu" , "actueel" );	
		// Submenu
		highlightIn( "subnavlist" , ua[1] );
	}
}

function highlightIn( waar , wat ){
	if( document.getElementById && document.getElementById( waar )){
		var c = document.getElementById( waar );
		var lilist = c.childNodes;
		for( var i=0; i<lilist.length; i++ ){
			
			var fa = lilist[i].childNodes[0];
			var l = fa.href;
			var la = l.split( "/" );
			
			var t = la[la.length-1];
			if( t == wat ){
				fa.className = "selected";
			}
		}
	}
}



/* ----- ---- - --- -- -- - ----- -- --- - ---- - -*/

function set(id,display)
{
	var obj	=	document.getElementById(id);
	if(obj)
	{
		obj.style.display	=	display;
	}
}

/* ----- ---- - --- -- -- - ----- -- --- - ---- - -*/

function prepare_menu()
{
	var menu = document.getElementById('subnavlist')
	if (menu)
	{
		collapse_all(menu);
		open_selected(menu);
		apply_events(menu);
	}
}

function menu()
{
	var _menu_actie = document.getElementById('menu_actie');
	
	if(_menu_actie != null)
	{
		_menu_actie.innerHTML = '<a href="javascript:void(0)" class="menu_actie">>Menu dicht</a>';
	}
	var _menu_open = document.getElementsByClassName('menu_actie');
	var _action = getcookie("menu");
	
	if(_menu_open != '')
	{
		_menu_open[0].onclick = function(){toggle('close');}
	}
	if(_menu_open != '')
	{
		if(_action == 'closed')
		{
			_menu_open[0].onclick = function(){toggle('open');}
			toggle('close');
		}
		else if(_action == 'open')
		{
			_menu_open[0].onclick = function(){toggle('close');}
		}
	}
}

function toggle(action)
{
	var _menu_open 		= document.getElementsByClassName('menu_actie');

	if(_menu_open != '')
	{
		if (action == 'close')
		{
			_menu_open[0].onclick = function(){toggle('open');}
			_menu_open[0].innerHTML = '>Menu open';			
			
			Element.addClassName("header","closed");
			Element.addClassName("header_menu","closed");
			Element.addClassName("header_img","closed");
			Element.addClassName("header_gradient","closed");
			Element.addClassName("hoofdmenu","closed");
			Element.addClassName("navigation","closed");
			Element.addClassName("klikpad","closed");
			Element.addClassName("main","closed");
			Element.addClassName("image_block","closed");
			Element.addClassName("right","closed");
			
			setCookie('menu', 'closed', 15, '/');
		}
		else if (action == 'open')
		{
			_menu_open[0].onclick = function(){toggle('close');}
			_menu_open[0].innerHTML = '>Menu dicht';
			
			Element.removeClassName("header","closed");
			Element.removeClassName("header_menu","closed");
			Element.removeClassName("header_img","closed");
			Element.removeClassName("header_gradient","closed");
			Element.removeClassName("hoofdmenu","closed");
			Element.removeClassName("navigation","closed");
			Element.removeClassName("klikpad","closed");
			Element.removeClassName("main","closed");
			Element.removeClassName("image_block","closed");
			Element.removeClassName("right","closed");
			
			setCookie('menu', 'open', 15, '/');
		}
	}
}

function setCookie(name, value, expires, path) 
{
 	var curCookie = name + "=" + escape(value) +
      
	((expires) ? "; expires=" + getexpirydate(expires) : "") +
      
    ((path) ? "; path=" + path : "");
  
  	document.cookie = curCookie; 	
}

function getcookie(cookiename) 
{

 	var cookiestring=""+document.cookie;
 	
 	var index1=cookiestring.indexOf(cookiename);
 	
 	if (index1==-1 || cookiename=="") return ""; 
 	
 	var index2=cookiestring.indexOf(';',index1);
 
 	if (index2==-1) index2=cookiestring.length; 
 	
 	return unescape(cookiestring.substring(index1+cookiename.length+1,index2));
}

function getexpirydate(minutes)
{
	var UTCstring;
	
	Today = new Date();

	nomilli=Date.parse(Today);

	Today.setTime(nomilli+minutes*60*1000);

	UTCstring = Today.toUTCString();

	return UTCstring;
}

function collapse_all(menu)
{
	var uls = menu.getElementsByTagName('ul');
	for (var n = 0; n < uls.length; n++)
	{
		uls[n].style.display = 'none';
	}
}

function open_selected(menu)
{
	var lis = menu.getElementsByTagName('li');
	var loc = String(document.location);
	
	for (var n = 0; n < lis.length; n++)
	{
		var href = lis[n].getElementsByTagName('a')[0];
		
		if ((href == loc) || (loc.match(href)))
		{
		
			href.className = 'selected';
			p = lis[n].parentNode;

			// open all parents
			while(p.getAttribute('id') != 'subnavlist')
			{
				if (p.className == 'closed')
				{
					p.className = 'opened';
				}
				p.style.display='block';
				p = p.parentNode;
			}
			
			// open children
			ul = lis[n].getElementsByTagName('ul')[0];
			if (ul)
			{
				ul.style.display = 'block';
			}
			break;
		}
	}

}


function apply_events(menu)
{
	var lis = menu.getElementsByTagName('li');
	for (var n = 0; n < lis.length; n++)
	{
		if (lis[n].getElementsByTagName('ul').length > 0)
		{
			a = lis[n].getElementsByTagName('a')[0];
			if (lis[n].className.indexOf('index') == -1)
			{
				a.setAttribute('href','javascript:void(0)');
			}
			
			lis[n].className = 'closed';
			// nasty, but neccesary for IE...
			a.onclick = function()
						{
							toggle(this.parentNode.parentNode,true)
						};
			
			// make sure people using a keyboard can access the links
			a.onkeyup = function()
						{
							toggle(this.parentNode.parentNode,false)
						};
		}
	}
}

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 hide_reactform()
{
	if(String(document.location).indexOf('eageer/') == -1)
	{
		var obj	=	document.getElementById('reactform');
		if(obj)
		{
			obj.style.display	=	'none';
		}
	}
}

function show_reactform()
{
	var obj	=	document.getElementById('reactform');
	if(obj)
	{
		if(obj.style.display == 'block')
		{
			hide_reactform();
		}
		else
		{
			obj.style.display	=	'block';
		}
	}
}

function hilite_table()
{
	if(document.getElementById && document.createTextNode)
 	{
   		var tables	=	document.getElementsByTagName('table');
   		for (var i=0;i<tables.length;i++)
   		{
    		if(tables[i].className=='hilite')
    		{
     			var trs=tables[i].getElementsByTagName('tr');
     			for(var j=0;j<trs.length;j++)
     			{
					if(trs[j].parentNode.nodeName=='TBODY' && trs[j].parentNode.nodeName!='TFOOT')
					{
						trs[j].onmouseover=function()
						{
							this.className += ' active';
							return false;
						}
       					trs[j].onmouseout=function()
       					{
       						this.className = this.className.replace(/active/g,'');
       						return false;
       					}
     				}
    			}
   			}
  		}
 	}
}

/* ----- ---- - --- -- -- - ----- -- --- - ---- - -*/

function focus_login()
{
	var obj	=	document.getElementById('name');
	if (obj)
	{
		setfocus_only('name');
	}
}

function setfocus_only(id)
{
	var field = document.getElementById(id);
	if (field)
	{
		field.focus();
	}
}

//Functie: vervangt alle '&amp;' door eenn '&'. s = string met tekens
function replaceAmp( s ){
	s = s.replace( /&amp;/g, "&" );
	return s;
}


function popup()
{
	if(document.getElementById('showpopup'))
	{
		if (getcookie('seenpopup') === 'true')
			return false;

		var d = new Date();
		d.setYear(d.getYear() + 1);
		setCookie('seenpopup', 'true', (60*24*365), '/');

		mylink = document.getElementById('showpopup').href;
		windowname = document.getElementById('showpopup').innerHTML;
		if (! window.focus)return true;
		var href;
		if (typeof(mylink) == 'string')
		   href=mylink;
		else
		   href=mylink.href;

		window.open(href, windowname, 'width=1000,height=600,scrollbars=yes');
		return false;
	}
}
