// JavaScript Document

var Site = {
	'onAjaxRequest': function() {
		$('loader').setStyle('display', 'block');
	},
	'onAjaxComplete': function() {
		$('loader').setStyle('display', 'none');
	},
	'onAjaxFailure': function() {
		$('loader').setStyle('display', 'none');
	}
}

Ajax = Ajax.extend({
	initialize: function(url, options) {
		this.parent(url, options);
		this.addEvent('onRequest', Site.onAjaxRequest);
		this.addEvent('onComplete', Site.onAjaxComplete);
	}
});


// het menu
window.addEvent('domready', function(){

	// stukje beweging in de navigatie
	var list = $$('#nav li');
	list.each(function(element) {
	 
		var fx = new Fx.Styles(element.getElement('img'), {duration:200, wait:false});
	 
		element.addEvent('mouseenter', function(){
			fx.start({'margin-right': 10});
		});
	 
		element.addEvent('mouseleave', function(){
			fx.start({'margin-right': 5});
		});
	 
	});
	
	// alle links met rel='external' een target='_blank' geven
	$$('a[rel=external]').setProperty('target', '_blank');
	
	
	// alle forms hip verwerken
	$$('form').each(function(n){
		
		if($E('button.submit')){
			n.addEvent('submit', function(){
				n.getElement('button.submit').setStyle('display', 'none');
				n.getElement('span.busy').setStyle('display', 'block');
			});
		}
	});
	
	// rijkleurtjes in 'table.overview'
	altrows();
	
	$$('p.alert').each(function(n){
		n.effect('border-color', {duration: 1000, transition: Fx.Transitions.linear}).start('#FF0000','#333333');
		var sluit = new Element('a', {'title':'melding sluiten', 'class':'sluit'}).addEvent('click', function(){
			this.getParent().remove();																									  
		}).injectInside(n);
	});
	
});


var altrows = function(){
	$$('table.overview tbody tr').each(function(el, i){
		if(!el.hasClass('white')){
			
			if(i%2){
				el.removeClass('alt');
			}else{
				el.addClass('alt');
			}
		
		}
	});
}

var showhide = function(elem, zelf, txt1, txt2){

	if($(elem).getStyle('display') == 'none'){
		$(elem).setStyle('display', 'block');
		$(zelf).innerHTML = txt2;
	}else{
		$(elem).setStyle('display', 'none');
		$(zelf).innerHTML = txt1;
	}
	
}

/* functies voor bestandbrowser */
var selectfile = function(map, veld){
	
	//creeer fileselect div (floating boveop, met width & height afhankelijk van window) en zet daar de bestanden in
	var boven = (window.getHeight()/2) + window.getScrollTop() - 200;
	var links = (window.getWidth()/2) + window.getScrollLeft() - 290;
	
	var venster = new Element('div', {'class':'venster'}).setStyles({left: links,top: boven});
	var sluit = new Element('a', {'class': 'sluit', 'title': 'sluit dit dialoog'}).addEvent('click', function(){
		this.getParent().remove();																										  
	}).injectInside(venster);
	var content = new Element('div', {'id': 'fileselect'}).injectInside(venster);
	var laden = new Element('img', {'src': 'img/load.gif', 'class': 'load'}).injectInside(content);
	venster.injectInside($E('body'));
						 
	new Ajax('modules/bestanden/files.php', {method: 'post', update: 'fileselect', data: 'map='+map+'&veld='+veld}).request();
}

var file_select = function(file, veld){
	$(veld).value += file + '|';
	verwerkfiles(veld);
	$$('div.venster').each(function(n){
		n.remove();
	});
}

var verwerkfiles = function(veld){
	
	var bestanden = $(veld).value;
	var url = 'modules/bestanden/files.php?json='+bestanden;
	var request = new Json.Remote(url, {
		onComplete: function(jsonObj) {
			showfiles(jsonObj.resultaten, veld);
		}
	}).send();

}

var showfiles = function(results, veld){
	
	$('files_'+veld).empty();
	results.each(function(n){
		var el = new Element('li').setHTML(n.titel);
		var name = new Element('a', {'title':'verwijder dit bestand', 'class':'delfile'}).addEvent('click', function(){
			deletefile(n.id, veld);
		}).setHTML('<img src="img/icons/delete.png" />').injectInside(el);
		el.injectInside($('files_'+veld));
	});
	
}

var deletefile = function(file, veld){
	
	var bestanden = $(veld).value;
	$(veld).value = bestanden.replace(file+'|', '');
	verwerkfiles(veld);

}

var zoekbestanden = function(waarde, addsql, veld){
	
	var data = 'zoek='+waarde+'&addsql='+ addsql +'&veld='+ veld;
	new Ajax('modules/bestanden/files.php', {method: 'post', update: 'bestandoverzicht', data: data}).request();
	
}