



var newWindowOpen;


/***************************************************************************************/
/********************** Fonction d'ouverture de l'outil de recherche *******************/
/***************************************************************************************/


function dimBrowser(dimension, champ, numFen)
{
	try {winDimBrowser.destroy()}catch(e){}
	formulaire = $('frmInput'+numFen);
	var serveur = formulaire.Serveur.value;
	var base = formulaire.DataBase.value;
	var cube = formulaire.Cube.value;
	var chParam = "numFen="+numFen+"&champ="+champ+"&Serveur="+serveur+"&DataBase="+base+"&Cube="+cube+"&dimension="+dimension;
	openDimBrowser(chParam);
}
/***************************************************************************************/
/***************************************************************************************/


var winDimBrowser;
function openDimBrowser(chParam)
{
	try {
		var idDivBrowser = 'divDimBrowser';
		if ($(idDivBrowser))
			$(idDivBrowser).parentNode.removeChild($(idDivBrowser));
			
		var divWindow = document.createElement('div');
		divWindow.id = idDivBrowser;
		divWindow.className = SKIN_PANEL_DEFAULT;
		divWindow.innerHTML = "<div class='hd'><div class='tl'></div><span>"+ t_msgTitreDimBrowser +"</span><div class='tr'></div></div><div class='bd'></div><div class='ft'><div class='bl'></div><span>&nbsp;</span><div class='br'></div></div>";
		document.body.appendChild(divWindow);
		
		winDimBrowser = new YAHOO.widget.Panel(idDivBrowser, {
		        draggable: true,
		        fixedcenter:true,
				width: '350px',
				height: '450px',
				modal:true,
				close:true,
				underlay:'none'
		});
		
		winDimBrowser.showEvent.subscribe(function(e){
		    try {
				var panelHeight = this.element.offsetHeight;
		        var headerHeight = this.header.offsetHeight; // Content + Padding + Border
		        var footerHeight = this.footer.offsetHeight; // Content + Padding + Border
		        var bodyHeight = (panelHeight - headerHeight - footerHeight);
		        var bodyContentHeight = (IE_QUIRKS) ? bodyHeight : bodyHeight - tabPaddingPanel[SKIN_PANEL_DEFAULT];
		        YAHOO.util.Dom.setStyle(this.body, 'height', bodyContentHeight + 'px');
		        if (IE_SYNC) {
		            this.sizeUnderlay();
		            this.syncIframe();
		        }
		    }catch(e){
		     }
		});
		
		
		winDimBrowser.render();
		winDimBrowser.show();
		winDimBrowser.bringToTop();
		winDimBrowser.close = winDimBrowser.hide;
		
		setTimeout(function() {
			winDimBrowser.render();
			winDimBrowser.show();
			winDimBrowser.bringToTop();
		},200);
		winDimBrowser.setBody("<div id='div_content_olapBrowser'></div>");
		trAjax("div_content_olapBrowser","/webarea/OLAP/dimBrowser_xml.php", "/webarea/OLAP/dimBrowser.xsl","post",chParam,true);
		
    }
    catch(e){
	    alert("Erreur dans openDimBrowser : "+e.message)
	}
}








function replierFiltres(numFen)
{
	try {
		var formulaire = $('frmInput'+numFen)
		var nbDim = formulaire.nbDimensions.value;		
		for (h=0; h<nbDim; h++) {
			var ladiv = $('fen'+numFen+'_div_filtre_'+h);
			//new Effect.SlideUp(ladiv,{duration:0.2});
			ladiv.style.display='none';
		}
	}
	catch(e){}
}



/***************************************************************************************/
/*********************** Fonctions de vérification du formulaire ***********************/
/***************************************************************************************/



function returnValeursInput(numFen)
{
	var chValue = "";
	var formInput = $('frmInput'+numFen);
	
	liste = formInput.getElementsByTagName("input");
	for ( var k=0; k<liste.length; k++)
	{
		if ((liste[k].value != "")&&(liste[k].name != ""))
			if (liste[k].name.toLowerCase().search("src_partie")==-1)
				chValue = chValue + liste[k].name +"="+liste[k].value+"&";
	}
	
	return(chValue);
}


/***************************************************************************************/
/***************************************************************************************/




