function RADIO_getAllValueIndex(radio_obj_name)
{
	var colRadio = document.getElementsByName(radio_obj_name);
	var myarrayval = new Array();
	
	for (var i = 0; i < colRadio.length; i++)
	{
		if (colRadio[i].checked)
		{
			myarrayval[0] = i;
			myarrayval[1] = colRadio[i].id;
			myarrayval[2] = colRadio[i].value;
			return myarrayval;
		}
	}
	return null;
}

function FORM_isAlternate(type)
{
	for(var t = 0; t < under_crumber.length; t++)
	{
		if(under_crumber[t] == type)
		{
			return true;
		}
	}
	return false;
}

function FORM_doaction(type)
{
	//Permet d'ajouter des fonctionnalités lors de l'affichage d'un formulaire
	if(type == "galerie")
	{
		if($('trie_image'))
			GALERIE_createSortable($('trie_image'));
	}
	datePickerController.create();
}

function FORM_display(tpltype, tplid, tplidmain,action,paramsup)
{
	var previous_form = false;
	var conteneur_form_name = id_conteneur_form;
	var conteneur_form;
	var vert_level = 0;
	var current_id = 0;
	var tplidmain = tplidmain || "";
	var paramsup = paramsup || "";
	var url = 'admin/form/'+tpltype+'&idelem='+tplid;
	var attente="";
	
	if(action)
		url +='&action='+action;
	if($('conteneur_'+tpltype))
		conteneur_form = $('conteneur_'+tpltype);
	if($('attente_'+tpltype))
		attente = 'attente_'+tpltype;
	else
	{
		if($('attente'))
			attente = 'attente';
	}

	RICHTEXT_unload("wysiwyg", conteneur_form.id);
	
	if($(attente))
	{
		new Effect.Appear($(attente), {queue:'front'});
	}

	if(tplidmain != "")
		url = 'admin/form/'+tpltype+'&idelem='+tplid+'&idelemsup='+tplidmain;
		
	new Ajax.Request(urlaff, {
		asynchronous: 'true', 
		postBody: 'tpl='+url,
		onSuccess: function(zhr)
		{
			//Recuperation du nouveau formulaire			 			
			if($('id_element'))
				$('id_element').value = tplid;
			
			conteneur_form.style.display="none";
			conteneur_form.innerHTML = zhr.responseText;
			Behaviour.apply();
			new Effect.SlideDown(conteneur_form, { duration: 0.5 , afterFinish:function(){alreadyclicked=false;}});
			new Effect.Appear(conteneur_form, {queue:'end', duration:0.2, afterFinish:function(){Behaviour.apply();}});
			if($(attente))
			{
				new Effect.Fade($(attente), {queue:'end'});
			}
		},
		onComplete: function(zhr)
		{
			FORM_doaction(tpltype);
			RICHTEXT_load("wysiwyg",false, conteneur_form.id);
			if($('callback_display_'+tpltype))
			{
				if(window[$('callback_display_'+tpltype).value])
				{
					window[$('callback_display_'+tpltype).value](tplid);
				}
			}
		}
	});	
}

