var DISPLAY_SETTINGS_TAB_NAME = 'SettingDisplay' ;

/***********************************************
*
**/
function InitDisplaySettings()
{
	// the background seo setting panel
	var SettingPan = document.createElement('DIV');
	Element.extend(SettingPan);
	
	var SetW = 600;
	var SetH = 500;
	var a_PageDim = GetPageSize() ;
	
	SettingPan.id = DISPLAY_SETTINGS_TAB_NAME ;
	SettingPan.style.zIndex = 1100 ;
	// SettingPan.style.position = 'absolute' ;
	SettingPan.style.top = ((a_PageDim[3] / 2) - (SetH / 2)) + 'px' ;
	SettingPan.style.left = ((a_PageDim[2] / 2) - (SetW / 2)) + 'px' ;
	// SettingPan.style.background = '#ffffff' ;
	// SettingPan.style.border = '1px solid #444' ;
	SettingPan.style.width = SetW + 'px' ;
	SettingPan.style.height = SetH + 'px' ;
	SettingPan.addClassName('SettingPanel') ;
	SettingPan.hide();
	
	var ABody = document.getElementsByTagName("body") ;
	ABody[0].appendChild(SettingPan) ;
	
	// the title
	var DivTitle = document.createElement('H1');
	Element.extend(DivTitle);
	DivTitle.innerHTML = txt_MyDisplayParams ;
	DivTitle.addClassName('setting_title') ;
	SettingPan.appendChild(DivTitle) ;
	
	// div to contain the tabs of the dialog box
	var DivTabs = document.createElement('div');
	Element.extend(DivTabs);
	DivTabs.id = DISPLAY_SETTINGS_TAB_NAME + 'Tabs' ;	// just like MainTabs or SEOSettingTabs
	SettingPan.appendChild(DivTabs) ;
	
	// div for tab 1 = current tab of the main gui
	var DivTab1 = GiveMeATab() ;
	DivTabs.appendChild(DivTab1) ;
	
	// div for tab 2 = custom settings
	var DivTab2 = GiveMeATab() ;
	DivTabs.appendChild(DivTab2) ;
	
	// the param form for tab 1
	var FormTab1 = document.createElement('form');
	Element.extend(FormTab1);
	FormTab1.name = 'form_maintc_display' ;	// tab to parameter the main tagcloud
	FormTab1.id = DISPLAY_SETTINGS_TAB_NAME + '_Tab1' ;
	DivTab1.appendChild(FormTab1) ;
	InitTagCloudParam(FormTab1) ;
	
	// the param form for tab 2
	var FormTab2 = document.createElement('form');
	Element.extend(FormTab2);
	FormTab2.name = 'form_setting_display' ;	// tab to parameter the main tagcloud
	FormTab2.id = DISPLAY_SETTINGS_TAB_NAME + '_Tab2' ;
	DivTab2.appendChild(FormTab2) ;
	InitTagCloudParam(FormTab2) ;
	
	var i_ActiveTab = 0 ;	// the first tab is active
	initTabs(DISPLAY_SETTINGS_TAB_NAME + 'Tabs', Array(txt_CurrentParamsTab, txt_CustomSettings), i_ActiveTab,SetW,'auto',Array(false, false));
}


