
/* Returns: rien */
/* Description: Fonction qui vide les champs non hidden d'un formulaire */
function empty_form(id)
{
    for(var j = 0; j < id.elements.length; j++)
        if(id.elements[j].type != 'hidden')
            id.elements[j].value = '';
}


/* Returns: un message ou rien si tous est ok */
/* Description: Fonction qui controle le formulaire */
/* Description: ajouter l'attribut required à tous les champs obligatoire du formulaire */
/* Description: utilise l'attribut desc pour le message si présent */
function required_control(id,classAlert,classSuccess)
{
    var msg = '';
    var required_msg = '';
    var format_msg = '';
    var required_premier = 0;
    var format_premier = 0;
    var premier = 0;
    
    var la_format = new Array();
    la_format['code_postal'] = "01234";
    la_format['tel'] = "01.02.03.04.05";
    la_format['mail'] = "name@domain.tld";
    la_format['date'] = "01/01/1970";
    la_format['integer'] = "entier";
    
    for(var j = 0; j < id.elements.length; j++)
    {    	
        if(classSuccess!='' 
        && id.elements[j].getAttribute('type') != 'checkbox' 
        && id.elements[j].getAttribute('type') != 'radio' 
        && id.elements[j].getAttribute('type') != 'button' 
        && id.elements[j].getAttribute('type') != 'submit' 
        && id.elements[j].getAttribute('type') != 'file')
        	id.elements[j].className = classSuccess;
        
		// on remplace jj/mm/aaaa sur les date par vide		
		if(id.elements[j].getAttribute('format') == 'date' && id.elements[j].value == 'jj/mm/aaaa')id.elements[j].value = '';
		
        // Controle des champs requis
        if(id.elements[j].getAttribute('required')!=null && id.elements[j].value.replace(/^\s+/, '').replace(/\s+$/, '') == "")
        {
            if(required_premier>0) required_msg += ', ';
            if(id.elements[j].getAttribute('desc')!=null)required_msg += '"'+id.elements[j].getAttribute('desc')+'"';
            else required_msg += '"'+id.elements[j].name+'"';
            if(classAlert!='')id.elements[j].className = classAlert;
            required_premier = 1;
        }

        // Controle des formats
        if(id.elements[j].getAttribute('format')!=null && id.elements[j].value.replace(/^\s+/, '').replace(/\s+$/, '') != "")
        {
            switch(id.elements[j].getAttribute('format'))
            {
                case "char":
                  regex=new RegExp("^[_a-z0-9]+$", "gi");
                  break;

                case "integer":
                  regex=new RegExp("^[0-9]+$", "gi");
                  break;

                case "decimal":
                  regex=new RegExp("^[0-9.]+$", "gi");
                  break;

                case "code_postal":
                  regex=new RegExp("^(0[1-9]|[1-9][0-9])[0-9]{3}$", "g");
                  break;

                case "mail":
                  regex=new RegExp("^[a-z0-9_]([.-]?[a-z0-9_]+)+@[a-z0-9_]([.-]?[a-z0-9_]+)+\.([a-z]{2,4}|[a-z]{6})$", "gi");
                  break;

                case "tel":
                  regex=new RegExp("^[0-9+() .-]{6,32}$", "g");
                  break;
                  
                case "date":
                  regex=new RegExp("^[0-9]{2}[/]{1}[0-9]{2}[/]{1}[0-9]{4}$", "g");
                  break;

                // par défaut (non vide)
                default:
                  regex=new RegExp("^.+$", "g");

            }
            if(!regex.exec(id.elements[j].value))
            {
                if(format_premier>0) format_msg += '\n';
                if(id.elements[j].getAttribute('desc')!=null)format_msg += '"'+id.elements[j].getAttribute('desc')+'" doit être au format "'+la_format[id.elements[j].getAttribute('format')]+'"';
                else format_msg += '"'+id.elements[j].name+'" doit être au format "'+la_format[id.elements[j].getAttribute('format')]+'"';
                if(classAlert!='')id.elements[j].className = classAlert;
                format_premier = 1;
            }
        }
    }
    // Construction du message
    if(required_msg != "") msg = 'Les champs '+required_msg+' doivent être remplis !';
    if(format_msg != "") msg += '\n'+format_msg;
    if(msg!="")return msg;
    else return "";
}

