/**
 * Currents calls list management
 * 
 * @author Pierre HUBERT
 */

ComunicWeb.components.calls.currentList = {

	/**
	 * This variable contains the name of the session storage
	 * variable that contains active calls
	 */
	_local_storage_list_calls_name: "current-calls",


	/**
	 * Get the list of active calls
	 * 
	 * @return {number[]} The list of calls
	 */
	getCurrentCallsList: function(){
		var string = localStorage.getItem(this._local_storage_list_calls_name);

		if(string === null || string == "")
			return [];
		else
			return string.split(",");
	},

	/**
	 * Save a new list of calls
	 * 
	 * @param {number[]} list The new list of calls to save
	 */
	saveNewCallsList: function(list){
		localStorage.setItem(this._local_storage_list_calls_name, list.join(","));
	},

	/**
	 * Add a call to the list of opened call
	 * 
	 * @param {number} id The ID of the call to add
	 */
	addCallToList: function(id){
		var list = this.getCurrentCallsList();

		if(!list.includes(""+id))
			list.push(id);
		
		this.saveNewCallsList(list);
	},

	/**
	 * Remove a call from the list of calls
	 * 
	 * @param {Number} id The ID of the call to remove
	 */
	removeCallFromList: function(id){

		var list = this.getCurrentCallsList();

		while(list.includes(""+id))
			list.splice(list.indexOf(""+id), 1);
		
		this.saveNewCallsList(list);

	},

	/**
	 * Remove all the calls from the list
	 */
	removeAllCalls: function(){
		this.saveNewCallsList([]);
	}
}