/**
 * updates html fields with passed json values
 *
 * @param Object request object
 * @param Object json object
 */
function updateJSON(request, json)
{
	var responses = json;
	if (!json){
	  //if you don't use the json tips then evaluate the renderedText instead
	  var responses = eval('(' + request.responseText + ')');
	}
	var resSize = responses.length;
	for (var i = 0; i < resSize; i++)
	{
	   Element.update(responses[i][0], responses[i][1]);
	}
}

/**
 * fills main search form select boxes with parsed request or json object depending on whats passed
 *
 * @param string form_name form to fill select boxes in
 * @param Object request object
 * @param Object json object
 */
function fillForm(form_name, request, json)
{
	var data = request.responseText.evalJSON();
	
	keys = Object.keys(data);
	values = Object.values(data);
	
	selected_keys = Object.keys(data.selected);
	selected_values = Object.values(data.selected);
	
	//loop through object values
	for (var i=0; i<keys.length; i++)
	{
		if (keys[i] != 'selected')
		{
			//First enable form field
			name = form_name + '_' + keys[i];
		
			//disable while filling select box
			$(name).disable();

			//empty select box
			for(var k=$(name).options.length-1; k>=0; k--)
			{
				$(name).options[k]=null;
			}
		
			//Set keys/values of object
			element_object = values[i];
			element_keys = Object.keys(element_object);
			element_values = Object.values(element_object);
			element_length = element_values.length;
		
			//get selectedIndex
			selectedIndex = false;
			for (l=0; l<selected_keys.length; l++)
			{
				if (keys[i] == selected_keys[l])
				{
					selectedIndex = selected_values[l];
				}
			}
			
			/**
			 * Fill in select box. Make sure to set selectedIndex if it's returned in json
			 */
			for (var j=0; j< element_length; j++)
			{
				if ($(name) != null && $(name).options != null)
				{
					if (element_keys[j] == selectedIndex)
					{
						$(name).options[$(name).options.length] = new Option(element_values[j], element_keys[j], true, true);
					}
					else
					{
						$(name).options[$(name).options.length] = new Option(element_values[j], element_keys[j], false, false);
					}
				}
			}
			
			/**
			 * only enable if select box has more than 1 (the standard) option
			*/
			if(element_length > 1)
			{
				$(name).enable();
			}
		}
	}
}