function EraseSearch(numFen,namefieldselect,namefielval,numDiv)
{
	formulaire = $('frmInput'+numFen);
	eval('formulaire.s_'+namefieldselect+'.length=0');  //raz le select
	eval('formulaire.'+namefielval+'.value=""');  //raz
	//eval('CacheUne("div_'+namefieldselect+'","","")');
	var ladiv = $('fen'+numFen+'_div_filtre_'+numDiv);
	//new Effect.Fade(ladiv);
	ladiv.style.display='none';
}

function EraseSearchOne(numFen,namefieldselect,namefielval,numDiv)
{
	formulaire = $('frmInput'+numFen);
	namefieldselect = eval('formulaire.s_'+namefieldselect);
	namefielval = eval('formulaire.'+namefielval);
	var nomdiv = eval('formulaire.nomDim_'+numDiv+'.value');
	for (var i=0; i<namefieldselect.length; i++) {
		if (namefieldselect.options[i].selected==true) {
			namefielval.value = namefielval.value.replace(namefieldselect.options[i].value+',','');
			namefielval.value = namefielval.value.replace(','+namefieldselect.options[i].value,'');
			namefielval.value = namefielval.value.replace(namefieldselect.options[i].value,'');
			namefieldselect.options[i] = null;
			i--;
		}
	}
	if (namefieldselect.length == 0) {
		namefielval.value="";
		var ladiv = $('fen'+numFen+'_div_filtre_'+numDiv);
		new Effect.Fade(ladiv);
	}
}




function genereRequete(numFen)
{
	
	/********************** Déclarations *********************/
	var tIdCol = new Array();
	var tIdRow = new Array();
	var formulaire = $('frmInput'+numFen);
	var nbDim = new Number(formulaire.nbDimensions.value);
	/*********************************************************/
	
	
	
	/*********************** Vérifications********************/
	
	var tabDim = $('lst_DDRow_fen'+numFen).getElementsByTagName('li');
	if (tabDim.length<=0) {alert(t_msgErreurDimRow); return;}
	for (var i=0; i<tabDim.length; i++)
		tIdRow[tIdRow.length] = tabDim[i].id;
	
		
	
	tabDim = $('lst_DDCol_fen'+numFen).getElementsByTagName('li');
	if (tabDim.length<=0) {alert(t_msgErreurDimCol);	return;}
	for (var i=0; i<tabDim.length; i++)
		tIdCol[tIdCol.length] = tabDim[i].id;

	/*********************************************************/
	
	try
	{	
		if (formulaire.ck_totaux_row.checked)
			formulaire.totaux_row.value="on";
		else
			formulaire.totaux_row.value="";
			
		if (formulaire.ck_totaux_col.checked)
			formulaire.totaux_col.value="on";
		else
			formulaire.totaux_col.value="";
			
	}
	catch(e){}	

	
	if (!genereMDX(numFen,tIdRow,tIdCol))
		return false;
		
	
	if (!genereWHERE(numFen,tIdRow,tIdCol))
		return false;
	

	formulaire.strMDX.value += " FROM " + formulaire.Cube.value;
	
	formulaire.strMDX.value = formulaire.strMDX.value.replace(/.children/gi,"");
	var conditions = genereWHERE(numFen,tIdRow,tIdCol);
	formulaire.strMDX.value = conditions.split("¤¤||¤¤")[0]+" "+formulaire.strMDX.value+" "+conditions.split("¤¤||¤¤")[1];
	
	//$('testarea').value = formulaire.strMDX.value
	
	
	chValeurs = returnValeursInput(numFen);
	tabWidget[numFen].tabView.set('activeIndex', 1);

	
	trAjax("d_ResultContainer"+numFen,fichierXML_Result, fichierXSL_Result, "post",chValeurs,true,loadingHTML);
	
	
}


function escapeURI(La){
  if(encodeURIComponent) {
    return encodeURIComponent(La);
  }
  if(escape) {
    return escape(La)
  }
}







