
/**************************************************************************************************
| 
| Nom du Site		: Admarechalerie.fr
| Propriétaire		: Jérome Pettinato - Association ADMarechalerie
| Website			: http://www.admarechalerie.fr
| E-mail			: webmaster@admarechalerie.fr
| 
|**************************************************************************************************
| 
| Réalisation		: Studio Erell
| 
|**************************************************************************************************
| Copyright (c) 2008-2009 admarechalerie.fr. Tous droits réservés. JA
|**************************************************************************************************/


var timer=0;
var ptag=String.fromCharCode(5,6,7);

function Valid_BBCode(num,idn)
{
	var titre=document.getElementById('titre_news').value;
	var t=document.getElementById('textar').value;
	//t=t.replace('<','&lt;');
	//t=t.replace('>','&gt;');
	//t=code_to_html(t);
	document.getElementById('textar_hid').value=t;
	
	
	
	var data="t="+t+"&titre="+titre+"&num="+num+"&idn="+idn;
	var ficphp="user_news_bdd.php"; //fichier qui traitera l'affichage des données
	var cible="user_data"; //nom de la div qui contiendra les données affichées
	Ajax_power_gel(data,ficphp,cible);
}



function  previsualisation() {
var t=document.getElementById('textar').value;
t=t.replace('<','&lt;');
t=t.replace('>','&gt;');
t=code_to_html(t);
var tope=document.getElementById("textar").offsetTop;
var lefte=document.getElementById("textar").offsetLeft;
document.getElementById("previou").style.top=tope+"px";
document.getElementById("previou").style.left=lefte+"px";
document.getElementById("previou").style.visibility="visible";
document.getElementById("textar_hid").value=t;
t = t+"<br /><br /><span class='ti_titre_red'>Fen&ecirc;tre de pr&eacute;visualisation - Cliquez sur la fen&ecirc;tre pour la fermer</span>";
document.getElementById("previou").innerHTML=t;

}

function code_to_html(t) {


//obligé de faire cette fonction avant nl2khol sinon les espace entre les listes vont etre sauvegardés
t=Vire_les_retours_chariot_des_listes(t);
//ayé on peut modifier les retour chariots
t=nl2khol(t);


// balise Gras <!-- on lui dis que telles balises correspondent à tels codes en HTML -->
// Les expressions regulieres sont toujours entre slash /regexp/
//les $1, $2 tout éa correspond aux variable crées par les regexp exemple ci dessous :
//  /\[gras\](.+)\[\/gras\]/g  => la variable est entre parenthese donc ici c'est (.+)    ... enfin je crois.
t=deblaie(/(\[\/gras\])/g,t);
t=remplace_tag(/\[gras\](.+)\[\/gras\]/g,'<span style="font-weight: bold;">$1</span>',t) ;
t=remblaie(t);

// balise Italic
t=deblaie(/(\[\/italic\])/g,t);
t=remplace_tag(/\[italic\](.+)\[\/italic\]/g,'<span style="font-style: italic;">$1</span>',t) ;
t=remblaie(t);

// balise Citation
t=deblaie(/(\[\/citation\])/g,t);
t=remplace_tag(/\[citation=([\s\S]*?)\](.*)\[\/citation\]/g,'<strong>Citation $1 :</strong><div style="border: 1px solid #000000; width: 50%; font-family: Verdana, \'Trebuchet MS\', Tahoma, \'Times New Roman\', Times, serif; text-align: left; font-size: 11px;" align="center">$2</div>',t) ;
t=remblaie(t);

// balise Image
t=deblaie(/(\[\/image\])/g,t);
t=remplace_tag(/\[image\](.+)\[\/image\]/g,'<img src="$1" />',t);
t=remblaie(t);

// balise URL   
t=deblaie(/(\[\/url\])/g,t);
t=remplace_tag(/\[\url=([\s\S]*)\](.*)\[\/url\]/g,'<a href="http://$1" target="_blank">$2</a>',t);
t=remblaie(t);

// balise email   
t=deblaie(/(\[\/email\])/g,t);
t=remplace_tag(/\[\email=([\s\S]*)\](.*)\[\/email\]/g,'<a href="mailto:$1" target="_blank">$2</a>',t);
t=remblaie(t);

// balise titre
t=deblaie(/(\[\/titre\])/g,t);
t=remplace_tag(/\[titre\](.+)\[\/titre\]/g,'<span class="ti_titre">$1</span>',t) ;
t=remblaie(t);

// balise tabulation    
t=deblaie(/(\[\/tab\])/g,t);
t=remplace_tag(/\[tab]/g,'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;',t) ;
t=remblaie(t);

// balise liste
t=remplace_LIST(t) ;
t=remblaie(t);

//fin du traitement
t=unkhol(t);
t=nl2br(t);
return t;
}


