
// Vérification des champs obligatoires sélectionnés

function cfg_articles_verif()
{
    cancel = false;
    
    for (i = 0; i <  document.form_cfg_articles.length; ++i) {   // Parcours tous les objets du formulaire
        if (document.form_cfg_articles[i].type == 'select-one') {    // Liste
            objet = document.form_cfg_articles[i];
            
            if (!objet[0].value && !objet[objet.selectedIndex].value) {
                cancel = true;
            }
        }
    }    

    if (cancel) {
        alert('Veuillez sélectionner toutes les options obligatoires');
        return false;
    } else {
        return true;
    }
}

// Met à jour le prix de la liste dans la zone de saisie des prix de chaque domaine
// @domaine_key Index du domaine

function maj_prix_ligne(domaine_key)
{
    cfg_saisie_ini('cfg[' + domaine_key + ']', 'cfg_prix[' + domaine_key +']');
    cfg_calcul();
}

// Extrait le prix de la liste
// @objet   Objet
// @saisie  Nom de la zone de saisie du prix

function cfg_saisie_ini(objet, saisie)
{
        var prix = 0;
        var item = document.getElementById(objet);
    
        // Récupère la valeur de l'option
        if (item.type == 'select-one') {    // Liste
            prix = item.options[item.selectedIndex].value;
        } else if (item.type == 'text') {   // Input
            prix = item.value;
        }
        
        prix = prix.split('%');                                                             // Séparer les infos
        document.getElementById(saisie).value = prix_format(parseInt(prix[2] * 100), true); // Demande le prix formatté
}


// Calcul le total des pièces du configurateur pc

function cfg_calcul()
{
    // Initialisation

    tot = 0;

    // Lecture des prix

    for (i = 0; i <  document.form_cfg_articles.length; ++i) {   // Parcours tous les objets du formulaire
        if (document.form_cfg_articles[i].type == 'text' && !document.form_cfg_articles[i].name.search(/cfg_prix/) && document.form_cfg_articles[i].value.search(/€/)) {   // Produit sélectionné d'un total d'option
            prix = document.form_cfg_articles[i].value.replace(/\s/, '');
            tot += prix_format(prix.replace(/\s/, ''), false);  // Prix en numérique
        }
    }
    tot = prix_format(tot, true);   // Formattage du total

    // Affichage

    document.form_cfg_articles['cfg_options'].value = tot;
    
    if (typeof(document.form_cfg_articles['cfg_base']) != 'undefined') {
        cfg_totaux();
    }
}

// Prix formatté

function prix_format(prix, numerique_chaine)
{
    if (numerique_chaine) { // Numérique en chaîne
        if (prix > 0) {  // Total à formatter
            prix = prix.toString();
            prix = prix.substring(0, prix.length - 2) + "," + prix.substring(prix.length - 2, prix.length) + ' €';  // Prix formatté avec une virgule est €
        } 
        else {
            prix = '0,00 €'; // Total par défaut
        }
    } else {                // Chaîne en numérique
        prix = prix.replace(/,/, '');   // Supprime la virgule
        prix = prix.replace(/\s/, '');  // Enlève les espaces
        prix = prix.replace(/€/, '');   // Enlève le symbole monétaire
        prix = parseInt(prix);          // Conversion en numérique
    }
    
    return prix;    // Retour
}

// Totaux

function cfg_totaux()
{
    total = prix_format(document.form_cfg_articles['cfg_base'].value, false) + prix_format(document.form_cfg_articles['cfg_options'].value, false);
    document.form_cfg_articles['cfg_total'].value = prix_format(total, true);
}

// Vérification du formulaire

function form_cfg_articles_verif()
{
    for (i = 0; i <  document.form_cfg_articles.length; ++i) {
        if (document.form_cfg_articles[i].type == 'list-one') {   // Produit sélectionné d'un total d'option
            tot += prix_format(document.form_cfg_articles[i].value, false);  // Prix en numérique
        }
    }
}

