//----------------------------------------------------------- js_astero_hache.js
// Script de @NBF http://www.editeurjavascript.com
// Version bidouilled par El Konkonbré M@squed
//-----------------------------------------------------------
var isMozilla = (navigator.userAgent.toLowerCase().indexOf('gecko')!=-1) ? true : false;
var regexpbbc = new RegExp("[\r]","gi"); // regexp

function actarus(selec, option, nom_txtArea)
{
  if (isMozilla)
  {
  // Si on est sur Mozilla

    oField = document.getElementById('formulaire').elements[nom_txtArea]; //

    objectValue = oField.value;

    deb = oField.selectionStart;
    fin = oField.selectionEnd;

    objectValueDeb = objectValue.substring( 0 , oField.selectionStart );
    objectValueFin = objectValue.substring( oField.selectionEnd , oField.textLength );
    objectSelected = objectValue.substring( oField.selectionStart ,oField.selectionEnd );

  //  alert("Debut:'"+objectValueDeb+"' ("+deb+")\nFin:'"+objectValueFin+"' ("+fin+")\n\nSelectionné:'"+objectSelected+"'("+(fin-deb)+")");
      
    oField.value = objectValueDeb + "[" + selec + option + "]" + objectSelected + "[/" + selec + "]" + objectValueFin;
    oField.selectionStart = strlen(objectValueDeb);
    oField.selectionEnd = strlen(objectValueDeb + "[" + selec + option + "]" + objectSelected + "[/" + selec + "]");
    oField.focus();
    oField.setSelectionRange(
      objectValueDeb.length + selec.length + 2,
      objectValueDeb.length + selec.length + 2);
  }
  else
  {
  // Si on est sur IE
    
    oField = document.getElementById('formulaire').elements[nom_txtArea];
    var str = document.selection.createRange().text;

    if (str.length>0)
    {
    // Si on a selectionné du texte
      var sel = document.selection.createRange();
      sel.text = "[" + selec + option + "]" + str + "[/" + selec + "]";
      sel.collapse();
      sel.select();
    }
    else
    {
      oField.focus(oField.caretPos);
    //  alert(oField.caretPos+"\n"+oField.value.length+"\n")
      oField.focus(oField.value.length);
      oField.caretPos = document.selection.createRange().duplicate();
      
      var bidon = "%~%";
      var orig = oField.value;
      oField.caretPos.text = bidon;
      var i = oField.value.search(bidon);
      oField.value = orig.substr(0,i) + "[" + selec + option + "][/" + selec + "]" + orig.substr(i, oField.value.length);
      var r = 0;
      for(n = 0; n < i; n++)
      {if(regexpbbc.test(oField.value.substr(n,2)) == true){r++;}};
      pos = i + 2 + selec.length - r;

      //placer(document.getElementById('formulaire').elements[nom_txtArea], pos);
      var r = oField.createTextRange();
      r.moveStart('character', pos);
      r.collapse();
      r.select();
    }
  }
}



//-------------------------------------------------------------------- js_ari.js
function ajoutRapideImage(text1, text2, nom_value_du_txtarea) {
        var textosArea = document.getElementById(nom_value_du_txtarea);
    if (document.selection) { // IR
        var str = document.selection.createRange().text;
        textosArea.focus();
        var sel = document.selection.createRange();
        sel.text = sel.text + text1;

    } else if (textosArea.selectionStart || textosArea.selectionStart == 0) {
        if (textosArea.selectionEnd > textosArea.value.length) textosArea.selectionEnd = textosArea.value.length;
        var firstPos = textosArea.selectionStart;
        var secondPos = textosArea.selectionEnd+text1.length;
        var contenuScrollTop = textosArea.scrollTop;
        
        textosArea.value=textosArea.value.slice(0,firstPos)+text1+textosArea.value.slice(firstPos);
        textosArea.value=textosArea.value.slice(0,secondPos)+text2+textosArea.value.slice(secondPos);
        
        textosArea.selectionStart = firstPos+text1.length;
        textosArea.selectionEnd = secondPos;
        textosArea.focus();
        textosArea.scrollTop = contenuScrollTop;
        //textosArea.focus();
    }
}



//------------------------------------------------------- js_fulgure_au_poing.js
function fulgure_au_poing(value)
{
    startpos = 0;
    while ((value.charAt(startpos) == " ") && (startpos < value.length))
    {
        startpos++;
    }
    if (startpos == value.length)
    {
        value = "";
    }
    else
    {
        value = value.substring(startpos, value.length);
        endpos = (value.length) - 1;
        while(value.charAt(endpos) == " ")
        {
            endpos--;
        }
        value = value.substring(0, endpos + 1);
    }
    return(value);
}



