// Gestion des menus
var oMenuWord = new YAHOO.widget.Menu("searchWordMenu");
var oMenuBookmark = new YAHOO.widget.Menu("searchMenuBookmark");

// Shared function to parse URL criteria
function buildUrlRequestforParamsList(aParam) {	
	var qs = new Querystring();			
	var sUrlFileName = location.pathname.substring(location.pathname.lastIndexOf('/')+1);
	var sRequest = sUrlFileName + '?';
	var sCurrentParamValue ='';
	var bFirstParam = true;
	for (var i=0; i < aParam.length; i++) {
		var currentParam = aParam[i];
		sCurrentParamValue = qs.get(currentParam);
		if (sCurrentParamValue !== null) {			
			sCurrentParamValue = escape(sCurrentParamValue);			
			if (bFirstParam) {				
				bFirstParam = false;
				sRequest += currentParam + '=' + sCurrentParamValue;
			}
			else {
				sRequest += '&' + currentParam + '=' + sCurrentParamValue;
			}			
		}
	}	
	return sRequest;
}

// MenuPop searchWords
function setSearchWordMenu (sWord, sRequest, sWords, sStopWords, sAction) {	
        // TODO : Refactoring RFIFRWEB.RechercheControle.RechercheParam.vb - appel setSearchWordMenu sans sRequest
        // Gestion du type d'action
        var bAdd = false;
        var sUrlAdd = '#';
        var sUrlSoustract = '';
        var sUrlAffine = '';
        var bRemove = false;
        var sUrlRemove = '#';
        var sUrlFileName = location.pathname.substring(location.pathname.lastIndexOf('/')+1);
		var sUrlSearchPage = buildUrlRequestforParamsList([QUERYSTRING_LANG, QUERYSTRING_TYPE_RECHERCHE, QUERYSTRING_DATE_DEBUT, QUERYSTRING_DATE_FIN, QUERYSTRING_FILTER_STATE, QUERYSTRING_FILTER_LEFT, QUERYSTRING_FILTER_RIGHT, QUERYSTRING_DISPLAY_MODE, QUERYSTRING_SOURCE, QUERYSTRING_PERIODE]);						
		sEncodedWord = encodeURIComponent(sWord);
		sWords = encodeURIComponent(sWords);
		sStopWords = encodeURIComponent(sStopWords);
        switch (sAction) {
			case 'add':
				bAdd = true;
				sUrlRemove = (sUrlSearchPage != sUrlFileName + '?' ? sUrlSearchPage + "&" + QUERYSTRING_RECHERCHE + '=' + sWords : sUrlSearchPage + QUERYSTRING_RECHERCHE + '=' + sWords) + ( sStopWords != 'null' && sStopWords != '' ? '&' + QUERYSTRING_RECHERCHE_SANS +  '=' + sStopWords: '');
				sUrlSoustract = (sUrlSearchPage != sUrlFileName + '?' ? sUrlSearchPage + "&" + QUERYSTRING_RECHERCHE + '=' + sWords : sUrlSearchPage + QUERYSTRING_RECHERCHE + '=' + sWords) + ( sStopWords != 'null' && sStopWords != '' ? '&' + QUERYSTRING_RECHERCHE_SANS +  '=' + sStopWords + ';' +  sEncodedWord: '&' + QUERYSTRING_RECHERCHE_SANS +  '=' + sEncodedWord);
				break;
			case 'remove':
				bRemove = true;
				sUrlAdd = (sUrlSearchPage != sUrlFileName + '?' ? sUrlSearchPage + "&" + QUERYSTRING_RECHERCHE + '=' + sWords : sUrlSearchPage + QUERYSTRING_RECHERCHE + '=' + sWords) + ( sStopWords != 'null' && sStopWords != '' ? '&' + QUERYSTRING_RECHERCHE_SANS +  '=' + sStopWords  : '');
				sUrlAffine= (sUrlSearchPage != sUrlFileName + '?' ? sUrlSearchPage + "&" + QUERYSTRING_RECHERCHE + '=' + sWords : sUrlSearchPage + QUERYSTRING_RECHERCHE + '=' + sWords) +  ';' + sEncodedWord + ( sStopWords != 'null' && sStopWords != '' ? '&' + QUERYSTRING_RECHERCHE_SANS +  '=' + sStopWords  : '');
				break;
        }
        
        // Redéfinition du menu        
         //var sWordForId = Remplace(sWord, "'", "");	
        //sWordForId = Remplace(sWord, '"', "");	
        //sWordForId = Remplace(sWordForId, " ", "");
        
        var posX = Dom.getX('searchWord_' + sWord); 		
		var posY = Dom.getY('searchWord_' + sWord); 				
		oMenuWord.clearContent();  		
		if (bAdd) {
			oMenuWord.addItems([

				[
					{ text: "Nouvelle recherche", url: sUrlFileName + '?' + QUERYSTRING_RECHERCHE + '=' + sEncodedWord},
					{ text: "Enlever de la recherche &nbsp;", visible: bRemove, url: sUrlRemove},
					{ text: "Soustraire de la recherche", visible: bRemove, url: sUrlSoustract}
                
				],     
			]);		

		}
		else {
			oMenuWord.addItems([

				[
					{ text: "Nouvelle recherche", url: sUrlFileName + '?' + QUERYSTRING_RECHERCHE + '=' + sWord},					
					{ text: "Enlever de la recherche &nbsp;", visible: bAdd, url: sUrlAdd},
					{ text: "Affiner la recherche", visible: bAdd, url: sUrlAffine},                
				],     
			]);
		}
		
        oMenuWord.setItemGroupTitle(sWord, 0);
        oMenuWord.render("searchWordMenuContainer");              	        
        oMenuWord.cfg.setProperty('x', posX); 		 		
		oMenuWord.cfg.setProperty('y', posY + 20); 		 				
        oMenuWord.show();        
 }

