/*
	graphical user interface functions
	( c ) 2005 GemeenteOplossingen
*/

if (document.addEventListener) 
{
    document.addEventListener("DOMContentLoaded", init, null);
}

// fallback
window.onload = init;


function toggle_ul(anchor)
{
	var li_object = anchor.parentNode;

	var nodes = li_object.getElementsByTagName('ul');

	if(nodes.length < 1)
	{
		anchor.className	=	'opened';
	}

	for (var i = 0; i < nodes.length; i++)
	{
		if (nodes[i].className == 'collapsed')
		{
			nodes[i].className = 'expanded';
			anchor.className = 'opened';
		}
		else
		{
			nodes[i].className = 'collapsed';
			anchor.className = 'closed';
		}
		// first is enough .. break loop
		break;
	}
}

function expand_first_ul(node)
{
	var nodes = node.getElementsByTagName('ul');
	for (var i = 0; i < nodes.length; i++)
	{
		nodes[i].className = 'expanded';
		return;
	}
}

function init()
{
	
	//make sure we only get here once
	if (arguments.callee.done)
	{
		return;
	}
	arguments.callee.done = true;

	var menu = document.getElementById('nav');
	if(menu)
	{
		collapse_all(menu);
		set_active_option(menu);
		build_treecontrols(menu);
	}
	set_clicks("quicknavigation");
	set_clicks("subnavigation");

	// load different css at each page
	set_css("css_visual");

	// move the navigation
	movePijl('450');
	
	//check melding
	checkmelding();
	
	//skiplinks
	add_events_links();

	//popup();
	
	
	
	//clear searchbox
	add_click_searchbox();

}


//toegevoegd ivm popup omdat andere getcookie functie niet de het juiste teruggeeft

function getCookie2(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=");
  if (c_start!=-1)
    { 
    c_start=c_start + c_name.length+1; 
    c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length;
    return unescape(document.cookie.substring(c_start,c_end));
    } 
  }
return null;
}


function popup()
{
	var visited = getCookie2('visited');		
				
	if (visited==null)
	{ 				
		var Banner=window.open("http://dorp.oostzaan.nl//site/dorp.oostzaan.nl/layout/bestellen.html","Banner",	"width=515,height=345,left=200,top=200");				
		if (Banner!=null)
		{
			setcookie('visited','active');
		}					
			
	}
}

//end popup


function add_click_searchbox()
{
	set_click('sq');
	set_click('q');
	set_click('zoeken');
	

}

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 == 'Uw zoekopdracht')
	{
		a_box.value = '';
	}
}


function collapse_all(menu)
{
	var items = menu.getElementsByTagName('UL');

	for (var n = 0; n < items.length; n++)
	{
		items[n].className = 'collapsed';
	}
}

function build_treecontrols(menu)
{

	var items = menu.getElementsByTagName('LI');
	for (var n = 0; n < items.length; n++)
	{
		var a = items[n].getElementsByTagName('A');
		if(a != null)
		{
			a[0].onclick	=	function()
								{
									set_active_cookie(this);
									toggle_ul(this);
								}
		}
	}
}

function set_active_cookie(obj)
{
	var li_object = obj.parentNode;
	if(li_object)
	{
		setcookie("active",li_object.id);
	}
}

function set_active_option(menu)
{
	var active_id	=	getcookie("active");

	if(active_id != null)
	{
		var active_li_obj	=	document.getElementById(active_id);
		if(active_li_obj != null)
		{
			// first level ul beneath active li
			expand_first_ul(active_li_obj);

			// own li expanded and his parents
			do
			{
				active_li_obj.className	=	'expanded';
				set_class_a(active_li_obj,"opened");
				active_li_obj = active_li_obj.parentNode;
			}
			while(active_li_obj.getAttribute('id') != 'nav');
			// last active a
			set_class_a(active_li_obj,"opened");
		}
	}
}