// Fonction qui valide ou affiche une alerte
function valide_form(form_name,classAlert,classSuccess){
    var alerte = required_control(form_name,classAlert,classSuccess);
    if(alerte == ""){form_name.submit();}
    else{alert(alerte);}
}

function date_format(id)
{
    for(var j = 0; j < id.elements.length; j++)
    {
        // Controle des formats
        if(id.elements[j].getAttribute('format')!=null && id.elements[j].value.replace(/^\s+/, '').replace(/\s+$/, '') != "" && id.elements[j].getAttribute('format') == "date")
        {
            //var maDate =    id.elements[j].value);
            //id.elements[j].value = (maDate.getYear()+1900)+"-"+(maDate.getMonth()+1)+"-"+maDate.getDate();
            var maDate = id.elements[j].value;
            id.elements[j].value = maDate.substring(6,10)+"-"+maDate.substring(3,5)+"-"+maDate.substring(0,2);
        }
    }
}
var lo_interval;
	function showMenu(id,prefixe){
		if(!prefixe)prefixe="div_ajaxselect_";
		objectid = prefixe+id;
		if(lo_interval) clearInterval(lo_interval);
		for (var i = 1; i<=10; i++) {
			currentobjectid = prefixe+i;
			if (i != id && document.getElementById(currentobjectid)) {document.getElementById(currentobjectid).style.display='none';}
		}
		Element.show(objectid);
	}
	function hideMenu(id,prefixe){
		if(!prefixe)prefixe="div_ajaxselect_";
		objectid = prefixe+id;
		lo_interval = setInterval("Element.hide('"+objectid+"');",200);
	}
	function toggleAjaxSelect(lo_button){
		li_i = 1;
		while($('nature['+$(lo_button).value+']['+li_i+']') != undefined){
			$('nature['+$(lo_button).value+']['+li_i+']').checked = $(lo_button).checked;
			li_i++;
		}
	}
	function serializeNature(){
		var ls_nature = '';
		li_i = 1;
		while($('nature[1]['+li_i+']') != undefined){
			if($('nature[1]['+li_i+']').checked) {
				if(ls_nature == "") ls_nature += $('nature[1]['+li_i+']').value;
				else ls_nature += ","+$('nature[1]['+li_i+']').value;
			}
			li_i++;
		}

		li_i = 1;
		while($('nature[2]['+li_i+']') != undefined){
			if($('nature[2]['+li_i+']').checked) {
				if(ls_nature == "") ls_nature += $('nature[2]['+li_i+']').value;
				else ls_nature += ","+$('nature[2]['+li_i+']').value;
			}
			li_i++;
		}

		li_i = 1;
		while($('nature[3]['+li_i+']') != undefined){
			if($('nature[3]['+li_i+']').checked) {
				if(ls_nature == "") ls_nature += $('nature[3]['+li_i+']').value;
				else ls_nature += ","+$('nature[3]['+li_i+']').value;
			}
			li_i++;
		}
		$('natures').value = ls_nature;
	}
	function updateNbpiece(){
		var ls_nbpiece = "";
		li_i = 1;
		while($('macronbpiece['+li_i+']') != undefined){
			if($('macronbpiece['+li_i+']').checked && ls_nbpiece!="") ls_nbpiece += ","+$('macronbpiece['+li_i+']').value;
			if($('macronbpiece['+li_i+']').checked && ls_nbpiece=="") ls_nbpiece += $('macronbpiece['+li_i+']').value;
			li_i++;
		}
		$('nb_pieces').value = ls_nbpiece;
	}