var isIE=(navigator.appName.indexOf('Microsoft')!=-1)?1:0;

var isSafari = false;
if (navigator.vendor) {
	var isSafari = (navigator.vendor.indexOf('Apple') != -1);
}


var anonieme_elementen_teller = 0;


function isIE6OorOlder() {
	if (!isIE) {
		return false;
	}
	
	if (navigator.appVersion.indexOf('MSIE 7.0') != -1) {
		return false;
	}

	if (navigator.appVersion.indexOf('MSIE 8.0') != -1) {
		return false;
	}
	
	return true;
	
}

function jl_ShowDiv(id) {
	$(id).style.display = 'block';
}

function jl_HideDiv(id) {
	$(id).style.display = 'none';
}

function jl_ShowDiv2(id) {
	$(id).style.display = '';
}

function jl_WriteDiv(id,content) {
	$(id).innerHTML = content;
}

function jl_ReadDiv(id) {
	return $(id).innerHTML;
}

function jl_AjaxUpdateDiv(id,url) {
	new Ajax.Updater(id,url,{onComplete:function(){ new Effect.Highlight(id);},asynchronous:true,evalScripts:true});
}

function jl_AjaxUpdateDivSilent(id,url) {
	new Ajax.Updater(id,url,{asynchronous:true,evalScripts:true});
}

function jl_AjaxUpdateDivSilentOnComplete(id,url,oncompletecode) {
	
	new Ajax.Updater(id,url,{onComplete:function(){ eval(oncompletecode); }, asynchronous:true,evalScripts:true});
	
}

function js_SwitchStyle(obj,originalstyle,alternativestyle) {
	obj.className = (obj.className==originalstyle?alternativestyle:originalstyle);

	// <div class=normalstyle onmouseover="js_SwitchStyle(this,'normalstyle','mouseoverstyle');" onmouseout="js_SwitchStyle(this,'normalstyle','mouseoverstyle');">hoi</div>
}

function jl_ajaxPost(formulier,resultdiv,url,evalScripts) {	
	new Ajax.Updater(resultdiv, url, 
	{
			asynchronous:true, 
			method:'post',
			evalScripts:evalScripts,
			parameters: Form.serialize(formulier)
		}
	)			
}

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function insertAfter(newElement,targetElement) {
  var parent = targetElement.parentNode;
  if (parent.lastChild == targetElement) {
    parent.appendChild(newElement);
  } else {
    parent.insertBefore(newElement,targetElement.nextSibling);
  }
}


var centeredDivPopup   = null;
var centeredDivOverlay = null;

function jl_updateCenteredDiv() {
	var scrolledX, scrolledY;
	if (self.pageYOffset) {
		scrolledX = self.pageXOffset;
		scrolledY = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop) {
		scrolledX = document.documentElement.scrollLeft;
		scrolledY = document.documentElement.scrollTop;
	} else if (document.body) {
		scrolledX = document.body.scrollLeft;
		scrolledY = document.body.scrollTop;
	}

	var centerX, centerY;
	if (self.innerHeight) {
		centerX = self.innerWidth;
		centerY = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) {
		centerX = document.documentElement.clientWidth;
		centerY = document.documentElement.clientHeight;
	} else if (document.body) {
		centerX = document.body.clientWidth;
		centerY = document.body.clientHeight;
	}

	document.getElementById(centeredDivOverlay).style.height = document.body.scrollTop + document.body.clientHeight;
	document.getElementById(centeredDivOverlay).style.width  = document.body.scrollLeft + document.body.clientWidth;

	var divW = document.getElementById(centeredDivPopup).clientWidth;
	var divH = document.getElementById(centeredDivPopup).clientHeight;

	var leftOffset = scrolledX + (centerX - divW) / 2;
	var topOffset = scrolledY + (centerY - divH) / 2;

	document.getElementById(centeredDivPopup).style.top = topOffset + "px";
	document.getElementById(centeredDivPopup).style.left = leftOffset + "px";
}

