/*
 * generate_password()
 *
 * Generates a random, strong password
 *
 * @return	void
 */

function generate_password()
{
	var display_row_elt = document.getElementById('display_pass_row');
	var display_elt = document.getElementById('display_pass');
	var pass1_elt = document.getElementById('pass1');
	if(!pass1_elt)
		pass1_elt = document.getElementById('member_pass1');	
	var pass2_elt = document.getElementById('pass2');
	if(!pass2_elt)
		pass2_elt = document.getElementById('member_pass2');
	
	var password = randomPassword(12);
	
	set_node_text('display_pass', password);
	pass1_elt.value = password;
	pass2_elt.value = password;
	
	display_row_elt.style.display = 'block';
}

/*
 * set_node_text()
 *
 * Replaces the first child of the given element with a new text node containing new_text,
 * or adds a new text node if there are no children.
 *
 * @param	string		elt_id		The ID of the element to which to add/update a text node
 * @param	string		new_text	The content of the text node
 * @return	void
 */
 
function set_node_text(elt_id, new_text)
{
	var elt = document.getElementById(elt_id);
	
	if(!elt)
		return;
	
	var newTextNode = document.createTextNode(new_text);
	
	if(elt.childNodes[0])
		elt.replaceChild(newTextNode, elt.childNodes[0]);
	else
		elt.appendChild(newTextNode);
}