var current_model="";
var total_price=0;
var tabPrice = new Array();
var ALL_REF="";
// PATCH JCG 030209 Gestion bundle uniquement pour les boitiers 
var tableboitier = new Array( "FortiGate-30B", "FortiWifi-30B", "FortiGate-50", "FortiGate-50A", "FortiGate-50B" , "FortiWifi-50B", "FortiGate-60", "FortiGate-60B", "FortiWifi-60", "FortiWifi-60B", "FortiGate-100", "FortiGate-100A", "FortiGate-110C","FortiGate-80C","FortiGate-80CM", "FortiWifi-80CM");
var bundleres = false;
//____________________________________________________________
/* Initialisation 
le tableau tabPrice est initialisé avec les valeurs renvoyées par le callAjax
              tabPrice[i] [0] = type produit
			  tabPrice[i] [1] = reference produit
			  tabPrice[i] [2] = prix
			  tabPrice[i] [3] = nbre de mois
			  tabPrice[i] [4] = idproduit
*/
function updateTabPrice(){

tabPrice = new Array();
if (getModel().length >0)
 callAjax(35, "GET", "/FR2/getAllServiceInfo.jsp?pdt="+getModel()+"&t="+(new Date()).getTime(), null);
else
  initAll();
  
}
//____________________________________________________________
function fn35(id){
  eval(reponseAjax[id]);
  initAll();
  
 if (tabPrice.length >0)
  getService();
 else
  contactezNous();  // recuperation service impossible
} 
//____________________________________________________________
function contactezNous()
/*
Affiche le contactez nous
*/

{document.getElementById("TOTAL_PRIX").innerHTML="<a href=\"mailto:contact@firewallshop.fr\">Contactez-nous Cliquez ici</a>";}

//____________________________________________________________

function offrebundle()
/*
Affiche le offre bundle
*/
{document.getElementById("offrebundle").innerHTML="<span class='offrebundle'>Inclut obligatoirement tous les services.</span>";}

//____________________________________________________________
function resetoffrebundle()
/*
Affiche le offre bundle
*/
{document.getElementById("offrebundle").innerHTML="&nbsp;";}

//____________________________________________________________

function setPrice(){
	//alert("Call setPrice");

   var tp = total_price+"";
     if (tp.indexOf(".") == -1) tp+=".00";
      document.getElementById("TOTAL_PRIX").innerHTML=formatprix(tp);
  
}
//____________________________________________________________
function initAll(){ 
	total_price = 0;setPrice(); ALL_REF="";resetoffrebundle();
}

function setModel(mo) { current_model = mo; initAll(); updateTabPrice();}
function getModel(){ return current_model;}
//____________________________________________________________
function getService(){
/*
Récupère les valeurs des checkbox
*/
  var services="";
  var box = document.getElementsByTagName("INPUT");
     for( var i =0 ; i < box.length ; i++){
	     if ( ( box[i].type == 'checkbox' ) && ( box[i].checked ) ){
		     services+=box[i].name+",";
		 }// fin type
	 
	 }//fin for
	 process(services);
}

//____________________________________________________________
function maintenance_checkBU(nbmois)
/*
Recherche si le service bundle existe pour le produit sélectionné
*/{
	var retour = false ;
for ( var k = 0 ; k < tabPrice.length ; k++)
	{
		if((tabPrice[k][0] == "bu") &&( tabPrice[k][3] == nbmois) ) // et si il existe un service bundle pour ce produit 
   		{
        	retour = true ; // alors on affiche le prix bundle
    	}
	}
return retour ;
}

//____________________________________________________________
/*
 Controle de la selection de l'utilisateur
*/
function process(serv){

 var nb = getMonthChoice();
 initAll();
// PATCH GD 250908 si all services et bu existe pour nbmois alors on propose bu.
	if (serv.indexOf("ee") != -1 && ( serv.indexOf("av") != -1 ) && ( serv.indexOf("ips") != -1 ) && ( serv.indexOf("web") != -1 ) && ( serv.indexOf("as") != -1 ) && (maintenance_checkBU(nb) == true )) // si tout est coché et qu'un bu existe pour le nombre de mois demandé :
	{
		addToPanier ("bu", nb); // on ajoute le service bundle au panier
	}
	else // sinon on additionne chaque case cochée
	{
		// PATCH JCG si Boitier new tarif 2009 avec bu et ee uniquement
		// alors si un des services av, as, ips, web est retenue le prix est bu
		if (((checkprix2009() == true) && (maintenance_checkBU(nb) == true)) && (( serv.indexOf("av") != -1 ) || ( serv.indexOf("ips") != -1 ) || ( serv.indexOf("web") != -1 ) || ( serv.indexOf("as") != -1 ))) 
		{
//&& ( serv.indexOf("ips") != -1 ) && ( serv.indexOf("web") != -1 ) && ( serv.indexOf("as") != -1 )) 
			if (bundleres) {
			document.forms[0].ee.checked=false;
			document.forms[0].av2.checked=false;
			document.forms[0].ips2.checked=false;
			document.forms[0].as2.checked=false;
			document.forms[0].web2.checked=false;
			bundleres = false;
			
			}
			else
			{
			document.forms[0].ee.checked=true;
			document.forms[0].av2.checked=true;
			document.forms[0].ips2.checked=true;
			document.forms[0].as2.checked=true;
			document.forms[0].web2.checked=true;
			bundleres = true;
			offrebundle();
			addToPanier ("bu", nb);	
			}

		}
		else
		{
        	 if (serv.indexOf("ee") != -1 ) addToPanier("ee", nb);
		     if (serv.indexOf("av")  != -1 )  addToPanier("av", nb); 
			 if (serv.indexOf("as")  != -1 )  addToPanier("as", nb);
			 if (serv.indexOf("ips")  != -1 )  addToPanier("ips", nb);
			 if (serv.indexOf("web")  != -1 )  addToPanier("web", nb);
	    } // finsi tarif 2009
		
	} // finsi bundle
  //setPrice();
}

