// Boucle de validation du paiement
function validateFormPaiement(form) {
	if (isSelected(form.choix)) {
		if (isNotEmpty(form.montant)) {
			if (isNombre(form.montant)) {
				return true;
			}	
		}
	}
	return false;
}


// Boucle de validation de l'inscription
function validateForm(form) 
{
	if (isSelected(form.genre)) {
		if (isNotEmpty(form.nom)) {
			if (isNotEmpty(form.prenom)) {											
				if (isNotEmpty(form.adresse)) {
					if (isNotEmpty(form.codepostal) ) {
						if (isNombre(form.codepostal) ) {
							if (isNotEmpty(form.ville) ) {
								if (isEMailAddr(form.mail)) {
									if (  isNotEmpty(form.montantlibre) && isNombre(form.montantlibre)  ) {
											return true;										 	
										}
									}
								}
							}
						}
					}
				}
			}
		} 
	return false;
}

// Vérifie si un champ a bien été renseigné
function isNotEmpty(elem) {
	var str = elem.value;
    var re = /.+/;
    if(!str.match(re)) {
        alert("Veuillez renseigner les champs obligatoires.");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    } else {
        return true;
    }
}

// Vérifie si un bouton radio est selectionné

function isSelected(elem) 
{
	var str = elem ;
	var aumoins1=0 ;	
	for (var i = 0; i < str.length; i++)
		if (str[i].checked) aumoins1 = 1 ;
	if (aumoins1)
		return true;	
	else
		{
    	alert("Veuillez renseigner les champs obligatoires");
    	return false;
		}
}


// Vérifie si le champ est bien un nombre
function isNombre(elem) {
	var str = elem.value;
    if (isNaN(str))
	{
        alert("Veuillez entrer un nombre.");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    }
	else  if (str<=0) 
		{
        alert("Veuillez entrer un nombre plus grand que 0.");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
	   	} 
		else 
		{
        return true;
	    }
}

// Vérifie si l'adresse e-mail est valide
function isEMailAddr(elem) {
	var str = elem.value;
  var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
	if ((elem.length >0) && !str.match(re)) {
        alert("Veuillez vérifier le format de votre adresse e-mail.");
        setTimeout("focusElement('" + elem.form.name + "', '" + elem.name + "')", 0);
        return false;
    } else {
        return true;
    }
}


// Positionne le curseur dans un champ donné
function focusElement(formName, elemName) {
    var elem = document.forms[formName].elements[elemName];
    elem.focus();
    elem.select();
}


function trimString (str)
{
 str = this != window? this : str;
 return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}


//##############################################################################################################################
function Majus(champ)
{
var minus   = "aŕâäbcçdeéčęëfghiîďjklmnoôöpqrstuůűvwxyzÂÄEËÎIÔÖUÜ";
var majus   = "AAAABCCDEEEEEFGHIIIJKLMNOOOPQRSTUUUVWXYZAAEEIIOOUU";
var entree  = champ.value;
var sortie  = "";
	for (var i = 0 ; i < entree.length ; i++)
    {
    var car = entree.substr(i, 1);
    sortie += (minus.indexOf(car) != -1) ? majus.substr(minus.indexOf(car), 1) : car;
    }
champ.value = sortie;
}


//##############################################################################################################################
function CalculDeduc (sommeSel)
{
	var path = document.formdon;
	if (trimString(sommeSel) != "")
	{
		if (isNaN(sommeSel))			
		{
				alert("Veuillez saisir un montant");
				path.Montant.focus();
				path.Montant.select();
				return;
		}
	
		var sommeDeducFiscale = 0;
		/* ISF */
		sommeDeducFiscale = Math.round(sommeSel * 0.75);
		if (sommeDeducFiscale != 0) 
			if (sommeDeducFiscale >=50000) 
				path.Deduction_ISF.value = 50000;
			else path.Deduction_ISF.value = sommeDeducFiscale;
		else path.Deduction_ISF.value = 0;
		path.cout_ISF.value = sommeSel - path.Deduction_ISF.value;
		/* IR */
		sommeDeducFiscale = Math.round(sommeSel * 0.66);
		if (sommeDeducFiscale != 0) path.Deduction_IR.value = sommeDeducFiscale;
		else path.Deduction_IR.value = 0;
		path.cout_IR.value = sommeSel - path.Deduction_IR.value;
		/* IS */
		sommeDeducFiscale = Math.round(sommeSel * 0.60);
		if (sommeDeducFiscale != 0) path.Deduction_IS.value = sommeDeducFiscale;
		else path.Deduction_IS.value = 0;
		path.cout_IS.value = sommeSel - path.Deduction_IS.value;
	}
}
