var vPrixBHFRANCE= 0.029;
var prixBHSFR= 0.24;
var prixBHBTEL= 0.24;



var prixNL=12.9;
var prixEM=2.9;
var prixCNXEM = 0.29;
var prixMOBEM = 0.01;



var TotalBTClassique = 0;
var TotalBTNL = 0;
var TotalBTEM = 0;
var TotalBTNLEM = 0;

var vTotalBT = 0;
var vTotalOP = 0;
var vECO_EURO = 0;
var vECO_PCENT = 0;


function ZPrixBH(aZoneName, aPrixBH) {
	this.zoneName=   aZoneName;
	this.prixBH=   aPrixBH;  
	
}
vPrixBH = new Array();
vPrixBH[0]   = new ZPrixBH('-----------------',0.00);
vPrixBH[1]   = new ZPrixBH('Afrique du sud',0.25);
vPrixBH[2]   = new ZPrixBH('Algerie',0.23);
vPrixBH[3]   = new ZPrixBH('Allemagne',0.055);
vPrixBH[4]   = new ZPrixBH('Argentine',0.18);
vPrixBH[5]   = new ZPrixBH('Australie',0.085);
vPrixBH[6]   = new ZPrixBH('Autriche',0.065);
vPrixBH[7]   = new ZPrixBH('Belgique',0.055);
vPrixBH[8]   = new ZPrixBH('Benin',0.38);
vPrixBH[9]   = new ZPrixBH('Bresil',0.18);
vPrixBH[10] = new ZPrixBH('Cameroun',0.41);
vPrixBH[11] = new ZPrixBH('Canada',0.06);
vPrixBH[12] = new ZPrixBH('Chili',0.12);
vPrixBH[13] = new ZPrixBH('Chine',0.22);
vPrixBH[14] = new ZPrixBH('Colombie',0.18);
vPrixBH[15] = new ZPrixBH('Coree du Sud',0.1);
vPrixBH[16] = new ZPrixBH('Cote d Ivoire',0.38);
vPrixBH[17] = new ZPrixBH('Danemark',0.06);
vPrixBH[18] = new ZPrixBH('Dominicaine (Rep.)',0.18);
vPrixBH[19] = new ZPrixBH('Espagne',0.055);
vPrixBH[20] = new ZPrixBH('Etats-Unis',0.055);
vPrixBH[21] = new ZPrixBH('Gabon',0.28);
vPrixBH[22] = new ZPrixBH('Guadeloupe',0.15);
vPrixBH[23] = new ZPrixBH('Hong Kong',0.075);
vPrixBH[24] = new ZPrixBH('Hongrie',0.12);
vPrixBH[25] = new ZPrixBH('Irlande',0.065);
vPrixBH[26] = new ZPrixBH('Israel',0.12);
vPrixBH[27] = new ZPrixBH('Italie',0.055);
vPrixBH[28] = new ZPrixBH('Japon',0.09);
vPrixBH[29] = new ZPrixBH('Liban',0.29);
vPrixBH[30] = new ZPrixBH('Madagascar - mobile',0.48);
vPrixBH[31] = new ZPrixBH('Malaisie',0.11);
vPrixBH[32] = new ZPrixBH('Maroc',0.29);
vPrixBH[33] = new ZPrixBH('Mexique',0.23);
vPrixBH[34] = new ZPrixBH('Pays-Bas',0.055);
vPrixBH[35] = new ZPrixBH('Perou',0.25);
vPrixBH[36] = new ZPrixBH('Pologne',0.16);
vPrixBH[37] = new ZPrixBH('Polynesie Francaise',0.38);
vPrixBH[38] = new ZPrixBH('Portugal',0.08);
vPrixBH[39] = new ZPrixBH('Roumanie',0.27);
vPrixBH[40] = new ZPrixBH('Royaume-Uni',0.055);
vPrixBH[41] = new ZPrixBH('Russie - Moscou',0.13);
vPrixBH[42] = new ZPrixBH('Senegal',0.38);
vPrixBH[43] = new ZPrixBH('Suede',0.06);
vPrixBH[44] = new ZPrixBH('Suisse',0.065);
vPrixBH[45] = new ZPrixBH('Thailande',0.29);
vPrixBH[46] = new ZPrixBH('Tunisie - mobile',0.34);
vPrixBH[47] = new ZPrixBH('Turquie',0.26);

