
function show_all(class_name){
	$$(class_name).each(function (el){ el.style.display = 'block'; });
}

function hide_all(class_name){
	$$(class_name).each(function (el){ el.style.display = 'none'; });
}


function nl2br(str) {
    return str.replace(/\n/g, '<br />');
}

function trim(string)
{
    return string.replace(/(^\s*)|(\s*$)/g, '');
}


function do_actions(index, the_action){
	switch (the_action){
		case 2:
		case 7:
			document.location.href = the_action;
			break;
		default:
			document.location.href = the_action;
			break;
	}
}


/**************************************/
/**************************************/
/**************************************/
function ajax_fieldvalue_exist_control(classname, field, value) {
	
    if (window.XMLHttpRequest) {
        AJAX=new XMLHttpRequest();
    } else {
        AJAX=new ActiveXObject("Microsoft.XMLHTTP");
    }
    if (AJAX) {
        AJAX.open("GET", 'index.php?c=fieldvalue&class='+classname+'&field='+field+'&value='+value, false);
        AJAX.send(null);
        var doc =  AJAX.responseXML;
    } else {
        return false;
    }
    var racine = doc.getElementsByTagName("response")[0];
    for (var i=0; i<racine.childNodes.length; i++) {
        child = racine.childNodes[i];
        if (child.nodeName == "code") {
            var code = child.firstChild.data;
        }
    }
    if (code == 0) {
        return true;
    }
    else if (code == 1) {
        return false;
    }
}



function ajax_fieldvalue_exist_control_v2(classname, field, value_password, value) {
	
    if (window.XMLHttpRequest) {
        AJAX=new XMLHttpRequest();
    } else {
        AJAX=new ActiveXObject("Microsoft.XMLHTTP");
    } 
    
    if (AJAX) {
        AJAX.open("GET", 'index.php?c=fieldvalue&class='+classname+'&field='+field+'&value_password='+value_password+'&value='+value, false);
        AJAX.send(null);
        var doc =  AJAX.responseXML;
    } else {
        return false;
    }
    var racine = doc.getElementsByTagName("response")[0];
    for (var i=0; i<racine.childNodes.length; i++) {
        child = racine.childNodes[i];
        if (child.nodeName == "code") {
            var code = child.firstChild.data;
        }
    }
    if (code == 0) {
        return true;
    }
    else if (code == 1) {
        return false;
    }
}



function ajax_check_password_control(value) {
	
    if (window.XMLHttpRequest) {
        AJAX=new XMLHttpRequest();
    } else {
        AJAX=new ActiveXObject("Microsoft.XMLHTTP");
    }
    if (AJAX) {
        AJAX.open("GET", 'index.php?c=passwordcheck&value='+value, false);
        AJAX.send(null);
        var doc =  AJAX.responseXML;
    } else {
        return false;
    }
    var racine = doc.getElementsByTagName("response")[0];
    for (var i=0; i<racine.childNodes.length; i++) {
        child = racine.childNodes[i];
        if (child.nodeName == "code") {
            var code = child.firstChild.data;
        }
    }
    
    
    if (code == 0) {
        return false;
    }
    else if (code == 1) {
        return true;
    }
}



function check_text(value) {
    if (!trim(value).match(/^.+/i)) {
        return false;
    }
    return true;
}

function check_format(format, value) {
    if (!trim(value).match(format)) {
        return false;
    }
    return true;
}

function check_select(field) {
    if ((field.options[field.options.selectedIndex].value != '') && (field.options[field.options.selectedIndex].value != 0)) {
        return true
    }
    return false;
}

function check_checkbox(field) {
    if (field.checked) {
        return true
    }
    return false;
}

function check_mult_checkbox(field, req) {
    var checked = 0;
    var elements = document.getElementsByName(field+'[]');
    for (var i=0; i<elements.length; i++) {
        if (elements[i].checked) {
            if (++checked>=req) {
                return true;
            }
        }
    }
    return false;
}

