/*
	Permet d'ajouter un item au Panier
*/
function addItem(typeP,typeF,codeF,langueF, vuePanier)
{
//	alert('type = ' + typeP + ', objet = ' + typeF + ', code = ' + codeF + ', langue = '+langueF);
  var url = '/servlet/com.kosmos.panier.processus.TraitementPanier';
  
  var myAjax = new Ajax.Request(url,
    {
      method: 'get',
      asynchronous: true,
      parameters: {ACTION: 'AJOUTER',
                   TYPE_PANIER: typeP,
                   TYPE_FICHE: typeF,
				   CODE_FICHE: codeF,
				   LANGUE_FICHE: langueF},
        onUninitialized: function (xhr)
          { // Création de l'objet XHR
           //alert('onUninitialized');
          },
        onLoading: function (xhr)
          { // Après appel méthode open
            //alert('onLoading');
          },
        onLoaded: function (xhr)
          { // Requête envoyée
            //alert('onLoaded');
          },
        onInteractive: function (xhr)
          { // Réponse en cours de réception
            //alert('onInteractive');
          },
        on200: function (xhr)
          { // Réponse HTTP "OK"
            //alert('on200');
          },
        onSuccess: function (xhr)
          { // Réponse HTTP == 2xx
            //alert('onSuccess');
          },
        on404: function (xhr)
          { // Réponse HTTP "OK"
            //alert('on404');
          },
        onFailure: function (xhr)
          { // Réponse HTTP != 2xx
            //alert('onFailure');
          },
        onException: function (xhr, exception)
          {
            alert(exception);
          },
        onComplete: function (xhr)
          { // Requête totalement terminée
            if (xhr.status == 200)
            {
				eval(xhr.responseText);
            } else {
              //alert(xhr.status);
            }
          }
    }
  )
  
  // On différencie le cas où l'on est sur la page de détail du panier (vuePanier != null)
  // des liens d'ajout sur les autres pages
  if (vuePanier != null)
  {
  	var strPrixF = document.getElementById(codeF+'_prix_detail_ouvrage').innerHTML;
  	// alert('strPrixF = '+strPrixF);
 	var strPrixFTotal = document.getElementById(codeF+'_prix_total_ouvrage').innerHTML;
	// alert('strPrixFTotal = '+strPrixFTotal);
  	var strPrixFTtc = document.getElementById('prix_ttc').innerHTML;
	//  alert('strPrixFTtc = '+strPrixFTtc);  
  
  	var dPrixF = parseFloat(strPrixF);
  	var dPrixFTotal = parseFloat(strPrixFTotal);
  	// alert("prix total après parse float :" + dPrixFTotal)
  	var dPrixTtc = parseFloat(strPrixFTtc);
    
  	var prixTotalUnit = dPrixF + dPrixFTotal;
	//  alert('prixTotalUnit = '+prixTotalUnit);  
  	var prixTotalTtc = dPrixF + dPrixTtc;
  
  	var strQteTotale = document.getElementById('qte_totale').innerHTML;
  	var iQteTotale = parseInt(strQteTotale);
  	iQteTotale += 1;
  	document.getElementById('qte_totale').innerHTML = iQteTotale;
  
  	document.getElementById(codeF+'_prix_total_ouvrage').innerHTML = (Math.round(prixTotalUnit*100))/100;
  	document.getElementById('prix_ttc').innerHTML = (Math.round(prixTotalTtc*100))/100;
  }
  else
  {
   	alert("L'article a bien été ajouté au panier")
  }
}

  /*
	Permet d'ajouter un item au Panier
*/
function deleteItemEurodoc(typeP, idFP, isQte, codeF)
{

//  alert('codeF = '+codeF);

  var strPrixF = document.getElementById(codeF+'_prix_detail_ouvrage').innerHTML;
//  alert('strPrixF = '+strPrixF);
  var strPrixFTotal = document.getElementById(codeF+'_prix_total_ouvrage').innerHTML;
//  alert('strPrixFTotal = '+strPrixFTotal);
  var strPrixFTtc = document.getElementById('prix_ttc').innerHTML;
//  alert('strPrixFTtc = '+strPrixFTtc);  
  
  var dPrixF = parseFloat(strPrixF);
  var dPrixFTotal = parseFloat(strPrixFTotal);
  var dPrixTtc = parseFloat(strPrixFTtc);
    
  var prixTotalUnit =  dPrixFTotal - dPrixF;
//  alert('prixTotalUnit = '+prixTotalUnit);  
  var prixTotalTtc = dPrixTtc - dPrixF;
  
  document.getElementById(codeF+'_prix_total_ouvrage').innerHTML = (Math.round(prixTotalUnit*100))/100;
  document.getElementById('prix_ttc').innerHTML = (Math.round(prixTotalTtc*100))/100;
  
  var strQteTotale = document.getElementById('qte_totale').innerHTML;
  var iQteTotale = parseInt(strQteTotale);
  iQteTotale -= 1;
  document.getElementById('qte_totale').innerHTML = iQteTotale;  
  
  deleteItem(typeP, idFP, isQte);  
}