function genereMDX(numFen,tabRow,tabCol)
{
	
	var formulaire = $('frmInput'+numFen);
	var nbDim = new Number(formulaire.nbDimensions.value);
	var nbMesures = 0;
	var valMesure;
	var tabValeursRow = new Array();
	var tabValeursCol = new Array();
	var chMDX;
	
	
	/****************************************************************************/
	/******************* Génération de la chaine des mesures ********************/
	/****************************************************************************/
	valMesure = "{"
	
	for (i=0; i<formulaire.optMeasure.options.length; i++)
	{
		if ((formulaire.optMeasure.options[i].selected)&&(formulaire.optMeasure.options[i].value!=''))
		{
			nbMesures++;
			valMesure = valMesure + formulaire.optMeasure.options[i].value + ",";
		}
	}	
	
	var string_tabRow = tabRow.join('::');
	var string_tabCol = tabCol.join('::');
	
	if (((string_tabRow.indexOf('DD_fen'+numFen+'_Mesures')==-1)&&(string_tabCol.indexOf('DD_fen'+numFen+'_Mesures')==-1))&&(nbMesures>1))
	{
		alert(t_msgErreurDimMesures);
		return false;
	}
	
	if (((string_tabRow.indexOf('DD_fen'+numFen+'_Mesures')!=-1)||(string_tabCol.indexOf('DD_fen'+numFen+'_Mesures')!=-1))&&(nbMesures==0))
	{
		alert(t_msgErreurDimMesures2);
		return false;
	}
	
	
	var taille = valMesure.length;
	if (valMesure.substring(taille-1,taille) == ',')
		valMesure = valMesure.substring(0,taille-1);
	
	taille = valMesure.length;
	if (valMesure.substring(0,1) == ',')
		valMesure = valMesure.substring(1,taille);
		
	valMesure = valMesure + "}";
	
	/****************************************************************************/
	/****************************************************************************/
	
	
	/****************************************************************************/
	/******************* Remplissage tableau valeurs lignes *********************/
	/****************************************************************************/
	for (var i=0; i<tabRow.length; i++)
	{
		var numDim = tabRow[i].replace('DD_fen'+numFen+'_position','');
		var laValeur = "";
		
		if (eval("formulaire.list_filtre_"+numDim))
		{
			if (eval("formulaire.list_filtre_"+numDim+".value != ''"))
				laValeur = eval("formulaire.list_filtre_"+numDim+".value");
			else	
				laValeur = eval("formulaire.valDefault_"+numDim+".value.replace(/.children/gi,'')");
			tabValeursRow[tabValeursRow.length] = laValeur;
		}
		// Insersion mesures
		if ((tabRow[i].indexOf('DD_fen'+numFen+'_Mesures')!=-1)&&(nbMesures>0))
			tabValeursRow[tabValeursRow.length] = valMesure;
		
	}
	/****************************************************************************/
	/****************************************************************************/
	
	
	
	
	/****************************************************************************/
	/****************** Remplissage tableau valeurs colonnes ********************/
	/****************************************************************************/
	for (var i=0; i<tabCol.length; i++)
	{
		var numDim = tabCol[i].replace('DD_fen'+numFen+'_position','');
		var laValeur = "";
		
		if (eval("formulaire.list_filtre_"+numDim))
		{
			if (eval("formulaire.list_filtre_"+numDim+".value != ''"))
				laValeur = eval("formulaire.list_filtre_"+numDim+".value");
			else	
				laValeur = eval("formulaire.valDefault_"+numDim+".value.replace(/.children/gi,'')");
			tabValeursCol[tabValeursCol.length] = laValeur;
		}
		// Insersion mesures
		if ((tabCol[i].indexOf('DD_fen'+numFen+'_Mesures')!=-1)&&(nbMesures>0))
			tabValeursCol[tabValeursCol.length] = valMesure;
	}
	/****************************************************************************/
	/****************************************************************************/
	
	// Insersion mesures à la fin uniquement
	/*
	if ((tabRow.indexOf('DD_fen'+numFen+'_Mesures')!=-1)&&(nbMesures>0))
			tabValeursRow[tabValeursRow.length] = valMesure;
	if ((tabCol.indexOf('DD_fen'+numFen+'_Mesures')!=-1)&&(nbMesures>0))
			tabValeursCol[tabValeursCol.length] = valMesure;
	*/
	
	chMDX = "SELECT NON EMPTY ";

	
	/****************************************************************************/
	/********************************** COLONNES ********************************/
	/****************************************************************************/
	if (tabValeursCol.length==1)
	{
		chMDX = chMDX + "{"+tabValeursCol[0]+"}";
	}
	else
	{
		for(var i=0; i<tabValeursCol.length; i++)
		{
			if (i != (tabValeursCol.length-1))
				chMDX += "CROSSJOIN ({"+tabValeursCol[i]+"}, "
			else
			{
				chMDX += "{"+tabValeursCol[i]+"}";
				for (var j=0; j<i; j++)
					chMDX +=")";
			}
		}
	}
	chMDX += " on COLUMNS";
	/****************************************************************************/
	/****************************************************************************/
	
	
	
	
	/****************************************************************************/
	/*********************************** LIGNES *********************************/
	/****************************************************************************/
	
	chMDX = chMDX + ", NON EMPTY "
	
	
	if (tabValeursRow.length==1)
	{
		chMDX = chMDX + "{"+tabValeursRow[0]+"}";
	}
	else
	{
		for(var i=0; i<tabValeursRow.length; i++)
		{
			if (i != (tabValeursRow.length-1))
				chMDX += "CROSSJOIN ({"+tabValeursRow[i]+"}, "
			else
			{
				chMDX += "{"+tabValeursRow[i]+"}";
				for (var j=0; j<i; j++)
					chMDX +=")";
			}
		}
	}
	chMDX += " on ROWS";
	/****************************************************************************/
	/****************************************************************************/
	

	formulaire.strMDX.value = chMDX;
	return true
}