function check_image(value) {
    if (!trim(value).match(/(gif|jpeg|jpg|png$)|(^$)/i)) {
        return false;
    }
    return true;
}

function check_confirm(value1, value2) {
    if ((trim(value1)!='') && (value1 != value2)) {
        return false;
    }
    return true;
}

function select_all(field) {
    for(var i=0; i<field.options.length; i++) {
        field.options[i].selected=true;
    }
}



/*******
descr:Fonction qui permet d'ajouter des champs textes à la volée
param: 	1- l'id du champ hidden sur nb total
2- l'id du champ div vide pour accueillir les nouveaux champs
3- class du div de la ligne du formulaire
4- intitulé du label
5- champ name de l'input
********/
function addInputText (idNb, idConteneur, ligneClass, label, name) {
    var nb = parseInt($F(idNb));
    ++nb;

    var Conteneur = $(idConteneur);
    var dDiv = document.createElement("div");
    dDiv.setAttribute("class", ligneClass);
    dDiv.setAttribute("className", ligneClass);  /* redondance pour pallier bug IE */
    Conteneur.appendChild(dDiv);

    /*	contenu  = "<div class='inscription_champ_form_label'>"+label+" "+nb+"</div>";*/
    contenu  = "<div class='"+ligneClass+"_label'>"+label+" "+nb+"</div>";
    contenu += "<div class='"+ligneClass+"_input'><input type='text' id='"+name+"_"+nb+"' name='"+name+"["+nb+"]'></div>";

    dDiv.innerHTML = contenu;

    $(idNb).value = nb;
}


function IsIE(){
    return ( navigator.appName=="Microsoft Internet Explorer" );
}


function change_prix_fai(comission, tva){
	
	var prix_fai = document.getElementById('bien_prix_fai').value;
	var difference;
	//$res->produit_prix / (1 + (TVA/100));
	
	if (prix_fai.length > 0){
		//prix_maj = parseInt(prix_fai) / (1+ (tva / 100) + (comission / 100));
		prix_maj = parseInt(prix_fai) / comission;
		document.getElementById('bien_prix_net').value = prix_maj.round(); 
		difference = parseInt($('bien_prix_fai').value) - parseInt($('bien_prix_net').value);
		$('bien_comission_vente').value = difference.round();
	}
	
	//HT = ttc/(1+tva) soit prix_maj = parseInt(prix_fai) / (1+tva+1)
	
	
	/*var prix_net = document.getElementById('bien_prix_net').value;
	var val_plus_comission;
	var val_comission;
	var val_tva;
	var prix_final;
	
	if (prix_net.length > 0){
		val_plus_comission = parseInt(((prix_net * comission) / 100)) + parseInt(prix_net);
		val_comission = val_plus_comission - prix_net;
		val_tva = val_comission * tva / 100;
		
		prix_final = val_comission + val_tva;
		
		//document.getElementById('bien_prix_fai').value = prix_final.round(); 
		document.getElementById('bien_prix_fai').value = parseInt(prix_net) + prix_final.round(); 
	}*/
}


/*******
descr: Cache le div passé en parametre
param: id du div
********/
function Hide(div){
    document.getElementById(div).style.display='none';
    if (IsIE() && document.getElementById('qte_achat')){
		document.getElementById('qte_achat').style.visibility = 'visible';
	}
}

/*******
descr: Affiche le div passé en parametre
param: id du div
********/
function Show(div){
    document.getElementById(div).style.display='block';
    if (IsIE() && document.getElementById('qte_achat')){
		document.getElementById('qte_achat').style.visibility = 'hidden';
	}
}

/*******
descr: Renvoie le code de la touche appuyer
param: event
********/
function getkey(e)
{
    if (window.event)
    return window.event.keyCode;
    else if (e)
    return e.which;
    else
    return null;
}