function FORM_record(type,idelem,conteneur,callBackName, attente, closeform)
{
	var type = type || "";
	var idelem = idelem || "";
	var conteneur = conteneur || "";
	var callBackName = callBackName || "";
	var idlang= idlang || "";
	var attente = attente || "attenterecord";
	var closeform = closeform || false;
	var dispmsg = $('msg');

	//Affichage du message d'attente
	if(!$(attente))
		attente = 'attenterecord';
	if($(attente))
		new Effect.Appear($(attente), {queue:'front'});
	
	//Construction de la chaine des posts
	chPost = FORM_buildpoststring(conteneur,"","");
	new Ajax.Request(urltask, {
		asynchronous: 'true',
		postBody: 'tache=admin/enregistre/'+type+"_enreg&idelement="+idelem+chPost,
		onSuccess: function(xhr)
		{
			//Traitement des messages d'erreurs checking rules
			FORM_razerrormsg();
			FORM_clearcolormsg();
			var result = treatTaskMsg(xhr.responseText);
			var msg_res = '';
			if(result == true)
			{
				if(dispmsg)
				{
					dispmsg.style.display = 'none';
				}
				
				//Traitement du message de retour
				var response = xhr.responseText.substr(13);
				response = response.split('|');
				if(response.length > 1)
				{
					var msg_ok = response[0];
					var idtoupdate = response[1];
				}
				else
					var idtoupdate = response;
				
				//Maj de l'id de l'enregistrement en cours
				if(idtoupdate!="")
				{
					if($('id_element_'+type))
						$('id_element_'+type).value=idtoupdate;
				}
				
				//Traitement du callback
				if(callBackName != "")
				{
					if(window[callBackName])
					{
						window[callBackName](idelem, idtoupdate, "",  msg_ok);
					}
				}
				
				//Affichage du message de reussite
				if(dispmsg && msg_ok)
				{
					dispmsg.innerHTML = msg_ok;
					myEffect_FlashInfo(dispmsg,2);
				}
				
				//Rafraichissement liste et message
				FORM_refreshlist(type);
				FORM_razerrormsg();
				FORM_clearcolormsg();
				
				//Fermeture du formulaire
				if(closeform)
				{
					new Effect.SlideUp(conteneur, { duration: 0.5 });
					window.scrollTo(0,0);
				}
			}
			else if(result == false)
			{
				//Affichage du message d'erreur
				if(dispmsg)
				{
					dispmsg.innerHTML = xhr.responseText.substr(11);
					myEffect_FlashInfo(dispmsg,2);
				}
			}
			new Effect.Fade($(attente), {queue:'end', afterFinish: function(){alreadyclicked=false;Behaviour.apply();}});
		}
	});
}


function getIDElement(element, idt)
{
	var tabID = element.id.split('-');
	if(tabID.length > 1)
		var idtoreturn = tabID[idt];
	else
		var idtoreturn = element.id;
	return idtoreturn;
}

function FORM_refreshlist(tpltype)
{
	var conteneur_list = "liste_"+tpltype;
	var lev = 0
	if($(conteneur_list))
	{
		var url = 'admin/liste/'+tpltype;
		
		if(flow_direction == "vertical")
		{
			nom_conteneur = PHXFlow_getVerticalConteneur(tpltype);
			lev = PHXFlow_getVerticalLevel(tpltype);
			
			if($("id_element_"+lev))
			{
				idelemsup = $("id_element_"+lev).value;
				url = url + "&idelemsup=" + idelemsup;
			}
		}
		
		if($('id_element_'+tpltype))
		{
			var currentvalue = $('id_element_'+tpltype).value;
		}
		else
		{
			selects = $(conteneur_list).getElementsByTagName("select");
			
			//Recupere l'indice de la liste sélectionnée
			if(selects.length>0)
			{
				var select = selects[0];
				var currentvalue= select.options[select.selectedIndex].value;
			}
		}
		url += '&currentvalue=' + currentvalue;

		//Recupere la section pour les pages
		if($('section_encours'))
		{
			var section = $('section_encours').value;
			url += '&section='+ section;
		}

		//Recupere le type de spectacles
		if($('type_spectacle'))
		{
			var typespectacle = $('type_spectacle').value;
			url += '&typespectacle='+ typespectacle;
		}
		
		//Recuperation du filtre si present
		if($("filtre_"+tpltype))
		{
			url += '&filtre='+ $("filtre_"+tpltype).value;
		}
	
		new Ajax.Request(urlaff, {
			asynchronous: 'true', 
			postBody: 'tpl='+url,
			onSuccess: function(zhr)
			{
				//Recuperation du nouveau formulaire			 			
				$(conteneur_list).update(zhr.responseText);
			},
			onComplete: function(zhr)
			{
				//Reparcours du DOM
				Behaviour.apply();
				if($('attenterecord'))
				{
					$('attenterecord').style.display = 'none';
				}
			}
		});
	}
}


