/*
Panier de sélection simple
Copyright : Frédéric VIALLET
Dépendances : jQuery

Mise en place :
Nombre d'items : <div id="panier_nbitems"></div>
<div id="panier_conteneur"></div>

<script type="text/javascript" src="js/cookies.js"></script>
<script type="text/javascript" src="js/mypanier.js"></script>
<script type="text/javascript">
<!--
	function removeSelection(index_item)
	{
		panier.removeItem(index_item);
		panier.displayHTML();
	}

	function addSelection(html_item,id_item)
	{
		panier.addItem(id_item,html_item);
		panier.displayHTML();
	}

	var panier=new CPanier("panier_conteneur","panier_nbitems");
	panier.img_poubelle='images/panier/poubelle_in.gif';
	panier.cookie_domain='.voiture-neuve.com';
	panier.cookie_path="/";

	panier.addItem('1','<b><a href="">test</a></b>');
*/
function CPanier(nom_div_conteneur,div_num_item)
{
	this.div_conteneur=nom_div_conteneur;
	this.div_num_item=div_num_item;
	this.tab_items=Array();
	this.is_visible=true;

	this.cookie_name="panier";
	this.cookie_domain="";
	this.cookie_path="";
	this.cookie_item_sep="##";
	this.cookie_field_sep="@@";
	this.cookie_duree=31; /*jours*/

	this.img_poubelle='';
	this.img_poubelle_all='';
	this.img_icone_select='';

	this.getCount=function ()
	{
		return this.tab_items.length;
	}

	this.addItem=function (id_item,html_item,b_no_doublon)
	{
		if (b_no_doublon && this.itemIsPresent(id_item))
			return this.tab_items.length-1;
		else
		{
			this.tab_items.push(new CPanier_Item(id_item,html_item));
			this.saveCookie();
		}
		return this.tab_items.length-1;
	}

	this.removeItem=function (index_item)
	{
		if (index_item<0 || index_item>this.getCount())
			return null;
		else
		{
			this.tab_items[index_item]=null;

			var tmp_tab=Array();
			for(var i=0;i<this.getCount();i++)
			{
				if (this.tab_items[i]!=null)
					tmp_tab.push(this.tab_items[i]);
			}

			this.tab_items=tmp_tab;
			this.saveCookie();

			return index_item;
		}
	}

	this.removeAll=function (index_item)
	{
		this.tab_items=Array();
		this.saveCookie();
	}

	this.itemIsPresent=function (id_item)
	{
		for(var i=0;i<this.getCount();i++)
		{
			if (this.tab_items[i].id==id_item)
				return true;
		}

		return false;
	}

	this.getItem=function (index_item)
	{
		if (index_item<0 || index_item>this.getCount())
			return null;
		else
			return this.tab_items[index_item];
	}

	this.saveCookie=function()
	{
		var str_cookie="";

		for(var i=0;i<this.getCount();i++)
		{
			str_cookie+=this.tab_items[i].id+this.cookie_field_sep+this.tab_items[i].html_item;

			if (i+1<this.getCount())
				str_cookie+=this.cookie_item_sep;
		}

		if (str_cookie=="")
			Delete_Cookie(this.cookie_name,this.cookie_path,this.cookie_domain);
		else
			Set_Cookie(this.cookie_name,str_cookie,this.cookie_duree /*jours*/,this.cookie_path,this.cookie_domain);

		//alert("Cookie Save : "+str_cookie);
	}

	this.loadCookie=function()
	{
		var items_cookie=Get_Cookie(this.cookie_name);
		var fields;

		this.tab_items=Array();

		if (items_cookie==null)
			return;

		items_cookie=items_cookie.split(this.cookie_item_sep); /*récup les id*/

		for(var i=0;i<items_cookie.length;i++)
		{
			fields=items_cookie[i].split(this.cookie_field_sep);

			this.addItem(fields[0],fields[1],true); /*a faire ; charger en ajax les données lié à cet id*/
		}

		return this.getCount();
	}

	this.displayHTML=function ()
	{
		var str_html="";

		if (document.getElementById(this.div_conteneur))
		{
			if (this.getCount()==0)
			{
				document.getElementById(this.div_conteneur).className="panier_vide";
				str_html+='<div style="text-align:left;background-color:#EBEDF2;padding:7px;">';
				str_html+='Aucune offre sélectionnée.';
				str_html+='</div>';
				str_html+='<div style="padding:7px;">';
				str_html+='Pour mémoriser une offre dans votre sélection, cliquez sur l\'icone <img src="'+this.img_icone_select+'" alt="" style="vertical-align:middle;"> correspondant à cette offre.';
				str_html+='</div>';
			}
			else
			{
				document.getElementById(this.div_conteneur).className="panier_full";

				str_html+='<div style="text-align:left;background-color:#EBEDF2;padding:7px;">';
				str_html+='<a href="javascript:emptySelection();"><img src="'+this.img_poubelle_all+'" alt="Tout supprimer" align="absmiddle"></a>';
				str_html+='&nbsp;&nbsp;<a href="javascript:emptySelection();">Tout effacer</a>';
				str_html+='</div>';

				str_html+='<div id="panier_item_list">';
				str_html+='<table cellspacing="0" cellpadding="0" border="0" class="panier_item_table">';

				for(var i=0;i<this.getCount();i++)
				{
					//str_html+=this.tab_items[i].toString()+"<br>";
					str_html += '<tr';
					if (i+1>this.getCount())
						str_html +=' class="tr_item_last"';
					else
						str_html +=' class="tr_item"';
					str_html += '>';
					str_html += '<td width="20" valign="top">';
					str_html += '<a href="javascript:removeSelection(' + i + ');">';
					str_html += '<img src="'+this.img_poubelle+'" alt="Supprimer de ma sélection" title="Supprimer de ma sélection">';
					str_html += '</a>';
					str_html += '</td>';
					str_html += '<td class="item_col">';
					//str_html += '<a href='+ this.tab_items[i].url_item +' class="lien_panier">'+this.tab_items[i].html_item +'</a><br><br>';
					str_html += this.tab_items[i].html_item;
					str_html += '</td>';
					str_html += '</tr>';
				}
				str_html+='</table>';
				str_html+='</div>';
			}

			document.getElementById(this.div_conteneur).innerHTML=str_html;

			if (document.getElementById(this.div_num_item))
			{
				document.getElementById(this.div_num_item).innerHTML=this.getCount();
			}

			return str_html;
		}

		return null;
	}

	function CPanier_Item(id,html_item)
	{
		this.id=id;
		//this.url_item=url_item;
		this.html_item=html_item;

		this.toString=function ()
		{
			var str="";

			str+='ID : '+this.id+"\n";
			//str+='URL : '+this.url_item+"\n";
			str+='HTML : '+this.html_item+"\n";

			return str;
		}
	}
}

//handler perso
function montrer_panier(b_montrer)
{
	if (b_montrer==null)
		panier.is_visible=!panier.is_visible;
	else
		panier.is_visible=b_montrer;

	expand('panier_conteneur',panier.is_visible);

	for(i=0;i<tab_fld_acacher.length;i++)
		expand(tab_fld_acacher[i],!panier.is_visible);
}

function removeSelection(index_item)
{
	panier.removeItem(index_item);
	panier.displayHTML();
}

function addSelection(div_item,html_item,id_item)
{
	panier.addItem(id_item,html_item,true);
	panier.displayHTML();
	//var $jQ=jQuery.noConflict();
	$("#"+div_item).effect(	'transfer',
									{ 	to: "#"+panier.div_num_item,
										className: 'ui-effects-transfer'
									},
									2000,
									null);
}

function emptySelection()
{
	if (confirm('Etes-vous sûr de vouloir effacer votre sélection ?'))
	{
		panier.removeAll();
		panier.displayHTML();
		montrer_panier(false);
	}

}