Мне кажется, что вы устанавливаете неправильное значение в скрытых полях.
Например, если я введу название компании "foo inc", поле будет иметь вид:
<input type="hidden" value="company_name" id="company_name_answer">
Разве это не должно быть?
<input type="hidden" value="foo inc" id="company_name_answer">
Я думаю, что функция change_selection неверна, у вас есть:
function change_selection(selection, answer)
{
var selection = selection;
var answer = answer;
document.getElementById(answer).value = selection;
}
Предположительно, должно быть ...
function change_selection(selection, answer)
{
document.getElementById(answer).value = document.getElementById(selection).value;
}