/*
*******************************************************************************************
Purpose:	Validates that text is not blank in each text input object passed
Arguments:	parrTextAnswers = array of textarea (or input) objects
			pstrMessage (opt.) = optional message
			plngMin (opt.) = minimum # of textareas that must have data
			plngMax (opt.) = maximum # of textareas that must have data
			PLEASE NOTE: This function will not pass textboxes that have > 999 characters

Returns:	boolean
Created:   	07/23/1999
By:	   		Neal Tillotson
Supports:	Javascript 1.1 or higher
Usage: 		Programs-specific usage:
   				var arrTextAnswers = new Array()
				arrTextAnswers[0] = document.frm_Questions.mbAN_Q2222_A2221
				arrTextAnswers[1] = document.frm_Questions.mbAN_Q2222_A2222
				if (!ValidTextarea(arrTextAnswers,"MyMessage",1,0)) {return false};
	
			General usage:
   				var arrTextAnswers = new Array()

				arrTextAnswers[0] = document.form.textinputobject1
				if (!ValidTextarea(arrTextAnswers,"",1,1)) {return false};
				==> will validate that ONE text input has an answer
				
				arrTextAnswers[0] = document.form.textinputobject1
				arrTextAnswers[1] = document.form.textinputobject2
				arrTextAnswers[2] = document.form.textinputobject3
				if (!ValidTextarea(arrTextAnswers,"",1,0)) {return false};
				==> will validate that AT LEAST ONE text input has an answer

				arrTextAnswers[0] = document.form.textinputobject1
				arrTextAnswers[1] = document.form.textinputobject2
				arrTextAnswers[2] = document.form.textinputobject3
				if (!ValidTextarea(arrTextAnswers,"",1,2)) {return false};
				==> will validate that BETWEEN ONE AND TWO text inputs have answers

				arrTextAnswers[0] = document.form.textinputobject1
				arrTextAnswers[1] = document.form.textinputobject2
				arrTextAnswers[2] = document.form.textinputobject3
				if (!ValidTextarea(arrTextAnswers,"",0,2)) {return false};
				==> will validate that NO MORE THAN TWO text inputs have answers

Calls:		IsBlank(),IsTooLong()
Wrappers:	inc_UW_InputValidation.js

Changed:	10/02/2001 
By:	   		Neal Tillotson: added IntegerToString() function
********************************************************************************************
*/

function ValidTextarea(parrTextAnswers, pstrMessage, plngMin, plngMax)
{
	var i;
	var strMessage;
	var strAnswerText;
	var lngAnswered;
	var blnTooLong = false;			

	if (typeof plngMin == "undefined") {plngMin = 1};
	if ((typeof plngMax == "undefined") || plngMax == 0) {plngMax = 999};  // 999 means no upper limit

	if (plngMin == 1) {strAnswerText = "answer"}
	else {strAnswerText = "answers"};
	
	if (plngMin == plngMax) {strMessage = "Please provide exactly "+IntegerToString(plngMin)+" "+strAnswerText+"."}
	else if (plngMax == 999) {strMessage = "Please provide at least "+IntegerToString(plngMin)+" "+strAnswerText+"."}
	else {strMessage = "Please provide "+IntegerToString(plngMin)+" to "+IntegerToString(plngMax)+" answers."};

	if (plngMin == 1 && plngMax == 1) {strMessage = "Please provide an answer."};	

	if (!(typeof pstrMessage == "undefined" || pstrMessage == "")) {strMessage = pstrMessage};

	lngAnswered = 0
	for (i=0; i < parrTextAnswers.length; i++)	// loop through text objects until plngMax
	{ 
		//alert("parrTextAnswers[i].value = "+parrTextAnswers[i].value)

		if (IsTooLong(parrTextAnswers[i],pstrMessage,1000))
		{
			blnTooLong = true;
			break;			
		}

		if (!IsBlank(parrTextAnswers[i].value,"no"))
		{
			lngAnswered++;
		}
		
		if (lngAnswered > plngMax) {break};
	}

	if (blnTooLong == true)
	{
		return false;
	} 

	if (lngAnswered < plngMin || lngAnswered > plngMax)
	{
		if (!(strMessage == "no")) {alert(strMessage)}; 
		return false;
	} 
	return true;
}

/***********************************************************************
Purpose: 	Converts an integer to a literal string
Author: 	Neal 
Date:		11/01/2001
***********************************************************************/

function IntegerToString(n) {

	if (n > 9)
	{
		// Our style is to not spell out numbers greater than 9
		return n;
	}

	switch(n) {
		case 0: n= ""; break;
		case 1: n= "one"; break;
		case 2: n= "two"; break;
		case 3: n= "three"; break;
		case 4: n= "four"; break;
		case 5: n= "five"; break;
		case 6: n= "six"; break;
		case 7: n= "seven"; break;
		case 8: n= "eight"; break;
		case 9: n= "nine"; break;
		default: n = "Not a Number";
	}
	return n;
}