/***********************************************
* params of a tag cloud
* 	- number of words in expressions,
*	- number of expressions,
*	- tag cloud type
**/
function InitTagCloudParam(pFormParamObj)
{
	if( (pFormParamObj.id == DISPLAY_SETTINGS_TAB_NAME + '_Tab2') && (MemberId == -1) )
	{
		var DivText1 = document.createElement('div');
		Element.extend(DivText1);
		DivText1.innerHTML = txt_DisplayUserPrefsNotAvailable ;
		DivText1.addClassName("ico_info_top") ;
		DivText1.style.border = "1px solid #f60" ;
		DivText1.style.fontSize = "14px" ;
		pFormParamObj.appendChild(DivText1) ;
		
		var DivBtn = document.createElement('div');
		Element.extend(DivBtn);
		DivBtn.innerHTML = '<a href="#" onclick="HideDisplaySettings(); return false" class="bt_cancel bt_small" style="margin: 0">' + txt_Close + '</a>' ;
		DivBtn.style.height = "25px" ;
		DivBtn.style.marginTop = "10px" ;
		pFormParamObj.appendChild(DivBtn) ;
		
		return ;
	}

	var RefTCWordNb ;
	var RefTCExprNb ;
	var RefTCStrength ;
	var RefTCWeakness ;
	var RefTCType ;
	var DataSource ;
	
	if(pFormParamObj.id == DISPLAY_SETTINGS_TAB_NAME + '_Tab2')
		DataSource = DefaultSettings ;
	else
		DataSource = TabData[TAB2] ;
		
	RefTCWordNb = DataSource.GetTCWordNb();
	RefTCExprNb = DataSource.GetTCExprNb();
	RefTCType = DataSource.GetTCType();
	RefTCStrength = DataSource.GetTCStrength();
	RefTCWeakness = DataSource.GetTCWeakness();
	if(pFormParamObj.id == DISPLAY_SETTINGS_TAB_NAME + '_Tab2')
	{
		RefTagUrlNb = DataSource.GetTagUrlNb();
		RefTTCols = DataSource.GetTTCols();
	}
	else
	{
		RefTagUrlNb = TabData[TAB1].GetTagUrlNb();
		RefTTCols = TabData[TAB1].GetTTCols();
	}
	
	// *************** FieldSet #1 ***************
	var FieldSet1 = document.createElement('fieldset');
	Element.extend(FieldSet1);
	FieldSet1.addClassName("TCFieldSet") ;
	pFormParamObj.appendChild(FieldSet1) ;
	
	var Legend1 = document.createElement('legend');
	Element.extend(Legend1);
	Legend1.innerHTML = txt_ExpertTabTC ;
	FieldSet1.appendChild(Legend1) ;
	
	// *************** some intro text ***************
	var DivTextIntro = document.createElement('p');
	Element.extend(DivTextIntro);
	DivTextIntro.innerHTML = txt_DisplayParamsTxt1 ;
	FieldSet1.appendChild(DivTextIntro) ;
	
	// *************** div to insert the tc type ***************
	// div for line 1
	var DivLine1 = document.createElement('div') ;
	Element.extend(DivLine1);
	DivLine1.addClassName('DisplayParamLine') ;
	DivLine1.addClassName('AltColor_1') ;
	FieldSet1.appendChild(DivLine1) ;
	
	// the inner caption :
	var DivTCTypeCaption = document.createElement('div') ;
	Element.extend(DivTCTypeCaption);
	DivTCTypeCaption.addClassName('DisplayParamCol_1') ;
	DivTCTypeCaption.innerHTML = txt_TagcloudType + " : " ;
	DivLine1.appendChild(DivTCTypeCaption) ;
	
	// the inner radio buttons
	var TcDiffChecked = '' ;
	var TcCompChecked = '' ;
	if(RefTCType == 'differential')	TcDiffChecked = 'checked' ;
	else if(RefTCType == 'compared')	TcCompChecked = 'checked' ;
	
	var DivTCType = document.createElement('div') ;
	Element.extend(DivTCType);
	DivTCType.addClassName('DisplayParamCol_2') ;
	DivTCType.innerHTML = '<div style="float: left; width: 120px;"><input value="differential" type="radio" id="'+pFormParamObj.id+'_TCTypeDiff" name="tc_type" '+TcDiffChecked+' /> '+ txt_TCDiff +'</div>' ;
	DivTCType.innerHTML+= '<div><input value="compared" type="radio" id="'+pFormParamObj.id+'_TCTypeComp" name="tc_type" '+TcCompChecked+' /> '+ txt_TCComp +'</div>' ;
	DivLine1.appendChild(DivTCType) ;
	
	
	// ******************** div to insert the expression nb selection	*****************
	// div for line 2
	var DivLine2 = document.createElement('div') ;
	Element.extend(DivLine2);
	DivLine2.addClassName('DisplayParamLine') ;
	DivLine2.addClassName('AltColor_2') ;
	FieldSet1.appendChild(DivLine2) ;
	
	// the inner caption :
	var DivExprNb = document.createElement('div') ;
	Element.extend(DivExprNb);
	DivExprNb.addClassName('DisplayParamCol_1') ;
	DivExprNb.innerHTML = txt_TagcloudLength  + ' : ' ;
	DivLine2.appendChild(DivExprNb) ;
	
	// the inner combo
	// first, append an empty div for the 2nd column
	var DivSelExprNbCol2 = document.createElement('div') ;
	Element.extend(DivSelExprNbCol2);
	DivSelExprNbCol2.addClassName('DisplayParamCol_2') ;
	DivLine2.appendChild(DivSelExprNbCol2) ;
	
	// select for the word nb selection
	var DivSelExprNb = document.createElement('div') ;
	Element.extend(DivSelExprNb);
	DivSelExprNb.addClassName('FloatLeft') ;
	
	var SelExprNb = document.createElement('select') ;
	Element.extend(SelExprNb);
	SelExprNb.name = "expr_nb" ;
	SelExprNb.addClassName("ExprNbSelect") ;
	SelExprNb.style.margin = '2px 5px';
	var Selected ;
	var Count = 0 ;
	TCExprNBs.each(function(i)
	{
		SelExprNb.options[SelExprNb.length] = new Option(i);
		if(i == RefTCExprNb)	Selected = Count ;
		Count++ ;
	} );
	SelExprNb.selectedIndex = Selected ;
	DivSelExprNb.appendChild(SelExprNb) ;
	DivSelExprNbCol2.appendChild(DivSelExprNb) ;
	
	// div to insert the word nb selection (after)
	var DivExprNb2 = document.createElement('div') ;
	Element.extend(DivExprNb2);
	DivExprNb2.style.lineHeight = '26px' ;
	DivExprNb2.innerHTML = txt_Words ;
	DivSelExprNbCol2.appendChild(DivExprNb2) ;
	
	
	// ***************** div to insert the word nb selection (before) *****************
	// div for line 3
	var DivLine3 = document.createElement('div') ;
	Element.extend(DivLine3);
	DivLine3.addClassName('DisplayParamLine') ;
	DivLine3.addClassName('AltColor_1') ;
	FieldSet1.appendChild(DivLine3) ;
	
	// the inner caption :
	var DivWordNb = document.createElement('div') ;
	Element.extend(DivWordNb);
	DivWordNb.addClassName('DisplayParamCol_1') ;
	DivWordNb.innerHTML = txt_TagcloudWordNb + ' : ' ;
	DivLine3.appendChild(DivWordNb) ;
	
	// the inner combo
	// first, append an empty div for the 2nd column
	var DivSelWordNbCol2 = document.createElement('div') ;
	Element.extend(DivSelWordNbCol2);
	DivSelWordNbCol2.addClassName('DisplayParamCol_2') ;
	DivLine3.appendChild(DivSelWordNbCol2) ;
	
	// select for the word nb selection
	var DivSelWordNb = document.createElement('div') ;
	Element.extend(DivSelWordNb);
	DivSelWordNb.addClassName('FloatLeft') ;
	
	var SelWordNb = document.createElement('select') ;
	Element.extend(SelWordNb);
	SelWordNb.style.margin = '2px 5px';
	SelWordNb.name = "word_nb" ;
	SelWordNb.addClassName("WordNbSelect") ;
	
	TCWordNBs.each(function(item)
	{
		SelWordNb.options[SelWordNb.length] = new Option(item.key, item.value) ;
	} );

	if(RefTCWordNb == -1)
		SelWordNb.selectedIndex = SelWordNb.length - 1 ;
	else
		SelWordNb.selectedIndex = RefTCWordNb - 1 ;
	DivSelWordNb.appendChild(SelWordNb) ;
	DivSelWordNbCol2.appendChild(DivSelWordNb) ;
	
	// div to insert the word nb selection (after)
	var DivWordNb2 = document.createElement('div') ;
	Element.extend(DivWordNb2);
	DivWordNb2.style.lineHeight = '26px' ;
	DivWordNb2.innerHTML = ' ' + txt_Words ;
	DivSelWordNbCol2.appendChild(DivWordNb2) ;
	
	
	// ******************* div for strength & weakness *******************
	var TcStrengthChecked = '' ;
	var TcWeaknessChecked = '' ;
	if(RefTCStrength == 1)	TcStrengthChecked = 'checked' ;
	if(RefTCWeakness == 1)	TcWeaknessChecked = 'checked' ;
	
	// div for line 4
	var DivLine4 = document.createElement('div') ;
	Element.extend(DivLine4);
	DivLine4.addClassName('DisplayParamLine') ;
	DivLine4.addClassName('AltColor_2') ;
	FieldSet1.appendChild(DivLine4) ;
	
	// the inner caption :
	var DivTCPowerCaption = document.createElement('div') ;
	Element.extend(DivTCPowerCaption);
	DivTCPowerCaption.addClassName('DisplayParamCol_1') ;
	DivTCPowerCaption.innerHTML = txt_TagcloudStrengthWeakness + ' : ' ;
	DivLine4.appendChild(DivTCPowerCaption) ;
	
	// the inner checkboxes
	var DivTCPower = document.createElement('div') ;
	Element.extend(DivTCPower);
	DivTCPower.addClassName('DisplayParamCol_2') ;
	DivTCPower.innerHTML = '<div style="float: left; width: 120px;"><input type="checkbox" id="'+pFormParamObj.id+'_TCStrength" class="TCStrength" name="tc_strength" value="1" '+TcStrengthChecked+' /> '+txt_Strengths +'</div>' ;
	DivTCPower.innerHTML+= '<div><input type="checkbox" id="'+pFormParamObj.id+'_TCWeakness" class="TCWeakness" name="tc_weakness" value="1" '+TcWeaknessChecked+' /> ' + txt_Weaknesses +'</div>' ;
	DivLine4.appendChild(DivTCPower) ;
	
	// *************** FieldSet #2 ***************
	var FieldSet2 = document.createElement('fieldset');
	Element.extend(FieldSet2);
	FieldSet2.addClassName("TipTableFieldSet") ;
	pFormParamObj.appendChild(FieldSet2) ;
	
	var Legend2 = document.createElement('legend');
	Element.extend(Legend2);
	Legend2.innerHTML = txt_TipTable ;
	FieldSet2.appendChild(Legend2) ;
	
	// ******************* div for filter choice + url nb combo *******************
	var TTFilterChecked = (RefTagUrlNb > 0) ? "checked" : "" ;
	var TTNoFilterChecked = (RefTagUrlNb == 0) ? "checked" : "" ;
	
	var DivTTFilter = document.createElement('div') ;
	Element.extend(DivTTFilter);
	// DivTTFilter.addClassName('DisplayParamCol_2') ;
	DivTTFilter.innerHTML = '<div style="float: left;"><input type="radio" id="'+pFormParamObj.id+'_TTFilter" class="TTFilter" name="tt_filter" value="1" '+TTFilterChecked+' /> '+txt_TTFilterTxt1 +'</div>' ;
	// DivTTFilter.innerHTML+= '<div><input type="radio" id="'+pFormParamObj.id+'_TCWeakness" class="TCWeakness" name="tc_weakness" value="1" '+TcWeaknessChecked+' /> ' + txt_Weaknesses +'</div>' ;
	FieldSet2.appendChild(DivTTFilter) ;
	
	// select for the word nb selection
	var DivSelUrlNb = document.createElement('div') ;
	Element.extend(DivSelUrlNb);
	DivSelUrlNb.addClassName('FloatLeft') ;
	
	var SelUrlNb = document.createElement('select') ;
	Element.extend(SelUrlNb);
	SelUrlNb.style.margin = '2px 5px';
	SelUrlNb.name = "url_nb" ;
	SelUrlNb.addClassName("TagUrlNbSelect") ;
	
	for(var i_UrlNb = 1 ; i_UrlNb <= 10 ; i_UrlNb++)
	{
		SelUrlNb.options[SelUrlNb.length] = new Option(i_UrlNb, i_UrlNb) ;
	}

	if(RefTagUrlNb > 0)
		SelUrlNb.selectedIndex = RefTagUrlNb - 1 ;

	DivSelUrlNb.appendChild(SelUrlNb) ;
	DivTTFilter.appendChild(DivSelUrlNb) ;
	
	// div to insert the url nb selection (after)
	var DivUrlNb2 = document.createElement('div') ;
	Element.extend(DivUrlNb2);
	DivUrlNb2.style.lineHeight = '26px' ;
	DivUrlNb2.innerHTML = ' ' + txt_Urls ;
	DivTTFilter.appendChild(DivUrlNb2) ;
	
	// ******************* div for NO filter choice *******************
	var DivTTNoFilter = document.createElement('div') ;
	Element.extend(DivTTNoFilter);
	DivTTNoFilter.innerHTML = '<div style=""><input type="radio" id="'+pFormParamObj.id+'_TTNoFilter" class="TTNoFilter" name="tt_filter" value="0" '+TTNoFilterChecked+' /> '+txt_TTNoFilterTxt +'</div>' ;
	FieldSet2.appendChild(DivTTNoFilter) ;
	
	// ******************* div for text to introduce the tip table column choice *******************
	var DivTTColChoiceIntro = document.createElement('div') ;
	Element.extend(DivTTColChoiceIntro);
	DivTTColChoiceIntro.style.marginTop = '20px';
	DivTTColChoiceIntro.innerHTML = txt_TTColChoiceIntro ;
	FieldSet2.appendChild(DivTTColChoiceIntro) ;
	
	// ******************* divs for tip table column choice *******************
	var TTCols = [txt_TTCol1, txt_TTCol2, txt_TTCol3, txt_TTCol4] ;
	var TTColChecked = ["", "", "", ""] ;
	var DefaultTTCols = ["url_nb", "diff", "eff", "roi"] ;
	
	for(var i_ColNum = 0 ; i_ColNum < DefaultTTCols.length ; i_ColNum++)
	{
		if(RefTTCols.indexOf( DefaultTTCols[i_ColNum] ) != -1)	TTColChecked[ i_ColNum ] = "checked" ;
	}
	
	for(var i_ColNum = 0 ; i_ColNum < TTCols.length ; i_ColNum++)
	{
		var DivColChoice = document.createElement('div') ;
		Element.extend(DivColChoice);
		// DivColChoice.addClassName('DisplayParamCol_2') ;
		DivColChoice.innerHTML = '<div><input type="checkbox" id="'+pFormParamObj.id+'_TT_Col' + i_ColNum +'" name="tt_col_'+ i_ColNum +'" value="1" '+ TTColChecked[i_ColNum] +' /> '+ TTCols[i_ColNum] +'</div>' ;
		FieldSet2.appendChild(DivColChoice) ;
	}
	
	// ******************* add buttons *******************
	var DivButtons = document.createElement('div');
	Element.extend(DivButtons);
	DivButtons.style.clear = 'both' ;
	var DivButtonsContent = '' ;
	if(pFormParamObj.id == DISPLAY_SETTINGS_TAB_NAME + '_Tab2')
	{
		DivButtonsContent = '<div style="float: left; height: 20px;"><a href="#" onclick="SaveTabDisplayParamAsSettings(\''+pFormParamObj.id+'\'); return false" class="bt_simple2 bt_small" style="margin: 10px 10px 10px 0px">' + txt_SaveAsSettings + '</a>' ;
		DivButtonsContent+= '<span id="'+pFormParamObj.id+'_TCSetSaveResult" style="margin: 10px; width: 200px; float: left;">&nbsp;</span></div>' ;
	}
	else
	{
		DivButtonsContent = '<div style="float: left; height: 20px;"><a href="#" onclick="ApplyTCParams(\''+pFormParamObj.id+'\'); return false" class="bt_simple2 bt_small" style="margin: 10px 10px 10px 0px">' + txt_Apply + '</a>' ;
		DivButtonsContent += '<a href="#" onclick="RestoreTCParamSettingsInTab(\''+pFormParamObj.id+'\'); return false" class="bt_simple2 bt_small" style="margin: 10px;">' + txt_RestoreSettings + '</a></div>' ;
	}
	DivButtonsContent+= '<div style="float: right; height: 20px;"><a href="#" onclick="HideDisplaySettings(); return false" class="bt_cancel bt_small" style="margin: 10px;">' + txt_Close + '</a></div>' ;
	DivButtonsContent+= '<div style="margin: 10px; height: 20px;">&nbsp;</div>' ;
	DivButtons.innerHTML = DivButtonsContent ;
	pFormParamObj.appendChild(DivButtons) ;
}