function jl_showCenteredDiv(popupdiv,____opacity_zero_to_one,____backgroundcolor,____overlaydiv) {

	// alleen de popupdiv is verplicht
	// de overlaydiv heeft als standaard waarde een id 'overlay'
	// worden er geen opacity en backgroundcolor voor de overlay meegegeven, dan zullen deze niet gezet worden
	// dit zal dan zelf m.b.v. CSS gedaan moeten worden..


	if (document.getElementById(____overlaydiv) == null) {
		// de overlay-div kan niet worden gevonden. we gaan dus deze maar even toevoegen... :)
		var newdiv = document.createElement('div');
		newdiv.setAttribute('id','overlay');
		document.body.insertBefore(newdiv,document.getElementById(popupdiv));
	}

	if ((____overlaydiv != '') && (____overlaydiv != undefined)) {
		var overlaydiv = ____overlaydiv;
	} else {
		var overlaydiv = 'overlay';
	}

	centeredDivPopup   = popupdiv;
	centeredDivOverlay = overlaydiv;
	
	$(centeredDivOverlay).innerHTML = '&nbsp;';

	// kan ook in de style van de overlay-div, maar code hieronder zorgt voor minder css en dus een snellere implementatie //
	document.getElementById(centeredDivOverlay).style.position = 'absolute';
	document.getElementById(centeredDivOverlay).style.padding  = '0px';
	document.getElementById(centeredDivOverlay).style.spacing  = '0px';
	document.getElementById(centeredDivOverlay).style.margin   = '0px';
	document.getElementById(centeredDivOverlay).style.top      = '0px';
	document.getElementById(centeredDivOverlay).style.left     = '0px';
	document.getElementById(centeredDivOverlay).style.right    = '0px';
	document.getElementById(centeredDivOverlay).style.bottom   = '0px';
	// ^^ //

	// als opacity als parameter wordt meegegeven, dan zal die hier worden ingevuld. Hierdoor is een gebruikte style eigenlijk niet nodig.
	if (____opacity_zero_to_one > -1) {
		document.getElementById(centeredDivOverlay).style.opacity = ____opacity_zero_to_one;
		document.getElementById(centeredDivOverlay).style.filter  = 'alpha(opacity=' + eval(____opacity_zero_to_one)*100 + ')';
	}

	if ((____backgroundcolor != '') && (____backgroundcolor != undefined)) {
		document.getElementById(centeredDivOverlay).style.backgroundColor =____backgroundcolor;
	}



	document.getElementById(centeredDivPopup).style.display    = 'block';
	document.getElementById(centeredDivOverlay).style.display  = 'block';

	jl_updateCenteredDiv();

	document.body.onscroll = jl_updateCenteredDiv;
	document.body.onresize = jl_updateCenteredDiv;

	window.onscroll = jl_updateCenteredDiv;
	window.onresize = jl_updateCenteredDiv;
}

function jl_hideCenteredDiv() {

	document.getElementById(centeredDivPopup).style.display   = 'none';
	document.getElementById(centeredDivOverlay).style.display = 'none';

	document.body.onscroll = null;
	document.body.onresize = null;

	window.onscroll = null;
	window.onresize = null;
}

function jl_hideCenteredIframe(and_remove_iframe) {
	
	if (and_remove_iframe == undefined) {
		and_remove_iframe = true;
	}
	
	if (and_remove_iframe) {
		removeElementReal($(last_centered_iframe_id));
	}
	jl_hideCenteredDiv();
}

function jl_showCenteredIframe(url,w,h,layout) {
	
	if (layout == undefined) {
		layout = true;
	}
	
	var random_id = rand(0,5000);
	var div_id    = 'iframediv_div_' + random_id;
	var iframe_id = 'iframediv_iframe_' + random_id;
		
	last_centered_iframe_id = iframe_id;
	
	var breed = w;
	var hoog  = h;
	
	if (!is_string(w)) {
		breed = w + 'px';
	}

	if (!is_string(h)) {
		hoog = h + 'px';
	}
	
	var centered_div = document.createElement('div');
	document.body.appendChild(centered_div);
	centered_div.id               = div_id;
	centered_div.style.position   = 'absolute';
	centered_div.style.width      = breed;
	centered_div.style.height     = hoog;
	if (layout) {
		centered_div.style.background = 'white';
		centered_div.style.border     = 'none';
	}
	
	var centered_iframe = document.createElement('iframe');
	centered_iframe.id            = iframe_id;
	if (layout) {
		centered_iframe.style.border  = 'solid 1px black';
	}
	
	centered_iframe.setAttribute("allowTransparency","true"); // nodig om een iframe in IE transparant te maken

	
	centered_iframe.width         = '100%;';
	centered_iframe.height        = '100%';
	centered_iframe.src           = url;
	centered_iframe.frameBorder   = 0;	
	$(div_id).appendChild(centered_iframe);
	
	
	jl_showCenteredDiv(div_id,'0.3','gray');
}


var textareas_maxwidth  = 800;
var textareas_maxheight = 800;
var onleavedisabled = false;

function jl_resizeTextArea(idx,headerdiv,change_width,change_height,step) {

	var textareas = document.getElementsByTagName("textarea");

	if (change_width) {
		var newwidth = textareas[idx].offsetWidth + step;
		if ((newwidth > 100) && (newwidth <= textareas_maxwidth)) textareas[idx].style.width  = newwidth;

	}

	if (change_height) {
		var newheight = textareas[idx].offsetHeight + step;
		if ((newheight > 100) && (newheight <= textareas_maxheight)) textareas[idx].style.height = newheight;
	}

	setTimeout("jl_repositionTextAreasExtensions();",100);
	//textareas[idx].focus();
}

function jl_repositionTextAreasExtensions() {

	var textareas = document.getElementsByTagName("textarea");
	var textareas_count = textareas.length;

	for (var i=0; i<textareas_count; i++) {
		var ta  = textareas[i];
		var div = $('extended_textarea_' + i);
		//div.style.backgroundColor = 'red';


		var breed_offset = 2;

		if (isIE) {
			var breed_offset = 2;
		}

		Position.clone(
		ta,
		div,
		{
			setWidth: false,
			setHeight: false,
			offsetTop: 0,
			offsetLeft: ta.offsetWidth+breed_offset
		}
		);
	}
}

function jl_extendedTextAreasOnEnter() {
	onleavedisabled = false;
	var idx = jl_getindex(this,this.parentNode,'textarea');
	var div = $('extended_textarea_' + idx);
	div.show();
	new Effect.Highlight(div);
}

