/*
	General interaction with the user
*/


// Appends and pre-pends quotes
function quote (
	p_msg,
	p_quote_char)
{
	l_quote_char = (undefined == p_quote_char ? '"' : p_quote_char);
	return l_quote_char + p_msg + l_quote_char;
}


// Get a text string from the user, not allowing empty strings
function PromptForText (msg) {
	do {
		var v = prompt (msg, '');
	} while ((v == null) || (v == '') || isblank (v));

	return v;
}

// Returns its numeric argument formatted as 2 digits, e.g: '1' becomes '01'
function FormatAs2Digits (n) {
	if (n < 10)
		n = "0" + n;

	return n;
}

// formats output as an email address
function mail_to (name, domain, title) {
	document.write("<a class=\"link\" href=\"mail" + "to:" + name + "&#64;" + domain + "\">" + title + "<\a>");
}

/* Disables an input field */
function disableInputField (
	p_field)
{
	switch (p_field.type) {

		case 'text':
			p_field.value = '';
			p_field.disabled = true;
			p_field.className = 'readonly';

			break;

		case 'button': case 'reset': case 'submit':
			p_field.value = '';
			p_field.disabled = true;

			break;

		case 'checkbox':
			p_field.disabled = true;

			break;

		/* Assume that it's a radio control */
		case undefined:
			for (i = 0; i < p_field.length; i++) {
				p_field[i].checked = false;
				p_field[i].disabled = true;
				p_field.className = 'readonly';
			}

			break;
	}
}

/* Enables an input field that may have been previously disabled */
function enableInputField (
	p_field) {

	switch (p_field.type) {

		case 'text':
			p_field.disabled = false;
			p_field.className = '';

			break;


		case 'button': case 'reset': case 'submit':
			p_field.disabled = false;

			break;


		case 'checkbox':
			p_field.disabled = false;

			break;

		/* Assume that it's a radio control */
		case undefined:
			for (i = 0; i < p_field.length; i++) {
				p_field[i].disabled = false;
				p_field.className = '';
			}

			break;
	}
}