/*******
descr: Fonction qui limites les caractères saisies dans un input
param: event, liste de caractères autorisé
********/
function goodchars(e, goods)
{
    var key, keychar;
    key = getkey(e);
    if (key == null) return true;

    // get character
    keychar = String.fromCharCode(key);
    keychar = keychar.toLowerCase();
    goods = goods.toLowerCase();

    // check goodkeys
    if (goods.indexOf(keychar) != -1)
    return true;

    // control keys
    if ( key==null || key==0 || key==8 || key==9 || key==13 || key==27 )
    return true;

    // else return false
    return false;
}


/*******
descr: Récupère la hauteur de l'écran
param: ---
********/
function getWindowHeight() {
    var windowHeight = 0;
    if (document.documentElement && document.documentElement.clientHeight) {
        windowHeight = document.documentElement.clientHeight;
    }
    else if (typeof(window.innerHeight) == 'number') {
        windowHeight = window.innerHeight;
    }
    else if (document.body && document.body.clientHeight) {
        windowHeight = document.body.clientHeight;
    }
    return windowHeight;
}

/*******
descr: Retour la hauteur 1/3 de l'écran
param: ---
********/
function getTop()
{
    return document.documentElement.scrollTop + Math.floor(getWindowHeight()/3);
}


/*******
descr: Div alerte
param: le texte à afficher
********/
function showAlerte(id, txt)
{
    DivTop = getTop();
    document.getElementById(id).style.top = DivTop+'px';
    document.getElementById(id+'_middle').innerHTML = nl2br(txt);
    document.getElementById(id).style.display = "block";
}
function closeAlerte(id)
{
    document.getElementById(id).style.display = "none";

}

function showConfirmation(id, txt, action)
{
    DivTop = getTop();
    document.getElementById(id).style.top = DivTop+'px';
    document.getElementById(id+'_middle').innerHTML = nl2br(txt);
    
    document.getElementById(id+'_ok').href = action;
    document.getElementById(id).style.display = "block";
}



function showConfirmation_v2(id, txt, action, checkbox)
{
    DivTop = getTop();
    document.getElementById(id).style.top = DivTop+'px';
    document.getElementById(id+'_middle').innerHTML = nl2br(txt);
    document.getElementById(id+'_ok').href = action;
    document.getElementById(id).style.display = "block";
    

    
    $('annuler_bt_top').removeEvents('click');
    $('annuler_bt_bottom').removeEvents('click');
    
    $('annuler_bt_top').addEvent('click', function (){$(checkbox).checked = !$(checkbox).checked});
    $('annuler_bt_bottom').addEvent('click', function (){$(checkbox).checked = !$(checkbox).checked});
}


function showPrompt(id, txt, action)
{
    DivTop = getTop();
    document.getElementById(id).style.top = DivTop+'px';
    document.getElementById(id + '_message').innerHTML = nl2br(txt);
    document.forms[id + '_form'].action = action;
    document.getElementById(id).style.display = "block";
}