function jl_extendedTextAreasOnLeave() {
	var idx = jl_getindex(this,this.parentNode,'textarea');
	setTimeout("if (!onleavedisabled) {	var div = $('extended_textarea_" + idx + "'); div.hide(); }",300);
	//setTimeout("var div = $('extended_textarea_" + idx + "'); div.hide();",300);
}

function jl_extendTextAreas(change_width,change_height,step_in_pixels,smaller_caption,bigger_caption) {

	if (isSafari) {
		// safari already has features to resize textareas.. so this code will not be runned..
		return false;
	}

	if ((smaller_caption == '') || (smaller_caption == undefined)) {
		//smaller_caption = 'smaller';
		smaller_caption = '<img src="' + WEBSITE_REL_PATH + 'img/arrow_up.png" border="0" alt="kleiner" title="kleiner">';
	}

	if ((bigger_caption == '') || (bigger_caption == undefined)) {
		//bigger_caption = 'bigger';
		bigger_caption = '<img src="' + WEBSITE_REL_PATH + 'img/arrow_down.png" border="0" alt="groter" title="groter">';
	}


	var textareas = document.getElementsByTagName("textarea");
	var textareas_count = textareas.length;

	for (var i=0; i<textareas_count; i++) {
		var ta = textareas[i];

		ta.onfocus = jl_extendedTextAreasOnEnter;
		ta.onblur  = jl_extendedTextAreasOnLeave;

		var newdiv = document.createElement('div');
		newdiv.id = 'extended_textarea_' + i;
		newdiv.setAttribute('style','position:absolute; text-align:right; border:0px solid navy; font-family:Verdana; font-size:10pt; background-color:white; color:black; margin:0px; spacing:0px; padding:0px;');
		newdiv.style.position = 'absolute';
		newdiv.style.border = '1px solid gray';
		newdiv.style.backgroundColor = 'white';
		//newdiv.style.width = ta.offsetWidth;
		newdiv.innerHTML   = "<a href=# style=\"color:black; outline:none; text-decoration:none;\" OnClick=\"onleavedisabled=true; jl_resizeTextArea(" + i + ",this.parentNode,"+change_width+","+change_height+","+(step_in_pixels*-1)+"); return false;\">"+smaller_caption+"</a><br><a href=# style=\"color:black;  outline:none; text-decoration:none;\" OnClick=\"onleavedisabled=true; jl_resizeTextArea(" + i + ",this.parentNode,"+change_width+","+change_height+","+step_in_pixels+"); return false;\">"+bigger_caption+"</a>";

		//ta.parentNode.insertBefore(newdiv,ta);
		ta.parentNode.appendChild(newdiv,ta);
		// IE kan geen elementen hiden als het scherm nog niet geladen is.. daarom een delay
		if (isIE) {
			setTimeout("$('" + newdiv.id + "').hide();",200);
		} else {
			newdiv.hide();
		}
	}

	jl_repositionTextAreasExtensions();
}

// jozylib_autocomplete global variables //
var jl_autocomplete = new Object();
jl_autocomplete.disabled = false;
jl_autocomplete.initialized = false;
jl_autocomplete.idx      = -1;
jl_autocomplete.idx_under_mouse = -1;
jl_autocomplete.idxs     = new Array();
jl_autocomplete.text_id  = null;
jl_autocomplete.next_id  = null;
jl_autocomplete.clear    = function() {

	if (jl_autocomplete.idx_under_mouse > -1) {
		var tmp = jl_autocomplete.idx_under_mouse;
		jl_autocomplete.idx_under_mouse = -1;
		jl_autocomplete_item_selected(tmp,true);
		return false;
	}


	if ($('autocomplete_div')) {
		document.body.removeChild($('autocomplete_div'));
	}

	this.disabled    = false;
	this.initialized = false;
	this.idx         = -1;
	this.idx_under_mouse = -1;
	this.idxs        = new Array();
	this.text_id     = null;
	this.next_id     = null;
}

jl_autocomplete.onexitevent = function() {
	// timeout zorgt ervoor dat bij in geval van een onclick van het li-item eerst de onclick-code wordt uitgevoerd (geselecteerde item kiezen)
	// en daarna pas de clear-code (het weghalen van de optie-div)
	setTimeout("jl_autocomplete.clear();",200);
}
// jozylib_autocomplete global variables //


function jl_getindex(element,parentelement,tag) {
	//alert(parentelement);
	var complete_items = parentelement.getElementsByTagName(tag);
	var complete_items_count = complete_items.length;
	for (var i=0;i<complete_items_count;i++) {

		if (complete_items[i] == element) {
			return i;
		}
	}

	return -1;
}


function jl_autocomplete_mover(sender) {
	sender.style.backgroundColor    = '#4A91B7';
	sender.style.color              = 'white';
}

function jl_autocomplete_mout(sender) {
	if (jl_getindex(sender,$('autocomplete_div'),'li') == jl_autocomplete.idx) {
		sender.style.backgroundColor = '#1A75A4';
		sender.style.color           = 'white';
	} else {
		sender.style.backgroundColor = 'white';
		sender.style.color           = 'black';
	}
}

function jl_autocomplete_item_selected(idx,and_clear) {

	if (idx > -1) {
		$(jl_autocomplete.text_id).value = jl_autocomplete.idxs[idx];
		$(jl_autocomplete.next_id).focus();
	}

	if (and_clear) {
		jl_autocomplete.clear();
	}
	return false;
}


