/**
 * Voeg hidden input fields toe aan dit formulier voor elke request parameters mee die 
 * die niet in het formulier zelf zit. Dan kun je het formuier submitten zonder dat je deze
 * parameters verliest.
 * @param formId
 */
function addRequestVarsToForm(formId) {
	jQuery(function() {
		var vars = getUrlVars();
		var jForm = $('#' + formId);
		
		jForm.submit(function() {
			var formFields = new Array(); 
			jForm.find('input,select,textarea').each(function(i, element){
				  formFields.push(element.name);
				  formFields[element.name] = element;
			});
			for (i = 0; i < vars.length; i++) {
				var field = vars[i];
				if (typeof formFields[field.name] == 'undefined') {
					jQuery('<input type="hidden" name="' + field.name+ '" value="' + field.value + '" />').appendTo(jForm);
				}
			}
		});
	});
}

/**
 * @returns {Array} van keyValuePairs
 */
function getUrlVars() {
	var vars = [], hash;
	var index = window.location.href.indexOf('?');
	if (index == -1) {
		return vars;
	}
	var hashes = window.location.href.slice(index + 1).split('&');
	for(var i = 0; i < hashes.length; i++) {
		hash = hashes[i].split('=');
		// TODO: parameter 'page' uit constante halen of meegeven in de methode als parameter 
		var varName = unescape(hash[0]); // Escapen, anders wordt er gezocht naar cities%5B%5D ipv cities[];
		if ((varName == "inclkoop")||
			(varName == "inclhuur")||
			(varName == "page")||
			(varName == "objectId")||
			(varName == "objectId[]"))  {
			continue;
		}
		vars.push({name: varName, value: hash[1]});
	}
	return vars;
}
