//-- -------------------------------------------------------------------------
//$Header:   //dccsofs04/AGC_CM/PVCS/VM/IRS_GOV/archives/Appl_Development/Project_Files/eForms/8871_8872/webapp/resources/javascript/formValidation.js-arc   1.9   Jun 07 2006 13:40:52   andrew_rapp  $                                                            
// Revision				$Revision:
// Author: 				Accenture
// Private/Proprietary:	No disclosure outside IRS.gov except by written
//						agreement.
//
// History:
// Version		Date		Programmer		Description of Change
// ----------------------------------------------------------------------------
// 1.0			5/1/03		VS Koo			Initial Issue
// ----------------------------------------------------------------------- --%>

//-- Web Page Form Validation Framework Javascript --

//---
// error message functions
//---

function setErrorMsg( sTotalMsg, sMsg )
{
  if( sMsg != true )
  {
    return( sTotalMsg + sMsg );
  }
  return sTotalMsg;
}

function getErrorMsg( sMsg, field )
{
  var validFormElement = document.getElementById( field );
  // default the error display to be the name
  var displayLabel = validFormElement.name;
  var validFormLabel = document.getElementById( "label_" + field );
  if ( validFormLabel )
  {
     displayLabel = validFormLabel.value;  
  }
  
  return "<li><a href=\"javascript:setFocus('" + field + "')\">" + displayLabel + "</a><span class=\"formErrorText\"> - " + sMsg + "</span></li>";
}

function setFocus( obj )
{
  if ( obj )
  {
    var focusElement = document.getElementById( obj );
    focusElement.focus();
  }
}

function displayErrors( sErrMsg )
{
  var sMsg = new String;
  oMsg = document.getElementById( "errorMsg" );
  if ( sErrMsg == "" )
  {
    oMsg.innerHTML = "";
    return true;
  }
  sMsg += "<hr noshade size=\"1\">";
  sMsg += sErrMsg;
  sMsg += "<hr noshade size=\"1\">";
  if ( oMsg )
  {
  	oMsg.innerHTML = sMsg;
  }
  return false;
}

function resetErrors( frm )
{
  var frm2;
  frm2 = eval( "document." + frm );
  for (var i = 0; i< frm2.length; ++i)
  {
    frm2[i].className=null;
    var oLabel = eval( "document.all.label_" + frm2[i].name );
    if ( oLabel ) oLabel.className='formLabel';
  }
}

//---
// individual field validation functions
//---

