/**
 * 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]);
	}
}

/**
 * clears the arrival date list
 * @param string name form to set selectedIndex boxes to 0.
 */
function clearArrival(name)
{
	$(name+'_arrival_date').selectedIndex = 0;
}

/**
 * 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++)
			{

				var arr_date = new Date((element_keys[j].substr(0,10)).replace(/-/g,'/'));
				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();
			}
		}
	}
}