/*****************************************************************************\
| commonValidation.js
\*****************************************************************************/

function assignSessionValue(aSessionValues,formNumber,theForm)
{
	var fieldName;	
	var j;
	for (var i=0; i<aSessionValues.length; i++){
		if (aSessionValues[i].fieldName.substr(0,2) == formNumber + "_") {
			fieldName = aSessionValues[i].fieldName.substr(2,aSessionValues[i].fieldName.length);
			
			if (theForm.elements[fieldName] != null) {
				
				if (theForm.elements[fieldName].type == "text") {
					theForm.elements[fieldName].value = getSessionValue(aSessionValues,formNumber + "_" + fieldName);
				} else if (theForm.elements[fieldName].type == "select-one") {
					for(j=0;j<theForm.elements[fieldName].options.length;j++) {
						if (theForm.elements[fieldName].options[j].value == aSessionValues[i].fieldValue) {
							theForm.elements[fieldName].selectedIndex = j;
						}
					}
				} else if (theForm.elements[fieldName].type == "checkbox") {
					if (theForm.elements[fieldName].value.length > 0) {
						theForm.elements[fieldName].checked = true;
					}
				} else {				
					for (var k=0;k<theForm.elements[fieldName].length;k++) {
						
						if (aSessionValues[i].fieldValue == theForm.elements[fieldName][k].value) {
							theForm.elements[fieldName][k].checked = true;
						}
					}
				}
		
			}
		}
	}
}


function toUnicode(elmnt,content,destination)
{
	if (content.length==elmnt.maxLength)
		{
			document.forms[0].elements[destination].focus();
		}
	
}

function getSessionValue(aSessionValues,fieldName)
{
	var sTmp = "";
	for (var i=0; i<aSessionValues.length; i++) {
		if (aSessionValues[i].fieldName == fieldName) {
			sTmp = aSessionValues[i].fieldValue;
		}
	}
	return sTmp;
}


function sessionValue(fieldName,fieldValue){
     this.fieldName = fieldName;
     this.fieldValue = fieldValue;
}



////////////////////
// FLAG CONSTANTS //
////////////////////

var REQ = 2;
var NUM = 4;
var ALPHA = 8;
var EMAIL = 16;
var MONTH = 32;
var DAY = 64;
var YEAR = 128;
var ZIP = 256;
var DOLLAR = 512;
var ALPHANUMERIC = 1024;
var NONREQ = 2048; //this should only exist when REQ is absent
var STANDARDASCII = 4096; //ensures standard/printable ascii characters only
var EXISITINGCUST = true; //Temp variable

//////////////////
//      APP     //
//////////////////

function DisplayMessage(fieldID,displayName,minLength,maxLength,flag){
     this.fieldID = fieldID;
     this.displayName = displayName;
     this.minLength = minLength;
     this.maxLength = maxLength;
     this.flag = flag;
}


//call should be: onkeyup="autotab_toname(event, from_formName.from_formField, 3 (length of field), to_formName.to_formField);" 
if (is_nav4up){
   document.captureEvents(Event.KEYPRESS);
}

function autotab_toname(evt, cur_field, char_max, goto_field){    
	if (is_nav4){
		if (cur_field.value.length >= char_max){
				goto_field.focus();
			}
	}
	if (is_ie4up || is_nav5up){	// Offset fixed in Nav 6
		if (cur_field.value.length > (char_max-1)){
				goto_field.focus();
		}
	}
}

function gel_error_page(tMsg)
{
	//supports arg 1= text height in pixels, arg 2= scrollbars  1 or 0 
	//defaults: textHeight=175 (consequently winHeight=300), scrollbar= empty str

	if ((tMsg == "") || (tMsg == null))
	{
		tMsg="Error message not provided.";
	}
	var tStr="";
	var textHeight=60;
	var winTitle="Incomplete Form"
	if (arguments.length>1)
	{
		textHeight=arguments[1];
	}
	if (arguments.length>3)
	{
		winTitle=arguments[3];
	}

	var winHeight=((parseInt(textHeight))+125);  //use parseInt to force textHeight to be numeric
	var sBars="";
	if (arguments.length>2)
	{
		if (arguments[2])
		{
			sBars=",scrollbars=yes,resizable=yes";
		}
	}
	
	tMsg = escape(tMsg);
	winTitle = escape(winTitle);
	
	var PTop = (screen.height/2)-(winHeight/2)
 	var PLeft = (screen.width/2)-(450/2)
	
	var error_win=window.open('http://www.bellsouth.com/rnr/html/pop_error.html?t=' + winTitle + '&e=' + tMsg,'blsErrorWin',"top=" + PTop + ",left=" + PLeft + ',width=450,height='+ winHeight + sBars + ',alwaysRaised=yes');
	error_win.focus();

}

