var FavoriCart = new Class({
	Implements: [Options],
	Extends: CookieCart,

	/**
	 * Options
	 *
	 */
	options : {
		display_number : -5,
		display_container : 'listing',
		max_record : 0,
		info_separator : ','
	},

	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 = '<ul>';

			for(i = 0; i < aDisplay.length && i < iNumber; i++) {
				sAff += '<li id="fav_'+i+'">';
				sAff += '<a href="'+ aDisplay[i][0] +'" class="standard fl">'+aDisplay[i][1]+'</a>';
				sAff += '<a href="javascript:void(0)" onclick="remove_selection(\''+aDisplay[i][3]+'\', \'fav_'+i+'\');" class="trash">&nbsp;</a>';
				sAff += '</li>';
			}

			sAff += '<li><a href="'+$('all_link').get('value')+'" class="standard all">'+$('all_texte').get('value')+'</a></li>';
			sAff += '</ul>';

			$(this.options.display_container).set('html',sAff);
		}
		else {
			var sAff = '<ul><li class="noresult">'+$('empty_texte').get('value')+'</li></ul>';
			$(this.options.display_container).set('html',sAff);
		}
	},

	add : function(information) {
		return this.parent(information);
	},

	add_fav : function() {
		var bReturn = false;
		if (
			this.options.max_record == 0
			|| 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;
	}
});
