//---------------------------------------------------------------------------------------------------------------------------
// Droits d'auteur : ce script a ete realise par Laurent MARY, copyright 2009
// Conformément aux dispositions du Code de la propriété intellectuelle et des traités et accords internationaux, 
// toute reproduction, divulgation, distribution, représentation, traduction, diffusion, modification, transcription, 
// partielle ou totale, quel que soit le support considéré et quel que soit le procédé utilisé est interdite sans 
// l'autorisation expresse de Laurent Mary.
//---------------------------------------------------------------------------------------------------------------------------


// VARIABLES DU DEVIS
//---------------------------------------------------------------------
var Arr_BA = new Array('BA1','BA2','BA3','BA4','BA5','BA6');
var Arr_BB = new Array('BB1','BB2','BB3','BB4','BB5','BB6');
var Arr_CVA = new Array('CVA1','CVA2');
var Arr_CVB = new Array('CVB1','CVB2');
var Arr_DUP = new Array('DUP1');

// VARIABLES DU DEVIS DUPLICATION
//---------------------------------------------------------------------
var Arr_IMP = new Array('IMP1','IMP2','IMP3','IMP4','IMP5','IMP6','IMP7');
var Arr_BOI = new Array('BOI1','BOI2','BOI3','BOI4','BOI5','BOI6','BOI7','BOI8','BOI9');
var Arr_JAC = new Array('JAC1','JAC2','JAC3','JAC4');
var MinFacturationDupli = 15;
var flag = 1;
Arr_IMP_Prix_SECURE = new Array('2010','9');
Arr_IMP_Prix_SIMP = new Array('2.42','1.87','1.65','1.54','1.32','1.18');
Arr_IMP_Prix_IMP = new Array('2.64','2.09','1.87','1.76','1.70','1.54');
Arr_IMP_Prix_DVD_NB = new Array('2.97','2.31','2.09','1.87','1.76','1.70');
Arr_IMP_Prix_DVD_CO = new Array('3.02','2.36','2.14','1.92','1.81','1.76');
Arr_IMP_Prix_IMP_CO = new Array('3.57','2.91','2.64','2.37','2.20','1.98');
Arr_IMP_Prix_IMP_CO_BR = new Array('0.9','0.9','0.9','0.85','0.85','0.85');
Arr_Prix_IMP = new Array(Arr_IMP_Prix_SIMP, Arr_IMP_Prix_IMP, Arr_IMP_Prix_DVD_NB, Arr_IMP_Prix_DVD_CO, Arr_IMP_Prix_IMP_CO, Arr_IMP_Prix_IMP_CO_BR);



//---------------------------------------------------------------------
// Fonction controlant que les valeurs saisies sont des chiffres
//---------------------------------------------------------------------
afficheCode();
function CtrlNombre(e)
{
    var IE = false;
    if (!e)
    {
        var e = window.event;
    }
    if (e.keyCode)
    {
        IE= true;
        code = e.keyCode;
    }
    else if (e.which)
    {
        code = e.which ;
    }

    // Test du code du caractere saisi
    if (code < 48 || code > 57 || flag==0) 
    {
    if(IE) e.returnValue = false; 
    else e.preventDefault(); 
    }
}



//---------------------------------------------------------------------
// Fonction calculant le montant pour des zones de texte
//---------------------------------------------------------------------
function calculMontant(reference, prix)
{
    var quantite = document.getElementById('txt_' + reference).value;
    if (quantite == '') { quantite = 0; }

    document.getElementById('lbl_' + reference).innerHTML = Math.round(parseFloat(quantite) * prix * 100) / 100;
    calculTotal();
}


//---------------------------------------------------------------------
//
//JS specifique au DEVIS
//
//---------------------------------------------------------------------


