
function storeCaret(text)
{ // voided
}

function AddText(startTag, defaultText, endTag, nom_du_textarea) 
{
	if (nom_du_textarea.createTextRange) 
	{
		var text;
		nom_du_textarea.focus(nom_du_textarea.caretPos);
		nom_du_textarea.caretPos = document.selection.createRange().duplicate();
		if(nom_du_textarea.caretPos.text.length > 0)
		{
			nom_du_textarea.caretPos.text = startTag + nom_du_textarea.caretPos.text + endTag;
		}
		else
		{
			nom_du_textarea.caretPos.text = startTag+defaultText+endTag;
		}
	}
	else nom_du_textarea.value += startTag+defaultText+endTag;
}

function CenterText(defaultText, nom_du_textarea) 
{
	if (nom_du_textarea.createTextRange) 
	{
		var text;
		nom_du_textarea.focus(nom_du_textarea.caretPos);
		nom_du_textarea.caretPos = document.selection.createRange().duplicate();
		if(nom_du_textarea.caretPos.text.length > 0)
		{
			nom_du_textarea.caretPos.text = '<div style="text-align:center;">' + nom_du_textarea.caretPos.text + '</div>';
		}
		else
		{
			nom_du_textarea.caretPos.text = '<div style="text-align:center;">' + defaultText + '</div>';
		}
	}
	else nom_du_textarea.value += '<div style="text-align:center;">' + defaultText + '</div>';
}

function AddImage(UrlTag, Align, nom_du_textarea)
{
	if (nom_du_textarea.createTextRange) 
	{
		var text;
		nom_du_textarea.focus(nom_du_textarea.caretPos);
		nom_du_textarea.caretPos = document.selection.createRange().duplicate();
		nom_du_textarea.caretPos.text = '<div style="text-align:' + Align + ';"><img style="border:0px;" src="' + UrlTag + '" align="' + Align + '"/></div>';
	}
	else if (Align == "left")
		nom_du_textarea.value += '<div style="text-align:' + Align + ';"><img style="border:0px; margin-right:5px;" src="' + UrlTag + '" align="' + Align + '"/></div>';
	else if (Align == "right")
		nom_du_textarea.value += '<div style="text-align:' + Align + ';"><img style="border:0px; margin-left:5px;" src="' + UrlTag + '" align="' + Align + '"/></div>';
	else 
		nom_du_textarea.value += '<div style="text-align:' + Align + ';"><img style="border:0px;" src="' + UrlTag + '" align="' + Align + '"/></div>';
}

function AddMiniatureImage(UrlTag1, id_image, Align, nom_du_textarea)
{
	if (nom_du_textarea.createTextRange) 
	{
		var text;
		nom_du_textarea.focus(nom_du_textarea.caretPos);
		nom_du_textarea.caretPos = document.selection.createRange().duplicate();
		nom_du_textarea.caretPos.text = '<div style="text-align:' + Align + ';"><a href="image-' + id_image + '-mobzgames.html"><img style="border: 0px;" src="' + UrlTag1 + '" align="' + Align + '"/></a></div>';
	}
	else if (Align == "center")
		nom_du_textarea.value += '<div style="text-align:' + Align + ';"><a href="image-' + id_image + '-mobzgames.html"><img style="border: 0px;" src="' + UrlTag1 + '" align="' + Align + '"/></a></div>';
	else 
		nom_du_textarea.value += '<div style="text-align:' + Align + ';"><a href="image-' + id_image + '-mobzgames.html"><img style="border: 0px;" src="' + UrlTag1 + '" align="' + Align + '"/></a></div>';
}

function AddURL(UrlTag, nom_du_textarea) 
{
	if (nom_du_textarea.createTextRange) 
	{
		var text;
		nom_du_textarea.focus(nom_du_textarea.caretPos);
		nom_du_textarea.caretPos = document.selection.createRange().duplicate();
		if(nom_du_textarea.caretPos.text.length > 0)
		{
			nom_du_textarea.caretPos.text = '<a class="article" href="">' + nom_du_textarea.caretPos.text + '</a>';
		}
		else
		{
			nom_du_textarea.caretPos.text = '<a class="article" href="">' + UrlTag + '</a>';
		}
	}
	else nom_du_textarea.value += '<a href="">' + UrlTag + '</a>';
}

