var valid = '0';

function checkRequired(id){
	var field = document.getElementById(id);
	if (field.value.length == 0) {
        field.className = 'required';
		formValid(false);
    } else {
        field.className = '';
		formValid(true);
    }
}

function checkNum(id,max){
	var field = document.getElementById(id);
	var digits = field.value.replace(/[^0-9]/ig, '');
	if(!digits) {
        field.className = 'required';
        field.value = '';
		formValid(false);
        return;
    }
	if( digits!='0' && digits.length<max ){
		field.className = '';
		formValid(true);
    } else {
        field.className = 'required';
        field.value = digits;
		formValid(false);
    }
}

function checkPhone(id){
	var field = document.getElementById(id);
	var digits = field.value.replace(/[^0-9]/ig, '');
    if (!digits) {
        field.className = 'required';
        field.value = '';
		formValid(false);
        return;
    }
    if (digits.length == 10) {
        field.value = digits.substring(0, 2) + '.' + 
            digits.substring(2, 4) + '.' + 
            digits.substring(4, 6) + '.' + 
            digits.substring(6, 8) + '.' + 
            digits.substring(8, 10);
        field.className = '';
		formValid(true);
    } else {
        field.className = 'required';
        field.value = digits;
		formValid(false);
    }
}

function checkDate(id){
	var field = document.getElementById(id);
	var digits = field.value.replace(/[^0-9]/ig, '');
	if (!digits){
		field.className = 'required';
        field.value = '';
		formValid(false);
		return;
	}
	if (digits.length == 8){
		field.value = digits.substring(0,2) + '/' +
			 digits.substring(2,4) + '/' +
			 digits.substring(4,8);
		field.className = '';
		formValid(true);
	}else{
		field.className = 'required';
		field.value = digits;
		formValid(false);
	}
}

function checkEmail(id){
	var field = document.getElementById(id);
	var reg = /^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/g ;
    if (!matchRegularExpression(field.value,reg)) {
        field.className = 'required';
		formValid(false);
    } else {
        field.className = '';
		formValid(true);
    }
}

function checkSelect(id){
    var field = document.getElementById(id);
	if (field.value=='-1') {
        field.className = 'required';
		formValid(false);
    } else {
        field.className = '';
		formValid(true);
    }
}

function formValid(bool){
	if( bool ){
		valid = '1';
	}else{
		valid = '0';
	}
}

function checkForm(){
	checkRequired('nom1');
	checkRequired('prenom1');
	checkRequired('date1');
	checkRequired('profession1');
	checkRequired('antispam');
	checkSelect('status_prof1');
	checkSelect('contrat1');
	checkPhone('phone1');
	checkEmail('mail1');
	checkNum('montant1',6);
	checkRequired('taux1');
	checkNum('duree1',3);
	if(document.getElementById('diff1').value!=''){
		checkNum('diff1',3);
	}
	if( document.getElementById('nom2').value!='' ){
		checkRequired('nom2');
		checkRequired('prenom2');
		checkDate('date2');
		checkRequired('profession2');
		checkSelect('status_prof2');
		checkSelect('contrat2');
	}
	if( document.getElementById('montant2').value!='' ){
		checkNum('montant2',6);
		checkRequired('taux2');
		checkNum('duree2',3);
		if(document.getElementById('diff2').value!=''){
			checkNum('diff2',3);
		}
	}

	if( valid=='1' ){
		return true;
	}else{
		alert('Veuillez remplir tous les champs du formulaire');
	}
	return false;
}

function matchRegularExpression(valeur, regularExpression){
	var resultat = valeur.match(regularExpression);
	if (resultat!=null && resultat.length==1){
		return true;
	} 
	return false;
}

function addEvent(obj, evType, fn){
    if (obj.addEventListener){
        obj.addEventListener(evType, fn, true);
        return true;
    } else if (obj.attachEvent){
        var r = obj.attachEvent("on"+evType, fn);
        return r;
    } else {
        return false;
    }
}
