if (!(typeof jQuery == 'undefined')) {  
	$(document).ready(function(){
		init_form();
		
		// IE fix: voorkomen dat formulier 2x wordt 
		// gesubmit als meerdere submitknoppen aanwezig zijn
		$('form').submit(function(){
			if (this.beenSubmitted) {
				return false;
			} else {
				this.beenSubmitted = true;
			}
		});
	})
}

function init_form() {
	$('.dialog_display').draggable(
		{
			zIndex: 		3000,
			ghosting:		true,
			revert:			false,
			snapDistance:	50,
			handle:			'div.dialog_header'
		}
	);		
	if (typeof init_dynamic_array == 'function') {
		init_dynamic_array();
	}
}

var form_debug = false;
var zipcode_prev_length = 0;
var submit_buttons = new Array();

var score_scores = new Array();
var score_texts = new Array();


// karel: 26/07/10
function disable_buttons(form_id) {
	if(el(form_id) != null){
		enable_buttons();
		style = "width: " + get_width(el(form_id).parentNode) + 'px;' + "height: " + (Math.round(get_height(el(form_id).parentNode) / 2) + 32) + 'px;';
		style += "padding-top: " + (Math.round(get_height(el(form_id).parentNode) / 2) - 32) + 'px;';
		var waitElement = document.createElement("div");
		waitElement.innerHTML = "<div id=\"form_submit_wait\" style=\""+ style + "\">" + loading_image_big + "</div>";

		el(form_id).parentNode.insertBefore(waitElement.childNodes[0], el(form_id).parentNode.firstChild);
	}
}

// karel: 26/07/10
function enable_buttons(form_id) {
	$('#form_submit_wait').remove();
}

function generate_password( fill_ids ) {
	var length = 9;

	chars = "abcdefghjkmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ23456789";
	pass = "";

	for( x = 0; x < length; x++ ) {
		i = Math.floor( Math.random() * chars.length );
		pass += chars.charAt( i );
	}

	for( x = 0; x < fill_ids.length; x++ ) {
		element = el(fill_ids[ x ]);
		if ( element )
			element.value = pass;
	}
}

function update_checkbox(id){
	if(el(id + '_checkbox').checked){
		el(id + '_input').value = 'checked';
	} else {
		el(id + '_input').value = '';
	}
}

function update_date(id)
{
	var months = new Array(31,28,31,30,31,30,31,31,30,31,30,31);

	if (el(id + '_year').value > 0 && el(id + '_month').value > 0 && el(id + '_day').value > 0)
	{
		if(isLeapYear(el(id + '_year').value))
		{
			months[1] = 29;
		}
		else
		{
			months[1] = 28;
		}

		if(months[el(id + '_month').value-1] < el(id + '_day').value)
		{
			el(id + '_input').value =null;
			alert("De ingevulde datum is onjuist.");
		}
		else
		{
			el(id + '_input').value = el(id + '_year').value + '-' + (el(id + '_month').value<10?"0":"") + el(id + '_month').value + '-' + (el(id + '_day').value<10?"0":"") + el(id + '_day').value;
		}
	}
}

function update_time(id){
	el(id + '_input').value =  (el(id + '_hour').value<10?"0":"") + el(id + '_hour').value + ':' + (el(id + '_minute').value<10?"0":"") + el(id + '_minute').value + ':' + (el(id + '_second')!=null ? (el(id + '_second').value<10?"0":"") + el(id + '_second').value : '00');
}

function zipcode_onkeyup(id){
	if (el(id + '_numbers').value.length == 4 && el(id + '_numbers').value.length != zipcode_prev_length) el(id + '_letters').focus();
	zipcode_prev_length = el(id + '_numbers').value.length;
	update_zipcode(id);
}

function update_zipcode(id){
	el(id + '_letters').value = el(id + '_letters').value.toUpperCase();
	el(id + '_input').value = el(id + '_numbers').value + el(id + '_letters').value;
}

function submit_form(id){
	$('form#'+id).submit();
}

function action_show(id, condition){
	if(el(id) != null){
		if(condition){
			el(id).style.display = 'block';
		}else{
			el(id).style.display = 'none';
		}
	}else{
		if(form_debug) alert(id + ' not found');
	}
}
function action_hide(id, condition){action_show(id, !condition);}

function action_enable(id, condition){
	$('#'+id).find('input').attr('disabled', !condition);
	$('#'+id).find('select').attr('disabled', !condition);
	$('#'+id).find('textarea').attr('disabled', !condition);

	if(!condition) {
		$('#'+id).find('object').hide();
	} else {
		$('#'+id).find('object').show();
	}
}
function action_disable(id, condition){action_enable(id, !condition);}