//' affichage des la liste des pays
function displayDestList(pNum) {
	var vName = "LDestinations"+pNum;
	document.write('<select size="1" name="'+vName+'" class="InputMini">');
	for (var h=0; h<vPrixBH.length; h++) {
		document.write('<OPTION VALUE="' +vPrixBH[h].PrixBH+ '"' + '>' + vPrixBH[h].zoneName+ '</OPTION>');
	}
	document.write('</select>');

}



//' arrondie a 2 chiffres apres la virgule
function arrondie(pAmount) {
		var vDecimal = Math.pow(10, 2);
		var vAmount	= Math.round(pAmount* vDecimal)+'';
		var vLength = vAmount.length;
		var vLeft		= (2 >= vLength)?"0":vAmount.substr(0, vLength - 2);
		var vRight	=	("00"+vAmount).substr(vLength+2 - 2, 2);
		return (2 > 0)?(vLeft + "." + vRight):vLeft;
	}


function getPrixFromSelectedIndex(pIndex) {
	return (vPrixBH[pIndex].prixBH);
}

function computeTotalBT() {
	var vTpsNational	=	60*new Number(document.facture.mn_local.value)+new Number(document.facture.sec_local.value);
	vTpsNational += 60*new Number(document.facture.mn_nationale.value)+new Number(document.facture.sec_nationale.value);
	var vPrixNational = arrondie((vTpsNational*vPrixBHFRANCE)/60);
	
	var vTpsMobileSFR	= 60*new Number(document.facture.mn_SFR.value)+new Number(document.facture.sec_SFR.value);
	var vPrixMobileSFR = arrondie((vTpsMobileSFR*prixBHSFR)/60);
	var vTpsMobileBTEL = 60*new Number(document.facture.mn_BTEL.value)+new Number(document.facture.sec_BTEL.value);
	var vPrixMobileBTEL = arrondie((vTpsMobileBTEL*prixBHSFR)/60);
	
	var vTpsInter1 = 60*new Number(document.facture.mn_inter_1.value)+new Number(document.facture.sec_inter_1.value);
	var vTpsInter2 = 60*new Number(document.facture.mn_inter_2.value)+new Number(document.facture.sec_inter_2.value);


	var vPrixMinInter1 = new Number(getPrixFromSelectedIndex(new Number(document.facture.LDestinations1.selectedIndex)));
	var vPrixMinInter2 = new Number(getPrixFromSelectedIndex(new Number(document.facture.LDestinations2.selectedIndex)));

	
	var vPrixInter1 = arrondie((vTpsInter1*vPrixMinInter1)/60);
	var vPrixInter2 = arrondie((vTpsInter2*vPrixMinInter2)/60);

	var vPrixTotalInter = new Number(vPrixInter1) + new Number(vPrixInter2);
	
	vTotalBT = new Number(vPrixNational) + new Number(vPrixMobileSFR) + new Number(vPrixMobileBTEL) + new Number(vPrixTotalInter);
	TotalBTClassique = arrondie(vTotalBT);

	document.all["cout_BT"].innerText=TotalBTClassique+"  ";

	
}

function computeTotalOP() {
	var vTotalNational = arrondie(new Number(document.facture.p_local.value) +  new Number(document.facture.p_nationale.value));
	var vTotalMobile = arrondie(new Number(document.facture.p_SFR.value) + new Number(document.facture.p_BTEL.value));
	var vTotalInter = arrondie(new Number(document.facture.p_inter_1.value) + new Number(document.facture.p_inter_2.value) + new Number(document.facture.p_inter_3.value));
	vTotalOP = arrondie(new Number(vTotalNational)+new Number(vTotalMobile)+new Number(vTotalInter));
	document.all["cout_OP"].innerText=vTotalOP+"  ";

}