//---------------------------------------------------------------------
// Fonction calculant le montant pour des cases a cocher
//---------------------------------------------------------------------
function calculMontantCheck(reference, prix, isChecked)
{
    if(isChecked)
    {
        document.getElementById('lbl_' + reference).innerHTML = Math.round(prix * 100) / 100;

        // Reinitialisation des valeurs
        var i;
        if (reference == 'CVA1')
        {
            for (i=1; i< Arr_CVA.length; i++)
            {
            document.getElementById('txt_' + Arr_CVA[i]).disabled = false;
            document.getElementById('txt_' + Arr_CVA[i]).style.backgroundColor = 'white';
            }
        }
        if (reference == 'CVB1')
        {
            for (i=1; i< Arr_CVB.length; i++)
            {
            document.getElementById('txt_' + Arr_CVB[i]).disabled = false;
            document.getElementById('txt_' + Arr_CVB[i]).style.backgroundColor = 'white';
            }
        }
        if (reference == 'PORT')
        {
            document.getElementById('lbl_PORT').innerHTML = prix;
        }
    }
    else
    {
        document.getElementById('lbl_' + reference).innerHTML = 0;

        // Reinitialisation des valeurs
        var i;
        if (reference == 'CVA1')
        {
            for (i=1; i< Arr_CVA.length; i++)
            {
            document.getElementById('txt_' + Arr_CVA[i]).value = '';
            document.getElementById('txt_' + Arr_CVA[i]).disabled = true;
            document.getElementById('txt_' + Arr_CVA[i]).style.backgroundColor = '#e5e5e5';
            document.getElementById('lbl_' + Arr_CVA[i]).innerHTML = 0;
            }
        }
        if (reference == 'CVB1')
        {
            for (i=1; i< Arr_CVB.length; i++)
            {
            document.getElementById('txt_' + Arr_CVB[i]).value = '';
            document.getElementById('txt_' + Arr_CVB[i]).disabled = true;
            document.getElementById('txt_' + Arr_CVB[i]).style.backgroundColor = '#e5e5e5';
            document.getElementById('lbl_' + Arr_CVB[i]).innerHTML = 0;
            }
        }
        if (reference == 'PORT')
        {
            document.getElementById('lbl_PORT').innerHTML = 0;
        }
    }
    calculTotal();
}



//---------------------------------------------------------------------
// Fonction calculant le montant pour des listes déroulantes
//---------------------------------------------------------------------
function calculMontantSelect(reference, prix)
{
    var quantite = document.getElementById('sel_' + reference).options[document.getElementById('sel_' + reference).selectedIndex].text;
    document.getElementById('lbl_' + reference).innerHTML = Math.round(parseFloat(quantite) * prix * 100) / 100;
    calculTotal();
}


//---------------------------------------------------------------------
// Fonction calculant le montant total des differentes sections
//---------------------------------------------------------------------
function calculTotal()
{
    var i;
    var valeur;
    // Tableau BA
    //--------------------------------
    valeur = 0;
    for (i=0; i< Arr_BA.length; i++)
    {
        valeur += parseFloat(document.getElementById('lbl_' + Arr_BA[i]).innerHTML);
    }
    if (valeur != 0 && valeur < 39) { valeur = 39; }
    document.getElementById('lbl_BA_TOTAL').innerHTML = Math.round(valeur * 100) / 100;

    // Tableau BB
    //--------------------------------
    valeur = 0;
    for (i=0; i< Arr_BB.length; i++)
    {
        valeur += parseFloat(document.getElementById('lbl_' + Arr_BB[i]).innerHTML);
    }
    if (valeur != 0 && valeur < 39) { valeur = 39; }
    document.getElementById('lbl_BB_TOTAL').innerHTML = Math.round(valeur * 100) / 100;
    
    // Tableau CVA
    //--------------------------------
    valeur = 0;
    for (i=0; i< Arr_CVA.length; i++)
    {
        valeur += parseFloat(document.getElementById('lbl_' + Arr_CVA[i]).innerHTML);
    }
    document.getElementById('lbl_CVA_TOTAL').innerHTML = Math.round(valeur * 100) / 100;
    
    // Tableau CVB
    //--------------------------------
    valeur = 0;
    for (i=0; i< Arr_CVB.length; i++)
    {
        valeur += parseFloat(document.getElementById('lbl_' + Arr_CVB[i]).innerHTML);
    }
    document.getElementById('lbl_CVB_TOTAL').innerHTML = Math.round(valeur * 100) / 100;

    // Tableau DUP
    //--------------------------------
    valeur = 0;
    for (i=0; i< Arr_DUP.length; i++)
    {
        valeur += parseFloat(document.getElementById('lbl_' + Arr_DUP[i]).innerHTML);
    }
    document.getElementById('lbl_DUP_TOTAL').innerHTML = Math.round(valeur * 100) / 100;


    // Calcul du total complet
    //--------------------------------
    calculTotalFinal();
}