function action_visible(id, condition){
	if(condition){
		el(id).style.visibility = 'visible';
	}else{
		el(id).style.visibility = 'hidden';
	}
}

function get_form_id(obj){
	return $('#'+obj.id).closest('form').attr('id');
}

function action_reload(id, condition, url){
	if (condition){
		form_id = get_form_id(el(id));
		disable_buttons(form_id);
		
		value = getValue(id);
		el(id).innerHTML = loading_image + get_hidden_field(id, value);
		AJAX.get(url, reload_content, {'id': id, 'form_id': form_id});
	}
}

function action_reload_value(id, condition, url){
	value = getValue(id);
	AJAX.get(url, reload_value, {'id': id});
}

function action_formula(id, condition){
	var content = '';
	if(!this['show_score_'+id]) {
		for(i=0;i<score_scores.length;i++) {
			if(condition <= score_scores[i]) {
				content = score_texts[i];
				break;
			}
		}
		if(content == undefined) {
			content = '';
		}
	} else {
		content = condition;
	}
	el(id+'_score').innerHTML = content;
}

function get_hidden_field(id, value){
	return '<input type="hidden" name="" id="' + id + '_input" value="'+ value+'"/>';
}


function reload_content(content, params){
	obj = $(content);
	obj.attr("id", params.id);
	$(el(params.id)).replaceWith(obj);
	enable_buttons(params.form_id);

	execJS(content);
	addGeneralEvents(obj);
	
	var command = "on_" + params.id + "_event";
	if(window[command]) window[command]();
}

function reload_value(content, params){
	el(params.id+'_input').value = content;
	var command = "on_" + params.id + "_event();";
	if(command){
		eval(command);
	}
}

function getRealValue(id){
	if (el(id+'_input')!=null && el(id+'_input').value == "--other--"){
		return el(id+'_alternative_input').value;
	}else {
		return getValue(id);
	}
}

function getValue(id){
	if(el(id+'_input')!=null){
		if(el(id+'_input').value=="__check_group__"){
			var children = el(id).getElementsByTagName('input');
			var value = '';
			var num_checked = 0;
			for(i = 0; i < children.length; i++){
				if(children.item(i).type == 'checkbox' && children.item(i).checked) {
					value += children.item(i).value + ",";
					num_checked++;
				}
				
			}
			return value;
		}else{
			return el(id+'_input').value;
		}
	}
	if (el(id) == undefined){
		alert("Element "+id+" is not found.");
		return false;
	}
	children = el(id).getElementsByTagName('input');
	for(i = 0; i < children.length; i++){
		if(children.item(i).type == 'radio'){
			if(children.item(i).checked){
				return children.item(i).value;
			}
		}else{
			return children.item(i).value;
		}
	}
	children = el(id).getElementsByTagName('select');
	for(i = 0; i < children.length; i++){
		return children.item(i).value;
	}
	return false;
}

function getScore(id){
	if(score[id] == undefined){
	} else {
		v = getValue(id);
		if (el(id+'_input')!=null && el(id+'_input').value=="__check_group__") {
			v_array = v.split(',');
			ret_score = 0;
			for (i = 0; i < v_array.length; i++){
				if (!(score[id][v_array[i]] == undefined)){
					ret_score += score[id][v_array[i]];
				}
			}
			return ret_score;
		} else if(score[id] == Infinity){
			v = getValue(id);
			if (parseInt(v) > 0 || parseInt(v) < 0) // is blijkbaar niet meer gelijk aan != 0
				return parseInt(v);
		} else if (score[id][v] == undefined) {	
		} else {
			return score[id][v];
		}
	}
	return 0;
}

function select_group(id, select){
	var children = el(id).getElementsByTagName('input');
	for(i = 0; i < children.length; i++){
		children.item(i).checked = select;
	}
}
function ajaxSubmitFormToUrl(form_id, function_name, params, url) {
	if(typeof(CKEDITOR) !== "undefined"){
		/* De ckeditor update niet constant de waarde in de textarea die hij "overneemt".
		De volgende code voert de update uit, en verwijderd daarna de editor. */
		for (var name in CKEDITOR.instances)
		{
			CKEDITOR.instances[name].updateElement();
			delete CKEDITOR.instances[name];
		}
	}
	if (typeof(el(form_id).method) == "undefined"){
		forms = el(form_id).getElementsByTagName('form');		
		if (forms.length == 1){
			form_id = $(forms[0]).attr("id");
		}
	}
	
	$.post(url, $(el(form_id)).serialize(), function(data) {window[function_name](data, params)});
}
function ajaxSubmitForm(form_id, function_name, params)
{
//	url = el(form_id).action;
//	ajaxSubmitFormToUrl(form_id, function_name, params, url);
	check_form(form_id, false, true, params);
}

