
/** 
 * File Info
 * ----------------------------------
 * @filename     RequiredVerify.js
 * @created      xx.xx.xxxx
 * @author       unknown
 * @description  
 *
 * History
 * ---------------------------------
 * Date         Name      Note
 * 
 */

//RequiredVerify.js

/*
This file checks that all required fields are completed in a form.

place onSubmit="return submitForm('form_name');" in your form header
be sure to pass the form name

also place a hidden input whose value is a list of all the required fields in your table,
named requiredFields

note: if you have two fields with similar names (ie: Title, and JobTitle) - 
if Title is set to be required - JobTitle will also be flagged as required.  
Therefore, use more descriptive naming.

No Spaces in your list - if you put in spaces it will not work!!
ex: <input type="hidden" name="requiredFields" value="LastName,FirstName">
*/

function submitForm(formname)
{
    var formlist = "";
    var missingreq = false;

    var frm = document.forms[formname];
    
    //search for commas in list, and separate
    var regEx = /[,]/
    //separate the list at each comma
    
	var requiredList = frm.requiredFields.value.split(regEx);
	
	list="";

        for(i = 0; i < requiredList.length; i++)
	//loops thru all the fields that are listed as required
	{
		var x = requiredList[i];
		
		for(j = 0; j < frm.elements.length; j++)
		
		//loops thru ALL fields - comparing them to the list of those required
		{
			if(frm.elements[j].name.match(requiredList[i]))
			//if(requiredList[i] == frm.elements[j].name)
			
			//if they match then we determine if it has been filled in or not			
			{
				if (frm.elements[j].type == "text")

      				  {
      				      if (frm.elements[j].value == "")
      				          missingreq = true;
    				    }

   				if (frm.elements[j].type == "radio")
        			{
            			var onechecked = false;
            			for (r = 0; r < frm.elements.length; r++)
           			 {
               			 if (frm.elements[r].name == frm.elements[j].name && frm.elements[r].checked)
                   		 onechecked = true;
           			 }

           			 if (!onechecked)
               			 missingreq = true;
        			}

       				 if (frm.elements[j].type == "select-one")
       				 {
           			 if (frm.elements[j].selectedIndex == 0)
               			 missingreq = true;
       				 }				



			}//end of match if


		}//end of secondary for loop


	}//end of initial for loop
	      
  

    if (missingreq)
    {
        msg = "The form was not submitted because required fields were not filled.\n";
        msg += "         Please fill in all required fields and re-submit.\n";
		
        alert(msg);
        return false;
    }
    
    return true;
}