function set_class_a(obj,name)
{

	if(obj != null)
	{

		var lis = obj.getElementsByTagName("LI");
		for (var n in lis)
		{

			if (lis[n].className == 'expanded')
			{

				var atag 	= 	lis[n].getElementsByTagName("A")[0];
				atag.className = name;
				break;
			}
		}

	}
	return false;
}

function set_clicks(obj)
{
	var nav		=	document.getElementById(obj);
	if(nav)
	{
		var as		=	nav.getElementsByTagName("A");
		for(n = 0; n < as.length; n++)
		{
			as[n].onclick	=	function () {
												setcookie('active',0);
											}
		}
	}
}

function set_css(name)
{
	// Generate random number and load the css
	var nrImages 	=	10;
	var ranNum		=	Math.round(Math.random()*(nrImages-1));
    var obj			=	document.getElementById(name);
    if(obj)
    {
    	var attr	=	"/site/www.oostzaan.nl/layout/css/gem/visual_"+ranNum+".css";
    	obj.setAttribute("href",attr);
    }
}

function setcookie(name,value)
{
	document.cookie = name + '=' + value + '; path=/';
}

function getcookie(name)
{
	var c = new String(document.cookie);
	var re = new RegExp('(.*' + name + '=)([^;]+)(;*.*)',"g");
	c = c.replace(re,"$2");
	return c;
}

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 - 171 + scrollTop)+'px';

	    setTimeout("movePijl("+l+")",50);
	}
}

// 	trigger onload when DOM is ready. for IE see ie_onload.js and the conditional
//	comment in main.jsp

//	(moz browsers)
if (document.addEventListener)
{
    document.addEventListener("DOMContentLoaded", init, null);
}

function zetDatumHiddenField(veldnaam)
{
	dag   = eval("document.formulier." + veldnaam + "Day.value;");
	maand = eval("document.formulier." + veldnaam + "Month.value;");
	year  = eval("document.formulier." + veldnaam + "Year.value;");
	eval("document.formulier." + veldnaam + ".value = '" + dag + "-" + maand + "-" + year + "';");
}

function check(a_form)
{
	// make sure we dont check too often...
	changed = false;

	var msg = '';
	msg = do_check(a_form);			
	if (msg != '')
	{
		msg = 'U heeft de volgende verplichte velden niet ingevuld:\n\n' + msg;
		alert(msg);
		return false;
	}
	else
	{
		return true;
	}
}


function do_check(a_form)
{
	msg = '';
	inputs = a_form.getElementsByTagName('input');
	textareas = a_form.getElementsByTagName('textarea');
	
	msg = required(inputs, msg)
	msg = required(textareas, msg)
	
	return msg;
}


function required(inputs, msg)
{
	var labels = document.getElementsByTagName('label');

	for (var n = 0; n < inputs.length; n++)
	{
		elem = inputs[n];
		if (elem.className.indexOf('required') > -1 && elem.value == '')
		{
			find = null;
			for (var i = 0; i < labels.length; i++)
			{
				if (labels[i].getAttribute('for') == elem.getAttribute('id'))
				{
					find = labels[i];
				}
			}
			
			var re = /(\*|&nbsp;)/gi;
			var fname = find.innerHTML.replace(re,'');
			msg = msg + '-\t' + fname + '\n';
			
			elem.className = 'required errorfield'; 
		}
		else
		{
			elem.className = elem.className.replace(/errorfield/gi,'');
		}
	}
	return msg;
}

function checkmelding()
{
	var melding	=	document.getElementById('vl');
	if(melding)
	{
		melding.focus();
	}
}

//skiplinks

function add_events_links()
{
	var links = document.getElementsByTagName('a');
	var img = '&nbsp;<img src="/site/default/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 '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;
		}
	}
}

function newwin()
{
	window.open(this.href,'_blank');
	return false;
}


function show_skippy(skiplink,display)
{
	if (display)
	{
		skiplink.style.zIndex = '1000';
		skiplink.style.left = 'auto';
	}
	else
	{
		skiplink.style.position = 'absolute';
		skiplink.style.left = '-999em';
	}
}