function isValidName( name )
{
	var PATTERN = /^[A-Z][A-Za-z\s\-\.']+$/;
	if ( name.length > 0 )
	{
		if ( ( name.length > 50 ) || ( !PATTERN.test( name ) ) )
		{
			return false;
		}
	}
	
	return true;
}

function isValidLoginText( loginText )
{
	var PATTERN = /^[A-Za-z0-9]+$/;
	if ( loginText.length > 0 )
	{
		if ( !PATTERN.test( loginText ) )
		{
			return false;
		}
	}
	
	return true;
}

function isValidPassword( password )
{
	var PATTERN = /^[A-Za-z0-9]+$/;
	if ( password.length > 0 )
	{
		if ( !PATTERN.test( password ) )
		{
			return false;
		}
	}
	
	return true;
}

function isValidEmailAddress( email )
{	
	var PATTERN = /^[A-Za-z0-9]+@[A-Za-z0-9\-\_]+.[A-Za-z]+$/;
	if ( email.length > 0 )
	{
		if ( ( email.length > 150 ) || (email.length < 7) || ( !PATTERN.test( email ) ) )
		{
			return false;
		}
	}
	
	return true;
}

function isValid22String( string22 )
{
	var PATTERN = /^[A-Za-z0-9][A-Za-z0-9\s\-\.\,\#\%]+$/;
	if ( string22.length > 0 )
	{
		if ( ( string22.length > 22 ) || ( !PATTERN.test( string22 ) ) )
		{
			return false;
		}
	}
	
	return true;
}

function isValid35String( string35 )
{
	var PATTERN = /^[A-Za-z0-9][A-Za-z0-9\s\-\.\,\#\%]+$/;
	if ( string35.length > 0 )
	{
		if ( ( string35.length > 35 ) || ( !PATTERN.test( string35 ) ) )
		{
			return false;
		}
	}
	
	return true;
}	

function isValid70String( string70 )
{
	var PATTERN = /^[A-Za-z0-9][A-Za-z0-9\s\-\.\,\#\%]+$/;
	if ( string70.length > 0 )
	{
		if ( ( string70.length > 70 ) || ( !PATTERN.test( string70 ) ) )
		{
			return false;
		}
	}
	
	return true;
}	

function isValid50String( string50 )
{
	var PATTERN = /^[A-Za-z0-9][A-Za-z0-9\s\-\.\,\#\%]+$/;
	if ( string50.length > 0 )
	{
		if ( ( string50.length > 50 ) || ( !PATTERN.test( string50 ) ) )
		{
			return false;
		}
	}
	
	return true;
}	


function isValid70FewerRestrictionString( string70 )
{
	var PATTERN = /^[^\s^\|^\<^\>][^\|^\<^\>.]*$/;
	
	if ( string70.length > 0 )
	{
		if ( ( string70.length > 70 ) || ( !PATTERN.test( string70 ) ) )
		{
			return false;
		}
	}
	
	return true;
}	

function isValid50FewerRestrictionString( string50 )
{
	var PATTERN = /^[^\s^\|^\<^\>][^\|^\<^\>.]*$/;
	if ( string50.length > 0 )
	{
		if ( ( string50.length > 50 ) || ( !PATTERN.test( string50 ) ) )
		{
			return false;
		}
	}
	
	return true;
}	

function isValid50AlphaString( string50 )
{
	var PATTERN = /^[A-Za-z][A-Za-z\s\-\.\,]+$/;
	if ( string50.length > 0 )
	{
		if ( ( string50.length > 50 ) || ( !PATTERN.test( string50 ) ) )
		{
			return false;
		}
	}
	
	return true;
}	

function isValid30String( string30 )
{
	var PATTERN = /^[A-Za-z0-9][A-Za-z0-9\s\-\.\,\#\%]+$/;
	if ( string30.length > 0 )
	{
		if ( ( string30.length > 30 ) || ( !PATTERN.test( string30 ) ) )
		{
			return false;
		}
	}
	
	return true;
}	

function isValid512String( string512 )
{
	var PATTERN = /^[A-Za-z0-9][A-Za-z0-9\s\-\.\,\#\%]+$/;
	if ( string512.length > 0 )
	{
		if ( ( string512.length > 512 ) || ( !PATTERN.test( string512 ) ) )
		{
			return false;
		}
	}
	
	return true;
}	

function isValid30FewerRestrictionString( string30 )
{
	var PATTERN = /^[^\s^\|^\<^\>][^\|^\<^\>.]*$/;
	if ( string30.length > 0 )
	{
		if ( ( string30.length > 30 ) || ( !PATTERN.test( string30 ) ) )
		{
			return false;
		}
	}
	
	return true;
}	

function isValid512FewerRestrictionString( string512 )
{
	var PATTERN = /^[^\s^\|^\<^\>][^\|^\<^\>.]*$/;
	if ( string512.length > 0 )
	{
		if ( ( string512.length > 512 ) || ( !PATTERN.test( string512 ) ) )
		{
			return false;
		}
	}
	
	return true;
}	
function isValidDate( date )
{
	var PATTERN = /^\d{2}\/\d{2}\/\d{4}$/;
	if ( date.length > 0 )
	{
		if( ( date.length != 10 ) || ( !PATTERN.test( date ) ) )
		{
			return false;
		}
	}
	
	return true;
}

function isValidDay( day )
{
	var PATTERN = /^\d{2}$/;
	if ( day.length > 0 )
	{
		if ( ( day.length != 2 ) ||
		     ( !PATTERN.test( day ) ) ||
		     ( day > 31 ) ||
		     ( day < 1 ) )
		{
			return false;
		}
	}
	
	return true;
}

function isValidYear( year )
{
	var PATTERN = /^\d{4}$/;
	if ( year.length > 0 )
	{
		if ( ( year.length != 4 ) ||
		     ( !PATTERN.test( year ) ) ||
		     ( year > 9999 ) ||
		     ( year < 1900 ) )
		{
			return false;
		}
	}
	
	return true;
}

function isValidMonthNumber( month )
{
	var PATTERN = /^\d{2}$/;
	if ( month.length > 0 )
	{
		if ( ( month.length != 2 )  ||
		     ( !PATTERN.test( month ) ) ||
		     ( month > 12 ) ||
		     ( month < 01 ) )
		{
			return false;
		}
	}
	
	return true;
}

// code for function isValidBoolean( bool )

function isValidLetter( letter )
{
	var PATTERN = /^[A-Za-z]$/;
	if ( letter.length > 0 )
	{
		if ( ( letter.length != 1 ) || ( !PATTERN.test( letter ) ) )
		{
			return false;
		}
	}
	
	return true;
}

function isValidDigit5( digit5 )
{
	var PATTERN = /^\d{5}$/;
	if ( digit5.length > 0 )
	{
		if( ( digit5.length != 5 ) || ( !PATTERN.test( digit5 ) ) )
		{
			return false;
		}
	}
	
	return true;
}

function isValidDigit4( digit4 )
{
	var PATTERN = /^\d{4}$/;
	if ( digit4.length > 0 )
	{
		if ( ( digit4.length != 4 ) || ( !PATTERN.test( digit4 ) ) )
		{   
		    	return false;
		}
	}
	
	return true;
}

function isValidDigit9( digit9 )
{
	var PATTERN = /^\d{9}$/;
	if ( digit9.length > 0 )
	{
		if( ( digit9.length != 9 ) || ( !PATTERN.test( digit9 ) ) )
		{
			return false;
		}
	}
	
	return true;
}