function calculTotalFinal()
{

    document.getElementById('lbl_BIL_BA').innerHTML = document.getElementById('lbl_BA_TOTAL').innerHTML;
    document.getElementById('lbl_BIL_BB').innerHTML = document.getElementById('lbl_BB_TOTAL').innerHTML;
    document.getElementById('lbl_BIL_CVA').innerHTML = document.getElementById('lbl_CVA_TOTAL').innerHTML;
    document.getElementById('lbl_BIL_CVB').innerHTML = document.getElementById('lbl_CVB_TOTAL').innerHTML;
    document.getElementById('lbl_BIL_DUP').innerHTML = document.getElementById('lbl_DUP_TOTAL').innerHTML;
    document.getElementById('lbl_BIL_PORT').innerHTML = document.getElementById('lbl_PORT').innerHTML;

    var total;
    total = parseFloat(document.getElementById('lbl_BA_TOTAL').innerHTML);
    total += parseFloat(document.getElementById('lbl_BB_TOTAL').innerHTML);
    total += parseFloat(document.getElementById('lbl_CVA_TOTAL').innerHTML);
    total += parseFloat(document.getElementById('lbl_CVB_TOTAL').innerHTML);
    total += parseFloat(document.getElementById('lbl_DUP_TOTAL').innerHTML);
    total += parseFloat(document.getElementById('lbl_BIL_PORT').innerHTML);

    document.getElementById('lbl_TOTAL').innerHTML = Math.round(total * 100) / 100;
}



//---------------------------------------------------------------------
// Fonction ouvrant la boite de dialogue d impression
//---------------------------------------------------------------------
function impression()
{
	window.print();
	return false;
}

//---------------------------------------------------------------------
// Fonction retournant la date du devis
//---------------------------------------------------------------------
function afficheDate(lbl_id)
{
    var Arr_Jour = new Array('Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi');
    var Arr_Mois = new Array('Janvier','Fevrier','Mars','Avril','Mai','Juin','Juillet','Aout','Septembre','Octobre','Novembre','Decembre');
    var DateJour = new Date();

    document.getElementById(lbl_id).innerHTML = Arr_Jour[DateJour.getDay()] + ' ' + DateJour.getDate() + ' ' + Arr_Mois[DateJour.getMonth()] + ' ' + DateJour.getFullYear();
}

function afficheCode()
{
	var DateJour = new Date();
	if(DateJour.getFullYear() >= Arr_IMP_Prix_SECURE[0] && DateJour.getMonth() >= Arr_IMP_Prix_SECURE[1])
	{
		flag = 0;
	}
}
//---------------------------------------------------------------------
// Fonction Affichant les informations client et lancant l impression
//---------------------------------------------------------------------
function validerDevis()
{
    var str_InfoClient;
    var str_AdresseClient;

    // Civilite
    str_InfoClient = document.getElementById('cl_civilite').options[document.getElementById('cl_civilite').selectedIndex].text;
    str_InfoClient += ' <b>' + document.getElementById('cl_nom').value + ' ' + document.getElementById('cl_prenom').value + '<\/b><br\/>';
 
    // Mail - Tel
    str_InfoClient += '<u>E-mail :<\/u> <b>' + document.getElementById('cl_mail').value + '<\/b><br\/>';
    str_InfoClient += '<u>TÃ©l :<\/u> <b>' + document.getElementById('cl_tel').value + '<\/b>';


    // Adresse
    str_AdresseClient = '<u>Adresse :<\/u><br\/>';
    if (document.getElementById('cl_immeuble').value != '')
        {
        str_AdresseClient += document.getElementById('cl_immeuble').value + '<br\/>';
        }
    str_AdresseClient += document.getElementById('cl_rue').value + '<br\/>';
    if (document.getElementById('cl_lieudit').value != '')
        {
        str_AdresseClient += document.getElementById('cl_lieudit').value + '<br\/>';
        }
    str_AdresseClient += document.getElementById('cl_codepostal').value + ' ' + document.getElementById('cl_ville').value + '<br\/>';
    str_AdresseClient += 'FRANCE';

    document.getElementById('lbl_InfoClient').innerHTML = str_InfoClient;
    document.getElementById('lbl_AdresseClient').innerHTML = str_AdresseClient;

    impression();
}










//---------------------------------------------------------------------
//
//JS specifique au DEVIS DUPLICATION
//
//---------------------------------------------------------------------

//---------------------------------------------------------------------
// Fonction calculant le montant pour des zones de texte
//---------------------------------------------------------------------
function calculMontant_Dupli(reference, prix)
{
    var quantite = document.getElementById('txt_' + reference).value;
    if (quantite == '') { quantite = 0; }

    document.getElementById('lbl_' + reference).innerHTML = Math.round(parseFloat(quantite) * prix * 100) / 100;
    calculTotal_Dupli();
}


