/**
 * Begrotingsscan Javascript Broncodebestand
 *
 * Dit bestand bevat de beschikbare javascript code die wordt gebruikt op
 * verschillende plekken van de Innergo- en BegrotingsScan website. De meeste
 * code is afhankelijk van de MooTools javascript-module welke eveneens
 * beschikbaar moet zijn voor een propere werking van de website.
 *
 * Auteur: Design for Life 
 *         info@designforlife.nl
 */

new Image(172,34).src = "/images/stap1_aan.jpg";
new Image(172,34).src = "/images/stap1_uit.jpg";
new Image(166,34).src = "/images/stap2_aan.jpg";
new Image(166,34).src = "/images/stap2_uit.jpg";
new Image(170,34).src = "/images/stap3_aan.jpg";
new Image(170,34).src = "/images/stap3_uit.jpg";
new Image(168,34).src = "/images/stap4_aan.jpg";
new Image(168,34).src = "/images/stap4_uit.jpg";

var g_aSlides = new Array ();
var g_aOpened = new Array ();

var aProvincies = new Array
(
	"Drenthe",
	"Flevoland",
	"Friesland",
	"Gelderland",
	"Groningen",
	"Limburg",
	"Noord-Brabant",
	"Noord-Holland",
	"Overijssel",
	"Utrecht",
	"Zeeland",
	"Zuid-Holland"
);

function laadHoofdfuncties () 
{
	var pElement = $('hoofdfunctie_0');
	if (pElement)
	{
		for (var i = 0; i <= 10; i++)
		{
			var j = (i < 9) ? i : ((i == 9) ? '9a':'9b');
			pElement = $('hoofdfunctie_' + j);
			if (pElement)
			{
				var currentSlide = new Fx.Slide('hoofdfunctie_' + j);
				g_aSlides [i] = currentSlide;
				
				if (g_aOpened [i] != true)
					currentSlide.hide ();
			}
		}
	}
	
	pElement = $('selectie_1_invoer');
	if (pElement)
	{
		for (var i = 1; i < 12; i++)
		{
			var pAutoField = $('selectie_' + i + '_invoer');
			if (pAutoField)
				registerAutoField (pAutoField);
		}
	}

	var pList = $$('div.checkbox');
	if (pList)
	{
		pList.addEvent ('click', function () 
		{
			if (this.hasClass ('checked'))
				this.removeClass ('checked');
			else	this.addClass ('checked');
		});
	}
	
	if (typeof Videobox != "undefined")
	{
		Videobox.init.bind(Videobox);
		Videobox.init ();
		
		alert ('loaded');
	}
	
	var pAnchors = $$('a');
	if (pAnchors)
	{
		for (var i = 0; i < pAnchors.length; i++)
		{
			if (pAnchors [i] && pAnchors [i].rel && pAnchors [i].rel == "external")
				pAnchors [i].target = "_blank";
		}
	}
	
	var pLink = $('area_innergo');
	if (pLink) pLink.target = "_blank";
}

window.addEvent ('domready', laadHoofdfuncties);

function toggle (Nummer)
{
	if (g_aSlides [Nummer] && g_aSlides [Nummer].open)
	{
		$('stateimage_' + Nummer).set ('src', '/images/dicht.gif');
	}
	else
	{
		$('stateimage_' + Nummer).set ('src', '/images/open.gif');
	}
	
	g_aSlides [Nummer].toggle ();
}

function toggleAll (open)
{
	for (var i = 0; i <= 10; i++)
	{
		if (open) {	g_aSlides [i].show(); $('stateimage_' + i).set ('src', '/images/open.gif'); }
		else	  {	g_aSlides [i].hide(); $('stateimage_' + i).set ('src', '/images/dicht.gif'); }
	}
}


function goSelect (element)
{
	var cbsIndex = element.options [element.selectedIndex].value;
	window.location.href = "http://www.appsforlife.nl/algemeen/" + cbsIndex + ".html";
}

