// Teste si une variable est un tableau.
function isType(p_object, p_type)
{
	return (p_object instanceof p_type);
}

// Fonction de réécriture des liens.
function rw_link(selection, lien)
	{
	// Récupération de l'id à insérer, de l'adresse à modifier
	var id=document.getElementById(selection).options[document.getElementById(selection).selectedIndex].value;
	var adresse=document.getElementById(lien).href;
	// et des indices des dernier et avant-dernier ";" de l'adresse.
	var indice_fin=adresse.lastIndexOf(";");
	var temp=adresse.substring(0, indice_fin);
	var indice_deb=temp.lastIndexOf(";");
	
	// Réécriture de l'adresse du lien.
	adresse = adresse.substring(0, indice_deb+1)+id+adresse.substring(indice_fin);	
	document.getElementById(lien).href=adresse;
	}
	
// Affichage d'un élément masqué							     */
function ShowElem(indice, idelem)
{
	document.getElementById(idelem).style.display='block';
	document.getElementById('show'+indice).style.display='none';
	document.getElementById('hide'+indice).style.display='inline';
}

// Masquage d'un élément affiché
function HideElem(indice, idelem)
{
	document.getElementById(idelem).style.display='none';
	document.getElementById('show'+indice).style.display='inline';
	document.getElementById('hide'+indice).style.display='none';
}


// Insertion du Code de mise en forme.
/* -----------------------------------------------------------------------------------------------------------------------------------  */
/* Cette fonction a été réalisée à partir de codes sources largement disponibles sur Internet.					    	  */
/* Les quelques modifications qui y ont été apportées l'on été par M. Belhomme Florian, dans le cadre    	  */
/*  du développement de Galaxia - http://solune.no-ip.org/galaxia/ -.																				  */
/* Les modifications relatives à la gestion des éditions multilingues sont en revanche de mon cru				     */
/* ------------------------------------------------------------------------------------------------------------------------------------ */


function insertion(id_langue, repdeb, repfin)
{
  var input = document.forms['edition'].elements['contenu_'+id_langue];
  input.focus();
  /* pour l'Explorer Internet */
  if(typeof document.selection != 'undefined')
  {
    /* Insertion du code de formatage */
    var range = document.selection.createRange();
    var insText = range.text;
    range.text = repdeb + insText + repfin;
    /* Ajustement de la position du curseur */
    range = document.selection.createRange();
    if (insText.length == 0)
    {
      range.move('character', -repfin.length);
    }
    else
    {
      range.moveStart('character', repdeb.length + insText.length + repfin.length);
    }
    range.select();
  }
  /* pour navigateurs plus récents basés sur Gecko*/
  else if(typeof input.selectionStart != 'undefined')
  {
    /* Insertion du code de formatage */
    var start = input.selectionStart;
    var end = input.selectionEnd;
    var insText = input.value.substring(start, end);
    input.value = input.value.substr(0, start) + repdeb + insText + repfin + input.value.substr(end);
    /* Ajustement de la position du curseur */
    var pos;
    if (insText.length == 0)
    {
      pos = start + repdeb.length;
    }
    else
    {
      pos = start + repdeb.length + insText.length + repfin.length;
    }
    input.selectionStart = pos;
    input.selectionEnd = pos;
  }
  /* pour les autres navigateurs */
  else
  {
    /* requête de la position d'insertion */
    var pos;
    var re = new RegExp('^[0-9]{0,3}$');
    while(!re.test(pos))
    {
      pos = prompt("Insertion à la position (0.." + input.value.length + "):", "0");
    }
    if(pos > input.value.length)
    {
      pos = input.value.length;
    }
    /* Insertion du code de formatage */
    var insText = prompt("Veuillez entrer le texte à formater:");
    input.value = input.value.substr(0, pos) + repdeb + insText + repfin + input.value.substr(pos);
  }
}

// Fonction d'insertion du code lié aux tableaux
function tab(colonnes, lignes, width, id_langue)
{
	var contenu_cellule='[table width='+width+']';
	for(i=1; i<=lignes; i++)
		{
		for(j=1; j<=colonnes; j++)
			{
			var numero_champ='l'+i+':c'+j;
			contenu_cellule=contenu_cellule+document.tableau.elements[numero_champ].value;
			if(j!=colonnes)
				{
				contenu_cellule+='[/fc]';
				}
			}
		if(i!=lignes)
			{
			contenu_cellule=contenu_cellule+'[/fl]';
			}
		}
	contenu_cellule=contenu_cellule+'[/table]';
	
	window.opener.document.forms['edition'].elements['contenu_'+id_langue].value+=contenu_cellule;
	window.close();
}


