/*
	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();
	setbulleted();
	add_events_links();
	add_click_searchbox();
	add_balloons();
}

function add_events_links()
{
	var links = document.getElementsByTagName('a');
	var img = '&nbsp;<img src="/site/www.gemeenteoplossingen.nl/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 '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', links[i].getAttribute('title') + ', opent in een nieuw venster.');  
				links[i].onclick = newwin;
				links[i].innerHTML = links[i].innerHTML + img;
				break;
                        case 'newwindow2':
                                links[i].setAttribute('title', links[i].getAttribute('title') + ', opent in een nieuw venster.');
                                links[i].onclick = newwin;
                                break;
		}
	}
}

function newwin()
{
	window.open(this.href,'_blank');
	return false;
}

/* ----- ---- - --- -- -- - ----- -- --- - ---- - -*/

function add_click_searchbox()
{
	set_click('sq');
	set_click('q');
}

function set_click(id)
{
	var s_box = document.getElementById(id);
	if (s_box)
	{
		s_box.onclick = function(){clear_sbox(this)};
	}
}

function clear_sbox(a_box)
{
	if (a_box.value == 'Uw zoekopdracht')
	{
		a_box.value = '';
	}
}

function add_balloons()
{
	var quick	=	document.getElementById("quickswitch");
	if(quick)
	{
		var lis		=	quick.getElementsByTagName("li");
		for(var n=0;n < lis.length; n++)
		{
			var first_a	=	lis[n].getElementsByTagName("a")[0];
			first_a.setAttribute("id","balloon"+n);
			first_a.onmouseover		=	function() { set(this.id+"img","block"); }
			first_a.onmouseout		=	function() { set(this.id+"img","none"); }
			
			var href	=	first_a.getAttribute("href");
			var alt		=	lis[n].getElementsByTagName("img")[0].getAttribute("alt");
			var idnm	=	"balloon"+n+"img";
			
			var img		=	document.createElement("img");
			
			img.setAttribute("src","/site/www.gemeenteoplossingen.nl/images/skin/balloon"+n+".png");
			img.setAttribute("id",idnm);
			img.setAttribute("alt",alt);
			
			lis[n].appendChild(img);
		}
	}
}

function set(id,display)
{
	var obj	=	document.getElementById(id);
	if(obj)
	{
		obj.style.display	=	display;
	}
}

/* ----- ---- - --- -- -- - ----- -- --- - ---- - -*/

function prepare_menu()
{
	activemainmenu();

	var menu = document.getElementById('subnavlist')
	if (menu)
	{
		collapse_all(menu);
		open_selected(menu);
		apply_events(menu);
	}
}

function toggle(a_item, docollapse)
{
	
	
	var uls = a_item.getElementsByTagName('ul')[0];
	var a = a_item.getElementsByTagName('a')[0];

	if (a.href == 'javascript:void(0)')
	{
		if (uls.style.display == 'none' || uls.style.display == '')
		{
			uls.style.display = 'block';
			a_item.className = 'opened';
		}
		else if (docollapse)
		{
			uls.style.display = 'none';
			a_item.className = 'closed';
		}
	}
}

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)
		{
		
			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 setbulleted()
{
	var newsbox = document.getElementById('news');
	if (newsbox)
	{
		var items = newsbox.getElementsByTagName('a')
		for (var n = 0; n < items.length; n++)
		{
			var parent = items[n].parentNode; 
			if (parent && (parent.tagName == 'H3' || parent.tagName == 'H2'))
			{
				items[n].className = 'bulleted';
			}
		}
	}

}

function activemainmenu()
{
	rubr = document.getElementById('navigation');

	var as = rubr.getElementsByTagName('a');
	var loc = new String(document.location);
	//get
	var sel = loc.replace(/(http:\/\/[^\/]+\/[^\/]+)\/.*/,'$1');
	sel = sel.toLowerCase();
	//find


	for (var i = 0; i < as.length; i++)
	{
		a = as[i].href
		a = a.toLowerCase();
		
		if (a == sel)
		{
			as[i].parentNode.className = 'active';
		}		
	}
}

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);
	}
}


var cX = 0; var cY = 0; var rX = 0; var rY = 0; function UpdateCursorPosition(e){ cX = e.pageX; cY = e.pageY;} function UpdateCursorPositionDocAll(e){ 
cX = event.clientX; cY = event.clientY;}
	if(document.all)
	{
		document.onmousemove = UpdateCursorPositionDocAll;
	}
	else
	{
		document.onmousemove = UpdateCursorPosition;
	}
function AssignPosition(d) {
	if(self.pageYOffset)
	{
		rX = self.pageXOffset;
		rY = self.pageYOffset;
	}
	else if(document.documentElement && document.documentElement.scrollTop)
	{
		rX = document.documentElement.scrollLeft;
		rY = document.documentElement.scrollTop;
	}
	else if(document.body)
	{
		rX = document.body.scrollLeft;
		rY = document.body.scrollTop;
	}
	if(document.all)
	{
		cX += rX;
		cY += rY;
	}
	d.style.left = (cX+10) + "px";
	d.style.top = (cY+10) + "px";
}
	
function HideContent(d) {
	if(d.length < 1) { return;
	}
		document.getElementById(d).style.display = "none";
	}
	
function ShowContent(d) {
	
	hide_titles();
	
	if(d.length < 1)
	{
		return;
	}
	var dd = document.getElementById(d);
	AssignPosition(dd);
	dd.style.display = "block";
}
	