function computeTotalNL() {
	var dureeFacturation = 0;
	if (document.facture.fact_duration[0].checked) dureeFacturation = 1;
	if (document.facture.fact_duration[1].checked) dureeFacturation = 2;
	var TotalNL = dureeFacturation * prixNL;


	var vTpsMobileSFR	= 60*new Number(document.facture.mn_SFR.value)+new Number(document.facture.sec_SFR.value);
	var vPrixMobileSFR = arrondie((vTpsMobileSFR*prixBHSFR)/60);
	var vTpsMobileBTEL = 60*new Number(document.facture.mn_BTEL.value)+new Number(document.facture.sec_BTEL.value);
	var vPrixMobileBTEL = arrondie((vTpsMobileBTEL*prixBHSFR)/60);
	
	var vTpsInter1 = 60*new Number(document.facture.mn_inter_1.value)+new Number(document.facture.sec_inter_1.value);
	var vTpsInter2 = 60*new Number(document.facture.mn_inter_2.value)+new Number(document.facture.sec_inter_2.value);


	var vPrixMinInter1 = new Number(getPrixFromSelectedIndex(new Number(document.facture.LDestinations1.selectedIndex)));
	var vPrixMinInter2 = new Number(getPrixFromSelectedIndex(new Number(document.facture.LDestinations2.selectedIndex)));

	
	var vPrixInter1 = arrondie((vTpsInter1*vPrixMinInter1)/60);
	var vPrixInter2 = arrondie((vTpsInter2*vPrixMinInter2)/60);

	var vPrixTotalInter = new Number(vPrixInter1) + new Number(vPrixInter2);

	TotalBTNL = new Number(TotalNL) + new Number(vPrixMobileSFR) + new Number(vPrixMobileBTEL) + new Number(vPrixTotalInter);

	document.all["cout_BTNL"].innerText=arrondie(TotalBTNL)+"  "; 
}

function computeTotalEM() {
	// calcul du montant de l'option EM
	var dureeFacturation = 0;
	if (document.facture.fact_duration[0].checked) dureeFacturation = 1;
	if (document.facture.fact_duration[1].checked) dureeFacturation = 2;
	var TotalOptionEM = dureeFacturation * prixEM;
    // calcul prix appels internationaux
	var vTpsInter1 = 60*new Number(document.facture.mn_inter_1.value)+new Number(document.facture.sec_inter_1.value);
	var vTpsInter2 = 60*new Number(document.facture.mn_inter_2.value)+new Number(document.facture.sec_inter_2.value);

	var vPrixMinInter1 = new Number(getPrixFromSelectedIndex(new Number(document.facture.LDestinations1.selectedIndex)));
	var vPrixMinInter2 = new Number(getPrixFromSelectedIndex(new Number(document.facture.LDestinations2.selectedIndex)));

	var vPrixInter1 = arrondie((vTpsInter1*vPrixMinInter1)/60);
	var vPrixInter2 = arrondie((vTpsInter2*vPrixMinInter2)/60);

	var vPrixTotalInter = new Number(vPrixInter1) + new Number(vPrixInter2);
	// calcul prix appels locaux et nationaux
	var vTpsNational	=	60*new Number(document.facture.mn_local.value)+new Number(document.facture.sec_local.value);
	vTpsNational += 60*new Number(document.facture.mn_nationale.value)+new Number(document.facture.sec_nationale.value);
	var vPrixNational = arrondie((vTpsNational*vPrixBHFRANCE)/60);

	// calcul prix mobiles
	var nbreAppelsMob = document.facture.nbre_appels_mob.value;
	var TotalCoutCNX = nbreAppelsMob* prixCNXEM;
	var vTpsMobileSFR	= 60*new Number(document.facture.mn_SFR.value)+new Number(document.facture.sec_SFR.value);
	var vPrixMobileSFR = (vTpsMobileSFR*prixMOBEM)/60;
	var vTpsMobileBTEL = 60*new Number(document.facture.mn_BTEL.value)+new Number(document.facture.sec_BTEL.value);
	var vPrixMobileBTEL = (vTpsMobileBTEL*prixMOBEM)/60;
	var vTotalPrixAppelsMobiles = vPrixMobileBTEL+vPrixMobileSFR; 
	var prixAppelsMobiles =  vTotalPrixAppelsMobiles;
	 TotalBTEM = new Number(TotalOptionEM) + new Number(prixAppelsMobiles) + new Number(vPrixNational) + new Number(vPrixTotalInter)+new Number(TotalCoutCNX);
	document.all["cout_BTEM"].innerText=arrondie(TotalBTEM)+"  "; 


	
}