function gel_error_medium(tMsg)
{
	

	if ((tMsg == "") || (tMsg == null))
	{
		tMsg="Error message not provided.";
	}
	var tStr="";
	var textHeight=80;
	var winTitle="Incomplete Form"
	if (arguments.length>1)
	{
		textHeight=arguments[1];
	}
	if (arguments.length>3)
	{
		winTitle=arguments[3];
	}

	var winHeight=((parseInt(textHeight))+125);  //use parseInt to force textHeight to be numeric
	var sBars="";
	if (arguments.length>2)
	{
		if (arguments[2])
		{
			sBars=",scrollbars=yes,resizable=yes";
		}
	}
	
	tMsg = escape(tMsg);
	winTitle = escape(winTitle);
	
	var PTop = (screen.height/2)-(winHeight/2)
 	var PLeft = (screen.width/2)-(450/2)
	
	var error_win=window.open('/rnr/html/pop_error.html?t=' + winTitle + '&e=' + tMsg,'blsErrorWin',"top=" + PTop + ",left=" + PLeft + ',width=450,height='+ winHeight + sBars + ',alwaysRaised=yes');
	error_win.focus();

}
function gel_error_tall(tMsg)
{
	

	if ((tMsg == "") || (tMsg == null))
	{
		tMsg="Error message not provided.";
	}
	var tStr="";
	var textHeight=220;
	var winTitle="Incomplete Form"
	if (arguments.length>1)
	{
		textHeight=arguments[1];
	}
	if (arguments.length>3)
	{
		winTitle=arguments[3];
	}

	var winHeight=((parseInt(textHeight))+125);  //use parseInt to force textHeight to be numeric
	var sBars="";
	if (arguments.length>2)
	{
		if (arguments[2])
		{
			sBars=",scrollbars=yes,resizable=yes";
		}
	}
	
	tMsg = escape(tMsg);
	winTitle = escape(winTitle);
	
	var PTop = (screen.height/2)-(winHeight/2)
 	var PLeft = (screen.width/2)-(450/2)
	
	var error_win=window.open('/rnr/html/pop_error.html?t=' + winTitle + '&e=' + tMsg,'blsErrorWin',"top=" + PTop + ",left=" + PLeft + ',width=450,height='+ winHeight + sBars + ',alwaysRaised=yes');
	error_win.focus();

}


function getLayerIDValue(){
    var contentLayerId
    if (is_ie || is_nav5up){
        form=document.paymentProfileForm;                                                                 
    }else{
        for(i=0; i < document.layers.length; i++){
            test=document.layers[i].id;
                if(test=="content580"){
                contentLayerId="content580";
                break;
        }else if(test=="contentWide"){
            contentLayerId="contentWide";
            break;
        }else if(test=="content"){
            contentLayerId="content"; 
            break;
        }else if(test=="leftNav"){
            contentLayerId="leftNav";
            break;
        }else{
            contentLayerId="loopagain"; 
        }
    }//for loop
        form=document.layers[contentLayerId].document.mainForm;
    }//else loop
    return form;
}//end function

// Checks string to ensure that data exists. Also checks to ensure data presented is not just spaces
function isEmpty(str){
	if (str == null){
		return false;
	}
	for (var intLoop = 0; intLoop < str.length; intLoop++){
		if (" " != str.charAt(intLoop)){
			return false;		    
		}
	}
	return true;
}

function isLineBreak(str){ // checks the loop hole in isEmpty() where a carriage return is accepted as data entry in a text area
	if (str == null){
		return false;
	}
	for (var i = 0; i < str.length; i++){
	    if (" " != str.charAt(i)){
            if ((str.charCodeAt(i) != 10) && (str.charCodeAt(i) != 13)){			
			    return false;		    
		    }	
	    }
	}
	return true;
}		

// returns true if a checkbox is checked
function isChecked(field){
    var tempVal=field.value
	if (field.checked) {
		return true;
	} else {
		return false;
	}
}
		