/***********************************************
*
**/
function ApplyTCParams(FormId)
{
	// update the data structure
	UpdateDisplaySettingsDataStructure(FormId) ;
	
	// this function comes from tab-view.js
	// show the main tc tab (#1)
	// showTab('MainTabs','1');	=> not anymore because display settings concern both TAB1 & TAB2 now
	HideMathSelectBoxes();	// this is needed because IE bugs
	
	// then apply to TAB1 & TAB2
	UpdateAllTabs() ;
}

/***********************************************
*
**/
function UpdateDisplaySettingsDataStructure(FormId)
{
	var ParamForm = $(FormId) ;
	// Word nb
	var aSelect = ParamForm.getElementsByClassName('WordNbSelect') ;
	if(aSelect[0] != null)
	{
		if(FormId == DISPLAY_SETTINGS_TAB_NAME + '_Tab2')
			DefaultSettings.SetTCWordNb(aSelect[0].getValue()) ;
		else
			TabData[TAB2].SetTCWordNb(aSelect[0].getValue()) ;
	}
	
	// Expr nb
	aSelect = ParamForm.getElementsByClassName('ExprNbSelect') ;
	if(aSelect[0] != null)
	{
		if(FormId == DISPLAY_SETTINGS_TAB_NAME + '_Tab2')
			DefaultSettings.SetTCExprNb(aSelect[0].getValue()) ;
		else
			TabData[TAB2].SetTCExprNb(aSelect[0].getValue()) ;
	}
	
	// TC type
	if( $(FormId + '_TCTypeComp') != null)
	{
		if(FormId == DISPLAY_SETTINGS_TAB_NAME + '_Tab2')
		{
			if($(FormId + '_TCTypeComp').checked)	DefaultSettings.SetTCType( $F(FormId + '_TCTypeComp') ) ;
			else									DefaultSettings.SetTCType( $F(FormId + '_TCTypeDiff') ) ;
		}
		else
		{
			if($(FormId + '_TCTypeComp').checked)	TabData[TAB2].SetTCType( $F(FormId + '_TCTypeComp') ) ;
			else									TabData[TAB2].SetTCType( $F(FormId + '_TCTypeDiff') ) ;
		}
	}
	
	
	// TC strength
	if(FormId == DISPLAY_SETTINGS_TAB_NAME + '_Tab2')
	{
		if( $F(FormId + '_TCStrength') == 1)		DefaultSettings.SetTCStrength( 1 ) ;
		else										DefaultSettings.SetTCStrength( 0 ) ;
	}
	else
	{
		if( $F(FormId + '_TCStrength') == 1)		TabData[TAB2].SetTCStrength( 1 ) ;
		else										TabData[TAB2].SetTCStrength( 0 ) ;
	}
	
	// TC weakness
	if(FormId == DISPLAY_SETTINGS_TAB_NAME + '_Tab2')
	{
		if( $F(FormId + '_TCWeakness') == 1)		DefaultSettings.SetTCWeakness( 1 ) ;
		else										DefaultSettings.SetTCWeakness( 0 ) ;
	}
	else
	{
		if( $F(FormId + '_TCWeakness') == 1)		TabData[TAB2].SetTCWeakness( 1 ) ;
		else										TabData[TAB2].SetTCWeakness( 0 ) ;
	}
	
	// if user unchecked both, check weakness automatically
	if(FormId == DISPLAY_SETTINGS_TAB_NAME + '_Tab2')
	{
		if( (DefaultSettings.GetTCStrength() == 0) && (DefaultSettings.GetTCWeakness() == 0) )
		{
			var aChecks = $(FormId).getElementsByClassName('TCWeakness') ;
			if(aChecks[0] != null)	aChecks[0].checked = true ;
			DefaultSettings.SetTCWeakness( 1 ) ;
		}
	}
	else
	{
		if( (TabData[TAB2].GetTCStrength() == 0) && (TabData[TAB2].GetTCWeakness() == 0) )
		{
			var aChecks = $(FormId).getElementsByClassName('TCWeakness') ;
			if(aChecks[0] != null)	aChecks[0].checked = true ;
			TabData[TAB2].SetTCWeakness( 1 ) ;
		}
	}

	
	// Tag Url Nb
	var i_TagUrlNb = 0 ;
	aSelect = ParamForm.getElementsByClassName('TagUrlNbSelect') ;
	if(aSelect[0] != null)
		i_TagUrlNb = aSelect[0].getValue() ;
	
	if( $(FormId + '_TTFilter') != null)
	{
		if(FormId == DISPLAY_SETTINGS_TAB_NAME + '_Tab2')
		{
			if($(FormId + '_TTFilter').checked)		DefaultSettings.SetTagUrlNb( i_TagUrlNb ) ;
			else									DefaultSettings.SetTagUrlNb( 0 ) ;
		}
		else
		{
			if($(FormId + '_TTFilter').checked)		TabData[TAB1].SetTagUrlNb( i_TagUrlNb ) ;
			else									TabData[TAB1].SetTagUrlNb( 0 ) ;
		}
	}
	
	// Tip Table Columns
	var a_TTCols = [] ;
	if( $F(FormId + '_TT_Col0') == 1)	a_TTCols.push('url_nb') ;
	if( $F(FormId + '_TT_Col1') == 1)	a_TTCols.push('diff') ;
	if( $F(FormId + '_TT_Col2') == 1)	a_TTCols.push('eff') ;
	if( $F(FormId + '_TT_Col3') == 1)	a_TTCols.push('roi') ;
	
	if(FormId == DISPLAY_SETTINGS_TAB_NAME + '_Tab2')
		DefaultSettings.SetTTCols( a_TTCols ) ;
	else
		TabData[TAB1].SetTTCols( a_TTCols ) ;
}

