//	----------
//	Devis
//	----------
//		Sélection des objets par id et définition du changement de propriété
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_changeProp(objName,x,theProp,theValue) { //v6.0
  var obj = MM_findObj(objName);
  if (obj && (theProp.indexOf("style.")==-1 || obj.style)){
    if (theValue == true || theValue == false)
      eval("obj."+theProp+"="+theValue);
    else eval("obj."+theProp+"='"+theValue+"'");
  }
}
// Verification des options sélectionnées par défaut
marqueurId = new Array ();
Def = new Array ();
	var i;
    for (i = 1; i<=nbCat; i++)
		{	
			maxOpt=eval ('Cat'+i+'.length-1');
			for (j = 1; j<=maxOpt; j++)
				{	marqueur = eval ('Cat'+i+'['+j+'].def')
					if ( marqueur == 1 )
					{ eval ("Def["+i+"]= Cat"+i+"["+j+"];");
					marqueurId [i] = "cat"+i+"opt"+j;
					}
				}
	
		}
//Définition des totaux par catégorie
	TotCat = new Array ();
	var i;
    for (i = 1; i<=nbCat; i++) {
	prixCatBase = 0;
	TotCat[i] = prixCatBase+Def[i].prx;
      }

// ----------	Check des boutons par défaut
function setDefaut () {
	var i;
    for (i = 1; i<=nbCat; i++) {	
					idElementInput = marqueurId [i];
					MM_changeProp(idElementInput,'','checked','yes','INPUT/RADIO');
					
		}}
//	----------
//	Définition des calculs
//	----------
// ----- Définition de la couleur du li en fonction du check
function	verifCheck () {
elements = document.formulaire.length;
    var i;
    for (i = 0; i < elements; i++) {
      if (document.formulaire.elements[i].checked) {
	document.formulaire.elements[i].parentNode.style.backgroundColor = "rgb(255,155,0)";
      }
	  else {document.formulaire.elements[i].parentNode.style.backgroundColor = "#FFF";}
    }
}

// 	-----	Calcul de la somme
function TotalPrix() {
	var totF = 0;
	var i;
	    for (i = 1; i <= nbCat; i++) {
			totF+=TotCat[i];
		}
	totalFormule = Math.round (totF*100)/100;
	}

function	GetTotal (catId, optId) {
   eval("TotCat["+catId+"]=Cat"+catId+"["+optId+"].prx");
   } 

 // Définition du delta
function writeDelta (catId) {
	var maxOpt = eval("Cat"+catId+".length");
	for(optId=1; optId<maxOpt; optId++) {
	optDelta = eval ("(Cat"+catId+"["+optId+"].prx)-(TotCat["+catId+"])");
	optDelta=Math.round (optDelta*100)/100;
	optSpan = "prixcat"+catId+"opt"+optId;
		if (optDelta!=0) {
			 	if (optDelta<0) {
					MM_changeProp(optSpan,'','innerHTML', ". [ "+optDelta+" &#8364; ]" ,'SPAN');
					}
				else {MM_changeProp(optSpan,'','innerHTML', ". [ +"+optDelta+" &#8364; ]" ,'SPAN');}
			
			}
		else {MM_changeProp(optSpan,'','innerHTML', '.' ,'SPAN');}
	}
}
// ----------	Nombre d'options par cat
// (longueur du tableau -1)
function getNbOpt (catId) {
var catCible = eval("Cat"+catId+".length-1");
eval("nbOpt"+catId+"=catCible");
}
// ----------	Donner le nombre d'options de la cat
// Variable "nbCatX"
function writeNbOpt (catId) {
	getNbOpt (catId);
 	document.write(eval("nbOpt"+catId));
}

// Définition des li
function writeOpt (catId) {
	var maxOpt = eval("Cat"+catId+".length");
	var totalCat = eval("TotCat["+catId+"]"); 
	
	for(optId=1; optId<maxOpt; optId++) {
		var texteCat = eval("Cat"+catId+"["+optId+"].txt");
		var prixCat = eval("Cat"+catId+"["+optId+"].prx");

		var listeBullets ='<li class="passive">';
		listeBullets +='<input name="categorie'+catId+'" type="radio" id="cat'+catId+'opt'+optId+'" value="'+prixCat+'" onClick="RefreshDevis ('+catId+', '+optId+'); ">';
		listeBullets +='<label for="cat'+catId+'opt'+optId+'">'+texteCat+'<span id="prixcat'+catId+'opt'+optId+'" class="delta"></span></label>';
 		listeBullets +='</li>';
		
		document.write(listeBullets);
	}
}


//	----------	Écriture et Modif du récap



function	defineRecap () {

	listeOptions = new Array ();


	for(i=1; i<=nbCat; i++) {
		var textDefaut = eval ('Def['+i+'].rez');
		if (textDefaut != "R") { listeOptions[i]  = '<li id="recap-cat'+i+'">'+textDefaut+'</li>'; }
		else { listeOptions[i]  = ' '; }
		}
	writeRecap ();

    }
	
function	changeRecap (catId, optId) {

	reOption = eval ("Cat"+catId+"["+optId+"].rez");

	if (eval("Cat"+catId+"["+optId+"].rez") =="R" )
	{ listeOptions[catId]  = ' '; }
	else
	{listeOptions[catId]  = '<li id="recap-cat'+i+'">'+reOption+'</li>';}

	writeRecap ();

    }

//	----------	
//	Lancement des fonctions imbriquées
//	----------	
//	----------	Rafraichissement du total/recap

function	ActualisationPrix() {
  TotalPrix();
  defineRecap();
}
//	----------	Ecrire les options
function	initOpt (catId) {
	writeOpt (catId);
	writeDelta (catId);
	setDefaut();
	verifCheck (catId, optId);
	}
//	----------	Lancement de la routine
function	RefreshDevis (catId, optId) {
	GetTotal (catId, optId);
	ActualisationPrix ();
	writeDelta (catId);
	verifCheck ();
	changeRecap (catId, optId);
	}

