/***********************************************
*
**/
var GlobalTabNb = 0 ;
var MainTC ;
var MainAgregator ;
var CurrentTab ;
var MainTabSet = 'MainTabs' ;
var TAB1 = 'tabViewMainTabs_0' ;
var TAB2 = 'tabViewMainTabs_1' ;
var b_Debug = true ;
var b_LastAuditsVisible = false;

/***********************************************
*
**/
Element.setOpacity = function(element, value){  
  element= $(element);  
  if (value == 1){
    Element.setStyle(element, { opacity: 
      (/Gecko/.test(navigator.userAgent) && !/Konqueror|Safari|KHTML/.test(navigator.userAgent)) ? 
      0.999999 : null });
    if(/MSIE/.test(navigator.userAgent))  
      Element.setStyle(element, {filter: Element.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'')});  
  } else {  
    if(value < 0.00001) value = 0;  
    Element.setStyle(element, {opacity: value});
    if(/MSIE/.test(navigator.userAgent))  
     Element.setStyle(element, 
       { filter: Element.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'') +
                 'alpha(opacity='+value*100+')' });  
  }   
} 

function ToggleLastAudits()
{
	var MyTagHandle = new TagHandle() ;
	var Btn = $('LastAuditBtn') ;
	var Top = MyTagHandle.getTopPos(Btn);
	var Left = MyTagHandle.getLeftPos(Btn);
	
	var LastAudits = $('LastAudits') ;
	LastAudits.style.left = Left + 'px' ;
	LastAudits.style.top = (Top + 20) + 'px' ;

	OpenLastAudits();
}

function ShowIcoMsg(ps_MsgId)
{
	$(ps_MsgId).show();
}

function HideIcoMsg(ps_MsgId)
{
	$(ps_MsgId).hide();
}


function OpenLastAudits()
{
	b_LastAuditsVisible = true ;
	$('LastAudits').show();
}

function CloseLastAudits(pb_Out)
{
	if(pb_Out)
	{
		b_LastAuditsVisible = false ;
		setTimeout("CloseLastAudits(false)", 1000) ;
	}
	else if( ! b_LastAuditsVisible)
	{
		b_LastAuditsVisible = false ;
		$('LastAudits').hide();
	}
}

function debug_alert(msg)
{
	if(b_Debug)	alert(msg) ;
}


/***********************************************
*
**/
function InitTool()
{
	var innerBox = $('rss_inner_box');
	innerBox.style.top = i_RSSBoxTop + 'px';
	relocateOuterRssBox();
	
	if(b_ShowRssOnStartup)
		locateInnerRssBox() ;
	
	InitVeil() ;
	// menu bar settings
	InitSEOSettings() ;
	InitDisplaySettings() ;
	InitBlacklist() ;
	// expert tab params
	InitCompetitors(TAB2) ;
	
	// init main tagcloud agregator
	InitAgregator() ;
	
	// get previous open tabs from cookie
	if(MemberId != -1)
	{
		// load data in ajax
		UpdateDashBoard() ;
		UpdateMainTC() ;
	
		var HbTabs = readCookie('hb_tabs_' + AuditId);
		if(HbTabs != null)
		{
			var a_TabTitles = HbTabs.split('|');
			var s_MainTCComp1 = TabData[TAB2].GetCompetitor1() ;
			var s_MainTCComp2 = TabData[TAB2].GetCompetitor2() ;
			a_TabTitles.each(function(TabContent)	{
				if(TabContent != '')
				{
					var a_TabData = TabContent.split('!') ;
					TabData[TAB2].SetCompetitor1(a_TabData[1]);
					TabData[TAB2].SetCompetitor2(a_TabData[2]);
					createNewTab('MainTabs','',a_TabData[0],'',GetAjaxUrlForNewTab(),true);
				}
			});
			TabData[TAB2].SetCompetitor1(s_MainTCComp1);
			TabData[TAB2].SetCompetitor2(s_MainTCComp2);
		}
	}
	else
	{
		InitDashBoard() ;
		InitTagCloud() ;
	}
}


/***********************************************
* disable gift message
**/
function DisableGiftMessage()
{
	$('Gift').hide();
	createCookie('hb_gift_' + AuditId, 0, 365) ;
}


