/*			
						This library is copyright protected, Ninebits © 2007
			
			--------------------------------------------------------------------------------------------------------------------
			None of the scripts, functions or any other elements on this site and this library
			may be copied, sold, decompiled or used in any other way than as a library
			to the avenance site.
			
			Unauthorised backup is prohibited, only one instance may reside at the server
			where the avenance project is hosted. On request a new instance will be installed
			by Ninebits.
			--------------------------------------------------------------------------------------------------------------------
			Please visit us at http://www.ninebits.nl
			--------------------------------------------------------------------------------------------------------------------
			This library is W3C compliant, FF, IE, NS, OP. 26-07-2005 22:33 CET
			
			FF = gecko
			Konqueror = khtml
			Mozilla = gecko
			Internet explorer = msie
			NS = gecko/netscape
			Opera = opera
*/


	/*verzorgt acties na het kiezen van een adres in het logboek van een optant in het beheer*/
	function nbadreskeuze(kavId, straat, hsnr, tvgng){
		document.getElementById('kavId').value=kavId;
		document.getElementById('adres').innerHTML=straat + ' ' + hsnr + tvgng;
		document.getElementById('adressenlijst').style.display='none';
		document.getElementById('geselecteerdadres').style.display='block';
		document.getElementById('zoekadres').value='Zoek woning';
	}

	/*bewaakt de verschillende instellingen/keuzes van het logboek van een optant in het beheer*/
	function nblogboeksettings(schakelaar){
		var aw = 'none';
		var ew = aw;
		var kavId = document.getElementById('kavId').value;
		
		// Geen interesse: --> `kavId` legen en zoekveld dichtklappen, en `eigen woning` en `andere woning` op nee zetten
		if(schakelaar == 'optGeeninteresse1'){
			kavId = '';
			document.getElementById('optInteresseeigenwoning0').checked=1;	
			document.getElementById('optInteresseanderewoning0').checked=1;	
		}
		// Interesse andere woning: --> zoeker tonen en `geen interesse` en `eigen woning` op nee zetten
		else if(schakelaar == 'optInteresseanderewoning1'){
			aw = 'block';
			document.getElementById('optInteresseeigenwoning0').checked=1;
			document.getElementById('optGeeninteresse0').checked=1;
		}
		
		// Interesse eigen woning: --> zoeker sluiten en `geen interesse` en `andere woning` op nee zetten
		else if(schakelaar == 'optInteresseeigenwoning1'){
			kavId = '';
			ew = 'block';
			document.getElementById('optInteresseanderewoning0').checked=1;
			document.getElementById('adres').innerHTML='';
			document.getElementById('optGeeninteresse0').checked=1;		
		}
		
		else if(schakelaar == 'optInteresseanderewoning0'){
			kavId = '';
			document.getElementById('adres').innerHTML='';
		}
		if (document.getElementById('anderewoning')){
			document.getElementById('anderewoning').style.display = aw;
		}
		if(document.getElementById('eigenwoning')){
			document.getElementById('eigenwoning').style.display = ew;
		}
		document.getElementById('kavId').value = kavId;
	}

	/* Zoekfunctionaliteit op overzichten*/
	function nbzoeken(module, bestand, locatie, term, form, mcase, mimimaletermlengte){
		if (term.length > mimimaletermlengte){			
			document.getElementById(form).onsubmit=function(){nbx_beheer_post(module,bestand,locatie,mcase,form,form);};
			document.getElementById(form).onsubmit();
		}
		else if (term.length == 0){
			document.getElementById(form).onsubmit=function(){nbx_beheer_post(module,bestand,locatie,mcase,form,form);};
			document.getElementById(form).onsubmit();
		}
	}

	// Celcontrole op getal, omzetten naar valuta
	function _nbgetalopmaak(cel, waarde, decimalen){
		var valuta = waarde.toString();
		if (document.getElementById(cel)){
			var obj = document.getElementById(cel);
		}
				
		// We moeten op lengte controleren anders wordt 0 niet naar totalen gerekend
		if (valuta.length > 0){
			if (document.getElementById(cel)){				
				if (valuta.indexOf(',') > -1) {
					var waarden = valuta.split(',');
					valuta = waarden[0] + '.' + waarden[1];
				}
				valuta = new Number(valuta);				
				if (isNaN(valuta)){
					obj.value = '';
					_nbalert('Dit is geen geldige invoer of u heeft een waarde gewist, de invoer is verwijderd.');
				}
				else{
					if (typeof(decimalen) != 'undefined'){
						aantal_decimalen = decimalen;
					}
					obj.value = valuta.toFixed(aantal_decimalen);
				}
			}
			else{
				_nbalert('De doelcel bestaat niet, neem contact op met de helpdesk. (' + cel + ')');
			}
		}
	}

	/* info divs mooi plaatsen vanaf 0, 0 - als oid bekend is dan alleen klappen en plaatsen */
	_nbdivweergave = function(titel, omschrijving, event, modus, oid){
		if (typeof(oid) == 'undefined'){
			var id = 'nb_globaal_info';
		}
		else{
			var id = oid;
		}
		
		var melding = '';
		if (document.getElementById(id)){
			var obj = document.getElementById(id);
			var display = 1;
			if (typeof(modus) == 'undefined'){
				display = 0;
			}
			else if(modus == ''){
				display = 0;
			}
			
			var x = (_x(event) + 28);
			
			// Plus de gescrollde px in y richting
			// Var y is altijd de positie van het element waar je de muis op zet
			// Als we bodypositie eraf halen hebben we altijd de positie tov de bovenrand
			var y = (_y(event) + 8) - _nbbodypositie();
			
			// Laag even zichtbaar maken buiten de grid zodat we de stijl kunnen lezen
			_nblaag(id, 1, -400, -400);
			
			// Als de absolute afstand tov de bovenrand tesamen met de hoogte van
			// het termenvenster meer is dan de schermhoogte dan bijstellen
			if ( (y + parseInt(_nbpakstijl(id, 'height')) + 8) > _nbvensterhoogte() ){
				y = y - (parseInt(_nbpakstijl(id, 'height')) + 54);
			}
			
			// Als de absolute afstand tov de linkerrand tesamen met de breedte van
			// het termenvenster meer is dan de schermhoogte dan bijstellen
			if ( (x + parseInt(_nbpakstijl(id, 'width')) + 12) > _nbvensterbreedte() ){
				x = x - (parseInt(_nbpakstijl(id, 'width')) + 24);
			}
			
			// De afstand tov de bovenrand van het venster terugrekenen naar
			// de afstand tov de bovenrand van de body voor de juiste plaatsing
			y = y  + _nbbodypositie();
			
			// Tekst inlopen
			if (typeof(oid) == 'undefined'){
				obj.innerHTML = '<' + 'div class="nb_globaal_info_titel">' + titel + '<\/' + 'div><' 
					+ 'div class="nb_globaal_info_tekst">' + omschrijving + '<\/' + 'div>';
			}
						
			// Term uitklappen
			_nblaag(id, display, x, y);
		}
		return true;
	};
	
	/* Afbeelding ipopup */
	_nbafbeeldingipopup = function(url, oid, ob, oh){
		
		var id = (typeof(oid) == 'undefined' || oid =='' ? 'nb_globaal_info' : oid);
		
		if (document.getElementById(id)){
			var obj = document.getElementById(id);
			
			var wb = _nbvensterbreedte();
			var wh = _nbvensterhoogte();
			
			// Laag even zichtbaar maken buiten de grid 
			// zodat we de stijl kunnen lezen
			_nblaag(id, 1, -400, -400);
			
			// Aanpassen
			var obj = document.getElementById('nb_globaal_info');
		
			if(typeof(ob) == 'undefined' || ob ==''){
				ob = (obj.offsetWidth ? obj.offsetWidth : obj.style.pixelWidth);
			}
			if(typeof(oh) == 'undefined' || oh ==''){
				oh = (obj.offsetHeight ? obj.offsetHeight : obj.style.pixelHeight);
			}
			
						// Tekst inlopen
			if (typeof(oid) == 'undefined' || oid ==''){
				obj.innerHTML = '<div class="nb_globaal_info_tekst" style="width: '+ob+';height: '+oh+';">'
					+ '<img src="' + url + '" width="' + ob + '" height="' + oh + '"><\/' + 'div>';
			}
			
			obj.style.left = Math.round((wb - ob) / 2) + 'px';
			
			// Bepalen of vergrote foto onder banner getoond wordt, anders correctie toepassen zodat dit wel het geval is
			var top = Math.round(((wh - oh) / 2) + _nbbodypositie());
			var bannerhoogte = 190;
			if(top < bannerhoogte){
				top = top + (bannerhoogte-top);
			}
			
			obj.style.top = top + 'px';

			document.getElementById('nb_globaal_info').onclick = function(){_nbdivweergave(0,0,this,0);void(0);};
		}
		return true;
	};
	
	/* Eerste karakter hoofdletter */
	String.prototype.kapeerst = function(){
		return this.toLowerCase().substring(0,1).toUpperCase()+this.substring(1, this.length);
	};
	
	/* Uitrekenen hoeveel er gescrolled is */
	function _nbbodypositie(){
		var top=0;
		if(document.documentElement && document.documentElement.scrollTop){
			top = document.documentElement.scrollTop;
		}
		else if(document.body){
			top = document.body.scrollTop;
		}
		
		return top;
	};
	
	/* Div lagen schakelen */
	var _nblaag = function(laag, modus, x, y){
		var modi = new Array('none' ,'block', 'switch');
		var div = document.getElementById(laag).style;
		if (arguments.length > 1){
			var weergave = modi[modus];
			switch (weergave){
				case 'block':
					if (arguments.length > 2 && typeof(x) == 'number'){
						div.left = x + 'px';
					}
					if (arguments.length > 3 && typeof(y) == 'number'){
						div.top = y + 'px';
					}
				break;
				case 'switch':
					weergave = (div.display=='block')?'none':'block';
				break;
			}
			div.display = weergave;
		}
	};
	
	/* X coordinaat */
	var _x = function(e){
		if (e.pageX){
			return e.pageX;
		}
		else if (e.clientX){
			return e.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
		}
		else{
			return null;
		}
	};
		
	/* Y coordinaat */
	var _y = function(e){
		if (e.pageY){
			return e.pageY;
		}
		else if (e.clientY){
			return e.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
		}
		else{
			return null;
		}
	};
	
	/* Computed stijl ophalen */
	var _nbpakstijl = function(id, css){
		if (!document.getElementById(id)){
			return false;
		}
		var obj = document.getElementById(id);
		if (typeof(obj.style[css]) != 'undefined' && obj.style[css] != '' && obj.style[css] != 'auto'){
			return obj.style[css];
		}
		else if (document.defaultView && document.defaultView.getComputedStyle){
			return document.defaultView.getComputedStyle(obj, '').getPropertyValue(css);
		}
		else if (obj.currentStyle && obj.currentStyle[css] != 'auto'){
			css = css.replace(/-(w)/g, function (gevonden, kar){return kar.toUpperCase();});
			return obj.currentStyle[css];
		}
		else{
			return obj['offset' + css.kapeerst()];
		}
		return false;
	};
 	
 	/* Go url zonder onbeforeunload trap */
 	function _nburl(url){
		//window.onbeforeunload = null;
		document.location.href = url;
	}
	
	/* Unload detect */
	function _nbontladen(){
		return 'U wilt de Optielijst verlaten of u heeft de \'Terug\' of \'Vernieuwen\' knop gebruikt van uw browser.';
	}
	
	/* Unload detect uitschakelen */
	function _nbgeenontladen(){
		window.onbeforeunload = null;
	}
	
	/* Venster breedte */
	function _nbvensterbreedte(){
		if (typeof(window.innerWidth) == 'number'){
			return window.innerWidth;
		}
		else{
			return document.documentElement.clientWidth;
		}
	}

	/* Venster hoogte */
	function _nbvensterhoogte(){
		if (typeof(window.innerHeight) == 'number'){
			return window.innerHeight;
		}
		else{
			return document.documentElement.clientHeight;
		}
	}
	
	// Rechtermuis onderdrukken, puur esthetisch
	if (this.location.host.substring(0,3) != 192 && this.location.host.indexOf('ninebits.nl') == -1){
		document.oncontextmenu = function(){return false;}
	}

	// Lokaal object waar functies en variabelen in geladen kunnen worden, ook door ajax
	var nblib_lokaal = {}
	
	// Variabele waar een popup in geladen wordt zodat deze globaal aanspreekbaar is
	nblib_lokaal.venster = '';
	
	// Popupfocus vasthouden
	window.onfocus=_nbfocuspopup;
	
	// Kleuren
	var celrand = new Array();
		// Grijs
		celrand['neutraal'] = '#898989';
		// Ave rood
		celrand['leeg'] = '#ce0f41';
		// Ave geel
		celrand['ongelijk'] = '#f7981a';
		
	
	
	
	/* RUNTIME */
	
	/* Muislocatie monitoren */
	if (typeof(nbs_navigator) != 'undefined'){
		if(nbs_navigator[0]=='netscape'){
			//document.captureEvents(Event.MOUSEMOVE);
			//window.addEventListener();
		}
	}
	
	function _nbno(num){
		return new Number(num);
	}
		
	/* FUNCTIE BIBLIOTHEEK */
		
	/* Rechtermuisknop uitschakelen */
	if (typeof(nbs_cmenu) != 'undefined'){
		if (!nbs_cmenu){
			document.oncontextmenu=function(){return false;}
		}
	}
	else{
		document.oncontextmenu=function(){return false;}
	}
	
	/* Window status */
	function _nbstatus(melding){
		window.status = melding;
		return true;
	}
	
	/* Onload opbouwen */
	function _nbtoevoegenonload(func){
		var oldonload = window.onload;
		if (typeof(window.onload) != 'function') {
			window.onload = func;
		}
		else{
			window.onload = function() {
				if (typeof(oldonload) == 'function') {
					oldonload();
				}
				func();
			}
		}
	}
	
	/* Afmelden als er geen locaties zijn gevonden */
	function _nbafmelden(melding){
		_nbalert(melding);
		document.location.href = nbs_basisuri + 'afmelden';
	}
	
	/* Positie bepalen van een item */
	function _nbgeefpositie(doel, richting){
		if (document.getElementById(doel)){
			var obj = document.getElementById(doel);
			var coordinaten = new Array();
			if (obj.offsetParent){
				coordinaten['x'] = obj.offsetLeft
				coordinaten['y'] = obj.offsetTop
				while (obj = obj.offsetParent){
					coordinaten['x'] += obj.offsetLeft
					coordinaten['y'] += obj.offsetTop
				}
			}
			return coordinaten[richting];
		}
		return -1;
	}
	
	/* Details van de browser beschikbaar maken in een array() */
	function nbbepaalbrowser(){
		return new Array(navigator.appName.toLowerCase(),parseFloat(navigator.appVersion.toLowerCase()),navigator.userAgent.toLowerCase());
	}
	
	/* Nette waarschuwing */
	function _nbalert(melding){
		alert('Waarschuwing\n\n' + melding);
	}
	
	/* Nette bevestiging */
	function _nbconfirm(melding){
		return confirm('Bevestiging\n\n' + melding);
	}
	
	/* Transparant maken van een gebied */
	function nbtransparantie(id, perc){
		if (document.getElementById(id)){
			var obj = document.getElementById(id);
			obj.style.opacity = (perc/100);
			obj.style.filter = 'alpha(opacity=' + perc + ')';
		}
	}
	
	/* Een soort in_array() */
	function nbdoorzoekreeks(reeks, waarde){
		for(var i=0;i<reeks.length;i++){
			if(reeks[i]==waarde){
				return true;
			}
		}
		return false;
	}
	
	/* Dynamisch het midden bepalen van de pagina die in beeld is inclusief scroll afstanden */
	function nbvensterafmetingen(){
		var afm = new Object();
		var breedte=0, hoogte=0;
		if(self.innerWidth){
			breedte = self.innerWidth;
			hoogte = self.innerHeight;
		}
		else if(document.documentElement && document.documentElement.clientWidth){
			breedte = document.documentElement.clientWidth;
			hoogte = document.documentElement.clientHeight;
		}
		else if(document.body){
			breedte = document.body.clientWidth;
			hoogte = document.body.clientHeight;
		}
		afm.breedte=breedte;
		afm.hoogte=hoogte;
		return afm;
	}
	
	/* Uitrekenen hoeveel er gescrolled is */
	function nbbodypositie(){
		var top=0;
		if(document.documentElement && document.documentElement.scrollTop){
			top = document.documentElement.scrollTop;
		}
		else if(document.body){
			top = document.body.scrollTop
		}
		return top;
	}
	
	/* Popup verschalen */
	function _nbverschalen(breedte, hoogte){
		if (breedte > screen.width){
			breedte = screen.width;
		}
		if (hoogte > (screen.height - 35)){
			hoogte = (screen.height - 35);
		}
		var x = (screen.width - breedte) / 2;
		var y = (screen.height - hoogte - 31) / 2;
		window.moveTo(x, y);
		window.resizeTo(breedte, hoogte);
	}
	
	/* Popup maken */
	function nbpopvenster(url, naam, breedte, hoogte, scrollen, vervormen, controle){
		if(!breedte){
			breedte = screen.availWidth-5;
			if(breedte>1024){
				breedte = 1000;
			}
		}
		if(!hoogte){
			hoogte = screen.availHeight-40;
			if(hoogte>768){
				hoogte = 712;
			}
		}
		if (!scrollen){
			scrollen = 'auto';
		}

		nblib_lokaal.venster = new Object();
		nblib_lokaal.venster.closed = true;
		url = nbs_basisuri + url;
		var coorx = (screen.width - breedte) / 2;
		var coory = (screen.height - hoogte) / 2;
		var eigenschappen = 'height='+hoogte+',width='+breedte+',top='+coory+',left='+coorx+',status=no,scrollbars='+scrollen+',resizable='+vervormen+'';
		nblib_lokaal.venster = window.open(url, naam, eigenschappen);
		if(_nbispopup(nblib_lokaal.venster)){
			if(nblib_lokaal.venster.focus()){
				nblib_lokaal.venster.focus(); 
			}
		}
		// Controleren of de popup geopend is
		if (typeof(controle) == 'undefined'){
			setTimeout('_nbpopupcontrole()', 1000);
		}
	}
	
	/* Popup vinden en controleren */
	function _nbispopup(naam){
		if (typeof(naam) != 'undefined'){
			if (naam && !naam.closed){
				return true;
			}
		}
		return false;
	}

	/* Popups verbinden met de openers */
	function _nbfocuspopup(){
		if (_nbispopup(nblib_lokaal.venster)){
			nblib_lokaal.venster.focus();
		}
	}
	
	/* Popup sluiten vanuit openers */
	function _nbsluitpopup(){
		if (_nbispopup(nblib_lokaal.venster)){
			nblib_lokaal.venster.close();
		}
	}
	
	/* Controle of een popup lancering is gelukt, zoniet dan een melding geven */
	function _nbpopupcontrole(){
		var melding = 'Het lijkt erop dat u een popup blokker gebruikt, om deze functie te ';
		melding += 'gebruiken moet u dit domein toestemming geven om popup vensters te openen.';
		if (!_nbispopup(nblib_lokaal.venster)){
			_nbalert(melding);
		}
	}

	/* Focus geven aan een element */
	function nbgeeffocus(id){
		if(document.getElementById(id)){
			var obj = document.getElementById(id);
			obj.focus();
			obj.select();
		}
	}
	
	/* Tijdstempel object maken voor o.a. cookie verloopdatum */	
	function nbtijdstempel(dagen){
		if(dagen == '') dagen = 1;
		exp.setTime(exp.getTime() + (dagen*24*60*60*1000));
		return exp; 
	}

	/* De x en y coordinaten van een object op de pagina berekenen */
	function nbgeefpositie(doel){
		var coordinaten=new Object();
		var x=0,y=0,gebi=false,css=false,lagen=false,geenresultaat=true;

		if(document.getElementById) gebi=true;
		else if (document.all) css=true;
		else if (document.layers) lagen=true;

		if((gebi && document.all) || css){
			x=nbpositielinks(document.all[doel]);
			y=nbpositietop(document.all[doel]);
		}
		else if(gebi){
			var obj=document.getElementById(doel);
			x=nbpositielinks(obj);
			y=nbpositietop(obj);
		}
		else if(lagen){
			var gevonden=false;
			for(var i=0; i< document.anchors.length;i++){
				if(document.anchors[i].name==doel){
					gevonden=true;
					break;
				}
			}
			if(gevonden){
				x=document.anchors[i].x;
				y=document.anchors[i].y;
			}
			else{
				geenresultaat=true;
			}
		}
		else{
			geenresultaat=true;
		}
		if(geenresultaat){
			coordinaten.x=0;
			coordinaten.y=0;
		}
		else{
			coordinaten.x=x;
			coordinaten.y=y;
		}
		return coordinaten;
	}

	/* Subroutine voor nbgeefpositie() */
	function nbpositielinks(el){
		var objl=el.offsetLeft;
		while((el=el.offsetParent) != null){
			objl += el.offsetLeft;
		}
		return objl;
	}

	/* Subroutine voor nbgeefpositie() */
	function nbpositietop(el){
		var objt=el.offsetTop;
		while((el=el.offsetParent) != null){
			objt += el.offsetTop;
		}
		return objt;
	}
	
	/* Een div in transparantie geven */
	function nbantifocuslaag(laag,perc){
		if(document.getElementById(laag)){
			var obj = document.getElementById(laag);
			obj.style.opacity = perc/100;
			obj.style.filter = 'alpha(opacity=' + perc + ')';
		}
	}
	
	/* Waarde van een cookie variabele inlezen, subroutine van nbleescookie() */
	function nbleescookiewaarde(offset){  
		var eindstring = document.cookie.indexOf(";", offset);  
		if(eindstring == -1){
			eindstring = document.cookie.length;
		}
		return unescape(document.cookie.substring(offset, eindstring));
	}

	/* Cookie variabele ophalen */
	function nbleescookie(naam){  
		var argumenten = naam + '=';  
		var argumentenaantal = argumenten.length;  
		var cookieaantal = document.cookie.length;  
		var i = 0;  
		while(i < cookieaantal){    
			var j = i + argumentenaantal;    
			if(document.cookie.substring(i, j) == argumenten){
				return nbleescookiewaarde(j);
			}
			i = document.cookie.indexOf(' ', i) + 1;    
			if(i==0){
				break;
			}
		}
		return false;
	}
	
	/* Cookie verwijderen */
	function nbverwijdercookie(naam){
		var exp = new Date(); 
		exp.setTime(exp.getTime() - 100000);
		document.cookie = naam + '=' + null + ';expires=' + exp + ';';
		if (!nbleescookie(naam) || nbleescookie(naam) == 'null'){
			return true;
		}
		return false;
	}

	/* Cookie plaatsen */
	function nbplaatscookie(naam, waarde){
		var exp = new Date(); 
		exp.setTime(exp.getTime() + (nbs_cookietimeout * 24 * 60 * 60 * 1000));
		document.cookie = naam + '=' + escape(waarde) + ((exp == null) ? '' : ('; expires=' + exp.toGMTString())) + ';';
	}