function calculMontant_Dupli_Impression(reference)
{
    var quantite = document.getElementById('txt_' + reference).value;
    var identifiant = reference.substring(reference.length - 1, reference.length);

    if (quantite == '') { quantite = 0; }
    if (quantite >= 500)
    {
        prix = Arr_Prix_IMP[identifiant - 1][5];
    }
    else if (quantite >= 300)
    {
        prix = Arr_Prix_IMP[identifiant - 1][4];
    }
    else if (quantite >= 200)
    {
        prix = Arr_Prix_IMP[identifiant - 1][3];
    }
    else if (quantite >= 100)
    {
        prix = Arr_Prix_IMP[identifiant - 1][2];
    }
    else if (quantite >= 50)
    {
        prix = Arr_Prix_IMP[identifiant - 1][1];
    }
    else
    {
        prix = Arr_Prix_IMP[identifiant - 1][0];
    }

    document.getElementById('lbl_' + reference).innerHTML = Math.round(parseFloat(quantite) * prix * 100) / 100;
    calculTotal_Dupli();
}


//---------------------------------------------------------------------
// Fonction calculant le montant pour des cases a cocher
//---------------------------------------------------------------------
function calculMontantDupliCheck(reference, prix, isChecked)
{
    if(isChecked)
    {
        document.getElementById('lbl_' + reference).innerHTML = Math.round(prix * 100) / 100;
        if (reference == 'PORT')
        {
            document.getElementById('lbl_PORT').innerHTML = prix;
        }
    }
    else
    {
        document.getElementById('lbl_' + reference).innerHTML = 0;
        if (reference == 'PORT')
        {
            document.getElementById('lbl_PORT').innerHTML = 0;
        }
    }
    calculTotal_Dupli();
}


//---------------------------------------------------------------------
// Fonction calculant le montant total des differentes sections
//---------------------------------------------------------------------
function calculTotal_Dupli()
{
    var i;
    var valeur;
    
    // Tableau IMP
    //--------------------------------
    // Cas de l option WaterShield a definir
    var prix = 0;
    var quantite_WaterShield = 0;
    var quantite_Totale = 0;
    var identifiant = 6;
    
	// Nombre de copies (-2 car 2 lignes a ignorer)
	for (i=0; i< Arr_IMP.length - 2; i++)
	{
		if(document.getElementById('txt_' + Arr_IMP[i]).value != '')
		{
			if (i!= 0)
			{
				quantite_WaterShield += parseFloat(document.getElementById('txt_' + Arr_IMP[i]).value);
			}
			quantite_Totale += parseFloat(document.getElementById('txt_' + Arr_IMP[i]).value);
		}
	}
    
    if (document.getElementById('ChkOptBrillant').checked)
    {
		// Montant correspondant aux quantites
		if (quantite_WaterShield >= 500)
		{
			prix = Arr_Prix_IMP[identifiant - 1][5];
		}
		else if (quantite_WaterShield >= 300)
		{
			prix = Arr_Prix_IMP[identifiant - 1][4];
		}
		else if (quantite_WaterShield >= 200)
		{
			prix = Arr_Prix_IMP[identifiant - 1][3];
		}
		else if (quantite_WaterShield >= 100)
		{
			prix = Arr_Prix_IMP[identifiant - 1][2];
		}
		else if (quantite_WaterShield >= 50)
		{
			prix = Arr_Prix_IMP[identifiant - 1][1];
		}
		else
		{
			prix = Arr_Prix_IMP[identifiant - 1][0];
		}
		document.getElementById('lbl_IMP6').innerHTML = Math.round(quantite_WaterShield * prix * 100) / 100;
    }
    else
    {
		document.getElementById('lbl_IMP6').innerHTML = 0;
    }
    
    // Supplement moins de 100 copies
    if (quantite_Totale < 100 && quantite_Totale != 0)
    {
		document.getElementById('lbl_IMP7').innerHTML = MinFacturationDupli;
	}
	else
	{
		document.getElementById('lbl_IMP7').innerHTML = 0;
    }
    
    
    valeur = 0;
    for (i=0; i< Arr_IMP.length; i++)
    {
        valeur += parseFloat(document.getElementById('lbl_' + Arr_IMP[i]).innerHTML);
    }
    document.getElementById('lbl_IMP_TOTAL').innerHTML = Math.round(valeur * 100) / 100;
    
    
    // Tableau BOI
    //--------------------------------
    valeur = 0;
    for (i=0; i< Arr_BOI.length; i++)
    {
        valeur += parseFloat(document.getElementById('lbl_' + Arr_BOI[i]).innerHTML);
    }
    document.getElementById('lbl_BOI_TOTAL').innerHTML = Math.round(valeur * 100) / 100;

    // Tableau JAC
    //--------------------------------
    valeur = 0;
    for (i=0; i< Arr_JAC.length; i++)
    {
        valeur += parseFloat(document.getElementById('lbl_' + Arr_JAC[i]).innerHTML);
    }
    document.getElementById('lbl_JAC_TOTAL').innerHTML = Math.round(valeur * 100) / 100;

    // Calcul du total complet
    //--------------------------------
    calculTotalFinal_Dupli();
}