function createTabs (nActief, effect)
{
	var pElement = $('tabbladen');
	if (pElement)
	{
		pElement.empty ();
		
		var bSkipLink = false;
		if (nActief == -1)
		{
			nActief = 1;
			bSkipLink = true;
		}
		
		var pParent = new Element ('div').inject (pElement);
		pParent.set ('class', 'tabbladen_hidden');
		
		var actief = new Array ("uit","uit","uit","uit");
		actief [nActief-1] = "aan";
		
		var stapEen = new Element ('a', {href: "/algemeen.html"}).inject (pParent);
		new Element ('img', {src: "/images/stap1_" + actief [0] + ".jpg", width:172, height:34, alt:"stap 1: begroting"}).inject (stapEen);
		
		if (bSkipLink == false)
		{
			var stapTwee = new Element ('a', {href: "/selecties.html"}).inject (pParent);
			new Element ('img', {src: "/images/stap2_" + actief [1] + ".jpg", width:166, height:34, alt:"stap 2: selecties"}).inject (stapTwee);
		}
		else
		{
			new Element ('img', {src: "/images/stap2_" + actief [1] + ".jpg", width:166, height:34, alt:"stap 2: selecties"}).inject (pParent);
		}
		
		if (nActief == 2)
		{
			var stapDrie = new Element ('a', {href: "#"}).inject (pParent);
			new Element ('img', {src: "/images/stap3_" + actief [2] + ".jpg", width:170, height:34, alt:"stap 3: rapporten"}).inject (stapDrie);
			stapDrie.addEvent ('click', function ()
			{
				var pFormulier = $('formulier');
				pFormulier.submit ();
				return false;
			});
		}
		else
		{
			if (nActief > 2)
			{
				var stapDrie = new Element ('a', {href: "/rapport.html"}).inject (pParent);
				new Element ('img', {src: "/images/stap3_" + actief [2] + ".jpg", width:170, height:34, alt:"stap 3: rapporten"}).inject (stapDrie);
			}
			else
			{
				new Element ('img', {src: "/images/stap3_" + actief [2] + ".jpg", width:170, height:34, alt:"stap 3: rapporten"}).inject (pParent);
			}
		}
		
		if (nActief == 3)
		{
			var stapVier = new Element ('a', {href: "#"}).inject (pParent);
			new Element ('img', {src: "/images/stap4_" + actief [3] + ".jpg", width:168, height:34, alt:"stap 4: download"}).inject (stapVier);
			stapVier.addEvent ('click', function ()
			{
				var pFormulier = $('formulier');
				fillSelected ();
				
				pFormulier.submit ();
				return false;
			});
		}
		else
		{
			if (nActief == 4)
			{
				var stapVier = new Element ('a', {href: "/download.html"}).inject (pParent);
				new Element ('img', {src: "/images/stap4_" + actief [3] + ".jpg", width:168, height:34, alt:"stap 4: download"}).inject (stapVier);
			}
			else
			{
				new Element ('img', {src: "/images/stap4_" + actief [3] + ".jpg", width:168, height:34, alt:"stap 4: download"}).inject (pParent);
			}
		}
		
		var logOut = new Element ('a', {href: "/logout.html"}).inject (pParent);
		new Element ('img', {src: "/images/uitloggen.jpg", style:"border: 0px; margin-left: 226px;", width:60, height: 32, alt:"uitloggen"}).inject (logOut);
		
		if (effect)
		{
			var riseEffect = new Fx.Morph(pParent, {duration: 'long', transition: Fx.Transitions.Sine.easeOut});
			riseEffect.start({'margin-top': [36, 2], 'height': [0, 36] });
		}
		else
		{
			pParent.set ('class', 'tabbladen_normal');
		}
	}
}