/**
 * Voordat een formulier gepost wordt komt hij
 * eerst door deze functie heen. Via ajax worden de
 * waarden via een checkfunctie van het formulier gecheckt.
 * Bij correctie wordt het formulier gepost, 
 * anders foutmelding op scherm.
 * @param form_id string id attribuut van het formulier
 * @param validate boolean formulierwaarden valideren voordat het ge-post wordt
 * @param ajax_submit boolean formulier via ajax posten
 * @param params object parameters aan ajax submit
 * @return void
 */
function check_form(form_id, validate, ajax_submit, params) {
	removeFormErrors(form_id);
	disable_buttons(form_id);
	
	if (validate) {
		validate_form(form_id);
	} else {
		$.post('/validata/?m=system&p=check_form', $('form#'+form_id).serialize(), function(response) {
			response_messages = response.split(";;");
			
			if (response_messages == '') {
				if (ajax_submit == 'undefined') {
					ajax_submit = false;
				}
				if (ajax_submit) {
					ajaxSubmitFormToUrl(form_id, 'selector_post_changes', params, el(form_id).action);
				} else {
					submit_form(form_id);
				}
			} else if (response_messages[0] != 'undefined') {
				var error_elements;
				if (response_messages[1] != 'undefined') {
					error_elements = response_messages[1];
				}				
				removeFormErrors(form_id);
				showFormErrors(form_id, response_messages[0], error_elements);
				enable_buttons(form_id);
			}
		});
	}
}	

/**
 * Fouten in formulier tonen. Foutberichten en/of 
 * formulierelementen highlighten
 * @param form_id integer id van het formulier
 * @param error_messages string puntkomma-gescheiden foutberichten
 * @param error_elements string puntkomma-gescheiden elementnamen die ge-highlight moeten worden
 * @return void
 */
function showFormErrors(form_id, error_messages, error_elements) {
	var form = $('form#'+form_id).get(0);
	
	if (typeof(error_elements) != 'undefined') {
		elements = error_elements.split(';');
		for (i = 0;i < elements.length; i++) {
			highlightFormElementError(form_id, elements[i]);
		}
	}
	
	messages = error_messages.split(';');	
	for (i = 0;i < messages.length; i++) {
		var id_postfix = messages[i].replace(/ /g,"_");
		var error_message = document.createElement("div");
		error_message.innerHTML = "<div class=\"message error\" id=\""+form_id+"_error_messages_"+id_postfix+"\" ></div>";

		form.parentNode.parentNode.insertBefore(error_message.childNodes[0], form.parentNode.parentNode.lastChild.previousSibling);		
		AJAX.replaceContent("<img src = \"/images/icons/16x16/error.png\" />"+messages[i], {'id': form_id + '_error_messages_'+id_postfix});
	}	
}

/**
 * Geef een rode border aan elementen van een formulier.
 * Het kan een inputelement zijn of een div (zoals een selector element)
 * @param form_id string id van formulier
 * @param element_name string naam element dat rode highlight moet krijgen
 */
function highlightFormElementError(form_id, element_name) {
	$('#' + form_id+'_'+element_name).addClass('form_input_error');
}

/**
 * Zet formulier in originele staat.
 * Zonder foutberichten en elementen
 * die ge-highlight zijn
 * @param form_id id van formulier
 * @return void
 */
function removeFormErrors(form_id) {
	$('#' + form_id).find('div').removeClass('form_input_error');
	$('.error').remove();
}

/**
 * Maak bepaalde datums in
 * datepicker niet selecteerbaar
 * @param date datum
 */
function dateIsAvailable(date) {
	var dat = $.datepicker.formatDate("yy-mm-dd", date);
	for (var i=0, c=disable_dates.length; i<c; i++) {
		if (dat >= disable_dates[i][0] && dat<=disable_dates[i][1])
			return [false, ""];
	}
	return [true, "2"];
}

/**
 * Geef correcte datumweergave
 * voor datepicker
 * Check ook of het een datetime moet zijn
 * @param string datum formaat: yyyy-mm-dd of yyyy-mm-dd hh:mm:ss
 * @param string use_seconds seconden tonen of niet
 * @return date formaat: dd-mm-yyyy
 */