function nl2br (str, is_xhtml)
{
	breakTag = '<br />';

	if (typeof is_xhtml != 'undefined' && !is_xhtml)
	{
		breakTag = '<br>';
	}
	return (str + '').replace(/([^>]?)\n/g, '$1'+ breakTag +'\n');
}

function Apercu()
{
	longueurCible = document.getElementById("apercu").firstChild.length;
	document.getElementById("apercu").firstChild.replaceData(0, longueurCible, nl2br(document.content.texte.value, true));
//	document.getElementById("apercu").innerHTML = nl2br(document.content.texte.value, true);
}


function insertTag(startTag, endTag, textareaId, tagType) {
        var field  = document.getElementById(textareaId); 
        var scroll = field.scrollTop;
        field.focus();
        
        /* === Partie 1 : on récupère la sélection === */
        if (window.ActiveXObject) {
                var textRange = document.selection.createRange();            
                var currentSelection = textRange.text;
        } 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);               
        }
        
        /* === Partie 2 : on analyse le tagType === */
        if (tagType) {
                switch (tagType) {
						case "lien":
								endTag = "</lien>";
								if (currentSelection) { // Il y a une sélection
										if (currentSelection.indexOf("http://") == 0 || currentSelection.indexOf("https://") == 0 || currentSelection.indexOf("ftp://") == 0 || currentSelection.indexOf("www.") == 0) {
												// La sélection semble être un lien. On demande alors le libellé
												var label = prompt("Quel est le libellé du lien ?") || "";
												startTag = "<lien url=\"" + currentSelection + "\">";
												currentSelection = label;
										} else {
												// La sélection n'est pas un lien, donc c'est le libelle. On demande alors l'URL
												var URL = prompt("Quelle est l'url ?");
												startTag = "<lien url=\"" + URL + "\">";
										}
								} else { // Pas de sélection, donc on demande l'URL et le libelle
										var URL = prompt("Quelle est l'url ?") || "";
										var label = prompt("Quel est le libellé du lien ?") || "";
										startTag = "<lien url=\"" + URL + "\">";
										currentSelection = label;                     
								}
						break;
						case "lien_image":
								endTag = "</lien_image>";
								if (currentSelection) { // Il y a une sélection
										if (currentSelection.indexOf("http://") == 0 || currentSelection.indexOf("https://") == 0 || currentSelection.indexOf("ftp://") == 0 || currentSelection.indexOf("www.") == 0) {
												// La sélection semble être un lien. On demande alors le libellé
												var label = prompt("Quel est le libellé du lien ?") || "";
												startTag = "<lien_image url=\"" + currentSelection + "\">";
												currentSelection = label;
										} else {
												// La sélection n'est pas un lien, donc c'est le libelle. On demande alors l'URL
												var URL = prompt("Quelle est l'url ?");
												startTag = "<lien_image url=\"" + URL + "\">";
										}
								} else { // Pas de sélection, donc on demande l'URL et le libelle
										var URL = prompt("Quelle est l'url ?") || "";
										var label = prompt("Quel est le libellé du lien ?") || "";
										startTag = "<lien_image url=\"" + URL + "\">";
										currentSelection = label;                     
								}
						break;
						case "citation":
								endTag = "</citation>";
								if (currentSelection) { // Il y a une sélection
										if (currentSelection.length > 30) { // La longueur de la sélection est plus grande que 30. C'est certainement la citation, le pseudo fait rarement 20 caractères
												var auteur = prompt("Quel est l'auteur de la citation ?") || "";
												startTag = "<citation nom=\"" + auteur + "\">";
										} else { // On a l'Auteur, on demande la citation
												var citation = prompt("Quelle est la citation ?") || "";
												startTag = "<citation nom=\"" + currentSelection + "\">";
												currentSelection = citation;    
										}
								} else { // Pas de selection, donc on demande l'Auteur et la Citation
										var auteur = prompt("Quel est l'auteur de la citation ?") || "";
										var citation = prompt("Quelle est la citation ?") || "";
										startTag = "<citation nom=\"" + auteur + "\">";
										currentSelection = citation;    
								}
						break;
                }
        }
        
        /* === Partie 3 : on insère le tout === */
        if (window.ActiveXObject) {
                textRange.text = startTag + currentSelection + endTag;
                textRange.moveStart("character", -endTag.length - currentSelection.length);
                textRange.moveEnd("character", -endTag.length);
                textRange.select();     
        } else {
                field.value = startSelection + startTag + currentSelection + endTag + endSelection;
                field.focus();
                field.setSelectionRange(startSelection.length + startTag.length, startSelection.length + startTag.length + currentSelection.length);
        } 

        field.scrollTop = scroll;     
}

