
function check_form(form){
	var validForm = true;
	arr_label = document.getElementsByTagName("label");
	for(var i=0; i<form.length; i++){
		switch(form[i].tagName){
			case "INPUT":
				valid = check_input(form[i]);
				break;
			case "SELECT":
				valid = check_select(form[i]);
				break;
			case "TEXTAREA":
				valid = check_textarea(form[i]);
				break;
		}
		for(var j=0; j<arr_label.length; j++){
			if(arr_label[j].htmlFor == form[i].id && !valid){
				arr_label[j].style.fontWeight = "bold";
				arr_label[j].style.color = "#FFFFFF";
				if(arr_label[2].innerHTML == "* Name : "){
					document.getElementById("erreur").innerHTML = "Please complete all fields with an *";
				}else{
					document.getElementById("erreur").innerHTML = "Veuillez remplir les champs avec un *";
				}
			}else if(arr_label[j].htmlFor == form[i].id && valid){
				arr_label[j].style.fontWeight = "normal";
				arr_label[j].style.color = "#FFC000";
			}
		}
		if(!valid && validForm){
			validForm = false;
		}
	}
	return validForm;
}

function check_input(obj){
	if(is_obligatoire(obj.name)){
		switch(obj.type){
			case "checkbox":
			case "radio":
				return is_checked(obj);
				break;
			case "file":
				return is_empty(obj.value);
				break;
			case "password":
				return is_empty(obj.value);
				break;
			case "text":
				switch(obj.name.replace("*", "")){
					case "email":
					case "e-mail":
					case "mail":
						return check_email(obj.value);
						break;
					case "codepostal":
					case "code_postal":
					case "cp":
						return is_number(obj.value);
						break;
					case "tel":
					case "telephone":
					case "fax":
						return check_phone(obj.value);
						break;
					default:
					return is_empty(obj.value);
				}
				break;
			default:
		}
	}
	return true;
}

function check_select(obj){
	if(is_obligatoire(obj.name)){
		return (obj.item(obj.selectedIndex).value == "") || (obj.item(obj.selectedIndex).value == -1);
	}
	return true;
}

function check_textarea(obj){
	if(is_obligatoire(obj.name)){
		return obj.value.length > 0;
	}
	return true;
}

function check_email(str) {
	var emailFilter = /^.+@.+\..{2,3}$/;
	if(!emailFilter.test(str)){ 
	   return false;
	}else {
		var illegalChars = /[\(\)\<\>\,\;\:\\\"\[\]]/;
		return !str.match(illegalChars);
	}
}

function check_phone(str){
	var stripped = str.replace(/[\(\)\.\-\ ]/g, '');
	if (isNaN(parseInt(stripped))) {
		return false;
	}
	if (!(stripped.length == 10)) {
		return false;
	} 
	return true;
}

function is_obligatoire(str){
	return str.indexOf("*") > -1;
}

function is_empty(str){
	return str.length > 0;
}

function is_number(str){
	if(is_empty(str)){
		return !isNaN(str);
	}
	return false;
}

function is_checked(obj){
		var checked = false;
		var arr = document.getElementsByName(obj.name);
		for(var i=0; i<arr.length; i++){
			if(arr[i].type == "radio" && arr[i].checked){
				checked = true;
			}
		}
		return checked;
}



