function CreditCalculMensualite(montant,duree,taux) {
	if (montant != "" && montant != 0 && duree != "" && duree != 0 && taux != "" && taux != 0) {
		if (isNaN(taux)) {
			alert("le taux est mal renseigné. Veuillez saisir un nombre. Les décimales doivent être séparés par un point.");
		} 
		else if (isNaN(montant)) {
			alert("le montant est mal renseigné. Veuillez saisir un nombre");
		}
		else if (isNaN(duree)) {
			alert("le durée est mal renseignée. Veuillez saisir un nombre");
		}
		else {
			taux = (taux/100)/12;
			result = (montant * taux) / (1 - Math.pow(1 + taux, - (duree*12)));
			//alert(Math.floor(result));
			document.getElementById('simulateur_credit_result').innerHTML = Math.floor(result) + ' €';
		}
	}
	else
		alert("Vous devez saisir un montant, une durée, et un taux");
}

function format_number(pnumber,decimals){
	if (isNaN(pnumber)) { return 0};
	if (pnumber=='') { return 0};
	
	var snum = new String(pnumber);
	var sec = snum.split('.');
	var whole = parseFloat(sec[0]);
	var result = '';
	
	if(sec.length > 1){
		var dec = new String(sec[1]);
		dec = String(parseFloat(sec[1])/Math.pow(10,(dec.length - decimals)));
		dec = String(whole + Math.round(parseFloat(dec))/Math.pow(10,decimals));
		var dot = dec.indexOf('.');
		if(dot == -1){
			dec += '.'; 
			dot = dec.indexOf('.');
		}
		while(dec.length <= dot + decimals) { dec += '0'; }
		result = dec;
	} else{
		var dot;
		var dec = new String(whole);
		dec += '.';
		dot = dec.indexOf('.');		
		while(dec.length <= dot + decimals) { dec += '0'; }
		result = dec;
	}	
	return result;
}

function change_image(p_id_image, p_new_image) {
	document.getElementById(p_id_image).src=p_new_image;
}

function f_afficher_masquer(p_id, p_mode) {
	if (p_mode == "") {
		if (document.getElementById(p_id).className == 'masquer')
			document.getElementById(p_id).className = 'afficher';
		else
			document.getElementById(p_id).className = 'masquer';
	}
	else {
		document.getElementById(p_id).className = p_mode;
	}
}


function f_uncheck_all_diags() {
	var obj_diags = document.forms["frm_devis"].elements["frm_diags[]"];
	//alert(obj_diags.length);
	for (i=0;i<obj_diags.length-1;i++) {
		j = i+1;
		document.forms["frm_devis"].elements["frm_diags[]"][i].checked = false;
		document.getElementById('diag_'+j).className = 'couleur_normale';
	}
}

function f_disabled_all_diags() {
	var obj_diags = document.forms["frm_devis"].elements["frm_diags[]"];
	//alert(obj_diags.length);
	for (var i=0;i<obj_diags.length-1;i++) {
		j = i+1;
		document.forms["frm_devis"].elements["frm_diags[]"][i].disabled = true;
	}
}

function f_enabled_all_diags() {
	var obj_diags = document.forms["frm_devis"].elements["frm_diags[]"];
	//alert(obj_diags.length);
	for (var i=0;i<obj_diags.length-1;i++) {
		j = i+1;
		document.forms["frm_devis"].elements["frm_diags[]"][i].disabled = false;
	}
}

function f_check_diags(p_diag, p_action) {
	var obj_diags = document.forms["frm_devis"].elements["frm_diags[]"];
	for (n=0;n<obj_diags.length;n++) {
		if (document.forms["frm_devis"].elements["frm_diags[]"][n].value == p_diag) {
			document.forms["frm_devis"].elements["frm_diags[]"][n].checked = p_action;
			if (p_action == true) {
				document.getElementById('diag_'+p_diag).className = 'couleur_rouge';
			}
			else {
				document.getElementById('diag_'+p_diag).className = 'couleur_normale';
			}
		}
	}
}

function f_change_classname(p_id) {
	if (document.getElementById(p_id).className == 'couleur_normale')
		document.getElementById(p_id).className = 'couleur_rouge';
	else
		document.getElementById(p_id).className = 'couleur_normale';
}

function f_change_classname_arg(p_id, p_cls) {
	document.getElementById(p_id).className = p_cls;
}