/***********************************************
*
**/
function UpdateAllTabs()
{
	H_TabToUpdate.each(function(item)
	{
		if(item.key == CurrentTab)
		{
			H_TabToUpdate[item.key] = false ;
			UpdateCurrentTab() ;
		}
		else
			H_TabToUpdate[item.key] = true ;
	});
}


/***********************************************
* 2.0 veil
**/
function InitVeil()
{
	var Veil = document.createElement('DIV');
	Element.extend(Veil);
	
	Veil.id = "BkgVeil" ;
	Veil.style.display = 'none' ;
	
	Element.setOpacity(Veil, 0.6);
	
	var ABody = document.getElementsByTagName("body") ;
	ABody[0].appendChild(Veil) ;
}

function ShowVeil()
{
	var arrayPageSize = GetPageSize();
	$('BkgVeil').style.width = arrayPageSize[0] +"px";
	$('BkgVeil').style.height = arrayPageSize[1] +"px";
	$('BkgVeil').show();
}

function HideVeil()
{
	$('BkgVeil').hide();
}

function ShowMathSelectBoxes()
{
	var CompCombo1 = $(CurrentTab).getElementsByClassName('ComboComp1') ;
	if(CompCombo1.length > 0)	CompCombo1[0].style.visibility = "visible";
	
	var CompCombo2 = $(CurrentTab).getElementsByClassName('ComboComp2') ;
	if(CompCombo2.length > 0)	CompCombo2[0].style.visibility = "visible";
}

function HideMathSelectBoxes()
{
	var CompCombo1 = $(CurrentTab).getElementsByClassName('ComboComp1') ;
	if(CompCombo1.length > 0)	CompCombo1[0].style.visibility = "hidden";
	
	var CompCombo2 = $(CurrentTab).getElementsByClassName('ComboComp2') ;
	if(CompCombo2.length > 0)	CompCombo2[0].style.visibility = "hidden";
}

/***********************************************
* 
**/
function UpdateCurrentTab()
{
	if(CurrentTab == TAB1)
		UpdateDashBoard() ;
	else if(CurrentTab == TAB2)
		UpdateMainTC() ;
	else
		UpdateKwInfos(CurrentTab) ;
}


/***********************************************
* 
**/
function UpdateMainTC()
{
	var Url = 'index.php?module=audit&action=ShowTC' ;
	var params = 'data=' + DataFileName ;
	params+= '&audit_kw=' + AuditKW ;
	params+= '&tags=' + TabData[TAB2].GetSerializedTags() ;
	params+= '&word_nb=' + TabData[TAB2].GetTCWordNb() ;
	params+= '&word_limit=' + TabData[TAB2].GetTCExprNb() ;
	params+= '&type=' + TabData[TAB2].GetTCType() ;
	params+= '&tc_strength=' + TabData[TAB2].GetTCStrength() ;
	params+= '&tc_weakness=' + TabData[TAB2].GetTCWeakness() ;
	params+= '&blacklist=' + GetBlacklist('audit') ;
	params+= '&agreg=' + AgregatorObj.GetSerializedData() ;
	params+= '&comp1=' + TabData[TAB2].GetCompetitor1() ;
	params+= '&comp2=' + TabData[TAB2].GetCompetitor2() ;
	params+= '&kcounting=' + TabData[TAB2].GetCountingWeight() ;
	params+= '&kdensity=' + TabData[TAB2].GetDensityWeight() ;
	params+= '&min_car=' + i_AuditMinCar ;
	params+= '&homothety1=' + (($('b_Homothety1').checked) ? 1 : 0) ;
	params+= '&stay_in_range=' + (($('b_StayInRange').checked) ? 1 : 0) ;
	params+= '&median=' + (($('b_Median').checked) ? 1 : 0) ;
	params+= '&scale1=' + (($('b_Scale1').checked) ? 1 : 0) ;
	params+= '&blacklist_changed=' + ((BlacklistChanged) ? 1 : 0) ;
	params+= '&audit_id=' + AuditId ;
	
	// alert(params) ;
	var myAjax = new Ajax.Updater('MainTC', Url, 
	{	method: 'get', 
		parameters: params,
		onComplete: InitTagCloud
	});
	
	// set flag off
	if(BlacklistChanged)	BlacklistChanged = false;
	
	// generate cookie with competitors in it
	createCookie('hb_comps_' + AuditId, TabData[TAB2].GetCompetitor1() + '|' + TabData[TAB2].GetCompetitor2(), false) ;
	
	// display loading icon
	SetDivAsLoading('MainTC') ;
}

