	locations=[];
	
	SWFAddress.addEventListener(SWFAddressEvent.CHANGE, handleChange);


	function handleChange(event) {
		var url=event.path;		
		url=clean_array(String(url).split('/'));
		locations.unshift(url);
		handleLocation();
	}
	
	function handleLocation(){
	    if(locations.length){
		var url=locations[0];
		$$('.mask').each(function(mask){
			if(String(mask.getAttribute('myUrl')).toLowerCase()==String(url[0]).toLowerCase()){
			    if(url[1] && String(window.location).indexOf('Google') > -1){
				    if(showMarker(url[1])){
					    mask.show();
				    }
			    }else{
				mask.show();
			    }
			}else{
			    mask.hide(String(url[0]).toLowerCase());
			}
		    });
	    }
	}
	
	function clean_array(arr){
		arr=arr.filter(function(a){
			if(a && a !='')return a;
		});
		return arr;
	}

	
	window.addEvent('domready',function(){
	    
		mkSwftit($$('.swf_tit'),0);
		iniEnews();
		iniNews();
		if($('map_canvas'))iniGMap();
		
		$$('.mask').each(function(mask){
			mask.url=String(mask.getAttribute('myUrl'));
			mask.buts=[];
			var b=mask.getParent().getElement('.swf_tit');
			if(b)mask.buts.push(b);
			b.state='ready';
			var b=mask.getParent().getElement('.meer');
			if(b)mask.buts.push(b);
			mask.target=mask.getElement('.masked');
			mask.act=false;
			mask.th=mask.target.getSize().y;
			if(mask.th)mask.th+=15;
			mask.fx=new Fx.Tween(mask);
			mask.fx.set('height','0px');
			
			mask.img=String(mask.getAttribute('myImg'));
			mask.cap=String(mask.getAttribute('myCap'));
			mask.photoEl=$('wrap').getElement('.photo');
			
			mask.show=function(){
			    if($(this.buts[0].swf) && $(this.buts[0].swf).state=='ready'){
				locations.shift();
				this.act=true;
				this.fx.start('height',this.th+'px');
				that=this;
				this.buts.each(function(but,n){
					if(n){
					    but.set('text',but.get('text').split('meer').join('minder'));
					    but.href=String(but.href).split("#/"+that.url).join('#/');
					}else{
					    $(but.swf).swfSetLink("#/"+that.url,'#/');
					}
				});
				
				if(this.img !='null'){
				    this.photoEl.swap('img',this.img,this.cap);
				}
			    }else{
				this.buts[0].state='waiting';
			    }
			}
			
			mask.hide=function(url){
			    if(this.act){
				this.act=false;
				this.fx.start('height','0px');
				that=this;
				this.buts.each(function(but,n){
				    if(n){
					but.set('text',but.get('text').split('minder').join('meer'));
					but.href=String(but.href).split('#/').join("#/"+that.url);
				    }else{
					$(but.swf).swfSetLink('#/',"#/"+that.url);
				    }
				});
				
				if(url =='undefined'){
				    this.photoEl.swap('restore','','');
				}
			    }
			}
		});
		
		var photoEl=$('wrap').getElement('.photo');
		photoEl.img=photoEl.getElement('img');
		photoEl.Osrc=photoEl.img.src;
		
		photoEl.cap=photoEl.getNext('.cap');
		photoEl.Ocap=photoEl.cap.get('text');
		
		photoEl.swap=function(cmd,src,cap){
			if(cmd=='restore'){
			    this.img.src=this.Osrc;
			    this.cap.set('text',this.Ocap);
			}else{
			     this.img.src=src;
			     this.cap.set('text',cap);
			}
		}
	  
	});
	
	function iniNews(){
	    var news=$('news');
	    // overide default html behaviour 
	    var bd=news.getElement('.bd');
	    bd.setStyle('overflow','hidden');
	    
	    var cols=news.getElements('.col');
	    
	    // check number of colomns
	    if(cols.length > 1){
		// set max for next button
		news.cols=cols.length-1; 
		
		// add Buttons
		var but=new Element('div',{
		    'class':'more l',
		    'html':
			    "<a href='#previous' class='l'>"+
				"&lt;&lt;"+
			    "</a>"+
			    "<a class='r' href='#next'>"+
				"meer nieuws &gt;"+
			    "</a>"
		});
		news.grab(but);
		
		// add Paging functionality width effect
		news.p=0;
		news.wrap=news.getElement('.cols');
		news.fx=new Fx.Tween(news.wrap);
		// initialize tween to prevent stutter
		news.fx.set('margin-left','0px');
		news.show=function(typ){
			if(typ=='next'){
			    this.p++;
			    
			}else{
			    this.p--;
			}
			var m=this.p*230;
			this.fx.start('margin-left',-m+'px');
			this.less.setStyle('display',((this.p)? 'inline' : 'none'));
			this.more.setStyle('display',((this.p < this.cols)? 'inline' : 'none'));
		}
		// link buttons to parent and parent apging function
		news.more=but.getElement('.r');
		news.more.addEvent('click',function(e){
			if(e) new Event(e).stop();
			news.show('next');
		})
		news.less=but.getElement('.l');
		news.less.addEvent('click',function(e){
			if(e) new Event(e).stop();
			news.show('prev');
		})
	    }
	}
	
	function iniEnews(){
		var eform=$('enews').getElement('form');
		$(eform).setProperty('action',loc+'/enews.php');
		var msg=$(eform).getElement('.msg');
		var submit=$(eform).getElement('#esubmit');
		submit.addEvent('mouseover',function(){
			this.setStyle('color','#000000');
		});
		submit.addEvent('mouseout',function(){
			this.setStyle('color','#0099e6');
		});
		submit.addEvent('click',function(e){
			if(e) new Event(e).stop();
			eform.fireEvent('submit',e);
		});
		
		$(eform).set('send', {onComplete: function(rs) {
			msg.set('text',rs);
		}});
		/**/
		$(eform).addEvent('submit',function(e){
			if(e) new Event(e).stop();
			this.send();
		});
		$(eform).getElement('#mail').addEvent('focus',function(){
			this.setProperty('value','');
		});
		
		var files=$('enews').getElement('.files');
		var pdfs= files.getElements('a');
		if(pdfs.length > 1){
			var but=new Element('div',{
			'class':'nav blue l',
			'html':
			    
			    "<a class='l' style='display:none;' href='#next'>"+
				"&lt; volgende"+
			    "</a>"+
			    "<a href='#previous' class='r'>"+
				"vorige &gt;"+
			    "</a>"
			});
			but.inject(files,'after');
			
			but.getElements('a').each(function(a,n){
				a.n=n;
				a.addEvent('click',function(e){
					if(e) new Event(e).stop();
					files.show(((this.n)? 'next' : 'prev'));
				})
				if(n){
				    files.more = a;
				}else{
				    files.less = a;
				}
			})
		}
		
		// add Paging functionality width effect
		files.max=pdfs.length-1;
		files.p=0;
		files.wrap=files.getElement('.cols');
		files.fx=new Fx.Tween(files.wrap);
		// initialize tween to prevent stutter
		files.fx.set('margin-left','0px');
		files.show=function(typ){
			if(typ=='next'){
			    this.p++;
			}else{
			    this.p--;
			}
			var m=this.p*192;
			this.fx.start('margin-left',-m+'px');
			this.less.setStyle('display',((this.p)? 'inline' : 'none'));
			this.more.setStyle('display',((this.p < this.max)? 'inline' : 'none'));
		}
	}
	
	function mkSwftit(swf_tits,i){
		
		if(i<swf_tits.length){
		    var tit=swf_tits[i];
		    var dim=$(tit).getSize();
		    var params={'menu': 'false','salign':'tl','wmode':'transparent','bgcolor':'#000000', 'allowScriptAccess':'allways'};
		    var swf=$(new Swiff(loc+'/swf/swf_tit.swf?nochache='+$time(), {
			    container:tit,				
			    id: 'swftit_'+i,
			    width: dim.x,
			    height:dim.y,//,
			    params: params,
			    vars:{'txt':String(tit.get('html')),'params':getSwfTitVars(tit)+':'+dim.x},
			    callBacks:{
			    'ready':function(w,h){
				this.state='ready';
				if(w > -1){
				    this.width=Math.ceil(w);
				    this.pr.setStyle('width',Math.ceil(w)+'px');
				}
				
				if(Math.ceil(h)>20){
				    h+=3;
				   this.height=Math.ceil(h);
				    this.pr.setStyle('height',Math.ceil(h+3)+'px');
				}
				
				if(this.pr.state=='waiting'){
				    handleLocation.delay(500);
				}
				
			    }}
		       }));
		   
		    swf.pr=tit;
		    tit.swf=swf;
		    //mkSwftit.delay(40,window,[swf_tits,i+1]);
		    mkSwftit.delay(40,window,[swf_tits,i+1]);
		}
		/*var swf_tits=$$('.swf_tit');
		var params={'menu': 'false','salign':'tl','wmode':'transparent','bgcolor':'#000000', 'allowScriptAccess':'allways'};
		for(var i=0; i<swf_tits.length; i++){
		    var tit=swf_tits[i];
		    var dim=$(tit).getSize();
		   
		    var swf=$(new Swiff(loc+'/swf/swf_tit.swf?nochache='+Math.floor(Math.random()*1000), {
			    container:tit,				
			    id: 'swftit_'+i,
			    width: dim.x,
			    height:dim.y,//,
			    params: params,
			    vars:{'txt':String(tit.get('html')),'params':getSwfTitVars(tit)+':'+dim.x},
			    callBacks:{
			    'ready':function(w,h){
				this.state='ready';
				if(w > -1){
				    this.width=Math.ceil(w);
				    this.pr.setStyle('width',Math.ceil(w)+'px');
				}
				
				if(Math.ceil(h)>20){
				    h+=3;
				   this.height=Math.ceil(h);
				    this.pr.setStyle('height',Math.ceil(h)+'px');
				}
				
				if(this.pr.state=='waiting'){
				    handleLocation.delay(500);
				}
			    }}
		    }));
		   
		    swf.pr=tit;
		    tit.swf=swf;
		}*/
	}
	
	function getSwfTitVars(tit){
	    var r='null:null:false';
	    var span=tit.getElement('span');
	    if(span && span.getAttribute('params')){
		r=span.getAttribute('params');
	    }
	    return r;
	}
	
	
	function iniGMap(){
	    if (GBrowserIsCompatible()) {
		var geocoder = new GClientGeocoder();
		var center=[0,0];
		var sel;
		var markers=[];
		var markerdata=$$('.marker');
		markerdata.each(function(mark){
		    var data=String(mark.value).split('#');
		    markers.push({'nr':data[0],'lat':data[1],'lon':data[2],'htm':mark.getNext('div').get('html')});
		    center[0]+=parseFloat(data[1]);
		    center[1]+=parseFloat(data[2]);
		});
		var gmap = new GMap2($('map_canvas'));
		gmap.setCenter(new GLatLng(center[0]/markers.length,center[1]/markers.length), 13);
		gmap.setUIToDefault();
	    
		var url=((window.location.hash)? String(window.location.hash).split('/')[1] : '');
		var sel=null;
		
		for(var i=0; i<markers.length; i++){
		    var data=markers[i];
		    var mark=new GMarker(new GLatLng(data.lat,data.lon));
		   
		    mark.act=false;
		    mark.data=data;
		    gmap.addOverlay(mark);
		    GEvent.addListener(mark, "click", function() {
			this.present();
		    });
		    
		    mark.present=function(){
			    var point=new GLatLng(this.data.lat,this.data.lon);
			    gmap.openInfoWindowHtml(point,this.data.htm);
		    }
		    markerdata[i].state='ready';
		    markerdata[i].mark=mark;
		}
	    }
	    
	    handleLocation();
	}
	
	function showMarker(url){
	    var markers=$$('.marker');
	    if(markers[markers.length-1].state=='ready'){
		
		markers.each(function(marker){
		    if(marker.mark.data.nr==url){
			marker.mark.present();
		    }
		});
		return 1;
	    }
	    return 0;
	}
	
	function swapImg(src){
	    var img=$('wrap').getElement('.photo img');
	    var r=img.getProperty('src');
	    img.src=src;
	    return r;
	}