// General function that returns false if "fieldname" is empty.
function checkfield(fieldname) {
	var fieldval = (fieldname.value.length == 0) ? false: true;
	return fieldval;
}

// Function that checks for valid E-mail. Returns false if not valid.
function checkemail(fieldname) {
	if (!checkfield(fieldname)) {
		return false;
	}

	invalidchars = " /:,;"
	for (count = 0; count < invalidchars.length; count++) {
		badchar = invalidchars.charAt(count);
		if (fieldname.value.indexOf(badchar,0) > -1) {
			return false;
		}
	}

	atpos = fieldname.value.indexOf("@", 1);
	if (atpos == -1) {
		return false;
	}
	if (fieldname.value.indexOf("@", atpos + 1) > -1) {
		return false;
	}

	periodpos = fieldname.value.indexOf(".", atpos);
	if (periodpos == -1) {
		return false;
	}
	if (periodpos + 3 > fieldname.value.length) {
		return false;
	}
	return true;
}

function checkesurvey(f) {

	var nameval = checkfield(f.Name);
	var addressval = checkfield(f.Address);
	var cityval = checkfield(f.City);
	var prov = checkfield(f.Province);
	var postal = checkfield(f.PostalCode);

	var formvalid = true;
	var focusfield = "";
	var errormsg = "Veuillez ecrire l'information suivante:\n\n";

	if (!nameval) {
		formvalid = false;
		errormsg = errormsg + '  - full name.\n';
		focusfield = f.name;
	}
	
	if (!addressval) {
		formvalid = false;
		errormsg = errormsg + '  - address.\n';
		focusfield = f.address;
	}
	if (!cityval) {
		formvalid = false;
		errormsg = errormsg + '  - city.\n';
		focusfield = f.city;
	}
	
	if (!prov) {
		formvalid = false;
		errormsg = errormsg + '  - province.\n';
		focusfield = f.telephone;
	}
	
	if (!postal) {
		formvalid = false;
		errormsg = errormsg + '  - postal code.\n';
		focusfield = f.skillTest;
	}
	
	if ( formvalid ) {
		return true;
	} else {
		alert(errormsg);
		return false;
	}
}


 // check checkrecipe
function checkrecipe(f) {
	
	
	var categoryval = checkmultiselect(f.elements[3]);
	var productval = checkmultiselect(f.elements[4]);
	var recipenameval = checkfield(f.elements[5]);
	var recipedetailval = checkfield(f.elements[6]);
	var servingsizeval = checkfield(f.elements[7]);
	var ownernameval = checkfield(f.elements[9]);
	var ownercityval = checkfield(f.elements[10]);
	
	
	var formvalid = true;
	var focusfield = "";
	
	var errormsg = "French: The following errors were found when attempting to submit the form:\n\n";
	
	if (!categoryval) {
		formvalid = false;
		errormsg = errormsg + '  - Please specify category.\n';
		focusfield = f.elements[3];
	}
	
	if (!productval) {
		formvalid = false;
		errormsg = errormsg + '  - Please specify product.\n';
		focusfield = f.elements[4];
	}
	
	if (!recipenameval) {
		formvalid = false;
		errormsg = errormsg + '  - Please enter recipe name.\n';
		focusfield = f.elements[5];
	}
	
	if (!recipedetailval) {
		formvalid = false;
		errormsg = errormsg + '  - Please enter recipe detail.\n';
		focusfield = f.elements[6];
	}	
	
	  
	if (!servingsizeval) {
		formvalid = false;
		errormsg = errormsg + '  - Please enter serving size.\n';
		focusfield = f.elements[7];
	}
	
	
	if (!ownernameval) {
		formvalid = false;
		errormsg = errormsg + '  - Please enter owner\' name.\n';
		focusfield = f.elements[9];
	}	
	
	  
	if (!ownercityval) {
		formvalid = false;
		errormsg = errormsg + '  - Please enter owner\'s city.\n';
		focusfield = f.elements[10];
	}
	
	if ( formvalid ) {
	//alert("good");
	//return false;
		return true;
	} else {
	     errormsg = errormsg + '  \n  - special characters allowed for text fields:  \'`.#()-_/*@,$:;?&|';
		alert(errormsg);
		focusfield.focus();
		return false;
	}
  }

  
  
  