// Checks email format '@' and .
function checkEMail(field){
	var str = field.value;
	var strLen = str.length;
	if (isEmpty(str)) return true;
	var pattern = /^[\w\._-]+@[\w\._-]+(\.\w{2,4})$/; //(2,4) indicates min,max range of length of extension
	var result = pattern.test(str);
	  for(var i=0; i<strLen; i++){
	    var tempFlag = str.charAt(i); 	    
	    if(tempFlag == '.' || tempFlag =='@'){
		  if(i==0){ //throws an error if e-mail address begins with a .
		    result = false;	
		  }	  
	      if(str.charAt(i-1)=='.'){ // throws an error if the char before is a .
	        result = false;
	      }
	      if(str.charAt(i+1)=='.'){ // throws an error if the char after is a .
	        result = false;
	      }
		}
      }	  
	  if (result == false){
		field.focus();
		var message="The e-mail address must be in 'name@domain.ext' format.";
		gel_error_page(message);
	}
	return result;
}

// iterates through radio button array and finds value
function getRadioButtonvalue(radio){
    for (var i=0; i<radio.length; i++){    
        var temp=radio[i].checked;
        if(temp){
        var buttonValue = radio[i].value;
        break;
        }
    }
    return buttonValue;
}


// iterates through select list array and finds value
function getSelectValue(selectlist){
	if (selectlist.selectedIndex < 0) {
	    	return "";
	} else {
    		return selectlist.options[selectlist.selectedIndex].value;	
	}
}



// Checks to see if entered value is in dollar format
function checkDollar(field){
	var str = field.value;
	if (isEmpty(str)) return true;
	var pattern = /^(\d+(.\d{2})?)$/;
	var result = pattern.test(str);
	if (result == false){
		field.focus();
		var message="Please enter a dollar amount with up to 2 decimal places.\n  ex: 49.95";
		gel_error_page(message);
	}
	return result;
}

// Checks to see if all entered values are alpha characters
function checkAlpha(field, displayName){
	var str = field.value;
	if (isEmpty(str)) return true;
	var pattern = /^[A-Za-z]+$/;
	var result = pattern.test(str);
	if (result == false){
		field.focus();
		var message="The "+displayName+" can only contain the letters A-Z and a-z.";
		gel_error_page(message);
	}
	return result;
}

// Checks to see if all entered values are numeric
function checkNumeric(field, displayName){
	var str = field.value;
	if (isEmpty(str)) return true;
	var result = !(isNaN(str));
	  if (result == false){
		field.focus();
		var message="The "+displayName+" can only contain numeric digits.";
		gel_error_page(message);
	  }
	return result;
}

// Validate a field with alphanumeric only, no special characters STRICT
function checkAlphaNumericStrict(field, displayName){
  var alphaFlag = false;
  var numericFlag = false;
  var str = field.value;
  var strLen = str.length;
  var AlphaPattern = /^[A-Za-z]+$/;
    for(var i=0; i<strLen; i++){
	  var tempVal = str.charAt(i);
	  if(tempVal == " "){
	      field.focus();
          var message="The "+displayName+" can only contain alphabetic characters and/or numbers.";
	      gel_error_page(message);
	      return(false);;
	  }	
	  var alphaResult = AlphaPattern.test(tempVal);
	  var numericResult =! (isNaN(tempVal));
	    if(alphaResult != false){
		  var alphaFlag = true;
		}
		else if(numericResult != false){
		  var numericFlag = true;
		}
		else{
	      field.focus();
          var message="The "+displayName+" can only contain alphabetic characters and/or numbers.";
	      gel_error_page(message);
	      return(false);
		}
	} //for loop	
	return true;	
}

// Check a day to ensure it is valid for the given month and in a two-digit format. Takes leap year into consideration when validating
function checkDay(day, month, year){  
	if (isEmpty(day.value)) return true;
    var tempDay = parseInt(day.value);
    var tempMonth = parseInt(month.value);
    var tempYear = parseInt(year.value);
    var monthMaxDays = new Array(31,31,29,31,30,31,30,31,31,30,31,30,31)

    if(isNaN(tempDay)){
	 	day.focus();
        var message="Please enter a valid day.\n  ex: 04";
	    gel_error_page(message);
		return(false);
    }
	
	var pattern = /^\d{2}$/;
	var result = pattern.test(day.value);
	if (result == false){		
	 	day.focus();
        var message="Please enter a valid day.\n  ex: 04";
	    gel_error_page(message);
		return(false);
	}

    if(tempDay > monthMaxDays[tempMonth]){
	    day.focus();
        var message="that is not a valid day for the month you have selected.";
	    gel_error_page(message);
	    return(false);
    }

    if(tempMonth == "02" && tempDay == "29"){
        if(tempYear % 4 != 0){ // leap year logic
	    day.focus();
        var message="that is not a valid day for the month you have selected.";
	    gel_error_page(message);
	    return(false);
        }
    }else return true;
}

