var delay_menu = 800; //Durée après laquelle le menu est cachée lors du départ de la souris.
var delay_onmouseover = 180; //Durée après laquelle la menu est affiché lors du passage de la souris dessus.
var previous_menu;
var timeout;
var timeout_tmp;
var started = false;

//Fonction de temporisation, permet d'éviter que le menu déroulant perturbe la navigation lors du survol rapide de la souris.
function show_menu(num)
{
	if( !started )
		timeout_tmp = setTimeout('temporise_menu(' + num + ')', delay_onmouseover);
	else
		temporise_menu(num);
}

//Fonction d'affichage du menu déroulant.
function temporise_menu(num) 
{
	var id = 'smenu' + num;
	var id = document.getElementById(id);
	var i;
	
	//Destruction du timeout.
	if( timeout )
		clearTimeout(timeout);
	if( timeout_tmp )
		clearTimeout(timeout_tmp);
	
	//Masque les menus
	if( document.getElementById(previous_menu) ) 
	{
		document.getElementById(previous_menu).style.display = 'none';
		started = false;
	}
	
	//Affichage du menu, et enregistrement dans le tableau de gestion.
	if( id ) 
	{	
		id.style.display = 'block';
		previous_menu = 'smenu' + num;
		started = true;
	}
}	

//Cache le menu déroulant lorsque le curseur de la souris n'y est plus pendant delay_menu millisecondes.
function hide_menu()
{			
	//Destruction du timeout lors du départ de la souris.
	if( timeout_tmp && !started )
		clearTimeout(timeout_tmp);
	
	//Masque le menu, après le délai défini.
	if( started )
		timeout = setTimeout('temporise_menu()', delay_menu);	
}

//Affichage/Masquage de la balise hide.
function bb_hide(div2)
{

	var divs = div2.getElementsByTagName('div');
var div3 = divs[0];
	if (div3.style.visibility == 'visible')
	div3.style.visibility = 'hidden';
	else
	div3.style.visibility = 'visible';
return true;
}

//Masque un bloc.
function hide_div(divID)
{
	if( document.getElementById(divID) )
		document.getElementById(divID).style.display = 'none';
}

//Affiche un bloc
function show_div(divID)
{
	if( document.getElementById(divID) )
		document.getElementById(divID).style.display = 'block';
}

function popup(page,name)
{
   var screen_height = screen.height;
   var screen_width = screen.width;

	if( screen_height == 600 && screen_width == 800 )
		window.open(page, name, "width=680, height=540,location=no,status=no,toolbar=no,scrollbars=yes");
	else if( screen_height == 768 && screen_width == 1024 )
		window.open(page, name, "width=672, height=620,location=no,status=no,toolbar=no,scrollbars=yes");
	else if( screen_height == 864 && screen_width == 1152 )
		window.open(page, name, "width=672, height=620,location=no,status=no,toolbar=no,scrollbars=yes");
	else
		window.open(page, name, "width=672, height=620,location=no,status=no,toolbar=no,scrollbars=yes");
}


function textarea_resize(id, px, type)
{
	var textarea = document.getElementById(id);
	if( type == 'height' )
	{
		var current_height = parseInt(textarea.style.height) ? parseInt(textarea.style.height) : 300;
		var new_height = current_height + px;
		
		if( new_height > 40 )
			textarea.style.height = new_height + "px";
	}
	else
	{
		var current_width = parseInt(textarea.style.width) ? parseInt(textarea.style.width) : 150;
		var new_width = current_width + px;
		
		if( new_width > 40 )
			textarea.style.width = new_width + "px";
	}
	
	return false;
}

//Insertion dans le champs.
function simple_insert(open_balise, close_balise, field)
{
	var textarea = document.getElementById(field);
	var scroll = textarea.scrollTop;
	
	if( close_balise != "" && close_balise != "smile" )
		textarea.value += '[' + open_balise + '][/' + close_balise + ']';
	else if( close_balise == "smile" )
		textarea.value += ' ' + open_balise + ' ';
		
	textarea.focus();
	textarea.scrollTop = scroll;
	return;
}

