/*
Some simple functions used to update a select box with data retrieved via Ajax.

After obtaining response text from your Ajax request,
use: updateSelect(ajaxResponseText, selectBoxId)


Text returned through Ajax request should be in the following format:
optionValue:text,optionValue:text,optionValue:text,

For example:
1:New South Wales,2:Queensland,3:Victoria,

Author: Cameron Duff
Date: 05/11/08
*/

function removeAllOptions(selectbox)
{
	for(var i = selectbox.options.length-1; i >= 0; i--)
	{
		selectbox.remove(i);
	}
}

function parseOptions(text)
{
	var options = new Array();
	var i = 0;
	for(var i = 0; text.indexOf(':') > -1; i++)
	{
		var cur = text.substring(0, text.indexOf(','));
		text = text.substring(text.indexOf(',') + 1, text.length);
		
		var value = cur.substring(0,cur.indexOf(':'));
		var html = cur.substring(cur.indexOf(':')+1, cur.length);
		
		var option = document.createElement('option');
		
		value = value.replace(new RegExp("\\n", "g" ), "");
		html = html.replace(new RegExp("\\n", "g" ), "");
		
		option.value = trim(value);
		option.innerHTML = trim(html);
		
		
		options[i] = option;
	}
	
	
	return options;
}

function updateSelect(responseText, selectName)
{
	var el = document.getElementById(selectName);
	removeAllOptions(el);
	var options = parseOptions(responseText);
	for(i = 0; i < options.length; i ++)
	{
		el.appendChild(options[i]);
	}
}

function trim(s) {
	s = s.replace(/(^\s*)|(\s*$)/gi,"");
	s = s.replace(/[ ]{2,}/gi," ");
	s = s.replace(/\n /,"\n");
	return s;
}