var theSelection = false;

var clientPC = navigator.userAgent.toLowerCase();
var clientVer = parseInt(navigator.appVersion);

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_win = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1));
var is_mac = (clientPC.indexOf("mac")!=-1);

b_help = "Mettre en gras: [B]texte[/B]";
i_help = "Mettre en italique: [I]texte[/I]";
u_help = "Souligner: [U]texte[/U]";
quote_help = "Citer: [quote]texte[/quote]";
code_help = "Code: [code]code[/code]";
img_help = "Insérer une image: [img]http://url image[/img]";
fc_help = "Couleur de la Fonte: [color=red]texte[/color] Vous pouvez utiliser le code HTML color=#FF0000";
ft_help = "Très petit: [size=x-small]texte en petit[/size]";
mail_help = "Insérer un Email: [email]Email[/email]";
url_help="Insérer un Hyperlien: [url=Page URL]Nom de la Page[/url]";
list_help = "Liste: [list]texte[/list]";
a_help = "Fermer toutes les Balises ouvertes";
justify_help = "Justifi le Texte";
left_help = "Aligne le Texte à gauche";
center_help = "Centre le Texte";
right_help = "Aligne le Texte à droite";
pl_help = "[pl]Liste des tracks de votre playlist[/pl]";

var bbcode = new Array(0);
var fc = new Array(0);
var fs = new Array(0);
var ft = new Array(0);

function emoticon(form, field, text) {
    text = ' ' + text + ' ';
    PostWrite(form, field, text);
}



function BBCie(form, field, start, end) {
  if ((clientVer >= 4) && is_ie && is_win) {
    theSelection = document.selection.createRange().text;
    if (theSelection != '') {
        document.selection.createRange().text = start + theSelection + end;
        document.forms[form].elements[field].focus();
        return true;
    }
  }else if (document.forms[form].elements[field].selectionEnd && (document.forms[form].elements[field].selectionEnd - document.forms[form].elements[field].selectionStart > 0))
	{
		mozWrap(form, field, start, end);
		return true;
	}
  return false;
}

function mozWrap(form, field, open, close)
{
	var selLength = document.forms[form].elements[field].textLength;
	var selStart = document.forms[form].elements[field].selectionStart;
	var selEnd = document.forms[form].elements[field].selectionEnd;
	if (selEnd == 1 || selEnd == 2)
		selEnd = selLength;

	var s1 = (document.forms[form].elements[field].value).substring(0,selStart);
	var s2 = (document.forms[form].elements[field].value).substring(selStart, selEnd)
	var s3 = (document.forms[form].elements[field].value).substring(selEnd, selLength);
	document.forms[form].elements[field].value = s1 + open + s2 + close + s3;
	return;
}

function BBChr(form, field) {
  document.forms[form].elements[field].value+="[hr]";
  document.forms[form].elements[field].focus();
}

function BBCwmi(form, field, type) {
  if (type == 'img') {
    var link = prompt("Mettez le lien vers l'image","http://");
  } else {
    var link = prompt("Inscrivez l'e-mail","");
  }
  if (!link) {
    alert("Erreur : Pas de lien écrit !");
    return;
  }
  var ToAdd = "["+type+"]"+link+"[/"+type+"]";
  document.forms[form].elements[field].value+=ToAdd;
  document.forms[form].elements[field].focus();
}

function BBCdir(form, field, dirc) {
  document.forms[form].elements[field].dir=(dirc);
}

function BBCode(form, field, code, img) {
  var type = img.name;
  if (BBCie(form, field, "["+code+"="+type+"]", "[/"+code+"]")) { return; }
  if (bbcode[code+type+form+field] == null) {
    ToAdd = "["+code+"="+type+"]";
    img.className = "bbcode_"+code+"_"+type+"1";
    bbcode[code+type+form+field] = 1;
  } else {
    ToAdd = "[/"+code+"]";
    img.className = "bbcode_"+code+"_"+type;
    bbcode[code+type+form+field] = null;
  }
  PostWrite(form, field, ToAdd);
}

function BBCcode(form, field, img) {
  var code = img.name;
  if (BBCie(form, field, "["+code+"]", "[/"+code+"]")) { return; }
  if (bbcode[form+field+code] == null) {
    ToAdd = "["+code+"]";
    img.className = "bbcode_"+code+"1";
    bbcode[form+field+code] = 1;
  } else {
    ToAdd = "[/"+code+"]";
	img.className = "bbcode_"+code;
    bbcode[form+field+code] = null;
  }
  PostWrite(form, field, ToAdd);
}

