function checkSiret(el){
	var siret = el.value.replace(/ /g, '');
	var estValide;
	if ( (siret.length != 14) || (isNaN(siret)) )
		estValide = false;
	else {
		// Donc le SIRET est un numérique à 14 chiffres
		// Les 9 premiers chiffres sont ceux du SIREN (ou RCS), les 4 suivants
		// correspondent au numéro d'établissement
		// et enfin le dernier chiffre est une clef de LUHN.
		var somme = 0;
		var tmp;
		for (var cpt = 0; cpt<siret.length; cpt++) {
			if ((cpt % 2) == 0) { // Les positions impaires : 1er, 3è, 5è, etc...
				tmp = siret.charAt(cpt) * 2; // On le multiplie par 2
				if (tmp > 9)
					tmp -= 9; // Si le résultat est supérieur à 9, on lui soustrait 9
			}
			else
				tmp = siret.charAt(cpt);
			somme += parseInt(tmp);
		}
		if ((somme % 10) == 0)
			estValide = true; // Si la somme est un multiple de 10 alors le SIRET est valide
		else
			estValide = false;
	}
	if (!estValide) {
		el.errors.push("Le numéro de Siret est incorrect");
		return false;
	} else {
		return true;
	}
}

function checkString(el) {
	//if (!el.value.match(/^[-\'a-zéèëàçù\s\d]*$/i)) {
	if (!el.value.match(/^[-\'a-zéèêëêàáâãäâåçùûúüôòóõöðñæìíîïýþÿ.%_{|}!=÷ø¿µ§£¤@²\\()+,~€°:?$#&*'"`^[\]/\-\s\d]*$/i)) {
		el.errors.push("Ce champ est incorrect.");
		return false;
	} else {
		return true;
	}
}

function checkFloat(el) {
	if (!el.value.match(/^[0-9\-]*(\.|,)?[0-9]+$/)) {
		el.errors.push("Ce champ doit être un nombre");
		return false;
	}
	return true;
}


function checkDate(el) {
	var reg = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;

	if (!el.value.match(reg)) {
		el.errors.push("La date saisie est incorrect");
		return false;
	} else {
		var matchdate 	= el.value.split('/');
		var success		= true;

		if (matchdate[0] < 1 || matchdate[0] > 31) {
			el.errors.push("Le jour de votre date saisie doit etre comprise entre 1 et 31 !");
			success = false;
		}
		if (matchdate[1] < 1 || matchdate[1] > 12) {
			el.errors.push("Le mois de votre date saisie doit etre comprise entre 1 et 12 !");
			success = false;
		}
		if (matchdate[2] < 2004 || matchdate[2] > 2030) {
			el.errors.push("L'année de votre date saisie doit etre comprise entre 2004 et 2030 !");
			success = false;
		}

		if (success) {
			// test pour le mois de février
			if (parseInt(matchdate[1], 10) == 2) {

				var isleap = (matchdate[2] % 4 == 0 && (matchdate[2] % 100 != 0 || matchdate[2] % 400 == 0));
				if (matchdate[0] > 29 || (matchdate[0] == 29 && !isleap)) {
					el.errors.push("Le mois de février " + matchdate[2] + " ne contient pas " + matchdate[0] + " jours !");
					return false;
				} else {
					return true;
				}
			} else {
				return true;
			}
		} else {
			el.errors.push("La date saisie est incorrect");
			return false;
		}
	}
}


//fonction de vérification du ratio quantité/tonnage/code barème pour chacune des lignes de saisie d'une déclaration manuelle
function checkRatioQuantiteTonnage(el) {
	var id_champ 					= el.id;
	var tab 						= id_champ.split("][");
	var indice 						= tab[0].replace("ligne[", "");
	var id_lien_code_bareme_bareme 	= $("ligne["+indice+"][code_bareme]").value;
	var quantite					= $("ligne["+indice+"][quantite]").value;
	var tonnage						= $("ligne["+indice+"][tonnage]").value;
	tonnage							= tonnage.replace(",", ".");
	
	if(id_lien_code_bareme_bareme != "" && quantite != "" && tonnage != "" && parseFloat(tonnage, 10) > 0 && parseInt(quantite, 10) > 0) {
		// calcule du ratio quantite / tonnage
		var retour;
		var message = "Erreur non déterminée";

		new Request({
		  url: 'declaration/check_ratio_quantite_tonnage?id_lien_code_bareme_bareme='+id_lien_code_bareme_bareme+'&quantite='+quantite+'&tonnage='+tonnage,
		  async: false,
		  onSuccess: function(response) {
				var tab_reponse = response.split("#");
		  		if(tab_reponse[0] == "KO") {
		  			message = tab_reponse[1];
		  			retour = false;
		  		} else {
		  			retour = true;
		  		}
			}
		}).send();

		if(!retour) {
			el.errors.push(message);
			return false;
		} else {
			return true;
		}
	} else {
		return true;
	}
}

function isNegatifValue(el) {
	var valeur = el.value;
	valeur = valeur.replace(",", ".");
	if(parseFloat(valeur, 10) < 0 || parseFloat(valeur, 10) == 0) {
		el.errors.push("La valeur ne peut etre négative");
		return false;
	}
	return true;
}
