/* Form validation script*/

function isEmailAddr(email)
{
  var result = false;
  var theStr = new String(email);
  var index = theStr.indexOf("@");
  if (index > 0)
  {
    var pindex = theStr.indexOf(".",index);
    if ((pindex > index+1) && (theStr.length > pindex+1))
  result = true;
  }

  return result;
}

function validRequired(formField,fieldLabel)
{
  var result = true;

  if (remove_spaces(formField.value) == "")
  {
    alert('Please enter a value for the "' + fieldLabel +'" field.');
    formField.focus();
    result = false;
  }

  return result;
}

function validRequiredSelection(formField,fieldLabel)
{
  var result = true;

  if (formField.value == "")
  {
    alert('Please select "' + fieldLabel +'"');
    formField.focus();
    result = false;
  }

  return result;
}


function validEmail(formField,fieldLabel,required)
{
  var result = true;

  if (required && !validRequired(formField,fieldLabel))
    result = false;
  
  if (result){
    if (formField.value.length > 0){
		if (((formField.value.length < 3) || !isEmailAddr(formField.value)) )
		{
		  alert("Please enter a complete email address in the form: yourname@yourdomain.com");
		  formField.focus();
		  result = false;
		  
		}
	}	
  }
  return result;

}

function validPhoneAreaCd(formField,fieldLabel,required){

  var result = true;
	
  if (required && !validRequired(formField,fieldLabel))
    result = false;

   if (result)
   {	
		if (formField.value.length > 0){
			if (formField.value.length !=3){
				alert('Please enter a 3 digit number for "' + fieldLabel + '" Area Code');
			    formField.focus();
			    formField.select();
			    result = false;
			    return result;
			}
		}
		
		for (var i = 0; i < formField.value.length; i++) {
		var ch = formField.value.substring(i, i + 1);
			if (ch < "0" || "9" < ch) {
				alert('Please enter a valid number for "' + fieldLabel + '" Area Code');
			    	formField.focus();
			    	formField.select();
			    	result = false;
			    	return result;
			}
		}
	}
	
	return result;
}


function validPhoneLnCd(formField,fieldLabel,required){

  var result = true;
	
  if (required && !validRequired(formField,fieldLabel))
    result = false;

   if (result)
   {
   
		if (formField.value.length > 0){
			if (formField.value.length !=3){
				alert('Please enter a 3 digit number for "' + fieldLabel + '" Line Code');
			    formField.focus();
			    formField.select();
			    result = false;
			    return result;
			}
		}
   
		for (var i = 0; i < formField.value.length; i++) {
		var ch = formField.value.substring(i, i + 1);
			if (ch < "0" || "9" < ch) {
				alert('Please enter a valid number for "' + fieldLabel + '" Line Code');
			    	formField.focus();
			    	formField.select();
			    	result = false;
			    	return result;
			}
		}
	}
	
	return result;
}

function validPhoneExchCd(formField,fieldLabel,required){

  var result = true;
	
  if (required && !validRequired(formField,fieldLabel))
    result = false;

   if (result)
   {
   
		if (formField.value.length > 0){
			if (formField.value.length !=4){
				alert('Please enter a 4 digit number for "' + fieldLabel + '" Exchange Code');
			    formField.focus();
			    formField.select();
			    result = false;
			    return result;
			}
		}
   
		for (var i = 0; i < formField.value.length; i++) {
		var ch = formField.value.substring(i, i + 1);
			if (ch < "0" || "9" < ch) {
				alert('Please enter a valid number for "' + fieldLabel + '" Exchange Code');
			    	formField.focus();
			    	formField.select();
			    	result = false;
			    	return result;
			}
		}
	}
	
	return result;
}


function validNum(formField,fieldLabel,required)
{
  var result = true;

  if (required && !validRequired(formField,fieldLabel))
    result = false;

   if (result)
   {
	if (formField.value.length > 0){

		for (var i = 0; i < formField.value.length; i++) {
		var ch = formField.value.substring(i, i + 1);
			if (ch < "0" || "9" < ch) {
				alert('Please enter a valid number for "' + fieldLabel + '"');
			    	formField.focus();
			    	formField.select();
			    	result = false;
			    	return result;
			}
		}
	
	}
   }

  return result;
}

function validDate(formField,fieldLabel,required)
{
  var result = true;

  if (required && !validRequired(formField,fieldLabel))
    result = false;

   if (result)
   {
	if (formField.value.length > 0){
		dateArray = formField.value.split("/")

		 
		 if( dateArray.length != 3 )
		 {          
			alert('Please enter a date in the format MM/DD/YY for the "' + fieldLabel +'" field.');
			formField.focus();
			return false;
		 }

		 pdate = new Date( dateArray[2], dateArray[0] - 1, dateArray[1] )

		 if( dateArray[0] - 1 != pdate.getMonth() || dateArray[1] != pdate.getDate())
		 {         
			alert('Please enter a date in the format MM/DD/YYYY for the "' + fieldLabel +'" field.');
			formField.focus();
			return false;
		  }     

	}		
  }

  return result;
}

function validDateOld(formField,fieldLabel,required)
{
  var result = true;

  if (required && !validRequired(formField,fieldLabel))
    result = false;

   if (result)
   {
	if (formField.value.length > 0){
			 var elems = formField.value.split("/");

			 result = (elems.length == 3); // should be three components

			 if (result)
			 {
			   var month = parseInt(elems[0]);
			    var day = parseInt(elems[1]);
			   var year = parseInt(elems[2]);
			  result = !isNaN(month) && (month > 0) && (month < 13) &&
			        !isNaN(day) && (day > 0) && (day < 32) &&
			        !isNaN(year) && (elems[2].length == 4);
			 }

			  if (!result)

			 {
			   alert('Please enter a date in the format MM/DD/YYYY for the "' + fieldLabel +'" field.');
			  formField.focus();
			}
	}		
  }

  return result;
}

// Function assumes field already validated for date
function validOver13(formField)
{
  var result = true;

  // Create date object using birth date str
  var birthDate = new Date(formField.value);

  // Create todays date
  var today = new Date();

  // getTime returns date in milliseconds, so need
  // to divide by number of milliseconds in year
  var age = (today.getTime() - birthDate.getTime())
        /(365*24*60*60*1000)


  if (age < 13)
  {
     alert('You must be over age 13 to register.');
     result = false;
  }

  return result;
}

function remove_spaces(strValue){
	if(strValue.length == 0)
	return strValue;
	while(strValue.charAt(0) == ' ')
		strValue = strValue.substring(1,strValue.length);
	return strValue;
}