function processLogin ()
{
	var pUserfield = $('field_user');
	var pPassfield = $('field_pass');
	var pCodefield = $('field_code');
	var pError = $('error');
	
	if (pUserfield && pPassfield && pCodefield && pError)
	{
		var sUsername = pUserfield.value;
		var sPassword = pPassfield.value;
		var sCode = pCodefield.value;
		
		if (sUsername.length == 0 || sPassword.length < 6)
		{
			pError.innerHTML = 'Onbekende gebruikersnaam- en/of wachtwoord.';
			pError.style.display = 'block';
			return false ;
		}
		
		pError.innerText = ' ';
		pError.style.display = 'none';
		document.body.style.cursor = 'wait';

		/** Probeer in te loggen via een ajax-verbinding; **/
		var pRequest = new Request ({
			url: "/algemeen-nolayout.html",
			data: "user=" + sUsername + "&pass=" + sPassword + "&code=" + sCode,
			method: "post",
			
			onSuccess: function (txt) 
			{
				document.body.style.cursor = 'auto';
				if (txt.substring (0, 6) == 'Error|')
				{
					var aPieces = txt.split ('|');
					pError.innerHTML = aPieces [2];
                    
					pError.style.display = 'block';
					
					pCodefield.value = aPieces[1];
                    
					return false ;
				}
				
				var pElement = $('pagina');
				if (pElement)
				{
					pElement.innerHTML = txt;
					
					laadHoofdfuncties ();
					createTabs (-1, true);
				}
			}
			
		}).send();
	}
	
	return false;
}

function processForgotPassword ()
{
	var pUserfield = $('field_user');
	var pError = $('error');
	
	if (pUserfield)
	{
		var sUsername = pUserfield.value;
		
		if (sUsername.length == 0)
		{
			pError.innerHTML = 'Onbekende e-mailadres.';
			pError.style.display = 'block';
			return false ;
		}
		
		pError.innerText = ' ';
		pError.style.display = 'none';
		document.body.style.cursor = 'wait';

		/** Probeer in te loggen via een ajax-verbinding; **/
		var pRequest = new Request ({
			url: "/algemeen-nolayout.html",
			data: "user=" + sUsername,
			method: "post",
			
			onSuccess: function (txt) 
			{
				document.body.style.cursor = 'auto';
				if (txt.substring (0, 6) == 'Error|')
				{
					var aPieces = txt.split ('|');
					pError.innerHTML = aPieces [2];
                    
					pError.style.display = 'block';
					pUserfield.value = '';
					
                    
					return false ;
				}
			}
			
		}).send();
	}
	
	return false;
}

function processZelf ()
{
	var pElement = $('idBack');
	if (pElement)
	{
		pElement.value = "1";
		return true ;
	}
}

function getTabData ()
{
	var pElement = $('tabs_open');
	pElement.value = "";
	
	for (var i = 0; i < 11; i++)
	{
		if (g_aSlides [i] && g_aSlides [i].open)
		{
			pElement.value += i + ",";
		}
	}
}

function wisGegevens ()
{
	if (confirm ("Weet u zeker dat u al uw eigen gegevens wilt verwijderen?"))
	{
		$$('input').set ('value', '');
		var pElement = $('formulier');
		
		var pgElement = $('idBack');
		if (pgElement)
			pgElement.value = "1";
		
		if (pElement)
			return true ;//pElement.submit ();
	}
	
	return false ;
}

function spawnUpload (element)
{
	var curLeft = 0;
	var curTop = 0;

	do {
		curLeft += element.offsetLeft;
		curTop += element.offsetTop;
		
	} while (element = element.offsetParent);

	var pElement = $('hover');
	if (pElement)
	{
		pElement.style.display = "block";
		pElement.style.top = (curTop + 8) + 'px';
		pElement.style.left = (curLeft - 100) + 'px';
		
	}

}

function registerAutoField (pElement)
{
	var aGemeenten = new Array ();
	for (var i = 0; i < 399; i++)
	{
	    //if(typeof(g_aGemeenten [i] [0]) === 'undefined') alert (i);
		aGemeenten [i] = g_aGemeenten [i] [0];
	}

	new AutoSuggest (pElement, aGemeenten);
}

function toInteger (sString)
{
	return parseInt (sString.replace (/\,/g, ''));
}