function f_submit() {
	var frm = document.frm_devis;
	
	// Type de transaction
	var step_1 = false;
	for (i=0; i<frm.frm_type_transaction.length; i++) {
		if (frm.frm_type_transaction[i].checked)
			step_1 = true;
	}
	if (!step_1) {
		alert("Vous devez renseigner s'il s'agit d'une vente ou d'une location");
		return;
	}
	
	if (frm.form_demande_hidden.value == "0") {
		// Type de bien
		var step_2 = false;
		for (i=0; i<frm.frm_type_bien.length; i++) {
			if (frm.frm_type_bien[i].checked)
				step_2 = true;
		}
		if (!step_2) {
			alert("Vous devez renseigner le type de bien");
			return;
		}
		
		// Nombre de pièces
		if (frm.frm_nb_pieces.value == "") {
			alert("Vous devez renseigner le nombre de pièces");
			return;
		}
		
		// Année de construction
		var step_3 = false;
		for (i=0; i<frm.frm_an_construction.length; i++) {
			if (frm.frm_an_construction[i].checked)
				step_3 = true;
		}
		if (!step_3) {
			alert("Vous devez renseigner l'année de construction");
			return;
		}
		
		// Diags à réaliser
		var step_4 = false;
		var obj_diags = document.forms["frm_devis"].elements["frm_diags[]"];
		for (i=0; i<obj_diags.length; i++) {
			if (obj_diags[i].checked)
				step_4 = true;
		}
		if (!step_4) {
			alert("Vous devez cocher au moins un diagnostic à réaliser");
			return;
		}
	}
	
	// Champs obligatoires :
	// Nom
	if (frm.frm_nom && frm.frm_nom.value == "") {
		alert("Vous devez renseigner votre nom");
		return;
	}
	if (!valider_champ(frm.frm_nom,"nom")) {
		return;
	}
	
	// Téléphone
	if (frm.frm_tel && frm.frm_tel.value == "") {
		alert("Vous devez renseigner votre téléphone");
		return;
	}
	if (!valider_champ(frm.frm_tel,"tel")) {
		return;
	}
	
	// Email
	if (frm.frm_email && frm.frm_email.value == "") {
		alert("Vous devez renseigner votre email");
		return;
	}
	if (!valider_champ(frm.frm_email,"email")) {
		return;
	}
	
	// Champs non obligatoires :
	if (frm.frm_surface.value != "" && !valider_champ(frm.frm_surface,"surface")) {
		return;
	}
	if (frm.frm_prenom.value != "" && !valider_champ(frm.frm_prenom,"nom")) {
		return;
	}
	if (frm.frm_cp.value != "" && !valider_champ(frm.frm_cp,"cp")) {
		return;
	}
	if (frm.frm_ville.value != "" && !valider_champ(frm.frm_ville,"ville")) {
		return;
	}
		
	
	frm.submit();
}

function f_CacherFormDemande() {
	document.frm_devis.form_demande_hidden.value = "1";
	f_afficher_masquer('bloc_type_bien','masquer');
	f_afficher_masquer('bloc_nb_pieces','masquer');
	f_afficher_masquer('bloc_surface','masquer');
	f_afficher_masquer('bloc_copropriete','masquer');
	f_afficher_masquer('bloc_an_construction','masquer');
	f_afficher_masquer('bloc_install_gaz','masquer');
	f_afficher_masquer('bloc_install_electrique','masquer');
	f_afficher_masquer('bloc_commentaire','masquer');
	f_afficher_masquer('bloc_diags','masquer');
}

function f_CacherFormContact() {
	document.frm_devis.form_contact_hidden.value = "1";
	f_afficher_masquer('bloc_infos_perso','masquer');
}

function f_AfficherFormDemande() {
	document.frm_devis.form_demande_hidden.value = "0";
	f_afficher_masquer('bloc_type_bien','afficher');
	f_afficher_masquer('bloc_nb_pieces','afficher');
	f_afficher_masquer('bloc_surface','afficher');
	f_afficher_masquer('bloc_copropriete','afficher');
	f_afficher_masquer('bloc_an_construction','afficher');
	f_afficher_masquer('bloc_install_gaz','afficher');
	f_afficher_masquer('bloc_install_electrique','afficher');
	f_afficher_masquer('bloc_commentaire','afficher');
	f_afficher_masquer('bloc_diags','afficher');
}

function f_AfficherFormContact() {
	document.frm_devis.form_contact_hidden.value = "0";
	f_afficher_masquer('bloc_infos_perso','afficher');
}