function jl_autocomplete_handlekeys_arrows(event) {
	//return false;
	// event noodzakelijk omdat Opera geen pijl naar beneden in de onkeypress kan afvangen..
	if (!isIE) {
		// IE kan niet dynamisch meegegeven onkeydown events uitlezen..
		jl_autocomplete_handlekeys(event,true);
	}
}


function jl_autocomplete_handlekeys(event,comes_from_keydown) {

	if (event.keyCode == 13) {

		jl_autocomplete.disabled = true;

		if (jl_autocomplete.initialized) {
			jl_autocomplete_item_selected(jl_autocomplete.idx,true);
			return false;
		}

		return false;
	}

	if ((event.keyCode == 38) || (event.keyCode == 40)) {
		if ((comes_from_keydown == false) && (isIE == false)) {
			return false;
		}

		jl_autocomplete.disabled = true;
		//jl_autocomplete.idx      = -1;

		if (jl_autocomplete.initialized) {
			jl_autocomplete.disabled = true; // prevents an unwanted ajax-request.

			var complete_items = $('autocomplete_div').getElementsByTagName('li');
			var complete_items_count = complete_items.length;

			if (event.keyCode == 40) {
				// arrow-down
				jl_autocomplete.idx++;
			} else {
				// arrow-up
				if (jl_autocomplete.idx == -1) {
					jl_autocomplete.idx = complete_items_count;
				} else {
					jl_autocomplete.idx--;
				}
			}

			if (jl_autocomplete.idx < 0) {
				jl_autocomplete.idx = 0;
			}

			if (jl_autocomplete.idx >= complete_items_count) {
				jl_autocomplete.idx = complete_items_count-1;
			}

			for (var i=0;i<complete_items_count;i++) {
				if (i == jl_autocomplete.idx) {
					complete_items[i].style.backgroundColor = '#1A75A4';
					complete_items[i].style.color           = 'white';
				} else {
					complete_items[i].style.backgroundColor = 'white';
					complete_items[i].style.color           = 'black';
				}
			}
		}
	} else {
		jl_autocomplete.disabled = false;
		jl_autocomplete.idx      = -1;
	}
}


//document.onkeydown = handlekeys;


function jl_autocomplete_update_array(arr_idxs,arr_captions) {

	jl_autocomplete.idxs = arr_idxs;

	var aantal = arr_captions.length;
	if (aantal > 0) {
		var str = '<ul style="list-style-type:none; margin:0px; spacing:0px; padding:0px;">';
		for (var i=0; i<aantal; i++) {
			str = str + '<li style="font-family:Arial; font-size:10pt;" OnClick="jl_autocomplete_item_selected('+i+',true); return false;" onmouseover="jl_autocomplete_mover(this);" onmouseout="jl_autocomplete_mout(this)">' + arr_captions[i] + '</li>';
		}
		str = str + '</ul>';
		$('autocomplete_div').innerHTML = str;
	} else {
		jl_autocomplete_item_selected(-1,true);
	}
}

function jl_autocomplete_keydown(event,url,senderinput,nextfocus) {

	if (jl_autocomplete.text_id != null) {
		if (jl_autocomplete.text_id != senderinput.id) {
			// autocomplete wordt op dit moment op een ander veld gebruikt..
			// we sluiten de oude autocomplete en resetten de instellingen..
			jl_autocomplete.clear();
		}
	}

	if (jl_autocomplete_handlekeys(event,false) == false) {
		return false;

	}

	if (jl_autocomplete.disabled) {
		return false;
	}

	if (senderinput.value == '') {
		return false;
	}

	jl_autocomplete.text_id     = senderinput.id;
	jl_autocomplete.next_id     = nextfocus;
	jl_autocomplete.initialized = true;
	senderinput.onblur          = jl_autocomplete.onexitevent;
	senderinput.onkeydown       = jl_autocomplete_handlekeys_arrows;

	if ($('autocomplete_div') == null) {

		var newdiv = document.createElement('div');
		newdiv.setAttribute('id','autocomplete_div');
		newdiv.setAttribute('style','border:1px solid green; position:absolute; margin:0px; padding:0px; spacing:0px;');

		newdiv.style.position        = 'absolute';
		newdiv.style.backgroundColor = 'white';
		newdiv.style.color           = 'black';
		newdiv.style.opacity         = '0.9';
		newdiv.style.filter          = 'alpha(opacity=90)';
		newdiv.style.border          = '1px solid black';
		newdiv.style.margin          = '0px';
		newdiv.style.padding         = '0px';
		newdiv.style.spacing         = '0px';


		document.body.appendChild(newdiv,senderinput);

		Position.clone(
		senderinput,
		$('autocomplete_div'),
		{
			setWidth: true,
			setHeight: false,
			offsetTop: senderinput.offsetHeight
		});
	}


	if (url.indexOf('?',0) > -1) {
		url = UrlAppend(url,senderinput.id,senderinput.value);
	} else {
		url = url + '?' + senderinput.id + '=' + senderinput.value;	
	}

	new Ajax.Updater('autocomplete_div', url, {
		insertion: Insertion.Bottom,
		evalScripts: true
	});


}