function BBCft(form, field) {
  if (BBCie(form, field, "[font="+document.forms[form].ft.value+"]", "[/font]")) { return; }
  ToAdd = "[font="+document.forms[form].ft.value+"]"+" "+"[/font]";
  PostWrite(form, field, ToAdd);
}

function BBCfs(form, field, box) {
  if (BBCie(form, field, "[size="+box.value+"]", "[/size]")) { return; }
  ToAdd = "[size="+box.value+"]"+" "+"[/size]";
  PostWrite(form, field, ToAdd);
}

function BBCfc(form, field, box) {
  if (BBCie(form, field, "[color="+box.value+"]", "[/color]")) { return; }
  ToAdd = "[color="+box.value+"]"+" "+"[/color]";
  PostWrite(form, field, ToAdd);
}

function BBCmm(form, field, type) {
  var FoundErrors = '';
  var enterFURL   = prompt("Enter the "+type+" file URL", "http://");
  if (!enterFURL)    {
    FoundErrors += "You didn't write the "+type+" file URL";
  }
  var enterW   = prompt("Enter the "+type+" width", "250");
  if (!enterW)    {
    FoundErrors += "You didn't write the "+type+" width";
  }
  var enterH   = prompt("Enter the "+type+" height", "250");
  if (!enterH)    {
    FoundErrors += "You didn't write the "+type+" height";
  }
  if (FoundErrors)  {
    alert("Error :"+FoundErrors);
    return;
  }
  var ToAdd = "["+type+" width="+enterW+" height="+enterH+"]"+enterFURL+"[/"+type+"]";
  document.forms[form].elements[field].value+=ToAdd;
  document.forms[form].elements[field].focus();
}

function helpline(form, field, help) {
  document.forms[form].elements["help"+field].value = eval(help + "_help");
  document.forms[form].elements["help"+field].readOnly = "true";
}

function bbfontstyle(form, field, bbopen, bbclose) {
	theSelection = false;
  if ((clientVer >= 4) && is_ie && is_win) {
    theSelection = document.selection.createRange().text;
    if (!theSelection) {
      document.forms[form].elements[field].value += bbopen + bbclose;
      document.forms[form].elements[field].focus();
      return;
    }
    document.selection.createRange().text = bbopen + theSelection + bbclose;
    document.forms[form].elements[field].focus();
    return;
  } else {
    document.forms[form].elements[field].value += bbopen + bbclose;
    document.forms[form].elements[field].focus();
    return;
  }
  storeCaret(document.forms[form].elements[field]);
}


function storeCaret(textEl) {
  if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
}

function PostWrite(form, field, text) {
  if (document.forms[form].elements[field].createTextRange && document.forms[form].elements[field].caretPos) {
    var caretPos = document.forms[form].elements[field].caretPos;
    caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ?    text + ' ' : text;
  }
  else document.forms[form].elements[field].value += text;
  document.forms[form].elements[field].focus(caretPos)
}

function BBCurl(form, field) {
  var FoundErrors = '';
  var enterURL   = prompt("Saisissez l' URL", "http://");
  var enterTITLE = prompt("Saisissez le nom de l'Url", "Nom du lien");
  if (!enterURL)    {
    FoundErrors += "Vous l'avez pas écrit de Lien";
  }
  if (!enterTITLE)  {
    FoundErrors += "Vous n'avez pas donné de nom au lien";
  }
  if (FoundErrors)  {
    alert("Erreur :"+FoundErrors);
    return;
  }
  var ToAdd = "[url="+enterURL+"]"+enterTITLE+"[/url]";
  document.forms[form].elements[field].value+=ToAdd;
  document.forms[form].elements[field].focus();
}
function storeCaret(text)
{}

function makevisible(cur,which)
	{
	if(document.getElementById)
		{
		if (which==0)
			{
			if(document.all)
				cur.filters.alpha.opacity=100
			else
				cur.style.setProperty("-moz-opacity", 1, "");
			}
		else
			{
			if(document.all)
				cur.filters.alpha.opacity=40
			else
				cur.style.setProperty("-moz-opacity", .4, "");
			}
		}
	}




