var FavoriCart = new Class({
	Implements: [Options],
	Extends: CookieCart,

	/**
	 * Options
	 *
	 */
	options : {
		display_number : -5,
		display_container : 'fav_content',
		link_all : 'all_fav',
		max_record : 15
	},
	
	initialize : function(id, options) {
		this.parent(id, options);
	},
	
	/**
	 * 
	 * 
	 */
	display_list: function() {
		if ( $(this.options.display_container) && this.nb_record > 0) {
			var bFromLast = false;
			var iNumber = this.options.display_number;
			if ( iNumber < 0) {
				bFromLast = true;
				iNumber = -iNumber;
			}
			var aDisplay = new Array();
			var aTemp = new Array(); 
			if ( bFromLast )
				for(var i = this.nb_record-1; i >= this.nb_record - iNumber && i >= 0; i-- ) {
					aTemp = this.records[i].split(this.options.info_separator);
					aTemp.push(i);
					aDisplay.push(aTemp);
				}
			else 
				for(var i = 0; i < iNumber; i++ )
					if ( i < this.nb_records ) {
						aTemp = this.records[i].split(this.options.info_separator);
						aTemp.push(i);
						aDisplay.push(this.records[i].split(this.options.info_separator));
					}
			
			var sAff = '';
			for(i = 0; i < aDisplay.length && i < 3; i++) {
				sAff += '<div class="link">';
				sAff += '<a href="'+ aDisplay[i][0] +'" class="fl">'+aDisplay[i][1]+'</a>';
				sAff += '<div class="trash"><a href="javascript:void(0)" onclick="remove_selection(\''+aDisplay[i][3]+'\');" class="lien">&nbsp;</a></div>';
				sAff += '<div class="cb"></div>';
				sAff += '</div>';
			}

			$(this.options.display_container).set('html',sAff);

			$(this.options.link_all).set('class',"all display_div");
		}
		else {
			var sAff = '<div class="empty"><span>Votre panier de favoris est vide. Vous pouvez rajouter des favoris en cliquant sur </span><img src="img/global/bookmark.png" alt="Favoris" title="Favori" /></div>';
			$(this.options.display_container).set('html',sAff);

			$(this.options.link_all).set('class',"all hide");
		}
	},
	
	add : function(information) {
		return this.parent(information);
	},
	
	add_fav : function() {
		var bReturn = false;
		if ( this.nb_record < this.options.max_record ) {
			var sToAdd = '';
			for(var i = 0; i < arguments.length; i++)
				sToAdd += ((i != 0) ? this.options.info_separator : '') + arguments[i];
			if ( sToAdd != '' && sToAdd != this.options.info_separator)
				bReturn = this.add(sToAdd);
		}
		return bReturn;
	},

	remove : function(index) {
		return this.parent(index);
	},
	

	remove_fav : function(name) {
		var index = -1;
		var aTemp;
		for(var i = 0; i < this.nb_record; i++) {
			aTemp = this.records[i].split(this.options.info_separator);
			if ( aTemp[3] == name ) {
				index = i;
				break;
			}
		}
		
		if ( this.remove(index) ) {
			if ( $$('#fav_line_' + name) ) 
				$$('#fav_line_' + name).dispose();
			
			var aFavList = $$('table.list_favoris');
			
			if ( aFavList ) {
				aFavList.each(function(elem) {
					if ((elem.getElements('tbody tr')).length == 0) {
						elem.dispose();
					}
				});
			}

			if($$(".favorit").length <= 1 && $("main_fav"))
			{
				sEmpty = '<div class="empty">';
				sEmpty += '<span>'+$("empty_text").value+'</span> <img src="img/global/bookmark.png" alt="'+$("alt_favori").value+'" title="'+$("alt_favori").value+'" />';
				sEmpty += '</div>';
				$("main_fav").set("html",sEmpty);
			}
			return true;
		}
	},
	
	
	remove_selected_fav : function() {
		var aFav = $$('.fav_item:checked');
		for(var i=0; i<aFav.length; i++) {
			this.remove_fav(aFav[i].get('value'));
		}
		this.display_list();
		return false;
	}
});