function checkMatch (element, id)
{
	var pCBS = $('selectie_' + id + '_cbs');
	var pSociaal = $('selectie_' + id + '_sociaal');
	var pCentrum = $('selectie_' + id + '_centrum');
	var pInwoners = $('selectie_' + id + '_inwoners');
	var pAU = $('selectie_' + id + '_au');
	//$('autosuggest').style.display = "none";

	var pElement = $(element);
	if (pElement)
	{
		var sValue = pElement.value;
		for (var i = 0; i < g_aGemeenten.length; i++)
		{
			/** Match op de naam van de gemeente? **/
			if (g_aGemeenten [i] [0].toLowerCase () == sValue.toLowerCase ())
			{
				if (pCBS)	pCBS.innerHTML = aProvincies [g_aGemeenten [i] [6]];
				if (pInwoners)	pInwoners.innerHTML = g_aGemeenten [i] [2];
				if (pAU)	pAU.innerHTML = g_aGemeenten [i] [3];
				if (pCentrum)	pCentrum.innerHTML = g_aGemeenten [i] [4];
				if (pSociaal)	pSociaal.innerHTML = g_aGemeenten [i] [5];
				
				return ;
			}
		}
	}
	
	if (pCBS)	pCBS.innerHTML = " ";
	if (pInwoners)	pInwoners.innerHTML = " ";
	if (pAU)	pAU.innerHTML = " ";
	if (pCentrum)	pCentrum.innerHTML = " ";
	if (pSociaal)	pSociaal.innerHTML = " ";
	
	for (var i = 0; i < 12; i++)
	{
		var pAutoField = $('selectie_' + i + '_invoer');
		if (pAutoField)
		{
			if (pAutoField.value != '')
				return ;
		}
	}
	
	$('rapport_2').checked = false;
	$('rapport_3').checked = false;
	$('rapport_4').checked = false;
}
/*
function checkRapport (element)
{
	var pElement = $(element);
	if (pElement)
	{
		for (var i = 1; i < 12; i++)
		{
			var pAutoField = $('selectie_' + i + '_invoer');
			if (pAutoField)
			{
				if (pAutoField.value != '')
					return ;
			}
		}
	}
	
	alert ("Let op! Voor dit rapport moet u tenminste één selectiegemeente specificeren.");
	return false ;
}*/

function getValueFromInput (sName)
{
	var pElement = $(sName);
	if (pElement)
	{
		return pElement.options[pElement.selectedIndex].value;
	}
	
	return '-';
}

function searchAdd ()
{
	var pElement = $(this);
	if (pElement)
	{
		var sGemeente = pElement.innerHTML;
		for (var i = 0; i < 12; i++)
		{
			var pAutoField = $('selectie_' + i + '_invoer');
			if (pAutoField)
			{
				if (pAutoField.value.toLowerCase() == sGemeente.toLowerCase ())
					break ;
				
				if (pAutoField.value == '')
				{
					pAutoField.value = sGemeente;
					checkMatch (pAutoField, i);
					break ;
				}
			}
		}
	}
	
	return true ;
}