/***********************************************
*
**/
function ShowDisplaySettings()
{
	// RestoreTCParamSettingsInTab();
	
	HideMathSelectBoxes();
	ShowVeil();
	$(DISPLAY_SETTINGS_TAB_NAME).show() ;
}

/***********************************************
*
**/
function HideDisplaySettings()
{
	ShowMathSelectBoxes();
	$(DISPLAY_SETTINGS_TAB_NAME).hide() ;
	HideVeil();
}


/***********************************************
*
**/
function SaveTabDisplayParamAsSettings(FormId)
{
	// update on the server side
	var Url = 'index.php?module=audit&action=SaveDisplaySettings' ;
	params = 'data=' + DataFileName ;
	params+= '&' + $(FormId).serialize() ;
	params+= '&member_id=' + MemberId ;
	params+= '&member_key=' + MemberKey ;
	// alert(params);
	var myAjax = new Ajax.Updater(FormId+'_TCSetSaveResult', Url, 
	{	method: 'post', 
		parameters: params
	});
	$(FormId+'_TCSetSaveResult').innerHTML = txt_Wait ;
	
	// update on the client side
	UpdateDisplaySettingsDataStructure(FormId) ;
}

/***********************************************
* 
**/
function RestoreTCParamSettingsInTab(FormId)
{
	// copy from default to tab1 or tab2 data structure
	TabData[TAB2].SetTCWordNb( DefaultSettings.GetTCWordNb() ) ;
	TabData[TAB2].SetTCExprNb( DefaultSettings.GetTCExprNb() ) ;
	TabData[TAB2].SetTCType( DefaultSettings.GetTCType() ) ;
	TabData[TAB2].SetTCStrength( DefaultSettings.GetTCStrength() ) ;
	TabData[TAB2].SetTCWeakness( DefaultSettings.GetTCWeakness() ) ;
	TabData[TAB1].SetTagUrlNb( DefaultSettings.GetTagUrlNb() ) ;
	
	// make copy into a_TTCols in order to avoid pointer assignation between tables in JS
	var a_TTCols = [] ;
	DefaultSettings.GetTTCols().each(function(TTCol)
	{
		a_TTCols.push(TTCol) ;
	});
	
	TabData[TAB1].SetTTCols(a_TTCols) ;

	var TCParamForm = $(FormId) ;
	TCParamForm.immediateDescendants().each(function(childElt)
	{
		TCParamForm.removeChild(childElt) ;
	});
	
	InitTagCloudParam(TCParamForm);
}