function getNiceDateFormatLabel(date, show_seconds) {
	if(date != '') {
		time_exists = date.search(':');
		date_array = date.split('-');

		if(time_exists != -1) {
			//het is een datetime
			time_array = date_array[2].split(':');
			hour_start_pos = time_array[0].indexOf(' ');
			datetime_label = date_array[2].substr(0, 2)+"-"+date_array[1]+"-"+date_array[0]+' '+time_array[0].substr(hour_start_pos + 1, 2)+':'+time_array[1];
			if(time_array[2] == null) {
				if(show_seconds == 'yes') {
					return datetime_label + ':00';
				} else {
					return datetime_label;
				}
			} else {
				if(show_seconds == 'yes') {
					return datetime_label + ':' + time_array[2];
				} else {
					return datetime_label;
				}
			}
		} else {
			//alleen datum
			return date_array[2]+"-"+date_array[1]+"-"+date_array[0];
		}
	}	
	return '';
}

/**
 * Geef de startdatum van de daterangepicker
 * @param string date_label datumlabel van de datepicker
 * @return string
 * @todo deze is optioneel. een return waarde '' is verplicht
 */
function getDaterangeStartdate(date_label) {
	if (date_label != undefined) {
		start_date = date_label.substring(0, 11);
		date_array = start_date.split('-');
		return date_array[2].substring(0, 4) + '-' + date_array[1] + '-' + date_array[0];
	} else {
		return '';
	}	
}

/**
 * Geef de einddatum van de daterangepicker
 * als die aanwezig is
 * @param string date_label datumlabel van de datepicker
 * @return string
 */
function getDaterangeEnddate(date_label) {
	if (date_label != undefined) {
		end_date_label = date_label.substring(10);
		end_date_exists = end_date_label.search('-');
		if(end_date_exists != -1) {
			date_array = end_date_label.split('-');
			day_array = date_array[0].split(' ');

			var day = day_array[day_array.length - 1];
			var month = date_array[1];
			var year = date_array[2];
			return year + '-' + month + '-' + day;
		}
	}
	return '';
}

/**
 * Vul de daterangepickerkalender met waarden
 * voor het formulier
 * @param object element_id id van daterangepickerelement
 * @param date form_value datum
 * @param string range_splitter_text text tussen de 2 datums
 */
function setDaterangeValues(element_id, form_value, range_splitter_text) {
	dates = form_value.split(' ');
	date_label = getNiceDateFormatLabel(dates[0]);
	if(dates.length > 1) {
		for(i=0;i<dates.length;i++) {
			pos = dates[i].indexOf('-');
			if(pos != -1) {
				if(i == 0) {
					el(element_id + '_input_start').value = dates[i];
					date_label = getNiceDateFormatLabel(dates[i]);
					if (dates[1] != '') {
						date_label += ' ' + range_splitter_text + ' ';
					}
				} else {
					el(element_id + '_input_end').value = dates[i];
					date_label += getNiceDateFormatLabel(dates[i]);
				}
			}
		}
		el(element_id + '_input').value = date_label;
	} else {
		el(element_id + '_input').value = dates[i];
	}
	el(element_id + '_input_daterange_label').innerHTML = date_label;
}

function insert_textarea_variable(id, element)
{
	insertAtCursor(id, element, "");
}

// oude formsuite gedeelte

function fs_highlight(id){
	el(id).style.backgroundColor = '#fff9f8';
	el(id).style.border = '1px dashed #B88B89';
	
	el(id + '_name').style.display = 'block';
}

function fs_unhighlight(id){
	el(id).style.backgroundColor = '#ffffff';
	el(id).style.border = '1px solid white';

	el(id + '_name').style.display = 'none';
}

/**
 * Geef aan of een bepaalde element verborgen is
 * in de pagina.
 * @param string element_id id-naam van het element
 * @return boolean true als het verborgen is
 * @todo tot nu alleen validatie voor "required" wordt het gebruikt.
 * wellicht ook voor andere validatiecontroles?
 */
function isHiddenElement(element_id) {
	if(el(element_id).className.substring(0, 16) != 'input_hidden_div') {
		return false;
	}
	return true;
}

/**
 * Valideer of element gevuld is of niet, mits hij
 * getoond is op de pagina.
 * Een dependency element valideren heeft als voorwaarde
 * dat het wel getoond is op het scherm. Een dependency element
 * dat verborgen is moet validatie uitvallen.
 * @param string element_id id-naam van het element
 * @return boolean
 */