function genereWHERE(numFen,tabRow,tabCol)
{
	formulaire = $('frmInput'+numFen);
	var nbDim = new Number(formulaire.nbDimensions.value);
	var chWith = '';
	var chWhere = '';
	
	
	var string_tabRow = tabRow.join('::');
	var string_tabCol = tabCol.join('::');
	
	
	if (((string_tabRow.indexOf('DD_fen'+numFen+'_Mesures')==-1)&&(string_tabCol.indexOf('DD_fen'+numFen+'_Mesures')==-1))&&(formulaire.optMeasure.value!=''))
		chWhere = formulaire.optMeasure.value + ",";
	
	for (i=0; i<nbDim; i++) {
		var nomDim = eval("formulaire.nomDim_"+i+".value");
		if ((string_tabRow.indexOf('DD_fen'+numFen+'_position'+i)==-1)&&(string_tabCol.indexOf('DD_fen'+numFen+'_position'+i)==-1)) {
			var chDim = "";
			var leSelect = eval("formulaire.s_filtre_"+i);
			if (leSelect.options.length >0) {
				nomDim = nomDim.toLowerCase();
				chDim = "MEMBER ["+nomDim+"].[slicer C] as 'AGGREGATE({";
				var trouve = false;
				for (j=0; j<leSelect.options.length; j++) {
					if (leSelect.options[j].value != '') {
						trouve = true;
						var val = leSelect.options[j].value.toLowerCase();
						/*
						var tElements = val.split("].[");
						var tElementsCourant = tElements.slice();
						tElementsCourant.length = tElements.length-1;
						var parentVal = tElementsCourant.join("].[");
						if (parentVal.substr(parentVal.length-1,1) != "]") parentVal += "]";
						if (chDim.indexOf(parentVal+".children") != -1) {
							if (chDim.indexOf(val) == -1)
								chDim = chDim.replace(parentVal+".children,{",parentVal+".children,{"+val+",");
						}
						else
							chDim += ",intersect("+parentVal+".children,{"+val+"})";
						*/
						chDim += val+",";
					}
				}
				taille = chDim.length;
				if (chDim.substring(taille-1,taille) == ',')
				chDim = chDim.substring(0,taille-1);
				chDim += "})' ";
				if (!trouve) chDim="";
				else
					chWhere += "["+nomDim+"].[slicer C],";
				chWith += chDim;
			}
		}
	}
	taille = chWhere.length;
	if (chWhere.substring(taille-1,taille) == ',')
		chWhere = chWhere.substring(0,taille-1);
		
	if (chWith !="") chWith = "WITH "+chWith;
	if (chWhere !="") chWhere = "WHERE ("+chWhere+")";
	
	return(chWith+"¤¤||¤¤"+chWhere);
}