function UrlAppend(url,key,val) {
	var p = url.indexOf('?');
	var urlbegin = url.substr(0,p);
	var urldata = url.toQueryParams();
    urldata[key] = val;
    //alert('####' + Object.toQueryString(urldata));
                
    var hekje_pos = url.indexOf('#');
    if (hekje_pos > -1) {
    	var hekje = url.substr(hekje_pos,100);
    } else {
    	var hekje = '';
	}
                
    url = urlbegin + '?' + Object.toQueryString(urldata) + hekje;
    return url;
}


function fckeditor_replaceTextareas(eventuele_id_ipv_alle) {

	var allTextAreas = document.getElementsByTagName("textarea");

	for (var i=0; i < allTextAreas.length; i++) {

		if ((eventuele_id_ipv_alle == '') || (eventuele_id_ipv_alle == undefined)) {
			// we gaan gewoon alle textarea's aanpassen..
		} else {
			// we gaan alleen de textarea met de juist ID aanpassen..
			if (allTextAreas[i].id != eventuele_id_ipv_alle) {
				continue;
			}
		}

		var oFCKeditor        = new FCKeditor(allTextAreas[i].name);
		oFCKeditor.BasePath   = WEBSITE_REL_PATH + 'jslibs/fckeditor/';
		oFCKeditor.Width      = allTextAreas[i].clientWidth;
		oFCKeditor.Height     = allTextAreas[i].clientHeight;
		oFCKeditor.ToolbarSet = 'Basic'; 
		oFCKeditor.ReplaceTextarea();
	}
}


function jl_captionizeImages() {
	
	// wonderfull code from http://www.askthecssguy.com/2006/12/image_captions_generated_with.html
	
	if (!document.getElementsByTagName) return false;
  
	if (!document.createElement) return false;
	
  	var images = document.getElementsByTagName("img");
  	if (images.length < 1) return false; 
  	
  	for (var i=0; i<images.length; i++) {
    	if (images[i].className.indexOf("captioned") != -1) {
      		var title              = images[i].getAttribute("title");
      		var divCaption         = document.createElement("div");      		
      		divCaption.className   = "capImgCaption";
      		
      		var divCaption_text    = document.createTextNode(title);
      		divCaption.appendChild(divCaption_text);
      		
      		var divContainer       = document.createElement("div");
      		divContainer.className = "capImgContainer";
      		
      		images[i].parentNode.insertBefore(divContainer,images[i]);
      		divContainer.appendChild(images[i]);
      		insertAfter(divCaption,images[i]);
    	}
  	}	
  	
  	/*
  	.capImgContainer {
		position:relative;
		float:left;
	}
	
	.capImgCaption {
		font: normal 1em/1.3em arial;
		background:#fff;
		color:#000;
		position:absolute;
		bottom:0;
		left:0;
		text-align:center;
		width:100%;
		opacity:.75;
		filter:alpha(opacity=85);
	}
	*/
  	
}

function removeElementReal(el) {
	el.parentNode.removeChild(el);
}

function removeElement(id)	{
	var Node = document.getElementById(id);
	Node.parentNode.removeChild(Node);
}

function strpos( haystack, needle, offset){
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: strpos('Kevin van Zonneveld', 'e', 5);
    // *     returns 1: 14
 
    var i = haystack.indexOf( needle, offset ); // returns -1
    return i >= 0 ? i : false;
}

function GenerateWMDField() {	
	var textarea = document.createElement("textarea");
	textarea.style.width = "500px";
    textarea.value = document.getElementById('txt').value;
    textarea.id    = 'WMD';
    textarea.name  = 'WMD';
    document.getElementById('formulier').appendChild(textarea);

    return true;
}

function WMD(formulier_id,submitbutton_id) {
	//$(formulier_id).
	
}

function UpdateInterneLinkSpan(id,url) {
	jl_AjaxUpdateDivSilent(id,url);
	return false;	
}

function wmd_url_invullen(element,waarde) {
	var f = $$('input');
	for(var i=0; i<f.length; i++){
		if (f[i].type == 'button') {
			if (f[i].value == 'OK') {
				f[i-1].value = waarde;
				break;	
			}			
		}
	}
}

function wmd_append_button() {
	var f = $$('img');
	for (var i=0; i<f.length;i++) {
		if (f[i].title == 'Redo - Ctrl+Y') {

			var bannerdiv = new Element('div', { style: 'width:100px; background:red; border:solid 1px black; position:absolute' });
			bannerdiv.innerHTML = 'BANNER';
			insertAfter(bannerdiv,f[i]);
			Element.clonePosition(bannerdiv,f[i],
				{
						setWidth   : false,
						offsetLeft : f[i].offsetWidth

				}
			);
			break;
		}
	}
}


function rand( min, max ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Leslie Hoare
    // *     example 1: rand(1, 1);
    // *     returns 1: 1
 
    if( max ) {
        return Math.floor(Math.random() * (max - min + 1)) + min;
    } else {
        return Math.floor(Math.random() * (min + 1));
    }
}

function is_string( mixed_var ){
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: is_string('23');
    // *     returns 1: true
    // *     example 2: is_string(23.5);
    // *     returns 2: false
 
    return (typeof( mixed_var ) == 'string');
}