//Récupération de la sélection sur netscape, ajout des balises autour.
function netscape_sel(target, open_balise, close_balise)
{
	var sel_length = target.textLength;
	var sel_start = target.selectionStart;
	var sel_end = target.selectionEnd;
	var scroll = target.scrollTop; //Position verticale.
	
	if( sel_end == 1 || sel_end == 2 )
	{
		sel_end = sel_length;
	}

	var string_start = (target.value).substring(0, sel_start);
	var selection = (target.value).substring(sel_start, sel_end);
	var string_end = (target.value).substring(sel_end, sel_length);

	if( close_balise != "" && selection == "" && close_balise != "smile" )
	{
		target.value = string_start + open_balise + close_balise + string_end;
		target.setSelectionRange(string_start.length + open_balise.length, target.value.length - string_end.length - close_balise.length);
		target.focus();
	}
	else if( close_balise == "smile" )
	{
		target.value = string_start + selection + ' ' + open_balise + ' ' + string_end;	
		target.setSelectionRange(string_start.length + open_balise.length, target.value.length - string_end.length);	
		target.focus();		
	}
	else
	{
		target.value = string_start + open_balise + selection + close_balise + string_end;
		target.setSelectionRange(string_start.length + open_balise.length, target.value.length - string_end.length - close_balise.length);
		target.focus();
	}
	
	target.scrollTop = scroll; //Remet à la bonne position le textarea.

	return;
}

//Récupération de la sélection sur IE, ajout des balises autour.
function ie_sel(target, open_balise, close_balise)
{
	selText = false;
	var scroll = target.scrollTop; //Position verticale.
	
	selection = document.selection.createRange().text; // Sélection

	if( close_balise != "" && selection == "" && close_balise != "smile" )
		document.selection.createRange().text = open_balise + close_balise;
	else if( close_balise == "smile" )
		document.selection.createRange().text = selection + open_balise + ' ';
	else
		document.selection.createRange().text = open_balise + selection + close_balise;		
	
	target.scrollTop = scroll; //Remet à la bonne position le textarea.
	selText = '';
	
	return;
}

//Fonction d'insertion du BBcode dans le champs, tient compte du navigateur utilisé.
function insertbbcode(open_balise, close_balise, field)
{
	var area = document.getElementById(field);
	var nav = navigator.appName; //Recupère le nom du navigateur

	area.focus();

	if( nav == 'Microsoft Internet Explorer' ) // Internet Explorer
		ie_sel(area, open_balise, close_balise);
	else if( nav == 'Netscape' || nav == 'Opera' ) //Netscape ou opera
		netscape_sel(area, open_balise, close_balise);
	else //insertion normale (autres navigateurs)
		simple_insert(open_balise, close_balise, field);

	return;
}

//Insertion dans le champs des codes de type select.
function insertbbcode_select(id_select, close_balise, field)
{			
	var select = document.getElementById(id_select + field);
	
	if( select.value != '' )				
		insertbbcode('[' + id_select + '=' + select.value + ']', close_balise, field);
	
	//On remet la valeur par défaut.
	select.options[0].selected = true;
	
	return;
}	

//Masquage du div.
function show_bbcode_div(divID, hide)
{
	var div = document.getElementById(divID);
	if( div.style.display == 'none' )
		div.style.display = 'block';
	else if( hide )
		div.style.display = 'none';
}

var delay = 1000; //Délai après lequel le bloc est automatiquement masqué, après le départ de la souris.
var timeout;
var displayed = false;
var previous_bblock;

//Affiche le bloc.
function bb_display_block(divID, field)
{
	var i;
	
	if( timeout )
		clearTimeout(timeout);
	
	var block = document.getElementById('bb_block' + divID + field);
	if( block.style.display == 'none' )
	{
		if( document.getElementById(previous_bblock) )
			document.getElementById(previous_bblock).style.display = 'none';
		block.style.display = 'block';
		displayed = true;
		previous_bblock = 'bb_block' + divID + field;
	}
	else
	{
		block.style.display = 'none';
		displayed = false;
	}
}

//Cache le bloc.
function bb_hide_block(bbfield, field, stop)
{
	if( stop && timeout )
	{	
		clearTimeout(timeout);
	}
	else if( displayed )
	{
		clearTimeout(timeout);
		timeout = setTimeout('bb_display_block(\'' + bbfield + '\',  \'' + field + '\')', delay);
	}	
}