function computeTotalNLEM() {
	var dureeFacturation = 0;
	if (document.facture.fact_duration[0].checked) dureeFacturation = 1;
	if (document.facture.fact_duration[1].checked) dureeFacturation = 2;
	var TotalOptionEM = dureeFacturation * prixEM;
	var TotalNL = dureeFacturation * prixNL;
	var vTotalOptionsBT = TotalOptionEM+TotalNL;


    // calcul prix appels internationaux
	var vTpsInter1 = 60*new Number(document.facture.mn_inter_1.value)+new Number(document.facture.sec_inter_1.value);
	var vTpsInter2 = 60*new Number(document.facture.mn_inter_2.value)+new Number(document.facture.sec_inter_2.value);

	var vPrixMinInter1 = new Number(getPrixFromSelectedIndex(new Number(document.facture.LDestinations1.selectedIndex)));
	var vPrixMinInter2 = new Number(getPrixFromSelectedIndex(new Number(document.facture.LDestinations2.selectedIndex)));

	var vPrixInter1 = arrondie((vTpsInter1*vPrixMinInter1)/60);
	var vPrixInter2 = arrondie((vTpsInter2*vPrixMinInter2)/60);

	var vPrixTotalInter = new Number(vPrixInter1) + new Number(vPrixInter2);



	// calcul prix mobiles
	var nbreAppelsMob = document.facture.nbre_appels_mob.value;
	var TotalCoutCNX = nbreAppelsMob* prixCNXEM;
	var vTpsMobileSFR	= 60*new Number(document.facture.mn_SFR.value)+new Number(document.facture.sec_SFR.value);
	var vPrixMobileSFR = (vTpsMobileSFR*prixMOBEM)/60;
	var vTpsMobileBTEL = 60*new Number(document.facture.mn_BTEL.value)+new Number(document.facture.sec_BTEL.value);
	var vPrixMobileBTEL = (vTpsMobileBTEL*prixMOBEM)/60;
	var vTotalPrixAppelsMobiles = vPrixMobileBTEL+vPrixMobileSFR; 
	var prixAppelsMobiles =  vTotalPrixAppelsMobiles;
	var vTotalCoutMobiles = vTotalPrixAppelsMobiles + TotalCoutCNX;


	TotalBTNLEM = vTotalOptionsBT + vPrixTotalInter + vTotalCoutMobiles;

	// calcul appels nationaux
	document.all["cout_BTNLEM"].innerText=arrondie(TotalBTNLEM)+"  "; 

}


function checkAmount(pField) {
	var pVal = pField.value;
	pVal = new String(pVal);
	pVal = pVal.replace(',','.');
	pField.value=pVal;
	if (isNaN(pVal)) {
		pField.value="";
        pField.focus();
        return false;
	}
	
	
}