function get_element_id(element) {	
	try {
		return $(element).identify();
	} catch(e) {
		$(element).id = 'anoniem_element_' + anonieme_elementen_teller;
		anonieme_elementen_teller++;
		return ($element).id;
	}	
}

function Aanvinken(container,aanvinken) {
	
	var zoekstr = '#' + $(container).id + ' input';
	var vinkjes = $$(zoekstr);
	
	for (var i=0; i<vinkjes.length;i++) {
		if (aanvinken) {			
			vinkjes[i].checked = true;	
		} else {
			vinkjes[i].checked = false;
		}
	}
}


function CenterElement(element_ID,interval) {	
	
	try {
		var element = $(element_ID);
		var centerdiv_dim  = element.getDimensions();
  		var element_width  = centerdiv_dim.width;
  		var element_height = centerdiv_dim.height;   	  	
  	
		var viewport  = document.viewport.getDimensions();
		var WinWidth  = viewport.width;
		var WinHeight = viewport.height;	
		
		var links = (WinWidth / 2).round() - (element_width / 2).round();
		var boven = (WinHeight / 2).round() - (element_height /2).round();
	
		var scroll = document.viewport.getScrollOffsets();			
		boven = boven + scroll.top;
		links = links + scroll.left;
		
		$(element).setStyle("left: " + links + "px; top:" + boven + "px;");	
	
		if (interval != undefined) {		
			setTimeout("CenterElement('" + element_ID + "'," + interval + ");",interval);		
		}
	} catch(e) {
		// waarschijnlijk bestaat de div niet meer..
	}
}

function TopCenterElement(element_ID,interval) {
	try {
		var element = $(element_ID);
		var centerdiv_dim  = element.getDimensions();
  		var element_width  = centerdiv_dim.width;
  		var element_height = centerdiv_dim.height;   	  	
  	
		var viewport  = document.viewport.getDimensions();
		var WinWidth  = viewport.width;
		var WinHeight = viewport.height;	
		
		var links = (WinWidth / 2).round() - (element_width / 2).round();	
		var scroll = document.viewport.getScrollOffsets();			
		links = links + scroll.left;		
		boven = scroll.top;		
		$(element).setStyle("left: " + links + "px; top:" + boven + "px;");	
	
		if (interval != undefined) {		
			setTimeout("TopCenterElement('" + element_ID + "'," + interval + ");",interval);		
		}
	} catch(e) {
		// waarschijnlijk bestaat de div niet meer..
	}	
}

function ShowDivCentered(event) {
	var element_or_innerHTML = this.element;
	if (Object.isString(element_or_innerHTML)) {
		element = new Element('div');
		get_element_id(element);
		element.innerHTML = "<table style=\"height:100%; width:100%;\"><tr><td style=\"vertical-align:middle; text-align:center;\">" + element_or_innerHTML + "</td></tr></table>";
	} else {
		element = element_or_innerHTML;
	}
	element.setStyle("position:absolute; padding:10px; border:solid 1px gray; background:white; width:250px; height:100px; z-index:1000;");
	document.body.insert(element);	
	CenterElement(element.id,200);
}

function KeepOverlayOk(overlay_id,DependingElementId) {

	
	if ($(DependingElementId) == undefined) {
		$(overlay_id).remove();
		return false;
	}
	
	try {
		var overlay = $(overlay_id);
		var dims   = document.viewport.getDimensions();
		var scroll = document.viewport.getScrollOffsets();

		//if (isIE) {
			var breed = dims.width + scroll.left;
			var hoog  = dims.height + scroll.top;

		//} else {
		//	var breed = dims.width + window.scrollX;
		//	var hoog  = dims.height + window.scrollY;
		//}
		
		var doctit = breed + ' ' + hoog;
		overlay.setStyle("width: " + breed + "px; height:" + hoog + "px");
		var str = "KeepOverlayOk('"+overlay_id+"','"+DependingElementId+"')";	
	
		//document.title = doctit + new Date;
		
		setTimeout(str,100);
		
		
		
	} catch(e) {
		// overlay is blijkbaar gekilled...
	}
}

function ShowOverlay(DependingElementId) {	
	var overlay = new Element('div');
	overlay.innerHTML = ""; //<div style=\"width:100%; height:100%; border:solid blue 10px;\"></div>";
	overlay.setStyle('position:absolute; z-index:1020; top:0px; left:0px; border:solid 0px; margin:0px; width:100%; height:100%;');

	$(document.body).insert({top:overlay});	
	
	var id = get_element_id(overlay);
	
	var ____opacity_zero_to_one = 0.2;
	var ____backgroundcolor     = 'black';
	
	if (____opacity_zero_to_one > -1) {
		overlay.style.opacity = ____opacity_zero_to_one;
		overlay.style.filter  = 'alpha(opacity=' + eval(____opacity_zero_to_one)*100 + ')';
	}

	if ((____backgroundcolor != '') && (____backgroundcolor != undefined)) {
		overlay.style.backgroundColor =____backgroundcolor;
	}
	
	KeepOverlayOk(id,DependingElementId);		
	return id;
}

