function FDK_AddValidatePhone (FrmName, NmLen, objName, reqFld)
{
var ValString = "FDK_ValidatePhone('" + NmLen +"','" + objName + "','" +reqFld+  "')" ;
FDK_AddToValidateArray (FrmName,'',ValString,'false');
}

function FDK_ValidatePhone(strlen, objName, reqFld)
{

var msg ;
msg = "" ;

if (eval (objName + ".value"))
varVal = eval (objName + ".value");
else
varVal = "NULL";


if (reqFld | varVal !="NULL")
{
//if is the right length and numbers
if (varVal.length == strlen && isInteger(varVal))
msg = "";
else
  { eval (objName + ".focus()");
  msg = "Check Phone Number"; }
}//if required
return msg;
}


function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {

        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }

    return true;
}

function FDK_AddValidateParticipants (FormName)
{
var ValString = "FDK_ValidateParticipants('"+FormName+"')" ;
FDK_AddToValidateArray (FormName,'',ValString,'false');

}

function FDK_ValidateParticipants (FormName)
{

var ElementValue1;
var ElementValue2;
var ElementValue3;
var i, x;
var msg;
msg = "";

for (i = 2; i < 11; i++)
 { 
ElementValue1 = eval ("document." + FormName +".participant"+ i +"_first"+ ".value");
ElementValue2 = eval ("document." + FormName +".participant"+ i +"_last"+ ".value");


for (x=0;x<3;x++)
{

 if ((eval ("document." + FormName +".participant"+ i +"_type["+x+"].checked")))
  {
   ElementValue3 = eval ("document." + FormName +".participant"+ i +"_type["+x+"].checked");

  }
}


 if (ElementValue1 || ElementValue2)
	{

   if (!ElementValue2)
   {
   eval ("document." + FormName +".participant"+ i +"_last"+ ".focus()");
   msg = "fill out last name for participant " + i;
   break;
   }
   else if (!ElementValue1)
   {
   eval ("document." + FormName +".participant"+ i +"_first"+ ".focus()");
   msg = "fill out first name for participant " + i;
   break ;
   }
   else if (!ElementValue3)
   {
   eval ("document." + FormName +".participant"+ i + "_type[1].focus()");
     msg = "select a session type for participant " + i;
   break ;
   }
   
	ElementValue1 = "";
	ElementValue2 = "";
	ElementValue3 = "";
	}
 }
return msg;
}



