// Gestion du BB Code
function insertTag (textareaId, tag)
{
	var startTag = "[" + tag + "]";
	var endTag = "[/" + tag + "]";
	var field  = document.getElementById (textareaId);
	var scroll = field.scrollTop;
	field.focus ();
	// C'est IE
	if (window.ActiveXObject)
	{
		var textRange = document.selection.createRange ();
		var currentSelection = textRange.text;
		textRange.text = startTag + currentSelection + endTag;
		textRange.moveStart ("character", -endTag.length - currentSelection.length);
		textRange.moveEnd ("character", -endTag.length);
		textRange.select ();
	}
	// Ce n'est pas IE
	else
	{
		var startSelection = field.value.substring (0, field.selectionStart);
		var currentSelection = field.value.substring (field.selectionStart, field.selectionEnd);
		var endSelection = field.value.substring (field.selectionEnd);
		field.value = startSelection + startTag + currentSelection + endTag + endSelection;
		field.focus ();
		field.setSelectionRange (startSelection.length + startTag.length, startSelection.length + startTag.length + currentSelection.length);
	}
	field.scrollTop = scroll;
}
// Gestion des smilies
function insertSmiley (textareaId, smiley)
{
	var field  = document.getElementById (textareaId);
	var scroll = field.scrollTop;
	field.focus ();
	// C'est IE
	if (window.ActiveXObject)
	{
		var textRange = document.selection.createRange ();
		var currentSelection = textRange.text;
		textRange.text = currentSelection + smiley;
		textRange.select ();
	}
	// Ce n'est pas IE
	else
	{
		var startSelection = field.value.substring (0, field.selectionStart);
		var currentSelection = field.value.substring (field.selectionStart, field.selectionEnd);
		var endSelection = field.value.substring (field.selectionEnd);
		field.value = startSelection + currentSelection + smiley + endSelection;
		field.focus ();
		field.setSelectionRange (startSelection.length + smiley.length, startSelection.length + currentSelection.length + smiley.length);
	}
	field.scrollTop = scroll;
}
// Affichage des infos sur le BB Code
function detailTag (tag)
{
	switch (tag)
	{
		case "b" : var desc = "<span class=\"txt_gras\">Texte en gras :</span> <span class=\"txt_gras coul_bordeau\">[b]</span>texte<span class=\"txt_gras coul_bordeau\">[/b]</span>"; break;
		case "i" : var desc = "<span class=\"txt_gras\">Texte en italique :</span> <span class=\"txt_gras coul_bordeau\">[i]</span>texte<span class=\"txt_gras coul_bordeau\">[/i]</span>"; break;
		case "u" : var desc = "<span class=\"txt_gras\">Texte souligné :</span> <span class=\"txt_gras coul_bordeau\">[u]</span>texte<span class=\"txt_gras coul_bordeau\">[/u]</span>"; break;
		case "c" : var desc = "<span class=\"txt_gras\">Élément centré :</span> <span class=\"txt_gras coul_bordeau\">[c]</span>texte<span class=\"txt_gras coul_bordeau\">[/c]</span>"; break;
		case "url" : var desc = "<span class=\"txt_gras\">Lien cliquable :</span> <span class=\"txt_gras coul_bordeau\">[url]</span>http://url<span class=\"txt_gras coul_bordeau\">[/url]</span> <span class=\"txt_gras\">ou</span> <span class=\"txt_gras coul_bordeau\">[url=</span>http://url<span class=\"txt_gras coul_bordeau\">]</span>texte<span class=\"txt_gras coul_bordeau\">[/url]</span>"; break;
		case "mail" : var desc = "<span class=\"txt_gras\">E-mail cliquable :</span> <span class=\"txt_gras coul_bordeau\">[mail]</span>mail@mail.com<span class=\"txt_gras coul_bordeau\">[/mail]</span> <span class=\"txt_gras\">ou</span> <span class=\"txt_gras coul_bordeau\">[mail=</span>mail@mail.com<span class=\"txt_gras coul_bordeau\">]</span>texte<span class=\"txt_gras coul_bordeau\">[/mail]</span>"; break;
		case "img" : var desc = "<span class=\"txt_gras\">Image :</span> <span class=\"txt_gras coul_bordeau\">[img]</span>http://url<span class=\"txt_gras coul_bordeau\">[/img]</span>"; break;
		case "thb" : var desc = "<span class=\"txt_gras\">Petite vignette cliquable :</span> <span class=\"txt_gras coul_bordeau\">[thb]</span>http://url<span class=\"txt_gras coul_bordeau\">[/thb]</span>"; break;
	}
	document.getElementById ("detail_bbcode").innerHTML = desc;
}
// Zoom de l'image de bienvenue
function zoom_bienvenue ()
{
	var left = (screen.width - 800) / 2;
	var top = (screen.height - 600) / 2;
	window.open ("page/zoom_bienvenue.htm", "zoom_bienvenue", "left=" + left + ", top=" + top + ", width=800, height=600, toolbar=no, location=no, directories=no, status=no, scrollbars=no, resizable=no, copyhistory=no");
}
// Gestion des cadres dans l'interface DKP
function gerer_cadre (bt, cadre)
{
	if (document.getElementById (cadre).style.display == "block")
	{
		bt.className = "dkp_icone_ouvrir";
		document.getElementById (cadre).style.display = "none";
	}
	else
	{
		bt.className = "dkp_icone_fermer";
		document.getElementById (cadre).style.display = "block"
	}
}
// Gestion des cadres de la page d'admin des adhésions
function gerer_cadre_adhesion (cadre)
{
	if (document.getElementById (cadre).style.display == "block")
	{
		document.getElementById (cadre).style.display = "none";
	}
	else
	{
		document.getElementById (cadre).style.display = "block"
	}
}
// Fonction pour ajouter un destinataire lors de la saisie d'un message privé
function mp_ajout_dest ()
{
	list = document.getElementById ("dest_liste");
	dest = document.getElementById ("dest_nom");
	if (list.value != "0")
	{
		if (dest.value == "")
		{
			dest.value = list.value;
		}
		else
		{
			dest.value += ";" + list.value;
		}
	}
}
// Calendrier : popup
var cX = 0;
var cY = 0;
var rX = 0;
var rY = 0;
function UpdateCursorPosition (e)
{
	cX = e.pageX;
	cY = e.pageY;
}
function UpdateCursorPositionDocAll (e)
{
	cX = event.clientX;
	cY = event.clientY;
}
if(document.all)
{
	document.onmousemove = UpdateCursorPositionDocAll;
}
else
{
	document.onmousemove = UpdateCursorPosition;
}
function AssignPosition (d)
{
	if (self.pageYOffset)
	{
		rX = self.pageXOffset;	
		rY = self.pageYOffset;
	}
	else if (document.documentElement && document.documentElement.scrollTop)
	{
		rX = document.documentElement.scrollLeft;
		rY = document.documentElement.scrollTop;
	}
	else if (document.body)
	{
		rX = document.body.scrollLeft;
		rY = document.body.scrollTop;
	}
	if(document.all)
	{
		cX += rX;		
		cY += rY;
	}
	d.style.left = (cX + 40) + "px";
	d.style.top = (cY - 80) + "px";
}
function HideContent (d)
{
	var dd = document.getElementById (d);
	dd.style.display = "none";
}
function ShowContent (d)
{
	var dd = document.getElementById (d);
	AssignPosition (dd);
	dd.style.display = "block";
}
// Fonction AJAX pour valeurs POST
function ajax_post ()
{
	if (window.XMLHttpRequest)
	{
		xhr = new XMLHttpRequest ();
	}
	else if (window.ActiveXObject)
	{
		try
		{
			xhr = new ActiveXObject ("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			xhr = new ActiveXObject ("Microsoft.XMLHTTP");
		}
	}
	else
	{
		alert ("Votre navigateur ne supporte pas les objets XMLHTTPRequest, veuillez le mettre à jour.");
		xhr = false;
	}
	return xhr;
}
// Fonction AJAX pour valeurs GET
function ajax_get (page)
{
	if (window.XMLHttpRequest)
	{
		xhr_object = new XMLHttpRequest ();
	}
	else if (window.ActiveXObject)
	{
		xhr_object = new ActiveXObject ("Microsoft.XMLHTTP");
	}
	else
	{
		return(false);
	}
	xhr_object.open ("GET", page, false);
	xhr_object.send (null);
	if (xhr_object.readyState == 4)
	{
		return (xhr_object.responseText);
	}
	else
	{
		return (false);
	}
}
// Calendrier : changement de mois
function calend_maj (mois)
{
	HideContent ("popup_message");
	HideContent ("popup_retard");
	ajax_calend_maj = ajax_post ();
	ajax_calend_maj.onreadystatechange = function ()
	{
		if (ajax_calend_maj.readyState == 4 && ajax_calend_maj.status == 200)
		{
			document.getElementById ("calendrier").innerHTML = ajax_calend_maj.responseText;
		}
	}
	ajax_calend_maj.open ("POST", "script/ajax_calend_maj.php", true);
	ajax_calend_maj.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded");
	ajax_calend_maj.send ("m=" + mois);
}
// Calendrier : mise à jour du cadre Aujourd'hui
function calend_maj_aujourdhui (jour)
{
	ajax_calend_maj_aujourdhui = ajax_post ();
	ajax_calend_maj_aujourdhui.onreadystatechange = function ()
	{
		if (ajax_calend_maj_aujourdhui.readyState == 4 && ajax_calend_maj_aujourdhui.status == 200)
		{
			verif_maj = ajax_calend_maj_aujourdhui.responseText;
			if (verif_maj != "")
			{
				document.getElementById ("aujourdhui_inscription").innerHTML = ajax_calend_maj_aujourdhui.responseText;
			}
		}
	}
	ajax_calend_maj_aujourdhui.open ("POST", "script/ajax_calend_maj_aujourdui.php", true);
	ajax_calend_maj_aujourdhui.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded");
	ajax_calend_maj_aujourdhui.send ("j=" + jour);
}
// Calendrier : disponibilités
function calend_change_dispo (jour, mois, dispo)
{
	ajax_calend_change_dispo = ajax_post ();
	ajax_calend_change_dispo.onreadystatechange = function ()
	{
		if (ajax_calend_change_dispo.readyState == 4 && ajax_calend_change_dispo.status == 200)
		{
			calend_maj (mois);
			calend_maj_aujourdhui (jour);
		}
	}
	ajax_calend_change_dispo.open ("POST", "script/ajax_calend_change_dispo.php", true);
	ajax_calend_change_dispo.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded");
	ajax_calend_change_dispo.send ("j=" + jour + "&d=" + dispo);
}
// Calendrier : afficher le formulaire de message
function calend_aff_message (jour)
{
	ajax_calend_aff_message = ajax_post ();
	ajax_calend_aff_message.onreadystatechange = function ()
	{
		if (ajax_calend_aff_message.readyState == 4 && ajax_calend_aff_message.status == 200)
		{
			document.getElementById ("form_message").innerHTML = ajax_calend_aff_message.responseText;
		}
	}
	ajax_calend_aff_message.open ("POST", "script/ajax_calend_aff_message.php", true);
	ajax_calend_aff_message.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded");
	ajax_calend_aff_message.send ("j=" + jour);
	HideContent ("popup_retard");
	ShowContent ("popup_message");
}
// Calendrier : mise à jour d'un message
function calend_change_message (jour)
{
	ajax_calend_change_message = ajax_post ();
	ajax_calend_change_message.onreadystatechange = function ()
	{
		if (ajax_calend_change_message.readyState == 4 && ajax_calend_change_message.status == 200)
		{
			document.getElementById ("form_message").innerHTML = ajax_calend_change_message.responseText;
		}
	}
	ajax_calend_change_message.open ("POST", "script/ajax_calend_change_message.php", true);
	ajax_calend_change_message.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded");
	ajax_calend_change_message.send ("j=" + jour + "&m=" + document.getElementById ("zs_message").value);
}
// Calendrier : afficher le formulaire de retard
function calend_aff_retard (jour)
{
	ajax_calend_aff_retard = ajax_post ();
	ajax_calend_aff_retard.onreadystatechange = function ()
	{
		if (ajax_calend_aff_retard.readyState == 4 && ajax_calend_aff_retard.status == 200)
		{
			document.getElementById ("form_retard").innerHTML = ajax_calend_aff_retard.responseText;
		}
	}
	ajax_calend_aff_retard.open ("POST", "script/ajax_calend_aff_retard.php", true);
	ajax_calend_aff_retard.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded");
	ajax_calend_aff_retard.send ("j=" + jour);
	HideContent ("popup_message");
	ShowContent ("popup_retard");
}
// Calendrier : mise à jour d'un retard
function calend_change_retard (jour)
{
	ajax_calend_change_retard = ajax_post ();
	ajax_calend_change_retard.onreadystatechange = function ()
	{
		if (ajax_calend_change_retard.readyState == 4 && ajax_calend_change_retard.status == 200)
		{
			document.getElementById ("form_retard").innerHTML = ajax_calend_change_retard.responseText;
		}
	}
	ajax_calend_change_retard.open ("POST", "script/ajax_calend_change_retard.php", true);
	ajax_calend_change_retard.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded");
	ajax_calend_change_retard.send ("j=" + jour + "&r=" + document.getElementById ("zs_retard").value);
}
// Modifier la race d'un personnage
function perso_modif_race ()
{
	document.getElementById ("ligne_role").style.visibility = "hidden";
	document.getElementById ("select_role").innerHTML = "<option value=\"0\">-- CHOISIR UN ROLE --</option>";
	if (document.getElementById ("select_race").value != 0)
	{
		document.getElementById ("select_classe").innerHTML = ajax_get ("script/ajax_perso_modif_race.php?r=" + document.getElementById ("select_race").value);
		document.getElementById ("ligne_classe").style.visibility = "visible";
	}
	else
	{
		document.getElementById ("ligne_classe").style.visibility = "hidden";
		document.getElementById ("select_classe").innerHTML = "<option value=\"0\">-- CHOISIR UNE CLASSE --</option>";
	}
}
// Modifier la classe d'un personnage
function perso_modif_classe ()
{
	if (document.getElementById ("select_classe").value != 0)
	{
		document.getElementById ("select_role").innerHTML = ajax_get ("script/ajax_perso_modif_classe.php?c=" + document.getElementById ("select_classe").value);
		document.getElementById ("ligne_role").style.visibility = "visible";
	}
	else
	{
		document.getElementById ("ligne_role").style.visibility = "hidden";
		document.getElementById ("select_role").innerHTML = "<option value=\"0\">-- CHOISIR UN ROLE --</option>";
	}
}
// Formulaire d'adhésion
function adhesion_form (type)
{
	if (type == "invite")
	{
		document.getElementById ("ligne_nom").style.visibility = "hidden";
		document.getElementById ("zs_nom").value = "";
		document.getElementById ("ligne_royaume").style.visibility = "hidden";
		document.getElementById ("select_royaume").value = "Sargeras";
		document.getElementById ("ligne_sexe").style.visibility = "hidden";
		document.getElementById ("cb_sexe_m").checked = false;
		document.getElementById ("cb_sexe_f").checked = false;
		document.getElementById ("ligne_race").style.visibility = "hidden";
		document.getElementById ("select_race").value = 0;
		document.getElementById ("ligne_classe").style.visibility = "hidden";
		document.getElementById ("select_classe").value = 0;
		document.getElementById ("ligne_role").style.visibility = "hidden";
		document.getElementById ("select_role").value = 0;
	}
	else if (type == "membre")
	{
		document.getElementById ("ligne_nom").style.visibility = "visible";
		document.getElementById ("ligne_royaume").style.visibility = "visible";
		document.getElementById ("ligne_sexe").style.visibility = "visible";
		document.getElementById ("ligne_race").style.visibility = "visible";
	}
}
// Admin : Gestion des actualités
function admin_actu_form (type)
{
	if (type == "jeu")
	{
		document.getElementById ("ligne_enbref").style.visibility = "hidden";
		document.getElementById ("zs_enbref").value = "";
	}
	else if (type == "guilde")
	{
		document.getElementById ("ligne_enbref").style.visibility = "visible";
	}
}
// Admin : Gestion des membres
function admin_membre_form ()
{
	if (document.getElementById ("admin_membre_list").value > 0)
	{
		document.getElementById ("admin_membre_rang").value = ajax_get ("script/ajax_admin_membre.php?t=rang&m=" + document.getElementById ("admin_membre_list").value);
		document.getElementById ("admin_membre_email").value = ajax_get ("script/ajax_admin_membre.php?t=email&m=" + document.getElementById ("admin_membre_list").value);
		document.getElementById ("admin_membre_signature").innerHTML = ajax_get ("script/ajax_admin_membre.php?t=sign&m=" + document.getElementById ("admin_membre_list").value);
		document.getElementById ("lien_suppr").href = "admin-membre-suppr-" + document.getElementById ("admin_membre_list").value + ".htm";
		document.getElementById ("ligne_rang").style.visibility = "visible";
		document.getElementById ("ligne_email").style.visibility = "visible";
		document.getElementById ("ligne_signature_1").style.visibility = "visible";
		document.getElementById ("ligne_signature_2").style.visibility = "visible";
		document.getElementById ("ligne_signature_3").style.visibility = "visible";
		document.getElementById ("ligne_signature_4").style.visibility = "visible";
		document.getElementById ("ligne_signature_5").style.visibility = "visible";
		document.getElementById ("ligne_validation").style.visibility = "visible";
		document.getElementById ("ligne_suppression").style.visibility = "visible";
	}
	else
	{
		document.getElementById ("ligne_rang").style.visibility = "hidden";
		document.getElementById ("ligne_email").style.visibility = "hidden";
		document.getElementById ("ligne_signature_1").style.visibility = "hidden";
		document.getElementById ("ligne_signature_2").style.visibility = "hidden";
		document.getElementById ("ligne_signature_3").style.visibility = "hidden";
		document.getElementById ("ligne_signature_4").style.visibility = "hidden";
		document.getElementById ("ligne_signature_5").style.visibility = "hidden";
		document.getElementById ("ligne_validation").style.visibility = "hidden";
		document.getElementById ("ligne_suppression").style.visibility = "hidden";
	}
}
// Admin : Gestion des disponibilités, mise à jour du calendrier
function admin_calend_maj (mois)
{
	document.getElementById ("liste_dispo").innerHTML = "";
	document.getElementById ("liste_dispo").style.display = "none";
	ajax_admin_calend_maj = ajax_post ();
	ajax_admin_calend_maj.onreadystatechange = function ()
	{
		if (ajax_admin_calend_maj.readyState == 4 && ajax_admin_calend_maj.status == 200)
		{
			document.getElementById ("calendrier").innerHTML = ajax_admin_calend_maj.responseText;
		}
	}
	ajax_admin_calend_maj.open ("POST", "script/ajax_admin_calend_maj.php", true);
	ajax_admin_calend_maj.setRequestHeader ("Content-Type", "application/x-www-form-urlencoded");
	ajax_admin_calend_maj.send ("m=" + mois);
}
// Admin : Gestion des disponibilités
function admin_calend_dispo (date)
{
	document.getElementById ("liste_dispo").innerHTML = ajax_get ("script/ajax_admin_calend_dispo.php?d=" + date);
	document.getElementById ("liste_dispo").style.display = "block";
}