function KillOverlay(id) {	
	$(id).remove();	
}




	function CreateDiv(divStyle) {
		var newdiv = new Element('div', { style: divStyle });
		document.body.appendChild(newdiv);
		return get_element_id(newdiv); // sets unique new id and returns it
	}
	

	function CenterModal(elementId) {
		ShowOverlay(elementId);
		$(elementId).setStyle("z-index:1021");
		CenterElement(elementId,100);
	}
	
	function UncenterModal(elementId) {
		var el = $(elementId);
		el.id  = 'temp_' + elementId;
		el.style.display = 'none';
		setTimeout("$('temp_" + elementId + "').id = '"+elementId+"';",300);
	}
	
	function CenterTop(elementId) {
		$(elementId).setStyle("z-index:1021");
		TopCenterElement(elementId,100);		
	}

	function jlAlert(msg,callbackOk) {		
		var id = CreateDiv('position:absolute; display:none; text-align:center;  width:300px; font-size:1.2em; background:#FFFF9F; border:black 3px solid; -moz-border-radius: 8px; -webkit-border-radius: 8px;');
		$(id).innerHTML = "<div style=\"background:black; width:100%; text-align:left;\"><img src='" + WEBSITE_REL_PATH + "img/information.png' style=\"margin-left:5px;\"></div><div style=\"margin:15px;\">" + msg + "</div><div style=\"width:100%; border-top:solid 2px #FB7922; text-align:center;\"><input class=buttonGreen type=button value=\"OK\" onclick=\"$('" + id + "').remove(); eval("+callbackOk+");\"style=\"margin:10px;\"></div>";
		CenterModal(id,100);		
		$(id).appear();
	}
	
	function jlConfirm(msg,callbackYes) {		
		var id = CreateDiv('position:absolute; text-align:center;  width:300px; font-size:1.2em; background:#FFFF9F; border:black 3px solid; -moz-border-radius: 8px; -webkit-border-radius: 8px;');
		$(id).innerHTML = "<div style=\"background:black; width:100%; text-align:left;\"><img src='" + WEBSITE_REL_PATH + "img/help.png' style=\"margin-left:5px;\"></div><div style=\"margin:15px;\">" + msg + "</div><div style=\"width:100%; border-top:solid 2px #FB7922; text-align:center;\"><input class=buttonRed type=button value=\"Nee\" onclick=\"$('" + id + "').remove(); \" style=\"width:60px; margin:10px;\"> <input class=buttonGreen type=button value=\"Ja\" onclick=\"$('" + id + "').remove(); eval(" + callbackYes + ");\" style=\"width:60px; margin:10px;\"></div>";
		CenterModal(id,100);	
	}

	function jlTopInfo(msg,timeout) {		
		
		if (timeout == undefined) {
			timeout = 5000;
		}

		
		var id = CreateDiv('position:absolute; text-align:center; display:none; width:100%; font-family : Verdana; font-size:12px; background:#FFFF9F; padding:15px; border:black 3px solid; border-top:0px; -moz-border-radius: 8px; -webkit-border-radius: 8px; width:400px; margin-top:-5px;');
		$(id).innerHTML = msg;
		
		Effect.Appear(id);		
		setTimeout("Effect.Fade('" + id + "', { duration: 1.0 });",timeout);
		setTimeout("$('" + id + "').remove()",timeout + 1000);
		CenterTop(id,100);
	}
	
	var jl_secure_form_captcha_div = -1;
	
	function jl_secure_form(captcha_div,mouseover_title) {		
		if (jl_secure_form_captcha_div == -1) {
			// eerste keer dat deze functie wordt aangeroepen..
			// we zetten de globale captcha_div en zorgen dat de onclick eenmalig wordt gezet.
			jl_secure_form_captcha_div = captcha_div;
			$(captcha_div).onclick     = jl_secure_form;	
			$(captcha_div).title       = mouseover_title;
		} else {
			captcha_div = jl_secure_form_captcha_div;
		}		

		var rnd = new Date().getTime();
		
		$(captcha_div).style.width      = '70px';
		$(captcha_div).style.height     = '20px';
		$(captcha_div).style.border     = 'solid 1px silver';
		$(captcha_div).style.cursor     = 'pointer';
		$(captcha_div).style.background = "url(" + JL_PATH + "jozylib_cap.php?id=" + rnd + ")";

	}	
	
	function setDisplay(element,show) {
		if (show) {
			$(element).style.display = '';
		} else {
			$(element).style.display = 'none';			
		}
	}
	
	function setVisibility(element,visible) {
		if (visible) {
			$(element).style.visibility = 'visible';
		} else {
			$(element).style.visibility = 'hidden';
		}
	}
	
	function toggleDisplay(element) {
		if ($(element).style.display == '') {
			$(element).style.display = 'none';
		} else {
			$(element).style.display = '';
		}
	}
	
function is_int( mixed_var ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Alex
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    revised by: Matt Bradley
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // %        note 1: 1.0 is simplified to 1 before it can be accessed by the function, this makes
    // %        note 1: it different from the PHP implementation. We can't fix this unfortunately.
    // *     example 1: is_int(23)
    // *     returns 1: true
    // *     example 2: is_int('23')
    // *     returns 2: false
    // *     example 3: is_int(23.5)
    // *     returns 3: false
    // *     example 4: is_int(true)
    // *     returns 4: false
 
    if (typeof mixed_var !== 'number') {
        return false;
    }
 
    if (parseFloat(mixed_var) != parseInt(mixed_var)) {
        return false;
    }
    
    return true;
}	