function fs_validation_required(element_id){
	if(!isHiddenElement(element_id)) {
		value = getRealValue(element_id);
	}
	return value != '';
}

function fs_validation_minimum_length(element_id, form_id, result_id, params){
	value = getRealValue(element_id);
	length = value.length;
	return length >= params.minimum_length;
}

function fs_validation_price(element_id){
	var re = new RegExp('\\b^[0-9]*[\,\.]?[0-9]{0,2}$\\b');
	value = getRealValue(element_id);
	return value=='' || value.match(re);
}

function fs_validation_zipcode(element_id){
	var re = new RegExp('\\b^[0-9]{4}[a-zA-Z]{2}$\\b');
	value = getRealValue(element_id);
	return value=='' || value.match(re);
}

function fs_validation_zipcode_be(element_id){
	var re = new RegExp('\\b^[0-9]{4}$\\b');
	value = getRealValue(element_id);
	return value=='' || value.match(re);
}

function fs_validation_checkboxgroup(element_id, form_id, result_id, params){
	checkboxes_value = getRealValue(element_id);
	checkboxes_array  = checkboxes_value.split(',');
	num_checked = checkboxes_array.length - 1;

	if(num_checked > 0) {
		if(params.min_checked > num_checked)
			return false;
		if(params.max_checked < num_checked)
			return false;
	} else {
		return true;
	}
	return true;
}

function fs_validation_validate_age(element_id, form_id, result_id, params){
	date_value = getRealValue(element_id);
	age = fs_calc_age(date_value);
	if (age >= 0){
		if (params.min_age > 0 && params.max_age > 0)
			return (params.min_age <= age && age <= params.max_age);
		if (params.max_age > 0)
			return (age <= params.max_age);
		if (params.min_age > 0)
			return (params.min_age <= age);
	} else {
		return true;
	}
        return false;
}

function fs_calc_age(date_value){
	date_value = date_value.split('-');
	if (date_value.length == 3){
		birthdate = new Date();
		today = new Date();
		birthdate.setFullYear(date_value[0],date_value[1],date_value[2]);
		var minutes = 1000*60;
		var hours = minutes*60;
		var days = hours*24;
		var years = days*365;
		var time = today.getTime() - birthdate.getTime();
		var age = Math.floor(time/years);
		return age;
	} else {
		return -1;
	}
}

function fs_validation_alphanumeric(element_id){
	
	//var re = new RegExp('\\b^[0-9A-Za-z]*$\\b');
	
	var re = new RegExp('/^[a-zA-Z0-9]|[/s]*$');
	value = getRealValue(element_id);
	value = value.replace(/^\s+/,'');
    value = value.replace(/\s+$/,'');
 	return value=='' || value.match(re);
	
	
}

function fs_validation_numeric(element_id){
	var re = new RegExp('\\b^[0-9]*$\\b');
	value = getRealValue(element_id);
	return value=='' || value.match(re);
}

function fs_validation_email(element_id){
	var re = /[a-zA-Z0-9]+[_a-zA-Z0-9-]*(\.[_a-zA-Z0-9-]+)*@[a-zA-Z??0-9]+(-[a-zA-Z??0-9]+)*(\.[a-zA-Z??0-9-]+)*(\.[a-zA-Z]{2,4})/;
	value = getRealValue(element_id);
	return value=='' || re.test(value);
}