// Menu PopUp Boolmark
function setMenuBookMark() {
        oMenuBookmark.clearContent();
        oMenuBookmark.addItems([

                { text: 'Ajouter aux favoris', url: 'javascript:bookmarkSearch();'},
                //{ text: 'Ajouter aux moteurs de recherche', url: 'javascript:setSearchEngine()'},
                //{ text: 'Envoyer &agrave; un ami', url: '#'},
                //{ text: 'DiggIt <img class="displayModeImg" src="/communfr/img/diggit.gif" alt="DiggIt"  />', url: '#'},
                //{ text: 'MySpace <img class="displayModeImg" src="/communfr/img/myspace.gif" alt="MySpace"  />', url: '#'}
            ]);

        oMenuBookmark.showEvent.subscribe(function () {

            this.focus();

        });

	var posX = Dom.getX('wordsSectionContainerLink'); 		
	var posY = Dom.getY('wordsSectionContainerLink'); 		    		  
	oMenuBookmark.render("searchMenuBookmark");
	oMenuBookmark.cfg.setProperty('width', '140px'); 
        oMenuBookmark.cfg.setProperty('x', posX); 		 		
	oMenuBookmark.cfg.setProperty('y', posY + 18); 
	oMenuBookmark.show();				        
}

function bookmarkSearch () {
	var qs = new Querystring();			
	var sRecherche = qs.get(QUERYSTRING_RECHERCHE);								
	var sSoustraire= qs.get(QUERYSTRING_RECHERCHE_SANS);		
	
	if (sRecherche !== null) {
		sRecherche = ' (+) ' + sRecherche.replace(';', ' ');	
		}
	else {
		sRecherche = '';
	}
	
	if (sSoustraire !== null) {
		sSoustraire = ' (-) ' + sSoustraire.replace(';', ' ');	
		}
	else {
		sSoustraire = '';
	}
	
	var url = location.href;
	var title = document.title + " - " + sRecherche + sSoustraire ;
	// TODO : rechercher la provenance du caratère # dans l'url
	title = title.replace('#4H','');
	title = title.replace('4H','');
	title = title.replace('#','');
	if (window.sidebar) {                        
			window.sidebar.addPanel(title, url,""); 
	} else if( document.all ) {                        
			window.external.AddFavorite(url, title);
			} else if( window.opera && window.print ) {
					return false;
				}
}

function setSearchEngine()
{
 if ((typeof window.sidebar == 'object') && (typeof window.sidebar.addSearchEngine == 'function'))
	{
	 window.sidebar.addSearchEngine(
		'/communfr/scripts/rfirecherche.src',
		'/communfr/img/rfi-ico.gif',
		'RFI-Recherche',
		'Rechercher sur rfi.fr' );
	}
	else {
		alert('Impossible d\'ajouter RFI-Recherche à vos moteurs de recherche.');
	}	
}