function is_array(input){
    return typeof(input)=='object'&&(input instanceof Array);
  }
  
 function f_InitFormDemande() {
	var frm = document.frm_devis;
	// Type de bien
	for (i=0; i<frm.frm_type_bien.length; i++) {
		frm.frm_type_bien[i].checked = false;
	}
	// Nombre de pièces
	frm.frm_nb_pieces.value = "";
	// Surface
	frm.frm_surface.value = "";
	// Coproprieté 
	for (i=0; i<frm.frm_copropriete.length; i++) {
		frm.frm_copropriete[i].checked = false;
	}
	// Année de construction
	for (i=0; i<frm.frm_an_construction.length; i++) {
		frm.frm_an_construction[i].checked = false;
	}
	// Install gaz
	for (i=0; i<frm.frm_install_gaz.length; i++) {
		frm.frm_install_gaz[i].checked = false;
	}
	// Install electricité
	for (i=0; i<frm.frm_install_electrique.length; i++) {
		frm.frm_install_electrique[i].checked = false;
	}
 }
 
 function verifier_champ(obj,type) {

	var val = obj.value;
	var reg_except;
	var msg_except = "";
	
	switch(type) {
		case 'text' :
			reg_except = /[^A-Za-z0-9éèàêçôî\-\.'\s]/g;
			msg_except = "Les caractères spéciaux ne sont pas autorisés";
			break;
		case 'adresse' :
			reg_except = /[^A-Za-z0-9éèàêçôî\-\.',\s]/g;
			msg_except = "Les caractères spéciaux ne sont pas autorisés";
			break;
		case 'email' :
			reg_except = /[^A-Za-z0-9_@\-\.]/g;
			msg_except = "Le format de l'email est incorrect";
			break;
		case 'tel' :
			reg_except = /[^0-9\s\-\.]/;
			msg_except = "Le Tel ne doit contenir que des chiffres et doit être écrit dans un bon format (ex: 0491234567)";
			break;
		case 'cp' :
			reg_except = /^[9]{2}|[^0-9]$/;
			msg_except = "Le CP ne doit contenir que des chiffres";
			break;
		default :
			reg_except = /[^A-Za-z0-9\-\.'\s]/g;
			msg_except = "Les caractères spéciaux ne sont pas autorisés";
			break;
	}
	
	if (reg_except.test(val)) {
		val = val.replace(reg_except,"");
		obj.value = val;
		alert(msg_except);
		return false;
	}
	else {
		//alert("good");
		return true;
	}	
		
}

function valider_champ(obj,type)
{
   	var val = obj.value;
	var msg = "";
	var ctrl_reg = false;
	
	switch(type) {
		case 'text' :
			reg = /[^A-Za-z0-9\-\.'\s]/g;
			msg = "Les caractères spéciaux ne sont pas autorisés";
			ctrl_reg = true;
			break;
		case 'nom' :
			reg = /[^A-Za-z0-9éèàêçôî\-\.'\s]/g;
			msg = "Les caractères spéciaux ne sont pas autorisés";
			ctrl_reg = true;
			break;
		case 'adresse' :
			reg = /[^A-Za-z0-9éèàêçôî\-\.',\s]/g;
			msg = "Les caractères spéciaux ne sont pas autorisés";
			ctrl_reg = true;
			break;
		case 'email' :
			//reg = /^[A-Za-z0-9\-\.']$/g;
			//reg = /^([a-zA-Z0-9_\\-])+(\\.([a-zA-Z0-9_\\-])+)*@((\\[(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5]))\\]))|((([a-zA-Z0-9])+(([\\-])+([a-zA-Z0-9])+)*\\.)+([a-zA-Z])+(([\\-])+([a-zA-Z0-9])+)*))$/;
			reg = new RegExp("^([a-zA-Z0-9_\\-])+(\\.([a-zA-Z0-9_\\-])+)*@((\\[(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5]))\\]))|((([a-zA-Z0-9])+(([\\-])+([a-zA-Z0-9])+)*\\.)+([a-zA-Z])+(([\\-])+([a-zA-Z0-9])+)*))$");
			msg = "Le format de l'email est incorrect";
			ctrl_reg = false;
			break;
		case 'tel' :
			reg = /^[0-9]{10}$/;
			msg = "Le Tel doit contenir 10 chiffres";
			ctrl_reg = false;
			break;
		case 'cp' :
			reg = /^[0-9]{5}$/;
			msg = "Le CP doit contenir 5 chiffres";
			ctrl_reg = false;
			break;
		case 'surface' :
			reg = /[^0-9]/g;
			msg = "La surface ne doit contenir que des chiffres";
			ctrl_reg = true;
			break;
		default :
			reg = /[^A-Za-z0-9\-\.'\s]/g;
			msg = "Les caractères spéciaux ne sont pas autorisés";
			ctrl_reg = true;
			break;
	}
	
	if (reg.test(val) == ctrl_reg) {
		alert(msg);
		return false;
	}
	else {
		return true;
	}	
}