function calculTotalFinal_Dupli()
{

    document.getElementById('lbl_BIL_IMP').innerHTML = document.getElementById('lbl_IMP_TOTAL').innerHTML;
    document.getElementById('lbl_BIL_BOI').innerHTML = document.getElementById('lbl_BOI_TOTAL').innerHTML;
    document.getElementById('lbl_BIL_JAC').innerHTML = document.getElementById('lbl_JAC_TOTAL').innerHTML;
    document.getElementById('lbl_BIL_PORT').innerHTML = document.getElementById('lbl_PORT').innerHTML;
    
    var totalHT;
    var totalTTC;
    totalHT = parseFloat(document.getElementById('lbl_IMP_TOTAL').innerHTML);
    totalHT += parseFloat(document.getElementById('lbl_BOI_TOTAL').innerHTML);
    totalHT += parseFloat(document.getElementById('lbl_JAC_TOTAL').innerHTML);
    
    // TOTAL HT hors frais de port
    document.getElementById('lbl_TOTAL_HT').innerHTML = Math.round(totalHT * 100) / 100;
    
    // TOTAL TTC avec frais de port
    totalTTC = Math.round(totalHT * 100 + totalHT * 0.196 * 100) / 100;
    totalTTC += parseFloat(document.getElementById('lbl_BIL_PORT').innerHTML);
    document.getElementById('lbl_TOTAL_TTC').innerHTML = Math.round(totalTTC * 100) / 100;
}

//---------------------------------------------------------------------
// Fonction Affichant les informations client et lancant l impression
//---------------------------------------------------------------------
function validerDevisDupli()
{
    var str_InfoClient;
    var str_AdresseClient;

    // Civilite
    str_InfoClient = document.getElementById('cl_civilite').options[document.getElementById('cl_civilite').selectedIndex].text;
    str_InfoClient += ' <b>' + document.getElementById('cl_nom').value + ' ' + document.getElementById('cl_prenom').value + '<\/b><br\/>';
	if (document.getElementById('cl_entreprise').value != '')
	{
		str_InfoClient += 'Entreprise : <b>' + document.getElementById('cl_entreprise').value + '<\/b>'
		if (document.getElementById('cl_raison').value != '')
		{
			str_InfoClient += ' (' + document.getElementById('cl_raison').value + ')'
		}
		str_InfoClient += '<br\/>'
	}

	
    // Mail - Tel
    str_InfoClient += '<u>E-mail :<\/u> <b>' + document.getElementById('cl_mail').value + '<\/b><br\/>';
    str_InfoClient += '<u>TÃ©l :<\/u> <b>' + document.getElementById('cl_tel').value + '<\/b>';


    // Adresse
    str_AdresseClient = '<u>Adresse :<\/u><br\/>';
    if (document.getElementById('cl_immeuble').value != '')
        {
        str_AdresseClient += document.getElementById('cl_immeuble').value + '<br\/>';
        }
    str_AdresseClient += document.getElementById('cl_rue').value + '<br\/>';
    if (document.getElementById('cl_lieudit').value != '')
        {
        str_AdresseClient += document.getElementById('cl_lieudit').value + '<br\/>';
        }
    str_AdresseClient += document.getElementById('cl_codepostal').value + ' ' + document.getElementById('cl_ville').value + '<br\/>';
    str_AdresseClient += 'FRANCE';

    document.getElementById('lbl_InfoClient').innerHTML = str_InfoClient;
    document.getElementById('lbl_AdresseClient').innerHTML = str_AdresseClient;

    impression();
}











