var submitactions = new Array();
var prevalidationchecks = new Array();
function performsubmitwithaction(formname, act, param){
	for (var i = 0; i < prevalidationchecks.length; i++){
		func = prevalidationchecks[i];
		if(typeof(func)=='function'){
			if(!func()){
				return false;
			}
		}
    }
	for (var i = 0; i < submitactions.length; i++){
		func = submitactions[i];
		if(typeof(func)=='function'){
			func();
		}
    }
	document.getElementById(formname+"action").value = act;
	document.getElementById(formname+"actionparam").value=param;
	document.getElementById(formname+"_form").submit();
	return false;
}

function addSubmitAction(f){
	submitactions[submitactions.length] = f;
}
function removeSubmitAction(f){
	for (var i = 0; i < submitactions.length; i++){
		if(submitactions[i] == f){
			submitactions[i] = null;
		}
    }
}
function addPreValidationCheck(f){
	prevalidationchecks[prevalidationchecks.length] = f;
}
function removePreValidationCheck(f){
	for (var i = 0; i < prevalidationchecks.length; i++){
		if(prevalidationchecks[i] == f){
			prevalidationchecks[i] = null;
		}
    }
}
function attachKeysToFormAction(formname, returnaction){
	if(document.all){
		document.onkeyup = function() {
			if (window.event.ctrlKey) {
				if (window.event.keyCode == 83) {
					performsubmitwithaction(formname, 'save', returnaction);
					return false;
				}
			}
		};
	} else {
		document.onkeypress = function (evt) {
			// check voor ctrl-s key
			if (evt.ctrlKey) {
				if (evt.keyCode)
					code = evt.keyCode;
				else if (evt.which)
					code = evt.which;
				if (code == "115") {
					performsubmitwithaction(formname, 'save', returnaction);
					return false;
				}
			}
			// checken voor enter key
			var evt = (evt) ? evt : ((event) ? event : null);
			var node = (evt.target) ? evt.target
					: ((evt.srcElement) ? evt.srcElement : null);
			if ((evt.keyCode == 13) && (node.type == "text")) {
				performsubmitwithaction(formname, 'save', returnaction);
				return false;
			}

		};
	}
}

