//set this to loadtreenode.asp for asp version.
var CONNECTION_TIMEOUT=2000;
var URL_BY_ID   = new Array();
var PARAM_BY_ID = new Array();

var JS_ID_SAVED = new Array();


//Extra info attached to a node, 'xtra' property.

//commentato il 07.06.2007
//var URL_BY_ID2 = new Array();
//URL_BY_ID2[0]="a";

//array per il ricaricamento dei dati in gruppi a seguito di variazione di gruppo per un dato
//formato 		arrayGruppiChiamate[ID_GRUPPO][ID_TABELLA_PADRE][ID_DATO_PADRE]=array("ID_JS_TREE","URL TO RECALL")
var arrayGruppiChiamate = new Array();


function reload_group_data(idg,tabPadre,elPadre,gruppoPrincipale){
	if (idg==-1) idg=0;
	if (gruppoPrincipale==-1) gruppoPrincipale=0;
	if (arrayGruppiChiamate[idg]!=null)
	if (arrayGruppiChiamate[idg][tabPadre]!=null)
	if (arrayGruppiChiamate[idg][tabPadre][elPadre]!=null) {
		for (i=0;i<arrayGruppiChiamate[idg][tabPadre][elPadre].length;i++){
			urlToCall = arrayGruppiChiamate[idg][tabPadre][elPadre][i][1]; 
			if (gruppoPrincipale==idg) urlToCall += '&lanciaSelezionato=y&idSelezionato='+document.itemSelected+'&idTabellaSelezionato='+document.tableSelected;
			resetFigli(urlToCall,arrayGruppiChiamate[idg][tabPadre][elPadre][i][0]);
		}
	}
}


function ExtraNodeInfo(id,urlToCall,ug_idG,ug_tabPadre,ug_idPadre,ug_jsToCall) {
   this.loaded=false;
	URL_BY_ID[''+id+'']=urlToCall;
	if (ug_idG!=null){
		PARAM_BY_ID[''+id+'']=new Array();
		PARAM_BY_ID[''+id+''][0]=ug_idG;
		PARAM_BY_ID[''+id+''][1]=ug_tabPadre;
		PARAM_BY_ID[''+id+''][2]=ug_idPadre;
		PARAM_BY_ID[''+id+''][3]=ug_jsToCall;
	}
}

//reload the node to render the new nodes
function loadTreeNodes_CALLBACK(tId, nId) {
    tree.reloadNode(nId);
    tree.getNodeById(nId).xtra.loaded=true;
};