//-------------------------------------------------------------- js_infobulle.js
//  Nom Document : GFBULLE.JS
//  Auteur       : G.Ferraz
//  Objet        : Info Bulle...
//  Création     : 01.12.2003
//-------------------------------------------------------------
//  Mise à Jour  : 29.05.2006
//  Objet        : Compatibilité IE6 et DOCTYPE
//  -----------------------------------------------------------
//  Mise à Jour  : 15.09.2006
//  Objet        : Amélioration et modif suite à commentaires
//  -----------------------------------------------------------
//  Mise à Jour  : 10.11.2006
//  Objet        : Correction Bug sous FF si document <DIV style="float...">
//  -----------------------------------------------------------
var DOM = (document.getElementById ? true : false);
var IE  = (document.all && !DOM ? true : false);
var NAV_OK   = ( DOM || IE );
var NETSCAPE = ( navigator.appName == 'Netscape');
var Mouse_X;                // Position X en Cours de la Mouse
var Mouse_Y;                // Position Y en Cours de la Mouse
var Decal_X;                // Décalage X entre Pointeur Mouse et Bulle
var Decal_Y;                // Décalage Y entre Pointeur Mouse et Bulle
var bBULLE   = false;       // Flag Affichage de la Bulle
var Fenetre  = new RECT();  // pour dimension fenêtre
//-------------
function RECT(){
  this.Left   =0;
  this.Top    =0;
  this.Right  =0;
  this.Bottom =0;
}
//---------------------
function GetObjet(div_){
  if( DOM) return document.getElementById(div_);
  if( IE)  return document.all[div_];
  return( null);
}
//-- 10.11.2006 ----------------------------
// correction bug sur <DIV style="float...">
//------------------------------------------
function Get_DimFenetre(){
  var L_Doc;
  var H_Doc;
  var DocRef;
  
  with( Fenetre){
    if( window.innerWidth){
      with( window){
        Left   = pageXOffset;
        Top    = pageYOffset;
        Right  = innerWidth;
        Bottom = innerHeight;
        //-- Modif du 10.11.2006
        L_Doc = document.body.clientWidth;
        H_Doc = document.body.clientHeight;
        //-- fin modif.
        if( Right  > L_Doc) Right  = L_Doc;
        if( Bottom > H_Doc) Bottom = H_Doc;
      }
    }
    else{ // Cas Explorer à part
      if( document.documentElement && document.documentElement.clientWidth)
        DocRef = document.documentElement;
      else
        DocRef = document.body;

      with( DocRef){
        Left   = scrollLeft;
        Top    = scrollTop;
        Right  = clientWidth;
        Bottom = clientHeight;
      }
    }
    //-- limite Maxi Fenêtre Affichage
    Right  += Left;
    Bottom += Top;
  }
}
//------------------------------------
function ObjShowAll( div_, x_, y_, z_){
  var B_Obj = GetObjet( div_);
  var F_Obj = GetObjet( 'F' +div_);
  var MaxX, MaxY;
  var Haut, Larg;
  var SavY = y_;

  if( B_Obj){
    //-- Récup. dimension du DIV
    if( NETSCAPE){
      Larg = B_Obj.offsetWidth;
      Haut = B_Obj.offsetHeight;
    }
    else{
      Larg = B_Obj.scrollWidth;
      Haut = B_Obj.scrollHeight;
    }
    with( Fenetre){
      //-- Réajuste dimension fenêtre
      MaxX = Right  - Larg;
      MaxY = Bottom - Haut;

      //-- Application Bornage
      if( x_ > MaxX) x_ = MaxX;
      if( x_ < Left) x_ = Left;
      if( y_ > MaxY) y_ = MaxY;
      if( y_ < Top)  y_ = Top;
    }
    //-- si en bas On réajuste
    //-- pour que la bulle ne prenne pas le focus
    if( y_== MaxY){
      var DeltaY = MaxY -SavY;
      y_ = MaxY - DeltaY -Haut -2*Decal_Y;
    }
    with(B_Obj.style){
      left       = x_ +"px";
      top        = y_ +"px";
      zIndex     = z_;
      visibility = "visible";
    }
  }
}
//-- 15.09.2006 ------------------------
// Ajout Fonction Add_Event
//--------------------------------------
function Add_Event( obj_, event_, func_, mode_){
  if( obj_.addEventListener)
    obj_.addEventListener( event_, func_, mode_? mode_:false);
  else
    obj_.attachEvent( 'on'+event_, func_);
}
//-- 15.09.2006 ------------------------
// Ajout paramètre x_ et y_
//--------------------------------------
function BulleWrite( txt_, x_, y_, optionImage){
  var B_Obj = GetObjet( 'Bulle');
  var Html;
  if( B_Obj){
    //-- Récup dimension d'affichage
    Get_DimFenetre();
    // Decalage hors de la Bulle
    Decal_X =( x_ ? x_: 5);//    Decal_X = 5 par défaut
    Decal_Y =( y_ ? y_: 5);//    Decal_Y = 5 par défaut

    if (optionImage == 1)
    {
        var image = "            <img src=\"images/triangle_info.gif\" width=\"12\" height=\"12\" align=\"bottom\" border=\"0\" alt=\"\" /> ";
    }
    else
    {
        var image = "";
    }
    //-- Ecriture de la Bulle 
    Html  = "<table border=\"0\" cellspacing=\"0\"><tr><td bgcolor=\"#000000\">";
    Html += "<table border=\"0\" cellspacing=\"0\" cellpadding=\"4\" width=\"100%\" bgcolor=\"#FFFFE8\">";
    Html += "<tr><td align=\"left\" class=\"Bulle\" nowrap>";
    Html += image ;
    //Html += "<strong>"+ txt_ +"<\/strong>";
    Html +=  txt_;
    Html += "<\/td><\/tr><\/table><\/td><\/tr><\/table>";

    B_Obj.innerHTML = Html;
    //-----------------------------------------//
    // IMPORTANT on n'affiche pas la Bulle     //
    // l'événement MouseOver va avec MouseMove //
    //-----------------------------------------//
    // ObjShowAll('Bulle', Mouse_X +Decal_X, Mouse_Y +Decal_Y, 1000);
    bBULLE= true;
    return( true);
  }
 return(false);
}
//------------------
function BulleHide(){
  var B_Obj = GetObjet( 'Bulle');
  with(B_Obj){
    innerHTML        = "&nbsp;"
    style.left       = -1000 +"px";
    style.top        = -1000 +"px";
    style.zIndex     = 0;
    style.visibility = "hidden";
  }
  bBULLE = false;
  return(true);
}
//--------------------
function WhereMouse(e){
  var DocRef;
  //-- On traque les hybrides
  if( e && e.target){
    Mouse_X = e.pageX;
    Mouse_Y = e.pageY;
  }
  else{
    if( document.documentElement && document.documentElement.clientWidth)
      DocRef = document.documentElement;
    else
      DocRef = document.body;

    Mouse_X = event.clientX +DocRef.scrollLeft;
    Mouse_Y = event.clientY +DocRef.scrollTop;
  }

  if( bBULLE)
    ObjShowAll('Bulle', Mouse_X +Decal_X, Mouse_Y +Decal_Y, 1000);

  return( true);
}
//== INITIALISATION ==================================
//-- 15.09.2006 ------------------------
// Ajout Fonction Add_Event
// Permet de faire autre chose...
//--------------------------------------
//document.onmousemove = WhereMouse;
Add_Event( document, 'mousemove', WhereMouse);