//-- tout le code qui suit c'est pour transformer toutes les balises, comme les preg_replace en PHP -->

//Deblaie sert a aérer un peu le texte, le fonction rajoute un \n apres l'expression passée en parametre 1 : reg
function deblaie(reg,t) {
textar=new String(t);
return textar.replace(reg,'$1\n');
}

//cette fonction fait l'inverse de deblaie
function remblaie(t) {
textar=new String(t);
return textar.replace(/\n/g,'');
}
function remplace_tag(reg,rep,t) {
textar=new String(t);
return textar.replace(reg,rep);
}

function Vire_les_retours_chariot_des_listes(t)
{
	textar=new String(t);
	return textar.replace(/\[\/ligne\]([\s]*)\[ligne\]/g,"[/ligne][ligne]"); //d'abord on vire tous les retour chariots sinon ca va sauter des lignes entre les elements
}

function remplace_LIST(t) 
{
	textar=new String(t);
	//textar=textar.replace(/\[\/ligne\]([\r]*)\[ligne\]/g,"[/ligne][ligne]"); //d'abord on vire tous les retour chariots sinon ca va sauter des lignes entre les elements

	
	textar=textar.replace(/\[ligne\]/g,'<li>');
	textar=textar.replace(/\[\/ligne\]/g,'</li>');
	textar=textar.replace(/\[liste\]/g,'<ul>');
	textar=textar.replace(/\[\/liste\]/g,'</ul>');
	//alert(textar);
	return textar;
}


function nl2br(t) {
textar=new String(t);
return textar.replace(/\n/g,'<br/>');
}
function nl2khol(t) 	//fonction qui permet de changer les retour chariots du texte tel quel en des caracteres qu'on utilise pas
{						// Pour qu'on puisse les retrouver apres et les transformer en <br />, on le fait parceque avec les fonction 
textar=new String(t);	//deblaie et remblaie, on nique les retour chariot fait par l'utilisateur
return textar.replace(/\n/g,ptag);
}
function unkhol(t) {
textar=new String(t);
return textar.replace(new RegExp(ptag,'g'),'\n');
}// JavaScript Document

function kellien(ind)
{
	if(ind=="m")
	{
		var mail= prompt("Tapez l'adresse email vers laquelle vous voulez faire un lien");
		if(mail!=null)
		{
			var nmail= prompt("Tapez le nom que vous voulez donner à votre lien");
			if(nmail!=null)
			{
				var mail='[email='+mail+']'+nmail;
				bbcode(mail, '[/email]');
			}
		}
	}
	else if(ind=="l")
	{
			var url= prompt("Tapez l'adresse internet vers laquelle vous voulez faire un lien");
			if(url!=null)
			{
				var nurl= prompt("Tapez le nom que vous voulez donner à votre lien");
				if(nurl!=null)
				{
					var url='[url='+url+']'+nurl;
					bbcode(url, '[/url]');
				}
			}
	}
}

function kelimg()
{
	var img= prompt("Tapez l'adresse internet de l'image vers laquelle vous voulez faire un lien");
	if(img!=null)
	{
		img='[image]'+img;
		bbcode(img, '[/image]');
	}
}

function Create_liste()
{
	//var num_or_not=confirm("Souhaitez vous une liste numérotée ou non ?\n\nSi oui, cliquez sur \"oui\" sinon cliquez sur \"Annuler\"");
	var nb_elts=prompt("Combien d'éléments souhaitez vous dans votre liste ?");
	var stringue='';
	while(isNaN(nb_elts) && nb_elts!=null) // on verifie qu'il a bien tapé un nombre et pas une lettre ou annuler
	{ 
		var nb_elts=prompt("Combien d'éléments souhaitez vous dans votre liste ? \nVeuillez saisir une valeur numérique"); 
	}
	if (nb_elts!=null) //on verifie que l'utilisateur n'a pas cliqué annulé a la 2eme invite
	{
		stringue = "\n[liste]"+stringue;
		for(var i=1;i<=nb_elts;i++)
		{ stringue=stringue+"[ligne]Elément[/ligne]\n"; }
		stringue = stringue+"[/liste]";
		bbcode(stringue,'');
	}
	
}