function FDK_Validate(FormName, stopOnFailure, AutoSubmit, ErrorHeader)
{
 var theFormName = FormName;
 var theElementName = "";
 if (theFormName.indexOf(".")>=0)  
 {
   theElementName = theFormName.substring(theFormName.indexOf(".")+1)
   theFormName = theFormName.substring(0,theFormName.indexOf("."))
 }
 var ValidationCheck = eval("document."+theFormName+".ValidateForm")
 if (ValidationCheck)  
 {
  var theNameArray = eval(theFormName+"NameArray")
  var theValidationArray = eval(theFormName+"ValidationArray")
  var theFocusArray = eval(theFormName+"FocusArray")
  var ErrorMsg = "";
  var FocusSet = false;
  var i
  var msg
    
 
        // Go through the Validate Array that may or may not exist
        // and call the Validate function for all elements that have one.
  if (String(theNameArray)!="undefined")
  {
   for (i = 0; i < theNameArray.length; i ++)
   {
    msg="";
    if (theNameArray[i].name == theElementName || theElementName == "")
    {
      msg = eval(theValidationArray[i]);
    }
    if (msg != "")
    {
     ErrorMsg += "\n"+msg;                   
     if (stopOnFailure == "1") 
     {

     if ((theFocusArray[i]==true) && !FocusSet)
      {

       FocusSet=true;
       theNameArray[i].focus();
      }

      alert(ErrorHeader+ErrorMsg);
      document.MM_returnValue = false; 
      break;
     }
     else  
     {
      if (theFocusArray[i] && !FocusSet)  
      {
       FocusSet=true;
       theNameArray[i].focus();
      }
     }
    }
   }
  }
  if (ErrorMsg!="" && stopOnFailure != "1") 
  {
   alert(ErrorHeader+ErrorMsg);
  }
  document.MM_returnValue = (ErrorMsg==""); 
  if (document.MM_returnValue && AutoSubmit)  
  {
   eval("document."+FormName+".submit()")
  }
 }
}
function FDK_StripChars(theFilter,theString)
{
 var strOut,i,curChar
 strOut = ""
 for (i=0;i < theString.length; i++)
 {  
  curChar = theString.charAt(i)
  if (theFilter.indexOf(curChar) < 0) // if it's not in the filter, send it thru
   strOut += curChar  
 } 
 return strOut
}
function FDK_AddToValidateArray(FormName,FormElement,Validation,SetFocus)
{
    var TheRoot=eval("document."+FormName);
 
    if (!TheRoot.ValidateForm) 
    {
        TheRoot.ValidateForm = true;
        eval(FormName+"NameArray = new Array()")
        eval(FormName+"ValidationArray = new Array()")
        eval(FormName+"FocusArray = new Array()")
    }
    var ArrayIndex = eval(FormName+"NameArray.length");
    eval(FormName+"NameArray[ArrayIndex] = FormElement");
    eval(FormName+"ValidationArray[ArrayIndex] = Validation");
    eval(FormName+"FocusArray[ArrayIndex] = SetFocus");
 

}
function FDK_ValidateNonBlank(FormElement,ErrorMsg)
{
  var msg = ErrorMsg;
  var val = FormElement.value;  
  if (!(FDK_StripChars(" \n\t\r",val).length == 0))
  {
     msg="";
  }
  return msg;
}
function FDK_AddNonBlankValidation(FormName,FormElementName,SetFocus,ErrorMsg)  {
  var ValString = "FDK_ValidateNonBlank("+FormElementName+","+ErrorMsg+")"
  FDK_AddToValidateArray(FormName,eval(FormElementName),ValString,SetFocus)
}
function FDK_ValidateAlphaNum(FormElement,Required,ErrorMsg)
{
 var msg = "";
 var i, m, s, firstNonWhite
 var theString = FormElement.value;
  var msgInvalid = ErrorMsg;
 if (FDK_StripChars(" ",theString).length == 0)      {
  if (!Required)       {
          return "";  
        }
  else       {
          return msgInvalid;
        }
    }
 //Strip spaces off of the sides of the string
  theString = FDK_Trim(theString);
    for (var n=0; n<theString.length; n++)     {
      theChar = theString.substring(n,n+1);
      if (!FDK_AllInRange("0","9",theChar) && !FDK_AllInRange("A","Z",theChar.toUpperCase()) && !(theChar == " "))     {
        return msgInvalid;
      }
    }
    return "";
}
function FDK_Trim(theString)
{
 var i,firstNonWhite
 if (FDK_StripChars(" \n\r\t",theString).length == 0 ) return ""
 i = -1
 while (1)
 {
  i++
  if (theString.charAt(i) != " ")
   break 
 }
 firstNonWhite = i
 //Count the spaces at the end
 i = theString.length
 while (1)
 {
  i--
  if (theString.charAt(i) != " ")
   break 
 } 
 return theString.substring(firstNonWhite,i + 1)
}
function FDK_AllInRange(x,y,theString)
{
 var i, curChar
 
 for (i=0; i < theString.length; i++)
 {
  curChar = theString.charAt(i)
  if (curChar < x || curChar > y) //the char is not in range
   return false
 }
 return true
}
function FDK_AddAlphaNumericValidation(FormName,FormElementName,Required,SetFocus,ErrorMsg)  {
  var ValString = "FDK_ValidateAlphaNum("+FormElementName+","+Required+","+ErrorMsg+")"
  FDK_AddToValidateArray(FormName,eval(FormElementName),ValString,SetFocus)
}
function FDK_ValidateUSZipCode(FormElement,Required,ErrorMsg)
{
 var msg = ""
 var theString = FormElement.value;
    var msgInvalid = ErrorMsg
 var theLen = FDK_StripChars(" \n\t\r",theString).length
 if (theLen == 0) 
  if (!Required) return ""  
  else return msgInvalid
 theString = FDK_StripChars("- \n\r",theString)  
 if (!FDK_AllInRange("0","9",theString))
 {
  msg = msgInvalid
 }
 else if (theString.length != 5 && theString.length != 9)
 {
  msg = msgInvalid
 }
 if (msg == "")
 {
  if (theString.length == 9)  
   FormElement.value=FDK_reformat(theString,"",5,"-",4)
  else
            FormElement.value=theString
   
 }
 return msg 
}
function FDK_reformat(s)
{
    var arg;
    var sPos = 0;
    var resultString = "";
    for (var i = 1; i < FDK_reformat.arguments.length; i++) {
       arg = FDK_reformat.arguments[i];
       if (i % 2 == 1) 
           resultString += arg;
       else 
       {
           resultString += s.substring(sPos, sPos + arg);
           sPos += arg;
       }
    }
    return resultString;
}
function FDK_AddUSZipCodeValidation(FormName,FormElementName,Required,SetFocus,ErrorMsg)  {
  var ValString = "FDK_ValidateUSZipCode("+FormElementName+","+Required+","+ErrorMsg+")"
  FDK_AddToValidateArray(FormName,eval(FormElementName),ValString,SetFocus)
}
function ValidateInteger(FormElement,Required,Minimum,Maximum,ErrorMsg)
{
 var theString = FormElement.value;
 theString = FDK_StripChars(" ",theString);
 var min = Minimum;
 var max = Maximum;
 var pean = ErrorMsg;
 if (theString.length == 0) 
 {
  if (!Required) return ""  
  else return pean;
 }
 // remove leading zeros (zeros are only leading if there is more than one char)
 while (theString.length > 1 && theString.substring(0,1) == "0")
 {
  theString = theString.substring(1, theString.length);
 }
 var val = parseInt(theString);
 if (isNaN(val)) return pean;
 
 // check for non-digits (and minus sign). Do this by converting number
 // back to a string and comparing it to original string.
 if (val.toString() != theString) return pean;
 
 if (min < max)
 {
  if ((val < min) || (val > max))
  {
   return ErrorMsg;
  }
 }
    
 // reset the entered string after removal of spaces and leading zeros.
 FormElement.value=theString;
 return "";
}
function FDK_AddIntegerValidation(FormName,FormElementName,Required,Minimum,Maximum,SetFocus,ErrorMsg)  {
  var ValString = "ValidateInteger("+FormElementName+","+Required+","+Minimum+","+Maximum+","+ErrorMsg+")"
  FDK_AddToValidateArray(FormName,eval(FormElementName),ValString,SetFocus)
}
function FDK_ValidateEmail(FormElement,Required,ErrorMsg)
{
   var msg = "";
   var val = FormElement.value;
   var msgInvalid = ErrorMsg;
   var theLen = FDK_StripChars(" ",val).length
   if (theLen == 0)      {
     if (!Required) return "";
     else return msgInvalid;
   }
   if (val.indexOf("@",0) < 0 || val.indexOf(".")<0) 
   {
      msg = msgInvalid;
   }
   return msg;
}
function FDK_AddEmailValidation(FormName,FormElementName,Required,SetFocus,ErrorMsg)  {
  var ValString = "FDK_ValidateEmail("+FormElementName+","+Required+","+ErrorMsg+")"
  FDK_AddToValidateArray(FormName,eval(FormElementName),ValString,SetFocus)
}
function FDK_ValidateRadio(RadioGroup,ErrorMsg)
{
 var msg = ErrorMsg;
    for (x=0;x<RadioGroup.length;x++)  {
  if (RadioGroup[x].checked)  {
   msg=""
  } 
 }
 return msg;
}
function FDK_AddRadioValidation(FormName,FormElementName,SetFocus,ErrorMsg)  {
  var ValString = "FDK_ValidateRadio("+FormElementName+","+ErrorMsg+")"
  FDK_AddToValidateArray(FormName,eval(FormElementName + '[0]'),ValString,SetFocus)
}
function FDK_ValidateSelectionMade(FormElement,ErrorMsg)
{
  msg = "";
  var iPos = FormElement.selectedIndex;
  if ((iPos<=0 && FormElement.size<=1) || (iPos<0))
  {
    msg = ErrorMsg;
  }
  return msg;
}
function FDK_AddSelectionMadeValidation(FormName,FormElementName,SetFocus,ErrorMsg)  {
  var ValString = "FDK_ValidateSelectionMade("+FormElementName+","+ErrorMsg+")"
  FDK_AddToValidateArray(FormName,eval(FormElementName),ValString,SetFocus)
}