// checks to see if value entered is a valid month
function checkMonth(field){
	var str = field.value;
	if (isEmpty(str)) return true;
	var pattern = /^(01|02|03|04|05|06|07|08|09|10|11|12)$/;
	var result = pattern.test(str);
	if (result == false){
		field.focus();
        var message="Please enter a valid month.\n  ex: 04";
	    gel_error_page(message);
	}
	return result;
}

// checks to see if value entered is a valid year
function checkYear(field){
	var str = field.value;
	if (isEmpty(str)) return true;
	var pattern = /^((19|20)\d{2})$/;
	var result = pattern.test(str);
	if (result == false){
		field.focus();
        var message="Please enter a valid year using all 4 digits.\n  ex: 2000";
	    gel_error_page(message);
	}
	return result;
}

// Check a zip code field for either 99999 format.
function checkZip(zip){
	if (isEmpty(zip.value)) return true;
	var pattern5 = /^\d{5}$/;
	var pattern54 = /^\d{5}-\d{4}$/;
	if (pattern5.test(zip.value) || pattern54.test(zip.value)){
		return(true);
	}
	zip.focus();
    var message="Zip code must be in a five or nine digit format (example:'99999' or '99999-9999').";
	gel_error_page(message);
	return(false);
}

// Check a phone number NPA for blank, length and numeric only
function isNPA(npa, displayName){
    var pattern3 = /^\d{3}$/;
	if (isEmpty(npa.value)){
	  npa.focus();
      var message="Please enter the "+displayName+".";
	  gel_error_page(message);
	  return (false);
	}else if (!pattern3.test(npa.value)){
	  npa.focus();
      var message="The "+displayName+ " must be 3 digits.";
	  gel_error_page(message);
	  return (false);
	}else{
	  return true;
	}
}

// Check a phone number NXX for blank, length and numeric only
function isNXX(nxx, displayName){
	if (isEmpty(nxx.value)){
	  nxx.focus();
      var message="Please enter the "+displayName+".";
	  gel_error_page(message);
	  return (false);
	}
	var pattern3 = /^\d{3}$/;
	if (!pattern3.test(nxx.value)){
	  nxx.focus();
      var message="The "+displayName+ " must be 3 digits.";
	  gel_error_page(message);
	  return (false);
	}
	return true;
}

// Check a phone number NXX for blank, length and numeric only
function isEXT(ext, displayName){
	if (isEmpty(ext.value)){
	  ext.focus();
      var message="Please enter the "+displayName+".";
	  gel_error_page(message);
	  return (false);
	}
	var pattern3 = /^\d{4}$/;
	if (!pattern3.test(ext.value)){
	  ext.focus();
      var message="The "+displayName+ " must be 4 digits.";
	  gel_error_page(message);
	  return (false);
	}
	return true;
}

function checkAscii(str){ // checks the loop hole in isEmpty() where a carriage return is accepted as data entry in a text area
	if (str == null){
		return false;
	}
	var tempObj = str.value;	
	for (var i = 0; i < tempObj.length; i++){
	    if (" " != tempObj.charAt(i)){
            if ((tempObj.charCodeAt(i) < 32) || (tempObj.charCodeAt(i) > 126)){	   			             
	            str.focus();
                var message="This field accepts standard characters only.";
	            gel_error_page(message);
	            return(false);		    
		    }	
	    }
	}
	return true;
}	



