// préchargement des images hidden
i1 = new Image;
i1.src = "../images/marquage-oublie.png";


function testForm()
{
	if(document.getElementById('qte').value=='' || document.getElementById('qte').value=='0')
    {
		alert('Merci de choisir une quantité');
		document.getElementById('qte').focus();
		return false;
	}
	else if(document.getElementById('choixCouleur') && document.getElementById('choixCouleur').value=='')
	{
		alert('Merci de choisir une couleur');
		document.getElementById('choixCouleur').focus();
		return false;
	}
	else
	{
		document.getElementById('formCommande').submit();
	}
}


$(function()
{
    $('select#prixMarquage1').selectmenu(
    {
        menuWidth: 300,
        maxHeight: 300
    });
    $('select#prixMarquage2').selectmenu(
    {
        menuWidth: 300,
        maxHeight: 300
    });
    $('select#prixMarquage3').selectmenu(
    {
        menuWidth: 300,
        maxHeight: 300
    });
    $('select#prixMarquage4').selectmenu(
    {
        menuWidth: 300,
        maxHeight: 300
    });
});

//a custom format option callback
var addressFormatting = function(text){
    var newText = text;
    //array of find replaces
    var findreps = [
        {find:/^([^\-]+) \- /g, rep: '<span class="ui-selectmenu-item-header">$1</span>'},
        {find:/([^\|><]+) \| /g, rep: '<span class="ui-selectmenu-item-content">$1</span>'},
        {find:/([^\|><\(\)]+) (\()/g, rep: '<span class="ui-selectmenu-item-content">$1</span>$2'},
        {find:/([^\|><\(\)]+)$/g, rep: '<span class="ui-selectmenu-item-content">$1</span>'},
        {find:/(\([^\|><]+\))$/g, rep: '<span class="ui-selectmenu-item-footer">$1</span>'}
    ];

    for(var i in findreps){
        newText = newText.replace(findreps[i].find, findreps[i].rep);
    }
    return newText;
}


function launch_ajax(change)
{
    //change est égal à 0 ou 1, si 0, on additionne les tailles et on ne les actualise pas au retour ajax
    if (change == 0 && document.getElementById('taille1'))
    {
        var totalTaille = 0
        for(var x=1; x<=10; x++)
        {
            if (document.getElementById('taille'+x))
            {
                totalTaille += (document.getElementById('taille'+x).value)*1;
            }
        }
        var valeur_entree = totalTaille;
    }
    else { var valeur_entree = document.getElementById("qte").value;}

    // la fonction récupère 6 champs pour les donner à maj
    var reference = document.getElementById('ref').value;
    var pos = new Array();
    for (var i=1; i<=4; i++)
        {
            if(document.getElementById('marquageQt'+i))
            {
                pos[i] = document.getElementById('prixMarquage'+i).value;
            }
        }
    // lancement de la fonction maj (requete ajax) avec les 6 données entrées
    if(typeof(test) != 'undefined')
    {
        clearTimeout(test);
    }

    // on lance le ajax-loader.gif
    document.getElementById("loader").style.display = 'inline';
    test = setTimeout(function(){maj(valeur_entree, reference, pos[1], pos[2], pos[3], pos[4], change);}, 500);
}


function maj(valeur_entree, reference, pos1, pos2, pos3, pos4, repchange)
{
    $.get('ajax_fiche_produit.php?valeur='+valeur_entree+'&ref='+reference+'&pos1='+pos1+'&pos2='+pos2+'&pos3='+pos3+'&pos4='+pos4,
        function(data)
        {
            // on coupe le ajax-loader.gif quand les données sont chargées
            document.getElementById("loader").style.display = 'none';

            // je récupère la chaine de caractères voulue et je la distribue dans la page
            var donnees = data.split("|");
            // donnees[0] = quantité choisie (filtrée)
            // donnees[1] = correcteur de répartition
            // donnees[2] = prix unitaire (en fonction du nombre)
            // donnees[3] = répartitions des tailles, à distribuer
                // repTaille[0] est vide : l'underscore est laissé en position 1
                var repTailles = donnees[3].split("_");

            document.getElementById('qte').value = donnees[0];

            if(donnees[2] == "") {document.getElementById('prodPrixUnit').innerHTML = number_format('0', 2, ',', ' ');}
            else {document.getElementById('prodPrixUnit').innerHTML = number_format(donnees[2], 2, ',', ' ');}

            document.getElementById('prodPrixTot').innerHTML = number_format(donnees[0]*donnees[2], 2, ',', ' ');

            // insertion des répartitions (-1 parce que repTaille[0] est vide)
            if(repchange == 1)
            {
                for (var i=1; i<=repTailles.length-1; i++)
                {
                    // insertion de la valeur dans son champ
                    document.getElementById('taille'+i).value = repTailles[i];

                    // si on a un correcteur positif :
                    if (donnees[1] > 0)
                    {
                        // on vérifie la différence pour voir combien on peut enlever au champ, on retourne le reste au correcteur
                        if(repTailles[i]-donnees[1] >= 0)
                        {
                            document.getElementById('taille'+i).value = repTailles[i]-donnees[1];
                            donnees[1] = 0;
                        }
                        else
                        {
                            document.getElementById('taille'+i).value = 0;
                            donnees[1] = 1;
                        }
                    }
                    else
                    {
                        document.getElementById('taille'+i).value = repTailles[i]-donnees[1];
                        donnees[1] = 0;
                    }
                }
            }

            // si on a une quantite positive, on s'occupe de modifier les marquages
            if(donnees[0] > 0)
            {
                // les différentes positions (sont retournées les positions affichées uniquement,
                // donc il faut tester avant d'insérer les prix).
                // donnees[4] = position 1
                // donnees[5] = position 2
                // donnees[6] = position 3
                // donnees[7] = position 4
                // si des positions existent, on copie le nombre dans les positions
                var prix_marquage_final = 0;
                for (var i=1; i<=4; i++)
                {
                    if(document.getElementById('marquageQt'+i))
                    {
                        // mqPrix[0] = quantite (minimale ou choisie par l'utilisateur si > à mini)
                        // mqPrix[1] = prix du marquage total
                        // donnees[3+i] = de 3 à 6 inclus
                        var mqPrix = donnees[3+i].split('+');


                        // affichage du total du marquage (* coeff)
                        var quantite = mqPrix[0]*1;
                        var prixMarquageTotal = mqPrix[1]*1;

                        document.getElementById('marquageQt'+i).innerHTML = quantite;
                        document.getElementById('marquageQtPrix'+i).innerHTML = number_format(prixMarquageTotal, 2, ',', ' ');
                        prix_marquage_final += prixMarquageTotal;

                        // le message d'avertissement si les produits ne sont pas assez nombreux pour le marquage en question
                        if(donnees[0] < quantite) {document.getElementById('alert_marquage_'+i).innerHTML = 'Attention : minimum pour cette position : '+quantite+' marquages';}
                        else {document.getElementById('alert_marquage_'+i).innerHTML = ""}

                        // et enfin le marquage prix à donner par déduction (sinon le client comprend rien)
                        document.getElementById('marquagePrix'+i).innerHTML = number_format(prixMarquageTotal/quantite, 3, ',', ' ');
                    }
                }
                // quand la boucle est terminée, on affiche le marquage total
				if($("#marquageTotal").length > 0) {
					document.getElementById('marquageTotal').innerHTML = number_format(prix_marquage_final, 2, ',', ' ');
				}

                // ici on intègre le prix final dans la colonne de gauche
                var prixFinal = donnees[0]*donnees[2]+prix_marquage_final;
            }
            document.getElementById('spanPrixTotal').innerHTML = number_format(prixFinal, 2, ',', ' ');
            document.getElementById('spanParProd').innerHTML = number_format(prixFinal/donnees[0], 2, ',', ' ');
        }
    );
}

function checkmarkin()
{
    // on vérifie si un marquage est dispo pour ce produit
    if(document.getElementById('marquageQt1'))
    {
        var ismark = false;
        // alors on check si un ou des marquages sont selectionnés
        for (var i=1; i<=4; i++)
        {
            if(document.getElementById('marquageQt'+i))
            {
                // si aucun marquage n'est selectionné
                if(document.getElementById('prixMarquage'+i).value == '-') {var ismark = false;}
                else
                {
                    var ismark = true;
                    // on quitte la boucle
                    i = 4;
                };
            }
        }

        // si un marquage existe pour ce produit et que tous sont sur "vide", on lance l'alerte
        if(ismark == false)
        {
            if($('.info_bulle_produit').is(":hidden"))
            {
                $('.info_bulle_produit').css({"display" : "block"});
            }
        }
    }
}
function checkmarkout()
{
    // si la bulle est affichée, on l'efface
    if($('.info_bulle_produit').is(":visible"))
    {
        $('.info_bulle_produit').css({"display" : "none"});
    }
}
