// JavaScript Document
function validatePC(obj, nom) {
	var contenu = obj.val();
	var filter  = /^\D{1}\d{1}\D{1}\-?\d{1}\D{1}\d{1}$/;	
	contenu = contenu.replace(" ", "");
	contenu = contenu.replace("-", "");
	if (contenu == '') {
		obj.addClass('error');
		alert('Entrée invalide\nLe champ "'+nom+'" est nécessaire.');
		obj.focus();
		return false;
	} else if (filter.test(contenu) == false) {
		obj.addClass('error');
		alert('Entrée invalide\nLe champ "'+nom+'" doit être au format A3A3A3.');
		obj.focus();
		return false;
	} else { return true;}
}

function validateTel(tel1, tel2, tel3, nom) {
	if((tel1.val() == '') || (tel1.val().length != 3) || (isNaN(parseInt(tel1.val())))) {
		tel1.addClass('error');
		alert('Entrée invalide\nLe champ "'+nom+'" est nécessaire et doit contenir 3 chiffres.');
		tel1.focus();
		return false;
	} else if ((tel2.val() == '') || (tel2.val().length != 3) || (isNaN(parseInt(tel2.val()))))	{
		tel2.addClass('error');
		alert('Entrée invalide\nLe champ "'+nom+'" est nécessaire et doit contenir 3 chiffres.');
		tel2.focus();
		return false;
	} else if ((tel3.val() == '') || (tel3.val().length != 4) || (isNaN(parseInt(tel3.val()))))	{
		tel3.addClass('error');
		alert('Entrée invalide\nLe champ "'+nom+'" est nécessaire et doit contenir 4 chiffres.');
		tel3.focus();
		return false;
	}  else { return true;}
}

function validateEmail(obj, nom) {
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	
	if (obj.val() == '') {
		obj.addClass('error');
		alert('Entrée invalide\nLe champ "'+nom+'" est nécessaire.');
		obj.focus();
		return false;
	} else if (filter.test(obj.val()) == false) {
		obj.addClass('error');
		alert('Entrée invalide\nLe champ "'+nom+'" ne contient pas une adresse de couriel valide.');
		obj.focus();
		return false;
	} else { return true;}
}

function validateSelector(sel, name) {
	if ('' == sel.val() || 0 == sel.val()) {
		alert('Entrée invalide\nVeuillez sélectionner '+name);
		sel.focus();
		return false;
	} else {
		return true;
	}
}

function validateText(obj, nom) {
	if (obj.val() == '')	{
		obj.addClass('error');
		alert('Entrée invalide\nLe champ "'+nom+'" est nécessaire');
		obj.focus();
		return false;
	} else { return true;}
}

function validateInt(obj, nom) {
	if (obj.val() == '') {
		obj.addClass('error');
		alert('Entrée invalide\nLe champ "'+nom+'" ne peut être vide');
		obj.focus();
		return false;
	}
	var parsed = parseInt(obj.val());
	if (isNaN(parsed))	{
		obj.addClass('error');
		alert('Entrée invalide\nLe champ "'+nom+'" ne doit comporter que des chiffres');
		obj.focus();
		return false;
	} 
	return true;
}

function validateFloat(obj, nom) {
	if (obj.val() == '') {
		obj.addClass('error');
		alert('Entrée invalide\nLe champ "'+nom+'" ne peut être vide');
		obj.focus();
		return false;
	}
	var parsed = parseFloat(obj.val());
	if (isNaN(parsed))	{
		obj.addClass('error');
		alert('Entrée invalide\nLe champ "'+nom+'" ne doit comporter que des chiffres');
		obj.focus();
		return false;
	} 
	return true;
}

function validate_prices() {
	no_problem = true;
	$(".price").each(function (i) {
		$(this).removeClass('error');
		if (!validateFloat($(this), 'prix')) {
			no_problem = false;
			return false;
		}
	});
	return no_problem;
}

function validate_set() {
	if (!validateText($('#ftoken'), 'Nom du set')) { return false;}
	if (!validateText($('#etoken'), 'Nom du set (anglais)')) { return false;}
	return true;
}

function validate_new_price_cat() {
	if (!validateSelector($("#ftype"), 'une Type de tissu')) { return false;}
	if (!validateText($('#pctoken'), 'Nom de la catégorie')) { return false;}
	return true;
}

function validate_contact_form() {	
	if (!validateSelector($("#reason"), 'une raison de contact')) { return false;}
	if(!validateText($("#firstname"), 'Prénom')) {return false;}
	if(!validateText($("#lastname"), 'Nom')) {return false;}
	var address = $("#address");
	var reason = $("#reason");

	if(reason.val() == 1 || address.val() != '') {
		if(!validateText($("#address"), 'Adresse')) {return false;}
		if(!validateText($("#city"), 'Ville')) {return false;}
		if (!validateSelector($("#province"), 'une province')) { return false;}
		if (!validatePC($("#cp"), 'Code Postal')) {return false;}
	}
	
	var tel1 = $("#tel1");
	var tel2 = $("#tel2");
	var tel3 = $("#tel3");
	if(tel1.val() != '' || tel2.val() != '' || tel3.val() != '') {
		if (!validateTel(tel1, tel2, tel3, 'Téléphone')) {return false;}
	}
	if(!validateEmail($("#email"), 'Courriel')) {return false;}
	if(!validateText($("#msg"), 'Message')) {return false;}
	return true;
}