function deleteItem(typeP, idFP, isQte)
{
//  alert('typeP = '+typeP+', idFP = '+idFP+', isQte = '+isQte);
  var url = '/servlet/com.kosmos.panier.processus.TraitementPanier';
  
  var myAjax = new Ajax.Request(url,
    {
      method: 'get',
      asynchronous: true,
      parameters: {ACTION: 'SUPPRIMER',
				   TYPE_PANIER: typeP,
                   ID_FICHEPANIER: idFP,
				   IS_QTE: isQte},
        onUninitialized: function (xhr)
          { // Création de l'objet XHR
           //alert('onUninitialized');
          },
        onLoading: function (xhr)
          { // Après appel méthode open
            //alert('onLoading');
          },
        onLoaded: function (xhr)
          { // Requête envoyée
            //alert('onLoaded');
          },
        onInteractive: function (xhr)
          { // Réponse en cours de réception
            //alert('onInteractive');
          },
        on200: function (xhr)
          { // Réponse HTTP "OK"
            //alert('on200');
          },
        onSuccess: function (xhr)
          { // Réponse HTTP == 2xx
            //alert('onSuccess');
          },
        on404: function (xhr)
          { // Réponse HTTP "OK"
            //alert('on404');
          },
        onFailure: function (xhr)
          { // Réponse HTTP != 2xx
            //alert('onFailure');
          },
        onException: function (xhr, exception)
          {
            alert(exception);
          },
        onComplete: function (xhr)
          { // Requête totalement terminée
            if (xhr.status == 200)
            {
				eval(xhr.responseText);
            } else {
              //alert(xhr.status);
            }
          }
    }
  )
}

/*
	Ajouter un item à la liste
*/
function updateAjouter(typePanier, idFichePanier, titreFichePanier, urlFiche, nbItems, isQuantified, codeFiche)
{
	if ( document.getElementById('panier_'+typePanier) )
	{
		//Si il y a un message d'erreur on le supprime
		var div = document.getElementById('panier_'+typePanier);
		if (document.getElementById('erreur_panier_'+typePanier))
		{
			div.removeChild(document.getElementById('erreur_panier_'+typePanier));
		}

		//On récupère la liste
		var ul = document.getElementById('liste_fiches_panier_'+typePanier);

		// Si la liste est vide on supprime le li 'Aucune fiche dans le panier'
		if (ul.getElementsByTagName('li').length == 0)
		{
			document.getElementById('liste_vide_'+typePanier).style.display='none';
			// RCO - 28/05/2008 - On ajoute également dans ce cas le spérateur
			document.getElementById('panier_espace_presentation').style.display='inline';
		}
			
		//On construit le nouveau li et on l'ajoute à l'ul
		
		var li = Builder.node('li', {id:idFichePanier}, '');	
		var a = Builder.node('a', {href:''}, titreFichePanier);
		var img = Builder.node('img', {src:'/kosmos/panier/styles/img/suppression.png', style:'cursor: pointer; margin-left: 4px;', onclick:"javascript:deleteItem( '"+typePanier+"' , '"+ idFichePanier +"', 'false')"} );
		li.appendChild(a);
		if (isQuantified)
		{
			var span_qte = Builder.node('span', {id:codeFiche+'_qte'}, ' (1)');
			li.appendChild(span_qte);
		}
		li.appendChild(img);
		ul.appendChild(li);

		new Effect.Highlight(idFichePanier, {endcolor:'#EEEEEE'});

		//Mise à jour de la taille du panier
		var h3 = document.getElementById('titre_panier_'+typePanier);
		var span = document.getElementById('taille_panier_'+typePanier);
		h3.removeChild(span);
		span = Builder.node('span', {id:'taille_panier_'+typePanier}, '('+ nbItems +')');
		h3.appendChild(span);
	}

}