function updateSearch ()
{
	var pLijst = $('gemeenten_lijst');
	
	var sorteerSS = getValueFromInput ('sor_sociale_structuur'); // Sociale structuur
	var sorteerCF = getValueFromInput ('sor_centrum_functie'); // Centrum functie
	var sorteerPR = getValueFromInput ('sor_provincie'); // Provincie
	var sorteerIN = getValueFromInput ('sor_inwoners'); // Inwoners
	
	if (pLijst)
	{
		pLijst.empty ();
		
		if (!Browser.Engine.trident)
			pLijst.style.height = "200px";
	
		var nCount = 0;
		
		for (var i = 0; i < g_aGemeenten.length; i++)
		{
			/** Selecteren we op de sociale structuur? **/
			if (sorteerSS != '-' && g_aGemeenten [i] [5].toLowerCase() != sorteerSS)
				continue ;
			
			/** Misschien op de centrumfunctie? **/
			if (sorteerCF != '-' && g_aGemeenten [i] [4].toLowerCase() != sorteerCF)
				continue ;
			
			/** Ook kunnen we selecteren op de provincie van een gemeente **/
			if (sorteerPR != '-' && g_aGemeenten [i] [6] != sorteerPR)
				continue ;
			
			/** En uiteraard op het aantal inwoners dat de gemeente teld **/
			if (sorteerIN != '-')
			{
				var nSorteer = sorteerIN.split ('-');
				var nInwoners = toInteger (g_aGemeenten [i] [2]);
				
				if (nInwoners < nSorteer [0] || nInwoners > nSorteer [1])
					continue ;
			}
			
			if (g_aGemeenten [i] [4] == '') g_aGemeenten [i] [4] = '-';
			if (g_aGemeenten [i] [5] == '') g_aGemeenten [i] [5] = '-';
			
			/** Beam me up, Scotty! **/
			var trElement = new Element ('tr').inject (pLijst);
			var trLink = new Element ('td', {style: "width: 289px"}).inject (trElement);
			new Element ('a', {href:'#', html:g_aGemeenten [i] [0]}).addEvent('click', searchAdd).inject (trLink);
			
			new Element ('td', {style: "width: 154px", html:g_aGemeenten [i] [5]}).inject (trElement);
			new Element ('td', {style: "width: 150px", html:g_aGemeenten [i] [4]}).inject (trElement);
			new Element ('td', {style: "width: 147px", html:aProvincies [g_aGemeenten [i] [6]]}).inject (trElement);
			new Element ('td', {style: "width: 132px", html:g_aGemeenten [i] [2]}).inject (trElement);
			nCount ++;
		}
		
		/** Bij geen gevonden resultaten, geef een berichtje weer **/
		if (nCount == 0)
		{
			var trElement = new Element ('tr').inject (pLijst);
			new Element ('td', {style: "width: 289px", html:"Er zijn geen resultaten gevonden."}).inject (trElement);
			new Element ('td', {style: "width: 154px", html:""}).inject (trElement);
			new Element ('td', {style: "width: 150px", html:""}).inject (trElement);
			new Element ('td', {style: "width: 147px", html:""}).inject (trElement);
			new Element ('td', {style: "width: 132px", html:""}).inject (trElement);
			
			if (!Browser.Engine.trident)
				pLijst.style.height = "16px";
		}
		
		/** Pas de minimale hoogte aan als er minder dan 13 resultaten zijn. **/
		else if (nCount < 13)
		{
			if (!Browser.Engine.trident)
				pLijst.style.height = (nCount * 16) + "px";
		}
	}
}

function showRapport (pSpan, sRapport)
{
	document.body.style.cursor = 'wait';
	var pRequest = new Request.HTML ({
		url: sRapport + "-nolayout.html",
		method: "get",
		evalScripts: true,
		
		onSuccess: function (a, b, txt, c) 
		{
			document.body.style.cursor = 'auto';
			var pElement = $('rapporten');
			
			if (pElement)
			{
				pElement.innerHTML = txt;
			}
		}
		
	}).send();
	
	/**  **/
	if (pSpan)
	{
		var pList = $$('#selectie_lijst span');
		if (pList)
			pList.setStyle ('text-decoration', 'none');
	
		$(pSpan).setStyle ('text-decoration', 'underline');
	}
	
	return false ;
}

function openChart ()
{
	var pElement = $('lb_c');
	if (pElement)
	{
		pElement.empty ();
		
		$('lightbox').setStyle ('display', 'block');
		$('lightbox_content').setStyle ('display', 'block');
		$('lightbox').addEvent ('click', function ()
		{
			closeChart ();
		});
		
		var so = new SWFObject ('/Sources/Vendor/Charts/' + gDjFil + '.swf', 'chartFull', '800', '480', '8', '#FFFFFF');
		so.addParam('menu', 'false');
		so.addParam('flashvars', 'chartWidth=800&chartHeight=480&debugMode=0&DOMId=ChartId&registerWithJS=0&scaleMode=noScale&lang=EN&dataURL=' + gDjUrl);
		so.addParam('allowScriptAccess', 'always');
		
		so.write ('lb_c');
	}
}

function closeChart ()
{
	var pElement = $('lb_c');
	if (pElement)
	{
		$('lightbox').setStyle ('display', 'none');
		$('lightbox_content').setStyle ('display', 'none');
		pElement.empty ();
	}
}

function fillSelected ()
{
	var pList = $$('div.checkbox');
	if (pList)
	{
		var pSelected = $('selected');
		pSelected.value = "";
		
		for (var i = 0, j = pList.length; i < j; i++)
		{
			if (pList [i].hasClass ('checked'))
				pSelected.value += i + ",";
		}
		
		return ;
	}
}

// g_aGemeenten

