function show_hide_by_id(id) {
    var elem = document.getElementById(id);
    if (elem.style.display == 'none') {
        elem.style.display = 'block';
    } else {
        elem.style.display = 'none';
    }
}

function show_one_hide_grp(id, name_grp) {
    var divs = document.getElementsByTagName('div');
    for (i=0; i<divs.length; i++) {
        if (divs[i].getAttribute('id')) {
            var ident = divs[i].getAttribute('id');
            var len_name = name_grp.length;
            if (ident.substr(0, len_name) == id.substr(0, len_name)) {
                divs[i].style.display = 'none';
            }
        }
    }
    if (document.getElementById(id)) {
        document.getElementById(id).style.display = 'block';
    }
}                                                                                                                                                                    

function visu_one_hide_grp(id, name_grp) {
    var divs = document.getElementsByTagName('div');
    for (i=0; i<divs.length; i++) {
        if (divs[i].getAttribute('id')) {
            var ident = divs[i].getAttribute('id');
            var len_name = name_grp.length;
            if (ident.substr(0, len_name) == id.substr(0, len_name)) {
                divs[i].style.visibility = 'hidden';
            }
        }
    }
    if (document.getElementById(id)) {
        document.getElementById(id).style.visibility = 'visible';
    }
}                                                                                                                                                                    

function ch_classe(id, classe) {
    document.getElementById(id).className = classe;
}

function mod_class(action, object, class_1, class_2) {
    switch (action) {
        case 'swap':
            object.className = !mod_class('check',object,class_1) ? object.className.replace(class_2,class_1) : object.className.replace(class_1,class_2);
        break;
        case 'add':
            if (!mod_class('check', object, class_1)) {
                object.className += object.className ? ' '+class_1 : class_1;
            }
        break;
        case 'remove':
            var rep = object.className.match(' '+class_1) ? ' '+class_1 : class_1;
            object.className = object.className.replace(rep,'');
        break;
        case 'check':
            return new RegExp('\\b'+class_1+'\\b').test(object.className)
        break;
    }
}

function tab_select(me) {
    for (var i in me.parentNode.childNodes) {
        var e =  me.parentNode.childNodes[i];
	if (e.className == 'selected') { 
	    e.className = '';
	}
    }
    me.className = 'selected';
}

function isValidEmail(email, required) {
    if (required==undefined) {   // if not specified, assume it's required
	required=true;
    }
    if (email==null) {
	if (required) {
	    return false;
	}
	return true;
    }
    if (email.length==0) {  
	if (required) {
	    return false;
	}
	return true;
    }
    if (! allValidChars(email)) {  // check to make sure all characters are valid
	return false;
    }
    if (email.indexOf("@") < 1) { //  must contain @, and it must not be the first character
	return false;
    } else if (email.lastIndexOf(".") <= email.indexOf("@")) {  // last dot must be after the @
	return false;
    } else if (email.indexOf("@") == email.length) {  // @ must not be the last character
	return false;
    } else if (email.indexOf("..") >=0) { // two periods in a row is not valid
	return false;
    } else if (email.indexOf(".") == email.length) {  // . must not be the last character
	return false;
    }
    return true;
}

function allValidChars(email) {
    var parsed = true;
    var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
    for (var i=0; i < email.length; i++) {
	var letter = email.charAt(i).toLowerCase();
	if (validchars.indexOf(letter) != -1)
	    continue;
	parsed = false;
	break;
    }
    return parsed;
}

function lettre_info() {
    var err = document.getElementById('err');

    if (!isValidEmail(document.newsletter.email.value)) {
        err.innerHTML = "Merci de saisir une adresse e-mail valide.";
        err.style.display = 'block';
        document.newsletter.email.focus();
        return false;
    }

    return true;
}

function contacter() {
    var ok = true;
    if (valide_objet() == false) { ok = false; }
    if (document.getElementById('devis_arch') && document.getElementById('devis_arch').style.display != 'none') {
        if (ok && document.getElementById('papier_oui').checked) {
            if (valide_papier() == false) { ok = false; }
        }
        if (ok && document.getElementById('numeris_oui').checked) {
            if (valide_numeris() == false) { ok = false; }
        }
        if (ok && document.getElementById('docelec_oui').checked) {
            if (valide_docelec() == false) { ok = false; }
        }
    }
    if (ok) {
        if (valide_coord() == false) { ok = false; }
    }
    if (ok && document.getElementById('msg') && document.getElementById('msg').style.display != 'none') {
        if (valide_msg() == false) { ok = false; }
    }
    return ok;
}

function redir(href, delai) {
    setTimeout(function() {window.location.replace(href);}, delai);
}

function ajout_champ(id_elem, type, name_grp, limite) {
    var inputs = document.getElementsByTagName('input');
    var nb = 0;
    for (i=0; i<inputs.length; i++) {
        if (inputs[i].getAttribute('id') && inputs[i].getAttribute('id').substr(0, name_grp.length) == name_grp) {
            nb++;
        }
    }

    var nom_champ = name_grp + nb;
    var new_div = document.createElement('div');
    new_div.setAttribute('class', 'e2iform');
    var new_label = document.createElement('label');
    new_label.setAttribute('class', 'e2i');
    new_label.innerHTML = '&nbsp;'; // pour palier la différence due à l'indentation
    var new_input = document.createElement('input');
    new_input.setAttribute('type', type);
    new_input.setAttribute('name', nom_champ);
    new_input.setAttribute('id', nom_champ);
    var new_span = document.createElement('span');
    new_span.setAttribute('class', 'intitule');

    new_div.appendChild(new_label);
    new_label.appendChild(new_span);
    new_label.appendChild(new_input);
    document.getElementById(id_elem).appendChild(new_div);

    // si on atteint la limite du nombre de champs
    if ((nb + 1) == limite) {
        document.getElementById('ajout_champ').style.display = 'none';
    }
}