function fs_validation_url(element_id){
	var re = /(https?:\/\/)?([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?/;
	value = getRealValue(element_id);
	return value=='' || re.test(value);
}

function fs_validation_landline(element_id){
	var re = new RegExp('\\b^0((([1-5]|7)[0-9])|(84)|(85)|(87)|(88)|(91))[0-9]{7}$\\b');
	uniform_phone_number(element_id);
	value = getRealValue(element_id);
	return value=='' || value.match(re);
}

function fs_validation_cell_phone_number(element_id){
	var re = new RegExp('\\b^06(([0-5][0-9])|(7([0-5]|[7-9]))|([8-9][0-9]))[0-9]{6}$\\b');
	uniform_phone_number(element_id);
	value = getRealValue(element_id);
	return value=='' || value.match(re);
}

function fs_validation_phone_number(element_id){
	return fs_validation_landline(element_id) || fs_validation_cell_phone_number(element_id);
}

function fs_validation_landline_be(element_id){
	var re = new RegExp('\\b^0[0-9]{8}$\\b');
	uniform_phone_number(element_id);
	value = getRealValue(element_id);
	return value=='' || value.match(re);
}

function fs_validation_cell_phone_number_be(element_id){
	var re = new RegExp('\\b^04((7[0-9])|(8[4-8])|(9[4-9]))[0-9]{6}$\\b');
	uniform_phone_number(element_id);
	value = getRealValue(element_id);
	return value=='' || value.match(re);
}

function fs_validation_phone_number_be(element_id){
	return fs_validation_landline_be(element_id) || fs_validation_cell_phone_number_be(element_id);
}

function fs_validation_password(element_id){
	value = getRealValue(element_id);
	return value=='' || value.length >= 6;
}

function fs_validation_password2(element_id){
	value = getRealValue(element_id);
	value2 = getRealValue(element_id + "_confirm");
	return value=='' || value == value2;
}

function fs_validation_username(element_id, form_id, result_id){
	value = getRealValue(element_id);
	response = AJAX.getSynch("?m=formsuite&a=username_check&form_id="+form_id+"&username="+value+"&result_id="+result_id, "", []);
	return value=='' || response == "ok";
}

function fs_validation_require_unique(element_id, form_id, result_id){
	value = getRealValue(element_id);
	element_name = el(element_id+'_input').name;
	response = AJAX.getSynch("?m=formsuite&a=unique_check&form_id="+form_id+"&element_id="+element_name+"&value="+value+"&result_id="+result_id, "", []);
	return value=='' || response == "ok";
}

function fs_type_select(element_id, value){
	cur_value = el(element_id + '_input').value;
	if(el(element_id + '_' + cur_value) != 'undefined'){
		el(element_id + '_' + cur_value).className = '';
	}
	el(element_id + '_' + value).className = 'fs_type_selected';
	el(element_id + '_input').value = value;
}


function fs_insert_element(id, element)
{
	insertAtCursor(id, "[" + element + "]", "");
}

function uniform_phone_number(element_id){
	value = getRealValue(element_id);
	value = value.split(' ').join('');
	value = value.replace('-','');
	value = value.replace('/','');
	value = value.replace('.','');
	el(element_id + '_input').value = value;
}


function  fs_validation_account_number(element_id)
{
	value = getRealValue(element_id);
	value = value.split(' ').join('');
	value = value.replace(/[\.-\/]/g,'');
	
	var num_numbers = value.length;

	if(num_numbers == 8)
	{
		ret = false;
	}
	else
	{
		if(num_numbers < 8)
		{
			ret = true;
		}
		else
		{
			var j = value.length;
			var total = 0;
			for( var i = 0; i < value.length; i++ ) {
				total += value.charAt( i ) * j;
				j -= 1;
			}
			if( ( total % 11 ) != 0 ) {
				ret = false;
			}
			else
			{
				ret = true;
			}
		}
	}
	return ret;
}

var ck_instances = new Object();
function activateCKEditor(id, width, height, toolbar){
	if(typeof(ck_instances[id]) == "undefined" && el(id) != null && el(id).style.display != 'none'){
		//alert(id);
		ck_instances[id] = true;

		delete CKEDITOR.instances[ 'id' ];
		try
		{
			CKEDITOR.replace(id,{width : width, height: height,toolbar:toolbar});
		}
		catch(err)
		{
			alert(err);
		}
	}
}

function isLeapYear(year) {
	// Wel: 1996, 2000, 2004
	// Niet: 1995, 1900
	if (year%400==0) {
		return true;
	} else if (year%100==0) {
		return false;
	} else {
		return (year%4==0)
	}
}


var initFileUpload = function (form_id, element_id) {
	$('#'+form_id).fileUploadUI({
		namespace: 'file_upload_' + element_id,
		fileInputFilter: '#' + element_id + '_input',
		dropZone: $('#' + element_id + '_drop'),
		uploadTable: $('#' + element_id + '_files'),
		url: '/?m=system&amp;a=upload_file',
		buildUploadRow: function (files, index) {
			return $('<tr><td>' + files[index].name + '<\/td>' +
					'<td class="file_upload_progress"><div><\/div><\/td>' +
					'<td class="file_upload_cancel">' +
					'<button class="ui-state-default ui-corner-all" title="Cancel">' +
					'<span class="ui-icon ui-icon-cancel">Cancel<\/span>' +
					'<\/button><\/td><\/tr>');
		},
		buildDownloadRow: function (file) {
			return $('<tr><td>' + file.name + '<\/td><\/tr>');
		}
	});
}