/******************************************************************************
* checkAlphaNumeric
*******************************************************************************
* Only allows Numbers, Letters, and spaces 
******************************************************************************/
function checkAlphaNumeric(field, displayName){
	var alphaFlag = false;
	var numericFlag = false;
	var str = field.value;
	var strLen = str.length;
	var AlphaPattern = /^[A-Za-z\s'0-9-.,]+$/;
    	for(var i=0; i<strLen; i++){
	  	var tempVal = str.charAt(i);
	  	if(tempVal != " "){
			var alphaResult = AlphaPattern.test(tempVal);
			var numericResult =! (isNaN(tempVal));
			if(alphaResult != false){
				var alphaFlag = true;
			} else if(numericResult != false) {
				var numericFlag = true;
			} else{
				field.focus();
				var message="The "+displayName+" can only contain alphabetic characters and numbers.";
				gel_error_page(message);
				return(false);
			}
	  	}	

	} //for loop	
	return true;	
}
/*****************************************************************************/

/******************************************************************************
* checkSize(fieldValue,minLength,maxLength)
* ++ Performs a more specific validation such as NUM, EMAIL, ZIP, etc
******************************************************************************/
function checkSize(aField,displayName,minLength,maxLength) {

	var valid = true;
	var elementLength = aField.value.length;
	if(minLength == maxLength && minLength > 0) {
		
		

		if(elementLength != minLength){
			aField.focus();

			var message="The "+displayName+" must be exactly "+minLength+" characters long.";
			
			gel_error_page(message);
			valid = false;			
			
		}			
	}

	if(minLength > 0 && valid){ // tests for minimum length    
		
		if(elementLength < minLength){
			aField.focus();
			var message="The "+displayName+" must be at least "+minLength+" characters long.";
			gel_error_page(message);
			valid = false;
		}
	}	
	if(maxLength > 0 && valid){ // tests for maximum length    
		
		if(elementLength > maxLength){
			aField.focus();
			var message="The "+displayName+" has exceeded the "+maxLength+" character limit.";
			gel_error_page(message);
			valid = false;
		}
	}	
	return valid;
}


/******************************************************************************
* checkSpecFlags(mainForm)
* ++ Performs a more specific validation such as NUM, EMAIL, ZIP, etc
******************************************************************************/
function checkSpecFlags(mainForm){ 
    var valid = true;
    for (var i=0; i<fieldName.length; i++){
    	var tempObj = fieldName[i].flag;
    	var displayName = fieldName[i].displayName;

	var minLength 	= fieldName[i].minLength;
	var maxLength 	= fieldName[i].maxLength;    	
    	var required	= mainForm.elements[fieldName[i].fieldID];

	if (valid){
		if(required.type == "text" && tempObj != REQ && tempObj != NONREQ){   

			if(!isEmpty(required.value)){	
				if (minLength != 0 && maxLength != 0) {		
					valid = valid && checkSize(required,displayName,minLength,maxLength);			    	
				}
			} 
		 }
	} else break;
	
	
      	if(valid){

		if (tempObj == NUM){
      			valid = valid && checkNumeric(mainForm.elements[fieldName[i].fieldID],displayName);
      		}
		if (tempObj == ALPHA){
      			valid = valid && checkAlpha(mainForm.elements[fieldName[i].fieldID],displayName);
		} 
		if (tempObj == EMAIL){
      			valid = valid && checkEMail(mainForm.elements[fieldName[i].fieldID]);
		}
		if (tempObj == MONTH){
      			valid = valid && checkMonth(mainForm.elements[fieldName[i].fieldID]);
		}
		if (tempObj == DAY){
      			valid = valid && checkDay(mainForm.elements[fieldName[i].fieldID],mainForm.elements[fieldName[i-1].fieldID],mainForm.elements[fieldName[i+1].fieldID]);          
		}
		if (tempObj == YEAR){
      			valid = valid && checkYear(mainForm.elements[fieldName[i].fieldID]);
		}
		if (tempObj == ZIP){
      			valid = valid && checkZip(mainForm.elements[fieldName[i].fieldID]);
		}
		if (tempObj == DOLLAR){
      			valid = valid && checkDollar(mainForm.elements[fieldName[i].fieldID]);
		}
		if (tempObj == ALPHANUMERIC){
      			valid = valid && checkAlphaNumeric(mainForm.elements[fieldName[i].fieldID],displayName);
		}
		if (tempObj == STANDARDASCII){
      			valid = valid && checkAscii(mainForm.elements[fieldName[i].fieldID],displayName);
		}
	  } else break;	  
	  
    }
return valid;
}
/*****************************************************************************/

/******************************************************************************
* checkNonRequired(required,displayName,minLength,maxLength)
* ++ high level non required validation - works only on text fields. If field is not empty it will validate 
* ++ minLength and maxLength and it will check any specFlags as well (i.e. NUM, ALPHA, etc)
******************************************************************************/
function checkNonRequired(required,displayName,minLength,maxLength){ 
    	var valid = true;
    	// tests for a text field    
    	if(required.type == "text"){
		if(!isEmpty(required.value)){		
          		if(minLength > 0){ // tests for minimum length    
            			var elementLength = required.value.length;
		      		if(elementLength < minLength){
					required.focus();
					var message="The "+displayName+" must be at least "+minLength+" characters long.";
					gel_error_page(message);
					return(false);
	          		}
          		}	
          		if(maxLength > 0){ // tests for maximum length    
				var elementLength = required.value.length;
				if(elementLength > maxLength){
					required.focus();
					var message="The "+displayName+" has exceeded the "+maxLength+" character limit.";
					gel_error_page(message);
					return(false);
			  	}
          		}
        	} 
   	 }	
   	 return true;
}
/*****************************************************************************/

/******************************************************************************
* checkReqFlags(mainForm)
* ++ high level validation ensures data has been entered in field strings
******************************************************************************/
function checkRequired(required,displayName,minLength,maxLength){ 
    	var valid = true;



	// tests for a text field  
    	if(required.type == "text" )
	{ 

		if(isEmpty(required.value))
		{
			if(required.disabled == false)
			{
				required.focus();
				var message="Please enter the "+displayName+".";
				gel_error_page(message);
				return(false);
			}
			else
			{
				return true;
			}
		}
		
	}
 	  
 	if(required.type == "textarea"){ // tests for a text area
		if(isEmpty(required.value)){
			required.focus();
			var message="Please enter the "+displayName+".";
			gel_error_page(message);
			return(false);
        	} 
		if(isLineBreak(required.value)){
			required.focus();
			var message="Please enter the "+displayName+".";
			gel_error_page(message);
			return(false);
        	}
    	}
    if(required.type == "file"){ // tests for a file browse type
		if(isEmpty(required.value)){
		    required.focus();
            var message="Please enter the "+displayName+".";
	        gel_error_page(message);
            return(false);
        } 
    }	
    if(required.type == "password"){ // tests for a password
		if(isEmpty(required.value)){
		    required.focus();
            var message="Please enter the "+displayName+".";
	        gel_error_page(message);
            return(false);
        } 
    }	
    if(required.type == "select-one"){
		var tempObj = required.options[required.selectedIndex].value;
		if(tempObj == "" || tempObj == "0")
		{
			
		    	required.focus();
           		var message="Please select a "+displayName+".";
	        	gel_error_page(message);
            	return(false);
			
        } 
		
    }
    if (!required.type){ //test for radio groups
        var tempRadioVal = getRadioButtonvalue(required);
        if (!tempRadioVal){
		    required[0].focus();
            var message="Please select "+displayName+".";
	        gel_error_page(message);
            return(false); 
        }
    }
    if(minLength > 0){ // tests for minimum length    
        var elementLength = required.value.length;
		if(elementLength < minLength){
		    required.focus();
            var message="The "+displayName+" must be at least "+minLength+" characters long.";
	        gel_error_page(message);
            return(false);
	    }
    }	
    if(maxLength > 0){ // tests for maximum length    
        var elementLength = required.value.length;
		if(elementLength > maxLength){
		    required.focus();
            var message="The "+displayName+" has exceeded the "+maxLength+" character limit.";
	        gel_error_page(message);
            return(false);
	    }
    }	
    return true;
}
/*****************************************************************************/

/******************************************************************************
* checkReqFlags(mainForm)
******************************************************************************/
function checkReqFlags(mainForm){


    var valid = true;
    for (var i=0; i<fieldName.length; i++){
    	var tempObj 	= fieldName[i].flag;
    	var displayName = fieldName[i].displayName;
	var minLength 	= fieldName[i].minLength;
	var maxLength 	= fieldName[i].maxLength;
	
     	if (valid) 
        {
	    	if (tempObj == REQ)
	    	{
	    		valid = checkRequired(mainForm.elements[fieldName[i].fieldID],displayName,minLength,maxLength);
      	    	}
		if (tempObj == NONREQ)
		{
      		    	valid = checkNonRequired(mainForm.elements[fieldName[i].fieldID],displayName,minLength,maxLength);
      	    	}
	} else {
		break;
	}
    }
    return valid;
}
/*****************************************************************************/