//-- Création STYLE Bulle et DIV----------------------
var Html;
  //-- On met du style pour la bulle
  Html  = '<style type="text/css">';
  Html += '.Bulle{cursor:default; color:#000000; font-size:13px; font-family:Verdana;}';
  Html += '</style>';
  //-- Création du DIV Bulle
  Html +='<div id="Bulle" style="position:absolute; left:auto; top:auto; width:auto; height:auto; z-index:0; visibility:hidden"></div>';
  document.write( Html);



//--------------------------------------------------------------- js_couleurs.js
// bbCode control by subBlue design
// www.subBlue.com
// bidouilled by El konkonbré M@squed

var theSelection = false;

// Check for Browser & Platform for PC & IE specific bits
// More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
var clientPC = navigator.userAgent.toLowerCase(); // Get client info
var clientVer = parseInt(navigator.appVersion); // Get browser version

var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
var is_nav = ((clientPC.indexOf('mozilla')!=-1) && (clientPC.indexOf('spoofer')==-1)
                && (clientPC.indexOf('compatible') == -1) && (clientPC.indexOf('opera')==-1)
                && (clientPC.indexOf('webtv')==-1) && (clientPC.indexOf('hotjava')==-1));
var is_moz = 0;

var is_win = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));
var is_mac = (clientPC.indexOf("mac")!=-1);

