function PHXFlow_getVerticalLevel(type)
{
	for(var lev = 0; lev < flow_level.length; lev++)
	{
		for(var elems = 0; elems < flow_level[lev].length; elems++)
		{
			if(flow_level[lev][elems] == type)
			{
				return lev;
			}
		}
	}
	
	return 0;
}

function PHXFlow_getVerticalConteneur(type)
{
	var level = PHXFlow_getVerticalLevel(type);
	level = parseInt(level) + 1;
	var name_conteneur = id_conteneur_form + "_" + level;
	return name_conteneur;
}

function PHXFlow_update(action,type,idelem)
{
	//alert("ACTION PHX FLOW : "+ action + ", type : " + type + ", idelem : " + idelem)
	
	if($(id_flow))	
	{
		//alert("Valeur phxflow avant : " + $(id_flow).value);
		
		switch(action)
		{
			case "init":
				$(id_flow).value = type + value_separator + idelem + unit_separator;
				break;
			case "newform":
				$(id_flow).value = $(id_flow).value + type + value_separator + idelem + unit_separator;
				break;
			case "delform":
				$(id_flow).value = $(id_flow).value.replace(type + value_separator + +idelem + unit_separator,"");
		}

		//alert("Valeur phxflow apres : " + $(id_flow).value);

	}else{
		//alert("{FLOW ERROR} : No "+id_flow);
	}
}

function PHXFlow_getcurrentlevel()
{
	var level = 0; 	
	if($(id_flow))
	{
		//-1 pour enlever derniere dimension du tableau qui est vide et encore -1 pour etre comme les indices des tableaux 
		level = parseInt($(id_flow).value.split(unit_separator).length) - 2;
	}
	
	if(level < 0)
		level = 0;
		
//	alert("Current level : "+level);
	return level;
}

function PHXFLow_getNewLevel(direction)
{
	var direction_val = parseInt(direction);
	var new_level = 0; 
	var current_level = PHXFlow_getcurrentlevel();
	
	if(current_level != 0)
	{
		new_level = parseInt(current_level) + direction_val; 

		if(new_level < 0)
		{
			new_level = 0;
		}
	}
	//alert("New level : "+new_level+"(direction "+direction_val+")");
	return new_level; 
}

function PHXFlow_get(direction)
{
	//Renvoi le type et l'id du formulaire dans la direction indiquée
	//-1 precedent formulaire
	//0 courant
	//...
	var indice = 0;
	
	if(typeof(direction) == 'undefined')
		direction = 0;
		
	if(direction != 0)
		indice = PHXFLow_getNewLevel(direction);
	
	var result;
	
	//alert("PHXFlow_get : indice = "+indice);
	if($(id_flow))	
	{
		var units = $(id_flow).value.split(unit_separator);
		var comps = units[indice].split(value_separator);
		result = new Array(comps[0],comps[1]);
	}
	
	//alert("PHXFlow_get :\nDirection=>"+direction+"\nType=>"+result[0]+"\nValeur=>"+result[1]);
	return result;
}
