function submitForm(chk_field_ids) {
	var txtField = null;
	
	if(checkValues(chk_field_ids)) {
		return true;
	} else {
		return false;
	}
}

function checkValues(field_ids) {
	var tabclass = 'tabbertab';
	var errors = new Array();
	var editor;
	var firstError;
	var object;
	var parent;
	var tab;
	var message = '';
	
	for(i = 0;i < field_ids.length;i++) {
		if(field_ids[i][2] == 'WYSIWYGField') {
			editor = window[field_ids[i][0] + '_editor'];
			
			if(editor && !editor.getTextBody().trim().length) {
				errors[errors.length] = [field_ids[i][0], '"' + field_ids[i][1] + '" is een verplichte waarde', field_ids[i][2]];
			}
			else if(!editor)
			{
				if(!document.getElementById(field_ids[i][0]).value) {
					errors[errors.length] = [field_ids[i][0], '"' + field_ids[i][1] + '" is een verplichte waarde', field_ids[i][2]];
				}
			}
		} else {
			if(!document.getElementById(field_ids[i][0]).value) {
				errors[errors.length] = [field_ids[i][0], '"' + field_ids[i][1] + '" is een verplichte waarde', field_ids[i][2]];
			}
		}
	}
	
	if(errors.length > 0)
	{
		object = document.getElementById(errors[0][0]);
		parent = object.parentNode;
		
		while(parent && !tab)
		{
			if(parent.className && parent.className.match(tabclass))
			{
				tab = parent;
			}
			
			parent = parent.parentNode;
		}
		
		if(tab && setTabberObj.tabShow)
		{
			var tabberTabIndex = parseInt(tab.getAttribute('tabberTabIndex'));
			setTabberObj.tabShow(tabberTabIndex);
		}

		object.focus();
		
		if(errors[0][2] != 'WYSIWYGField') { object.select(); }
		
		message = 'Wilt u op de volgende ';
		message += errors.length == 1 ? 'fout' : 'fouten';
		message += ' letten:\n';
		
		for(i = 0;i < errors.length;i++)
		{
			message += '- ' + errors[i][1];
			
			if(i < errors.length - 1)
			{
				message += '\n';
			}
		}
		
		alert(message);

		return false;
	}
	
	return true;
}

function setClicked(object) {
	var object_sender_id = '';
	var object_sender = null;
	
	object_sender_id = object.id;
	object_sender_id = object_sender_id.substr(0, object_sender_id.length - 6);
	
	object_sender = document.getElementById(object_sender_id);
	
	if(object.checked)
		object_sender.value = '1';
	else
		object_sender.value = '0';
}

function toRight(from, to, send_to) {
	values = '';
	
	moveSelectedOptions(from, to, true);
	
	for(i = 0;i < to.options.length;i++)
		values += to.options[i].value + ',';
	
	values = values.substr(0, values.length - 1);
	
	send_to.value = values;
}

function toLeft(from, to, send_to) {
	values = '';
	
	moveSelectedOptions(to, from, true);
	
	for(i = 0;i < to.options.length;i++)
		values += to.options[i].value + ',';
	
	values = values.substr(0, values.length - 1);
	
	send_to.value = values;
}

function selectUnselectMatchingOptions(obj,regex,which,only) {
	if(window.RegExp) {
		if(which == "select") {
			var selected1=true;
			var selected2=false;
		} else if(which == "unselect") {
			var selected1=false;
			var selected2=true;
		} else {
			return;
		}
		
		var re = new RegExp(regex);
		for(var i=0; i<obj.options.length; i++) {
			if(re.test(obj.options[i].text)) {
				obj.options[i].selected = selected1;
			} else {
				if(only == true) {
					obj.options[i].selected = selected2;
				}
			}
		}
	}
}
        
function unSelectMatchingOptions(obj,regex) {
	selectUnselectMatchingOptions(obj,regex,"unselect",false);
}

function sortSelect(obj) {
	var o = new Array();
	if(obj.options==null) {
		return;
	}
	
	for(var i=0; i<obj.options.length; i++) {
		o[o.length] = new Option( obj.options[i].text, obj.options[i].value, obj.options[i].defaultSelected, obj.options[i].selected);
	}
	
	if(o.length==0) {
		return;
	}
	
	o = o.sort( 
		function(a,b) { 
			if((a.text+"") <(b.text+"")) {
				return -1;
			}
			
			if((a.text+"") >(b.text+"")) {
				return 1;
			}
			
			return 0;
		} 
	);

	for(var i=0; i<o.length; i++) {
		obj.options[i] = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);
	}
}
        
function selectAllOptions(obj) {
	for(var i=0; i<obj.options.length; i++) {
		obj.options[i].selected = true;
	}
}

function moveSelectedOptions(from,to) {
// Unselect matching options, if required
	if(arguments.length>3) {
		var regex = arguments[3];
		
		if(regex != "") {
				unSelectMatchingOptions(from,regex);
		}
	}
		
	// Move them over
	for(var i=0; i<from.options.length; i++) {
		var o = from.options[i];
		if(o.selected) {
			to.options[to.options.length] = new Option( o.text, o.value, false, false);
		}
	}
	
	// Delete them from original
	for(var i=(from.options.length-1); i>=0; i--) {
		var o = from.options[i];
		if(o.selected) {
			from.options[i] = null;
		}
	}
	
	if((arguments.length<3) ||(arguments[2]==true)) {
		sortSelect(from);
		sortSelect(to);
	}
	
	from.selectedIndex = -1;
	to.selectedIndex = -1;
}

