// phone number - strip out delimiters and check for 10 digits
function checkEmail (strng) {
	var error="";
	if (strng == "") {
		error = "You didn't enter an email address.\n";
	}
    var emailFilter=/^.+@.+\..{2,3}$/;
    if (!(emailFilter.test(strng))) { 
       error = "Please enter a valid email address.\n";
    }
    else {
	//test email for illegal characters
		var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
		if (strng.match(illegalChars)) {
			error = "The email address contains illegal characters.\n";
		}
    }
	return error;    
}

// phone number - strip out delimiters and check for 10 digits
function checkPhone (strng) {
	var error = "";
	if (strng == "") {
		error = "You didn't enter a phone number.\n";
	}
	var stripped = strng.replace(/[\(\)\.\-\ ]/g, ''); //strip out acceptable non-numeric characters
    if (isNaN(parseInt(stripped))) {
       error = "The phone number contains illegal characters.";
  
    }
    if (!(stripped.length == 10)) {
	error = "The phone number is the wrong length. Make sure you included an area code.\n";
    } 
	return error;
}

// password - between 6-8 chars, uppercase, lowercase, and numeral
function checkPassword (strng) {
	var error = "";
	if (strng == "") {
		error = "You didn't enter a password.\n";
	}
    var illegalChars = /[\W_]/; // allow only letters and numbers
    if ((strng.length < 6) || (strng.length > 8)) {
       error = "The password is the wrong length.\n";
    }
    else if (illegalChars.test(strng)) {
      error = "The password contains illegal characters.\n";
    } 
    else if (!((strng.search(/(a-z)+/)) && (strng.search(/(A-Z)+/)) && (strng.search(/(0-9)+/)))) {
       error = "The password must contain at least one uppercase letter, one lowercase letter, and one numeral.\n";
    }  
	return error;    
}    

// username - 4-10 chars, uc, lc, and underscore only.
function checkUsername (strng) {
	var error = "";
	if (strng == "") {
		error = "You didn't enter a username.\n";
	}
    var illegalChars = /\W/; // allow letters, numbers, and underscores
    if ((strng.length < 4) || (strng.length > 10)) {
       error = "The username is the wrong length.\n";
    }
    else if (illegalChars.test(strng)) {
		error = "The username contains illegal characters.\n";
    } 
	return error;
}       

// non-empty textbox
function isEmpty(strng) {
var error = "";
  if (strng.length == 0) {
     error = "The mandatory text area has not been filled in.\n"
  }
return error;	  
}

// was textbox altered
function isDifferent(strng) {
var error = ""; 
  if (strng != "Can\'t touch this!") {
     error = "You altered the inviolate text area.\n";
  }
return error;
}

// valid selector from dropdown list
function checkDropdown(choice) {
var error = "";
    if (choice == 0) {
    error = "You didn't choose an option from the drop-down list.\n";
    }    
return error;
}    

// exactly one radio button is chosen
function checkRadio(checkvalue) {
var error = "";
	if (!(checkvalue)) {
		error = "Oui";
    }
	return error;
}

// valid selector from dropdown list
function validation(chars,nomChamps,longueur,txt){
	var charValid = "abcdefghijklmnopqrstuvwxyz0123456789-_éçèàêûîâôæìîíïòóôöùúûü' " + chars;
	if (txt.length < longueur)
	{
		alert("Le champs «" + nomChamps + "» doit contenir une valeur");
		return false;
	}
	var s = txt.toLowerCase();
	for (var i = 0; i < s.length; i++)
	{
		var car = s.charAt(i);
		if (charValid.indexOf(car) < 0)
		{
			alert("Le caractère \"" + car + "\" n'est pas permis dans «" + nomChamps + "»");
			return false;
		}
	}
	return true;
}

function validationEmail(nomChamps,email, caPasse){
	if ((email == '') && (caPasse == '1')){
		alert("Le champs «" + nomChamps + "» doit contenir une valeur");
		return false;
	}
	if ((email == '') && (caPasse == '0')){
		return true;
	}
	if (validation("@.",nomChamps,1,email))
	{
		var arobas = email.indexOf('@');
		if ((arobas > 0) && (arobas < (email.length - 4)) && (email.indexOf("..") < 0))
		{
			var domaine = email.substr(arobas + 1);
			if (domaine.indexOf('@') < 0)
			{
				var ipoint = domaine.lastIndexOf('.');
				if ((ipoint >= 0) && (ipoint < (domaine.length - 2)))
				{
					return true;
				}
			}
		}
		alert("«" + email + "» n'est pas une adresse de courier valide.");
	}
	return false;
}

function checkBoxVal(nomChamps,leRadioB){
	var why = "";
    for (i=0, n=leRadioB.length; i<n; i++) {
        if (leRadioB[i].checked) {
            var checkvalue = leRadioB[i].value;
            break;
        } 
    }
    why = checkRadio(checkvalue);
    if (why != "") {
		alert("Le champs «" + nomChamps + "» doit contenir une valeur");
		return false;
    }
	return true;
}

