function SettingData()
{
	// min number of char for parsing
	var MinCar ;
	// counting & density weights
	var CountingWeight;
	var DensityWeight;
	// default competitor
	var Competitor1;
	var Competitor2;
	
	// HTML tags with their weights
	var Tags ;
	
	// number of expressions in the tag cloud
	var TCExprNb ;
	// number of words per expression
	var TCWordNb ;
	// type of the tag cloud (compared or differential)
	var TCType ;
	// are the strengths displayed in the TC (0/1) ?
	var TCStrength ;
	// are the weaknesses displayed in the TC (0/1) ?
	var TCWeakness ;
	
	// blacklist
	var Blacklist ;
	
	// number of urls from which the tip of a tag is shown
	var TagUrlNb ;
	// list of the columns of the tip table
	var TTCols ;
	
	this.MinCar = 4;
	this.CountingWeight = 5;
	this.DensityWeight = 5;
	this.Competitor1 = '0';
	this.Competitor2 = '1_3';
	this.Tags = new Hash();
	this.TCExprNb = 100;
	this.TCWordNb = 1;
	this.TCType = 'differential';
	this.TCStrength = 0;
	this.TCWeakness = 1;
	this.Blacklist = new Array();
	this.TagUrlNb = 1 ;
	this.TTCols = new Array();
	
}

SettingData.prototype = {
	SetMinCar : function(pMinCar)
	{
		this.MinCar = pMinCar ;
	}
	,
	GetMinCar : function() {return this.MinCar;}
	,
	SetCountingDensityWeights : function(pCounting, pDensity)
	{
		this.CountingWeight = pCounting ;
		this.DensityWeight = pDensity ;
	}
	,
	GetCountingWeight : function()	{return this.CountingWeight;}
	,
	GetDensityWeight : function()	{return this.DensityWeight;}
	,
	SetCompetitor1 : function(pComp)	{this.Competitor1 = pComp;}
	,
	SetCompetitor2 : function(pComp)	{this.Competitor2 = pComp;}
	,
	GetCompetitor1 : function()	{return this.Competitor1;}
	,
	GetCompetitor2 : function()	{return this.Competitor2;}
	,
	SetTags : function(pTags)
	{
		this.Tags = pTags ;
	}
	,
	GetTags : function()	{return this.Tags;}
	,
	GetSerializedTags : function()
	{
		var s_Data = '' ;
		this.Tags.each(function(pair)
		{
			s_Data += pair.key + ':' + pair.value + ',' ;
		}) ;
		return s_Data.substr(0, s_Data.length - 1) ;
	}
	,
	SetTCExprNb : function(pTCExprNb)
	{
		this.TCExprNb = pTCExprNb ;
	}
	,
	GetTCExprNb : function()	{return this.TCExprNb;}
	,
	SetTCWordNb : function(pTCWordNb)
	{
		this.TCWordNb = pTCWordNb ;
	}
	,
	GetTCWordNb : function()	{return this.TCWordNb;}
	,
	SetTCType : function(pTCType)
	{
		this.TCType = pTCType ;
	}
	,
	GetTCType : function()	{return this.TCType;}
	,
	SetTCStrength : function(pTCStrength)
	{
		this.TCStrength = pTCStrength ;
	}
	,
	GetTCStrength : function()	{return this.TCStrength;}
	,
	SetTCWeakness : function(pTCWeakness)
	{
		this.TCWeakness = pTCWeakness ;
	}
	,
	GetTCWeakness : function()	{return this.TCWeakness;}
	,
	SetBlacklist : function(pBlacklist)
	{
		this.Blacklist = pBlacklist ;
	}
	,
	GetBlacklist : function()	{return this.Blacklist;}
	,
	SetTagUrlNb : function(pTagUrlNb)
	{
		this.TagUrlNb = pTagUrlNb ;
	}
	,
	GetTagUrlNb : function()	{return this.TagUrlNb;}
	,
	SetTTCols : function(pTTCols)
	{
		this.TTCols = pTTCols ;
	}
	,
	GetTTCols : function()	{return this.TTCols;}
	,
	GetSerializedTTCols : function()
	{
		var s_Data = '' ;
		
		if(this.TTCols.length == 0)	return s_Data ;
		
		this.TTCols.each(function(item)
		{
			s_Data += item + ',' ;
		} ) ;
		return s_Data.substr(0, s_Data.length - 1) ;
	}
	,
	GetSortTypes : function()
	{
		var a_SortTypes = ['S', 'S'] ;	// S for tag & S for tip
		this.TTCols.each(function(item)
		{
			if(item == 'url_nb')
				a_SortTypes.push('S');
			else if( (item == 'diff') || (item == 'eff') || (item == 'roi') )
				a_SortTypes.push('I');
		} ) ;
		return a_SortTypes ;
	}
}