

function loadNodeDataOlapBrowser(node, fnLoadComplete)  {
    var dimension = node.dimension;
    var level = node.level;
    var member = node.member;
	var Serveur = node.serveur;
    var DataBase = node.database;
    var Cube = node.cube;
    
    var sUrl = "/webarea/OLAP/ajax_OLAPBrowser.php?"
    sUrl += "dimension="+dimension;
    sUrl += "&level="+level;
    sUrl += "&member="+member;
    sUrl += "&Serveur="+Serveur;
    sUrl += "&DataBase="+DataBase;
    sUrl += "&Cube="+Cube;
    var callback = {
        success: function(oResponse) {
           var oResults = eval("(" + oResponse.responseText + ")");
            if((oResults.ResultSet.Result) && (oResults.ResultSet.Result.length)) {
                if(YAHOO.lang.isArray(oResults.ResultSet.Result)) {
                    for (var i=1, j=oResults.ResultSet.Result.length; i!=j; i++) {
	                    var donnee = oResults.ResultSet.Result[i];
                        var tempNode = new YAHOO.widget.TaskNode(donnee.nom, node, false,false,donnee.valeur,Cube,dimension,donnee.level,donnee.member,Serveur,DataBase);
                    }
                } else {
                    var tempNode = new YAHOO.widget.TaskNode(oResults.ResultSet.Result, node, false)
                }
            }
            oResponse.argument.fnLoadComplete();
        },
        failure: function(oResponse) {
            oResponse.argument.fnLoadComplete();
        },
        argument: {
            "node": node,
            "fnLoadComplete": fnLoadComplete
        },
        timeout: 7000
    };
    YAHOO.util.Connect.asyncRequest('GET', sUrl, callback);
}




function getCheckedNodesOlap(typeVal,tree,nodes)
{	
	nodes = nodes || tree.getRoot().children;
    checkedNodes = [];
    for(var i=0, l=nodes.length; i<l; i=i+1) {
        var n = nodes[i];
        if (n.checkState > 0) { // if we were interested in the nodes that have some but not all children checked
	        if (n.checkState === 2) {
	            checkedNodes.push(eval("n."+typeVal)); // just using label for simplicity
	        }
	        if ((n.checkState < 2)&&(n.hasChildren())) {
				checkedNodes = checkedNodes.concat(getCheckedNodesOlap(typeVal,tree,n.children));
	        }
        }
    }
    return checkedNodes;
}





function getFiltersOlap(numFen,champ,tree)
{
	try {
		var tLevels = getCheckedNodesOlap('level',tree);
		var level = tLevels[0];
		for (var i=1; i<tLevels.length; i++) {
			if (level != tLevels[i]) {
				alert(t_msgErreurSelectFilt);
				return;
			}
		}
		tVal = getCheckedNodesOlap('uniqueValue',tree);
		tNom = getCheckedNodesOlap('label',tree);
		
		
		eval("window.parent.document.getElementById('frmInput"+numFen+"').s_"+champ+".length = 0");
		var formulaire = $('frmInput'+numFen);
		var champSelect = eval('formulaire.s_'+champ);
		var champList = eval('formulaire.list_'+champ);
		champSelect.length = 0;
		champSelect.size=3;
		var valConcat = "";
		
		for(var i=0;i<tVal.length;i++) {
			var val = tVal[i];
			var texte = tNom[i];
			if (valConcat=="")	valConcat = val;
			else valConcat = valConcat + "," + val;
					
			champSelect.length = champSelect.length +1;
			champSelect.options[champSelect.length-1].value = val;
			champSelect.options[champSelect.length-1].text = texte;
		}
		
		champList.value = valConcat;
		if (tVal.length>0)	effectAppear('fen'+numFen+'_div_'+champ);
		else effectFade('fen'+numFen+'_div_'+champ);
		
		if (tVal.length>0 && tLevels[0]==0) {
			champList.value
			champSelect.length = 0;
			effectFade('fen'+numFen+'_div_'+champ);
		}
		
		winDimBrowser.destroy();
	}
	catch(e) {
		alert("Erreur dans getFiltersOlap : "+e.message)
	}
	
}