function jlOnLoaded(stuff_to_call,timeout) {	
	
	if (timeout == undefined) {
		document.observe("dom:loaded", function() {  		
  			eval(stuff_to_call);
		});		
	} else {	
		document.observe("dom:loaded", function() {  		
  			setTimeout(stuff_to_call,timeout);
		});		
		
	}
}

function UrlGetAfterHash() {	
	var url     = location.href;	
	var url_arr = url.split('/');	
	var len     = url_arr.length;

	for (var i=len-1;i>0;i--) {		
		if (url_arr[i] != '') {			
			if (url_arr[i][0] == '#') {
				return url_arr[i].substr(1);
			}
		}
	}
	
	
	// we hebben nog geen hash gevonden. even checken of ie er niet toch is..
	
	var p = strpos(url,'#');
	if (p) {		
		return url.substr(p+1);
	}
	
	
	
	

	return false;
}



function jleditble_justsaved(element_id) {	
	if ($(element_id).hasClassName('iconpicker')) {
		$(element_id).innerHTML = "<img src=" + JL_IMG + $(element_id).innerHTML + ".png>";
	} 
	
	if ($(element_id).hasClassName('editableBoolean')) {
		if ($(element_id).innerHTML == '1') {
			$(element_id).innerHTML = "<img src=" + JL_IMG + "tick.png value=1>";			
		} else {
			$(element_id).innerHTML = "<img src=" + JL_IMG + "cross.png value=0>";			
		}
	} 

}

function jleditable_saveme() {
		
		var submit    = $(this);
		var input     = $(this).previous();		
		var span_id   = submit.getAttribute('rel');		
		var el        = $(span_id);
		
		var rel       = $(el).getAttribute('rel');
		var arr       = rel.split('.');
		var table     = arr[0];
		var fieldname = arr[1];	
		var record    = arr[2];			
		
		
		val = input.value;
		
		if (input.type == 'checkbox') {
			if (input.checked) {
				val = 1;
			} else {
				val = 0;
			}
		}
		
		//addr = []; 
	    //addr[1] = 2 ;
		
	    el.innerHTML = el.innerHTML + "<img src=" + JL_IMG + "loading16.gif>";
	    
	    
		new Ajax.Updater($(el), JL_PATH + 'jozylib_ajax_formsaver.php',
		{
			asynchronous : true,
			method       : 'post',
			evalScripts  : true,
			parameters   : {
				_posttype  : 'editable',
				_table : table,
				_fieldname : fieldname,
				_recno : record,
				value   : val
			},
			 onComplete: function(transport) {
				jleditble_justsaved($(el).id);
			 }

		}
		)
		
		removeElementReal(submit);
		removeElementReal(input);		
		
		el.appear();
	}

	function jleditable_editme() {		
		var el = this;
		el.setStyle('display:none');
		
		if (el.hasClassName('iconpicker')) {
			var val = el.firstDescendant().src;
			val =  ExtractFileName(val);
			val = val.substr(0,val.length-4);
		} else if (el.hasClassName('editableBoolean')) {
			var img = el.firstDescendant();
			var val = img.getAttribute('value');
		} else {
			var val = el.innerHTML;
		}
		
		var content_length = val.length;		
		if ((content_length > 20) && (el.hasClassName('iconpicker') == false))	{		
			var editbox  = document.createElement('textarea');
			//$(editbox).setStyle('width:200px; height:100px;');	
			$(editbox).setStyle('font-size : 11px; font-family: Courier New; font-weight:normal; width:' + (el.getWidth()+50) + 'px; height:' + el.getHeight() + 'px');		
		} else {
			var editbox  = document.createElement('input');			
			
			if (el.hasClassName('editableBoolean')) {
				editbox.type = 'checkbox';
				editbox.checked = (val == 1);
			}
		}
		
		editbox.value = val;
		editbox.setAttribute('rel',el.id);				
		
		if (el.hasClassName('iconpicker')) {			
			jl_showCenteredIframe('ppadmin_icon_picker.php?element=' + get_element_id(editbox),400,200);
		}
		
		var submit     = document.createElement('input');
		submit.type    = 'button';
		submit.value   = 'ok';				
		submit.onclick = jleditable_saveme;
		submit.setAttribute('rel',el.id);		
		
		insertAfter(editbox,el);
		insertAfter(submit,editbox);
		
		editbox.select();
	}

	function jleditable_init() {
		var editables = $$('.jleditable');	
		for (var i=0;i<editables.length;i++) {
			get_element_id(editables[i]);
			editables[i].setStyle("border : dashed 1px gray; cursor:pointer;");
			editables[i].onclick = jleditable_editme;		
		}
	}
	
	function ExtractFileName(fn) {
		
		//console.log(fn);
		var arr = fn.split('/');
		
		return arr[arr.length-1];

		
	}
	
	function killEvent(e) {

			e.cancelBubble = true;
			e.returnValue = false;

			if (e.stopPropagation) {
				e.stopPropagation();
				e.preventDefault();
			}
		}	

	function trim(value) {
		
		try {
			return value.trim();
		} catch (e) {
			value = value.replace(/^\s+/,''); 
  			value = value.replace(/\s+$/,'');
  			return value;
		}
	}