function bbfontstyle(bbopen, bbclose, nom_value_du_txtarea)
{
    var txtarea = document.getElementById('formulaire').elements[nom_value_du_txtarea];
    //alert(txtarea); // Debug
    if ((clientVer >= 4) && is_ie && is_win)
    {
        theSelection = document.selection.createRange().text;
        if (!theSelection)
        {
            txtarea.value += bbopen + bbclose;
            txtarea.focus();
            return;
        }
        document.selection.createRange().text = bbopen + theSelection + bbclose;
        document.getElementById('formulaire').aa.focus();
        return;
    }
    else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0))
    {
        mozWrap(txtarea, bbopen, bbclose);
        return;
    }
    else
    {
        txtarea.value += bbopen + bbclose;
        txtarea.focus();
    }
    storeCaret(txtarea);
}

// From http://www.massless.org/mozedit/
function mozWrap(txtarea, open, close)
{
    var selLength = txtarea.textLength;
    var selStart = txtarea.selectionStart;
    var selEnd = txtarea.selectionEnd;
    if (selEnd == 1 || selEnd == 2)
        selEnd = selLength;

    var s1 = (txtarea.value).substring(0,selStart);
    var s2 = (txtarea.value).substring(selStart, selEnd)
    var s3 = (txtarea.value).substring(selEnd, selLength);
    txtarea.value = s1 + open + s2 + close + s3;
    txtarea.focus();
    return;
}

// Insert at Claret position. Code from
// http://www.faqts.com/knowledge_base/view.phtml/aid/1052/fid/130
function storeCaret(textEl)
{
    if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
}



//----------------------------------------------------------------- js_smiley.js
// Inclusion des smileys
function inclu_smiley(smiley, nom_value_du_txtarea)
{
    smiley = " "+ smiley +" ";

    var compgen = navigator.userAgent.toLowerCase();
    var navsafari = ((compgen.indexOf('safari') != -1) || (navigator.vfinor == "Apple"));
    var navie = ((compgen.indexOf('msie') != -1) && (!navopera) && (!navsafari) && (!navwebtv));
    var navopera = (compgen.indexOf('opera') != -1);
    var navwebtv = (compgen.indexOf('webtv') != -1);
    var oswin =  ((compgen.indexOf("win") != -1) || (compgen.indexOf("16bit") != -1));
    var navers = parseInt(navigator.appVersion);
    var chem = document.getElementById(nom_value_du_txtarea);
    //var chem = document.getElementById('formulaire').elements['message'];
    var fermer = false;
    if ((navers >= 4) && navie && oswin)
    {
        if (chem.isTextEdit)
        {
            chem.focus();
            var dselect = document.selection;
            var cr = dselect.createRange(); cr.colapse;
            if ((dselect.type == "Text" || dselect.type == "None") && cr != null) { fermer = true; cr.text = smiley; }
        }
        else
        {
            fermer = true; chem.value += smiley;
        }
    }
    else
    {
        if(chem.selectionEnd)
        {
            var selectdebut = chem.selectionStart;
            var selecthaut = chem.scrollTop;
            var selectfin = chem.selectionEnd;
            if(selectfin <= 2) { selectfin = chem.textLength; }
            var debut  = (chem.value).substring(0, selectdebut);
            var milieu = (chem.value).substring(selectdebut, selectfin);
            var fin    = (chem.value).substring(selectfin, chem.textLength);
            if(chem.selectionEnd - chem.selectionStart > 0) { milieu = smiley + milieu; } else { milieu = smiley + milieu; fermer = true; }
            chem.value = debut + milieu + fin;
            var cpos = selectdebut + (milieu.length);
            chem.selectionStart = cpos;
            chem.selectionEnd = cpos;
            chem.scrollTop = selecthaut;
        }
        else
        {
            fermer = true; chem.value += smiley;
        }
        chem.focus(); return fermer;
    }
}



//------------------------------------------------------------ js_check_intro.js
// JavaScript Auteur: Christophe de http://tofem.net/ressources
//   Modifié par El Konkonbré M@squed :
//   -Ajout de la possibilitée d'afficher des smileys
//   -Ajout de border="0" dans IMG et Smileys pour éviter la bordure si ceux-ci sont mis en liens URL
//   -Rectif d un bug dans URL
//   -Ajout de la balise Align Center et Right
//   -Ajout de la balise HR
//   -Ajout de function inf_spec(t)
//------------------------------------------------------------
var timer = 0;
var ptag = String.fromCharCode(5,6,7);