//____________________________________________________________
/*
Recuperation des choix des services
et maj du prix total
*/
function addToPanier(type, mois){
var found = false;

   for (var i=0 ; i < tabPrice.length ; i++){
      if (tabPrice[i][0] == type){
	    if (tabPrice[i][3] == mois) {
	      found = true;
	      total_price+=parseFloat(tabPrice[i][2]);
		  ALL_REF+=tabPrice[i][4]+",";
		  setPrice();
		  break;
	    }// if mois
	  }// if type
  }//for i
if(!found) contactezNous();	     

}

//____________________________________________________________
/*
Recuperation du mois selectionne par l'utilisateur
*/
function getMonthChoice(){
 var obj = document.forms[0].nbmois ;
 if(obj[0].checked) return obj[0].value ;
 if(obj[1].checked) return obj[1].value ;
 if(obj[2].checked) return obj[2].value ;
 
  

}
//____________________________________________________________
/*
Ajout des services dans le panier de commande
*/

function putAllInPanier(){
if (getModel().length >0) {
var id = new Array();
id = ALL_REF.split(",");
sync.clear();
 for (var i=0 ; i < id.length ; i++){
   //setTimeout('buyService('+id[i]+')',(i*1000)+100);
    sync.pusher(__AJAX__, 23, "GET", "/FR2/buyService.jsp?id="+id[i],sync, null);
   //buyService(id[i]);
 }
  if (sync.getSize()>0) {
   sync.pusher(buildCurrentPanier, null);
   sync.caller();
  }
}else{
 alert("Merci de séléctionnez un produit");
} 
  
  return false; 
}
//____________________________________________________________
function MM_callJS(jsStr) { return eval(jsStr) ;}

//______________________________________________________________
//PATCH 12-01-09 par GD : Gère les services Pro
//PATCH JCG 030909 : Gestion de prix version 2009
function checkprix2009() {
// Le model appartient à la table ?
for (i = 0; i < tableboitier.length ; i++) {
	if (tableboitier[i] == current_model) {
		// boitier avec nouveau tarif (juste bundle) dans cas si un service (hors ee) retenu
		return true;
	}
} // fin boucle
return false;
}

//____________________________________________________________
function forcergriser()
/*
Pour griser les cases si une option n'ets pas accésible avec un produit
*/
{
var champ = document.forms["form1"].model.value; 
var selectionné = champ.indexOf("FortiAnalyzer" );
	if (selectionné==0)
			{	
				//si un fortianalyser est sélectionné on veut griser l'élément av2, as2,ips2, web2S contenu ds le premier formulaire de la page. on ecrit =true pour griser une case par script.
				document.forms[0].av2.disabled=true;
				document.forms[0].as2.disabled=true;
				document.forms[0].ips2.disabled=true;
				document.forms[0].web2.disabled=true;
				//si on sélectionne d'abord un fortigate puis qu'on sélectionne un fortianalyzer, il faut décocher tout ce qui a été coché lors de la sélection du fortigate. on écrit =false pour ne pas cocher une case par script, mais l'utilisateur a quand même la possibilité de la cocher.
				//document.forms[0].ee.checked=false;				
				document.forms[0].av2.checked=false;
				document.forms[0].as2.checked=false;
				document.forms[0].ips2.checked=false;
				document.forms[0].web2.checked=false;
				//Si on change plusieurs fois de choix dans la sélection des modèles, il faut que le bouton radio soit de nouveau coché à 12 mois.
				//document.forms[0].nbmois[0].checked=1;
			}
				
	else
			{
				//si un fortigate est sélectionné on ecrit checked=false pour décocher une case par script si auparavant elle avait été coché 
				/*document.forms[0].ee.checked=false;
				document.forms[0].av2.checked=false;
				document.forms[0].as2.checked=false;
				document.forms[0].ips2.checked=false;
				document.forms[0].web2.checked=false;*/
				//et on ecrit diasbled=false pour dégriser une case par script si auparavant elle avait été grisé par la sélection d'un fortianalyzer.
				document.forms[0].av2.disabled=false;
				document.forms[0].as2.disabled=false;
				document.forms[0].ips2.disabled=false;
				document.forms[0].web2.disabled=false;
				//Si on change plusieurs fois de choix dans la sélection des modèles, il faut que le bouton radio soit de nouveau coché à 12 mois.
				//document.forms[0].nbmois[0].checked=1;
				
			}	
}