//4/24/03 I.Okeke
// all form elements must have DISCRIPTIVE  names!!!
// radio groups must have the same DISCRIPTIVE name, check box group must have the same DISCRIPTIVE name
// FORM fields required:
//email
//senderinfo (hidden)concatenation of all form field data info 
//recepusername (hidden) -- user name of email eg. tech04
//recepdomain (hidden) -- domain email eg. nassaulibrary.org
//topic (hidden) - subject of email
// cgi script used mailgeneric.cgi
// fields to validate validatef (hidden) included fields demilited by :: 




function DisplayError(strField,objForm,strFieldtype )
{
  strField = "" + strField
			    alert("Please enter a valid " +strField )

if(strFieldtype == "radio" || strFieldtype == "checkbox")
	objForm.elements[strField][0].focus()
else
 objForm.elements[strField].focus()

}//end function



//validates text fields only
function ValidateField(strWhat,strValue,objForm ,strFieldtype)
{
  strWhat = "" + strWhat
  strValue = "" + strValue
			   //detect Netscape 4.8 and below
				var agt=navigator.userAgent.toLowerCase();
				var is_nav=((agt.indexOf("mozilla")!=-1) && (agt.indexOf("compatible")==-1));
				var is_minor=parseFloat(navigator.appVersion);
           if ((is_nav==true)&&(is_minor<=4.8) )  //detect Netscape 4.8 and below
            {
				if ((strWhat=="email") &&( strValue == ""  ||  strValue.indexOf("@") == -1 || strValue.indexOf(".") == -1 ) )  
  			 	{
	           		 DisplayError(strWhat,objForm )				
				 	 return false;
				}
                else if(strWhat!="email" &&  strValue == "") //none email
				{					
 	   				DisplayError(strWhat,objForm )
           		    return false;
				}

    	  }
  
	else  //none ns 4.78 below browsers
	{
  		if (strWhat == "email")
   		{


		//email check
	
		     var regPatternemail = /[\d\D]{1,}@[\d\D]{1,}\.\D{2,}/

		

			

			 if (strValue =="" || !regPatternemail.test(strValue))
			{			
				 DisplayError(strWhat,objForm,strFieldtype )
				 return false;

			}


   		}
          else if (strWhat != "email") //none email apha num check
		{


			//alphanum
    			var regPatternalpanum = /[\d\S]{1,}/   

	

		

			if (strValue =="" || !regPatternalpanum.test(strValue)) //not correct format
			{
			
                                    DisplayError(strWhat,objForm,strFieldtype )

					return false;

			}








		}
  
      }
   return true

}// end function


function CheckFields(objForm )
{

var strSenderInfo = "<br><br>"
var strvalidatefields ="", bvalidatefields=false,bCheckEmail=false
if (objForm.elements["validatef"] && objForm.elements["validatef"].value !=""  )//if hidden exists
 bvalidatefields=true
 
 if( bvalidatefields)
   strvalidatefields = objForm.elements["validatef"].value + ""
 
 if( bvalidatefields && strvalidatefields.indexOf("email") !=-1)
  bCheckEmail=true

if(objForm.elements["email"].value + ""  !="")
 bCheckEmail=true
 var strPrevFormFieldName=""


for (var i=0; i < objForm.elements.length; i++)
{

    var objFormElement = objForm.elements[i]
		var objFormElementName = objFormElement .name + ""
		var objFormElementValue = objFormElement .value + ""
	 		

	
	
	
	   
	//alert(objFormElementName)	
	if ( objFormElement.type !="reset"  && objFormElement.type != "submit"  && objFormElement.type != "hidden")
	{
	 if(objFormElementName.toLowerCase() == "undefined")
	   continue
     
	
	  if (objForm.elements[i].type == "radio" ) //radio buttons 
     {
		   if (objFormElementName== strPrevFormFieldName )  
			 		   continue
		 if( bvalidatefields &&  strvalidatefields.indexOf(objFormElementName) != -1)
		{
	   		 if(objForm.elements[i].checked)
		 		strSenderInfo  = strSenderInfo + objFormElementName +": " + objFormElementValue + "<br>"       
			 else			 
				 {
					if(ValidateField(objFormElementName,objFormElementValue,objForm ,objForm.elements[i].type))
					
							 strSenderInfo  = strSenderInfo + objFormElementName +": " + objFormElementValue + "<br>" 
				    else
					{
							strSenderInfo  = strSenderInfo + objFormElementName +": <br>"     
                			return false
							
					}
				}
		

		}
		else
			strSenderInfo  = strSenderInfo + objFormElementName +": " + objFormElementValue + "<br>" 
		
	
				
	} //radio buttons 
	
	
	
	if ( objForm.elements[i].type == "checkbox") //radio buttons or check box
     {	

	     if(objForm.elements[i].checked)
	 		   strSenderInfo  = strSenderInfo + objFormElementName +": " + objFormElementValue + "<br>" 
		  else//not checked
		  {
				 
			if( bvalidatefields &&  strvalidatefields.indexOf(objFormElementName) != -1)
				{
				  if( ValidateField(objFormElementName,objFormElementValue,objForm ,objForm.elements[i].type))
							strSenderInfo  = strSenderInfo + objFormElementName +": " + objFormElementValue + "<br>" 
				  else
          			  return false
				}
				else
				strSenderInfo  = strSenderInfo + objFormElementName +": <br>" 
		}


				
	} //radio buttons or check box
	 else  //for text, select menus
	 {
		
	       
//don't want to validate for every radio or checkbox
			 strPrevFormFieldName =objFormElementName;		 
	   
	if((objFormElementName == "email"  && bCheckEmail) || ( bvalidatefields &&  strvalidatefields.indexOf(objFormElementName) != -1)) 
		  {
				  var bVal = ValidateField(objFormElementName,objFormElementValue,objForm,objForm.elements[i].type )

		     if (bVal )
		       {	

		   		strSenderInfo  = strSenderInfo + objFormElementName +": " + objFormElementValue + "<br>" 
				//alert(strSenderInfo)
              }
			 else
			 {

                return false
			  }	
		  }
		  else
		      strSenderInfo  = strSenderInfo + objFormElementName +": " + objFormElementValue + "<br>" 
	 
     }

		 strPrevFormFieldName=objFormElementName

  } //end if 

  
 } //end for
 

 objForm.elements["senderinfo"].value = strSenderInfo +""

 
 if(bCheckEmail)
 {
 	if ( confirm("Please confirm your email address: " + objForm.elements["email"].value))
			 return true;
	else
	{				
			objForm.elements["email"].select();
			
			objForm.elements["email"].focus();
			
			return false;	
	}	 
 }
 else
objForm.elements["email"].value ="noemailgiven@nassaulibrary.org"


} //end function