function checkForm() {
    var error = false;
    var error_str = 'Merci de corriger les champs suivants :\n';
    var CheckId;
    var formId;

    switch (arguments.length) {
        case 1 :
        CheckId = arguments[0];
        formId  = arguments[0];
        break;
        case 2 :
        formId = arguments[0];
        CheckId = arguments[1];
        break;
        default :
        exit;
        break;
    }
    
    with (document.forms[formId]) {
    	
        switch (CheckId) {
        	
        	case 'mon_compte' :
        		var check_tab = new Array(
				new Array ('old_password','ajax_check_password_control', 'Votre ancien mot de passe est érroné' ),
				new Array ('new_password','check_text', 'Mot de passe')
	            );
	        var combos_tab = new Array();
            break;
        	
			case 'annonce-1' : /* forumlaire d'ajout d'annonces : etape 1 */
			if (document.forms[formId].client_email){
	        	var check_tab = new Array(
	            new Array ('client_nom','check_text', 'Nom' ),
	            new Array ('client_prenom','check_text', 'Prénom' ),
	            new Array ('client_adresse','check_text', 'Adresse' ),           
	            new Array ('client_ville','check_text', 'Ville' ),
	            new Array ('client_cp','check_format', 'Code postal mal formé (5 chiffres)', /^[0-9]{2} ?[0-9]{3}$/i ),
	            //new Array ('client_tel1','check_format', 'Téléphone au format 0102030405', /^[0-9]{10}$|^$/ ),
	            new Array ('client_tel2','check_format', 'Portable au format 06010203040', /^06[0-9]{8}$|^$/ ),
	            new Array ('client_tel2','check_text', 'Tél. mobile' ),
	            //new Array ( new Array('client_tel1','client_tel2'), 'check_format_mult', 'Téléphone ou portable', /^.+$/ ),
	            new Array ('p1-birth-day','check_select', 'Votre jour de naissance' ),
	            new Array ('p1-birth-month','check_select', 'Votre mois de naissance' ),
	            new Array ('p1-birth-year','check_select', 'Votre année de naissance' ),
	            new Array ('client_email','check_format', 'Vous avez mal saisi votre email', /^[-a-zA-Z0-9._]+@[-a-zA-Z0-9._]+\.[a-zA-Z0-9._]+$/i ),
	            new Array ('client_email','ajax_fieldvalue_exist_control_v2', 'Un compte existe déjà avec votre adresse email', 'client', 'client_email', 'client_motdepasse' ),
	            new Array ('client_motdepasse','check_text', 'Mot de passe'),

	            new Array ('client_nom2','check_format', 'Nom propriétaire 2', /^.+$|^$/ ),
	            new Array ('client_prenom2','check_format', 'Prénom propriétaire 2', /^.+$|^$/ ),
	            new Array ('client_adresse2','check_format', 'Adresse propriétaire 2', /^.+$|^$/ ),           
	            new Array ('client_ville2','check_format', 'Ville propriétaire 2', /^.+$|^$/ ),
	            new Array ('client_cp2','check_format', 'Code postal propriétaire 2 mal formé (5 chiffres)', /^[0-9]{2} ?[0-9]{3}$|^$/i ),
	            new Array ('client_tel12','check_format', 'Téléphone propriétaire 2 au format 0102030405', /^[0-9]{10}$|^$/ ),
	            new Array ('client_tel22','check_format', 'Portable propriétaire 2 au format 06010203040', /^06[0-9]{8}$|^$/ ),
	            new Array ('p2-birth-day','check_format', 'Jour de naissance propriétaire 2', /^.+$|^$/ ),
	            new Array ('p2-birth-month','check_format', 'Mois de naissance propriétaire 2', /^.+$|^$/ ),
	            new Array ('p2-birth-year','check_format', 'Année de naissance propriétaire 2', /^.+$|^$/ ),
	            new Array ( new Array('client_nom2','client_prenom2','client_adresse2','client_ville2','client_cp2','p2-birth-day','p2-birth-month','p2-birth-year'), 'check_format_mult2', new Array('client_tel12|client_tel22'), 'Le second propriétaire doit rester vide ou être totalement renseigné', /^.+$/ )
	            
	            );
			}
	        else if (document.forms[formId].old_password){
	        	var check_tab = new Array(
				new Array ('old_password','ajax_check_password_control', 'Votre ancien mot de passe est érroné' ),
				new Array ('new_password','check_text', 'Mot de passe')
	            );
	        }
	        else {
	        	var check_tab = new Array(
	            new Array ('client_nom','check_text', 'Nom' ),
	            new Array ('client_prenom','check_text', 'Prénom' ),
	            new Array ('client_adresse','check_text', 'Adresse' ),           
	            new Array ('client_ville','check_text', 'Ville' ),
	            new Array ('client_cp','check_format', 'Code postal mal formé (5 chiffres)', /^[0-9]{2} ?[0-9]{3}$/i ),
	            //new Array ('client_tel1','check_format', 'Téléphone au format 0102030405', /^[0-9]{10}$/ ),

	            new Array ('p1-birth-day','check_select', 'Votre jour de naissance' ),
	            new Array ('p1-birth-month','check_select', 'Votre mois de naissance' ),
	            new Array ('p1-birth-year','check_select', 'Votre année de naissance' )
	            
	            );
	        }
            var combos_tab = new Array();
            break;
            
            case 'contact' : /* forumlaire contact */
            var check_tab = new Array(
	            new Array ('nom','check_text', 'Nom' ),
	            new Array ('prenom','check_text', 'Prénom' ),
	            new Array ('email','check_format', 'Vous avez mal saisi votre email', /^[-a-zA-Z0-9._]+@[-a-zA-Z0-9._]+\.[a-zA-Z0-9._]+$/i ),
	            new Array ('telephone','check_format', 'Téléphone au format 0102030405', /^[0-9]{10}$/ ),
	            new Array ('sujet','check_text', 'Sujet' ),
	            new Array ('message','check_text', 'Message' )
	            
	            );
            var combos_tab = new Array();
            break;
            
            case 'contact_investisseur': /* forumlaire contact */
            var check_tab = new Array(
            	new Array ('nom','check_text', 'Nom' ),
	            new Array ('prenom','check_text', 'Prénom' ),
	            new Array ('email','check_format', 'Vous avez mal saisi votre email', /^[-a-zA-Z0-9._]+@[-a-zA-Z0-9._]+\.[a-zA-Z0-9._]+$/i ),
	            new Array ('telephone','check_format', 'Téléphone au format 0102030405', /^[0-9]{10}$/ ),
	            new Array ('message','check_text', 'Message' )
	            
	            );
            var combos_tab = new Array();
            break;
            
            case 'form-juridique' : /* forumlaire contact */
            var check_tab = new Array(
	            new Array ('sujet','check_text', 'Sujet' ),
	            new Array ('message','check_text', 'Message' )
	            
	            );
            var combos_tab = new Array();
            break;
            
            case 'fiche-visite' :
            var check_tab = new Array(
	            new Array ('bien_id','check_text', 'Votre bien' ),
	            new Array ('message_nom','check_text', 'Nom du contact' ),
	            new Array ('message_prenom','check_text', 'Prénom du contact' ),
	            new Array ('message_telephone','check_format', 'Téléphone au format 0102030405', /^[0-9]{10}$/ ),
	            new Array ('message_email','check_format', 'Email non conforme', /^[-a-zA-Z0-9._]+@[-a-zA-Z0-9._]+\.[a-zA-Z0-9._]+$/i ),
	            
	            new Array ('message_result','check_text', 'Résultat' )
	            
	            );
            var combos_tab = new Array();
            break;
            
            
            case 'fiche-contact' :
            var check_tab = new Array(
	            new Array ('nom','check_text', 'Nom' ),
	            new Array ('prenom','check_text', 'Prénom' ),
	            new Array ('email','check_format', 'Vous avez mal saisi votre email', /^[-a-zA-Z0-9._]+@[-a-zA-Z0-9._]+\.[a-zA-Z0-9._]+$/i ),
	            new Array ('telephone','check_format', 'Téléphone au format 0102030405', /^[0-9]{10}$/ ),
	            new Array ('message','check_text', 'Message' )
	            
	            );
            var combos_tab = new Array();
            break;
            
            
            case 'annonce-2' : /* forumlaire d'ajout d'annonces : etape 1 */
        	var check_tab = new Array(
        		new Array ('bien_titre','check_text', 'Titre' ),
	            new Array ('bien_adresse','check_text', 'Adresse' ),           
	            new Array ('bien_ville','check_text', 'Ville' ),
	            new Array ('bien_cp','check_format', 'Code postal mal formé (5 chiffres)', /^[0-9]{2} ?[0-9]{3}$/i ),
	            new Array ('bien_prix_net','check_format', 'Prix net', /^[0-9,.]+$/ ),
	            new Array ('bien_prix_fai','check_format', 'Prix affiché en publicité', /^[0-9,.]+$/ ),
	            new Array ('bien_titre','check_text', 'Titre' ),
	            new Array ('bien_descriptif','check_text', 'Annonce' ),
	            new Array ('bien_surface1','check_format', 'Surface habitable', /^[0-9]{1,6}$/ ),
	            new Array ('bien_surface2','check_format', 'Surface terrain', /^[0-9]{0,6}$/ )
            );
            var combos_tab = new Array();
            break;
            
            
            case 'annonce-3' : /* forumlaire d'ajout d'annonces : etape 1 */
        	var check_tab = new Array(
            new Array ('bien_notaire_nom','check_text', 'Notaire' ),
            new Array ('bien_notaire_adresse','check_text', 'Adresse' ),
            new Array ('bien_notaire_ville','check_text', 'Ville' ),
            new Array ('bien_notaire_cp','check_format', 'Code postal mal formé (5 chiffres)', /^[0-9]{2} ?[0-9]{3}$/i )
            );
            var combos_tab = new Array();
            break;

			  
            case 'mon_compte_adresses' : /* formulaire d'ajout d'adresses */
            var check_tab = new Array(
            new Array ('carnetadresse_type','check_text', 'Type d\'adresse' ),
            new Array ('carnetadresse_civilite','check_select', 'Civilité' ),
            new Array ('carnetadresse_prenom','check_text', 'Prénom' ),
            new Array ('carnetadresse_nom','check_text', 'Nom' ),
            new Array ('carnetadresse_adresse','check_text', 'Adresse' ),
            new Array ('carnetadresse_codepostal','check_format', 'Code postal mal formé (5 chiffres)', /^[0-9]{2} ?[0-9]{3}$/i ),
            new Array ('carnetadresse_telephone','check_format', 'Téléphone au format 0102030405', /^[0-9]{10}$/ ),            
            new Array ('carnetadresse_ville','check_text', 'Ville' )
            );
            var combos_tab = new Array();
            break;
            
            
            case 'annonce_5' :
            var check_tab = new Array(
            new Array ('cgu_box','check_checkbox', 'Merci d\'accepter les Conditions Générales d\'Utilisation' )
            );
            var combos_tab = new Array();
            break;
            
            case 'inscription_full' : /* mini formulaire de parrainage */
            var check_tab = new Array(
            new Array ('member_parrainemail','check_format', 'Email parrain mal formé', /^[-a-zA-Z0-9._]+@[-a-zA-Z0-9._]+\.[a-zA-Z0-9._]+$|^$/i ),
            new Array ('member_email','check_format', 'Vous avez mal saisi votre email', /^[-a-zA-Z0-9._]+@[-a-zA-Z0-9._]+\.[a-zA-Z0-9._]+$/i ),
            new Array ('member_email','check_confirm', 'Email et confirmation d\'email sont différents' ),
            new Array ('member_email','ajax_fieldvalue_exist_control', 'L\'email <b>{value}</b> déjà utilisé', 'member', 'member_email' ),
            new Array ('member_motdepasse','check_text', 'Mot de passe' ),
            new Array ('member_motdepasse','check_confirm', 'Mot de passe et confirmation de mot de passe sont différent' ),
            new Array ('member_civilite','check_select', 'Civilité' ),
            new Array ('member_prenom','check_text', 'Prénom' ),
            new Array ('member_nom','check_text', 'Nom' ),
            new Array ('member_codepostal','check_format', 'Code postal mal formé (5 chiffres)', /^[0-9]{2} ?[0-9]{3}$/i ),
            new Array ('member_ville','check_text', 'Ville' ),
            new Array ('member_datenaissance_d','check_select', 'Votre jour de naissance' ),
            new Array ('member_datenaissance_m','check_select', 'Votre mois de naissance' ),
            new Array ('member_datenaissance_y','check_select', 'Votre année de naissance' ),
            new Array ('member_profession','check_text', 'Profession' ),
            new Array ('condition_gen','check_checkbox', 'Merci d\'accepter les Conditions Générales d\'Utilisation' )
            );
            var combos_tab = new Array();
            break;
        }
        for (var i=0; i<check_tab.length; i++) {
            switch(check_tab[i][1]) {
            	case 'ajax_check_password_control' :
            	if (!ajax_check_password_control(elements[check_tab[i][0]].value)) {
                    error = true;
                    error_str += '- '+check_tab[i][2].replace('{value}', elements[check_tab[i][0]].value)+'\n';
                }
                break;
                case 'ajax_fieldvalue_exist_control' :
                if (!ajax_fieldvalue_exist_control(check_tab[i][3], check_tab[i][4], elements[check_tab[i][0]].value)) {
                    error = true;
                    error_str += '- '+check_tab[i][2].replace('{value}', elements[check_tab[i][0]].value)+'\n';
                }
                break;
                
                case 'ajax_fieldvalue_exist_control_v2' :
                if (!ajax_fieldvalue_exist_control_v2(check_tab[i][3], check_tab[i][4], elements[check_tab[i][5]].value, elements[check_tab[i][0]].value)) {
                    error = true;
                    error_str += '- '+check_tab[i][2].replace('{value}', elements[check_tab[i][0]].value)+'\n';
                }
                break;
                
                case 'check_text' :
                if (!check_text(elements[check_tab[i][0]].value)) {
                    error = true;
                    error_str += '- '+check_tab[i][2]+'\n';
                }
                break;
                case 'check_format' :
                
                if (!check_format(check_tab[i][3], elements[check_tab[i][0]].value)) {
                	
                    error = true;
                    error_str += '- '+check_tab[i][2]+'\n';
                }
                break;
                case 'check_select' :
                if (!check_select(elements[check_tab[i][0]])) {
                    error = true;
                    error_str += '- '+check_tab[i][2]+'\n';
                }
                break;
                case 'check_checkbox' :
                if (!check_checkbox(elements[check_tab[i][0]])) {
                    error = true;
                    error_str += '- '+check_tab[i][2]+'\n';
                }
                break;
                case 'check_mult_checkbox' :
                if (!check_mult_checkbox(check_tab[i][0], check_tab[i][3])) {
                    error = true;
                    error_str += '- '+check_tab[i][2]+'\n';
                }
                break;
                case 'check_image' :
                if (!check_image(elements[check_tab[i][0]].value)) {
                    error = true;
                    error_str += '- '+check_tab[i][2]+'\n';
                }
                break;
                case 'check_confirm' :
                if (!check_confirm(elements[check_tab[i][0]].value, elements[check_tab[i][0]+'_confirm'].value)) {
                    error = true;
                    error_str += '- '+check_tab[i][2]+'\n';
                }
                break;
                
                case 'check_format_mult2':
                var error_loc = true;
                var count_fields = 0;
                for (var j=0;j<check_tab[i][0].length; j++) {
                    if (elements[check_tab[i][0][j]].value != '' && elements[check_tab[i][0][j]].value != 0){
                    	count_fields++;
                    }
                }
                
                
                for (var b=0;b<check_tab[i][2].length; b++) {
            		var tableau = check_tab[i][2][b].split('|');
            		
            		for (var k=0; k<tableau.length; k++) {
	                    if (check_format(check_tab[i][4], elements[tableau[k]].value)) {
	                        error_loc = false;
	                    }
            		}
                }
                

                
                if(count_fields != 0 && count_fields != check_tab[i][0].length){
                	error_loc = true;
                } else {
                	error_loc = false;
                }
            
            
                
                if (error_loc) {
                    error = true;
                    error_str += '- '+check_tab[i][3]+'\n';
                } 
                break;
                
                case 'check_format_mult' :
                var error_loc = true;
                for (var j=0;j<check_tab[i][0].length; j++) {
                    if (check_format(check_tab[i][3], elements[check_tab[i][0][j]].value)) {
                        error_loc = false;
                    }
                }
                if (error_loc) {
                    error = true;
                    error_str += '- '+check_tab[i][2]+'\n';
                }
                break;
            }
        }

        if(error) {
            showAlerte("alerte", error_str);
            return;
        }

        for(var i=0; i<combos_tab.length;i++) {
            select_all(elements[combos_tab[i]+'[]']);
        }

        document.forms[formId].submit();

    }
}