// Fonction d'activation/Désactivation d'un champ de formulaire
function switchactive(element, etat)
{
	if(etat==1)
		{
		element.removeAttribute("disabled");
		}
	else
		{
		element.setAttribute("disabled", "disabled");
		}
}

// Fonction d'activation/Désactivation de plusieurs champs d'un formulaire.
function multipleswitchactive(element, etat)
	{
	if(etat==1)
		{
		for(i=0;i<element.length;i++)
			{
			element[i].removeAttribute("disabled");
			}
		}
	else
		{
		for(i=0;i<element.length;i++)
			{
			element[i].setAttribute("disabled", "disabled");
			}
		}	
	}

// Fonction d'insertion d'un diaporama dans le formulaire associé.
function form_diaporama(nb_diapo, langue)
{
	var div_diaporama=document.getElementById('form_diaporama');
	
	// Destruction de tous les fils existants du div form_diaporama.
	div_diaporama.innerHTML='';
	
	for(i=1;i<=nb_diapo;i++)
		{
		div_diaporama.innerHTML+='<table>\n'
			+'<tr>\n'
			+'<td colspan="2" align="center">'+langues[langue]['diaporama']+' '+i+'</td>'
			+'</tr>\n'
			+'<tr>\n'
			+'<td>'+langues[langue]['diapo_titre_montage']+'</td>\n'
			+'<td><input type="text" name="titre_'+i+'" /></td>\n'
			+'</tr>\n'
			+'<tr>\n'
			+'<td valign="top">'+langues[langue]['diapo_generique_debut']+'</td>\n'
			+'<td>\n'
			+'<input type="radio" name="generique_debut_'+i+'" value="1" onclick="switchactive(document.forms[\'devis_diaporama\'].generique_debut_texte_'+i+', 1)" />'+langues[langue]['oui']+'<br />\n'
			+'<input type="radio" name="generique_debut_'+i+'" value="0" checked="checked" onclick="switchactive(document.forms[\'devis_diaporama\'].generique_debut_texte_'+i+', 0)" />'+langues[langue]['non']+'<br />\n'
			+'Texte &agrave; ins&eacute;rer:<br />\n'
			+'<textarea disabled name="generique_debut_texte_'+i+'" rows="3" cols="30"></textarea>\n'
			+'</td>\n'
			+'</tr>\n'
			+'<tr>\n'
			+'<td valign="top">'+langues[langue]['diapo_generique_fin']+'</td>\n'
			+'<td>\n'
			+'<input type="radio" name="generique_fin_'+i+'" value="1" onclick="switchactive(document.forms[\'devis_diaporama\'].generique_fin_texte_'+i+', 1)" />'+langues[langue]['oui']+'<br />\n'
			+'<input type="radio" name="generique_fin_'+i+'" value="0" checked="checked" onclick="switchactive(document.forms[\'devis_diaporama\'].generique_fin_texte_'+i+', 0)" />'+langues[langue]['non']+'<br />\n'
			+'Texte &agrave; ins&eacute;rer:<br />\n'
			+'<textarea disabled name="generique_fin_texte_'+i+'" rows="3" cols="30"></textarea>\n'
			+'</td>\n'
			+'</tr>\n'
			+'<tr>\n'
			+'<td valign="top">'+langues[langue]['diapo_musique_fond']+'</td>\n'
			+'<td>\n'
			+'<input type="radio" name="musique_fond_'+i+'" value="1" onclick="multipleswitchactive(document.forms[\'devis_diaporama\'].musique_fournie_'+i+', 1)" />'+langues[langue]['oui']+'<br />\n'
			+'<input type="radio" name="musique_fond_'+i+'" value="0" checked="checked" onclick="multipleswitchactive(document.forms[\'devis_diaporama\'].musique_fournie_'+i+', 0)" />'+langues[langue]['non']+'\n'
			+'</td>\n'
			+'</tr>\n'
			+'<tr>\n'
			+'<td valign="top">'+langues[langue]['diapo_musique_fournie']+'</td>\n'
			+'<td>\n'
			+'<input type="radio" disabled name="musique_fournie_'+i+'" checked="checked" value="1" onclick="switchactive(document.forms[\'devis_diaporama\'].style_musique_'+i+', 0)" />'+langues[langue]['oui']+'<br />\n'
			+'<input type="radio" disabled name="musique_fournie_'+i+'" value="0" onclick="switchactive(document.forms[\'devis_diaporama\'].style_musique_'+i+', 1)" />'+langues[langue]['non']+'<br />\n'
			+langues[langue]['diapo_style_musical']+'&nbsp;<select disabled name="style_musique_'+i+'">\n'
			+'<option value="'+langues[langue]['diapo_style_funk']+'">'+langues[langue]['diapo_style_funk']+'</option>\n'
			+'<option value="'+langues[langue]['diapo_style_worldmusic']+'">'+langues[langue]['diapo_style_worldmusic']+'</option>\n'
			+'<option value="'+langues[langue]['diapo_style_ambiance']+'">'+langues[langue]['diapo_style_ambiance']+'</option>\n'
			+'<option value="'+langues[langue]['diapo_style_reggae']+'">'+langues[langue]['diapo_style_reggae']+'</option>\n'
			+'<option value="'+langues[langue]['diapo_style_classique']+'">'+langues[langue]['diapo_style_classique']+'</option>\n'
			+'<option value="'+langues[langue]['diapo_style_pop']+'">'+langues[langue]['diapo_style_pop']+'</option>\n'
			+'<option value="'+langues[langue]['diapo_style_jazz']+'">'+langues[langue]['diapo_style_jazz']+'</option>\n'
			+'</select>\n'
			+'</td>\n'
			+'</tr>\n'
			+'</table>\n'
			+'<hr class="separateur_haut" /><br />\n';
		}	
}