/*
	Ajouter un item existant (augmenter la quantite)
*/
function updateQuantite ( codeFiche , quantite, typePanier, nbItems )
{
	if (document.getElementById(codeFiche+'_qte')) {
		document.getElementById(codeFiche+'_qte').innerHTML = ' ('+ quantite +')';	
		document.getElementById('taille_panier_'+typePanier).innerHTML = '('+ nbItems +')';
	}
	
	if (document.getElementById(codeFiche+'_qte_detail')) {
		document.getElementById(codeFiche+'_qte_detail').innerHTML = '<strong>'+ quantite +'</strong>';
		if (document.getElementById('taille_panier_'+typePanier))
		{
			document.getElementById('taille_panier_'+typePanier).innerHTML = '('+ nbItems +')';
		}
	}
}


/*
	Supprimer un item de la liste
*/
function updateSupprimer(typePanier, idFichePanier, nbItems)
{
	if (document.getElementById('panier_'+typePanier))
	{

		//Si il y a un message d'erreur on le supprime
		var div = document.getElementById('panier_'+typePanier);
		if (document.getElementById('erreur_panier_'+typePanier))
		{
			div.removeChild(document.getElementById('erreur_panier_'+typePanier));
		}

		//On récupère la liste
		var ul = document.getElementById('liste_fiches_panier_'+typePanier);	

		//On supprime la fiche de la liste
		var li = document.getElementById(idFichePanier);
		ul.removeChild(li);


		//Si on a supprimé le dernier élément on réaffiche le message comme quoi le panier est vide
		if (ul.getElementsByTagName('li').length == 0)
		{
			document.getElementById('liste_vide_'+typePanier).style.display='block';
			// RCO - 28/05/2008 - On enlève également dans ce cas le séparateur
			document.getElementById('panier_espace_presentation').style.display='none';
		}

		//Mise à jour de la taille du panier
		var h3 = document.getElementById('titre_panier_'+typePanier);
		var span = document.getElementById('taille_panier_'+typePanier);
		h3.removeChild(span);
		span = Builder.node('span', {id:'taille_panier_'+typePanier}, '('+ nbItems +')');
		h3.appendChild(span);
	}

	/********* VUE DETAIL */
	if (document.getElementById('detail_panier_'+typePanier))
	{
		var ul_detail = document.getElementById('liste_detail_panier_'+typePanier);	
		var li_detail = document.getElementById(idFichePanier+'detail');
		ul_detail.removeChild(li_detail);

		if (ul_detail.getElementsByTagName('li').length == 0)
		{
			var div_panier = document.getElementById('detail_panier_BOUTIQUE');
			var div_tete_panier = document.getElementById('tete_panier');
			div_panier.removeChild(div_tete_panier)
			var div_bas_panier = document.getElementById('recap_panier');
			div_panier.removeChild(div_bas_panier)
			document.getElementById('liste_vide_detail_'+typePanier).style.display='block';
			// RCO, on doit également cacher le bouton 'commander' qui n'a plus leiu d'être quand le panier est vide
			document.getElementById('lien_commander_panier').style.display='none';
		}
	} 
}


/*
	Gérer les message d'erreur
*/
function updateErreur (codeErreur, msgErreur, typePanier)
{
	//On récupère la liste
	if (document.getElementById('panier_'+typePanier))
	{
		var div = document.getElementById('panier_'+typePanier);
		if (document.getElementById('erreur_panier_'+typePanier))
		{
			div.removeChild(document.getElementById('erreur_panier_'+typePanier));
		}

		//On construit le nouveau li et on l'ajoute à l'ul
		var p = Builder.node('p', {id:'erreur_panier_'+typePanier, style:'font-color:red;'}, msgErreur);
		div.appendChild(p);
	}
}