/***********************************************
* display the loading icon in a div
**/
function SetDivAsLoading(ps_DivId)
{
	$(ps_DivId).innerHTML = '<div style="height: 250px; text-align: center;"><img src="./img/common/ihm/loading.gif" width="32" height="32" style="margin-top: 100px;" /></div>' ;
}
function SetSmallDivAsLoading(ps_DivId)
{
	$(ps_DivId).innerHTML = '<div style="height: 200px; text-align: center;"><img src="./img/common/ihm/loading.gif" width="32" height="32" style="margin-top: 80px;" /></div>' ;
}

/***********************************************
*
**/
function InitAgregator()
{
	MainAgregator = new Agregator() ;
}

/***********************************************
*
**/
function InitTagCloud()
{
	var MyTagHandle = new TagHandle() ;
	MyTagHandle.initTagHandle() ;
}


/***********************************************
*
**/
function GetPageSize()
{
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}

	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}


function GiveMeATab()
{
	var DivTab = document.createElement('div');
	Element.extend(DivTab);
	DivTab.addClassName('HbTab') ;	// this class is recognized by the script that generates the tabs
	return DivTab ;
}


function relocateOuterRssBox() {

	if(b_RssOn == 0)	return ;

  if (document.getElementById) {
	 var a_PageDim = GetPageSize() ;
	 var windowHeight = a_PageDim[3] ;
	 if (windowHeight > 0) {
         var outerBox = $('rss_outer_box');
         var innerBox = $('rss_inner_box');
		 outerBox.style.display = 'block';
		 innerBox.style.display = 'block';
		 if (windowHeight - i_RSSBoxHeight >= 0) {
          if ((document.all) && (navigator.appVersion.indexOf("Mac",0)<0)) {
				var i_ScrollTop = document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
				outerBox.style.position = 'absolute';
                outerBox.style.top = (i_ScrollTop + windowHeight - i_RSSBoxHeight) + 'px';
                }
          else {
				outerBox.style.position = 'fixed';
                outerBox.style.top = (windowHeight - i_RSSBoxHeight) + 'px';
                }
         }
         else {
            outerBox.style.position = 'static';
         }
		
     }
  }
}

function makeRssRoxDisappear()
{
	if(b_RssSliding == 1)	return ;
	if(b_RssOn == 0)	return ;
	
	b_RSSBoxAnimMode = 0 ;
	locateInnerRssBox() ;
}

function makeRssRoxAppear()
{
	if(b_RssSliding == 1)	return ;
	if(b_RssOn == 0)	return ;
	
	if(b_ShowRssOnStartup == 0)
	{
		relocateOuterRssBox() ;
		b_ShowRssOnStartup = 1 ;
	}
	
	if(i_RSSBoxTop != 0)
	{
		b_RSSBoxAnimMode = 1 ;
		locateInnerRssBox() ;
	}
}

function locateInnerRssBox()
{
	if(b_RssOn == 0)	return ;
	
	var innerBox = $('rss_inner_box');
	innerBox.style.top = i_RSSBoxTop + 'px';
	if(b_RSSBoxAnimMode == 1)
	{
		i_RSSBoxTop -= i_RSSBoxAnimStep ;
		b_RssSliding = 1 ;
	}
	else
	{
		b_RssSliding = 1 ;
		i_RSSBoxTop += i_RSSBoxAnimStep ;
	}
		
	if(i_RSSBoxTop == 0)
	{
		b_RSSBoxAnimMode = 0 ;
		b_RssSliding = 0 ;
		setTimeout("locateInnerRssBox()", i_RssPause * 1000);
		return ;
	}
	
	if(i_RSSBoxTop > 120)
	{
		b_RssSliding = 0 ;
		i_RSSBoxTop = 120 ;
		innerBox.style.top = '120px';
		return ;
	}
	
	setTimeout("locateInnerRssBox()",1);
}