//AJOUT EC 20070405
//-------------------------------------------


function RempliSearch(ridfenetre,raxe,rnom,rval)
{	
	try {
		rnom = rnom.replace(/ /g,'_');
		var formulaire = $('frmInput'+ridfenetre);
		if (rnom!= "Measures") {
			positiondsform=eval('formulaire.Dim_'+rnom+'.value')
			if (raxe=='col')
				$('lst_DDCol_fen'+ridfenetre).appendChild($('DD_fen'+ridfenetre+'_position'+positiondsform));
			
			if (raxe=='lin')
				$('lst_DDRow_fen'+ridfenetre).appendChild($('DD_fen'+ridfenetre+'_position'+positiondsform));
				
			eval('formulaire.list_filtre_'+positiondsform+'.value += "'+rval+'¤¤"')
			ctroption=0
		}
		else {
			if (raxe=='col')
				$('lst_DDCol_fen'+ridfenetre).appendChild($('DD_fen'+ridfenetre+'_Mesures'));

			if (raxe=='lin')
				$('lst_DDRow_fen'+ridfenetre).appendChild($('DD_fen'+ridfenetre+'_Mesures'));

			var taille= formulaire.optMeasure.length;
			for(ctr=0;ctr<taille;ctr++)  {
				val_ec = formulaire.optMeasure.options[ctr].value;
				if (val_ec==rval) {
					formulaire.optMeasure.options[ctr].selected=true;
				}
			}
		}
	}
	catch(e){
		//alert("Erreur dans RempliSearch : " +e.message)
	}
}
	

function RebuildSelectSearch(ridfenetre)
{
	var formulaire = $('frmInput'+ridfenetre)
	var nbDim = formulaire.nbDimensions.value;		
	for (var h=0; h<nbDim; h++) {
		var chrono = new Number(h*400);
		eval('valfiltre=formulaire.list_filtre_'+h+'.value');
		if (valfiltre != '') {
			ladiv = $('fen'+ridfenetre+'_div_filtre_'+h);
			if (ladiv) ladiv.style.display='';
			
	 		eval('chaine_caractere = formulaire.list_filtre_'+h+'.value');
	 		TabLst_Val = chaine_caractere.split('¤¤')
	 		taille=TabLst_Val.length;
	 		for(ctr=0;ctr<taille;ctr++) {
		 		if (TabLst_Val[ctr] != '') {
		 			optVal=TabLst_Val[ctr]
		 			optTxt=TabLst_Val[ctr]//.replace(/[/gi,'').replace(/]/gi,'')
		 			optTxt=optTxt.substring(optTxt.search(/]./)+2,optTxt.length)
		 		 	eval('formulaire.s_filtre_'+h+'.options[ctr]=new Option(optTxt,optVal)');
		 		 	eval('formulaire.s_filtre_'+h+'.size = 3');
	 		 	}
	 		}
	 		eval('formulaire.list_filtre_'+h+'.value = formulaire.list_filtre_'+h+'.value.replace(/¤¤/gi,",")');
	 		var ch = eval('formulaire.list_filtre_'+h+'.value')
	 		if(ch.substring(ch.length-1,ch.length) == ',') {
		 		ch = ch.substring(0,ch.length-1)
		 		eval('formulaire.list_filtre_'+h+'.value = ch')
	 		}
		}
	}
}