function checkChamps() {
	//' test si les champs sont remplis par des entiers
	checkNumField_MIN(document.facture.mn_local);
	checkNumField_SEC(document.facture.sec_local);
	checkAmount(document.facture.p_local);

	checkNumField_MIN(document.facture.mn_nationale);
	checkNumField_SEC(document.facture.sec_nationale);
	checkAmount(document.facture.p_nationale);
	
	checkNumField_MIN(document.facture.mn_SFR);
	checkNumField_SEC(document.facture.sec_SFR);
	checkAmount(document.facture.p_SFR);
		
	checkNumField_MIN(document.facture.mn_BTEL);
	checkNumField_SEC(document.facture.sec_BTEL);
	checkAmount(document.facture.p_BTEL);
	
	checkNumField_MIN(document.facture.mn_inter_1);
	checkNumField_SEC(document.facture.sec_inter_1);
	checkAmount(document.facture.p_inter_1);	

	checkNumField_MIN(document.facture.mn_inter_2);
	checkNumField_SEC(document.facture.sec_inter_2);
	checkAmount(document.facture.p_inter_2);	


	
	checkNumField_MIN(document.facture.nbre_appels_mob);
	
}



function checkNumField_MIN(pField) {
        var vC;
        var vLen = pField.value.length;
        for (var x = 0; x < vLen; x++) {
                vC = pField.value.charAt(x);
                if (vC < '0' || vC > '9') {
                        pField.value="";
                        pField.focus();
                        return false;
                }
        }
    return true;
}

function checkNumField_SEC(pField) {
        var vC;
        var vLen = pField.value.length;
        for (var x = 0; x < vLen; x++) {
                vC = pField.value.charAt(x);
                if (vC < '0' || vC > '9') {
                        pField.value="";
                        pField.focus();
                        return false;
                }
                if (new Number(pField.value) > 60) {
                        pField.value="";
                        pField.focus();
                        return false;                
                }
        }
    return true;
}



function calculer() {
	checkChamps();
//	if (!checkNumField_MIN(document.facture.mn_SFR) || !checkNumField_SEC(document.facture.sec_SFR) || !checkAmount(document.facture.p_SFR) || !checkNumField_MIN(document.facture.mn_BTEL) || !checkNumField_SEC(document.facture.sec_BTEL) || !checkAmount(document.facture.p_BTEL) ) {
//		alert("veuillez prιciser le nombre total d'appels vers Mobiles");
//		return;
//	}
	computeTotalOP();
	computeTotalBT();
	computeTotalNL();
	computeTotalEM();
	computeTotalNLEM();	
	computeECO();
}



function computeECO() {
	var vTab = new Array();
	vTab[0] = TotalBTClassique;
	vTab[1] = TotalBTNL;
	vTab[2] = TotalBTEM;
	vTab[3] = TotalBTNLEM;
	var vMin = 9999999999999999999999999;
	
	for (var i = 0; i<vTab.length;i++) {
		if (vTab[i] < vMin) vMin = vTab[i];
	} 

		

	

    var vECO = new Number(new Number(vTotalOP)-new Number(vMin));
	vECO_EURO = arrondie(vECO);
    vECO_PCENT = arrondie(((1 - (vMin/vTotalOP)) * 100));
    if (!isNaN(vECO_EURO)) document.all["ECO_EURO"].innerText=vECO_EURO+"  "; else document.all["ECO_EURO"].innerText=" - ";
    if (!isNaN(vECO_PCENT)) document.all["ECO_PCENT"].innerText=vECO_PCENT+" % "; else document.all["ECO_PCENT"].innerText=" %";    

}



function fixeToZero() {
	document.all["cout_BT"].innerText="0.00  ";
	document.all["cout_OP"].innerText="0.00  ";
	document.all["cout_BTNL"].innerText="0.00  ";
	document.all["cout_BTEM"].innerText="0.00  ";
	document.all["cout_BTNLEM"].innerText="0.00  ";
	document.all["ECO_EURO"].innerText="0.00  ";
	document.all["ECO_PCENT"].innerText="0.00 % ";

}

function initialisation() {
   fixeToZero();
}


















