var uid = new Date().getTime();
var flashProxy = new FlashProxy(uid, "flash/JavaScriptFlashGateway.swf");

if(document.ELEMENT_NODE == null) // IE fix
{
	document.ELEMENT_NODE = 1;
}

addEvent(window, "load", toon_kaartje);

function toon_kaartje()
{
	if(window.location.search.substr(0, ("?actie=machine_details").length) == "?actie=machine_details")
	{
		flashProxy.call("setReadOnly");
		setTimeout("zoekActieveArrondissementen()", 500); // kleine timeout, anders zal die setReadOnly methode niet uitgevoerd worden
	}
	if(window.location.search.substr(0, ("?actie=registreren").length) == "?actie=registreren");
	{
		maakConnectieTussenCheckboxenEnKaartje();
	}
}

function setActive(arrondissement)
{
	flashProxy.call("setActive", arrondissement);
}

function setInactive(arrondissement)
{
	flashProxy.call("setInactive", arrondissement);
}

function setActiveJS(arrondissement)
{
	var chk = vindCheckbox(arrondissement);
	chk.checked = true;
}

function setInactiveJS(arrondissement)
{
	var chk = vindCheckbox(arrondissement);
	chk.checked = false;
}

function maakConnectieTussenCheckboxenEnKaartje()
{
	if(!document.getElementById("active_arrondissementen"))
		return;
		
	reedsAangevinkteVakjes = [];
		
	var inputs = document.getElementById("active_arrondissementen").getElementsByTagName("input");
	for(var i = 0; i < inputs.length; ++i)
	{
		if(inputs[i].getAttribute("type") != "checkbox")
			continue;
			
		if(inputs[i].checked)
			reedsAangevinkteVakjes.push(inputs[i]);
			
		addEvent(inputs[i], "click", synchroniseerMetKaartje);
	}
	
	actieveArrondissementen = [];
	
	for(var i = 0; i < reedsAangevinkteVakjes.length; ++i)
	{
		var label = reedsAangevinkteVakjes[i].nextSibling;
		while(label.nodeType != document.ELEMENT_NODE && label.nodeName.toLowerCase() != "label")
			label = label.nextSibling;
			
		actieveArrondissementen.push(label.firstChild.nodeValue.toLowerCase());
	}
	
	setActive(actieveArrondissementen);
}

function synchroniseerMetKaartje()
{
	var label = this.nextSibling;
	while(label.nodeType != document.ELEMENT_NODE && label.nodeName.toLowerCase() != "label")
		label = label.nextSibling;
		
	if(this.checked)
		setActive(label.firstChild.nodeValue.toLowerCase());
	else
		setInactive(label.firstChild.nodeValue.toLowerCase());
}

function vindCheckbox(arrondissement)
{
	if(!document.getElementById("active_arrondissementen"))
		return;
		
	var labels = document.getElementById("active_arrondissementen").getElementsByTagName("label");
	for(var i = 0; i < labels.length; ++i)
	{
		if(labels[i].firstChild.nodeValue.toLowerCase() == arrondissement)
		{
			var input = labels[i].previousSibling;
			while(input.nodeType != document.ELEMENT_NODE && input.nodeName.toLowerCase() != "input")
				input = input.previousSibling;
				
			return input;
		}
	}
}

function zoekActieveArrondissementen()
{
	var dts = document.getElementsByTagName("dt");
	for(var i = 0; i < dts.length; ++i)
	{
		if(trim(dts[i].firstChild.nodeValue) == "Werkzaam in deze arr.")
		{
			var dd = dts[i].nextSibling;
			
			while(dd.nodeType != document.ELEMENT_NODE && dd.nodeName.toLowerCase() != "dd")
			{
				dd = dd.nextSibling;
			}
			
			if(dd.getElementsByTagName("ul").length > 0)
				filterArrondissementen(dd.getElementsByTagName("ul")[0]);
			
			break;
		}
	}
}

function filterArrondissementen(ul)
{
	var lis = ul.getElementsByTagName("li");
	
	arrondissementen = [];
	
	for(var i = 0; i < lis.length; ++i)
	{
		var arrondissement = trim(lis[i].firstChild.nodeValue);
		arrondissementen.push(arrondissement.toLowerCase());
	}
	
	setActive(arrondissementen);
}

function trim(value) // van http://www.joriso.nl/verhaaltjes-webdevelopment-javascript_trim.html
{
	value = value.replace(/^\s+/,'');
	value = value.replace(/\s+$/,'');
	return value;
}