function afficherRQT(numFen,nomRQT,rqt,totaux_row,totaux_col,typeGraph,tailleGraph) {
	try {
		rqt = rqt.replace(/¤¤/gi,',');
		if (rqt.trim()=="")	return;
		
		var tmpButton = eval("menuButtonRQT_"+numFen);
		tmpButton.set("label", nomRQT);
		tmpButton.set("value", nomRQT);
		
		
		var formulaire = $('frmInput'+numFen);
		var leChamps = formulaire.strMDX;
		leChamps.name = "defMDX";
		leChamps.value = rqt;
		
		if (totaux_row=="on") {
			formulaire.ck_totaux_row.checked=true;
			formulaire.totaux_row.value="on";
		}
		else {
			formulaire.ck_totaux_row.checked=false;
			formulaire.totaux_row.value="";
		}
		
		if (totaux_col=="on") {
			formulaire.ck_totaux_col.checked=true;
			formulaire.totaux_col.value="on";
		}
		else {
			formulaire.ck_totaux_col.checked=false;
			formulaire.totaux_col.value="";
		}
		var nbDim = new Number(formulaire.nbDimensions.value);
		var j=0;
		while ((j<nbDim)) {
			EraseSearch(numFen,'filtre_'+j,'list_filtre_'+j,j);
			$('lst_DDdim_fen'+numFen).appendChild($('DD_fen'+numFen+'_position'+j));
			j++;
		}
		$('lst_DDdim_fen'+numFen).appendChild($('DD_fen'+numFen+'_Mesures'));
		
		chValeurs = returnValeursInput(numFen);
		chValeurs += "&typeGraph="+typeGraph;
		chValeurs += "&tailleGraph="+tailleGraph;
		chValeurs += "&TitleQuery="+nomRQT;
		leChamps.name = "strMDX";
		tabWidget[numFen].tabView.set('activeIndex', 1);
		trAjax("d_ResultContainer"+numFen,fichierXML_Result, fichierXSL_Result, "post",chValeurs,true,loadingHTML);	
	}
	catch(e){alert("Erreur dans afficherRQT : "+e.message);}
	
}



function deleteRQT(numFen) {
	try {
		var formulaire = $('frmInput'+numFen);
		var tmp_button = eval("menuButtonRQT_"+numFen);
		var nomRQT = tmp_button.get("value");
		if ((nomRQT)&&(nomRQT.trim()!=''))
		{
			formulaire.action="/webarea/traite.php?type_action=deleteRQT&nomRQT="+nomRQT+"&idWebArea="+idWebArea;
			formulaire.target="traite";
			formulaire.method="post";
			beginTraitement(msgTraitementEC.replace('XXXX',msg_TraitementDelRQT));
			setTimeout(function(){formulaire.submit();},800);
		}
	}
	catch(e){alert("Erreur dans deleteRQT : "+e.message);}
}


function cocheTotaux(coche,sens,numFen)
{
	var formulaire = $('frmInput'+numFen);
	if (formulaire) {
		if (sens=='row') {
			if (coche=='on') {
				formulaire.ck_totaux_row.checked=true;
				formulaire.totaux_row.value="on";
			}
			else {
				formulaire.ck_totaux_row.checked=false;
				formulaire.totaux_row.value="";
			}
		}
		if (sens=='col') {
			if (coche=='on') {
				formulaire.ck_totaux_col.checked=true;
				formulaire.totaux_col.value="on";
			}
			else {
				formulaire.ck_totaux_col.checked=false;
				formulaire.totaux_col.value="";
			}
		}
	}
}



function viderMenuRQT(numFen) {
	if ($('menuButtonRQT_'+numFen) == null) {
		return;
	}
	var buttonMenu = eval('menuButtonRQT_'+numFen);
	var menu = buttonMenu.getMenu();
	var tmenus = menu.getItems();
	for (var i=0; i<tmenus.length; i++) {
		menu.removeItem(0);
	}
}

function viderPremierMenuRQT(numFen) {
	try {
		if ($('menuButtonRQT_'+numFen) == null) {
			return;
		}
		var buttonMenu = eval('menuButtonRQT_'+numFen);
		var menu = buttonMenu.getMenu();
		menu.removeItem(0);
	}
	catch(e){}
}



function creerItemMenuRQT(numFen,nomRQT,rqt,totaux_row,totaux_col,typeGraph,tailleGraph) {
	try {
		var newItem = {
			text:nomRQT,
			value:rqt,
			onclick: {
				 fn: function(p_sType, p_aArgs, p_oItem){
				    afficherRQT(numFen,nomRQT,rqt,totaux_row,totaux_col,typeGraph,tailleGraph);
				 }
			}
		}
		var buttonMenu = eval('menuButtonRQT_'+numFen);
		var menu = buttonMenu.getMenu();
		menu.addItem(newItem);
	}
	catch(e){}
}

function setTitreMenuRQT(numFen,titre) {
	try {
		var tmpButton = eval("menuButtonRQT_"+numFen);
		tmpButton.set("label", titre);
		tmpButton.set("value", titre);
	}
	catch(e){}
}