// Fonction d'insertion d'un montage dans le formulaire associé.
function form_montage(nb_montage, langue)
{
	var div_montage=document.getElementById('form_montage');
	
	// Destruction de tous les fils existants du div form_diaporama.
	div_montage.innerHTML='';
	
	for(i=1;i<=nb_montage;i++)
		{
		div_montage.innerHTML+='<table>\n'
			+'<tr>\n'
			+'<td colspan="2" align="center">'+langues[langue]['montage_video']+' '+i+'</td>'
			+'</tr>\n'
			+'<tr>\n'
			+'<td>'+langues[langue]['montage_titre']+'</td>\n'
			+'<td><input type="text" name="titre_'+i+'" /></td>\n'
			+'</tr>\n'
			+'<tr>\n'
			+'<td valign="top">'+langues[langue]['montage_generique_debut']+'</td>\n'
			+'<td>\n'
			+'<input type="radio" name="generique_debut_'+i+'" value="1" onclick="switchactive(document.forms[\'devis_montage\'].generique_debut_texte_'+i+', 1)" />'+langues[langue]['oui']+'<br />\n'
			+'<input type="radio" name="generique_debut_'+i+'" value="0" checked="checked" onclick="switchactive(document.forms[\'devis_montage\'].generique_debut_texte_'+i+', 0)"/>'+langues[langue]['non']+'<br />\n'
			+langues[langue]['montage_texte_a_inserer']+':<br />\n'
			+'<textarea disabled name="generique_debut_texte_'+i+'" rows="3" cols="30"></textarea>\n'
			+'</td>\n'
			+'</tr>\n'
			+'<tr>\n'
			+'<td valign="top">'+langues[langue]['montage_generique_fin']+'</td>\n'
			+'<td>\n'
			+'<input type="radio" name="generique_fin_'+i+'" value="1" onclick="switchactive(document.forms[\'devis_montage\'].generique_fin_texte_'+i+', 1)" />'+langues[langue]['oui']+'<br />\n'
			+'<input type="radio" name="generique_fin_'+i+'" value="0" checked="checked" onclick="switchactive(document.forms[\'devis_montage\'].generique_fin_texte_'+i+', 0)" />'+langues[langue]['non']+'<br />\n'
			+langues[langue]['montage_texte_a_inserer']+':<br />\n'
			+'<textarea disabled name="generique_fin_texte_'+i+'" rows="3" cols="30"></textarea>\n'
			+'</td>\n'
			+'</tr>\n'
			+'<tr>\n'
			+'<td>\n'
			+langues[langue]['montage_insertion_photo']+'<br />\n'
			+'<span class="petit">'+langues[langue]['montage_insertion_photo_texte']+'</span>\n'
			+'</td>\n'
			+'<td>\n'
			+'<input type="radio" name="insertion_photo_'+i+'" value="1" onclick="switchactive(document.forms[\'devis_montage\'].nb_photo_'+i+', 1);switchactive(document.forms[\'devis_montage\'].indications_photo_1, 1)" />'+langues[langue]['oui']+'<br />\n'
			+'<input type="radio" name="insertion_photo_'+i+'" value="0" checked="checked" onclick="switchactive(document.forms[\'devis_montage\'].nb_photo_'+i+', 0);switchactive(document.forms[\'devis_montage\'].indications_photo_1, 0)" />'+langues[langue]['non']+'<br />\n'
			+langues[langue]['montage_nb_photo']+':<br />\n'
			+'<input type="text" disabled name="nb_photo_'+i+'" /><br />\n'
			+'<span class="petit">'+langues[langue]['montage_nb_photo_texte']+'</span><br />\n'
			+'<br />\n'
			+langues[langue]['montage_indications_photo']+'<br />\n'
			+'<textarea disabled name="indications_photo_'+i+'" rows="3" cols="30"></textarea>\n'
			+'</td>\n'
			+'</tr>\n'
			+'<tr>\n'
			+'<td colspan="2">'+langues[langue]['montage_son_original']+'</td>\n'
			+'</tr>\n'
			+'<tr>\n'
			+'<td></td>\n'
			+'<td>\n'
			+'<input type="radio" name="son_original_'+i+'" value="1" />'+langues[langue]['oui']+'<br />\n'
			+'<input type="radio" name="son_original_'+i+'" value="0" checked="checked" />'+langues[langue]['non']+'\n'
			+'</td>\n'
			+'</tr>\n'
			+'<tr>\n'
			+'<td valign="top">'+langues[langue]['montage_musique_fond']+'</td>\n'
			+'<td>\n'
			+'<input type="radio" name="musique_fond_'+i+'" value="1" onclick="multipleswitchactive(document.forms[\'devis_montage\'].musique_fournie_'+i+', 1)" />'+langues[langue]['oui']+'<br />\n'
			+'<input type="radio" name="musique_fond_'+i+'" value="0"  checked="checked" onclick="multipleswitchactive(document.forms[\'devis_montage\'].musique_fournie_'+i+', 0)"/>'+langues[langue]['non']+'\n'
			+'</td>\n'
			+'</tr>\n'
			+'<tr>\n'
			+'<td valign="top">'+langues[langue]['musique_fournie']+'</td>\n'
			+'<td>\n'
			+'<input type="radio" disabled name="musique_fournie_'+i+'" value="1" checked="checked" onclick="switchactive(document.forms[\'devis_montage\'].style_musique_'+i+', 0)" />'+langues[langue]['oui']+'<br />\n'
			+'<input type="radio" disabled name="musique_fournie_'+i+'" value="0" onclick="switchactive(document.forms[\'devis_montage\'].style_musique_'+i+', 1)" />'+langues[langue]['non']+'<br />\n'
			+langues[langue]['montage_style_musicale']+'&nbsp;<select disabled name="style_musique_'+i+'">\n'
			+'<option value="'+langues[langue]['montage_style_funk']+'">'+langues[langue]['montage_style_funk']+'</option>\n'
			+'<option value="'+langues[langue]['montage_style_worldmusic']+'">'+langues[langue]['montage_style_worldmusic']+'</option>\n'
			+'<option value="'+langues[langue]['montage_style_ambiance']+'">'+langues[langue]['montage_style_ambiance']+'</option>\n'
			+'<option value="'+langues[langue]['montage_style_reggae']+'">'+langues[langue]['montage_style_reggae']+'</option>\n'
			+'<option value="'+langues[langue]['montage_style_classique']+'">'+langues[langue]['montage_style_classique']+'</option>\n'
			+'<option value="'+langues[langue]['montage_style_pop']+'">'+langues[langue]['montage_style_pop']+'</option>\n'
			+'<option value="'+langues[langue]['montage_style_jazz']+'">'+langues[langue]['montage_style_jazz']+'</option>\n'
			+'</select>\n'
			+'</td>\n'
			+'</tr>\n'
			+'</table>\n'
			+'<hr class="separateur_haut" /><br />\n';
		}	
}