//tree custom onexpand event
function treeExpand(id) {
	//if (typeof(PARAM_BY_ID[''+id+''])=='undefined'){
	if (PARAM_BY_ID[''+id+'']!=null){
		//if (typeof(arrayGruppiChiamate[PARAM_BY_ID[''+id+''][0]])=='undefined'){
		if (arrayGruppiChiamate[PARAM_BY_ID[''+id+''][0]]==null){
			arrayGruppiChiamate[PARAM_BY_ID[''+id+''][0]]=new Array();
		}
		//if (typeof(arrayGruppiChiamate[PARAM_BY_ID[''+id+''][0]][PARAM_BY_ID[''+id+''][1]])=='undefined'){
		if (arrayGruppiChiamate[PARAM_BY_ID[''+id+''][0]][PARAM_BY_ID[''+id+''][1]]==null){
			arrayGruppiChiamate[PARAM_BY_ID[''+id+''][0]][PARAM_BY_ID[''+id+''][1]]=new Array();
		}
		//if (typeof(arrayGruppiChiamate[PARAM_BY_ID[''+id+''][0]][PARAM_BY_ID[''+id+''][1]][PARAM_BY_ID[''+id+''][2]])=='undefined'){
		if (arrayGruppiChiamate[PARAM_BY_ID[''+id+''][0]][PARAM_BY_ID[''+id+''][1]][PARAM_BY_ID[''+id+''][2]]==null){
			arrayGruppiChiamate[PARAM_BY_ID[''+id+''][0]][PARAM_BY_ID[''+id+''][1]][PARAM_BY_ID[''+id+''][2]]=new Array();
		}

		if ((JS_ID_SAVED[''+id+'']!=null)||(JS_ID_SAVED[''+id+'']==0)) posizione = JS_ID_SAVED[''+id+''];
		else {
			posizione = arrayGruppiChiamate[PARAM_BY_ID[''+id+''][0]][PARAM_BY_ID[''+id+''][1]][PARAM_BY_ID[''+id+''][2]].length;
			JS_ID_SAVED[''+id+'']=posizione;
		}
		//alert(id);
		//alert(posizione);
		//posizione = arrayGruppiChiamate[PARAM_BY_ID[''+id+''][0]][PARAM_BY_ID[''+id+''][1]][PARAM_BY_ID[''+id+''][2]].length;
		arrayGruppiChiamate[PARAM_BY_ID[''+id+''][0]][PARAM_BY_ID[''+id+''][1]][PARAM_BY_ID[''+id+''][2]][posizione]=new Array()
		arrayGruppiChiamate[PARAM_BY_ID[''+id+''][0]][PARAM_BY_ID[''+id+''][1]][PARAM_BY_ID[''+id+''][2]][posizione][0]=id;
		arrayGruppiChiamate[PARAM_BY_ID[''+id+''][0]][PARAM_BY_ID[''+id+''][1]][PARAM_BY_ID[''+id+''][2]][posizione][1]=PARAM_BY_ID[''+id+''][3];
	}
  
  var expNode = this.getNodeById(id);
  if (expNode.xtra!=false && !expNode.xtra.loaded) {
    var c=new NlsXMLHttpHandler();
    c.tId=this.tId;
    c.id=id;
    c.anim=new Animation();
    c.anim.tree=this;
    c.anim.nId=id;
    c.resultReady_Callback=loadTreeNodes_CALLBACK;
    c.init("get", URL_BY_ID[''+id+''], true);
    c.send(null);
  }
};


function addTreeExpandModGruppi(id,tab){
	if (lastJsPadreModGruppo[tab]==null) {
		lastJsPadreModGruppo[tab]=new Array();
		lastJsPadreModGruppo[tab][0]=id;
	} else {
		isNew=true;
		for (i=0;i<lastJsPadreModGruppo[tab].length;i++) if (lastJsPadreModGruppo[tab][i]==id) isNew=false;
		if (isNew){
			posizione = lastJsPadreModGruppo[tab].length;
			lastJsPadreModGruppo[tab][posizione]=id;
		}
	}
}

function treeExpandModGruppi(tab) {
	if (lastJsPadreModGruppo[tab]!=null) {
		for (i=0;i<lastJsPadreModGruppo[tab].length;i++){
			treeExpandModGruppiOne(lastJsPadreModGruppo[tab][i]);
		}
	}

};


function treeExpandModGruppiOne(id) {
	var expNode = tree.getNodeById(id);
	var c=new NlsXMLHttpHandler();
	c.tId=tree.tId;
	c.id=id;
	c.anim=new Animation();
	c.anim.tree=tree;
	c.anim.nId=id;
	c.resultReady_Callback=loadTreeNodes_CALLBACK;
	c.init("get", URL_BY_ID[''+id+''], true);
	c.send(null);
	
	//window.setTimeout('alert("1a");tree.expandNode("'+id+'");tree.expandNode("'+id+'");alert("1b");',2000);

};



//animate while loading nodes
function Animation() {
  this.tree=null;
  this.nId=null;  
  this.count=1;
  var me=this;
  this.start=function() {
    if ((me.nId)&&(node)) {
		var node=me.tree.getNodeById(me.nId);
		me.tree.setNodeCaption(node.fc.orgId, "Loading...(" + me.count++ + "s)");
	}
  }
  this.stop=function() { return; }
};