//------------------------------------------------------------- js_check_cont.js
function visualisation(nom_value_du_txtarea)
{
    t = document.getElementById('formulaire').elements[nom_value_du_txtarea].value;
    t = code_to_html(t);
    if (document.getElementById) document.getElementById('previsualisation').innerHTML = t;
}

// Sert pour livre_signer.php, form_mess_accueil.php, form_mess_accueil_signature.php
function automatique()
{
    t = document.getElementById('formulaire').message.value;
    t = code_to_html(t);
    if (document.getElementById) document.getElementById('previsualisation').innerHTML = t;
    if (document.getElementById('formulaire').auto.checked) timer = setTimeout(automatique, 1000);
}
//------------------------------------------------------------- js_check_cont.js FIN

//-------------------------------------------------------------------- check.inc
function code_to_html(t)
{
      t=nl2khol(t);
      t=inf_spec(t);

    // balise Gras
      t=deblaie(/(\[\/b\])/g,t)
      t=remplace_tag(/\[b\](.+)\[\/b\]/g, '<b>$1<\/b>', t)
      t=remblaie(t)

    // balise Italique
      t=deblaie(/(\[\/i\])/g,t)
      t=remplace_tag(/\[i\](.+)\[\/i\]/g,'<i>$1<\/i>',t)
      t=remblaie(t)

    // balise Souligné
      t=deblaie(/(\[\/u\])/g,t)
      t=remplace_tag(/\[u\](.+)\[\/u\]/g,'<u>$1<\/u>',t)
      t=remblaie(t)

    // balise Smileys
      t=deblaie(/(:\])/g,t)
      t=remplace_tag(/\[:(.+):\]/g,'<img src="images/smileys/$1.gif" align="bottom" border="0" alt="" />',t)
      t=remblaie(t)

    // balise URL
      t=deblaie(/(\[\/url\])/g,t) // aj because dec
      t=remplace_tag(/\[url=((https?|ftp):\/\/\S+[\<\>a-zA-Z0-9]\/?)\](.+)\[\/url\]/g,'<a href="$1" target="_blank" class="liens" title="">$3<\/a>',t)
      t=remblaie(t)

    // balise Color  
      t=deblaie(/(\[\/color\])/g,t)
      t=remplace_tag(/\[color=(#[a-fA-F0-9]{6})\](.+)\[\/color\]/g,'<font color="$1">$2<\/font>',t)
      t=remblaie(t)


      t=unkhol(t)
      t=nl2br(t)
      return t
}
//-------------------------------------------------------------------- check.inc FIN


function deblaie(reg,t)
{
    texte=new String(t);
    return texte.replace(reg, '$1\n');
}

function remblaie(t)
{
    texte=new String(t);
    return texte.replace(/\n/g, '');
}

function remplace_tag(reg,rep,t) {
  texte=new String(t);
  return texte.replace(reg, rep);
}
function nl2br(t) {
  texte=new String(t);
  return texte.replace(/\n/g, '<br>');
}
function nl2khol(t) {
  texte=new String(t);
  return texte.replace(/\n/g, ptag);
}
function unkhol(t) {
  texte=new String(t);
  return texte.replace(new RegExp(ptag, 'g'),'\n');
}
// Ajout EKM
function inf_spec(t) {
  texte=new String(t);
  return texte.replace(/</g, '&lt;');
}






//------------------------------------------------------ js_compte_caracteres.js
function compteCaracteres(cible, limitNbCaract)
{
    longueurDeLaChaine = cible.value.length
    if (longueurDeLaChaine > limitNbCaract)
    {
        cible.value = cible.value.substring(0, limitNbCaract);
        nbCaracteresActuels = limitNbCaract;
    }
    else
    {
        nbCaracteresActuels = longueurDeLaChaine;
    }
    var nbCaracteresActuelsTemp = limitNbCaract - nbCaracteresActuels;
    document.getElementById('formulaire').caracteres.value = nbCaracteresActuelsTemp;
}



//--------------------------------------------------------- js_sign_op_win_bd.js anciennement ds body
if (document.getElementById)
{
    document.write('<style type="text/css">\n')
    document.write('.sous_menu {display : none;}\n')
    document.write('</style>\n')
}
function ouvrir(obj)
{
    if(document.getElementById)
    {
        var el = document.getElementById(obj);
        var ar = document.getElementById("masterdiv").getElementsByTagName("span");
        if(el.style.display != "block")
        {
            for (var i=0; i<ar.length; i++)
            {
                if (ar[i].className=="sous_menu")
                ar[i].style.display = "none";
            }
            el.style.display="block";
        }
        else
        {
            el.style.display="none";
        }
    }
}