function ReverseContentDisplay(d) {
	if(d.length < 1)
	{
		return;
	}
	var dd = document.getElementById(d);
	AssignPosition(dd);
	if(dd.style.display == "none")
	{
		dd.style.display = "block";
	}
	else
	{
		dd.style.display = "none";
	}
}
function hide_titles() {
	var _areas = document.getElementsByTagName('area');
	for (var i = 0; i < _areas.length; i++)
	{
		_areas[i].title = '';
	}
}

var timer = null;

function showtoelichting2(id) {
        //reset timer
        if (timer != null)
        {
                clearTimeout(timer);
                timer = null;
        }

	var dd = document.getElementById("block");
	switch(id)
	{
		case 1: var content="<h2>Gemeente Den Helder</h2><p>Raadsinformatiesysteem van de gemeente Den Helder</p><a href=\"http://gemeenteraad.denhelder.nl\" title=\"Raadsuitzendingen voor de gemeente Den Helder\">gemeenteraad.denhelder.nl	</a>";
		break;
		case 2: var content="<h2>Gemeente Oostzaan</h2><p>Raadsite van de gemeente Oostzaan</p><a href=\"http://besluitvorming.oostzaan.nl\" title=\"Raadsuitzendingen voor de gemeente Oostzaan\">besluitvorming.oostzaan.nl</a>";
		break;
		case 3: var content="<h2>Gemeente Amsterdam Zuidoost</h2><p>Raadsinformatiesysteem van de gemeente Amsterdam Zuidoost</p><a href=\"http://amsterdamzuidoost.gemeenteoplossingen.nl\" title=\"Raadsuitzendingen voor de gemeente Amsterdam Zuidoost\">amsterdamzuidoost.gemeenteoplossingen.nl</a>";
		break;
		case 4: var content="<h2>Gemeente Haarlemmermeer</h2><p>Raadsinformatiesysteem van de gemeente Haarlemmermeer</p><a href=\"http://haarlemmermeer.gemeenteoplossingen.nl\" title=\"Raadsuitzendingen voor de gemeente Haarlemmermeer\">haarlemmermeer.gemeenteoplossingen.nl</a>";
		break;
		case 5: var content="<h2>Gemeente Voorschoten</h2><p>Raadsite van de gemeente Voorschoten</p><a href=\"http://www.gemeenteraadvoorschoten.nl\" title=\"Raadsuitzendingen voor de gemeente Voorschoten\">www.gemeenteraadvoorschoten.nl</a>";
		break;
		case 6: var content="<h2>Gemeente Zoetermeer</h2><p>Raadsinformatiesysteem van de gemeente Zoetermeer</p><a href=\"http://zoetermeer.gemeenteoplossingen.nl\" title=\"Raadsuitzendingen voor de gemeente Zoetermeer\">zoetermeer.gemeenteoplossingen.nl</a>";
		break;
		case 7: var content="<h2>Gemeente Bedum</h2><p>Raadsinformatiesysteem van de gemeente Bedum</p><a href=\"http://www.bedum.nl/ris\" title=\"Raadsuitzendingen voor de gemeente bedum\">www.bedum.nl/ris</a>";
		break;
		case 8: var content="<h2>Gemeente Schiermonnikoog</h2><p>Raadsinformatiesysteem van de gemeente Schiermonnikoog</p><a href=\"http://bestuur.schiermonnikoog.nl\" title=\"Raadsuitzendingen voor de gemeente Schiermonnikoog\">bestuur.schiermonnikoog.nl</a>";
		break;
		case 9: var content="<h2>Gemeente Bergen (N-H)</h2><p>Raadsinformatiesysteem van de gemeente Bergen</p><a href=\"http://www.raadbergen-nh.nl\" title=\"Raadsuitzendingen voor de gemeente Bergen\">www.raadbergen-nh.nl/</a>";
		break;
		case 10: var content="<h2>Gemeente Heerhugowaard</h2><p>Raadsinformatiesysteem van de gemeente Heerhugowaard</p><a href=\"http://heerhugowaard.gemeenteoplossingen.nl\" title=\"Raadsuitzendingen voor de gemeente Heerhugowaard\">heerhugowaard.gemeenteoplossingen.nl</a>";
		break;
		case 11: var content="<h2>Gemeente Amsterdam Osdorp</h2><p>Raadsinformatiesysteem van de gemeente Amsterdam Osdorp</p><a href=\"http://nognietbekend\" title=\"Raadsuitzendingen voor de gemeente Amsterdam Osdorp\">nognietbekend</a>";
		break;
		case 12: var content="<h2>Gemeente Cuijk</h2><p>Raadsinformatiesysteem van de gemeente Cuijk</p><a href=\"http://cuijk.gemeenteoplossingen.nl\" title=\"Raadsuitzendingen voor de gemeente Cuijk\">cuijk.gemeenteoplossingen.nl</a>";
		break;
		case 13: var content="<h2>Gemeente Tynaarlo</h2><p>Raadsinformatiesysteem van de gemeente Tynaarlo</p><a href=\"http://raad.tynaarlo.nl\" title=\"Raadsuitzendingen voor de gemeente Tynaarlo\">raad.tynaarlo.nl</a>";
		break;
		case 14: var content="<h2>Provincie Drenthe</h2><p>Raadsinformatiesysteem van de provincie Drenthe</p><a href=\"http://nognietbekend\" title=\"Raadsuitzendingen voor de provincie Drenthe\">nognietbekend</a>";
		break;
	}
	dd.innerHTML=content;
	AssignPosition(dd);
	dd.style.display = "block";

}


function cleartoelichting()
{
	timer = setTimeout("maakleeg()", 3000);
}

function maakleeg()
{
	var dd = document.getElementById("block");

//	dd.innerHTML = '';
	dd.style.display = "none";
//	dd.className = 'blokje';
	
	//verwijder timer
	if (timer != null)
	{
		timer = null;
	}
}