function FORM_razerrormsg()
{
	var listeMsg = $$('span[id^="msg:"]');
	listeMsg.each(function(msgCh){
			$(msgCh).innerHTML = "";
		}
	);
}

function FORM_clearcolormsg()
{
	var listeRow = $$('tr[id^="ligne:"]');
	listeRow.each(function(row){
			$(row).style.backgroundColor = "transparent";
		}
	);
}

function FORM_delete(type,idelem,conteneur,attente)
{
	var type = type || "";
	var idelem = idelem || "";
	var conteneur = conteneur || "";
	var attente = attente || "attenterecord";
	var chPost = "";
	var dispmsg = $('msg');
	var redirect = redirect || "";
	var callBackName = "";

	//Affichage de l'attente
	new Effect.Appear($(attente), {queue:'front'});

	if($('callback_delete_'+type))
	{
		callBackName = $('callback_delete_'+type).value;
	}
	new Ajax.Request(urltask, {
		asynchronous: 'true',
		postBody: 'tache=admin/supprime/'+type+"_suppr&idelement="+idelem+chPost,
		onSuccess: function(xhr)
		{
			var result = treatTaskMsg(xhr.responseText);
			var msg_res = '';
			if(result == true)
			{
				if(conteneur != "")
				{
					if($(conteneur))
						RICHTEXT_unload("wysiwyg", $(conteneur).id);
				}

				if(dispmsg)
				{
					dispmsg.style.display = 'none';
				}
				
				var msg_ok =  xhr.responseText.substr(13);
				
				if(dispmsg && msg_ok)
				{
					dispmsg.innerHTML = msg_ok;
					myEffect_FlashInfo(dispmsg,2);
				}
				
				FORM_empty(conteneur);
				FORM_refreshlist(type);
				FORM_razerrormsg();
				FORM_clearcolormsg();
				//Traitement du callback
				if(callBackName != "")
				{
					if(window[callBackName])
					{
						window[callBackName](idelem, msg_ok);
					}
				}
			}
			else if(result == false)
			{
				if(dispmsg)
				{
					dispmsg.innerHTML = xhr.responseText.substr(11);
					FORM_performPosition(dispmsg);
					myEffect_FlashInfo(dispmsg,2);
				}
			}
			new Effect.Fade($(attente), {queue:'end', afterFinish: function(){}});
		}
	});
}

function FORM_updatetableline(elem_prefix,elem_id,id_table,type)
{
	new Ajax.Request(urlaff, {
		asynchronous: 'true', 
		postBody: 'tpl=admin/gestion/form/'+type+'_lignetable&idelem='+elem_id,
		onSuccess: function(lhr)
		{
			var new_line_content = lhr.responseText;
			if(!$(elem_prefix+elem_id))
			{
				//Ligne inexistante dans la table, on refraichit
				parent.window.location = parent.window.location;
			}else{
				//La ligne est deja present, on remplace le contenu
				var new_elt = elem_prefix+elem_id;
				var ligne_t = $(new_elt);
				Element.update(ligne_t,new_line_content);
				id_table = new_elt;
			}
			$(id_conteneur_liste).style.display = "block";
			$(id_conteneur_form).style.display = "none";
			$(id_table).scrollTo();
			Behaviour.apply();
		},
		onFailure: function(lhr)
		{
			alert("Echec de la mise a jour");
		}
	});
}

function FORM_empty(idform)
{
	if($(idform))
	{
		$(idform).scrollTo();
		Effect.SlideUp(idform, { duration: 1 });
	}
	else if($(id_conteneur_form))
	{
		$(id_conteneur_form).scrollTo();
		Effect.SlideUp(id_conteneur_form, { duration: 1 });
	}
}

function FORM_cleartolist()
{
	FORM_empty();
	
	$(id_conteneur_liste).style.display = 'block';

	if($('id_element'))
	{
		var lignetodisp = "";
		lignetodisp = "ligne:"+$('id_element').value;
		$(lignetodisp).scrollTo();
	}
}