function preview(textarea, previewDiv, inputTextarea) {
	var field = document.getElementById(textarea).value;
	if (field) {
		field = field.replace(/\n/g, '<br/>').replace(/\t/g, '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;');
		
		field = field.replace(/<titre>([\s\S]*?)<\/titre>/g, '<h3>$1</h3>');
		field = field.replace(/<centrer>([\s\S]*?)<\/centrer>/g, '<div style="text-align:center;">$1</div>');
		field = field.replace(/<gras>([\s\S]*?)<\/gras>/g, '<b>$1</b>');
		field = field.replace(/<italique>([\s\S]*?)<\/italique>/g, '<i>$1</i>');
		field = field.replace(/<lien>([\s\S]*?)>\/lien>/g, '<a class="article" href="$1">$1</a>');
		field = field.replace(/<lien url="([\s\S]*?)">([\s\S]*?)<\/lien>/g, '<a class="article" href="$1">$2</a>');
		field = field.replace(/<lien_image>([\s\S]*?)>\/lien_image>/g, '<a href="$1" title="Cliquez pour fermer" class="thickbox" rel="gallery">$1</a>');
		field = field.replace(/<lien_image url="([\s\S]*?)">([\s\S]*?)<\/lien_image>/g, '<a href="$1" title="Cliquez pour fermer" class="thickbox" rel="gallery">$2</a>');
		field = field.replace(/<image>([\s\S]*?)<\/image>/g, '<img style="border:0px;" src="$1" align="center"/>');
		field = field.replace(/<image_gauche>([\s\S]*?)<\/image_gauche>/g, '<img style="border:0px;" src="$1" align="left"/>');
		field = field.replace(/<image_droite>([\s\S]*?)<\/image_droite>/g, '<img style="border:0px;" src="$1" align="right"/>');
		
		document.getElementById(previewDiv).innerHTML = field;
		document.getElementById(inputTextarea).value = field;
	}

}

function getXMLHttpRequest() {
	var xhr = null;
	
	if (window.XMLHttpRequest || window.ActiveXObject) {
		if (window.ActiveXObject) {
			try {
				xhr = new ActiveXObject("Msxml2.XMLHTTP");
			} catch(e) {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
		} else {
			xhr = new XMLHttpRequest();
		}
	} else {
		alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
		return null;
	}
	
	return xhr;
}

function view(textareaId, viewDiv){
	var content = encodeURIComponent(document.getElementById(textareaId).value);
	var xhr = getXMLHttpRequest();
	
	if (xhr && xhr.readyState != 0) {
		xhr.abort();
		delete xhr;
	}
	
	xhr.onreadystatechange = function() {
		if (xhr.readyState == 4 && xhr.status == 200){
			document.getElementById(viewDiv).innerHTML = xhr.responseText;
		} else if (xhr.readyState == 3){
			document.getElementById(viewDiv).innerHTML = "<div style=\"text-align: center;\">Chargement en cours...</div>";
		}
	}
	
	xhr.open("POST", "view.php", true);
	xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	xhr.send("string=" + content);
}