function checkcouponform(f) {
    
    var salutationval = checkfield(f.salutation);
    var firstnameval = checkfield(f.firstname);
    var lastnameval = checkfield(f.lastname);
    var address1val = checkfield(f.address1);
	var address2val = checkfield(f.address2);
	var cityval = checkfield(f.city);
	var provval = checkoption(f.province);
	var countryval = checkfield(f.country);
	var postalval = checkfield(f.postalcode);
	var phoneareacodeval = checkfield(f.phoneareacode);
	var phoneval = checkfield(f.phone);
    var emailval = checkemail(f.email);
   
	
	var formvalid = true;
	var focusfield = "";
	var errormsg = "Veuillez ecrire l'information suivante:\n\n";
    
    if (!salutationval) {
		formvalid = false;
		errormsg = errormsg + '  - Salutation\n';
		focusfield = f.salutation;
	}
    
	if (!firstnameval) {
		formvalid = false;
		errormsg = errormsg + '  - Prenom\n';
		focusfield = f.firstname;
	}
	
    if (!lastnameval) {
		formvalid = false;
		errormsg = errormsg + '  - Nom de famille\n';
		focusfield = f.lastname;
	}
    
	if (!address1val) {
		formvalid = false;
		errormsg = errormsg + '  - Adresse 1\n';
		focusfield = f.address;
	}
	if (!cityval) {
		formvalid = false;
		errormsg = errormsg + '  - Ville\n';
		focusfield = f.city;
	}
	
	if (!provval) {
		formvalid = false;
		errormsg = errormsg + '  - Province\n';
		focusfield = f.province;
	}
	
	if (!countryval) {
		formvalid = false;
		errormsg = errormsg + '  - Pays\n';
		focusfield = f.country;
	}
	
	if (!postalval) {
		formvalid = false;
		errormsg = errormsg + '  - Code postal\n';
		focusfield = f.postalcode;
	}
	
	if (!phoneareacodeval || !phoneval) {
		formvalid = false;
		errormsg = errormsg + '  - Telephone\n';
		focusfield = f.phone;
	}
    if (!emailval) {
		formvalid = false;
		errormsg = errormsg + '  - Courriel\n';
		focusfield = f.email;
	}
    
  
	
	if ( formvalid ) {
	    //alert("good");
		//return false;
		return true;
	} else {
		alert(errormsg);
		return false;
	}
}



function checkform(f) {
	//alert('adsf');

	var i;
	var currfieldval = true;
	var formvalid = true;
	var focusfield = "";
	var tempFormName;

	var errormsg = "The following errors were found when attempting to submit the form:\n\n";

	// Loop through entire form of input fields.
	for (i = 0; i < f.elements.length; i++) {
	
			currfield = f.elements[i].name;
			currfield = currfield.toLowerCase();

		// If input type is a "text", "textarea" or "password", do this test.
		if ( 	(f.elements[i].type == "text" ) || 
				(f.elements[i].type == "file") ||
				(f.elements[i].type == "password") ||
				(f.elements[i].type == "textarea") ) {
				
				if ( currfield.indexOf("upload") == -1 ) //||
					// currfield.indexOf("email") == -1) 
					{
					currfieldval = checktest(f.elements[i].value);
				}
				//else {
					//currfieldval = true;
				//}
				
					
				if ( !currfieldval ) {
					formvalid = false;
					focusfield = f.elements[i];
					tempFormName = f.elements[i].name;
					if (tempFormName.indexOf(".") != -1){
							tempFormName = tempFormName.substring(tempFormName.indexOf(".") + 1, tempFormName.length);
							tempFormName = tempFormName.substring(0, tempFormName.indexOf("."));
						}
					errormsg = errormsg + '  - ' + tempFormName.toUpperCase() + ' is missing or invalid. \n';
				}
			}
		///////////////////////////////////////////////
		if ( 	(f.elements[i].type == "text" ) ||
				(f.elements[i].type == "password") ) {
				
			
	
		 	if ( currfield.indexOf("email") != -1) {
				currfieldval = checkemail(f.elements[i]);
			}
			
			else {
					currfieldval = checkfield(f.elements[i]);
					//currfieldval = true;
				}
					if ( !currfieldval ) {
						formvalid = false;
						focusfield = f.elements[i];
						tempFormName = f.elements[i].name;
						if (tempFormName.indexOf(".") != -1){
							tempFormName = tempFormName.substring(tempFormName.indexOf(".") + 1, tempFormName.length);
							tempFormName = tempFormName.substring(0, tempFormName.indexOf("."));
						}
						errormsg = errormsg + '  - ' + tempFormName.toUpperCase() + ' is missing or invalid. \n';
					}
				}
				
			if ( (f.elements[i].type == "select-one")) {
		
				currfield = f.elements[i].name;
				currfield = currfield.toLowerCase();
				
				if (( currfield.indexOf("category") != -1) ||
				  	( currfield.indexOf("feature") != -1) ){
					currfieldval = checkoption(f.elements[i]);
					
				}
				else{
					currfieldval = true
					}
				

				if ( !currfieldval ) {
					formvalid = false;
					focusfield = f.elements[i];
					tempFormName = f.elements[i].name;
					if (tempFormName.indexOf(".") != -1){
							tempFormName = tempFormName.substring(tempFormName.indexOf(".") + 1, tempFormName.length);
							tempFormName = tempFormName.substring(0, tempFormName.indexOf("."));
						}
						errormsg = errormsg + '  - ' + tempFormName + ' is missing or invalid. \n';
				}
			}
	}
	
	

	if ( formvalid ) {
		//alert('Form is validated. This should return true instead of false.');
		return true; 		// Should return true
	} else {
		errormsg = errormsg + '  \n  - text fields only permit the following special characters:\n  \'.#()-_@,:&?! ';
		//errormsg = errormsg + '  \n  - numeric fields do not permit special characters \n';
		alert(errormsg);
		focusfield.focus();
		return false;
	}
}


/*
/////////////
*/

