// gestion TagsCloud 
var tagsCloud;
var bExpandedTagsCloud = false;

function tagsCloud_init() {		
	// Chargements et rendus des tags cloud			
	tagsCloud = new YAHOO.widget.Module('tagsCloud', {monitorresize : true});
	setPanelContent(tagsCloud, 3);			
}

function getSortTagsListFromsizeValue (value) {
	var sSortTagsList = "";
	switch (value) {
		case 0 :
			sSortTagsList = {'higher':1};
			break;
		
		case 1 :
			sSortTagsList = {'higher':1,'high':1};
			break;
			
		case 2 :
			sSortTagsList = {'higher':1,'high':1,'normal':1};
			break;
			
		case 3 :
			sSortTagsList = {'higher':1,'high':1,'normal':1,'low':1};
			break;

		case 4 :
			sSortTagsList = {'higher':1,'high':1,'normal':1,'low':1,'lower':1};
			break;
						
		default :
			sSortTagsList = {'higher':1};		
	}
	return sSortTagsList;		
}

// Remplissages du Panel
function setPanelContent(tagsCloud, sizeValue) {			
		// Initialisation				
		var sContent = '';				
		try {
			if (tagsCloudList !== undefined) {
			var tags = tagsCloudList.tagsCloud.tagslist.tags;
			var nbTags = tags.length;
			if (nbTags > 0) {			
			var qs = new Querystring();	
			var sUrlFileName = location.pathname.substring(location.pathname.lastIndexOf('/')+1);
			var sRecherche = qs.get(QUERYSTRING_RECHERCHE);								
			var sSoustraire= qs.get(QUERYSTRING_RECHERCHE_SANS);		
			// Gestion de l'encodage
			sRecherche = escape(sRecherche);			
			sSoustraire = escape(sSoustraire);			
			//sSoustraire = sSoustraire.replace("'","\\'");
			var sTagForMouseOver = '';
			var sortTagsList = getSortTagsListFromsizeValue(sizeValue);		
			var contextElements = []; // tooltips on TagsCloud		
			var sStartRequest = buildUrlRequestforParamsList([QUERYSTRING_LANG, QUERYSTRING_TYPE_RECHERCHE, QUERYSTRING_SORT_BY, QUERYSTRING_DATE_DEBUT, QUERYSTRING_DATE_FIN, QUERYSTRING_FILTER_STATE, QUERYSTRING_FILTER_LEFT, QUERYSTRING_FILTER_RIGHT, QUERYSTRING_DISPLAY_MODE, QUERYSTRING_SOURCE, QUERYSTRING_PERIODE, QUERYSTRING_CRITERIA_STATE]);				
			var sRequest = (sStartRequest != sUrlFileName + '?' ? sStartRequest + '&' + QUERYSTRING_RECHERCHE +  '=' + sRecherche : sStartRequest + QUERYSTRING_RECHERCHE +  '=' + sRecherche);			
			
							
			for(var i=0; i < nbTags ; i++) {	
					tag =  tags[i];													
					if (tag.importance in sortTagsList) {					
						//sTagForMouseOver = tag.label.replace("'","\\'");	
						sTagForMouseOver = Remplace(tag.label, "'", "\\'");	
						//sRequestForMouseOver = 	sRequest.replace("'","\\'");																							
						sRequestForMouseOver = 	Remplace(sRequest, "'", "\\'");
						
						// Content with menu onmouseover
						sContent += ' ' + '<a id="tagsCloudLink' + i + '" href="javascript:void(0);" class="' + tag.theme + ' ' + tag.importance +  '" onclick="setTagsCloudMenu(\'' + sTagForMouseOver + '\', ' + i + ',\'' + sRequestForMouseOver + '\', \'' + sSoustraire + '\');"  onmouseover="setTagsCloudMenuTimeout(\'' + sTagForMouseOver + '\', ' + i + ',\'' + sRequestForMouseOver + '\', \'' + sSoustraire + '\');" onMouseOut="javascript:clearTagsCloudMenuTimeout();">' + tag.label + '</a>';
					}
				}
				
			// Gestion du lien expand/collapse tagsCloud			
			if (sizeValue == 3) {				
				sContent += ' <a id="tagsCloudSizeAction" class="command" href="javascript:expandTagsCloud();">+ de mots</a><br />';
			}
			else {				
				sContent += ' <a id="tagsCloudSizeAction" class="command" href="javascript:collapseTagsCloud();">- de mots</a><br />';			
				
			}
			var similaireZone = document.getElementById('similairesZone');
			Dom.setStyle(similaireZone, 'display','block');	
			
			with (tagsCloud) {						
				setBody(sContent);	
				render();
				show;	
			}	
			}
			else { // tagsCloud vide
				var similaireZone = document.getElementById('similairesZone');
				Dom.setStyle(similaireZone, 'display','none');	
			}		
		    }
		}	
		catch (e) {
			// Catch erreur récupération de la tagsCloudList
			//throw(e);
		}
}

function expandTagsCloud() {			
		setPanelContent(tagsCloud, 4);				
}

function collapseTagsCloud() {			
		setPanelContent(tagsCloud, 3);					
}

Event.onAvailable('tagsCloud', tagsCloud_init);
