/**
 * Fonctions javascript du forum.
 * Créé 23/11/2005 Lambo
 */

/**
 * Quickjump vers une catégorie. Il s'agit de soumettre un formulaire.
 */
function goToCateg() {
	myform = document.getElementById("quickjump");
	myform.submit();
} // goToCateg

/*
	Fonctions du formulaire de réponse
*/
var cpt=0;
var isMozilla = (navigator.userAgent.toLowerCase().indexOf('gecko')!=-1) ? true : false

function addSmiley(code) {
	zonetexte = document.forms["ecrire"].elements["texte"];
	if (zonetexte.createTextRange) { // IE only
		var text;
		zonetexte.focus(zonetexte.caretPos);
		zonetexte.caretPos = document.selection.createRange().duplicate();
    	zonetexte.caretPos.text = code;
	} // if
	else if (isMozilla) {
		objectValue = zonetexte.value;
       	objectValueDeb = objectValue.substring(0 , zonetexte.selectionStart);
       	objectValueFin = objectValue.substring(zonetexte.selectionStart, zonetexte.textLength);
       	
       	zonetexte.value = objectValueDeb+" "+code+" "+objectValueFin;
       	zonetexte.setSelectionRange(objectValueDeb.length + code.length + 2, objectValueDeb.length + code.length + 2);
       	zonetexte.focus();
	} // else
	else {
		temp = zonetexte.value;
		temp = temp + code;
		zonetexte.value = temp;
		zonetexte.focus();
	}
} // addSmiley
function Remplace(expr,a,b) {
  var i=0
  while (i!=-1) {
	 i=expr.indexOf(a,i);
	 if (i>=0) {
		expr=expr.substring(0,i)+b+expr.substring(i+a.length);
		i+=b.length;
	 }
  }
  return expr
}
function validform(f) {
	msg = '';
	pseudo = f.elements['pseudo'].value;
	pseudo = Remplace(pseudo, ' ', '');
	titre = f.elements['titre'].value;
	titre = Remplace(titre, ' ', '');
	texte = f.elements['texte'].value;
	texte = Remplace(texte, ' ', '');
	if (pseudo == "") {
		msg = "Vous devez saisir votre pseudo !\n";
	} // if
	if (f.elements['id_parent'].value=='' && titre=='') {
		msg += "Veuillez donner un titre à votre nouveau sujet !\n";
	} // if
	if (texte=="") {
		msg += "Veuillez saisir un message !\n";
	} // if
	// JS check
	txt = texte.toLowerCase();
	if (txt.indexOf("<" + "script")!=-1 || txt.indexOf("<" + "!--")!=-1) {
		msg += "Désolé, pas de script dans les messages :)";		
	} // if
	if (msg=='') {
		cpt++;
		if (cpt==1) {
			return true;
		} // if
		else {
			alert ("On se calme ! Une seule fois suffit :) ");
			return false;
		} // else
	} // if
	else {
		alert (msg);
		return false;
	} // else
} // validform

/**
 * Mettre en gras, italique, souligné
 */
function formatTexte(lettre) {
	if (isMozilla) {
    	oField = document.forms["ecrire"].elements["texte"];
     	if (oField.selectionEnd != oField.selectionStart) {
        	objectValue = oField.value;
        	objectValueDeb = objectValue.substring(0 , oField.selectionStart);
        	objectValueFin = objectValue.substring(oField.selectionEnd, oField.textLength);
        	objectSelected = objectValue.substring(oField.selectionStart, oField.selectionEnd);
        
        	oField.value = objectValueDeb+"[:" + lettre + ":]"+objectSelected+"[:/" + lettre + ":]"+objectValueFin;
        	oField.focus();
        	oField.setSelectionRange(objectValueDeb.length, oField.value.length - objectValueFin.length);
     	} // if
     	else {
        	alert ("Veuillez sélectionner un texte avant de le formater !");
     	} // else
  	} // if
  	else {
    	var str = document.selection.createRange().text;
     	if (document.selection.createRange().text) {
        	var sel = document.selection.createRange();
        	sel.text = "[:" + lettre + ":]" + str + "[:/" + lettre + ":]";
     	} // if
	 	else {
        	alert ("Veuillez sélectionner un texte avant de le formater !");
     	} // else
  	} // else
  	document.forms["ecrire"].elements["texte"].focus();
} // formatTexte

/**
 * Ajouter un lien au message
 */
function ajouterLien() {
	var url = prompt('Saisissez votre lien.\nExemple : http://www.monsite.com', 'http://');
	// var expreg=/http:\/\/([www\.]+\.)?([-0-9A-Za-z_]+(\.[a-z-A-Z]{2,4})?)(.*)/;
	var expreg=/^(http:\/\/|https:\/\/){1}[A-Za-z0-9][A-Za-z0-9\-\.]+[A-Za-z0-9]\.[A-Za-z]{2,4}[?]?[\43-\176]*$/;
	
	if(url==null) { // On choisit annuler
		return false;
	}
	var tableau=expreg.exec(url);
	if (tableau==null) { // test de l'url
		alert('Votre lien n\'est pas valide.');
		return ajouterLien();
	}
	else { // l'url est valide. On demande un texte pour le lien
		var texte = prompt('Saisissez le texte du lien. (facultatif).\nExemple : Lien vers mon site', '');
		if(texte==null) { // On choisit annuler
			return false;
		}
		if (texte==undefined || texte.length==0) { // pas de texte
			texte = url;
		}
		// Ouverture du lien en popup ?
		var pop = confirm('Si vous souhaitez que votre lien\ns\'ouvre dans une nouvelle fenêtre\nAppuyez sur OK.\nSinon sur Annuler.');
	}
	var lien = '[:a href="' + url + '"';
	if (pop) {
		lien += ' target="_blank"';
	}
	lien += ':]' + texte + '[:/a:]';
	
	// On met le lien dans le textarea
	var chpTexte = document.forms['ecrire'].elements['texte'];
	if (isMozilla) {
    	objectValue = chpTexte.value;
    	objectValueDeb = objectValue.substring(0 , chpTexte.selectionStart);
    	objectValueFin = objectValue.substring(chpTexte.selectionStart, chpTexte.textLength);
       
    	chpTexte.value = objectValueDeb + lien + objectValueFin;
    	chpTexte.focus();
   	} // if
  	else {
		chpTexte.focus();
    	var sel = document['selection'].createRange();
    	sel.text += lien;
  	} // else
	chpTexte.focus();
}